diff --git a/vmmTbl.Makefile b/vmmTbl.Makefile
index 5f6267fc8356a04f791671f3b7546f926dc279cd..2b52e6a83c9342079411e0fbc331b16e33cc785a 100644
--- a/vmmTbl.Makefile
+++ b/vmmTbl.Makefile
@@ -13,9 +13,9 @@ SUBS = $(APPDB)/channels.sub
 
 SOURCES += $(APPSRC)/hybrid.cpp
 SOURCES += $(APPSRC)/vmm3a.cpp
-SOURCES += $(APPSRC)/vmm_config.cpp
+SOURCES += $(APPSRC)/VmmTblAPI.cpp
 SOURCES += $(APPSRC)/vmm_tbl.cpp
-SOURCES += $(APPSRC)/vmm_tbl_regs_map.cpp
+SOURCES += $(APPSRC)/VmmTblRegsMap.cpp
 
 DBDS    += $(APPSRC)/vmm_tbl.dbd
 
diff --git a/vmmTblApp/src/VmmTblAPI.cpp b/vmmTblApp/src/VmmTblAPI.cpp
index f497423f905aa3f9ccbc54b828bbebcb58090ee0..25ba0570886a733be34c91091461d84cdc894c0d 100644
--- a/vmmTblApp/src/VmmTblAPI.cpp
+++ b/vmmTblApp/src/VmmTblAPI.cpp
@@ -56,7 +56,7 @@ std::string VmmTblAPI::checkLinkStatus(int hyb) {
   return intToHexString(result).substr(pos, 1);
 }
 
