diff --git a/modneflib/modnef/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/__pycache__/__init__.cpython-310.pyc
index 97bc1b55c8e564601f549461575341a326c4fe38..1c1dde05882187dd903bc32db2023dc6ab73f07e 100644
Binary files a/modneflib/modnef/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/__pycache__/project_generator.cpython-310.pyc b/modneflib/modnef/__pycache__/project_generator.cpython-310.pyc
index 0ed6ae3574e1b885fd45e6ef8052fe41b3c6ef24..89068c06536f19a0bb0a5a3680e80f70c5747f73 100644
Binary files a/modneflib/modnef/__pycache__/project_generator.cpython-310.pyc and b/modneflib/modnef/__pycache__/project_generator.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/__pycache__/__init__.cpython-310.pyc
index beca1367da962b7eb394e3a253cc92cd13c99bd2..4308dabcf9c4d14bebada5ac8859587f47dbdceb 100644
Binary files a/modneflib/modnef/arch_builder/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/arch_builder/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/__pycache__/modnef_builder.cpython-310.pyc b/modneflib/modnef/arch_builder/__pycache__/modnef_builder.cpython-310.pyc
index 504cbd1208501c326392c20cc12ffd618f8c7d22..c406f25127fd49fb2fa45d97472e1ed400690011 100644
Binary files a/modneflib/modnef/arch_builder/__pycache__/modnef_builder.cpython-310.pyc and b/modneflib/modnef/arch_builder/__pycache__/modnef_builder.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/__init__.cpython-310.pyc
index 49a173f5bb67900460047fbac675a8cea2b50726..3b212ee3614a9af0e36712926d9a0af16b231426 100644
Binary files a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif.cpython-310.pyc
index 568be1e4a271e6bda21631118f9b76c9fb817cb1..040fe846bbcb6f8bbf4df9b5e28a5ad12a442a46 100644
Binary files a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif_debugger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif_debugger.cpython-310.pyc
index f26b4ad62659ef74bee083693bd48d6b90387cc8..4c7adf2fd3f71ce35ab11fe96a27b7d63136292e 100644
Binary files a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif_debugger.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif_debugger.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/rblif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/rblif.cpython-310.pyc
index 4e31889f75440e53700938c74798b2545c29eacf..fb965733990fb968c4295ce59133d280b66e824b 100644
Binary files a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/rblif.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/rblif.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/__init__.cpython-310.pyc
index 0313b89029f0785da81763dd763cc417c34d4f12..23dbf6a2431fa81ae5e82ddb6ab8f6736f62f106 100644
Binary files a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/io_debugger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/io_debugger.cpython-310.pyc
index 632637f4b04527ac1d3a24443b51a76fa6b16e06..d6934bb2ce045f16e4c53312eee37254567e81f9 100644
Binary files a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/io_debugger.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/io_debugger.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/probe.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/probe.cpython-310.pyc
index 025d27c86cb4916634bc580991341d7529948ff5..b5aca3ec23fe746f1a58cc580f5362e1341163f0 100644
Binary files a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/probe.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/probe.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/__init__.cpython-310.pyc
index 4b8b352519bdebb320160c2186cdf940c56d2c37..11372a818f7faeb3c9066dcae0fe361f4801f7cd 100644
Binary files a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/rslif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/rslif.cpython-310.pyc
index 2fd88315cecd4c559ef0a74974fa1fbb69db7a79..5b24aaa0885c2131c19871a86faad975048e3a34 100644
Binary files a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/rslif.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/rslif.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif.cpython-310.pyc
index 0ed76f720997c9f2cea75aa090f94651f8cf6f72..0d8c1b1a45c2393e1a95b5db6af34b5151be82c0 100644
Binary files a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif_debugger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif_debugger.cpython-310.pyc
index 578980bf699a17a8260c15fbff0abd40db19fa0d..688996fdb1d7ba04678c1533fe2f12bc15bc8d67 100644
Binary files a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif_debugger.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif_debugger.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/__init__.cpython-310.pyc
index 5b336006bc2d68f872a4292e44a989684ee8312d..8cbca87881ffe66fa5a11be3486cefa94dbb4c98 100644
Binary files a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/rshiftlif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/rshiftlif.cpython-310.pyc
index ef94eeaa41b2c199155b197196909bdd76832f9b..ef88812d033c70331c774b00676de730d57e7ff8 100644
Binary files a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/rshiftlif.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/rshiftlif.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/shiftlif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/shiftlif.cpython-310.pyc
index edf37d966fa90c6e91a105a1378a9859a3220549..dd41a74e4baaf20d00b6e5493b1c643fcb77d102 100644
Binary files a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/shiftlif.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/shiftlif.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/__init__.cpython-310.pyc
index 7aa1604b449f29837446d2f22b53a805f4b74b37..cf5c9c4e01956a3dd5c85e024469634d1ed2f5dd 100644
Binary files a/modneflib/modnef/arch_builder/modules/UART/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/UART/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_1step.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_1step.cpython-310.pyc
index edc5d4ea2f5a0ebef07f8f16f02a0ad9c7a74ae9..69d087a20a122cec41b12ce0a485df447c63546a 100644
Binary files a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_1step.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_1step.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier.cpython-310.pyc
index 1031f5807b624699fe65cf0e3423a0c6d8b74442..0e0f80c34b414e363044e482446988cf3c8bd99d 100644
Binary files a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier_timer.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier_timer.cpython-310.pyc
index 897da078dec9b61ae3e492a84cf343cd4a94f887..5a5ad6d89b739e5c66e9c2ee2e4370ff6ce4ae9c 100644
Binary files a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier_timer.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier_timer.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep.cpython-310.pyc
index e2b148f4a5ea72035d5422a1e2d2770232092533..143fe5c97041ee9b3da589451f8776a67bb5b5cc 100644
Binary files a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep_timer.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep_timer.cpython-310.pyc
index 16115cffb25cfc60343cb1f99576c213c47ba0ed..4c97b527667dc00bf23e9f78bddaf62a14f15c7b 100644
Binary files a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep_timer.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep_timer.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/__init__.cpython-310.pyc
index a51edfc92ae452cb40440d421be6bec3f0d7c74d..480f3a76c61303ed6d7e42c98351997089123c1d 100644
Binary files a/modneflib/modnef/arch_builder/modules/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/io_arch.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/io_arch.cpython-310.pyc
index 4d96392ddfe15b191e182cd3aa304e5a41212ef9..c11e8191b2021f4bbe1c2487ac946ccb9bebdfec 100644
Binary files a/modneflib/modnef/arch_builder/modules/__pycache__/io_arch.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/__pycache__/io_arch.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/link.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/link.cpython-310.pyc
index 818b986d5cf5f95fa4e36c387429bb1af859a62e..dff228052806107800c758b77f241aec9f4cb670 100644
Binary files a/modneflib/modnef/arch_builder/modules/__pycache__/link.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/__pycache__/link.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/merger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/merger.cpython-310.pyc
index f21c44887ddbbadd156e313ba6709699a2eebe3d..85e7cd04fe794501ce7b8dd0bfeedb27c39bf3e0 100644
Binary files a/modneflib/modnef/arch_builder/modules/__pycache__/merger.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/__pycache__/merger.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/modnef_arch_mod.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/modnef_arch_mod.cpython-310.pyc
index dbd537fe9a3c3c215a0a421d119a235811f28397..96808468206aa92abe194e4f66f87fc58f75ada0 100644
Binary files a/modneflib/modnef/arch_builder/modules/__pycache__/modnef_arch_mod.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/__pycache__/modnef_arch_mod.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/splitter.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/splitter.cpython-310.pyc
index 3d1e766bf9ec8f673aa84f47da0bd003c979baa8..e2feb521748e5addea4cd30b98727ef1da954dc7 100644
Binary files a/modneflib/modnef/arch_builder/modules/__pycache__/splitter.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/__pycache__/splitter.cpython-310.pyc differ
diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/utilities.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/utilities.cpython-310.pyc
index d5d3137b5a44eddfb4553d6c6b4cff1640631648..f3ee189828c2c136bf2b9f2067e9e8023a393833 100644
Binary files a/modneflib/modnef/arch_builder/modules/__pycache__/utilities.cpython-310.pyc and b/modneflib/modnef/arch_builder/modules/__pycache__/utilities.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_driver/__pycache__/__init__.cpython-310.pyc
index cbc1e081252e5e639174f5ae3c33e76252839f87..7ed166a750428e76a5e48a84ce183718d7d99b66 100644
Binary files a/modneflib/modnef/modnef_driver/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/modnef_driver/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/__pycache__/modnef_drivers.cpython-310.pyc b/modneflib/modnef/modnef_driver/__pycache__/modnef_drivers.cpython-310.pyc
index d643ce5865d1ad4547af351f25fb6b123e8797fa..4ea19e770fec6da940aa1ca36c48e816ed0ab69f 100644
Binary files a/modneflib/modnef/modnef_driver/__pycache__/modnef_drivers.cpython-310.pyc and b/modneflib/modnef/modnef_driver/__pycache__/modnef_drivers.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/__init__.cpython-310.pyc
index 063a6d8e0a1751a5009e9a0755b0c7d49d8f2d98..9dbb2e23b522fb6fd1116dcb80128e79c2cbdffd 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_driver.cpython-310.pyc
index 027077ce472bc383f5cc509c64f7d59a42c96409..ecded845d49b6daae1185cc2f89bf0c1cc0c8072 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_driver.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_driver.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_timer_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_timer_driver.cpython-310.pyc
index bfebacf98ca8c275d2f8e2fa5488f0d5aa8b7f5e..92666ae9aca58b6dc694328f791196d46ec4e89d 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_timer_driver.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_timer_driver.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/debugger_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/debugger_driver.cpython-310.pyc
index 5a2207dbda1e0a8c33f149be8b07835177996f91..e0195173998ec9c3f79622491e95cb0db1c06886 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/debugger_driver.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/debugger_driver.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/default_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/default_driver.cpython-310.pyc
index 3a70b1174b21782c614c029ebb851ca670601751..f5d062b248598377a283f83205a51b475e6907de 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/default_driver.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/default_driver.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/single_step_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/single_step_driver.cpython-310.pyc
index cda761c3d3188513187ff3927e93249fb75ac927..2f1bfbe239c326a6a00b6330b646969fb00ba825 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/single_step_driver.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/single_step_driver.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_driver.cpython-310.pyc
index f2df55ed699b718ef35b6b84b649539327239d0d..7ac36b8fd1a27a44d38070835f9793951c86bf57 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_driver.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_driver.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_timer_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_timer_driver.cpython-310.pyc
index 162197a96e629f1d95847dbc965401506d2eac6e..7e0954cd4a565ec0a7405db25eb4747d3a686395 100644
Binary files a/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_timer_driver.cpython-310.pyc and b/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_timer_driver.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/__init__.cpython-310.pyc
index fb5f930237a51ae64b29d117c9107ba84b67fbc0..688e6e42278306ca30b5072399745da945a9723c 100644
Binary files a/modneflib/modnef/modnef_torch/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/modnef_torch/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/__pycache__/executor.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/executor.cpython-310.pyc
index a88847587dcf292e4dbb58e5a3712a9c5738a936..c129b94075bfc856c0e4e603adb7f7ac77f53225 100644
Binary files a/modneflib/modnef/modnef_torch/__pycache__/executor.cpython-310.pyc and b/modneflib/modnef/modnef_torch/__pycache__/executor.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/__pycache__/model.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/model.cpython-310.pyc
index 980e74db9a47de5f660f7f5c0d7efaab3cda51b7..a836e86c21a81e76ff5d2d204e321e780265c201 100644
Binary files a/modneflib/modnef/modnef_torch/__pycache__/model.cpython-310.pyc and b/modneflib/modnef/modnef_torch/__pycache__/model.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/__pycache__/trainer.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/trainer.cpython-310.pyc
index 18e25f81bcf3e35df0c64461da7b3606c3a31ae7..12b280a2c752f9041d1674f3a54e26f20c2bdb51 100644
Binary files a/modneflib/modnef/modnef_torch/__pycache__/trainer.cpython-310.pyc and b/modneflib/modnef/modnef_torch/__pycache__/trainer.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/model.py b/modneflib/modnef/modnef_torch/model.py
index 8eaf453a4ca3cddbd464f9301c1ba8b37cd6e40f..5d328701b5bc82b0d66bf870db49819bcfe93484 100644
--- a/modneflib/modnef/modnef_torch/model.py
+++ b/modneflib/modnef/modnef_torch/model.py
@@ -83,7 +83,7 @@ class ModNEFModel(nn.Module):
   def __train(self, mode, quant, hardware, fpga):
 
     self.hardware_estimation_flag = hardware
