clangformat

This commit is contained in:
Miodrag Milanovic 2025-06-11 16:34:12 +02:00 committed by Miodrag Milanović
parent aacc795393
commit 84c5734c9c
3 changed files with 331 additions and 330 deletions

View File

@ -658,38 +658,38 @@ bool is_edge_location(int x, int y)
Bitstream Bitstream::serialise_chip(const Chip &chip)
{
BitstreamReadWriter wr;
for(int d=chip.get_max_die()-1;d>=0;d--) {
for (int d = chip.get_max_die() - 1; d >= 0; d--) {
auto &die = chip.get_die(d);
if (chip.get_max_die()!=1) {
if (chip.get_max_die() != 1) {
wr.write_cmd_path(0x01); // Need to reset PATH
switch(chip.get_max_die()) {
case 2: // CCGM1A2
switch(d) {
case 0 : // 1A
break;
case 1 : // 1B
wr.write_cmd_path(0x02); // top
break;
}
switch (chip.get_max_die()) {
case 2: // CCGM1A2
switch (d) {
case 0: // 1A
break;
case 4: // CCGM1A4
switch(d) {
case 0 : // 1A
break;
case 1 : // 1B
wr.write_cmd_path(0x02); // top
break;
case 2 : // 2A
wr.write_cmd_path(0x04); // _right
break;
case 3 : // 2B
wr.write_cmd_path(0x02); // top
wr.write_cmd_path(0x04); // _right
break;
}
case 1: // 1B
wr.write_cmd_path(0x02); // top
break;
default:
throw BitstreamParseError("Unsupported number of dies.\n");
}
break;
case 4: // CCGM1A4
switch (d) {
case 0: // 1A
break;
case 1: // 1B
wr.write_cmd_path(0x02); // top
break;
case 2: // 2A
wr.write_cmd_path(0x04); // _right
break;
case 3: // 2B
wr.write_cmd_path(0x02); // top
wr.write_cmd_path(0x04); // _right
break;
}
break;
default:
throw BitstreamParseError("Unsupported number of dies.\n");
}
}
wr.write_cmd_path(0x10);

View File

@ -22,7 +22,8 @@
namespace GateMate {
Chip::Chip(std::string name) {
Chip::Chip(std::string name)
{
const std::string prefix = "CCGM1A";
if (name.rfind(prefix, 0) == 0) {
std::string numberPart = name.substr(prefix.size());
@ -41,7 +42,7 @@ Chip::Chip(std::string name) {
Chip::Chip(int num) : die_num(num)
{
Die die;
for(int i=0;i<num;i++)
for (int i = 0; i < num; i++)
dies.push_back(die);
}

View File

@ -267,62 +267,62 @@ void TileBitDatabase::add_edge_io(int index, int start)
void TileBitDatabase::add_right_edge(int index, int start)
{
add_word_settings(stringf("RES%d.SEL_MDIE1", index), start + 0, 1);
add_word_settings(stringf("RES%d.SEL_MDIE2", index), start + 1, 1);
add_word_settings(stringf("RES%d.SEL_MDIE3", index), start + 2, 1);
add_word_settings(stringf("RES%d.SEL_MDIE4", index), start + 3, 1);
add_word_settings(stringf("RES%d.SEL_MDIE5", index), start + 4, 1);
add_word_settings(stringf("RES%d.SEL_MDIE6", index), start + 5, 1);
add_word_settings(stringf("RES%d.SEL_MDIE7", index), start + 6, 1);
add_word_settings(stringf("RES%d.SEL_MDIE8", index), start + 7, 1);
add_word_settings(stringf("RES%d.SEL_MDIE1", index), start + 0, 1);
add_word_settings(stringf("RES%d.SEL_MDIE2", index), start + 1, 1);
add_word_settings(stringf("RES%d.SEL_MDIE3", index), start + 2, 1);
add_word_settings(stringf("RES%d.SEL_MDIE4", index), start + 3, 1);
add_word_settings(stringf("RES%d.SEL_MDIE5", index), start + 4, 1);
add_word_settings(stringf("RES%d.SEL_MDIE6", index), start + 5, 1);
add_word_settings(stringf("RES%d.SEL_MDIE7", index), start + 6, 1);
add_word_settings(stringf("RES%d.SEL_MDIE8", index), start + 7, 1);
add_word_settings(stringf("RES%d.SIG_SEL1", index), start + 8 , 3);
add_word_settings(stringf("RES%d.SIG_SEL2", index), start + 11, 3);
add_word_settings(stringf("RES%d.SIG_SEL3", index), start + 14, 3);
add_word_settings(stringf("RES%d.SIG_SEL4", index), start + 17, 3);
add_word_settings(stringf("RES%d.SIG_SEL1", index), start + 8, 3);
add_word_settings(stringf("RES%d.SIG_SEL2", index), start + 11, 3);
add_word_settings(stringf("RES%d.SIG_SEL3", index), start + 14, 3);
add_word_settings(stringf("RES%d.SIG_SEL4", index), start + 17, 3);
}
void TileBitDatabase::add_left_edge(int index, int start)
{
add_word_settings(stringf("LES%d.SB_Y3_SEL1", index), start + 0 , 3);
add_word_settings(stringf("LES%d.MDIE1_SEL1", index), start + 3 , 3);
add_word_settings(stringf("LES%d.CLOCK_SEL1", index), start + 6 , 2);
add_word_settings(stringf("LES%d.SB_Y3_SEL1", index), start + 0, 3);
add_word_settings(stringf("LES%d.MDIE1_SEL1", index), start + 3, 3);
add_word_settings(stringf("LES%d.CLOCK_SEL1", index), start + 6, 2);
add_word_settings(stringf("LES%d.SB_Y3_SEL2", index), start + 8 , 3);
add_word_settings(stringf("LES%d.SB_Y3_SEL2", index), start + 8, 3);
add_word_settings(stringf("LES%d.MDIE1_SEL2", index), start + 11, 3);
add_word_settings(stringf("LES%d.CLOCK_SEL2", index), start + 14, 2);
add_word_settings(stringf("LES%d.CINX_CONST", index), start + 16, 1);
add_word_settings(stringf("LES%d.CINX_SEL", index), start + 17, 2);
add_word_settings(stringf("LES%d.CINX_SEL", index), start + 17, 2);
add_word_settings(stringf("LES%d.PINX_CONST", index), start + 19, 1);
add_word_settings(stringf("LES%d.PINX_SEL", index), start + 20, 2);
add_word_settings(stringf("LES%d.PINX_SEL", index), start + 20, 2);
}
void TileBitDatabase::add_top_edge(int index, int start)
{
add_word_settings(stringf("TES%d.SEL_MDIE1", index), start + 0, 1);
add_word_settings(stringf("TES%d.SEL_MDIE2", index), start + 1, 1);
add_word_settings(stringf("TES%d.SEL_MDIE3", index), start + 2, 1);
add_word_settings(stringf("TES%d.SEL_MDIE4", index), start + 3, 1);
add_word_settings(stringf("TES%d.SEL_MDIE5", index), start + 4, 1);
add_word_settings(stringf("TES%d.SEL_MDIE6", index), start + 5, 1);
add_word_settings(stringf("TES%d.SEL_MDIE7", index), start + 6, 1);
add_word_settings(stringf("TES%d.SEL_MDIE8", index), start + 7, 1);
add_word_settings(stringf("TES%d.SEL_MDIE1", index), start + 0, 1);
add_word_settings(stringf("TES%d.SEL_MDIE2", index), start + 1, 1);
add_word_settings(stringf("TES%d.SEL_MDIE3", index), start + 2, 1);
add_word_settings(stringf("TES%d.SEL_MDIE4", index), start + 3, 1);
add_word_settings(stringf("TES%d.SEL_MDIE5", index), start + 4, 1);
add_word_settings(stringf("TES%d.SEL_MDIE6", index), start + 5, 1);
add_word_settings(stringf("TES%d.SEL_MDIE7", index), start + 6, 1);
add_word_settings(stringf("TES%d.SEL_MDIE8", index), start + 7, 1);
add_word_settings(stringf("TES%d.SIG_SEL1", index), start + 8 , 3);
add_word_settings(stringf("TES%d.SIG_SEL2", index), start + 11, 3);
add_word_settings(stringf("TES%d.SIG_SEL3", index), start + 14, 3);
add_word_settings(stringf("TES%d.SIG_SEL4", index), start + 17, 3);
add_word_settings(stringf("TES%d.SIG_SEL1", index), start + 8, 3);
add_word_settings(stringf("TES%d.SIG_SEL2", index), start + 11, 3);
add_word_settings(stringf("TES%d.SIG_SEL3", index), start + 14, 3);
add_word_settings(stringf("TES%d.SIG_SEL4", index), start + 17, 3);
}
void TileBitDatabase::add_bottom_edge(int index, int start)
{
add_word_settings(stringf("BES%d.SB_Y4_SEL1", index), start + 0 , 3);
add_word_settings(stringf("BES%d.MDIE2_SEL1", index), start + 3 , 3);
add_word_settings(stringf("BES%d.CLOCK_SEL1", index), start + 6 , 2);
add_word_settings(stringf("BES%d.SB_Y4_SEL1", index), start + 0, 3);
add_word_settings(stringf("BES%d.MDIE2_SEL1", index), start + 3, 3);
add_word_settings(stringf("BES%d.CLOCK_SEL1", index), start + 6, 2);
add_word_settings(stringf("BES%d.SB_Y4_SEL2", index), start + 8 , 3);
add_word_settings(stringf("BES%d.SB_Y4_SEL2", index), start + 8, 3);
add_word_settings(stringf("BES%d.MDIE2_SEL2", index), start + 11, 3);
add_word_settings(stringf("BES%d.CLOCK_SEL2", index), start + 14, 2);
@ -334,22 +334,22 @@ void TileBitDatabase::add_bottom_edge(int index, int start)
add_word_settings(stringf("BES%d.MDIE2_SEL4", index), start + 27, 3);
add_word_settings(stringf("BES%d.CLOCK_SEL4", index), start + 30, 2);
add_word_settings(stringf("BES%d.CINY1_CONST",index), start + 32, 1);
add_word_settings(stringf("BES%d.CINY1_SEL", index), start + 33, 2);
add_word_settings(stringf("BES%d.CINY1_CONST", index), start + 32, 1);
add_word_settings(stringf("BES%d.CINY1_SEL", index), start + 33, 2);
add_word_settings(stringf("BES%d.PINY1_CONST",index), start + 35, 1);
add_word_settings(stringf("BES%d.PINY1_SEL", index), start + 36, 2);
add_word_settings(stringf("BES%d.PINY1_CONST", index), start + 35, 1);
add_word_settings(stringf("BES%d.PINY1_SEL", index), start + 36, 2);
add_word_settings(stringf("BES%d.CINY2_CONST",index), start + 38, 1);
add_word_settings(stringf("BES%d.CINY2_SEL", index), start + 39, 2);
add_word_settings(stringf("BES%d.CINY2_CONST", index), start + 38, 1);
add_word_settings(stringf("BES%d.CINY2_SEL", index), start + 39, 2);
add_word_settings(stringf("BES%d.PINY2_CONST",index), start + 41, 1);
add_word_settings(stringf("BES%d.PINY2_SEL", index), start + 42, 2);
add_word_settings(stringf("BES%d.PINY2_CONST", index), start + 41, 1);
add_word_settings(stringf("BES%d.PINY2_SEL", index), start + 42, 2);
add_word_settings(stringf("BES%d.P_CINY1", index), start + 44, 1);
add_word_settings(stringf("BES%d.P_PINY1", index), start + 45, 1);
add_word_settings(stringf("BES%d.P_CINY2", index), start + 46, 1);
add_word_settings(stringf("BES%d.P_PINY2", index), start + 47, 1);
add_word_settings(stringf("BES%d.P_CINY1", index), start + 44, 1);
add_word_settings(stringf("BES%d.P_PINY1", index), start + 45, 1);
add_word_settings(stringf("BES%d.P_CINY2", index), start + 46, 1);
add_word_settings(stringf("BES%d.P_PINY2", index), start + 47, 1);
}
TileBitDatabase::TileBitDatabase(const int x, const int y) : BaseBitDatabase(Die::LATCH_BLOCK_SIZE * 8)
@ -426,259 +426,259 @@ TileBitDatabase::TileBitDatabase(const int x, const int y) : BaseBitDatabase(Die
SerdesBitDatabase::SerdesBitDatabase() : BaseBitDatabase(Die::SERDES_CFG_SIZE * 8)
{
add_word_settings("RX_BUF_RESET_TIME", (0x00<<4) + 0, 5);
add_word_settings("RX_PCS_RESET_TIME", (0x00<<4) + 5, 5);
add_word_settings("RX_RESET_TIMER_PRESC", (0x00<<4) + 10, 5);
add_word_settings("RX_RESET_DONE_GATE", (0x00<<4) + 15, 1);
add_word_settings("RX_CDR_RESET_TIME", (0x01<<4) + 0, 5);
add_word_settings("RX_EQA_RESET_TIME", (0x01<<4) + 5, 5);
add_word_settings("RX_PMA_RESET_TIME", (0x01<<4) + 10, 5);
add_word_settings("RX_WAIT_CDR_LOCK", (0x01<<4) + 15, 1);
add_word_settings("RX_CALIB_EN", (0x02<<4) + 0, 1);
add_word_settings("RX_CALIB_DONE", (0x02<<4) + 1, 1);
add_word_settings("RX_CALIB_OVR", (0x02<<4) + 2, 1);
add_word_settings("RX_CALIB_VAL", (0x02<<4) + 3, 4);
add_word_settings("RX_CALIB_CAL", (0x02<<4) + 7, 4);
add_word_settings("RX_RTERM_VCMSEL", (0x02<<4) + 11, 3);
add_word_settings("RX_RTERM_PD", (0x02<<4) + 14, 1);
add_word_settings("RX_EQA_CKP_LF", (0x03<<4) + 0, 8);
add_word_settings("RX_EQA_CKP_HF", (0x03<<4) + 8, 8);
add_word_settings("RX_EQA_CKP_OFFSET", (0x04<<4) + 0, 8);
add_word_settings("RX_EN_EQA", (0x04<<4) + 8, 1);
add_word_settings("RX_EQA_LOCK_CFG", (0x04<<4) + 9, 4);
add_word_settings("RX_EQA_LOCKED", (0x04<<4) + 13, 1);
add_word_settings("RX_TH_MON1", (0x05<<4) + 0, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_0", (0x05<<4) + 5, 1);
add_word_settings("RX_TH_MON2", (0x05<<4) + 6, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_1", (0x05<<4) + 11, 1);
add_word_settings("RX_TAPW", (0x06<<4) + 0, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_2", (0x06<<4) + 5, 1);
add_word_settings("RX_AFE_OFFSET", (0x06<<4) + 6, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_3", (0x06<<4) + 11, 1);
add_word_settings("RX_EQA_TAPW", (0x07<<4) + 0, 5);
add_word_settings("RX_TH_MON", (0x07<<4) + 5, 5);
add_word_settings("RX_OFFSET", (0x07<<4) + 10, 4);
add_word_settings("RX_EQA_CONFIG", (0x08<<4) + 0, 16);
add_word_settings("RX_AFE_PEAK", (0x09<<4) + 0, 5);
add_word_settings("RX_AFE_GAIN", (0x09<<4) + 5, 4);
add_word_settings("RX_AFE_VCMSEL", (0x09<<4) + 9, 3);
add_word_settings("RX_CDR_CKP", (0x0a<<4) + 0, 8);
add_word_settings("RX_CDR_CKI", (0x0a<<4) + 8, 8);
add_word_settings("RX_CDR_TRANS_TH", (0x0b<<4) + 0, 9);
add_word_settings("RX_CDR_LOCK_CFG", (0x0b<<4) + 9, 6);
add_word_settings("RX_CDR_LOCKED", (0x0b<<4) + 15, 1);
add_word_settings("RX_CDR_FREQ_ACC_VAL", (0x0c<<4) + 0, 15);
add_word_settings("RX_CDR_PHASE_ACC_VAL", (0x0d<<4) + 0, 16);
add_word_settings("RX_CDR_FREQ_ACC", (0x0e<<4) + 0, 15);
add_word_settings("RX_CDR_PHASE_ACC", (0x0f<<4) + 0, 16);
add_word_settings("RX_CDR_SET_ACC_CONFIG", (0x10<<4) + 0, 2);
add_word_settings("RX_CDR_FORCE_LOCK", (0x10<<4) + 2, 1);
add_word_settings("RX_ALIGN_MCOMMA_VALUE", (0x11<<4) + 0, 10);
add_word_settings("RX_MCOMMA_ALIGN_OVR", (0x11<<4) + 10, 1);
add_word_settings("RX_MCOMMA_ALIGN", (0x11<<4) + 11, 1);
add_word_settings("RX_ALIGN_PCOMMA_VALUE", (0x12<<4) + 0, 10);
add_word_settings("RX_PCOMMA_ALIGN_OVR", (0x12<<4) + 10, 1);
add_word_settings("RX_PCOMMA_ALIGN", (0x12<<4) + 11, 1);
add_word_settings("RX_ALIGN_COMMA_WORD", (0x12<<4) + 12, 2);
add_word_settings("RX_ALIGN_COMMA_ENABLE", (0x13<<4) + 0, 10);
add_word_settings("RX_SLIDE_MODE", (0x13<<4) + 10, 2);
add_word_settings("RX_COMMA_DETECT_EN_OVR", (0x13<<4) + 12, 1);
add_word_settings("RX_COMMA_DETECT_EN", (0x13<<4) + 13, 1);
add_word_settings("RX_SLIDE", (0x13<<4) + 14, 2);
add_word_settings("RX_EYE_MEAS_EN", (0x14<<4) + 0, 1);
add_word_settings("RX_EYE_MEAS_CFG", (0x14<<4) + 1, 15);
add_word_settings("RX_MON_PH_OFFSET", (0x15<<4) + 0, 6);
add_word_settings("RX_EYE_MEAS_CORRECT_11S", (0x16<<4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_11S", (0x17<<4) + 0, 16);
add_word_settings("RX_EYE_MEAS_CORRECT_00S", (0x18<<4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_00S", (0x19<<4) + 0, 16);
add_word_settings("RX_EYE_MEAS_CORRECT_001S", (0x1a<<4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_001S", (0x1b<<4) + 0, 16);
add_word_settings("RX_EYE_MEAS_CORRECT_110S", (0x1c<<4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_110S", (0x1d<<4) + 0, 16);
add_word_settings("RX_EI_BIAS", (0x1e<<4) + 0, 4);
add_word_settings("RX_EI_BW_SEL", (0x1e<<4) + 4, 4);
add_word_settings("RX_EN_EI_DETECTOR_OVR", (0x1e<<4) + 8, 1);
add_word_settings("RX_EN_EI_DETECTOR", (0x1e<<4) + 9, 1);
add_word_settings("RX_EI_EN", (0x1e<<4) + 10, 1);
add_word_settings("RX_PRBS_ERR_CNT", (0x1f<<4) + 0, 15);
add_word_settings("RX_PRBS_LOCKED", (0x1f<<4) + 15, 1);
add_word_settings("RX_DATA_SEL", (0x20<<4) + 0, 1);
add_word_settings("RX_DATA", (0x20<<4) + 1, 15 + 16*4);
add_word_settings("RX_BUF_BYPASS", (0x25<<4) + 0, 1);
add_word_settings("RX_CLKCOR_USE", (0x25<<4) + 1, 1);
add_word_settings("RX_CLKCOR_MIN_LAT", (0x25<<4) + 2, 6);
add_word_settings("RX_CLKCOR_MAX_LAT", (0x25<<4) + 8, 6);
add_word_settings("RX_CLKCOR_SEQ_1_0", (0x26<<4) + 0, 10);
add_word_settings("RX_CLKCOR_SEQ_1_1", (0x27<<4) + 0, 10);
add_word_settings("RX_CLKCOR_SEQ_1_2", (0x28<<4) + 0, 10);
add_word_settings("RX_CLKCOR_SEQ_1_3", (0x29<<4) + 0, 10);
add_word_settings("RX_PMA_LOOPBACK", (0x2a<<4) + 0, 1);
add_word_settings("RX_PCS_LOOPBACK", (0x2a<<4) + 1, 1);
add_word_settings("RX_DATAPATH_SEL", (0x2a<<4) + 2, 2);
add_word_settings("RX_PRBS_OVR", (0x2a<<4) + 4, 1);
add_word_settings("RX_PRBS_SEL", (0x2a<<4) + 5, 3);
add_word_settings("RX_LOOPBACK_OVR", (0x2a<<4) + 8, 1);
add_word_settings("RX_PRBS_CNT_RESET", (0x2a<<4) + 9, 1);
add_word_settings("RX_POWER_DOWN_OVR", (0x2a<<4) + 10, 1);
add_word_settings("RX_POWER_DOWN_N", (0x2a<<4) + 11, 1);
add_word_settings("RX_PRESENT", (0x2a<<4) + 12, 1);
add_word_settings("RX_DETECT_DONE", (0x2a<<4) + 13, 1);
add_word_settings("RX_BUF_ERR", (0x2a<<4) + 14, 1);
add_word_settings("RX_RESET_OVR", (0x2b<<4) + 0, 1);
add_word_settings("RX_RESET", (0x2b<<4) + 1, 1);
add_word_settings("RX_PMA_RESET_OVR", (0x2b<<4) + 2, 1);
add_word_settings("RX_PMA_RESET", (0x2b<<4) + 3, 1);
add_word_settings("RX_EQA_RESET_OVR", (0x2b<<4) + 4, 1);
add_word_settings("RX_EQA_RESET", (0x2b<<4) + 5, 1);
add_word_settings("RX_CDR_RESET_OVR", (0x2b<<4) + 6, 1);
add_word_settings("RX_CDR_RESET", (0x2b<<4) + 7, 1);
add_word_settings("RX_PCS_RESET_OVR", (0x2b<<4) + 8, 1);
add_word_settings("RX_PCS_RESET", (0x2b<<4) + 9, 1);
add_word_settings("RX_BUF_RESET_OVR", (0x2b<<4) + 10, 1);
add_word_settings("RX_BUF_RESET", (0x2b<<4) + 11, 1);
add_word_settings("RX_POLARITY_OVR", (0x2b<<4) + 12, 1);
add_word_settings("RX_POLARITY", (0x2b<<4) + 13, 1);
add_word_settings("RX_8B10B_EN_OVR", (0x2b<<4) + 14, 1);
add_word_settings("RX_8B10B_EN", (0x2b<<4) + 15, 1);
add_word_settings("RX_8B10B_BYPASS", (0x2c<<4) + 0, 8);
add_word_settings("RX_BYTE_IS_ALIGNED", (0x2c<<4) + 8, 1);
add_word_settings("RX_BYTE_REALIGN", (0x2c<<4) + 9, 1);
add_word_settings("RX_RESET_DONE", (0x2c<<4) + 10, 1);
add_word_settings("RX_DBG_EN", (0x2d<<4) + 0, 1);
add_word_settings("RX_DBG_SEL", (0x2d<<4) + 1, 4);
add_word_settings("RX_DBG_MODE", (0x2d<<4) + 5, 1);
add_word_settings("RX_DBG_SRAM_DELAY", (0x2d<<4) + 6, 6);
add_word_settings("RX_DBG_ADDR", (0x2e<<4) + 0, 10);
add_word_settings("RX_DBG_RE", (0x2e<<4) + 10, 1);
add_word_settings("RX_DBG_WE", (0x2e<<4) + 11, 1);
add_word_settings("RX_DBG_DATA", (0x2e<<4) + 12, 20);
add_word_settings("TX_SEL_PRE", (0x30<<4) + 0, 5);
add_word_settings("TX_SEL_POST", (0x30<<4) + 5, 5);
add_word_settings("TX_AMP", (0x30<<4) + 10, 5);
add_word_settings("TX_BRANCH_EN_PRE", (0x31<<4) + 0, 5);
add_word_settings("TX_BRANCH_EN_MAIN", (0x31<<4) + 5, 6);
add_word_settings("TX_BRANCH_EN_POST", (0x31<<4) + 11, 5);
add_word_settings("TX_TAIL_CASCODE", (0x32<<4) + 0, 3);
add_word_settings("TX_DC_ENABLE", (0x32<<4) + 3, 7);
add_word_settings("TX_DC_OFFSET", (0x32<<4) + 10, 5);
add_word_settings("TX_CM_RAISE", (0x33<<4) + 0, 5);
add_word_settings("TX_CM_THRESHOLD_0", (0x33<<4) + 5, 5);
add_word_settings("TX_CM_THRESHOLD_1", (0x33<<4) + 10, 5);
add_word_settings("TX_SEL_PRE_EI", (0x34<<4) + 0, 5);
add_word_settings("TX_SEL_POST_EI", (0x34<<4) + 5, 5);
add_word_settings("TX_AMP_EI", (0x34<<4) + 10, 5);
add_word_settings("TX_BRANCH_EN_PRE_EI", (0x35<<4) + 0, 5);
add_word_settings("TX_BRANCH_EN_MAIN_EI", (0x35<<4) + 5, 6);
add_word_settings("TX_BRANCH_EN_POST_EI", (0x35<<4) + 11, 5);
add_word_settings("TX_TAIL_CASCODE_EI", (0x36<<4) + 0, 3);
add_word_settings("TX_DC_ENABLE_EI", (0x36<<4) + 3, 7);
add_word_settings("TX_DC_OFFSET_EI", (0x36<<4) + 10, 5);
add_word_settings("TX_CM_RAISE_EI", (0x37<<4) + 0, 5);
add_word_settings("TX_CM_THRESHOLD_0_EI", (0x37<<4) + 5, 5);
add_word_settings("TX_CM_THRESHOLD_1_EI", (0x37<<4) + 10, 5);
add_word_settings("TX_SEL_PRE_RXDET", (0x38<<4) + 0, 5);
add_word_settings("TX_SEL_POST_RXDET", (0x38<<4) + 5, 5);
add_word_settings("TX_AMP_RXDET", (0x38<<4) + 10, 5);
add_word_settings("TX_BRANCH_EN_PRE_RXDET", (0x39<<4) + 0, 5);
add_word_settings("TX_BRANCH_EN_MAIN_RXDET", (0x39<<4) + 5, 6);
add_word_settings("TX_BRANCH_EN_POST_RXDET", (0x39<<4) + 11, 5);
add_word_settings("TX_TAIL_CASCODE_RXDET", (0x3a<<4) + 0, 3);
add_word_settings("TX_DC_ENABLE_RXDET", (0x3a<<4) + 3, 7);
add_word_settings("TX_DC_OFFSET_RXDET", (0x3a<<4) + 10, 5);
add_word_settings("TX_CM_RAISE_RXDET", (0x3b<<4) + 0, 5);
add_word_settings("TX_CM_THRESHOLD_0_RXDET", (0x3b<<4) + 5, 5);
add_word_settings("TX_CM_THRESHOLD_1_RXDET", (0x3b<<4) + 10, 5);
add_word_settings("TX_CALIB_EN", (0x3c<<4) + 0, 1);
add_word_settings("TX_CALIB_DONE", (0x3c<<4) + 1, 1);
add_word_settings("TX_CALIB_OVR", (0x3c<<4) + 2, 1);
add_word_settings("TX_CALIB_VAL", (0x3c<<4) + 3, 4);
add_word_settings("TX_CALIB_CAL", (0x3c<<4) + 7, 4);
add_word_settings("TX_CM_REG_KI", (0x3d<<4) + 0, 8);
add_word_settings("TX_CM_SAR_EN", (0x3d<<4) + 8, 1);
add_word_settings("TX_CM_REG_EN", (0x3d<<4) + 9, 1);
add_word_settings("TX_CM_SAR_RESULT_0", (0x3e<<4) + 0, 5);
add_word_settings("TX_CM_SAR_RESULT_1", (0x3e<<4) + 5, 5);
add_word_settings("TX_PMA_RESET_TIME", (0x3f<<4) + 0, 5);
add_word_settings("TX_PCS_RESET_TIME", (0x3f<<4) + 5, 5);
add_word_settings("TX_PCS_RESET_OVR", (0x3f<<4) + 10, 1);
add_word_settings("TX_PCS_RESET", (0x3f<<4) + 11, 1);
add_word_settings("TX_PMA_RESET_OVR", (0x3f<<4) + 12, 1);
add_word_settings("TX_PMA_RESET", (0x3f<<4) + 13, 1);
add_word_settings("TX_RESET_OVR", (0x3f<<4) + 14, 1);
add_word_settings("TX_RESET", (0x3f<<4) + 15, 1);
add_word_settings("TX_PMA_LOOPBACK", (0x40<<4) + 0, 2);
add_word_settings("TX_PCS_LOOPBACK", (0x40<<4) + 2, 1);
add_word_settings("TX_DATAPATH_SEL", (0x40<<4) + 3, 2);
add_word_settings("TX_PRBS_OVR", (0x40<<4) + 5, 1);
add_word_settings("TX_PRBS_SEL", (0x40<<4) + 6, 3);
add_word_settings("TX_PRBS_FORCE_ERR", (0x40<<4) + 9, 1);
add_word_settings("TX_LOOPBACK_OVR", (0x40<<4) + 10, 1);
add_word_settings("TX_POWER_DOWN_OVR", (0x40<<4) + 11, 1);
add_word_settings("TX_POWER_DOWN_N", (0x40<<4) + 12, 1);
add_word_settings("TX_ELEC_IDLE_OVR", (0x41<<4) + 0, 1);
add_word_settings("TX_ELEC_IDLE", (0x41<<4) + 1, 1);
add_word_settings("TX_DETECT_RX_OVR", (0x41<<4) + 2, 1);
add_word_settings("TX_DETECT_RX", (0x41<<4) + 3, 1);
add_word_settings("TX_POLARITY_OVR", (0x41<<4) + 4, 1);
add_word_settings("TX_POLARITY", (0x41<<4) + 5, 1);
add_word_settings("TX_8B10B_EN_OVR", (0x41<<4) + 6, 1);
add_word_settings("TX_8B10B_EN", (0x41<<4) + 7, 1);
add_word_settings("TX_DATA_OVR", (0x41<<4) + 8, 1);
add_word_settings("TX_DATA_CNT", (0x41<<4) + 9, 3);
add_word_settings("TX_DATA_VALID", (0x41<<4) + 12, 1);
add_word_settings("TX_BUF_ERR", (0x41<<4) + 13, 1);
add_word_settings("TX_RESET_DONE", (0x41<<4) + 14, 1);
add_word_settings("TX_DATA", (0x42<<4) + 0, 16);
add_word_settings("PLL_EN_ADPLL_CTRL", (0x50<<4) + 0, 1);
add_word_settings("PLL_CONFIG_SEL", (0x50<<4) + 1, 1);
add_word_settings("PLL_SET_OP_LOCK", (0x50<<4) + 2, 1);
add_word_settings("PLL_ENFORCE_LOCK", (0x50<<4) + 3, 1);
add_word_settings("PLL_DISABLE_LOCK", (0x50<<4) + 4, 1);
add_word_settings("PLL_LOCK_WINDOW", (0x50<<4) + 5, 1);
add_word_settings("PLL_FAST_LOCK", (0x50<<4) + 6, 1);
add_word_settings("PLL_SYNC_BYPASS", (0x50<<4) + 7, 1);
add_word_settings("PLL_PFD_SELECT", (0x50<<4) + 8, 1);
add_word_settings("PLL_REF_BYPASS", (0x50<<4) + 9, 1);
add_word_settings("PLL_REF_SEL", (0x50<<4) + 10, 1);
add_word_settings("PLL_REF_RTERM", (0x50<<4) + 11, 1);
add_word_settings("PLL_FCNTRL", (0x51<<4) + 0, 6);
add_word_settings("PLL_MAIN_DIVSEL", (0x51<<4) + 6, 6);
add_word_settings("PLL_OUT_DIVSEL", (0x51<<4) + 12, 2);
add_word_settings("PLL_CI", (0x52<<4) + 0, 5);
add_word_settings("PLL_CP", (0x52<<4) + 5, 10);
add_word_settings("PLL_AO", (0x53<<4) + 0, 4);
add_word_settings("PLL_SCAP", (0x53<<4) + 4, 3);
add_word_settings("PLL_FILTER_SHIFT", (0x53<<4) + 7, 2);
add_word_settings("PLL_SAR_LIMIT", (0x53<<4) + 9, 3);
add_word_settings("PLL_FT", (0x54<<4) + 0, 11);
add_word_settings("PLL_OPEN_LOOP", (0x54<<4) + 11, 1);
add_word_settings("PLL_SCAP_AUTO_CAL", (0x54<<4) + 12, 1);
add_word_settings("PLL_LOCKED", (0x55<<4) + 0, 1);
add_word_settings("PLL_CAP_FT_OF", (0x55<<4) + 1, 1);
add_word_settings("PLL_CAP_FT_UF", (0x55<<4) + 2, 1);
add_word_settings("PLL_CAP_FT", (0x55<<4) + 3, 10);
add_word_settings("PLL_CAP_STATE", (0x55<<4) + 13, 2);
add_word_settings("PLL_SYNC_VALUE", (0x56<<4) + 0, 8);
add_word_settings("PLL_BISC_MODE", (0x57<<4) + 0, 3);
add_word_settings("PLL_BISC_TIMER_MAX", (0x57<<4) + 3, 4);
add_word_settings("PLL_BISC_OPT_DET_IND", (0x57<<4) + 7, 1);
add_word_settings("PLL_BISC_PFD_SEL", (0x57<<4) + 8, 1);
add_word_settings("PLL_BISC_DLY_DIR", (0x57<<4) + 9, 1);
add_word_settings("PLL_BISC_COR_DLY", (0x57<<4) + 10, 3);
add_word_settings("PLL_BISC_CAL_SIGN", (0x57<<4) + 13, 1);
add_word_settings("PLL_BISC_CAL_AUTO", (0x57<<4) + 14, 1);
add_word_settings("PLL_BISC_CP_MIN", (0x58<<4) + 0, 5);
add_word_settings("PLL_BISC_CP_MAX", (0x58<<4) + 5, 5);
add_word_settings("PLL_BISC_CP_START", (0x58<<4) + 10, 5);
add_word_settings("PLL_BISC_DLY_PFD_MON_REF", (0x59<<4) + 0, 5);
add_word_settings("PLL_BISC_DLY_PFD_MON_DIV", (0x59<<4) + 5, 5);
add_word_settings("PLL_BISC_TIMER_DONE", (0x5a<<4) + 0, 1);
add_word_settings("PLL_BISC_CP", (0x5a<<4) + 1, 7);
add_word_settings("PLL_BISC_CO", (0x5b<<4) + 0, 16);
add_word_settings("SERDES_ENABLE", (0x5c<<4) + 0, 1);
add_word_settings("SERDES_AUTO_INIT", (0x5c<<4) + 1, 1);
add_word_settings("SERDES_TESTMODE", (0x5c<<4) + 2, 1);
add_word_settings("RX_BUF_RESET_TIME", (0x00 << 4) + 0, 5);
add_word_settings("RX_PCS_RESET_TIME", (0x00 << 4) + 5, 5);
add_word_settings("RX_RESET_TIMER_PRESC", (0x00 << 4) + 10, 5);
add_word_settings("RX_RESET_DONE_GATE", (0x00 << 4) + 15, 1);
add_word_settings("RX_CDR_RESET_TIME", (0x01 << 4) + 0, 5);
add_word_settings("RX_EQA_RESET_TIME", (0x01 << 4) + 5, 5);
add_word_settings("RX_PMA_RESET_TIME", (0x01 << 4) + 10, 5);
add_word_settings("RX_WAIT_CDR_LOCK", (0x01 << 4) + 15, 1);
add_word_settings("RX_CALIB_EN", (0x02 << 4) + 0, 1);
add_word_settings("RX_CALIB_DONE", (0x02 << 4) + 1, 1);
add_word_settings("RX_CALIB_OVR", (0x02 << 4) + 2, 1);
add_word_settings("RX_CALIB_VAL", (0x02 << 4) + 3, 4);
add_word_settings("RX_CALIB_CAL", (0x02 << 4) + 7, 4);
add_word_settings("RX_RTERM_VCMSEL", (0x02 << 4) + 11, 3);
add_word_settings("RX_RTERM_PD", (0x02 << 4) + 14, 1);
add_word_settings("RX_EQA_CKP_LF", (0x03 << 4) + 0, 8);
add_word_settings("RX_EQA_CKP_HF", (0x03 << 4) + 8, 8);
add_word_settings("RX_EQA_CKP_OFFSET", (0x04 << 4) + 0, 8);
add_word_settings("RX_EN_EQA", (0x04 << 4) + 8, 1);
add_word_settings("RX_EQA_LOCK_CFG", (0x04 << 4) + 9, 4);
add_word_settings("RX_EQA_LOCKED", (0x04 << 4) + 13, 1);
add_word_settings("RX_TH_MON1", (0x05 << 4) + 0, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_0", (0x05 << 4) + 5, 1);
add_word_settings("RX_TH_MON2", (0x05 << 4) + 6, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_1", (0x05 << 4) + 11, 1);
add_word_settings("RX_TAPW", (0x06 << 4) + 0, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_2", (0x06 << 4) + 5, 1);
add_word_settings("RX_AFE_OFFSET", (0x06 << 4) + 6, 5);
add_word_settings("RX_EN_EQA_EXT_VALUE_3", (0x06 << 4) + 11, 1);
add_word_settings("RX_EQA_TAPW", (0x07 << 4) + 0, 5);
add_word_settings("RX_TH_MON", (0x07 << 4) + 5, 5);
add_word_settings("RX_OFFSET", (0x07 << 4) + 10, 4);
add_word_settings("RX_EQA_CONFIG", (0x08 << 4) + 0, 16);
add_word_settings("RX_AFE_PEAK", (0x09 << 4) + 0, 5);
add_word_settings("RX_AFE_GAIN", (0x09 << 4) + 5, 4);
add_word_settings("RX_AFE_VCMSEL", (0x09 << 4) + 9, 3);
add_word_settings("RX_CDR_CKP", (0x0a << 4) + 0, 8);
add_word_settings("RX_CDR_CKI", (0x0a << 4) + 8, 8);
add_word_settings("RX_CDR_TRANS_TH", (0x0b << 4) + 0, 9);
add_word_settings("RX_CDR_LOCK_CFG", (0x0b << 4) + 9, 6);
add_word_settings("RX_CDR_LOCKED", (0x0b << 4) + 15, 1);
add_word_settings("RX_CDR_FREQ_ACC_VAL", (0x0c << 4) + 0, 15);
add_word_settings("RX_CDR_PHASE_ACC_VAL", (0x0d << 4) + 0, 16);
add_word_settings("RX_CDR_FREQ_ACC", (0x0e << 4) + 0, 15);
add_word_settings("RX_CDR_PHASE_ACC", (0x0f << 4) + 0, 16);
add_word_settings("RX_CDR_SET_ACC_CONFIG", (0x10 << 4) + 0, 2);
add_word_settings("RX_CDR_FORCE_LOCK", (0x10 << 4) + 2, 1);
add_word_settings("RX_ALIGN_MCOMMA_VALUE", (0x11 << 4) + 0, 10);
add_word_settings("RX_MCOMMA_ALIGN_OVR", (0x11 << 4) + 10, 1);
add_word_settings("RX_MCOMMA_ALIGN", (0x11 << 4) + 11, 1);
add_word_settings("RX_ALIGN_PCOMMA_VALUE", (0x12 << 4) + 0, 10);
add_word_settings("RX_PCOMMA_ALIGN_OVR", (0x12 << 4) + 10, 1);
add_word_settings("RX_PCOMMA_ALIGN", (0x12 << 4) + 11, 1);
add_word_settings("RX_ALIGN_COMMA_WORD", (0x12 << 4) + 12, 2);
add_word_settings("RX_ALIGN_COMMA_ENABLE", (0x13 << 4) + 0, 10);
add_word_settings("RX_SLIDE_MODE", (0x13 << 4) + 10, 2);
add_word_settings("RX_COMMA_DETECT_EN_OVR", (0x13 << 4) + 12, 1);
add_word_settings("RX_COMMA_DETECT_EN", (0x13 << 4) + 13, 1);
add_word_settings("RX_SLIDE", (0x13 << 4) + 14, 2);
add_word_settings("RX_EYE_MEAS_EN", (0x14 << 4) + 0, 1);
add_word_settings("RX_EYE_MEAS_CFG", (0x14 << 4) + 1, 15);
add_word_settings("RX_MON_PH_OFFSET", (0x15 << 4) + 0, 6);
add_word_settings("RX_EYE_MEAS_CORRECT_11S", (0x16 << 4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_11S", (0x17 << 4) + 0, 16);
add_word_settings("RX_EYE_MEAS_CORRECT_00S", (0x18 << 4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_00S", (0x19 << 4) + 0, 16);
add_word_settings("RX_EYE_MEAS_CORRECT_001S", (0x1a << 4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_001S", (0x1b << 4) + 0, 16);
add_word_settings("RX_EYE_MEAS_CORRECT_110S", (0x1c << 4) + 0, 16);
add_word_settings("RX_EYE_MEAS_WRONG_110S", (0x1d << 4) + 0, 16);
add_word_settings("RX_EI_BIAS", (0x1e << 4) + 0, 4);
add_word_settings("RX_EI_BW_SEL", (0x1e << 4) + 4, 4);
add_word_settings("RX_EN_EI_DETECTOR_OVR", (0x1e << 4) + 8, 1);
add_word_settings("RX_EN_EI_DETECTOR", (0x1e << 4) + 9, 1);
add_word_settings("RX_EI_EN", (0x1e << 4) + 10, 1);
add_word_settings("RX_PRBS_ERR_CNT", (0x1f << 4) + 0, 15);
add_word_settings("RX_PRBS_LOCKED", (0x1f << 4) + 15, 1);
add_word_settings("RX_DATA_SEL", (0x20 << 4) + 0, 1);
add_word_settings("RX_DATA", (0x20 << 4) + 1, 15 + 16 * 4);
add_word_settings("RX_BUF_BYPASS", (0x25 << 4) + 0, 1);
add_word_settings("RX_CLKCOR_USE", (0x25 << 4) + 1, 1);
add_word_settings("RX_CLKCOR_MIN_LAT", (0x25 << 4) + 2, 6);
add_word_settings("RX_CLKCOR_MAX_LAT", (0x25 << 4) + 8, 6);
add_word_settings("RX_CLKCOR_SEQ_1_0", (0x26 << 4) + 0, 10);
add_word_settings("RX_CLKCOR_SEQ_1_1", (0x27 << 4) + 0, 10);
add_word_settings("RX_CLKCOR_SEQ_1_2", (0x28 << 4) + 0, 10);
add_word_settings("RX_CLKCOR_SEQ_1_3", (0x29 << 4) + 0, 10);
add_word_settings("RX_PMA_LOOPBACK", (0x2a << 4) + 0, 1);
add_word_settings("RX_PCS_LOOPBACK", (0x2a << 4) + 1, 1);
add_word_settings("RX_DATAPATH_SEL", (0x2a << 4) + 2, 2);
add_word_settings("RX_PRBS_OVR", (0x2a << 4) + 4, 1);
add_word_settings("RX_PRBS_SEL", (0x2a << 4) + 5, 3);
add_word_settings("RX_LOOPBACK_OVR", (0x2a << 4) + 8, 1);
add_word_settings("RX_PRBS_CNT_RESET", (0x2a << 4) + 9, 1);
add_word_settings("RX_POWER_DOWN_OVR", (0x2a << 4) + 10, 1);
add_word_settings("RX_POWER_DOWN_N", (0x2a << 4) + 11, 1);
add_word_settings("RX_PRESENT", (0x2a << 4) + 12, 1);
add_word_settings("RX_DETECT_DONE", (0x2a << 4) + 13, 1);
add_word_settings("RX_BUF_ERR", (0x2a << 4) + 14, 1);
add_word_settings("RX_RESET_OVR", (0x2b << 4) + 0, 1);
add_word_settings("RX_RESET", (0x2b << 4) + 1, 1);
add_word_settings("RX_PMA_RESET_OVR", (0x2b << 4) + 2, 1);
add_word_settings("RX_PMA_RESET", (0x2b << 4) + 3, 1);
add_word_settings("RX_EQA_RESET_OVR", (0x2b << 4) + 4, 1);
add_word_settings("RX_EQA_RESET", (0x2b << 4) + 5, 1);
add_word_settings("RX_CDR_RESET_OVR", (0x2b << 4) + 6, 1);
add_word_settings("RX_CDR_RESET", (0x2b << 4) + 7, 1);
add_word_settings("RX_PCS_RESET_OVR", (0x2b << 4) + 8, 1);
add_word_settings("RX_PCS_RESET", (0x2b << 4) + 9, 1);
add_word_settings("RX_BUF_RESET_OVR", (0x2b << 4) + 10, 1);
add_word_settings("RX_BUF_RESET", (0x2b << 4) + 11, 1);
add_word_settings("RX_POLARITY_OVR", (0x2b << 4) + 12, 1);
add_word_settings("RX_POLARITY", (0x2b << 4) + 13, 1);
add_word_settings("RX_8B10B_EN_OVR", (0x2b << 4) + 14, 1);
add_word_settings("RX_8B10B_EN", (0x2b << 4) + 15, 1);
add_word_settings("RX_8B10B_BYPASS", (0x2c << 4) + 0, 8);
add_word_settings("RX_BYTE_IS_ALIGNED", (0x2c << 4) + 8, 1);
add_word_settings("RX_BYTE_REALIGN", (0x2c << 4) + 9, 1);
add_word_settings("RX_RESET_DONE", (0x2c << 4) + 10, 1);
add_word_settings("RX_DBG_EN", (0x2d << 4) + 0, 1);
add_word_settings("RX_DBG_SEL", (0x2d << 4) + 1, 4);
add_word_settings("RX_DBG_MODE", (0x2d << 4) + 5, 1);
add_word_settings("RX_DBG_SRAM_DELAY", (0x2d << 4) + 6, 6);
add_word_settings("RX_DBG_ADDR", (0x2e << 4) + 0, 10);
add_word_settings("RX_DBG_RE", (0x2e << 4) + 10, 1);
add_word_settings("RX_DBG_WE", (0x2e << 4) + 11, 1);
add_word_settings("RX_DBG_DATA", (0x2e << 4) + 12, 20);
add_word_settings("TX_SEL_PRE", (0x30 << 4) + 0, 5);
add_word_settings("TX_SEL_POST", (0x30 << 4) + 5, 5);
add_word_settings("TX_AMP", (0x30 << 4) + 10, 5);
add_word_settings("TX_BRANCH_EN_PRE", (0x31 << 4) + 0, 5);
add_word_settings("TX_BRANCH_EN_MAIN", (0x31 << 4) + 5, 6);
add_word_settings("TX_BRANCH_EN_POST", (0x31 << 4) + 11, 5);
add_word_settings("TX_TAIL_CASCODE", (0x32 << 4) + 0, 3);
add_word_settings("TX_DC_ENABLE", (0x32 << 4) + 3, 7);
add_word_settings("TX_DC_OFFSET", (0x32 << 4) + 10, 5);
add_word_settings("TX_CM_RAISE", (0x33 << 4) + 0, 5);
add_word_settings("TX_CM_THRESHOLD_0", (0x33 << 4) + 5, 5);
add_word_settings("TX_CM_THRESHOLD_1", (0x33 << 4) + 10, 5);
add_word_settings("TX_SEL_PRE_EI", (0x34 << 4) + 0, 5);
add_word_settings("TX_SEL_POST_EI", (0x34 << 4) + 5, 5);
add_word_settings("TX_AMP_EI", (0x34 << 4) + 10, 5);
add_word_settings("TX_BRANCH_EN_PRE_EI", (0x35 << 4) + 0, 5);
add_word_settings("TX_BRANCH_EN_MAIN_EI", (0x35 << 4) + 5, 6);
add_word_settings("TX_BRANCH_EN_POST_EI", (0x35 << 4) + 11, 5);
add_word_settings("TX_TAIL_CASCODE_EI", (0x36 << 4) + 0, 3);
add_word_settings("TX_DC_ENABLE_EI", (0x36 << 4) + 3, 7);
add_word_settings("TX_DC_OFFSET_EI", (0x36 << 4) + 10, 5);
add_word_settings("TX_CM_RAISE_EI", (0x37 << 4) + 0, 5);
add_word_settings("TX_CM_THRESHOLD_0_EI", (0x37 << 4) + 5, 5);
add_word_settings("TX_CM_THRESHOLD_1_EI", (0x37 << 4) + 10, 5);
add_word_settings("TX_SEL_PRE_RXDET", (0x38 << 4) + 0, 5);
add_word_settings("TX_SEL_POST_RXDET", (0x38 << 4) + 5, 5);
add_word_settings("TX_AMP_RXDET", (0x38 << 4) + 10, 5);
add_word_settings("TX_BRANCH_EN_PRE_RXDET", (0x39 << 4) + 0, 5);
add_word_settings("TX_BRANCH_EN_MAIN_RXDET", (0x39 << 4) + 5, 6);
add_word_settings("TX_BRANCH_EN_POST_RXDET", (0x39 << 4) + 11, 5);
add_word_settings("TX_TAIL_CASCODE_RXDET", (0x3a << 4) + 0, 3);
add_word_settings("TX_DC_ENABLE_RXDET", (0x3a << 4) + 3, 7);
add_word_settings("TX_DC_OFFSET_RXDET", (0x3a << 4) + 10, 5);
add_word_settings("TX_CM_RAISE_RXDET", (0x3b << 4) + 0, 5);
add_word_settings("TX_CM_THRESHOLD_0_RXDET", (0x3b << 4) + 5, 5);
add_word_settings("TX_CM_THRESHOLD_1_RXDET", (0x3b << 4) + 10, 5);
add_word_settings("TX_CALIB_EN", (0x3c << 4) + 0, 1);
add_word_settings("TX_CALIB_DONE", (0x3c << 4) + 1, 1);
add_word_settings("TX_CALIB_OVR", (0x3c << 4) + 2, 1);
add_word_settings("TX_CALIB_VAL", (0x3c << 4) + 3, 4);
add_word_settings("TX_CALIB_CAL", (0x3c << 4) + 7, 4);
add_word_settings("TX_CM_REG_KI", (0x3d << 4) + 0, 8);
add_word_settings("TX_CM_SAR_EN", (0x3d << 4) + 8, 1);
add_word_settings("TX_CM_REG_EN", (0x3d << 4) + 9, 1);
add_word_settings("TX_CM_SAR_RESULT_0", (0x3e << 4) + 0, 5);
add_word_settings("TX_CM_SAR_RESULT_1", (0x3e << 4) + 5, 5);
add_word_settings("TX_PMA_RESET_TIME", (0x3f << 4) + 0, 5);
add_word_settings("TX_PCS_RESET_TIME", (0x3f << 4) + 5, 5);
add_word_settings("TX_PCS_RESET_OVR", (0x3f << 4) + 10, 1);
add_word_settings("TX_PCS_RESET", (0x3f << 4) + 11, 1);
add_word_settings("TX_PMA_RESET_OVR", (0x3f << 4) + 12, 1);
add_word_settings("TX_PMA_RESET", (0x3f << 4) + 13, 1);
add_word_settings("TX_RESET_OVR", (0x3f << 4) + 14, 1);
add_word_settings("TX_RESET", (0x3f << 4) + 15, 1);
add_word_settings("TX_PMA_LOOPBACK", (0x40 << 4) + 0, 2);
add_word_settings("TX_PCS_LOOPBACK", (0x40 << 4) + 2, 1);
add_word_settings("TX_DATAPATH_SEL", (0x40 << 4) + 3, 2);
add_word_settings("TX_PRBS_OVR", (0x40 << 4) + 5, 1);
add_word_settings("TX_PRBS_SEL", (0x40 << 4) + 6, 3);
add_word_settings("TX_PRBS_FORCE_ERR", (0x40 << 4) + 9, 1);
add_word_settings("TX_LOOPBACK_OVR", (0x40 << 4) + 10, 1);
add_word_settings("TX_POWER_DOWN_OVR", (0x40 << 4) + 11, 1);
add_word_settings("TX_POWER_DOWN_N", (0x40 << 4) + 12, 1);
add_word_settings("TX_ELEC_IDLE_OVR", (0x41 << 4) + 0, 1);
add_word_settings("TX_ELEC_IDLE", (0x41 << 4) + 1, 1);
add_word_settings("TX_DETECT_RX_OVR", (0x41 << 4) + 2, 1);
add_word_settings("TX_DETECT_RX", (0x41 << 4) + 3, 1);
add_word_settings("TX_POLARITY_OVR", (0x41 << 4) + 4, 1);
add_word_settings("TX_POLARITY", (0x41 << 4) + 5, 1);
add_word_settings("TX_8B10B_EN_OVR", (0x41 << 4) + 6, 1);
add_word_settings("TX_8B10B_EN", (0x41 << 4) + 7, 1);
add_word_settings("TX_DATA_OVR", (0x41 << 4) + 8, 1);
add_word_settings("TX_DATA_CNT", (0x41 << 4) + 9, 3);
add_word_settings("TX_DATA_VALID", (0x41 << 4) + 12, 1);
add_word_settings("TX_BUF_ERR", (0x41 << 4) + 13, 1);
add_word_settings("TX_RESET_DONE", (0x41 << 4) + 14, 1);
add_word_settings("TX_DATA", (0x42 << 4) + 0, 16);
add_word_settings("PLL_EN_ADPLL_CTRL", (0x50 << 4) + 0, 1);
add_word_settings("PLL_CONFIG_SEL", (0x50 << 4) + 1, 1);
add_word_settings("PLL_SET_OP_LOCK", (0x50 << 4) + 2, 1);
add_word_settings("PLL_ENFORCE_LOCK", (0x50 << 4) + 3, 1);
add_word_settings("PLL_DISABLE_LOCK", (0x50 << 4) + 4, 1);
add_word_settings("PLL_LOCK_WINDOW", (0x50 << 4) + 5, 1);
add_word_settings("PLL_FAST_LOCK", (0x50 << 4) + 6, 1);
add_word_settings("PLL_SYNC_BYPASS", (0x50 << 4) + 7, 1);
add_word_settings("PLL_PFD_SELECT", (0x50 << 4) + 8, 1);
add_word_settings("PLL_REF_BYPASS", (0x50 << 4) + 9, 1);
add_word_settings("PLL_REF_SEL", (0x50 << 4) + 10, 1);
add_word_settings("PLL_REF_RTERM", (0x50 << 4) + 11, 1);
add_word_settings("PLL_FCNTRL", (0x51 << 4) + 0, 6);
add_word_settings("PLL_MAIN_DIVSEL", (0x51 << 4) + 6, 6);
add_word_settings("PLL_OUT_DIVSEL", (0x51 << 4) + 12, 2);
add_word_settings("PLL_CI", (0x52 << 4) + 0, 5);
add_word_settings("PLL_CP", (0x52 << 4) + 5, 10);
add_word_settings("PLL_AO", (0x53 << 4) + 0, 4);
add_word_settings("PLL_SCAP", (0x53 << 4) + 4, 3);
add_word_settings("PLL_FILTER_SHIFT", (0x53 << 4) + 7, 2);
add_word_settings("PLL_SAR_LIMIT", (0x53 << 4) + 9, 3);
add_word_settings("PLL_FT", (0x54 << 4) + 0, 11);
add_word_settings("PLL_OPEN_LOOP", (0x54 << 4) + 11, 1);
add_word_settings("PLL_SCAP_AUTO_CAL", (0x54 << 4) + 12, 1);
add_word_settings("PLL_LOCKED", (0x55 << 4) + 0, 1);
add_word_settings("PLL_CAP_FT_OF", (0x55 << 4) + 1, 1);
add_word_settings("PLL_CAP_FT_UF", (0x55 << 4) + 2, 1);
add_word_settings("PLL_CAP_FT", (0x55 << 4) + 3, 10);
add_word_settings("PLL_CAP_STATE", (0x55 << 4) + 13, 2);
add_word_settings("PLL_SYNC_VALUE", (0x56 << 4) + 0, 8);
add_word_settings("PLL_BISC_MODE", (0x57 << 4) + 0, 3);
add_word_settings("PLL_BISC_TIMER_MAX", (0x57 << 4) + 3, 4);
add_word_settings("PLL_BISC_OPT_DET_IND", (0x57 << 4) + 7, 1);
add_word_settings("PLL_BISC_PFD_SEL", (0x57 << 4) + 8, 1);
add_word_settings("PLL_BISC_DLY_DIR", (0x57 << 4) + 9, 1);
add_word_settings("PLL_BISC_COR_DLY", (0x57 << 4) + 10, 3);
add_word_settings("PLL_BISC_CAL_SIGN", (0x57 << 4) + 13, 1);
add_word_settings("PLL_BISC_CAL_AUTO", (0x57 << 4) + 14, 1);
add_word_settings("PLL_BISC_CP_MIN", (0x58 << 4) + 0, 5);
add_word_settings("PLL_BISC_CP_MAX", (0x58 << 4) + 5, 5);
add_word_settings("PLL_BISC_CP_START", (0x58 << 4) + 10, 5);
add_word_settings("PLL_BISC_DLY_PFD_MON_REF", (0x59 << 4) + 0, 5);
add_word_settings("PLL_BISC_DLY_PFD_MON_DIV", (0x59 << 4) + 5, 5);
add_word_settings("PLL_BISC_TIMER_DONE", (0x5a << 4) + 0, 1);
add_word_settings("PLL_BISC_CP", (0x5a << 4) + 1, 7);
add_word_settings("PLL_BISC_CO", (0x5b << 4) + 0, 16);
add_word_settings("SERDES_ENABLE", (0x5c << 4) + 0, 1);
add_word_settings("SERDES_AUTO_INIT", (0x5c << 4) + 1, 1);
add_word_settings("SERDES_TESTMODE", (0x5c << 4) + 2, 1);
}
RamBitDatabase::RamBitDatabase() : BaseBitDatabase(Die::RAM_BLOCK_SIZE * 8)