-void VmmTblAPI::configFEN() {
+void VmmTblAPI::configFE() {
   userRegWrite("app_debug_data_format", 0);
   userRegWrite("app_latency_reset", 27);
   userRegWrite("app_latency_data_max", 1024);
diff --git a/vmmTblApp/src/VmmTblAPI.h b/vmmTblApp/src/VmmTblAPI.h
index 1d657193afd7cc4f8bc70da6c58c7b66fd93904e..9b2b2912d3146f4197f973dacb0562d0d879acff 100644
--- a/vmmTblApp/src/VmmTblAPI.h
+++ b/vmmTblApp/src/VmmTblAPI.h
@@ -32,6 +32,7 @@ public:
   std::string readIDChip(int hyb);
   std::string readGeoPos(int hyb);
   std::string checkLinkStatus(int hyb);
+  void configFE();
 
 private:
   Hybrid hybrids[HYBRIDS_PER_FEN];
diff --git a/vmmTblApp/src/VmmTblRegsMap.cpp b/vmmTblApp/src/VmmTblRegsMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1cdb3dda804881ecaf05d353353e12e72a2f6823
--- /dev/null
+++ b/vmmTblApp/src/VmmTblRegsMap.cpp
@@ -0,0 +1,807 @@
+#include "VmmTblRegsMap.h"
+
+extern const std::unordered_map<std::string, uint32_t> vmm_tbl_register_map = {
+    { "REGBANK_VERSION", 0x00000000 },
+    { "PHASH", 0x00000004 },
+    { "ro_test", 0x00000008 },
+    { "rw_test", 0x0000000c },
+    { "GIT_HASH2", 0x00000010 },
+    { "GIT_HASH1", 0x00000014 },
+    { "GIT_HASH0", 0x00000018 },
+    { "led_ctl", 0x0000001c },
+    { "vmm_clk_freq", 0x00000020 },
+    { "test_data_en", 0x00000024 },
+    { "test_data_rate", 0x00000028 },
+    { "hit_cnt_rst", 0x0000002c },
+    { "hit_cnt_hv00", 0x00000030 },
+    { "hit_cnt_hv01", 0x00000034 },
+    { "hit_cnt_hv02", 0x00000038 },
+    { "hit_cnt_hv03", 0x0000003c },
+    { "sc_acq_on_off", 0x00000040 },
+    { "sc_cfg_app", 0x00000044 },
+    { "sc_cfg_hyb", 0x00000048 },
+    { "sc_cfg_vmm", 0x0000004c },
+    { "sc_eeprom_board_id", 0x00000050 },
+    { "sc_app_link_status", 0x00000054 },
+    { "sc_app_reset_assister", 0x00000058 },
+    { "sc_app_board_id", 0x0000005c },
+    { "sc_i2c_geo_id", 0x00000060 },
+    { "sc_i2c_firmware_version", 0x00000064 },
+    { "sc_i2c_hybrid_id", 0x00000068 },
+    { "sc_i2c_config_check", 0x0000006c },
+    { "sc_i2c_reset_config_check", 0x00000070 },
+    { "sc_i2c_vmm_adc", 0x00000074 },
+    { "eeprom_board_id", 0x00000078 },
+    { "app_board_id", 0x0000007c },
+    { "app_debug_data_format", 0x00000080 },
+    { "app_latency_reset", 0x00000084 },
+    { "app_latency_data_max", 0x00000088 },
+    { "app_latency_data_jitter", 0x0000008c },
+    { "app_chmask", 0x00000090 },
+    { "app_tp_offset_first", 0x00000094 },
+    { "app_tp_offset", 0x00000098 },
+    { "app_tp_latency", 0x0000009c },
+    { "app_tp_number", 0x000000a0 },
+    { "app_acq_enable", 0x000000a4 },
+    { "app_link_status", 0x000000a8 },
+    { "hyb_tp_skew00", 0x000000ac },
+    { "hyb_tp_skew01", 0x000000b0 },
+    { "hyb_tp_skew02", 0x000000b4 },
+    { "hyb_tp_skew03", 0x000000b8 },
+    { "hyb_tp_skew04", 0x000000bc },
+    { "hyb_tp_width00", 0x000000c0 },
+    { "hyb_tp_width01", 0x000000c4 },
+    { "hyb_tp_width02", 0x000000c8 },
+    { "hyb_tp_width03", 0x000000cc },
+    { "hyb_tp_width04", 0x000000d0 },
+    { "hyb_tp_polarity00", 0x000000d4 },
+    { "hyb_tp_polarity01", 0x000000d8 },
+    { "hyb_tp_polarity02", 0x000000dc },
+    { "hyb_tp_polarity03", 0x000000e0 },
+    { "hyb_tp_polarity04", 0x000000e4 },
+    { "hyb_i2c_geoid00", 0x000000e8 },
+    { "hyb_i2c_geoid01", 0x000000ec },
+    { "hyb_i2c_geoid02", 0x000000f0 },
+    { "hyb_i2c_geoid03", 0x000000f4 },
+    { "hyb_i2c_geoid04", 0x000000f8 },
+    { "hyb_i2c_firmware_version00", 0x000000fc },
+    { "hyb_i2c_firmware_version01", 0x00000100 },
+    { "hyb_i2c_firmware_version02", 0x00000104 },
+    { "hyb_i2c_firmware_version03", 0x00000108 },
+    { "hyb_i2c_firmware_version04", 0x0000010c },
+    { "hyb_i2c_hybrid_id000", 0x00000110 },
+    { "hyb_i2c_hybrid_id001", 0x00000114 },
+    { "hyb_i2c_hybrid_id002", 0x00000118 },
+    { "hyb_i2c_hybrid_id003", 0x0000011c },
+    { "hyb_i2c_hybrid_id004", 0x00000120 },
+    { "hyb_i2c_hybrid_id100", 0x00000124 },
+    { "hyb_i2c_hybrid_id101", 0x00000128 },
+    { "hyb_i2c_hybrid_id102", 0x0000012c },
+    { "hyb_i2c_hybrid_id103", 0x00000130 },
+    { "hyb_i2c_hybrid_id104", 0x00000134 },
+    { "hyb_i2c_hybrid_id200", 0x00000138 },
+    { "hyb_i2c_hybrid_id201", 0x0000013c },
+    { "hyb_i2c_hybrid_id202", 0x00000140 },
+    { "hyb_i2c_hybrid_id203", 0x00000144 },
+    { "hyb_i2c_hybrid_id204", 0x00000148 },
+    { "hyb_i2c_hybrid_id300", 0x0000014c },
+    { "hyb_i2c_hybrid_id301", 0x00000150 },
+    { "hyb_i2c_hybrid_id302", 0x00000154 },
+    { "hyb_i2c_hybrid_id303", 0x00000158 },
+    { "hyb_i2c_hybrid_id304", 0x0000015c },
+    { "hyb_i2c_config_check00", 0x00000160 },
+    { "hyb_i2c_config_check01", 0x00000164 },
+    { "hyb_i2c_config_check02", 0x00000168 },
+    { "hyb_i2c_config_check03", 0x0000016c },
+    { "hyb_i2c_config_check04", 0x00000170 },
+    { "vmm_i2c_adc00", 0x00000174 },
+    { "vmm_i2c_adc01", 0x00000178 },
+    { "vmm_i2c_adc02", 0x0000017c },
+    { "vmm_i2c_adc03", 0x00000180 },
+    { "vmm_i2c_adc04", 0x00000184 },
+    { "vmm_i2c_adc05", 0x00000188 },
+    { "vmm_i2c_adc06", 0x0000018c },
+    { "vmm_i2c_adc07", 0x00000190 },
+    { "vmm_i2c_adc08", 0x00000194 },
+    { "vmm_i2c_adc09", 0x00000198 },
+    { "vmm_global_bank2_sp000", 0x0000019c },
+    { "vmm_global_bank2_sp001", 0x000001a0 },
+    { "vmm_global_bank2_sp002", 0x000001a4 },
+    { "vmm_global_bank2_sp003", 0x000001a8 },
+    { "vmm_global_bank2_sp004", 0x000001ac },
+    { "vmm_global_bank2_sp005", 0x000001b0 },
+    { "vmm_global_bank2_sp006", 0x000001b4 },
+    { "vmm_global_bank2_sp007", 0x000001b8 },
+    { "vmm_global_bank2_sp008", 0x000001bc },
+    { "vmm_global_bank2_sp009", 0x000001c0 },
+    { "vmm_global_bank2_sp100", 0x000001c4 },
+    { "vmm_global_bank2_sp101", 0x000001c8 },
+    { "vmm_global_bank2_sp102", 0x000001cc },
+    { "vmm_global_bank2_sp103", 0x000001d0 },
+    { "vmm_global_bank2_sp104", 0x000001d4 },
+    { "vmm_global_bank2_sp105", 0x000001d8 },
+    { "vmm_global_bank2_sp106", 0x000001dc },
+    { "vmm_global_bank2_sp107", 0x000001e0 },
+    { "vmm_global_bank2_sp108", 0x000001e4 },
+    { "vmm_global_bank2_sp109", 0x000001e8 },
+    { "vmm_global_bank2_sp200", 0x000001ec },
+    { "vmm_global_bank2_sp201", 0x000001f0 },
+    { "vmm_global_bank2_sp202", 0x000001f4 },
+    { "vmm_global_bank2_sp203", 0x000001f8 },
+    { "vmm_global_bank2_sp204", 0x000001fc },
+    { "vmm_global_bank2_sp205", 0x00000200 },
+    { "vmm_global_bank2_sp206", 0x00000204 },
+    { "vmm_global_bank2_sp207", 0x00000208 },
+    { "vmm_global_bank2_sp208", 0x0000020c },
+    { "vmm_global_bank2_sp209", 0x00000210 },
+    { "vmm_ch0000", 0x00000214 },
+    { "vmm_ch0001", 0x00000218 },
+    { "vmm_ch0002", 0x0000021c },
+    { "vmm_ch0003", 0x00000220 },
+    { "vmm_ch0004", 0x00000224 },
+    { "vmm_ch0005", 0x00000228 },
+    { "vmm_ch0006", 0x0000022c },
+    { "vmm_ch0007", 0x00000230 },
+    { "vmm_ch0008", 0x00000234 },
+    { "vmm_ch0009", 0x00000238 },
+    { "vmm_ch0100", 0x0000023c },
+    { "vmm_ch0101", 0x00000240 },
+    { "vmm_ch0102", 0x00000244 },
+    { "vmm_ch0103", 0x00000248 },
+    { "vmm_ch0104", 0x0000024c },
+    { "vmm_ch0105", 0x00000250 },
+    { "vmm_ch0106", 0x00000254 },
+    { "vmm_ch0107", 0x00000258 },
+    { "vmm_ch0108", 0x0000025c },
+    { "vmm_ch0109", 0x00000260 },
+    { "vmm_ch0200", 0x00000264 },
+    { "vmm_ch0201", 0x00000268 },
+    { "vmm_ch0202", 0x0000026c },
+    { "vmm_ch0203", 0x00000270 },
+    { "vmm_ch0204", 0x00000274 },
+    { "vmm_ch0205", 0x00000278 },
+    { "vmm_ch0206", 0x0000027c },
+    { "vmm_ch0207", 0x00000280 },
+    { "vmm_ch0208", 0x00000284 },
+    { "vmm_ch0209", 0x00000288 },
+    { "vmm_ch0300", 0x0000028c },
+    { "vmm_ch0301", 0x00000290 },
+    { "vmm_ch0302", 0x00000294 },
+    { "vmm_ch0303", 0x00000298 },
+    { "vmm_ch0304", 0x0000029c },
+    { "vmm_ch0305", 0x000002a0 },
+    { "vmm_ch0306", 0x000002a4 },
+    { "vmm_ch0307", 0x000002a8 },
+    { "vmm_ch0308", 0x000002ac },
+    { "vmm_ch0309", 0x000002b0 },
+    { "vmm_ch0400", 0x000002b4 },
+    { "vmm_ch0401", 0x000002b8 },
+    { "vmm_ch0402", 0x000002bc },
+    { "vmm_ch0403", 0x000002c0 },
+    { "vmm_ch0404", 0x000002c4 },
+    { "vmm_ch0405", 0x000002c8 },
+    { "vmm_ch0406", 0x000002cc },
+    { "vmm_ch0407", 0x000002d0 },
+    { "vmm_ch0408", 0x000002d4 },
+    { "vmm_ch0409", 0x000002d8 },
+    { "vmm_ch0500", 0x000002dc },
+    { "vmm_ch0501", 0x000002e0 },
+    { "vmm_ch0502", 0x000002e4 },
+    { "vmm_ch0503", 0x000002e8 },
+    { "vmm_ch0504", 0x000002ec },
+    { "vmm_ch0505", 0x000002f0 },
+    { "vmm_ch0506", 0x000002f4 },
+    { "vmm_ch0507", 0x000002f8 },
+    { "vmm_ch0508", 0x000002fc },
+    { "vmm_ch0509", 0x00000300 },
+    { "vmm_ch0600", 0x00000304 },
+    { "vmm_ch0601", 0x00000308 },
+    { "vmm_ch0602", 0x0000030c },
+    { "vmm_ch0603", 0x00000310 },
+    { "vmm_ch0604", 0x00000314 },
+    { "vmm_ch0605", 0x00000318 },
+    { "vmm_ch0606", 0x0000031c },
+    { "vmm_ch0607", 0x00000320 },
+    { "vmm_ch0608", 0x00000324 },
+    { "vmm_ch0609", 0x00000328 },
+    { "vmm_ch0700", 0x0000032c },
+    { "vmm_ch0701", 0x00000330 },
+    { "vmm_ch0702", 0x00000334 },
+    { "vmm_ch0703", 0x00000338 },
+    { "vmm_ch0704", 0x0000033c },
+    { "vmm_ch0705", 0x00000340 },
+    { "vmm_ch0706", 0x00000344 },
+    { "vmm_ch0707", 0x00000348 },
+    { "vmm_ch0708", 0x0000034c },
+    { "vmm_ch0709", 0x00000350 },
+    { "vmm_ch0800", 0x00000354 },
+    { "vmm_ch0801", 0x00000358 },
+    { "vmm_ch0802", 0x0000035c },
+    { "vmm_ch0803", 0x00000360 },
+    { "vmm_ch0804", 0x00000364 },
+    { "vmm_ch0805", 0x00000368 },
+    { "vmm_ch0806", 0x0000036c },
+    { "vmm_ch0807", 0x00000370 },
+    { "vmm_ch0808", 0x00000374 },
+    { "vmm_ch0809", 0x00000378 },
+    { "vmm_ch0900", 0x0000037c },
+    { "vmm_ch0901", 0x00000380 },
+    { "vmm_ch0902", 0x00000384 },
+    { "vmm_ch0903", 0x00000388 },
+    { "vmm_ch0904", 0x0000038c },
+    { "vmm_ch0905", 0x00000390 },
+    { "vmm_ch0906", 0x00000394 },
+    { "vmm_ch0907", 0x00000398 },
+    { "vmm_ch0908", 0x0000039c },
+    { "vmm_ch0909", 0x000003a0 },
+    { "vmm_ch1000", 0x000003a4 },
+    { "vmm_ch1001", 0x000003a8 },
+    { "vmm_ch1002", 0x000003ac },
+    { "vmm_ch1003", 0x000003b0 },
+    { "vmm_ch1004", 0x000003b4 },
+    { "vmm_ch1005", 0x000003b8 },
+    { "vmm_ch1006", 0x000003bc },
+    { "vmm_ch1007", 0x000003c0 },
+    { "vmm_ch1008", 0x000003c4 },
+    { "vmm_ch1009", 0x000003c8 },
+    { "vmm_ch1100", 0x000003cc },
+    { "vmm_ch1101", 0x000003d0 },
+    { "vmm_ch1102", 0x000003d4 },
+    { "vmm_ch1103", 0x000003d8 },
+    { "vmm_ch1104", 0x000003dc },
+    { "vmm_ch1105", 0x000003e0 },
+    { "vmm_ch1106", 0x000003e4 },
+    { "vmm_ch1107", 0x000003e8 },
+    { "vmm_ch1108", 0x000003ec },
+    { "vmm_ch1109", 0x000003f0 },
+    { "vmm_ch1200", 0x000003f4 },
+    { "vmm_ch1201", 0x000003f8 },
+    { "vmm_ch1202", 0x000003fc },
+    { "vmm_ch1203", 0x00000400 },
+    { "vmm_ch1204", 0x00000404 },
+    { "vmm_ch1205", 0x00000408 },
+    { "vmm_ch1206", 0x0000040c },
+    { "vmm_ch1207", 0x00000410 },
+    { "vmm_ch1208", 0x00000414 },
+    { "vmm_ch1209", 0x00000418 },
+    { "vmm_ch1300", 0x0000041c },
+    { "vmm_ch1301", 0x00000420 },
+    { "vmm_ch1302", 0x00000424 },
+    { "vmm_ch1303", 0x00000428 },
+    { "vmm_ch1304", 0x0000042c },
+    { "vmm_ch1305", 0x00000430 },
+    { "vmm_ch1306", 0x00000434 },
+    { "vmm_ch1307", 0x00000438 },
+    { "vmm_ch1308", 0x0000043c },
+    { "vmm_ch1309", 0x00000440 },
+    { "vmm_ch1400", 0x00000444 },
+    { "vmm_ch1401", 0x00000448 },
+    { "vmm_ch1402", 0x0000044c },
+    { "vmm_ch1403", 0x00000450 },
+    { "vmm_ch1404", 0x00000454 },
+    { "vmm_ch1405", 0x00000458 },
+    { "vmm_ch1406", 0x0000045c },
+    { "vmm_ch1407", 0x00000460 },
+    { "vmm_ch1408", 0x00000464 },
+    { "vmm_ch1409", 0x00000468 },
+    { "vmm_ch1500", 0x0000046c },
+    { "vmm_ch1501", 0x00000470 },
+    { "vmm_ch1502", 0x00000474 },
+    { "vmm_ch1503", 0x00000478 },
+    { "vmm_ch1504", 0x0000047c },
+    { "vmm_ch1505", 0x00000480 },
+    { "vmm_ch1506", 0x00000484 },
+    { "vmm_ch1507", 0x00000488 },
+    { "vmm_ch1508", 0x0000048c },
+    { "vmm_ch1509", 0x00000490 },
+    { "vmm_ch1600", 0x00000494 },
+    { "vmm_ch1601", 0x00000498 },
+    { "vmm_ch1602", 0x0000049c },
+    { "vmm_ch1603", 0x000004a0 },
+    { "vmm_ch1604", 0x000004a4 },
+    { "vmm_ch1605", 0x000004a8 },
+    { "vmm_ch1606", 0x000004ac },
+    { "vmm_ch1607", 0x000004b0 },
+    { "vmm_ch1608", 0x000004b4 },
+    { "vmm_ch1609", 0x000004b8 },
+    { "vmm_ch1700", 0x000004bc },
+    { "vmm_ch1701", 0x000004c0 },
+    { "vmm_ch1702", 0x000004c4 },
+    { "vmm_ch1703", 0x000004c8 },
+    { "vmm_ch1704", 0x000004cc },
+    { "vmm_ch1705", 0x000004d0 },
+    { "vmm_ch1706", 0x000004d4 },
+    { "vmm_ch1707", 0x000004d8 },
+    { "vmm_ch1708", 0x000004dc },
+    { "vmm_ch1709", 0x000004e0 },
+    { "vmm_ch1800", 0x000004e4 },
+    { "vmm_ch1801", 0x000004e8 },
+    { "vmm_ch1802", 0x000004ec },
+    { "vmm_ch1803", 0x000004f0 },
+    { "vmm_ch1804", 0x000004f4 },
+    { "vmm_ch1805", 0x000004f8 },
+    { "vmm_ch1806", 0x000004fc },
+    { "vmm_ch1807", 0x00000500 },
+    { "vmm_ch1808", 0x00000504 },
+    { "vmm_ch1809", 0x00000508 },
+    { "vmm_ch1900", 0x0000050c },
+    { "vmm_ch1901", 0x00000510 },
+    { "vmm_ch1902", 0x00000514 },
+    { "vmm_ch1903", 0x00000518 },
+    { "vmm_ch1904", 0x0000051c },
+    { "vmm_ch1905", 0x00000520 },
+    { "vmm_ch1906", 0x00000524 },
+    { "vmm_ch1907", 0x00000528 },
+    { "vmm_ch1908", 0x0000052c },
+    { "vmm_ch1909", 0x00000530 },
+    { "vmm_ch2000", 0x00000534 },
+    { "vmm_ch2001", 0x00000538 },
+    { "vmm_ch2002", 0x0000053c },
+    { "vmm_ch2003", 0x00000540 },
+    { "vmm_ch2004", 0x00000544 },
+    { "vmm_ch2005", 0x00000548 },
+    { "vmm_ch2006", 0x0000054c },
+    { "vmm_ch2007", 0x00000550 },
+    { "vmm_ch2008", 0x00000554 },
+    { "vmm_ch2009", 0x00000558 },
+    { "vmm_ch2100", 0x0000055c },
+    { "vmm_ch2101", 0x00000560 },
+    { "vmm_ch2102", 0x00000564 },
+    { "vmm_ch2103", 0x00000568 },
+    { "vmm_ch2104", 0x0000056c },
+    { "vmm_ch2105", 0x00000570 },
+    { "vmm_ch2106", 0x00000574 },
+    { "vmm_ch2107", 0x00000578 },
+    { "vmm_ch2108", 0x0000057c },
+    { "vmm_ch2109", 0x00000580 },
+    { "vmm_ch2200", 0x00000584 },
+    { "vmm_ch2201", 0x00000588 },
+    { "vmm_ch2202", 0x0000058c },
+    { "vmm_ch2203", 0x00000590 },
+    { "vmm_ch2204", 0x00000594 },
+    { "vmm_ch2205", 0x00000598 },
+    { "vmm_ch2206", 0x0000059c },
+    { "vmm_ch2207", 0x000005a0 },
+    { "vmm_ch2208", 0x000005a4 },
+    { "vmm_ch2209", 0x000005a8 },
+    { "vmm_ch2300", 0x000005ac },
+    { "vmm_ch2301", 0x000005b0 },
+    { "vmm_ch2302", 0x000005b4 },
+    { "vmm_ch2303", 0x000005b8 },
+    { "vmm_ch2304", 0x000005bc },
+    { "vmm_ch2305", 0x000005c0 },
+    { "vmm_ch2306", 0x000005c4 },
+    { "vmm_ch2307", 0x000005c8 },
+    { "vmm_ch2308", 0x000005cc },
+    { "vmm_ch2309", 0x000005d0 },
+    { "vmm_ch2400", 0x000005d4 },
+    { "vmm_ch2401", 0x000005d8 },
+    { "vmm_ch2402", 0x000005dc },
+    { "vmm_ch2403", 0x000005e0 },
+    { "vmm_ch2404", 0x000005e4 },
+    { "vmm_ch2405", 0x000005e8 },
+    { "vmm_ch2406", 0x000005ec },
+    { "vmm_ch2407", 0x000005f0 },
+    { "vmm_ch2408", 0x000005f4 },
+    { "vmm_ch2409", 0x000005f8 },
+    { "vmm_ch2500", 0x000005fc },
+    { "vmm_ch2501", 0x00000600 },
+    { "vmm_ch2502", 0x00000604 },
+    { "vmm_ch2503", 0x00000608 },
+    { "vmm_ch2504", 0x0000060c },
+    { "vmm_ch2505", 0x00000610 },
+    { "vmm_ch2506", 0x00000614 },
+    { "vmm_ch2507", 0x00000618 },
+    { "vmm_ch2508", 0x0000061c },
+    { "vmm_ch2509", 0x00000620 },
+    { "vmm_ch2600", 0x00000624 },
+    { "vmm_ch2601", 0x00000628 },
+    { "vmm_ch2602", 0x0000062c },
+    { "vmm_ch2603", 0x00000630 },
+    { "vmm_ch2604", 0x00000634 },
+    { "vmm_ch2605", 0x00000638 },
+    { "vmm_ch2606", 0x0000063c },
+    { "vmm_ch2607", 0x00000640 },
+    { "vmm_ch2608", 0x00000644 },
+    { "vmm_ch2609", 0x00000648 },
+    { "vmm_ch2700", 0x0000064c },
+    { "vmm_ch2701", 0x00000650 },
+    { "vmm_ch2702", 0x00000654 },
+    { "vmm_ch2703", 0x00000658 },
+    { "vmm_ch2704", 0x0000065c },
+    { "vmm_ch2705", 0x00000660 },
+    { "vmm_ch2706", 0x00000664 },
+    { "vmm_ch2707", 0x00000668 },
+    { "vmm_ch2708", 0x0000066c },
+    { "vmm_ch2709", 0x00000670 },
+    { "vmm_ch2800", 0x00000674 },
+    { "vmm_ch2801", 0x00000678 },
+    { "vmm_ch2802", 0x0000067c },
+    { "vmm_ch2803", 0x00000680 },
+    { "vmm_ch2804", 0x00000684 },
+    { "vmm_ch2805", 0x00000688 },
+    { "vmm_ch2806", 0x0000068c },
+    { "vmm_ch2807", 0x00000690 },
+    { "vmm_ch2808", 0x00000694 },
+    { "vmm_ch2809", 0x00000698 },
+    { "vmm_ch2900", 0x0000069c },
+    { "vmm_ch2901", 0x000006a0 },
+    { "vmm_ch2902", 0x000006a4 },
+    { "vmm_ch2903", 0x000006a8 },
+    { "vmm_ch2904", 0x000006ac },
+    { "vmm_ch2905", 0x000006b0 },
+    { "vmm_ch2906", 0x000006b4 },
+    { "vmm_ch2907", 0x000006b8 },
+    { "vmm_ch2908", 0x000006bc },
+    { "vmm_ch2909", 0x000006c0 },
+    { "vmm_ch3000", 0x000006c4 },
+    { "vmm_ch3001", 0x000006c8 },
+    { "vmm_ch3002", 0x000006cc },
+    { "vmm_ch3003", 0x000006d0 },
+    { "vmm_ch3004", 0x000006d4 },
+    { "vmm_ch3005", 0x000006d8 },
+    { "vmm_ch3006", 0x000006dc },
+    { "vmm_ch3007", 0x000006e0 },
+    { "vmm_ch3008", 0x000006e4 },
+    { "vmm_ch3009", 0x000006e8 },
+    { "vmm_ch3100", 0x000006ec },
+    { "vmm_ch3101", 0x000006f0 },
+    { "vmm_ch3102", 0x000006f4 },
+    { "vmm_ch3103", 0x000006f8 },
+    { "vmm_ch3104", 0x000006fc },
+    { "vmm_ch3105", 0x00000700 },
+    { "vmm_ch3106", 0x00000704 },
+    { "vmm_ch3107", 0x00000708 },
+    { "vmm_ch3108", 0x0000070c },
+    { "vmm_ch3109", 0x00000710 },
+    { "vmm_ch3200", 0x00000714 },
+    { "vmm_ch3201", 0x00000718 },
+    { "vmm_ch3202", 0x0000071c },
+    { "vmm_ch3203", 0x00000720 },
+    { "vmm_ch3204", 0x00000724 },
+    { "vmm_ch3205", 0x00000728 },
+    { "vmm_ch3206", 0x0000072c },
+    { "vmm_ch3207", 0x00000730 },
+    { "vmm_ch3208", 0x00000734 },
+    { "vmm_ch3209", 0x00000738 },
+    { "vmm_ch3300", 0x0000073c },
+    { "vmm_ch3301", 0x00000740 },
+    { "vmm_ch3302", 0x00000744 },
+    { "vmm_ch3303", 0x00000748 },
+    { "vmm_ch3304", 0x0000074c },
+    { "vmm_ch3305", 0x00000750 },
+    { "vmm_ch3306", 0x00000754 },
+    { "vmm_ch3307", 0x00000758 },
+    { "vmm_ch3308", 0x0000075c },
+    { "vmm_ch3309", 0x00000760 },
+    { "vmm_ch3400", 0x00000764 },
+    { "vmm_ch3401", 0x00000768 },
+    { "vmm_ch3402", 0x0000076c },
+    { "vmm_ch3403", 0x00000770 },
+    { "vmm_ch3404", 0x00000774 },
+    { "vmm_ch3405", 0x00000778 },
+    { "vmm_ch3406", 0x0000077c },
+    { "vmm_ch3407", 0x00000780 },
+    { "vmm_ch3408", 0x00000784 },
+    { "vmm_ch3409", 0x00000788 },
+    { "vmm_ch3500", 0x0000078c },
+    { "vmm_ch3501", 0x00000790 },
+    { "vmm_ch3502", 0x00000794 },
+    { "vmm_ch3503", 0x00000798 },
+    { "vmm_ch3504", 0x0000079c },
+    { "vmm_ch3505", 0x000007a0 },
+    { "vmm_ch3506", 0x000007a4 },
+    { "vmm_ch3507", 0x000007a8 },
+    { "vmm_ch3508", 0x000007ac },
+    { "vmm_ch3509", 0x000007b0 },
+    { "vmm_ch3600", 0x000007b4 },
+    { "vmm_ch3601", 0x000007b8 },
+    { "vmm_ch3602", 0x000007bc },
+    { "vmm_ch3603", 0x000007c0 },
+    { "vmm_ch3604", 0x000007c4 },
+    { "vmm_ch3605", 0x000007c8 },
+    { "vmm_ch3606", 0x000007cc },
+    { "vmm_ch3607", 0x000007d0 },
+    { "vmm_ch3608", 0x000007d4 },
+    { "vmm_ch3609", 0x000007d8 },
+    { "vmm_ch3700", 0x000007dc },
+    { "vmm_ch3701", 0x000007e0 },
+    { "vmm_ch3702", 0x000007e4 },
+    { "vmm_ch3703", 0x000007e8 },
+    { "vmm_ch3704", 0x000007ec },
+    { "vmm_ch3705", 0x000007f0 },
+    { "vmm_ch3706", 0x000007f4 },
+    { "vmm_ch3707", 0x000007f8 },
+    { "vmm_ch3708", 0x000007fc },
+    { "vmm_ch3709", 0x00000800 },
+    { "vmm_ch3800", 0x00000804 },
+    { "vmm_ch3801", 0x00000808 },
+    { "vmm_ch3802", 0x0000080c },
+    { "vmm_ch3803", 0x00000810 },
+    { "vmm_ch3804", 0x00000814 },
+    { "vmm_ch3805", 0x00000818 },
+    { "vmm_ch3806", 0x0000081c },
+    { "vmm_ch3807", 0x00000820 },
+    { "vmm_ch3808", 0x00000824 },
+    { "vmm_ch3809", 0x00000828 },
+    { "vmm_ch3900", 0x0000082c },
+    { "vmm_ch3901", 0x00000830 },
+    { "vmm_ch3902", 0x00000834 },
+    { "vmm_ch3903", 0x00000838 },
+    { "vmm_ch3904", 0x0000083c },
+    { "vmm_ch3905", 0x00000840 },
+    { "vmm_ch3906", 0x00000844 },
+    { "vmm_ch3907", 0x00000848 },
+    { "vmm_ch3908", 0x0000084c },
+    { "vmm_ch3909", 0x00000850 },
+    { "vmm_ch4000", 0x00000854 },
+    { "vmm_ch4001", 0x00000858 },
+    { "vmm_ch4002", 0x0000085c },
+    { "vmm_ch4003", 0x00000860 },
+    { "vmm_ch4004", 0x00000864 },
+    { "vmm_ch4005", 0x00000868 },
+    { "vmm_ch4006", 0x0000086c },
+    { "vmm_ch4007", 0x00000870 },
+    { "vmm_ch4008", 0x00000874 },
+    { "vmm_ch4009", 0x00000878 },
+    { "vmm_ch4100", 0x0000087c },
+    { "vmm_ch4101", 0x00000880 },
+    { "vmm_ch4102", 0x00000884 },
+    { "vmm_ch4103", 0x00000888 },
+    { "vmm_ch4104", 0x0000088c },
+    { "vmm_ch4105", 0x00000890 },
+    { "vmm_ch4106", 0x00000894 },
+    { "vmm_ch4107", 0x00000898 },
+    { "vmm_ch4108", 0x0000089c },
+    { "vmm_ch4109", 0x000008a0 },
+    { "vmm_ch4200", 0x000008a4 },
+    { "vmm_ch4201", 0x000008a8 },
+    { "vmm_ch4202", 0x000008ac },
+    { "vmm_ch4203", 0x000008b0 },
+    { "vmm_ch4204", 0x000008b4 },
+    { "vmm_ch4205", 0x000008b8 },
+    { "vmm_ch4206", 0x000008bc },
+    { "vmm_ch4207", 0x000008c0 },
+    { "vmm_ch4208", 0x000008c4 },
+    { "vmm_ch4209", 0x000008c8 },
+    { "vmm_ch4300", 0x000008cc },
+    { "vmm_ch4301", 0x000008d0 },
+    { "vmm_ch4302", 0x000008d4 },
+    { "vmm_ch4303", 0x000008d8 },
+    { "vmm_ch4304", 0x000008dc },
+    { "vmm_ch4305", 0x000008e0 },
+    { "vmm_ch4306", 0x000008e4 },
+    { "vmm_ch4307", 0x000008e8 },
+    { "vmm_ch4308", 0x000008ec },
+    { "vmm_ch4309", 0x000008f0 },
+    { "vmm_ch4400", 0x000008f4 },
+    { "vmm_ch4401", 0x000008f8 },
+    { "vmm_ch4402", 0x000008fc },
+    { "vmm_ch4403", 0x00000900 },
+    { "vmm_ch4404", 0x00000904 },
+    { "vmm_ch4405", 0x00000908 },
+    { "vmm_ch4406", 0x0000090c },
+    { "vmm_ch4407", 0x00000910 },
+    { "vmm_ch4408", 0x00000914 },
+    { "vmm_ch4409", 0x00000918 },
+    { "vmm_ch4500", 0x0000091c },
+    { "vmm_ch4501", 0x00000920 },
+    { "vmm_ch4502", 0x00000924 },
+    { "vmm_ch4503", 0x00000928 },
+    { "vmm_ch4504", 0x0000092c },
+    { "vmm_ch4505", 0x00000930 },
+    { "vmm_ch4506", 0x00000934 },
+    { "vmm_ch4507", 0x00000938 },
+    { "vmm_ch4508", 0x0000093c },
+    { "vmm_ch4509", 0x00000940 },
+    { "vmm_ch4600", 0x00000944 },
+    { "vmm_ch4601", 0x00000948 },
+    { "vmm_ch4602", 0x0000094c },
+    { "vmm_ch4603", 0x00000950 },
+    { "vmm_ch4604", 0x00000954 },
+    { "vmm_ch4605", 0x00000958 },
+    { "vmm_ch4606", 0x0000095c },
+    { "vmm_ch4607", 0x00000960 },
+    { "vmm_ch4608", 0x00000964 },
+    { "vmm_ch4609", 0x00000968 },
+    { "vmm_ch4700", 0x0000096c },
+    { "vmm_ch4701", 0x00000970 },
+    { "vmm_ch4702", 0x00000974 },
+    { "vmm_ch4703", 0x00000978 },
+    { "vmm_ch4704", 0x0000097c },
+    { "vmm_ch4705", 0x00000980 },
+    { "vmm_ch4706", 0x00000984 },
+    { "vmm_ch4707", 0x00000988 },
+    { "vmm_ch4708", 0x0000098c },
+    { "vmm_ch4709", 0x00000990 },
+    { "vmm_ch4800", 0x00000994 },
+    { "vmm_ch4801", 0x00000998 },
+    { "vmm_ch4802", 0x0000099c },
+    { "vmm_ch4803", 0x000009a0 },
+    { "vmm_ch4804", 0x000009a4 },
+    { "vmm_ch4805", 0x000009a8 },
+    { "vmm_ch4806", 0x000009ac },
+    { "vmm_ch4807", 0x000009b0 },
+    { "vmm_ch4808", 0x000009b4 },
+    { "vmm_ch4809", 0x000009b8 },
+    { "vmm_ch4900", 0x000009bc },
+    { "vmm_ch4901", 0x000009c0 },
+    { "vmm_ch4902", 0x000009c4 },
+    { "vmm_ch4903", 0x000009c8 },
+    { "vmm_ch4904", 0x000009cc },
+    { "vmm_ch4905", 0x000009d0 },
+    { "vmm_ch4906", 0x000009d4 },
+    { "vmm_ch4907", 0x000009d8 },
+    { "vmm_ch4908", 0x000009dc },
+    { "vmm_ch4909", 0x000009e0 },
+    { "vmm_ch5000", 0x000009e4 },
+    { "vmm_ch5001", 0x000009e8 },
+    { "vmm_ch5002", 0x000009ec },
+    { "vmm_ch5003", 0x000009f0 },
+    { "vmm_ch5004", 0x000009f4 },
+    { "vmm_ch5005", 0x000009f8 },
+    { "vmm_ch5006", 0x000009fc },
+    { "vmm_ch5007", 0x00000a00 },
+    { "vmm_ch5008", 0x00000a04 },
+    { "vmm_ch5009", 0x00000a08 },
+    { "vmm_ch5100", 0x00000a0c },
+    { "vmm_ch5101", 0x00000a10 },
+    { "vmm_ch5102", 0x00000a14 },
+    { "vmm_ch5103", 0x00000a18 },
+    { "vmm_ch5104", 0x00000a1c },
+    { "vmm_ch5105", 0x00000a20 },
+    { "vmm_ch5106", 0x00000a24 },
+    { "vmm_ch5107", 0x00000a28 },
+    { "vmm_ch5108", 0x00000a2c },
+    { "vmm_ch5109", 0x00000a30 },
+    { "vmm_ch5200", 0x00000a34 },
+    { "vmm_ch5201", 0x00000a38 },
+    { "vmm_ch5202", 0x00000a3c },
+    { "vmm_ch5203", 0x00000a40 },
+    { "vmm_ch5204", 0x00000a44 },
+    { "vmm_ch5205", 0x00000a48 },
+    { "vmm_ch5206", 0x00000a4c },
+    { "vmm_ch5207", 0x00000a50 },
+    { "vmm_ch5208", 0x00000a54 },
+    { "vmm_ch5209", 0x00000a58 },
+    { "vmm_ch5300", 0x00000a5c },
+    { "vmm_ch5301", 0x00000a60 },
+    { "vmm_ch5302", 0x00000a64 },
+    { "vmm_ch5303", 0x00000a68 },
+    { "vmm_ch5304", 0x00000a6c },
+    { "vmm_ch5305", 0x00000a70 },
+    { "vmm_ch5306", 0x00000a74 },
+    { "vmm_ch5307", 0x00000a78 },
+    { "vmm_ch5308", 0x00000a7c },
+    { "vmm_ch5309", 0x00000a80 },
+    { "vmm_ch5400", 0x00000a84 },
+    { "vmm_ch5401", 0x00000a88 },
+    { "vmm_ch5402", 0x00000a8c },
+    { "vmm_ch5403", 0x00000a90 },
+    { "vmm_ch5404", 0x00000a94 },
+    { "vmm_ch5405", 0x00000a98 },
+    { "vmm_ch5406", 0x00000a9c },
+    { "vmm_ch5407", 0x00000aa0 },
+    { "vmm_ch5408", 0x00000aa4 },
+    { "vmm_ch5409", 0x00000aa8 },
+    { "vmm_ch5500", 0x00000aac },
+    { "vmm_ch5501", 0x00000ab0 },
+    { "vmm_ch5502", 0x00000ab4 },
+    { "vmm_ch5503", 0x00000ab8 },
+    { "vmm_ch5504", 0x00000abc },
+    { "vmm_ch5505", 0x00000ac0 },
+    { "vmm_ch5506", 0x00000ac4 },
+    { "vmm_ch5507", 0x00000ac8 },
+    { "vmm_ch5508", 0x00000acc },
+    { "vmm_ch5509", 0x00000ad0 },
+    { "vmm_ch5600", 0x00000ad4 },
+    { "vmm_ch5601", 0x00000ad8 },
+    { "vmm_ch5602", 0x00000adc },
+    { "vmm_ch5603", 0x00000ae0 },
+    { "vmm_ch5604", 0x00000ae4 },
+    { "vmm_ch5605", 0x00000ae8 },
+    { "vmm_ch5606", 0x00000aec },
+    { "vmm_ch5607", 0x00000af0 },
+    { "vmm_ch5608", 0x00000af4 },
+    { "vmm_ch5609", 0x00000af8 },
+    { "vmm_ch5700", 0x00000afc },
+    { "vmm_ch5701", 0x00000b00 },
+    { "vmm_ch5702", 0x00000b04 },
+    { "vmm_ch5703", 0x00000b08 },
+    { "vmm_ch5704", 0x00000b0c },
+    { "vmm_ch5705", 0x00000b10 },
+    { "vmm_ch5706", 0x00000b14 },
+    { "vmm_ch5707", 0x00000b18 },
+    { "vmm_ch5708", 0x00000b1c },
+    { "vmm_ch5709", 0x00000b20 },
+    { "vmm_ch5800", 0x00000b24 },
+    { "vmm_ch5801", 0x00000b28 },
+    { "vmm_ch5802", 0x00000b2c },
+    { "vmm_ch5803", 0x00000b30 },
+    { "vmm_ch5804", 0x00000b34 },
+    { "vmm_ch5805", 0x00000b38 },
+    { "vmm_ch5806", 0x00000b3c },
+    { "vmm_ch5807", 0x00000b40 },
+    { "vmm_ch5808", 0x00000b44 },
+    { "vmm_ch5809", 0x00000b48 },
+    { "vmm_ch5900", 0x00000b4c },
+    { "vmm_ch5901", 0x00000b50 },
+    { "vmm_ch5902", 0x00000b54 },
+    { "vmm_ch5903", 0x00000b58 },
+    { "vmm_ch5904", 0x00000b5c },
+    { "vmm_ch5905", 0x00000b60 },
+    { "vmm_ch5906", 0x00000b64 },
+    { "vmm_ch5907", 0x00000b68 },
+    { "vmm_ch5908", 0x00000b6c },
+    { "vmm_ch5909", 0x00000b70 },
+    { "vmm_ch6000", 0x00000b74 },
+    { "vmm_ch6001", 0x00000b78 },
+    { "vmm_ch6002", 0x00000b7c },
+    { "vmm_ch6003", 0x00000b80 },
+    { "vmm_ch6004", 0x00000b84 },
+    { "vmm_ch6005", 0x00000b88 },
+    { "vmm_ch6006", 0x00000b8c },
+    { "vmm_ch6007", 0x00000b90 },
+    { "vmm_ch6008", 0x00000b94 },
+    { "vmm_ch6009", 0x00000b98 },
+    { "vmm_ch6100", 0x00000b9c },
+    { "vmm_ch6101", 0x00000ba0 },
+    { "vmm_ch6102", 0x00000ba4 },
+    { "vmm_ch6103", 0x00000ba8 },
+    { "vmm_ch6104", 0x00000bac },
+    { "vmm_ch6105", 0x00000bb0 },
+    { "vmm_ch6106", 0x00000bb4 },
+    { "vmm_ch6107", 0x00000bb8 },
+    { "vmm_ch6108", 0x00000bbc },
+    { "vmm_ch6109", 0x00000bc0 },
+    { "vmm_ch6200", 0x00000bc4 },
+    { "vmm_ch6201", 0x00000bc8 },
+    { "vmm_ch6202", 0x00000bcc },
+    { "vmm_ch6203", 0x00000bd0 },
+    { "vmm_ch6204", 0x00000bd4 },
+    { "vmm_ch6205", 0x00000bd8 },
+    { "vmm_ch6206", 0x00000bdc },
+    { "vmm_ch6207", 0x00000be0 },
+    { "vmm_ch6208", 0x00000be4 },
+    { "vmm_ch6209", 0x00000be8 },
+    { "vmm_ch6300", 0x00000bec },
+    { "vmm_ch6301", 0x00000bf0 },
+    { "vmm_ch6302", 0x00000bf4 },
+    { "vmm_ch6303", 0x00000bf8 },
+    { "vmm_ch6304", 0x00000bfc },
+    { "vmm_ch6305", 0x00000c00 },
+    { "vmm_ch6306", 0x00000c04 },
+    { "vmm_ch6307", 0x00000c08 },
+    { "vmm_ch6308", 0x00000c0c },
+    { "vmm_ch6309", 0x00000c10 },
+    { "vmm_global_bank1_sp000", 0x00000c14 },
+    { "vmm_global_bank1_sp001", 0x00000c18 },
+    { "vmm_global_bank1_sp002", 0x00000c1c },
+    { "vmm_global_bank1_sp003", 0x00000c20 },
+    { "vmm_global_bank1_sp004", 0x00000c24 },
+    { "vmm_global_bank1_sp005", 0x00000c28 },
+    { "vmm_global_bank1_sp006", 0x00000c2c },
+    { "vmm_global_bank1_sp007", 0x00000c30 },
+    { "vmm_global_bank1_sp008", 0x00000c34 },
+    { "vmm_global_bank1_sp009", 0x00000c38 },
+    { "vmm_global_bank1_sp100", 0x00000c3c },
+    { "vmm_global_bank1_sp101", 0x00000c40 },
+    { "vmm_global_bank1_sp102", 0x00000c44 },
+    { "vmm_global_bank1_sp103", 0x00000c48 },
+    { "vmm_global_bank1_sp104", 0x00000c4c },
+    { "vmm_global_bank1_sp105", 0x00000c50 },
+    { "vmm_global_bank1_sp106", 0x00000c54 },
+    { "vmm_global_bank1_sp107", 0x00000c58 },
+    { "vmm_global_bank1_sp108", 0x00000c5c },
+    { "vmm_global_bank1_sp109", 0x00000c60 },
+    { "vmm_global_bank1_sp200", 0x00000c64 },
+    { "vmm_global_bank1_sp201", 0x00000c68 },
+    { "vmm_global_bank1_sp202", 0x00000c6c },
+    { "vmm_global_bank1_sp203", 0x00000c70 },
+    { "vmm_global_bank1_sp204", 0x00000c74 },
+    { "vmm_global_bank1_sp205", 0x00000c78 },
+    { "vmm_global_bank1_sp206", 0x00000c7c },
+    { "vmm_global_bank1_sp207", 0x00000c80 },
+    { "vmm_global_bank1_sp208", 0x00000c84 },
+    { "vmm_global_bank1_sp209", 0x00000c88 }
+};
diff --git a/vmmTblApp/src/VmmTblRegsMap.h b/vmmTblApp/src/VmmTblRegsMap.h
index c4c84d7887fb178f228dc0766e3acc28a736fcf9..8f0f3d003f3a6f53be8740e2c6d63b19d0c3a42f 100644
--- a/vmmTblApp/src/VmmTblRegsMap.h
+++ b/vmmTblApp/src/VmmTblRegsMap.h
@@ -3,808 +3,4 @@
 #include <unordered_map>
 #include <string>
 
-extern const std::unordered_map<std::string, uint32_t> vmm_tbl_register_map = {
-    { "REGBANK_VERSION", 0x00000000 },
-    { "PHASH", 0x00000004 },
-    { "ro_test", 0x00000008 },
-    { "rw_test", 0x0000000c },
-    { "GIT_HASH2", 0x00000010 },
-    { "GIT_HASH1", 0x00000014 },
-    { "GIT_HASH0", 0x00000018 },
-    { "led_ctl", 0x0000001c },
-    { "vmm_clk_freq", 0x00000020 },
-    { "test_data_en", 0x00000024 },
-    { "test_data_rate", 0x00000028 },
-    { "hit_cnt_rst", 0x0000002c },
-    { "hit_cnt_hv00", 0x00000030 },
-    { "hit_cnt_hv01", 0x00000034 },
-    { "hit_cnt_hv02", 0x00000038 },
-    { "hit_cnt_hv03", 0x0000003c },
-    { "sc_acq_on_off", 0x00000040 },
-    { "sc_cfg_app", 0x00000044 },
-    { "sc_cfg_hyb", 0x00000048 },
-    { "sc_cfg_vmm", 0x0000004c },
-    { "sc_eeprom_board_id", 0x00000050 },
-    { "sc_app_link_status", 0x00000054 },
-    { "sc_app_reset_assister", 0x00000058 },
-    { "sc_app_board_id", 0x0000005c },
-    { "sc_i2c_geo_id", 0x00000060 },
-    { "sc_i2c_firmware_version", 0x00000064 },
-    { "sc_i2c_hybrid_id", 0x00000068 },
-    { "sc_i2c_config_check", 0x0000006c },
-    { "sc_i2c_reset_config_check", 0x00000070 },
-    { "sc_i2c_vmm_adc", 0x00000074 },
-    { "eeprom_board_id", 0x00000078 },
-    { "app_board_id", 0x0000007c },
-    { "app_debug_data_format", 0x00000080 },
-    { "app_latency_reset", 0x00000084 },
-    { "app_latency_data_max", 0x00000088 },
-    { "app_latency_data_jitter", 0x0000008c },
-    { "app_chmask", 0x00000090 },
-    { "app_tp_offset_first", 0x00000094 },
-    { "app_tp_offset", 0x00000098 },
-    { "app_tp_latency", 0x0000009c },
-    { "app_tp_number", 0x000000a0 },
-    { "app_acq_enable", 0x000000a4 },
-    { "app_link_status", 0x000000a8 },
-    { "hyb_tp_skew00", 0x000000ac },
-    { "hyb_tp_skew01", 0x000000b0 },
-    { "hyb_tp_skew02", 0x000000b4 },
-    { "hyb_tp_skew03", 0x000000b8 },
-    { "hyb_tp_skew04", 0x000000bc },
-    { "hyb_tp_width00", 0x000000c0 },
-    { "hyb_tp_width01", 0x000000c4 },
-    { "hyb_tp_width02", 0x000000c8 },
-    { "hyb_tp_width03", 0x000000cc },
-    { "hyb_tp_width04", 0x000000d0 },
-    { "hyb_tp_polarity00", 0x000000d4 },
-    { "hyb_tp_polarity01", 0x000000d8 },
-    { "hyb_tp_polarity02", 0x000000dc },
-    { "hyb_tp_polarity03", 0x000000e0 },
-    { "hyb_tp_polarity04", 0x000000e4 },
-    { "hyb_i2c_geoid00", 0x000000e8 },
-    { "hyb_i2c_geoid01", 0x000000ec },
-    { "hyb_i2c_geoid02", 0x000000f0 },
-    { "hyb_i2c_geoid03", 0x000000f4 },
-    { "hyb_i2c_geoid04", 0x000000f8 },
-    { "hyb_i2c_firmware_version00", 0x000000fc },
-    { "hyb_i2c_firmware_version01", 0x00000100 },
-    { "hyb_i2c_firmware_version02", 0x00000104 },
-    { "hyb_i2c_firmware_version03", 0x00000108 },
-    { "hyb_i2c_firmware_version04", 0x0000010c },
-    { "hyb_i2c_hybrid_id000", 0x00000110 },
-    { "hyb_i2c_hybrid_id001", 0x00000114 },
-    { "hyb_i2c_hybrid_id002", 0x00000118 },
-    { "hyb_i2c_hybrid_id003", 0x0000011c },
-    { "hyb_i2c_hybrid_id004", 0x00000120 },
-    { "hyb_i2c_hybrid_id100", 0x00000124 },
-    { "hyb_i2c_hybrid_id101", 0x00000128 },
-    { "hyb_i2c_hybrid_id102", 0x0000012c },
-    { "hyb_i2c_hybrid_id103", 0x00000130 },
-    { "hyb_i2c_hybrid_id104", 0x00000134 },
-    { "hyb_i2c_hybrid_id200", 0x00000138 },
-    { "hyb_i2c_hybrid_id201", 0x0000013c },
-    { "hyb_i2c_hybrid_id202", 0x00000140 },
-    { "hyb_i2c_hybrid_id203", 0x00000144 },
-    { "hyb_i2c_hybrid_id204", 0x00000148 },
-    { "hyb_i2c_hybrid_id300", 0x0000014c },
-    { "hyb_i2c_hybrid_id301", 0x00000150 },
-    { "hyb_i2c_hybrid_id302", 0x00000154 },
-    { "hyb_i2c_hybrid_id303", 0x00000158 },
-    { "hyb_i2c_hybrid_id304", 0x0000015c },
-    { "hyb_i2c_config_check00", 0x00000160 },
-    { "hyb_i2c_config_check01", 0x00000164 },
-    { "hyb_i2c_config_check02", 0x00000168 },
-    { "hyb_i2c_config_check03", 0x0000016c },
-    { "hyb_i2c_config_check04", 0x00000170 },
-    { "vmm_i2c_adc00", 0x00000174 },
-    { "vmm_i2c_adc01", 0x00000178 },
-    { "vmm_i2c_adc02", 0x0000017c },
-    { "vmm_i2c_adc03", 0x00000180 },
-    { "vmm_i2c_adc04", 0x00000184 },
-    { "vmm_i2c_adc05", 0x00000188 },
-    { "vmm_i2c_adc06", 0x0000018c },
-    { "vmm_i2c_adc07", 0x00000190 },
-    { "vmm_i2c_adc08", 0x00000194 },
-    { "vmm_i2c_adc09", 0x00000198 },
-    { "vmm_global_bank2_sp000", 0x0000019c },
-    { "vmm_global_bank2_sp001", 0x000001a0 },
-    { "vmm_global_bank2_sp002", 0x000001a4 },
-    { "vmm_global_bank2_sp003", 0x000001a8 },
-    { "vmm_global_bank2_sp004", 0x000001ac },
-    { "vmm_global_bank2_sp005", 0x000001b0 },
-    { "vmm_global_bank2_sp006", 0x000001b4 },
-    { "vmm_global_bank2_sp007", 0x000001b8 },
-    { "vmm_global_bank2_sp008", 0x000001bc },
-    { "vmm_global_bank2_sp009", 0x000001c0 },
-    { "vmm_global_bank2_sp100", 0x000001c4 },
-    { "vmm_global_bank2_sp101", 0x000001c8 },
-    { "vmm_global_bank2_sp102", 0x000001cc },
-    { "vmm_global_bank2_sp103", 0x000001d0 },
-    { "vmm_global_bank2_sp104", 0x000001d4 },
-    { "vmm_global_bank2_sp105", 0x000001d8 },
-    { "vmm_global_bank2_sp106", 0x000001dc },
-    { "vmm_global_bank2_sp107", 0x000001e0 },
-    { "vmm_global_bank2_sp108", 0x000001e4 },
-    { "vmm_global_bank2_sp109", 0x000001e8 },
-    { "vmm_global_bank2_sp200", 0x000001ec },
-    { "vmm_global_bank2_sp201", 0x000001f0 },
-    { "vmm_global_bank2_sp202", 0x000001f4 },
-    { "vmm_global_bank2_sp203", 0x000001f8 },
-    { "vmm_global_bank2_sp204", 0x000001fc },
-    { "vmm_global_bank2_sp205", 0x00000200 },
-    { "vmm_global_bank2_sp206", 0x00000204 },
-    { "vmm_global_bank2_sp207", 0x00000208 },
-    { "vmm_global_bank2_sp208", 0x0000020c },
-    { "vmm_global_bank2_sp209", 0x00000210 },
-    { "vmm_ch0000", 0x00000214 },
-    { "vmm_ch0001", 0x00000218 },
-    { "vmm_ch0002", 0x0000021c },
-    { "vmm_ch0003", 0x00000220 },
-    { "vmm_ch0004", 0x00000224 },
-    { "vmm_ch0005", 0x00000228 },
-    { "vmm_ch0006", 0x0000022c },
-    { "vmm_ch0007", 0x00000230 },
-    { "vmm_ch0008", 0x00000234 },
-    { "vmm_ch0009", 0x00000238 },
-    { "vmm_ch0100", 0x0000023c },
-    { "vmm_ch0101", 0x00000240 },
-    { "vmm_ch0102", 0x00000244 },
-    { "vmm_ch0103", 0x00000248 },
-    { "vmm_ch0104", 0x0000024c },
-    { "vmm_ch0105", 0x00000250 },
-    { "vmm_ch0106", 0x00000254 },
-    { "vmm_ch0107", 0x00000258 },
-    { "vmm_ch0108", 0x0000025c },
-    { "vmm_ch0109", 0x00000260 },
-    { "vmm_ch0200", 0x00000264 },
-    { "vmm_ch0201", 0x00000268 },
-    { "vmm_ch0202", 0x0000026c },
-    { "vmm_ch0203", 0x00000270 },
-    { "vmm_ch0204", 0x00000274 },
-    { "vmm_ch0205", 0x00000278 },
-    { "vmm_ch0206", 0x0000027c },
-    { "vmm_ch0207", 0x00000280 },
-    { "vmm_ch0208", 0x00000284 },
-    { "vmm_ch0209", 0x00000288 },
-    { "vmm_ch0300", 0x0000028c },
-    { "vmm_ch0301", 0x00000290 },
-    { "vmm_ch0302", 0x00000294 },
-    { "vmm_ch0303", 0x00000298 },
-    { "vmm_ch0304", 0x0000029c },
-    { "vmm_ch0305", 0x000002a0 },
-    { "vmm_ch0306", 0x000002a4 },
-    { "vmm_ch0307", 0x000002a8 },
-    { "vmm_ch0308", 0x000002ac },
-    { "vmm_ch0309", 0x000002b0 },
-    { "vmm_ch0400", 0x000002b4 },
-    { "vmm_ch0401", 0x000002b8 },
-    { "vmm_ch0402", 0x000002bc },
-    { "vmm_ch0403", 0x000002c0 },
-    { "vmm_ch0404", 0x000002c4 },
-    { "vmm_ch0405", 0x000002c8 },
-    { "vmm_ch0406", 0x000002cc },
-    { "vmm_ch0407", 0x000002d0 },
-    { "vmm_ch0408", 0x000002d4 },
-    { "vmm_ch0409", 0x000002d8 },
-    { "vmm_ch0500", 0x000002dc },
-    { "vmm_ch0501", 0x000002e0 },
-    { "vmm_ch0502", 0x000002e4 },
-    { "vmm_ch0503", 0x000002e8 },
-    { "vmm_ch0504", 0x000002ec },
-    { "vmm_ch0505", 0x000002f0 },
-    { "vmm_ch0506", 0x000002f4 },
-    { "vmm_ch0507", 0x000002f8 },
-    { "vmm_ch0508", 0x000002fc },
-    { "vmm_ch0509", 0x00000300 },
-    { "vmm_ch0600", 0x00000304 },
-    { "vmm_ch0601", 0x00000308 },
-    { "vmm_ch0602", 0x0000030c },
-    { "vmm_ch0603", 0x00000310 },
-    { "vmm_ch0604", 0x00000314 },
-    { "vmm_ch0605", 0x00000318 },
-    { "vmm_ch0606", 0x0000031c },
-    { "vmm_ch0607", 0x00000320 },
-    { "vmm_ch0608", 0x00000324 },
-    { "vmm_ch0609", 0x00000328 },
-    { "vmm_ch0700", 0x0000032c },
-    { "vmm_ch0701", 0x00000330 },
-    { "vmm_ch0702", 0x00000334 },
-    { "vmm_ch0703", 0x00000338 },
-    { "vmm_ch0704", 0x0000033c },
-    { "vmm_ch0705", 0x00000340 },
-    { "vmm_ch0706", 0x00000344 },
-    { "vmm_ch0707", 0x00000348 },
-    { "vmm_ch0708", 0x0000034c },
-    { "vmm_ch0709", 0x00000350 },
-    { "vmm_ch0800", 0x00000354 },
-    { "vmm_ch0801", 0x00000358 },
-    { "vmm_ch0802", 0x0000035c },
-    { "vmm_ch0803", 0x00000360 },
-    { "vmm_ch0804", 0x00000364 },
-    { "vmm_ch0805", 0x00000368 },
-    { "vmm_ch0806", 0x0000036c },
-    { "vmm_ch0807", 0x00000370 },
-    { "vmm_ch0808", 0x00000374 },
-    { "vmm_ch0809", 0x00000378 },
-    { "vmm_ch0900", 0x0000037c },
-    { "vmm_ch0901", 0x00000380 },
-    { "vmm_ch0902", 0x00000384 },
-    { "vmm_ch0903", 0x00000388 },
-    { "vmm_ch0904", 0x0000038c },
-    { "vmm_ch0905", 0x00000390 },
-    { "vmm_ch0906", 0x00000394 },
-    { "vmm_ch0907", 0x00000398 },
-    { "vmm_ch0908", 0x0000039c },
-    { "vmm_ch0909", 0x000003a0 },
-    { "vmm_ch1000", 0x000003a4 },
-    { "vmm_ch1001", 0x000003a8 },
-    { "vmm_ch1002", 0x000003ac },
-    { "vmm_ch1003", 0x000003b0 },
-    { "vmm_ch1004", 0x000003b4 },
-    { "vmm_ch1005", 0x000003b8 },
-    { "vmm_ch1006", 0x000003bc },
-    { "vmm_ch1007", 0x000003c0 },
-    { "vmm_ch1008", 0x000003c4 },
-    { "vmm_ch1009", 0x000003c8 },
-    { "vmm_ch1100", 0x000003cc },
-    { "vmm_ch1101", 0x000003d0 },
-    { "vmm_ch1102", 0x000003d4 },
-    { "vmm_ch1103", 0x000003d8 },
-    { "vmm_ch1104", 0x000003dc },
-    { "vmm_ch1105", 0x000003e0 },
-    { "vmm_ch1106", 0x000003e4 },
-    { "vmm_ch1107", 0x000003e8 },
-    { "vmm_ch1108", 0x000003ec },
-    { "vmm_ch1109", 0x000003f0 },
-    { "vmm_ch1200", 0x000003f4 },
-    { "vmm_ch1201", 0x000003f8 },
-    { "vmm_ch1202", 0x000003fc },
-    { "vmm_ch1203", 0x00000400 },
-    { "vmm_ch1204", 0x00000404 },
-    { "vmm_ch1205", 0x00000408 },
-    { "vmm_ch1206", 0x0000040c },
-    { "vmm_ch1207", 0x00000410 },
-    { "vmm_ch1208", 0x00000414 },
-    { "vmm_ch1209", 0x00000418 },
-    { "vmm_ch1300", 0x0000041c },
-    { "vmm_ch1301", 0x00000420 },
-    { "vmm_ch1302", 0x00000424 },
-    { "vmm_ch1303", 0x00000428 },
-    { "vmm_ch1304", 0x0000042c },
-    { "vmm_ch1305", 0x00000430 },
-    { "vmm_ch1306", 0x00000434 },
-    { "vmm_ch1307", 0x00000438 },
-    { "vmm_ch1308", 0x0000043c },
-    { "vmm_ch1309", 0x00000440 },
-    { "vmm_ch1400", 0x00000444 },
-    { "vmm_ch1401", 0x00000448 },
-    { "vmm_ch1402", 0x0000044c },
-    { "vmm_ch1403", 0x00000450 },
-    { "vmm_ch1404", 0x00000454 },
-    { "vmm_ch1405", 0x00000458 },
-    { "vmm_ch1406", 0x0000045c },
-    { "vmm_ch1407", 0x00000460 },
-    { "vmm_ch1408", 0x00000464 },
-    { "vmm_ch1409", 0x00000468 },
-    { "vmm_ch1500", 0x0000046c },
-    { "vmm_ch1501", 0x00000470 },
-    { "vmm_ch1502", 0x00000474 },
-    { "vmm_ch1503", 0x00000478 },
-    { "vmm_ch1504", 0x0000047c },
-    { "vmm_ch1505", 0x00000480 },
-    { "vmm_ch1506", 0x00000484 },
-    { "vmm_ch1507", 0x00000488 },
-    { "vmm_ch1508", 0x0000048c },
-    { "vmm_ch1509", 0x00000490 },
-    { "vmm_ch1600", 0x00000494 },
-    { "vmm_ch1601", 0x00000498 },
-    { "vmm_ch1602", 0x0000049c },
-    { "vmm_ch1603", 0x000004a0 },
-    { "vmm_ch1604", 0x000004a4 },
-    { "vmm_ch1605", 0x000004a8 },
-    { "vmm_ch1606", 0x000004ac },
-    { "vmm_ch1607", 0x000004b0 },
-    { "vmm_ch1608", 0x000004b4 },
-    { "vmm_ch1609", 0x000004b8 },
-    { "vmm_ch1700", 0x000004bc },
-    { "vmm_ch1701", 0x000004c0 },
-    { "vmm_ch1702", 0x000004c4 },
-    { "vmm_ch1703", 0x000004c8 },
-    { "vmm_ch1704", 0x000004cc },
-    { "vmm_ch1705", 0x000004d0 },
-    { "vmm_ch1706", 0x000004d4 },
-    { "vmm_ch1707", 0x000004d8 },
-    { "vmm_ch1708", 0x000004dc },
-    { "vmm_ch1709", 0x000004e0 },
-    { "vmm_ch1800", 0x000004e4 },
-    { "vmm_ch1801", 0x000004e8 },
-    { "vmm_ch1802", 0x000004ec },
-    { "vmm_ch1803", 0x000004f0 },
-    { "vmm_ch1804", 0x000004f4 },
-    { "vmm_ch1805", 0x000004f8 },
-    { "vmm_ch1806", 0x000004fc },
-    { "vmm_ch1807", 0x00000500 },
-    { "vmm_ch1808", 0x00000504 },
-    { "vmm_ch1809", 0x00000508 },
-    { "vmm_ch1900", 0x0000050c },
-    { "vmm_ch1901", 0x00000510 },
-    { "vmm_ch1902", 0x00000514 },
-    { "vmm_ch1903", 0x00000518 },
-    { "vmm_ch1904", 0x0000051c },
-    { "vmm_ch1905", 0x00000520 },
-    { "vmm_ch1906", 0x00000524 },
-    { "vmm_ch1907", 0x00000528 },
-    { "vmm_ch1908", 0x0000052c },
-    { "vmm_ch1909", 0x00000530 },
-    { "vmm_ch2000", 0x00000534 },
-    { "vmm_ch2001", 0x00000538 },
-    { "vmm_ch2002", 0x0000053c },
-    { "vmm_ch2003", 0x00000540 },
-    { "vmm_ch2004", 0x00000544 },
-    { "vmm_ch2005", 0x00000548 },
-    { "vmm_ch2006", 0x0000054c },
-    { "vmm_ch2007", 0x00000550 },
-    { "vmm_ch2008", 0x00000554 },
-    { "vmm_ch2009", 0x00000558 },
-    { "vmm_ch2100", 0x0000055c },
-    { "vmm_ch2101", 0x00000560 },
-    { "vmm_ch2102", 0x00000564 },
-    { "vmm_ch2103", 0x00000568 },
-    { "vmm_ch2104", 0x0000056c },
-    { "vmm_ch2105", 0x00000570 },
-    { "vmm_ch2106", 0x00000574 },
-    { "vmm_ch2107", 0x00000578 },
-    { "vmm_ch2108", 0x0000057c },
-    { "vmm_ch2109", 0x00000580 },
-    { "vmm_ch2200", 0x00000584 },
-    { "vmm_ch2201", 0x00000588 },
-    { "vmm_ch2202", 0x0000058c },
-    { "vmm_ch2203", 0x00000590 },
-    { "vmm_ch2204", 0x00000594 },
-    { "vmm_ch2205", 0x00000598 },
-    { "vmm_ch2206", 0x0000059c },
-    { "vmm_ch2207", 0x000005a0 },
-    { "vmm_ch2208", 0x000005a4 },
-    { "vmm_ch2209", 0x000005a8 },
-    { "vmm_ch2300", 0x000005ac },
-    { "vmm_ch2301", 0x000005b0 },
-    { "vmm_ch2302", 0x000005b4 },
-    { "vmm_ch2303", 0x000005b8 },
-    { "vmm_ch2304", 0x000005bc },
-    { "vmm_ch2305", 0x000005c0 },
-    { "vmm_ch2306", 0x000005c4 },
-    { "vmm_ch2307", 0x000005c8 },
-    { "vmm_ch2308", 0x000005cc },
-    { "vmm_ch2309", 0x000005d0 },
-    { "vmm_ch2400", 0x000005d4 },
-    { "vmm_ch2401", 0x000005d8 },
-    { "vmm_ch2402", 0x000005dc },
-    { "vmm_ch2403", 0x000005e0 },
-    { "vmm_ch2404", 0x000005e4 },
-    { "vmm_ch2405", 0x000005e8 },
-    { "vmm_ch2406", 0x000005ec },
-    { "vmm_ch2407", 0x000005f0 },
-    { "vmm_ch2408", 0x000005f4 },
-    { "vmm_ch2409", 0x000005f8 },
-    { "vmm_ch2500", 0x000005fc },
-    { "vmm_ch2501", 0x00000600 },
-    { "vmm_ch2502", 0x00000604 },
-    { "vmm_ch2503", 0x00000608 },
-    { "vmm_ch2504", 0x0000060c },
-    { "vmm_ch2505", 0x00000610 },
-    { "vmm_ch2506", 0x00000614 },
-    { "vmm_ch2507", 0x00000618 },
-    { "vmm_ch2508", 0x0000061c },
-    { "vmm_ch2509", 0x00000620 },
-    { "vmm_ch2600", 0x00000624 },
-    { "vmm_ch2601", 0x00000628 },
-    { "vmm_ch2602", 0x0000062c },
-    { "vmm_ch2603", 0x00000630 },
-    { "vmm_ch2604", 0x00000634 },
-    { "vmm_ch2605", 0x00000638 },
-    { "vmm_ch2606", 0x0000063c },
-    { "vmm_ch2607", 0x00000640 },
-    { "vmm_ch2608", 0x00000644 },
-    { "vmm_ch2609", 0x00000648 },
-    { "vmm_ch2700", 0x0000064c },
-    { "vmm_ch2701", 0x00000650 },
-    { "vmm_ch2702", 0x00000654 },
-    { "vmm_ch2703", 0x00000658 },
-    { "vmm_ch2704", 0x0000065c },
-    { "vmm_ch2705", 0x00000660 },
-    { "vmm_ch2706", 0x00000664 },
-    { "vmm_ch2707", 0x00000668 },
-    { "vmm_ch2708", 0x0000066c },
-    { "vmm_ch2709", 0x00000670 },
-    { "vmm_ch2800", 0x00000674 },
-    { "vmm_ch2801", 0x00000678 },
-    { "vmm_ch2802", 0x0000067c },
-    { "vmm_ch2803", 0x00000680 },
-    { "vmm_ch2804", 0x00000684 },
-    { "vmm_ch2805", 0x00000688 },
-    { "vmm_ch2806", 0x0000068c },
-    { "vmm_ch2807", 0x00000690 },
-    { "vmm_ch2808", 0x00000694 },
-    { "vmm_ch2809", 0x00000698 },
-    { "vmm_ch2900", 0x0000069c },
-    { "vmm_ch2901", 0x000006a0 },
-    { "vmm_ch2902", 0x000006a4 },
-    { "vmm_ch2903", 0x000006a8 },
-    { "vmm_ch2904", 0x000006ac },
-    { "vmm_ch2905", 0x000006b0 },
-    { "vmm_ch2906", 0x000006b4 },
-    { "vmm_ch2907", 0x000006b8 },
-    { "vmm_ch2908", 0x000006bc },
-    { "vmm_ch2909", 0x000006c0 },
-    { "vmm_ch3000", 0x000006c4 },
-    { "vmm_ch3001", 0x000006c8 },
-    { "vmm_ch3002", 0x000006cc },
-    { "vmm_ch3003", 0x000006d0 },
-    { "vmm_ch3004", 0x000006d4 },
-    { "vmm_ch3005", 0x000006d8 },
-    { "vmm_ch3006", 0x000006dc },
-    { "vmm_ch3007", 0x000006e0 },
-    { "vmm_ch3008", 0x000006e4 },
-    { "vmm_ch3009", 0x000006e8 },
-    { "vmm_ch3100", 0x000006ec },
-    { "vmm_ch3101", 0x000006f0 },
-    { "vmm_ch3102", 0x000006f4 },
-    { "vmm_ch3103", 0x000006f8 },
-    { "vmm_ch3104", 0x000006fc },
-    { "vmm_ch3105", 0x00000700 },
-    { "vmm_ch3106", 0x00000704 },
-    { "vmm_ch3107", 0x00000708 },
-    { "vmm_ch3108", 0x0000070c },
-    { "vmm_ch3109", 0x00000710 },
-    { "vmm_ch3200", 0x00000714 },
-    { "vmm_ch3201", 0x00000718 },
-    { "vmm_ch3202", 0x0000071c },
-    { "vmm_ch3203", 0x00000720 },
-    { "vmm_ch3204", 0x00000724 },
-    { "vmm_ch3205", 0x00000728 },
-    { "vmm_ch3206", 0x0000072c },
-    { "vmm_ch3207", 0x00000730 },
-    { "vmm_ch3208", 0x00000734 },
-    { "vmm_ch3209", 0x00000738 },
-    { "vmm_ch3300", 0x0000073c },
-    { "vmm_ch3301", 0x00000740 },
-    { "vmm_ch3302", 0x00000744 },
-    { "vmm_ch3303", 0x00000748 },
-    { "vmm_ch3304", 0x0000074c },
-    { "vmm_ch3305", 0x00000750 },
-    { "vmm_ch3306", 0x00000754 },
-    { "vmm_ch3307", 0x00000758 },
-    { "vmm_ch3308", 0x0000075c },
-    { "vmm_ch3309", 0x00000760 },
-    { "vmm_ch3400", 0x00000764 },
-    { "vmm_ch3401", 0x00000768 },
-    { "vmm_ch3402", 0x0000076c },
-    { "vmm_ch3403", 0x00000770 },
-    { "vmm_ch3404", 0x00000774 },
-    { "vmm_ch3405", 0x00000778 },
-    { "vmm_ch3406", 0x0000077c },
-    { "vmm_ch3407", 0x00000780 },
-    { "vmm_ch3408", 0x00000784 },
-    { "vmm_ch3409", 0x00000788 },
-    { "vmm_ch3500", 0x0000078c },
-    { "vmm_ch3501", 0x00000790 },
-    { "vmm_ch3502", 0x00000794 },
-    { "vmm_ch3503", 0x00000798 },
-    { "vmm_ch3504", 0x0000079c },
-    { "vmm_ch3505", 0x000007a0 },
-    { "vmm_ch3506", 0x000007a4 },
-    { "vmm_ch3507", 0x000007a8 },
-    { "vmm_ch3508", 0x000007ac },
-    { "vmm_ch3509", 0x000007b0 },
-    { "vmm_ch3600", 0x000007b4 },
-    { "vmm_ch3601", 0x000007b8 },
-    { "vmm_ch3602", 0x000007bc },
-    { "vmm_ch3603", 0x000007c0 },
-    { "vmm_ch3604", 0x000007c4 },
-    { "vmm_ch3605", 0x000007c8 },
-    { "vmm_ch3606", 0x000007cc },
-    { "vmm_ch3607", 0x000007d0 },
-    { "vmm_ch3608", 0x000007d4 },
-    { "vmm_ch3609", 0x000007d8 },
-    { "vmm_ch3700", 0x000007dc },
-    { "vmm_ch3701", 0x000007e0 },
-    { "vmm_ch3702", 0x000007e4 },
-    { "vmm_ch3703", 0x000007e8 },
-    { "vmm_ch3704", 0x000007ec },
-    { "vmm_ch3705", 0x000007f0 },
-    { "vmm_ch3706", 0x000007f4 },
-    { "vmm_ch3707", 0x000007f8 },
-    { "vmm_ch3708", 0x000007fc },
-    { "vmm_ch3709", 0x00000800 },
-    { "vmm_ch3800", 0x00000804 },
-    { "vmm_ch3801", 0x00000808 },
-    { "vmm_ch3802", 0x0000080c },
-    { "vmm_ch3803", 0x00000810 },
-    { "vmm_ch3804", 0x00000814 },
-    { "vmm_ch3805", 0x00000818 },
-    { "vmm_ch3806", 0x0000081c },
-    { "vmm_ch3807", 0x00000820 },
-    { "vmm_ch3808", 0x00000824 },
-    { "vmm_ch3809", 0x00000828 },
-    { "vmm_ch3900", 0x0000082c },
-    { "vmm_ch3901", 0x00000830 },
-    { "vmm_ch3902", 0x00000834 },
-    { "vmm_ch3903", 0x00000838 },
-    { "vmm_ch3904", 0x0000083c },
-    { "vmm_ch3905", 0x00000840 },
-    { "vmm_ch3906", 0x00000844 },
-    { "vmm_ch3907", 0x00000848 },
-    { "vmm_ch3908", 0x0000084c },
-    { "vmm_ch3909", 0x00000850 },
-    { "vmm_ch4000", 0x00000854 },
-    { "vmm_ch4001", 0x00000858 },
-    { "vmm_ch4002", 0x0000085c },
-    { "vmm_ch4003", 0x00000860 },
-    { "vmm_ch4004", 0x00000864 },
-    { "vmm_ch4005", 0x00000868 },
-    { "vmm_ch4006", 0x0000086c },
-    { "vmm_ch4007", 0x00000870 },
-    { "vmm_ch4008", 0x00000874 },
-    { "vmm_ch4009", 0x00000878 },
-    { "vmm_ch4100", 0x0000087c },
-    { "vmm_ch4101", 0x00000880 },
-    { "vmm_ch4102", 0x00000884 },
-    { "vmm_ch4103", 0x00000888 },
-    { "vmm_ch4104", 0x0000088c },
-    { "vmm_ch4105", 0x00000890 },
-    { "vmm_ch4106", 0x00000894 },
-    { "vmm_ch4107", 0x00000898 },
-    { "vmm_ch4108", 0x0000089c },
-    { "vmm_ch4109", 0x000008a0 },
-    { "vmm_ch4200", 0x000008a4 },
-    { "vmm_ch4201", 0x000008a8 },
-    { "vmm_ch4202", 0x000008ac },
-    { "vmm_ch4203", 0x000008b0 },
-    { "vmm_ch4204", 0x000008b4 },
-    { "vmm_ch4205", 0x000008b8 },
-    { "vmm_ch4206", 0x000008bc },
-    { "vmm_ch4207", 0x000008c0 },
-    { "vmm_ch4208", 0x000008c4 },
-    { "vmm_ch4209", 0x000008c8 },
-    { "vmm_ch4300", 0x000008cc },
-    { "vmm_ch4301", 0x000008d0 },
-    { "vmm_ch4302", 0x000008d4 },
-    { "vmm_ch4303", 0x000008d8 },
-    { "vmm_ch4304", 0x000008dc },
-    { "vmm_ch4305", 0x000008e0 },
-    { "vmm_ch4306", 0x000008e4 },
-    { "vmm_ch4307", 0x000008e8 },
-    { "vmm_ch4308", 0x000008ec },
-    { "vmm_ch4309", 0x000008f0 },
-    { "vmm_ch4400", 0x000008f4 },
-    { "vmm_ch4401", 0x000008f8 },
-    { "vmm_ch4402", 0x000008fc },
-    { "vmm_ch4403", 0x00000900 },
-    { "vmm_ch4404", 0x00000904 },
-    { "vmm_ch4405", 0x00000908 },
-    { "vmm_ch4406", 0x0000090c },
-    { "vmm_ch4407", 0x00000910 },
-    { "vmm_ch4408", 0x00000914 },
-    { "vmm_ch4409", 0x00000918 },
-    { "vmm_ch4500", 0x0000091c },
-    { "vmm_ch4501", 0x00000920 },
-    { "vmm_ch4502", 0x00000924 },
-    { "vmm_ch4503", 0x00000928 },
-    { "vmm_ch4504", 0x0000092c },
-    { "vmm_ch4505", 0x00000930 },
-    { "vmm_ch4506", 0x00000934 },
-    { "vmm_ch4507", 0x00000938 },
-    { "vmm_ch4508", 0x0000093c },
-    { "vmm_ch4509", 0x00000940 },
-    { "vmm_ch4600", 0x00000944 },
-    { "vmm_ch4601", 0x00000948 },
-    { "vmm_ch4602", 0x0000094c },
-    { "vmm_ch4603", 0x00000950 },
-    { "vmm_ch4604", 0x00000954 },
-    { "vmm_ch4605", 0x00000958 },
-    { "vmm_ch4606", 0x0000095c },
-    { "vmm_ch4607", 0x00000960 },
-    { "vmm_ch4608", 0x00000964 },
-    { "vmm_ch4609", 0x00000968 },
-    { "vmm_ch4700", 0x0000096c },
-    { "vmm_ch4701", 0x00000970 },
-    { "vmm_ch4702", 0x00000974 },
-    { "vmm_ch4703", 0x00000978 },
-    { "vmm_ch4704", 0x0000097c },
-    { "vmm_ch4705", 0x00000980 },
-    { "vmm_ch4706", 0x00000984 },
-    { "vmm_ch4707", 0x00000988 },
-    { "vmm_ch4708", 0x0000098c },
-    { "vmm_ch4709", 0x00000990 },
-    { "vmm_ch4800", 0x00000994 },
-    { "vmm_ch4801", 0x00000998 },
-    { "vmm_ch4802", 0x0000099c },
-    { "vmm_ch4803", 0x000009a0 },
-    { "vmm_ch4804", 0x000009a4 },
-    { "vmm_ch4805", 0x000009a8 },
-    { "vmm_ch4806", 0x000009ac },
-    { "vmm_ch4807", 0x000009b0 },
-    { "vmm_ch4808", 0x000009b4 },
-    { "vmm_ch4809", 0x000009b8 },
-    { "vmm_ch4900", 0x000009bc },
-    { "vmm_ch4901", 0x000009c0 },
-    { "vmm_ch4902", 0x000009c4 },
-    { "vmm_ch4903", 0x000009c8 },
-    { "vmm_ch4904", 0x000009cc },
-    { "vmm_ch4905", 0x000009d0 },
-    { "vmm_ch4906", 0x000009d4 },
-    { "vmm_ch4907", 0x000009d8 },
-    { "vmm_ch4908", 0x000009dc },
-    { "vmm_ch4909", 0x000009e0 },
-    { "vmm_ch5000", 0x000009e4 },
-    { "vmm_ch5001", 0x000009e8 },
-    { "vmm_ch5002", 0x000009ec },
-    { "vmm_ch5003", 0x000009f0 },
-    { "vmm_ch5004", 0x000009f4 },
-    { "vmm_ch5005", 0x000009f8 },
-    { "vmm_ch5006", 0x000009fc },
-    { "vmm_ch5007", 0x00000a00 },
-    { "vmm_ch5008", 0x00000a04 },
-    { "vmm_ch5009", 0x00000a08 },
-    { "vmm_ch5100", 0x00000a0c },
-    { "vmm_ch5101", 0x00000a10 },
-    { "vmm_ch5102", 0x00000a14 },
-    { "vmm_ch5103", 0x00000a18 },
-    { "vmm_ch5104", 0x00000a1c },
-    { "vmm_ch5105", 0x00000a20 },
-    { "vmm_ch5106", 0x00000a24 },
-    { "vmm_ch5107", 0x00000a28 },
-    { "vmm_ch5108", 0x00000a2c },
-    { "vmm_ch5109", 0x00000a30 },
-    { "vmm_ch5200", 0x00000a34 },
-    { "vmm_ch5201", 0x00000a38 },
-    { "vmm_ch5202", 0x00000a3c },
-    { "vmm_ch5203", 0x00000a40 },
-    { "vmm_ch5204", 0x00000a44 },
-    { "vmm_ch5205", 0x00000a48 },
-    { "vmm_ch5206", 0x00000a4c },
-    { "vmm_ch5207", 0x00000a50 },
-    { "vmm_ch5208", 0x00000a54 },
-    { "vmm_ch5209", 0x00000a58 },
-    { "vmm_ch5300", 0x00000a5c },
-    { "vmm_ch5301", 0x00000a60 },
-    { "vmm_ch5302", 0x00000a64 },
-    { "vmm_ch5303", 0x00000a68 },
-    { "vmm_ch5304", 0x00000a6c },
-    { "vmm_ch5305", 0x00000a70 },
-    { "vmm_ch5306", 0x00000a74 },
-    { "vmm_ch5307", 0x00000a78 },
-    { "vmm_ch5308", 0x00000a7c },
-    { "vmm_ch5309", 0x00000a80 },
-    { "vmm_ch5400", 0x00000a84 },
-    { "vmm_ch5401", 0x00000a88 },
-    { "vmm_ch5402", 0x00000a8c },
-    { "vmm_ch5403", 0x00000a90 },
-    { "vmm_ch5404", 0x00000a94 },
-    { "vmm_ch5405", 0x00000a98 },
-    { "vmm_ch5406", 0x00000a9c },
-    { "vmm_ch5407", 0x00000aa0 },
-    { "vmm_ch5408", 0x00000aa4 },
-    { "vmm_ch5409", 0x00000aa8 },
-    { "vmm_ch5500", 0x00000aac },
-    { "vmm_ch5501", 0x00000ab0 },
-    { "vmm_ch5502", 0x00000ab4 },
-    { "vmm_ch5503", 0x00000ab8 },
-    { "vmm_ch5504", 0x00000abc },
-    { "vmm_ch5505", 0x00000ac0 },
-    { "vmm_ch5506", 0x00000ac4 },
-    { "vmm_ch5507", 0x00000ac8 },
-    { "vmm_ch5508", 0x00000acc },
-    { "vmm_ch5509", 0x00000ad0 },
-    { "vmm_ch5600", 0x00000ad4 },
-    { "vmm_ch5601", 0x00000ad8 },
-    { "vmm_ch5602", 0x00000adc },
-    { "vmm_ch5603", 0x00000ae0 },
-    { "vmm_ch5604", 0x00000ae4 },
-    { "vmm_ch5605", 0x00000ae8 },
-    { "vmm_ch5606", 0x00000aec },
-    { "vmm_ch5607", 0x00000af0 },
-    { "vmm_ch5608", 0x00000af4 },
-    { "vmm_ch5609", 0x00000af8 },
-    { "vmm_ch5700", 0x00000afc },
-    { "vmm_ch5701", 0x00000b00 },
-    { "vmm_ch5702", 0x00000b04 },
-    { "vmm_ch5703", 0x00000b08 },
-    { "vmm_ch5704", 0x00000b0c },
-    { "vmm_ch5705", 0x00000b10 },
-    { "vmm_ch5706", 0x00000b14 },
-    { "vmm_ch5707", 0x00000b18 },
-    { "vmm_ch5708", 0x00000b1c },
-    { "vmm_ch5709", 0x00000b20 },
-    { "vmm_ch5800", 0x00000b24 },
-    { "vmm_ch5801", 0x00000b28 },
-    { "vmm_ch5802", 0x00000b2c },
-    { "vmm_ch5803", 0x00000b30 },
-    { "vmm_ch5804", 0x00000b34 },
-    { "vmm_ch5805", 0x00000b38 },
-    { "vmm_ch5806", 0x00000b3c },
-    { "vmm_ch5807", 0x00000b40 },
-    { "vmm_ch5808", 0x00000b44 },
-    { "vmm_ch5809", 0x00000b48 },
-    { "vmm_ch5900", 0x00000b4c },
-    { "vmm_ch5901", 0x00000b50 },
-    { "vmm_ch5902", 0x00000b54 },
-    { "vmm_ch5903", 0x00000b58 },
-    { "vmm_ch5904", 0x00000b5c },
-    { "vmm_ch5905", 0x00000b60 },
-    { "vmm_ch5906", 0x00000b64 },
-    { "vmm_ch5907", 0x00000b68 },
-    { "vmm_ch5908", 0x00000b6c },
-    { "vmm_ch5909", 0x00000b70 },
-    { "vmm_ch6000", 0x00000b74 },
-    { "vmm_ch6001", 0x00000b78 },
-    { "vmm_ch6002", 0x00000b7c },
-    { "vmm_ch6003", 0x00000b80 },
-    { "vmm_ch6004", 0x00000b84 },
-    { "vmm_ch6005", 0x00000b88 },
-    { "vmm_ch6006", 0x00000b8c },
-    { "vmm_ch6007", 0x00000b90 },
-    { "vmm_ch6008", 0x00000b94 },
-    { "vmm_ch6009", 0x00000b98 },
-    { "vmm_ch6100", 0x00000b9c },
-    { "vmm_ch6101", 0x00000ba0 },
-    { "vmm_ch6102", 0x00000ba4 },
-    { "vmm_ch6103", 0x00000ba8 },
-    { "vmm_ch6104", 0x00000bac },
-    { "vmm_ch6105", 0x00000bb0 },
-    { "vmm_ch6106", 0x00000bb4 },
-    { "vmm_ch6107", 0x00000bb8 },
-    { "vmm_ch6108", 0x00000bbc },
-    { "vmm_ch6109", 0x00000bc0 },
-    { "vmm_ch6200", 0x00000bc4 },
-    { "vmm_ch6201", 0x00000bc8 },
-    { "vmm_ch6202", 0x00000bcc },
-    { "vmm_ch6203", 0x00000bd0 },
-    { "vmm_ch6204", 0x00000bd4 },
-    { "vmm_ch6205", 0x00000bd8 },
-    { "vmm_ch6206", 0x00000bdc },
-    { "vmm_ch6207", 0x00000be0 },
-    { "vmm_ch6208", 0x00000be4 },
-    { "vmm_ch6209", 0x00000be8 },
-    { "vmm_ch6300", 0x00000bec },
-    { "vmm_ch6301", 0x00000bf0 },
-    { "vmm_ch6302", 0x00000bf4 },
-    { "vmm_ch6303", 0x00000bf8 },
-    { "vmm_ch6304", 0x00000bfc },
-    { "vmm_ch6305", 0x00000c00 },
-    { "vmm_ch6306", 0x00000c04 },
-    { "vmm_ch6307", 0x00000c08 },
-    { "vmm_ch6308", 0x00000c0c },
-    { "vmm_ch6309", 0x00000c10 },
-    { "vmm_global_bank1_sp000", 0x00000c14 },
-    { "vmm_global_bank1_sp001", 0x00000c18 },
-    { "vmm_global_bank1_sp002", 0x00000c1c },
-    { "vmm_global_bank1_sp003", 0x00000c20 },
-    { "vmm_global_bank1_sp004", 0x00000c24 },
-    { "vmm_global_bank1_sp005", 0x00000c28 },
-    { "vmm_global_bank1_sp006", 0x00000c2c },
-    { "vmm_global_bank1_sp007", 0x00000c30 },
-    { "vmm_global_bank1_sp008", 0x00000c34 },
-    { "vmm_global_bank1_sp009", 0x00000c38 },
-    { "vmm_global_bank1_sp100", 0x00000c3c },
-    { "vmm_global_bank1_sp101", 0x00000c40 },
-    { "vmm_global_bank1_sp102", 0x00000c44 },
-    { "vmm_global_bank1_sp103", 0x00000c48 },
-    { "vmm_global_bank1_sp104", 0x00000c4c },
-    { "vmm_global_bank1_sp105", 0x00000c50 },
-    { "vmm_global_bank1_sp106", 0x00000c54 },
-    { "vmm_global_bank1_sp107", 0x00000c58 },
-    { "vmm_global_bank1_sp108", 0x00000c5c },
-    { "vmm_global_bank1_sp109", 0x00000c60 },
-    { "vmm_global_bank1_sp200", 0x00000c64 },
-    { "vmm_global_bank1_sp201", 0x00000c68 },
-    { "vmm_global_bank1_sp202", 0x00000c6c },
-    { "vmm_global_bank1_sp203", 0x00000c70 },
-    { "vmm_global_bank1_sp204", 0x00000c74 },
-    { "vmm_global_bank1_sp205", 0x00000c78 },
-    { "vmm_global_bank1_sp206", 0x00000c7c },
-    { "vmm_global_bank1_sp207", 0x00000c80 },
-    { "vmm_global_bank1_sp208", 0x00000c84 },
-    { "vmm_global_bank1_sp209", 0x00000c88 }
-};
+extern const std::unordered_map<std::string, uint32_t> vmm_tbl_register_map;
\ No newline at end of file
diff --git a/vmmTblApp/src/vmm_tbl.cpp b/vmmTblApp/src/vmm_tbl.cpp
index ef5eb0d6b47d0c115db65c0a6cd211a24cfd10ca..e460bbfab595d188c88859d0d46049d3676b66ea 100644
--- a/vmmTblApp/src/vmm_tbl.cpp
+++ b/vmmTblApp/src/vmm_tbl.cpp
@@ -1,76 +1,79 @@
 #include "vmm_tbl.h"
 
 /** Constructor for the VMMTbl class */
-VMMTbl::VMMTbl(RMM& rmm, int ring, int node, int hybrids)
-  : FrontEndBase(rmm.get_rmm_reg_access(), ring, node),
-    pVMMConfig(*this),
-    pRMM(&rmm)
+VMMTbl::VMMTbl(RMM* rmm, const char *FENPortName, int ring, int node, int hybrids)
+  : asynPortDriver(FENPortName, 0,
+      asynInt8ArrayMask | asynInt32Mask | asynInt64Mask | asynDrvUserMask | asynFloat64Mask | asynOctetMask,          // Interfaces that we implement
+      asynInt8ArrayMask | asynInt64Mask | asynInt32ArrayMask | asynFloat64Mask | asynInt32Mask | asynOctetMask,       // Interfaces that do callbacks
+      ASYN_MULTIDEVICE | ASYN_CANBLOCK, 1, /* ASYN_CANBLOCK=1, ASYN_MULTIDEVICE=1, autoConnect=1 */
+      0, 0),
+      number_hybrids(hybrids)
 {
-  number_hybrids = hybrids;
-  addr_list = ring * NUMBER_NODES_PER_RING + node;
-  fe_addr_map[ring] = vmm_tbl_register_map;
+
+  pVmmTblAPI = FrontEndFactory::createAndRegister<VmmTblAPI>(
+    rmm->getRMMAPI(),
+    ring,
+    node,
+    "VmmTbl",
+    vmm_tbl_register_map);
+
   createEpicsParams();
   setInitialEpicsParams();
-  pRMM->get_rmm_rings().set_topology(ring, node, "vmm-tbl");
-  pRMM->updateTopologyPvs(ring, node, "vmmTbl");
+  rmm->updateTopologyPvs(ring, node, "vmmTbl");
   for (int hyb = 0; hyb < number_hybrids; hyb++) {
-    pVMMConfig.enableHybrid(hyb, true);
-    pRMM->setStringParam(addr_list, vmmHybFwVersion_[hyb], pVMMConfig.readFwVersion(hyb).c_str());
-    pRMM->setStringParam(addr_list, vmmHybId_[hyb], pVMMConfig.readIDChip(hyb).c_str());
-    pRMM->setStringParam(addr_list, vmmHybGeoPos_[hyb], pVMMConfig.readGeoPos(hyb).c_str());
-    pRMM->setIntegerParam(addr_list, vmmHybLinkStatus_[hyb], std::stoi(pVMMConfig.checkLinkStatus(hyb)));
+    pVmmTblAPI->enableHybrid(hyb, true);
+    setStringParam(vmmHybFwVersion_[hyb], pVmmTblAPI->readFwVersion(hyb).c_str());
+    setStringParam(vmmHybId_[hyb], pVmmTblAPI->readIDChip(hyb).c_str());
+    setStringParam(vmmHybGeoPos_[hyb], pVmmTblAPI->readGeoPos(hyb).c_str());
+    setIntegerParam(vmmHybLinkStatus_[hyb], std::stoi(pVmmTblAPI->checkLinkStatus(hyb)));
   }
 }
 
-void VMMTbl::configFE() {
-  puts("config_FE");
-}
-
 void VMMTbl::setInitialEpicsParams() {
   puts("set_initial_epics_params");
 }
 
 asynStatus VMMTbl::createEpicsParams() {
-  pRMM->createParam(addr_list, "SEL_ANALOG_MONITOR_VMM0", asynParamInt32, &vmmSelectMonitorVMM0_);
-  pRMM->createParam(addr_list, "SEL_ANALOG_MONITOR_VMM1", asynParamInt32, &vmmSelectMonitorVMM1_);
-  pRMM->createParam(addr_list, "READ_ADC_VMMS", asynParamInt32, &vmmProcessReadMonitorVMMs_);
-  pRMM->createParam(addr_list, "ADC_VALUE_VMM0", asynParamFloat64, &vmmMonitorValueVMM0_);
-  pRMM->createParam(addr_list, "ADC_VALUE_VMM1", asynParamFloat64, &vmmMonitorValueVMM1_);
-  pRMM->createParam(addr_list, "VMM_FEN_ACQUIRE", asynParamInt32, &vmmAcquire_);
+  createParam("SEL_ANALOG_MONITOR_VMM0", asynParamInt32, &vmmSelectMonitorVMM0_);
+  createParam("SEL_ANALOG_MONITOR_VMM1", asynParamInt32, &vmmSelectMonitorVMM1_);
+  createParam("READ_ADC_VMMS", asynParamInt32, &vmmProcessReadMonitorVMMs_);
+  createParam("ADC_VALUE_VMM0", asynParamFloat64, &vmmMonitorValueVMM0_);
+  createParam("ADC_VALUE_VMM1", asynParamFloat64, &vmmMonitorValueVMM1_);
+  createParam("VMM_FEN_ACQUIRE", asynParamInt32, &vmmAcquire_);
 
   for (int hyb = 0; hyb < number_hybrids; hyb++) {
     std::ostringstream param_name;
     param_name << "HYB_" << hyb <<"_FW_VERSION";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamOctet, &vmmHybFwVersion_[hyb]);
+    createParam(param_name.str().c_str(), asynParamOctet, &vmmHybFwVersion_[hyb]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_ID";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamOctet, &vmmHybId_[hyb]);
+    createParam(param_name.str().c_str(), asynParamOctet, &vmmHybId_[hyb]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_GEOPOS";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamOctet, &vmmHybGeoPos_[hyb]);
+    createParam(param_name.str().c_str(), asynParamOctet, &vmmHybGeoPos_[hyb]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_LINK_STATUS";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamInt32, &vmmHybLinkStatus_[hyb]);
+    createParam(param_name.str().c_str(), asynParamInt32, &vmmHybLinkStatus_[hyb]);
     for (int vmm=0; vmm < VMMS_PER_HYBRID; vmm++)
     {
     param_name.str("");
     param_name << "HYB_" << hyb <<"_" << vmm << "_ST";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamInt8Array, &vmmST_[hyb][vmm]);
+    createParam(param_name.str().c_str(), asynParamInt8Array, &vmmST_[hyb][vmm]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_" << vmm << "_SC";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamInt8Array, &vmmSC_[hyb][vmm]);
+    createParam(param_name.str().c_str(), asynParamInt8Array, &vmmSC_[hyb][vmm]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_" << vmm << "_SL";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamInt8Array, &vmmSL_[hyb][vmm]);
+    createParam(param_name.str().c_str(), asynParamInt8Array, &vmmSL_[hyb][vmm]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_" << vmm << "_STH";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamInt8Array, &vmmSTH_[hyb][vmm]);
+    createParam(param_name.str().c_str(), asynParamInt8Array, &vmmSTH_[hyb][vmm]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_" << vmm << "_SM";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamInt8Array, &vmmSM_[hyb][vmm]);
+    createParam(param_name.str().c_str(), asynParamInt8Array, &vmmSM_[hyb][vmm]);
     param_name.str("");
     param_name << "HYB_" << hyb <<"_" << vmm << "_SMX";
-    pRMM->createParam(addr_list, param_name.str().c_str(), asynParamInt8Array, &vmmSMX_[hyb][vmm]);
+    createParam(param_name.str().c_str(), asynParamInt8Array, &vmmSMX_[hyb][vmm]);
     }
   }
 
@@ -80,37 +83,35 @@ asynStatus VMMTbl::createEpicsParams() {
 asynStatus VMMTbl::writeInt32(asynUser *pasynUser, epicsInt32 value) {
   asynStatus status = asynSuccess;
   int function = pasynUser->reason;
-  int addr = 0;
-  pRMM->getAddress(pasynUser, &addr);
 
   if ((value) && (function == vmmProcessReadMonitorVMMs_)) {
     int adc_sensor = 0;
     for (int vmm = 0; vmm <= 1; vmm++) {
-      pRMM->getIntegerParam(addr, vmmSelectMonitorVMM0_ + vmm, &adc_sensor);
+      getIntegerParam(vmmSelectMonitorVMM0_ + vmm, &adc_sensor);
       std::cout << "adc_sensor" << adc_sensor << std::endl;
-      pVMMConfig.getHybrid(0).getVMM(vmm).setRegister("sm5_sm0", adc_sensor + 64);
-      pVMMConfig.configVMM(0, vmm);
-      int adc_read = pVMMConfig.readADC(0, vmm);
+      pVmmTblAPI->getHybrid(0).getVMM(vmm).setRegister("sm5_sm0", adc_sensor + 64);
+      pVmmTblAPI->configVMM(0, vmm);
+      int adc_read = pVmmTblAPI->readADC(0, vmm);
 
       std::cout << "adc_read" << adc_read << std::endl;
 
       if (adc_sensor == 3) {
         double temperature = (725 - adc_read) / 1.85;
-        pRMM->setDoubleParam(addr, vmmMonitorValueVMM0_ + vmm, temperature);
+        setDoubleParam(vmmMonitorValueVMM0_ + vmm, temperature);
       }
       else {
-        pRMM->setDoubleParam(addr, vmmMonitorValueVMM0_ + vmm, adc_read);
+        setDoubleParam(vmmMonitorValueVMM0_ + vmm, adc_read);
       }
     }
   }
 
   else if (function == vmmAcquire_) {
   
-    if (value) pVMMConfig.acquire(true);
-    else pVMMConfig.acquire(false);
+    if (value) pVmmTblAPI->acquire(true);
+    else pVmmTblAPI->acquire(false);
 
     for (int hyb = 0; hyb < number_hybrids; hyb++)
-      pRMM->setIntegerParam(addr_list, vmmHybLinkStatus_[hyb], std::stoi(pVMMConfig.checkLinkStatus(hyb)));
+      setIntegerParam(vmmHybLinkStatus_[hyb], std::stoi(pVmmTblAPI->checkLinkStatus(hyb)));
   }
 
   return status;
@@ -127,28 +128,28 @@ asynStatus VMMTbl::writeInt8Array(asynUser *pasynUser, epicsInt8 *value, size_t
   std::vector<epicsInt8> int8Array;
   Reg pair;
 
-  status |= pRMM->parseAsynUser(pasynUser, &function, &addr, &paramName);
-  pRMM->getParamName(addr, function, &paramName);
+  status |= parseAsynUser(pasynUser, &function, &addr, &paramName);
+  getParamName(function, &paramName);
   status |= findRegister(function, &pair);
   if (status) {
     asynPrint(pasynUser, ASYN_TRACE_ERROR,
               "%s:%s: function=%d, name=%s, value=%d. Cannot find which Hybrid-VMM pair is function related to.\n",
-              driverName, functionName, function, paramName, value);
+              driverName, functionName, function, paramName, *value);
     return (asynStatus) status;
   }
 
   asynPrint(pasynUser, ASYN_TRACEIO_DRIVER,
             "%s:%s: function=%d, name=%s, value=%d, hybrid=%d, vmm=%d, register=%s\n",
-            driverName, functionName, function, paramName, value, pair.hyb, pair.vmm, pair.rg.c_str());
+            driverName, functionName, function, paramName, *value, pair.hyb, pair.vmm, pair.rg.c_str());
 
   for (epicsInt8 i = 0; i < ncopy; ++i) {
     int8Array.push_back(static_cast<int>(value[i]) >= 1 ? 1 : 0);
-    pVMMConfig.getHybrid(pair.hyb).getVMM(pair.vmm).setRegister(pair.rg.c_str(),
+    pVmmTblAPI->getHybrid(pair.hyb).getVMM(pair.vmm).setRegister(pair.rg.c_str(),
                                                   static_cast<int>(value[i]),
                                                   i);
   }
 
-  status |= pRMM->doCallbacksInt8Array(int8Array.data(), int8Array.size(), function, 0);
+  status |= doCallbacksInt8Array(int8Array.data(), int8Array.size(), function, 0);
   return (asynStatus) status;
 
 }
@@ -185,35 +186,39 @@ asynStatus VMMTbl::findRegister(int function, Reg *reg_){
 
 asynStatus VMMTbl::writeFloat64(asynUser *pasynUser, epicsFloat64 value) {
   asynStatus status = asynSuccess;
-  int function = pasynUser->reason;
   int addr = 0;
-  pRMM->getAddress(pasynUser, &addr);
+  getAddress(pasynUser, &addr);
 
   return status;
 }
 
-
 extern "C" {
-  static void VMMTblConfig(const char *rmm_port_name, int ring, int hybrids) {
+  static void VMMTblConfig(const char *RMMPortName, const char* FENPortName, int ring, int hybrids) {
     int node = 0; // VMM use always only the Node 0
     RMM *pRMM;
-    pRMM = (RMM *) findAsynPortDriver(rmm_port_name);
-    pRMM->frontends[ring][node] = std::make_shared<VMMTbl>(*pRMM, ring, node, hybrids);
+    pRMM = (RMM *) findAsynPortDriver(RMMPortName);
+    if (pRMM != nullptr) {
+      new VMMTbl(pRMM, FENPortName, ring, node, hybrids);
+    } else {
+      std::cerr << "Error: Failed to find RMM for port " << RMMPortName << std::endl;
+    }
   }
 
   static const iocshArg configArg0 = { "RMM Port name", iocshArgString};
-  static const iocshArg configArg1 = { "Ring", iocshArgInt};
-  static const iocshArg configArg2 = { "Hybrids", iocshArgInt};
+  static const iocshArg configArg1 = { "Front End Port Name", iocshArgString};
+  static const iocshArg configArg2 = { "Ring", iocshArgInt};
+  static const iocshArg configArg3 = { "Hybrids", iocshArgInt};
 
 
   static const iocshArg * const configArgs[] = {&configArg0,
                                                 &configArg1,
-                                                &configArg2};
+                                                &configArg2,
+                                                &configArg3};
 
-  static const iocshFuncDef configFuncDef = {"VMMTblConfig", 3, configArgs};
+  static const iocshFuncDef configFuncDef = {"VMMTblConfig", 4, configArgs};
 
   static void configCallFunc(const iocshArgBuf *args) {
-    VMMTblConfig(args[0].sval, args[1].ival, args[2].ival);
+    VMMTblConfig(args[0].sval, args[1].sval, args[2].ival, args[3].ival);
   }
 
   static void VMMTblRegister(void) {
diff --git a/vmmTblApp/src/vmm_tbl.h b/vmmTblApp/src/vmm_tbl.h
index 98676877dbdd960052c0eef43b59b07e39ac90c5..f369eed6aac6a94cb72a9e97b9997a37b0af7537 100644
--- a/vmmTblApp/src/vmm_tbl.h
+++ b/vmmTblApp/src/vmm_tbl.h
@@ -1,9 +1,7 @@
 #pragma once
 
 #include "rmm.h"
-#include "FrontEndBase.h"
-#include "vmm_tbl_regs_map.h"
-#include "vmm_config.h"
+#include "VmmTblAPI.h"
 
 /* Struct to hold Hyb, VMM pair values */
 struct Reg {
@@ -13,15 +11,14 @@ struct Reg {
 };
 
 /** Class definition for the VMMTbl class */
-class VMMTbl : public FrontEndBase {
+class VMMTbl : public asynPortDriver {
 public:
-  VMMTbl(RMM& rmm, int ring, int node, int hybrids);
+  VMMTbl(RMM* rmm, const char *FENPortName, int ring, int node, int hybrids);
   asynStatus createEpicsParams();
 	virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value);
   virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value);
   virtual asynStatus writeInt8Array(asynUser *pasynUser, epicsInt8 *value, size_t nElements);
   void setInitialEpicsParams();
-  void configFE();
   asynStatus findRegister(int function, Reg *reg_);
 
 protected:
@@ -48,8 +45,6 @@ protected:
 
 private:
   static constexpr const char *driverName = "VMMTbl";
-  FENConfigModule pVMMConfig;
-  RMM *pRMM;
-  int addr_list = 0;
+  std::shared_ptr<VmmTblAPI> pVmmTblAPI;
   int number_hybrids;
 };