-    self.fpga = fpga
+    self.fpga_eval_flag = fpga
     
     for m in self.modules():
       if isinstance(m, ModNEFNeuron):
@@ -92,7 +92,7 @@ class ModNEFModel(nn.Module):
 
     return super().train(mode=mode)
 
-  def train(self, mode : bool = True, quant : bool = True):
+  def train(self, mode : bool = True, quant : bool = False):
     """
     Set neuron model for trainning
     """
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/__init__.cpython-310.pyc
index bdf280b17bc37b26bd5d68650f91c7c7912058d0..c73777892c62178df480b384ce51bad9a4eb9605 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/modnef_torch_neuron.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/modnef_torch_neuron.cpython-310.pyc
index 895a5aacc1efbab760c5e04db68a67bb7652872b..efe2984b5c8c023df426bfa8a8b30c250932f54b 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/modnef_torch_neuron.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/modnef_torch_neuron.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/__init__.cpython-310.pyc
index 829c917976b2b648660d27dd7f7d5092f33094db..1d5db0afb7228579ffe4d11dc30014181f63dfa7 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/blif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/blif.cpython-310.pyc
index 0da4515400f65ec51a49a88e508075b209f54f51..2fb28b69101f2f2cb2298ccfcfa4163a85ab0209 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/blif.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/blif.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/rblif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/rblif.cpython-310.pyc
index ce3b0d27934dac2dfcd67a029307b2f42181b0e5..04fa112e1be499b017a32f3013eb5286f9240a6e 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/rblif.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/rblif.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py b/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py
index dbfb48aebf08ec0f94598443326c3fc9ab412ce8..88b04f27ce5d11d6aeb34d16a7373a97b95e2c34 100644
--- a/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py
+++ b/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py
@@ -94,8 +94,8 @@ class ModNEFNeuron():
   def set_quant(self, mode=False):
     self.quantization_flag = mode
 
-    # if mode:
-    #   self.quantize(False)
+    if mode:
+      self.quantize(False)
   
   def hardware_estimation(self, mode = False):
     """
@@ -103,9 +103,10 @@ class ModNEFNeuron():
     """
     
     self.hardware_estimation_flag = mode
+    self.quantization_flag = mode
 
     if mode:
-      self.set_quant(mode)
+      self.quantize(True)
   
   def get_builder_module(self, module_name : str, output_path : str = "."):
     """
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/__init__.cpython-310.pyc
index 5d278f77bee4424d05d152cf1cc01563949e8e69..fd32661148fc23d670f5c43245ea3d63de63717e 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/rslif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/rslif.cpython-310.pyc
index c689156476790470b9b7d39d1f684d72cbc014cc..6dff0a87ea8d67f9790e1af323aef976af9139f6 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/rslif.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/rslif.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/slif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/slif.cpython-310.pyc
index 56a8d34cf4cbbbb57ba5f63a00f4e82af30ca69b..5cd752e41e71aff3db61b39b420b47b0704dffc3 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/slif.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/slif.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py
index a7b89ebc3012f273badcc203dd67c4806b19d4fc..994bb39111dc0d85bde37bd53e0a53275ad1044e 100644
--- a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py
+++ b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py
@@ -299,7 +299,9 @@ class SLIF(LIF, ModNEFNeuron):
     if self.hardware_description["variable_size"]==-1:
       if self.hardware_estimation_flag:
         val_max = max(abs(self.val_max), abs(self.val_min))
-        val_max = self.quantizer(val_max)
+        print(val_max)
+        val_max = self.quantizer(val_max, dtype=torch.int32)
+        print(val_max)
         self.hardware_description["variable_size"] = ceil(log(val_max)/log(256))*8
       else:
         self.hardware_description["variable_size"]=16
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/__init__.cpython-310.pyc
index b0d94c36d8094814dcfa4056130323bffdb3350d..41deef92f558133490ec72f27c3405cadf873a70 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/rshiftlif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/rshiftlif.cpython-310.pyc
index fc3997c992141b7289ae5141eb50036c7311aa12..b67d63b627c11cf4a3af22935eb3059308965d9e 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/rshiftlif.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/rshiftlif.cpython-310.pyc differ
diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/shiftlif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/shiftlif.cpython-310.pyc
index 70eb665a7242039cc59cb7aeb23a76d5ccffe1f7..ae445a6e642de63fca47ed05affc89f74da21634 100644
Binary files a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/shiftlif.cpython-310.pyc and b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/shiftlif.cpython-310.pyc differ
diff --git a/modneflib/modnef/quantizer/dynamic_scale_quantizer.py b/modneflib/modnef/quantizer/dynamic_scale_quantizer.py
index 4255dea4e75d793526d19676502789f4c8424bc5..6b98e21e21db04f0b4f8ba0860da797517943107 100644
--- a/modneflib/modnef/quantizer/dynamic_scale_quantizer.py
+++ b/modneflib/modnef/quantizer/dynamic_scale_quantizer.py
@@ -146,7 +146,7 @@ class DynamicScaleFactorQuantizer(Quantizer):
     born_max = 2**(self.bitwidth-int(self.signed))-1
 
     #scaled = torch.clamp(data/self.scale_factor, min=born_min, max=born_max).to(dtype)
-    scaled = (data/self.scale_factor).to(dtype)
+    scaled = torch.round(data/self.scale_factor).to(dtype)
 
     if unscale:
       return scaled*self.scale_factor
diff --git a/modneflib/modnef/templates/evaluation.py b/modneflib/modnef/templates/evaluation.py
index 40d71473ba39069a367c214a2ae76e0c3b2da933..aa74e22091b28a52bb36892ac081df0c918c7803 100644
--- a/modneflib/modnef/templates/evaluation.py
+++ b/modneflib/modnef/templates/evaluation.py
@@ -3,6 +3,7 @@ from torch.utils.data import DataLoader
 from modnef.modnef_torch import ModNEFModelBuilder
 import os
 from snntorch.surrogate import fast_sigmoid
+import torch
 from run_lib import *
 import sys
 
@@ -23,7 +24,6 @@ if __name__ == "__main__":
   """Kind of run
   eval : full precision evaluation
   qeval : quantized evaluation
-  heval : hardware estimation evaluation
   feval : FPGA eval
   """
   
@@ -37,6 +37,11 @@ if __name__ == "__main__":
   save_conf_matrix = False
   output_path = "."
 
+  """FPGA file definition"""
+  driver_config_path = "driver_config"
+  board_path = ""
+
+
   """Output variable definition"""
   acc = 0.0
   y_true = None
@@ -65,22 +70,23 @@ if __name__ == "__main__":
       testLoader=testLoader, 
       name=exp_name, 
       device=device, 
-      verbose=verbose
+      verbose=verbose,
+      quant=False
       )
   elif kind == "qeval":
-    # TODO
-    raise NotImplementedError()
-  elif kind == "heval":
-    acc, y_pred, y_true = hardware_estimation(
+    acc, y_pred, y_true = evaluation(
       model=model, 
       testLoader=testLoader, 
       name=exp_name, 
       device=device, 
-      verbose=verbose
+      verbose=verbose,
+      quant=True
       )
   elif kind == "feval":
     acc, y_pred, y_true = fpga_evaluation(
       model=model, 
+      driver_config=driver_config_path,
+      board_path=board_path,
       testLoader=testLoader, 
       name=exp_name, 
       verbose=verbose
diff --git a/modneflib/modnef/templates/model_template.json b/modneflib/modnef/templates/model_template.json
index 31fd483bafa2366531f188f883e75fa120e46398..cbf8673b9f594c67a682ad2eee7fb0a17d8b1d7a 100644
--- a/modneflib/modnef/templates/model_template.json
+++ b/modneflib/modnef/templates/model_template.json
@@ -1,5 +1,5 @@
 {
-  "name" : "blif_model",
+  "name" : "template_model",
 
   "input" : 2312,
   "num_class" : 10,
@@ -71,8 +71,8 @@
 
   "hardware" : {
     "clock_name" : "clock",
-    "clock_freq" : 125000000,
-    "baud_rate" : 921600,
+    "clock_freq" : 100000000,
+    "baud_rate" : 460800,
     "txd" : "uart_txd",
     "rxd" : "uart_rxd",
     "queue_read_depth" : 4096,
diff --git a/modneflib/modnef/templates/run_lib.py b/modneflib/modnef/templates/run_lib.py
index 38bec42008e9bdeed92c9077ebc456d73502f5ea..5a987427756fa788577b2bcdaccba5224e3eea1d 100644
--- a/modneflib/modnef/templates/run_lib.py
+++ b/modneflib/modnef/templates/run_lib.py
@@ -160,14 +160,14 @@ def __run_accuracy(model, testLoader, name, verbose, device):
       
     return (correct/total), y_pred, y_true
 
-def evaluation(model, testLoader, name="Evaluation", device=torch.device("cpu"), verbose=False):
+def evaluation(model, testLoader, name="Evaluation", device=torch.device("cpu"), verbose=False, quant=False):
   accuracy = 0
   y_pred = []
   y_true = []
 
   model = model.to(device)
 
-  model.eval()
+  model.eval(quant)
 
   accuracy, y_pred, y_true = __run_accuracy(model=model, testLoader=testLoader, name=name, verbose=verbose, device=device)
 
@@ -187,7 +187,7 @@ def hardware_estimation(model, testLoader, name="Hardware Estimation", device=to
   return accuracy, y_pred, y_true
 
 
-def fpga_evaluation(model, testLoader, name="FPGA Evaluation", verbose=False):
+def fpga_evaluation(model, testLoader, board_path, driver_config, name="FPGA Evaluation", verbose=False):
   accuracy = 0
   y_pred = []
   y_true = []
@@ -196,7 +196,7 @@ def fpga_evaluation(model, testLoader, name="FPGA Evaluation", verbose=False):
 
   model = model.to(device)
 
-  model.hardware_estimation()
+  model.fpga_eval(board_path, driver_config)
 
   accuracy, y_pred, y_true = __run_accuracy(model=model, testLoader=testLoader, name=name, verbose=verbose, device=device)
 
diff --git a/modneflib/modnef/templates/train.py b/modneflib/modnef/templates/train.py
index 3a5bc0cf37461314aadec4d85cd580c28ddab691..03603ecb67073dd27e7d2c58b4651504b9655ab8 100644
--- a/modneflib/modnef/templates/train.py
+++ b/modneflib/modnef/templates/train.py
@@ -4,6 +4,7 @@ from modnef.modnef_torch import ModNEFModelBuilder
 import os
 from snntorch.surrogate import fast_sigmoid
 from run_lib import *
+import torch
 
 if __name__ == "__main__":
 
@@ -21,7 +22,7 @@ if __name__ == "__main__":
   device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
 
   """Train variable definition"""
-  n_epoch = 10
+  n_epoch = 1
   best_model_name = "best_model"
   verbose = True
   save_plot = False
diff --git a/modneflib/modnef/templates/vhdl_generation.py b/modneflib/modnef/templates/vhdl_generation.py
new file mode 100644
index 0000000000000000000000000000000000000000..82dbb71fda818e276264ed04b3e2068791d4c0ca
--- /dev/null
+++ b/modneflib/modnef/templates/vhdl_generation.py
@@ -0,0 +1,62 @@
+import tonic
+from torch.utils.data import DataLoader
+from modnef.modnef_torch import ModNEFModelBuilder
+import os
+from snntorch.surrogate import fast_sigmoid
+from run_lib import *
+import torch
+
+if __name__ == "__main__":
+
+  """Experience name"""
+  exp_name = "Evaluation"
+
+  """Model definition"""
+  model_path = "model_template.json"
+  best_model_name = "best_model"
+
+  model = ModNEFModelBuilder(model_path, spike_grad=fast_sigmoid(slope=25))
+
+  model.load_state_dict(torch.load(best_model_name))
+
+
+  """Device definition"""
+  device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
+
+  """Hardware Estimation variable definition"""
+  verbose = True
+  
+
+  """VHDL file definition"""
+  output_path = "."
+  file_name = "template_vhdl_model.vhd"
+  driver_config_path = "driver_config"
+  
+  """DataSet Definition"""
+  dataset_path = f"{os.environ['HOME']}/datasets"
+
+  # data set definition, change to your dataset
+  sensor_size = tonic.datasets.NMNIST.sensor_size
+  frame_transform = tonic.transforms.ToFrame(sensor_size=sensor_size, n_time_bins=10)
+
+  test_set = tonic.datasets.NMNIST(save_to=dataset_path, train=False, transform=frame_transform)
+
+  # batch loader
+  batch_size = 64
+  
+  testLoader = DataLoader(test_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True))
+
+  acc, y_pred, y_true = hardware_estimation(
+    model=model, 
+    testLoader=testLoader, 
+    name=exp_name, 
+    device=device, 
+    verbose=verbose
+    )
+  
+  model.to_vhdl(
+    file_name=file_name,
+    output_path=output_path,
+    driver_config_path=driver_config_path
+  )
+  
\ No newline at end of file
diff --git a/modneflib/modnef/tools/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/__init__.cpython-310.pyc
index 433bd5153761041e9a7b0e5108f10728f669159f..455a3df5ea3b57687638aaf66ecd1ccebabe0520 100644
Binary files a/modneflib/modnef/tools/__pycache__/__init__.cpython-310.pyc and b/modneflib/modnef/tools/__pycache__/__init__.cpython-310.pyc differ
diff --git a/modneflib/modnef/tools/__pycache__/debug_tools.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/debug_tools.cpython-310.pyc
index 7373ac7fad706a146f118601318dbb3123a95b0e..14c552144a335170490a5b2f9347fcae3490b3e7 100644
Binary files a/modneflib/modnef/tools/__pycache__/debug_tools.cpython-310.pyc and b/modneflib/modnef/tools/__pycache__/debug_tools.cpython-310.pyc differ
diff --git a/modneflib/modnef/tools/__pycache__/progress_bar.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/progress_bar.cpython-310.pyc
index 8fb07f1a6b9ca0be63668e7b6f3111abd74de7a4..7ff530185a29e27e4f0cf63c852d48e0133fe0a2 100644
Binary files a/modneflib/modnef/tools/__pycache__/progress_bar.cpython-310.pyc and b/modneflib/modnef/tools/__pycache__/progress_bar.cpython-310.pyc differ
diff --git a/modneflib/modnef/tools/__pycache__/tools.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/tools.cpython-310.pyc
index e89b569d9d84a8c70c8e5ec1829f0dc296d16587..cacc8d6fb7c08e77f0f3a0174a21268fab587a25 100644
Binary files a/modneflib/modnef/tools/__pycache__/tools.cpython-310.pyc and b/modneflib/modnef/tools/__pycache__/tools.cpython-310.pyc differ