From caa96d98c532cd6345c8107ce416b74cb5f27670 Mon Sep 17 00:00:00 2001
From: Julian Mendez <julian.mendez@cern.ch>
Date: Fri, 12 Jul 2019 11:34:40 +0200
Subject: [PATCH] * Remove LpGBT emulator * Connect reset to VIO * Update
 example with the latest LpGBT-FPGA core version * Add PRBS Generator /
 checkers (remove old gen/checker)

---
 Constraints/kcu105_clks.xdc                   |  22 +-
 Constraints/kcu105_io.xdc                     |  20 +-
 TestBench_hw/LpGBT_model/dataPath.v           | 152 -----
 TestBench_hw/LpGBT_model/dataPathFecCounter.v |  64 --
 .../LpGBT_model/descrambler36bitOrder36.v     |  38 --
 TestBench_hw/LpGBT_model/downLinkDataPath.v   | 106 ---
 .../LpGBT_model/downLinkDeinterleaver.v       |  57 --
 TestBench_hw/LpGBT_model/downLinkFECDecoder.v |  98 ---
 TestBench_hw/LpGBT_model/gf_add_3.v           |  15 -
 TestBench_hw/LpGBT_model/gf_add_4.v           |  15 -
 TestBench_hw/LpGBT_model/gf_add_5.v           |  15 -
 TestBench_hw/LpGBT_model/gf_inv_3.v           |  33 -
 TestBench_hw/LpGBT_model/gf_inv_5.v           |  75 --
 TestBench_hw/LpGBT_model/gf_log_3.v           |  66 --
 TestBench_hw/LpGBT_model/gf_log_5.v           | 203 ------
 TestBench_hw/LpGBT_model/gf_multBy2_3.v       |  16 -
 TestBench_hw/LpGBT_model/gf_multBy2_4.v       |  17 -
 TestBench_hw/LpGBT_model/gf_multBy2_5.v       |  18 -
 TestBench_hw/LpGBT_model/gf_multBy3_4.v       |  17 -
 TestBench_hw/LpGBT_model/gf_multBy3_5.v       |  18 -
 TestBench_hw/LpGBT_model/gf_mult_3.v          |  17 -
 TestBench_hw/LpGBT_model/gf_mult_4.v          |  12 -
 TestBench_hw/LpGBT_model/gf_mult_5.v          |  13 -
 TestBench_hw/LpGBT_model/rs_decoder_N7K5.v    | 136 ----
 TestBench_hw/LpGBT_model/rs_encoder_N15K13.v  | 121 ----
 TestBench_hw/LpGBT_model/rs_encoder_N31K29.v  | 119 ----
 .../LpGBT_model/scrambler51bitOrder49.v       |  51 --
 .../LpGBT_model/scrambler53bitOrder49.v       |  49 --
 .../LpGBT_model/scrambler58bitOrder58.v       |  47 --
 .../LpGBT_model/scrambler60bitOrder58.v       |  49 --
 TestBench_hw/LpGBT_model/upLinkDataPath.v     | 136 ----
 TestBench_hw/LpGBT_model/upLinkDataSelect.v   | 111 ---
 TestBench_hw/LpGBT_model/upLinkFECEncoder.v   | 114 ----
 TestBench_hw/LpGBT_model/upLinkInterleaver.v  | 154 -----
 TestBench_hw/LpGBT_model/upLinkScrambler.v    | 160 -----
 TestBench_hw/datarouter_top.vhd               |  80 ---
 TestBench_hw/downlinkstimulis_top.vhd         | 184 -----
 .../jtag_controller/jtag_controller_top.vhd   | 191 ------
 .../jtag_controller/lpgbt_axi_control.vhd     | 281 --------
 TestBench_hw/lpgbt_downlinkGenerator.vhd      | 165 +++++
 TestBench_hw/lpgbtemul_top.vhd                | 642 ------------------
 TestBench_hw/lpgbtfpga_top.vhd                | 275 ++++----
 TestBench_hw/prbs/prbs7_16b_checker.vhd       | 115 ++++
 TestBench_hw/prbs/prbs7_1b_checker.vhd        |  79 +++
 TestBench_hw/prbs/prbs7_1b_generator.vhd      |  86 +++
 TestBench_hw/prbs/prbs7_2b_checker.vhd        |  90 +++
 TestBench_hw/prbs/prbs7_2b_generator.vhd      | 103 +++
 TestBench_hw/prbs/prbs7_32b_checker.vhd       | 147 ++++
 TestBench_hw/prbs/prbs7_4b_checker.vhd        |  94 +++
 TestBench_hw/prbs/prbs7_4b_generator.vhd      | 100 +++
 TestBench_hw/prbs/prbs7_64b_generator.vhd     | 117 ++++
 TestBench_hw/prbs/prbs7_8b_checker.vhd        |  99 +++
 TestBench_hw/prbs/prbs7_8b_generator.vhd      |  88 +++
 TestBench_hw/resetgen_top.vhd                 |  73 --
 TestBench_hw/top_tb.vhd                       | 522 +++++---------
 TestBench_hw/uplink_checker.vhd               | 291 ++++++++
 TestBench_hw/uplinkstimulis_top.vhd           | 502 --------------
 .../sources_1/ip/jtag_axi_0/jtag_axi_0.xci    |  58 --
 .../sources_1/ip/vio_0/vio_0.xci              | 113 +--
 Vivado/lpgbt-fpga-kcu105.xpr                  | 275 +-------
 60 files changed, 2023 insertions(+), 5101 deletions(-)
 delete mode 100644 TestBench_hw/LpGBT_model/dataPath.v
 delete mode 100644 TestBench_hw/LpGBT_model/dataPathFecCounter.v
 delete mode 100644 TestBench_hw/LpGBT_model/descrambler36bitOrder36.v
 delete mode 100644 TestBench_hw/LpGBT_model/downLinkDataPath.v
 delete mode 100644 TestBench_hw/LpGBT_model/downLinkDeinterleaver.v
 delete mode 100644 TestBench_hw/LpGBT_model/downLinkFECDecoder.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_add_3.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_add_4.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_add_5.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_inv_3.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_inv_5.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_log_3.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_log_5.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_multBy2_3.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_multBy2_4.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_multBy2_5.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_multBy3_4.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_multBy3_5.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_mult_3.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_mult_4.v
 delete mode 100644 TestBench_hw/LpGBT_model/gf_mult_5.v
 delete mode 100644 TestBench_hw/LpGBT_model/rs_decoder_N7K5.v
 delete mode 100644 TestBench_hw/LpGBT_model/rs_encoder_N15K13.v
 delete mode 100644 TestBench_hw/LpGBT_model/rs_encoder_N31K29.v
 delete mode 100644 TestBench_hw/LpGBT_model/scrambler51bitOrder49.v
 delete mode 100644 TestBench_hw/LpGBT_model/scrambler53bitOrder49.v
 delete mode 100644 TestBench_hw/LpGBT_model/scrambler58bitOrder58.v
 delete mode 100644 TestBench_hw/LpGBT_model/scrambler60bitOrder58.v
 delete mode 100644 TestBench_hw/LpGBT_model/upLinkDataPath.v
 delete mode 100644 TestBench_hw/LpGBT_model/upLinkDataSelect.v
 delete mode 100644 TestBench_hw/LpGBT_model/upLinkFECEncoder.v
 delete mode 100644 TestBench_hw/LpGBT_model/upLinkInterleaver.v
 delete mode 100644 TestBench_hw/LpGBT_model/upLinkScrambler.v
 delete mode 100644 TestBench_hw/datarouter_top.vhd
 delete mode 100644 TestBench_hw/downlinkstimulis_top.vhd
 delete mode 100644 TestBench_hw/jtag_controller/jtag_controller_top.vhd
 delete mode 100644 TestBench_hw/jtag_controller/lpgbt_axi_control.vhd
 create mode 100644 TestBench_hw/lpgbt_downlinkGenerator.vhd
 delete mode 100644 TestBench_hw/lpgbtemul_top.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_16b_checker.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_1b_checker.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_1b_generator.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_2b_checker.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_2b_generator.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_32b_checker.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_4b_checker.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_4b_generator.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_64b_generator.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_8b_checker.vhd
 create mode 100644 TestBench_hw/prbs/prbs7_8b_generator.vhd
 delete mode 100644 TestBench_hw/resetgen_top.vhd
 create mode 100644 TestBench_hw/uplink_checker.vhd
 delete mode 100644 TestBench_hw/uplinkstimulis_top.vhd
 delete mode 100644 Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/jtag_axi_0/jtag_axi_0.xci

diff --git a/Constraints/kcu105_clks.xdc b/Constraints/kcu105_clks.xdc
index 5be94bc..bd54a04 100644
--- a/Constraints/kcu105_clks.xdc
+++ b/Constraints/kcu105_clks.xdc
@@ -33,25 +33,15 @@ create_clock -period 3.125 -name SMA_MGT_REFCLK [get_ports SMA_MGT_REFCLK_P]
 
 set_property RXSLIDE_MODE PMA [get_cells -hier -filter {NAME =~ *GTHE3_CHANNEL_PRIM_INST}]
 
-set_property LOC GTHE3_CHANNEL_X0Y9 [get_cells -hierarchical -filter {NAME =~ *lpgbtemul_top_inst*gen_channel_container[0].*gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST}]
-set_property LOC GTHE3_CHANNEL_X0Y10 [get_cells -hierarchical -filter {NAME =~ *lpgbtFpga_top_inst*gen_channel_container[0].*gen_gthe3_channel_inst[0].GTHE3_CHANNEL_PRIM_INST}]
-##===================================================================================================##
-##===================================================================================================##
+##====================##
+## TIMING CONSTRAINTS ##
+##====================##
 
+# Multicycle constraints
 set_multicycle_path 3 -from [get_pins {lpgbtFpga_top_inst/LpGBT_FPGA_Uplink_datapath_inst/uplinkFrame_pipelined_s_reg[*]/C}] -setup
 set_multicycle_path 2 -from [get_pins {lpgbtFpga_top_inst/LpGBT_FPGA_Uplink_datapath_inst/uplinkFrame_pipelined_s_reg[*]/C}] -hold
 set_multicycle_path 3 -from [get_pins -hierarchical -filter {NAME =~ lpgbtFpga_top_inst/LpGBT_FPGA_Uplink_datapath_inst*descrambledData_reg[*]/C}] -setup
 set_multicycle_path 2 -from [get_pins -hierarchical -filter {NAME =~ lpgbtFpga_top_inst/LpGBT_FPGA_Uplink_datapath_inst*descrambledData_reg[*]/C}] -hold
 
-#Debug: no need to constraint the design for debug
-set_false_path -to [get_pins -hierarchical -filter {NAME =~ *ila_core_inst*/D}]
-#Debug: no need to constraint the design for static signal (status)
-set_false_path -to [get_pins uplinkstimulis_top_inst/uplink_error_o_reg/D]
-#Ready status: false route - timing is not critical for asynchronous reset (long duration)
-set_false_path -from [get_pins lpgbtemul_top_inst/mgt_framealigner_inst/sta_headerLocked_s_reg/C]
-
-set_multicycle_path 5 -from [get_pins {lpgbtemul_top_inst/rxGearbox_inst/dat_outFrame_o_reg[*]/C}] -setup
-set_multicycle_path 4 -from [get_pins {lpgbtemul_top_inst/rxGearbox_inst/dat_outFrame_o_reg[*]/C}] -hold
-
-set_multicycle_path 2 -from [get_pins -hierarchical -filter {NAME =~ lpgbtemul_top_inst*LpGBT_Model_dataPath_inst*scrambledData_reg[*]/C}]  -setup
-set_multicycle_path 1 -from [get_pins -hierarchical -filter {NAME =~ lpgbtemul_top_inst*LpGBT_Model_dataPath_inst*scrambledData_reg[*]/C}]  -hold
+set_multicycle_path -setup -to [get_pins -hierarchical -filter {NAME =~ lpgbtFpga_top_inst/LpGBT_FPGA_dataPath_inst/scrambler36bitOrder36_inst/scrambledData*/D}] 3
+set_multicycle_path -hold -to [get_pins -hierarchical -filter {NAME =~ lpgbtFpga_top_inst/LpGBT_FPGA_dataPath_inst/scrambler36bitOrder36_inst/scrambledData*/D}] 2
\ No newline at end of file
diff --git a/Constraints/kcu105_io.xdc b/Constraints/kcu105_io.xdc
index 484d098..4b96dac 100644
--- a/Constraints/kcu105_io.xdc
+++ b/Constraints/kcu105_io.xdc
@@ -25,19 +25,12 @@ set_property PACKAGE_PIN T2 [get_ports SFP0_RX_P]
 set_property PACKAGE_PIN T1 [get_ports SFP0_RX_N]
 set_property PACKAGE_PIN U4 [get_ports SFP0_TX_P]
 
-set_property PACKAGE_PIN V2 [get_ports SFP1_RX_P]
-set_property PACKAGE_PIN V1 [get_ports SFP1_RX_N]
-set_property PACKAGE_PIN W4 [get_ports SFP1_TX_P]
-set_property PACKAGE_PIN W3 [get_ports SFP1_TX_N]
-
 ## SFP CONTROL:
 ##-------------
 
 # IO_0_12
 set_property PACKAGE_PIN AL8 [get_ports SFP0_TX_DISABLE]
 set_property IOSTANDARD LVCMOS18 [get_ports SFP0_TX_DISABLE]
-set_property PACKAGE_PIN AM9 [get_ports SFP1_TX_DISABLE]
-set_property IOSTANDARD LVCMOS18 [get_ports SFP1_TX_DISABLE]
 
 ##====================##
 ## SIGNALS FORWARDING ##
@@ -53,15 +46,4 @@ set_property SLEW FAST [get_ports USER_SMA_GPIO_P]
 
 set_property PACKAGE_PIN G27 [get_ports USER_SMA_GPIO_N]
 set_property IOSTANDARD LVCMOS18 [get_ports USER_SMA_GPIO_N]
-set_property SLEW FAST [get_ports USER_SMA_GPIO_N]
-
-##===================================================================================================##
-##===================================================================================================##
-
-#set_false_path -to [get_pins  -hier -filter {NAME =~ *debug*/D}]
-#set_false_path -to [get_pins  -hier -filter {NAME =~ *debug*/D}]
-
-#set_false_path -from [get_pins  -hier -filter {NAME =~ vio*}]
-#set_false_path -to [get_pins  -hier -filter {NAME =~ vio*}]
-
-#set_multicycle_path -end -from [get_pins  -hier -filter {NAME =~lpgbtFpga_top_inst/rxGearbox_5g12_inst/dat_outFrame_o_reg[*]/C}] -to [get_pins  -hier -filter {NAME =~uplinkstimulis_top_inst/*/D}] 8
\ No newline at end of file
+set_property SLEW FAST [get_ports USER_SMA_GPIO_N]
\ No newline at end of file
diff --git a/TestBench_hw/LpGBT_model/dataPath.v b/TestBench_hw/LpGBT_model/dataPath.v
deleted file mode 100644
index e5e5471..0000000
--- a/TestBench_hw/LpGBT_model/dataPath.v
+++ /dev/null
@@ -1,152 +0,0 @@
-/* *****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: downLinkDeinterleaver.v
- *
- *  downLinkDeinterleaver
- *
- *  History:
- *  2016/05/20 Szymon Kulis    : Created
- *  2016/12/20 Szymon Kulis    : Data muxing (bert) removed
- *
- **/
-
-module LpGBT_Model_dataPath (
-    // Clocks inputs:
-    input         downClki,
-    input         upClki,
-    input         upLinkDataPathEnable,
-    input         downLinkDataPathEnable,
-
-    // -------------------------------------------------------------------------
-    // - Down link -------------------------------------------------------------
-    // -------------------------------------------------------------------------
-    // data input
-    input  [63:0] downLinkFrame,
-
-    // data outputs
-    output [15:0] downLinkDataGroup0,
-    output [15:0] downLinkDataGroup1,
-    output [1:0]  downLinkDataEc,
-    output [1:0]  downLinkDataIc,
-    output [3:0]  downLinkHeader,
-    // control signals
-    input         downLinkBypassDeinterleaver,
-    input         downLinkBypassFECDecoder,
-    input         downLinkBypassDescsrambler,
-    // -- fec counter --
-    input         enableFECErrCounter,
-    output [15:0] fecCorrectionCount,
-
-    // -------------------------------------------------------------------------
-    // - Up link ---------------------------------------------------------------
-    // -------------------------------------------------------------------------
-    // input data:
-    input  [31:0] upLinkData0,
-    input  [31:0] upLinkData1,
-    input  [31:0] upLinkData2,
-    input  [31:0] upLinkData3,
-    input  [31:0] upLinkData4,
-    input  [31:0] upLinkData5,
-    input  [31:0] upLinkData6,
-    input  [1:0]  upLinkDataIC,
-    input  [1:0]  upLinkDataEC,
-
-    // controll signals
-    input         upLinkScramblerBypass,
-    input         upLinkScramblerReset,
-    input         upLinkFecBypass,
-    input         upLinkInterleaverBypass,
-    input         fecMode,
-    input         txDataRate,
-
-    // output data
-    output [255:0] upLinkFrame
-);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg default triplicate
-// tmrg do_not_triplicate upLinkFrame
-// tmrg do_not_triplicate downLinkFrame
-// -------------------------------------------------------------------------- //
-
-  wire upLinkClk = upClki & upLinkDataPathEnable;
-  wire downLinkClk = downClki & downLinkDataPathEnable;
-
-  wire [31:0] downLinkData;
-  assign downLinkDataGroup1=downLinkData[31:16];
-  assign downLinkDataGroup0=downLinkData[15:0];
-
-  downLinkDataPath DLDP (
-    .bypassDeinterleaver(downLinkBypassDeinterleaver),
-    .bypassDescrambler(downLinkBypassDescsrambler),
-    .bypassFECDecoder(downLinkBypassFECDecoder),
-    .clk(downLinkClk),
-    .dataEC(downLinkDataEc),
-    .dataIC(downLinkDataIc),
-    .dataOut(downLinkData),
-    .downLinkFrame(downLinkFrame),
-    .enableFECErrCounter(enableFECErrCounter),
-    .fecCorrectionCount(fecCorrectionCount),
-    .header(downLinkHeader)
-  );
-
-  wire [5:0] txDummyFec5 = 6'b001100;// TODO FIXME check the values !!
-  wire [9:0] txDummyFec12= 10'b0101010101;// TODO FIXME check the values !!
-  wire [111:0] upLinkDataLow, upLinkDataHigh;
-  
-  assign upLinkDataLow[0+:16]  = upLinkData0[0 +: 16];
-  assign upLinkDataLow[16+:16] = upLinkData1[0 +: 16];
-  assign upLinkDataLow[32+:16] = upLinkData2[0 +: 16];
-  assign upLinkDataLow[48+:16] = upLinkData3[0 +: 16];
-  assign upLinkDataLow[64+:16] = upLinkData4[0 +: 16];
-  assign upLinkDataLow[80+:16] = upLinkData5[0 +: 16];
-  assign upLinkDataLow[96+:16] = upLinkData6[0 +: 16];
-  
-  assign upLinkDataHigh[0+:16]  = upLinkData0[16+: 16];
-  assign upLinkDataHigh[16+:16] = upLinkData1[16+: 16];
-  assign upLinkDataHigh[32+:16] = upLinkData2[16+: 16];
-  assign upLinkDataHigh[48+:16] = upLinkData3[16+: 16];
-  assign upLinkDataHigh[64+:16] = upLinkData4[16+: 16];
-  assign upLinkDataHigh[80+:16] = upLinkData5[16+: 16];
-  assign upLinkDataHigh[96+:16] = upLinkData6[16+: 16];
-      
-  upLinkDataPath ULDP (
-    .clk40M(upLinkClk),
-    .txData0(upLinkData0),
-    .txData1(upLinkData1),
-    .txData2(upLinkData2),
-    .txData3(upLinkData3),
-    .txData4(upLinkData4),
-    .txData5(upLinkData5),
-    .txData6(upLinkData6),
-    .txIC(upLinkDataIC),
-    .txEC(upLinkDataEC),
-    .txDummyFec5(6'd0),
-    .txDummyFec12(10'd0),
-    .scramblerBypass(upLinkScramblerBypass),
-    .interleaverBypass(upLinkInterleaverBypass),
-    .fecBypass(upLinkFecBypass),
-    .fecMode(fecMode),
-    .txDataRate(txDataRate),
-    .scramblerReset(upLinkScramblerReset),
-    .upLinkFrame(upLinkFrame)
-  );
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/dataPathFecCounter.v b/TestBench_hw/LpGBT_model/dataPathFecCounter.v
deleted file mode 100644
index 759dc7b..0000000
--- a/TestBench_hw/LpGBT_model/dataPathFecCounter.v
+++ /dev/null
@@ -1,64 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: upCounter.v
- *
- *  upCounter
- *
- *  History:
- *  2016/05/21 Szymon Kulis    : Created
- *
- **/
-
-module dataPathFecCounter(
-  input enable,
-  input clk,
-  input [15:0] addValue,
-  output reg [15:0] count
-);
-  // tmrg do_not_touch
-  reg clkGate;
-  wire rst=!enable;
-  wire clkGated=clk&clkGate;
-  wire enableVoted=enable;
-  reg [16:0] countNext;
-  wire [16:0] countNextVoted=countNext;
-
-  // latch for clock gate
-  always @(clk or enable)
-    if(!clk)
-      clkGate=enable;
-
-  // counter register
-  always @(posedge clk or posedge rst)
-    if (rst)
-      count <= 16'b0;
-    else
-      count <= countNextVoted;
-
-  // next state logic
-  always @(count or enable or addValue)
-    begin
-      if (!enable)
-        countNext=0;
-      else
-        countNext=count+addValue;
-      if (countNext>17'hffff)
-      countNext=17'hffff;
-    end
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/descrambler36bitOrder36.v b/TestBench_hw/LpGBT_model/descrambler36bitOrder36.v
deleted file mode 100644
index 757ff7d..0000000
--- a/TestBench_hw/LpGBT_model/descrambler36bitOrder36.v
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Module: Descrambler36bitOrder36                                      */
-/* Created: Paulo Moreira, 2015/09/15                                        */
-/* Institute: CERN                                                           */
-/* Version: 1.0                                                              */
-
-/* Descrambler width: 36 - bits                                              */
-/* Descrambler order: 36                                                     */
-/* Recursive equation used for the scrambler: Si = Di xnor Si-25 xnor Si-36  */
-
-`timescale 1 ps / 1 ps
-
-module descrambler36bitOrder36(
-    input [35:0] scrambledData,
-    input clock,
-    input bypass,
-    output reg [35:0] descrambledData
-    );
-
-reg  [35:0] memoryRegister;
-wire [35:0] iMemoryRegister;
-wire [35:0] iMemoryRegisterVoted = iMemoryRegister;
-
-wire [35:0] iDescrambledData;
-wire [35:0] iDescrambledDataVoted = iDescrambledData;
-
-always @(posedge clock)
-    begin
-    memoryRegister  <= iMemoryRegisterVoted;
-    descrambledData <= iDescrambledDataVoted;
-    end
-
-// Descrambler polynomial and bypass mux    
-assign
-    iDescrambledData[35:25] = (bypass)? scrambledData[35:25] : scrambledData[35:25] ~^ scrambledData[10:0]  ~^ memoryRegister[35:25],
-    iDescrambledData[24:0]  = (bypass)? scrambledData[34:0]  : scrambledData[24:0]  ~^ memoryRegister[35:11] ~^ memoryRegister[24:0],
-    iMemoryRegister[35:0]   = (bypass)? 36'h000000000 : scrambledData[35:0];
-    
-endmodule
diff --git a/TestBench_hw/LpGBT_model/downLinkDataPath.v b/TestBench_hw/LpGBT_model/downLinkDataPath.v
deleted file mode 100644
index 910e250..0000000
--- a/TestBench_hw/LpGBT_model/downLinkDataPath.v
+++ /dev/null
@@ -1,106 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: downLinkDeinterleaver.v
- *
- *  downLinkDeinterleaver
- *
- *  History:
- *  2016/05/20 Szymon Kulis    : Created
- *  2016/11/02 José Fonseca    : Modified
- *
- **/
-
-module downLinkDataPath (
-    // Clocks inputs:
-    input         clk,
-
-    // data input
-    input  [63:0] downLinkFrame,
-
-    // data outputs
-    output [31:0] dataOut,
-    output [1:0]  dataEC,
-    output [1:0]  dataIC,
-    output [3:0]  header,
-
-    // control signals
-    input         bypassDeinterleaver,
-    input         bypassFECDecoder,
-    input         bypassDescrambler,
-
-    // -- fec counter --
-    input         enableFECErrCounter,
-    output [15:0] fecCorrectionCount
-    );
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg default triplicate
-// tmrg do_not_triplicate downLinkFrame
-// -------------------------------------------------------------------------- //
-
-
-	wire [35:0] dataDeint;
-	wire [23:0] fecDeint;
-	wire [35:0] decData;
-	reg  [35:0] decDataReg;
-	wire [35:0] descrambledData;
-	reg  [63:0] downLinkFrameReg;
-
-  downLinkDeinterleaver DLD (
-    .bypass(bypassDeinterleaver),
-    .downLinkFrame(downLinkFrame),
-    .data(dataDeint),
-    .fec(fecDeint)
-  );
-
-  downLinkFECDecoder DLFD (
-    .clk(clk),
-    .bypass(bypassFECDecoder),
-    .enableFECErrCounter(enableFECErrCounter),
-    .data(dataDeint),
-    .fec(fecDeint),
-    .dataOut(decData),
-    .fecCorrectionCount(fecCorrectionCount)
-  );
-
-  descrambler36bitOrder36 DES (
-    .bypass(bypassDescrambler),
-    .clock(clk),
-    .scrambledData(decData),
-    .descrambledData(descrambledData)
-  );
-/*
-  downLinkBERT DLBERT(
-    .enable(enableBERT),
-    .clk(clk40M),
-    .dataIn(descrambledData[31:0]),
-    .pattern(bertPattern),
-    .errCount(bertCount)
-  );
-*/
-  assign dataOut = descrambledData[31:0];
-  assign dataEC  = descrambledData[33:32];
-  assign dataIC  = descrambledData[35:34];
-
-
-//  assign  header = downLinkFrame[63:60];  // version with the header in front
-  assign  header = {downLinkFrame[63],downLinkFrame[61],downLinkFrame[59],downLinkFrame[57]}; // header interleaved with data for DC balance
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/downLinkDeinterleaver.v b/TestBench_hw/LpGBT_model/downLinkDeinterleaver.v
deleted file mode 100644
index c235b18..0000000
--- a/TestBench_hw/LpGBT_model/downLinkDeinterleaver.v
+++ /dev/null
@@ -1,57 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: downLinkDeinterleaver.v
- *
- *  downLinkDeinterleaver
- *
- *  History:
- *  2016/05/20 Szymon Kulis    : Created
- *  2016/11/02 José Fonseca    : Modified
- * 
- **/
-
-module downLinkDeinterleaver (
-    input         bypass,
-    input  [63:0] downLinkFrame,
-    output [35:0] data,
-    output [23:0] fec
-    );
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-
-// -------------------------------------------------------------------------- //
-
-	// Code 0
-	assign data[8:0]    = (bypass) ?  downLinkFrame[32:24] : {downLinkFrame[50:48], downLinkFrame[38:36], downLinkFrame[26:24]};
-	assign fec[5:0]     = (bypass) ?  downLinkFrame[5:0]   : {downLinkFrame[14:12], downLinkFrame[2:0]};
-
-	// Code 1
-	assign data[17:9]   = (bypass) ? downLinkFrame[41:33] : {downLinkFrame[53:51], downLinkFrame[41:39], downLinkFrame[29:27]};
-	assign fec[11:6]    = (bypass) ? downLinkFrame[11:6]  : {downLinkFrame[17:15], downLinkFrame[5:3]};
-   
-	// Code 2
-	assign data[26:18]  = (bypass) ? downLinkFrame[50:42] : {downLinkFrame[56:54], downLinkFrame[44:42], downLinkFrame[32:30]};
-	assign fec[17:12]   = (bypass) ? downLinkFrame[17:12] : {downLinkFrame[20:18], downLinkFrame[8:6]};
-
-	// Code 3
-	assign data[35:27]  = (bypass) ? {downLinkFrame[62], downLinkFrame[60], downLinkFrame[58],  downLinkFrame[56:51]} : {downLinkFrame[62], downLinkFrame[60], downLinkFrame[58], downLinkFrame[47:45], downLinkFrame[35:33]};
-	assign fec[23:18]   = (bypass) ? downLinkFrame[23:18] : {downLinkFrame[23:21], downLinkFrame[11:9]};
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/downLinkFECDecoder.v b/TestBench_hw/LpGBT_model/downLinkFECDecoder.v
deleted file mode 100644
index 8b4e982..0000000
--- a/TestBench_hw/LpGBT_model/downLinkFECDecoder.v
+++ /dev/null
@@ -1,98 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: downLinkFECDecoder.v
- *
- *  downLinkFECDecoder
- *
- *  History:
- *  2016/05/20 Szymon Kulis    : Created
- *  2016/11/02 José Fonseca    : Modified
- *
- **/
-
-module downLinkFECDecoder (
-    input             clk,
-    input             bypass,
-    input             enableFECErrCounter,
-    input      [35:0] data,
-    input      [23:0] fec,
-    output     [35:0] dataOut,
-    output     [15:0] fecCorrectionCount
-);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-
-	wire [20:0] virtualFrame_C0;
-	wire [20:0] virtualFrame_C1;
-	wire [20:0] virtualFrame_C2;
-	wire [20:0] virtualFrame_C3;
-	wire [14:0] decData_C0;
-	wire [14:0] decData_C1;
-	wire [14:0] decData_C2;
-	wire [14:0] decData_C3;
-	wire [1:0] fecErrorSub0;
-	wire [1:0] fecErrorSub1;
-	wire [1:0] fecErrorSub2;
-	wire [1:0] fecErrorSub3;
-
-	assign virtualFrame_C0 = {fec[5:0],   6'b0, data[8:0]};
-	assign virtualFrame_C1 = {fec[11:6],  6'b0, data[17:9]};
-	assign virtualFrame_C2 = {fec[17:12], 6'b0, data[26:18]};
-	assign virtualFrame_C3 = {fec[23:18], 6'b0, data[35:27]};
-
-	rs_decoder_N7K5 RSD0 (
-		.msgInput(virtualFrame_C0),
-		.error(fecErrorSub0),
-		.decMsg(decData_C0)
-		);
-
-	rs_decoder_N7K5 RSD1 (
-		.msgInput(virtualFrame_C1),
-		.error(fecErrorSub1),
-		.decMsg(decData_C1)
-		);
-
-	rs_decoder_N7K5 RSD2 (
-		.msgInput(virtualFrame_C2),
-		.error(fecErrorSub2),
-		.decMsg(decData_C2)
-		);
-
-	rs_decoder_N7K5 RSD3 (
-		.msgInput(virtualFrame_C3),
-		.error(fecErrorSub3),
-		.decMsg(decData_C3)
-		);
-
-	wire [15:0] fecCounterAddValue = fecErrorSub0+fecErrorSub1+fecErrorSub2+fecErrorSub3;
-
-	dataPathFecCounter EC(
-		.enable(enableFECErrCounter),
-		.clk(clk),
-		.addValue(fecCounterAddValue),
-		.count(fecCorrectionCount)
-		);
-
-	assign dataOut = (bypass) ? data : {decData_C3[8:0], decData_C2[8:0], decData_C1[8:0], decData_C0[8:0]};
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_add_3.v b/TestBench_hw/LpGBT_model/gf_add_3.v
deleted file mode 100644
index fc95a55..0000000
--- a/TestBench_hw/LpGBT_model/gf_add_3.v
+++ /dev/null
@@ -1,15 +0,0 @@
-module gf_add_3(op1, op2, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [2:0] op1; 
-	input      [2:0] op2; 
-	output     [2:0] res;
-
-	assign res = op1 ^ op2;
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_add_4.v b/TestBench_hw/LpGBT_model/gf_add_4.v
deleted file mode 100644
index d9dfd52..0000000
--- a/TestBench_hw/LpGBT_model/gf_add_4.v
+++ /dev/null
@@ -1,15 +0,0 @@
-module gf_add_4(op1, op2, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [3:0] op1; 
-	input      [3:0] op2; 
-	output     [3:0] res;
-
-	assign res = op1 ^ op2;
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_add_5.v b/TestBench_hw/LpGBT_model/gf_add_5.v
deleted file mode 100644
index c906d39..0000000
--- a/TestBench_hw/LpGBT_model/gf_add_5.v
+++ /dev/null
@@ -1,15 +0,0 @@
-module gf_add_5(op1, op2, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [4:0] op1; 
-	input      [4:0] op2; 
-	output     [4:0] res;
-
-	assign res = op1 ^ op2;
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_inv_3.v b/TestBench_hw/LpGBT_model/gf_inv_3.v
deleted file mode 100644
index 943769b..0000000
--- a/TestBench_hw/LpGBT_model/gf_inv_3.v
+++ /dev/null
@@ -1,33 +0,0 @@
-module gf_inv_3(op, res);
-	
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [2:0] op;
-	output reg [2:0] res;
-
-	always @(op) begin
-		case(op) 
-			3'd0 : 
-				res  = 3'd0;
-			3'd1 : 
-				res  = 3'd1;
-			3'd2 : 
-				res  = 3'd5;
-			3'd3 : 
-				res  = 3'd6;
-			3'd4 : 
-				res  = 3'd7;
-			3'd5 :
-				res  = 3'd2;
-			3'd6 :
-				res  = 3'd3;
-			3'd7 : 
-				res  = 3'd4;
-		endcase
-	end
-endmodule
-			
diff --git a/TestBench_hw/LpGBT_model/gf_inv_5.v b/TestBench_hw/LpGBT_model/gf_inv_5.v
deleted file mode 100644
index bfeb7aa..0000000
--- a/TestBench_hw/LpGBT_model/gf_inv_5.v
+++ /dev/null
@@ -1,75 +0,0 @@
-module gf_inv_5(op, res);
-	
-	input      [4:0] op;
-	output reg [4:0] res;
-
-	always @(*) begin
-		case(op) 
-			5'd0 : 
-				res  = 5'd0;
-			5'd1 : 
-				res  = 5'd1;
-			5'd2 : 
-				res  = 5'd18;
-			5'd3 : 
-				res  = 5'd28;
-			5'd4 : 
-				res  = 5'd9;
-			5'd5 :
-				res  = 5'd23;
-			5'd6 :
-				res  = 5'd14;
-			5'd7 : 
-				res  = 5'd12;
-			5'd8 : 
-				res  = 5'd22;
-			5'd9 : 
-				res  = 5'd4;
-			5'd10 : 
-				res  = 5'd25;
-			5'd11 : 
-				res  = 5'd16;
-			5'd12 : 
-				res  = 5'd7;
-			5'd13 : 
-				res  = 5'd15;
-			5'd14 : 
-				res  = 5'd6;
-			5'd15 : 
-				res  = 5'd13;
-			5'd16 : 
-				res  = 5'd11;
-			5'd17 : 
-				res  = 5'd24;
-			5'd18 : 
-				res  = 5'd2;
-			5'd19 : 
-				res  = 5'd29;
-			5'd20 : 
-				res  = 5'd30;
-			5'd21 : 
-				res  = 5'd26;
-			5'd22 : 
-				res  = 5'd8;
-			5'd23 : 
-				res  = 5'd5;
-			5'd24 : 
-				res  = 5'd17;
-			5'd25 : 
-				res  = 5'd10;
-			5'd26 : 
-				res  = 5'd21;
-			5'd27 : 
-				res  = 5'd31;
-			5'd28 : 
-				res  = 5'd3;
-			5'd29 : 
-				res  = 5'd19;
-			5'd30 : 
-				res  = 5'd20;
-			5'd31 : 
-				res  = 5'd27;
-		endcase
-	end
-endmodule
-			
diff --git a/TestBench_hw/LpGBT_model/gf_log_3.v b/TestBench_hw/LpGBT_model/gf_log_3.v
deleted file mode 100644
index 32901b9..0000000
--- a/TestBench_hw/LpGBT_model/gf_log_3.v
+++ /dev/null
@@ -1,66 +0,0 @@
-module gf_log_3(op, err, res);
-	
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [2:0] op;
-	output reg       err;
-	output reg [2:0] res;
-
-	always @(op) begin
-		case(op)
-			3'd0 :
-			begin 
-				err  = 1;
-				res  = 3'd0;
-			end
-
-			3'd1 : 
-			begin
-				err  = 0;
-				res  = 3'd0;
-			end
-
-			3'd2 : 
-			begin
-				err  = 0;
-				res  = 3'd1;
-			end
-
-			3'd3 : 
-			begin
-				err  = 0;
-				res  = 3'd3;
-			end
-
-			3'd4 : 
-			begin
-				err  = 0;
-				res  = 3'd2;
-			end
-
-			3'd5 : 
-			begin
-				err  = 0;
-				res  = 3'd6;
-			end
-
-			3'd6 : 
-			begin
-				err  = 0;
-				res  = 3'd4;
-			end
-
-			3'd7 : 
-			begin
-				err  = 0;
-				res  = 3'd5;
-			end
-
-		endcase
-	end
-endmodule
-			
diff --git a/TestBench_hw/LpGBT_model/gf_log_5.v b/TestBench_hw/LpGBT_model/gf_log_5.v
deleted file mode 100644
index 95b75c1..0000000
--- a/TestBench_hw/LpGBT_model/gf_log_5.v
+++ /dev/null
@@ -1,203 +0,0 @@
-module gf_log_5(op, err, res);
-	
-	input      [4:0] op;
-	output reg       err;
-	output reg [4:0] res;
-
-	always @(*) begin
-		case(op)
-			5'd0 :
-			begin 
-				err  = 1;
-				res  = 5'd0;
-			end
-
-			5'd1 : 
-			begin
-				err  = 0;
-				res  = 5'd0;
-			end
-
-			5'd2 : 
-			begin
-				err  = 0;
-				res  = 5'd1;
-			end
-
-			5'd3 : 
-			begin
-				err  = 0;
-				res  = 5'd18;
-			end
-
-			5'd4 : 
-			begin
-				err  = 0;
-				res  = 5'd2;
-			end
-
-			5'd5 : 
-			begin
-				err  = 0;
-				res  = 5'd5;
-			end
-
-			5'd6 : 
-			begin
-				err  = 0;
-				res  = 5'd19;
-			end
-
-			5'd7 : 
-			begin
-				err  = 0;
-				res  = 5'd11;
-			end
-
-			5'd8 : 
-			begin
-				err  = 0;
-				res  = 5'd3;
-			end
-
-			5'd9 : 
-			begin
-				err  = 0;
-				res  = 5'd29;
-			end
-
-			5'd10 : 
-			begin
-				err  = 0;
-				res  = 5'd6;
-			end
-
-			5'd11 : 
-			begin
-				err  = 0;
-				res  = 5'd27;
-			end
-
-			5'd12 : 
-			begin
-				err  = 0;
-				res  = 5'd20;
-			end
-
-			5'd13 : 
-			begin
-				err  = 0;
-				res  = 5'd8;
-			end
-
-			5'd14 : 
-			begin
-				err  = 0;
-				res  = 5'd12;
-			end
-
-			5'd15 : 
-			begin
-				err  = 0;
-				res  = 5'd23;
-			end
-
-			5'd16 : 
-			begin
-				err  = 0;
-				res  = 5'd4;
-			end
-
-			5'd17 : 
-			begin
-				err  = 0;
-				res  = 5'd10;
-			end
-
-			5'd18 : 
-			begin
-				err  = 0;
-				res  = 5'd30;
-			end
-
-			5'd19 : 
-			begin
-				err  = 0;
-				res  = 5'd17;
-			end
-
-			5'd20 : 
-			begin
-				err  = 0;
-				res  = 5'd7;
-			end
-
-			5'd21 : 
-			begin
-				err  = 0;
-				res  = 5'd22;
-			end
-
-			5'd22 : 
-			begin
-				err  = 0;
-				res  = 5'd28;
-			end
-
-			5'd23 : 
-			begin
-				err  = 0;
-				res  = 5'd26;
-			end
-
-			5'd24 : 
-			begin
-				err  = 0;
-				res  = 5'd21;
-			end
-
-			5'd25 : 
-			begin
-				err  = 0;
-				res  = 5'd25;
-			end
-
-			5'd26 : 
-			begin
-				err  = 0;
-				res  = 5'd9;
-			end
-
-			5'd27 : 
-			begin
-				err  = 0;
-				res  = 5'd16;
-			end
-
-			5'd28 : 
-			begin
-				err  = 0;
-				res  = 5'd13;
-			end
-
-			5'd29 : 
-			begin
-				err  = 0;
-				res  = 5'd14;
-			end
-
-			5'd30 : 
-			begin
-				err  = 0;
-				res  = 5'd24;
-			end
-
-			5'd31 : 
-			begin
-				err  = 0;
-				res  = 5'd15;
-			end
-		endcase
-	end
-endmodule
-			
diff --git a/TestBench_hw/LpGBT_model/gf_multBy2_3.v b/TestBench_hw/LpGBT_model/gf_multBy2_3.v
deleted file mode 100644
index 1e692b7..0000000
--- a/TestBench_hw/LpGBT_model/gf_multBy2_3.v
+++ /dev/null
@@ -1,16 +0,0 @@
-module gf_multBy2_3(op, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [2:0] op;
-	output reg [2:0] res;
-
-	always @(op) begin
-		res = {op[1], op[0]^op[2], op[2]};
-	end
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_multBy2_4.v b/TestBench_hw/LpGBT_model/gf_multBy2_4.v
deleted file mode 100644
index aed2592..0000000
--- a/TestBench_hw/LpGBT_model/gf_multBy2_4.v
+++ /dev/null
@@ -1,17 +0,0 @@
-module gf_multBy2_4(op, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [3:0] op;
-	output     [3:0] res;
-
-	assign res[0] = op[3];
-	assign res[1] = op[0] ^ op[3];
-	assign res[2] = op[1];
-	assign res[3] = op[2];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_multBy2_5.v b/TestBench_hw/LpGBT_model/gf_multBy2_5.v
deleted file mode 100644
index 5bae606..0000000
--- a/TestBench_hw/LpGBT_model/gf_multBy2_5.v
+++ /dev/null
@@ -1,18 +0,0 @@
-module gf_multBy2_5(op, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [4:0] op;
-	output     [4:0] res;
-
-	assign res[0] = op[4];
-	assign res[1] = op[0];
-	assign res[2] = op[1] ^ op[4];
-	assign res[3] = op[2];
-	assign res[4] = op[3];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_multBy3_4.v b/TestBench_hw/LpGBT_model/gf_multBy3_4.v
deleted file mode 100644
index 2242c16..0000000
--- a/TestBench_hw/LpGBT_model/gf_multBy3_4.v
+++ /dev/null
@@ -1,17 +0,0 @@
-module gf_multBy3_4(op, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [3:0] op;
-	output     [3:0] res;
-
-	assign res[0] = op[3] ^ op[0];
-	assign res[1] = op[1] ^ op[0] ^ op[3];
-	assign res[2] = op[2] ^ op[1];
-	assign res[3] = op[3] ^ op[2];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_multBy3_5.v b/TestBench_hw/LpGBT_model/gf_multBy3_5.v
deleted file mode 100644
index dd4e7f7..0000000
--- a/TestBench_hw/LpGBT_model/gf_multBy3_5.v
+++ /dev/null
@@ -1,18 +0,0 @@
-module gf_multBy3_5(op, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [4:0] op;
-	output     [4:0] res;
-
-	assign res[0] = op[4] ^ op[0];
-	assign res[1] = op[1] ^ op[0];
-	assign res[2] = op[2] ^ op[1] ^ op[4];
-	assign res[3] = op[3] ^ op[2];
-	assign res[4] = op[4] ^ op[3];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_mult_3.v b/TestBench_hw/LpGBT_model/gf_mult_3.v
deleted file mode 100644
index ed21551..0000000
--- a/TestBench_hw/LpGBT_model/gf_mult_3.v
+++ /dev/null
@@ -1,17 +0,0 @@
-module gf_mult_3(op1, op2, res);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-	input      [2:0] op1;
-	input      [2:0] op2;
-	output     [2:0] res;
-
-	assign res[0] = (op1[1] & op2[2]) ^ (op1[2] & op2[1]) ^ (op1[0] & op2[0]);
-	assign res[1] = (op1[1] & op2[0]) ^ (op1[0] & op2[1]) ^ (op1[2] & op2[1]) ^ (op1[1] & op2[2]) ^ (op1[2] & op2[2]);
-	assign res[2] = (op1[2] & op2[0]) ^ (op1[1] & op2[1]) ^ (op1[0] & op2[2]) ^ (op1[2] & op2[2]);
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_mult_4.v b/TestBench_hw/LpGBT_model/gf_mult_4.v
deleted file mode 100644
index 1b9cac6..0000000
--- a/TestBench_hw/LpGBT_model/gf_mult_4.v
+++ /dev/null
@@ -1,12 +0,0 @@
-module gf_mult_4(op1, op2, res);
-
-	input      [3:0] op1;
-	input      [3:0] op2;
-	output     [3:0] res;
-
-	assign res[0] = (op1[1] & op2[3]) ^ (op1[2] & op2[2]) ^ (op1[3] & op2[1]) ^ (op1[0] & op2[0]);
-	assign res[1] = (op1[1] & op2[0]) ^ (op1[0] & op2[1]) ^ (op1[3] & op2[1]) ^ (op1[2] & op2[2]) ^ (op1[3] & op2[2]) ^ (op1[1] & op2[3]) ^ (op1[2] & op2[3]);
-	assign res[2] = (op1[2] & op2[0]) ^ (op1[1] & op2[1]) ^ (op1[0] & op2[2]) ^ (op1[3] & op2[2]) ^ (op1[2] & op2[3]) ^ (op1[3] & op2[3]);
-	assign res[3] = (op1[3] & op2[0]) ^ (op1[2] & op2[1]) ^ (op1[1] & op2[2]) ^ (op1[0] & op2[3]) ^ (op1[3] & op2[3]);
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/gf_mult_5.v b/TestBench_hw/LpGBT_model/gf_mult_5.v
deleted file mode 100644
index c691227..0000000
--- a/TestBench_hw/LpGBT_model/gf_mult_5.v
+++ /dev/null
@@ -1,13 +0,0 @@
-module gf_mult_5(op1, op2, res);
-
-	input      [4:0] op1;
-	input      [4:0] op2;
-	output     [4:0] res;
-
-	assign res[0] = (((((op1[4] & op2[4]) ^ (op1[1] & op2[4])) ^ (op1[2] & op2[3])) ^ (op1[3] & op2[2])) ^ (op1[4] & op2[1])) ^ (op1[0] & op2[0]);
-	assign res[1] = ((((op1[1] & op2[0]) ^ (op1[0] & op2[1])) ^ (op1[4] & op2[2])) ^ (op1[3] & op2[3])) ^ (op1[2] & op2[4]);
-	assign res[2] = (((((((((op1[2] & op2[0]) ^ (op1[1] & op2[1])) ^ (op1[4] & op2[1])) ^ (op1[0] & op2[2])) ^ (op1[3] & op2[2])) ^ (op1[2] & op2[3])) ^ (op1[4] & op2[3])) ^ (op1[1] & op2[4])) ^ (op1[3] & op2[4])) ^ (op1[4] & op2[4]);
-	assign res[3] = (((((((op1[3] & op2[0]) ^ (op1[2] & op2[1])) ^ (op1[1] & op2[2])) ^ (op1[4] & op2[2])) ^ (op1[0] & op2[3])) ^ (op1[3] & op2[3])) ^ (op1[2] & op2[4])) ^ (op1[4] & op2[4]);
-	assign res[4] = ((((((op1[4] & op2[0]) ^ (op1[3] & op2[1])) ^ (op1[2] & op2[2])) ^ (op1[1] & op2[3])) ^ (op1[4] & op2[3])) ^ (op1[0] & op2[4])) ^ (op1[3] & op2[4]);
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/rs_decoder_N7K5.v b/TestBench_hw/LpGBT_model/rs_decoder_N7K5.v
deleted file mode 100644
index 86c9770..0000000
--- a/TestBench_hw/LpGBT_model/rs_decoder_N7K5.v
+++ /dev/null
@@ -1,136 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: rs_decoder_N7K5.v
- *
- *  rs_decoder_N7K5
- *
- *  History:
- *  2016/09    José Fonseca    : Created
- *  2016/10/06 José Fonseca    : Concluded
- * 
- **/
-
-module rs_decoder_N7K5(msgInput, error, decMsg);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-	
-	parameter N = 7;
-	parameter K = 5;
-	parameter m = 3;
-	parameter INP_BW = N*m;
-	parameter OUT_BW = K*m;
-
-	// IO definitions
-	input      [INP_BW-1:0] msgInput;
-	output [1:0] error;
-	output reg [OUT_BW-1:0] decMsg;
-
-	// Connection wires and regs
-	wire [m-1:0] outSt1;
-	wire [m-1:0] outSt2;
-	wire [m-1:0] outSt3;
-	wire [m-1:0] outSt4;
-	wire [m-1:0] outSt5;
-	wire [m-1:0] outSt6;
-	wire [m-1:0] outAdd0;
-	wire [m-1:0] outAdd1;
-	wire [m-1:0] outAdd2;
-	wire [m-1:0] outAdd3;
-	wire [m-1:0] outAdd4;
-	wire [m-1:0] outAdd5;
-	wire [m-1:0] outMult0;
-	wire [m-1:0] outMult1;
-	wire [m-1:0] outMult2;
-	wire [m-1:0] outMult3;
-	wire [m-1:0] outMult4;
-	wire [m-1:0] outMult5;
-	wire [m-1:0] outMult6;
-	wire [m-1:0] syndr0;
-	wire [m-1:0] syndr1;
-	wire [m-1:0] syndr0_inv;
-	wire [m-1:0] syndrProd;
-	wire [m-1:0] errorPos;
-
-	// Evaluating the first syndrome
-	gf_add_3    ADD_0   (.op1(msgInput[0 +: m]),   .op2(msgInput[m +: m]), .res(outSt1));
-	gf_add_3    ADD_1   (.op1(msgInput[2*m +: m]), .op2(outSt1),      .res(outSt2));
-	gf_add_3    ADD_2   (.op1(msgInput[3*m +: m]), .op2(outSt2),      .res(outSt3));
-	gf_add_3    ADD_3   (.op1(msgInput[4*m +: m]), .op2(outSt3),      .res(outSt4));
-	gf_add_3    ADD_4   (.op1(msgInput[5*m +: m]), .op2(outSt4),      .res(outSt5));
-	gf_add_3    ADD_5   (.op1(msgInput[6*m +: m]), .op2(outSt5),      .res(syndr0));
-	
-	// Evaluating the second syndrome
-	gf_multBy2_3  MULT2_0 (.op(msgInput[0 +: m]), .res(outMult0));
-	gf_add_3      ADD1_0  (.op1(outMult0), .op2(msgInput[m +: m]), .res(outAdd0));	
-
-	gf_multBy2_3  MULT2_1 (.op(outAdd0), .res(outMult1));
-	gf_add_3      ADD1_1  (.op1(outMult1), .op2(msgInput[2*m +: m]), .res(outAdd1));	
-
-	gf_multBy2_3  MULT2_2 (.op(outAdd1), .res(outMult2));
-	gf_add_3      ADD1_2  (.op1(outMult2), .op2(msgInput[3*m +: m]), .res(outAdd2));	
-
-	gf_multBy2_3  MULT2_3 (.op(outAdd2), .res(outMult3));
-	gf_add_3      ADD1_3  (.op1(outMult3), .op2(msgInput[4*m +: m]), .res(outAdd3));	
-
-	gf_multBy2_3  MULT2_4 (.op(outAdd3), .res(outMult4));
-	gf_add_3      ADD1_4  (.op1(outMult4), .op2(msgInput[5*m +: m]), .res(outAdd4));	
-
-	gf_multBy2_3  MULT2_5 (.op(outAdd4), .res(outMult5));
-	gf_add_3      ADD1_5  (.op1(outMult5), .op2(msgInput[6*m +: m]), .res(syndr1));	
-
-	// Evaluate position of error
-	gf_inv_3    INV3   (.op(syndr0), .res(syndr0_inv));
-	gf_mult_3   MULT3  (.op1(syndr0_inv), .op2(syndr1), .res(syndrProd));
-	gf_log_3    LOG3   (.op(syndrProd), .err(domainErr), .res(errorPos));
-
-	// Number of Errors
-	assign error = syndr0[0] + syndr0[1] + syndr0[2]; 
-
-	// Correct message.. Correction on parity bits is ignored!
-	always @* begin
-		if(errorPos == 3'd2)
-			decMsg[4*m +: m] = msgInput[4*m +: m] ^ syndr0;
-		else 
-			decMsg[4*m +: m] = msgInput[4*m +: m];
-		
-		if(errorPos == 3'd3)
-			decMsg[3*m +: m] = msgInput[3*m +: m] ^ syndr0;
-		else 
-			decMsg[3*m +: m] = msgInput[3*m +: m];
-
-		if(errorPos == 3'd4)
-			decMsg[2*m +: m] = msgInput[2*m +: m] ^ syndr0;
-		else 
-			decMsg[2*m +: m] = msgInput[2*m +: m];
-
-		if(errorPos == 3'd5)
-			decMsg[m +: m] = msgInput[m +: m] ^ syndr0;
-		else 
-			decMsg[m +: m] = msgInput[m +: m];
-
-		if(errorPos == 3'd6)
-			decMsg[0 +: m] = msgInput[0 +: m] ^ syndr0;
-		else 
-			decMsg[0 +: m] = msgInput[0 +: m];
-	end
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/rs_encoder_N15K13.v b/TestBench_hw/LpGBT_model/rs_encoder_N15K13.v
deleted file mode 100644
index 3ff22d6..0000000
--- a/TestBench_hw/LpGBT_model/rs_encoder_N15K13.v
+++ /dev/null
@@ -1,121 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: rs_encoder_N15K13.v
- *
- *  rs_encoder_N15K13
- *
- *  History:
- *  2016/09    José Fonseca    : Created
- *  2016/10/06 José Fonseca    : Concluded
- * 
- **/
-
-`timescale 1ns/1ps
-
-module rs_encoder_N15K13 #(parameter N=15,
-                    parameter K=13,
-                    parameter SYMB_BITWIDTH=4)
-                   (msg,
-                    parity);
-  // tmrg do_not_touch
-
-	// Dependent Parameters
-	parameter P = N-K;
-	parameter INP_BW = SYMB_BITWIDTH*K;
-	parameter OUT_BW = SYMB_BITWIDTH*N;
-	parameter POL_BW = SYMB_BITWIDTH*P;
-	parameter STG_BW = SYMB_BITWIDTH*(P+1);
-
-	// IO Definition
-	input      [INP_BW-1:0] msg;
-	output reg [POL_BW-1:0] parity;
-
-	// Connecting wires and regs
-	wire [STG_BW-1:0] stageOut [K-1:0];
-	wire [STG_BW-1:0] multOut  [K-1:0];
-
-	// Generation Variables for automatic module instantiation
-	genvar i,j;
-	integer k;
-
-  	// ---------------- The Parallel LFSR HDL description  ---------------- //
-  
-	// In the first layer, the rightmost node is an addition to zero, so
-	// we route it directly to the stage output	
-	assign stageOut[0][SYMB_BITWIDTH*P +: SYMB_BITWIDTH] = msg[0 +: SYMB_BITWIDTH];
-
-	// Since in the first layer there are no adders, the stageOut is
-	// connected to the multiplier output. Hence, the multOut is set to zero.
-	assign multOut[0][0 +: SYMB_BITWIDTH*P] = {(SYMB_BITWIDTH*P){1'b0}};
-
-	// The rightmost multOut is never used (we only add the input codeword
-	// with the previous node), so it is set to zero. On the other hand,
-	// the leftmost node only performs multiplication, so multOut is
-	// routed to stageOut.	
-	generate 
-  	for (i=0; i < K; i = i + 1) begin
-  		assign multOut[i][SYMB_BITWIDTH*P  +: SYMB_BITWIDTH] = {SYMB_BITWIDTH{1'b0}};
-  		if (i != 0) begin
-  			assign stageOut[i][0 +: SYMB_BITWIDTH] = multOut[i][0 +: SYMB_BITWIDTH];
-  		end
-  	end
-	endgenerate		
- 
-	// Generates the instances of the GF(2^m) of the LFSR parallel network
-	// The first line is a particular case...
-
-	// The GF multiplications units in the first stage
-	gf_multBy2_4   mult_0_0   (.op(msg[0 +: SYMB_BITWIDTH]),
-				   .res(stageOut[0][0 +: SYMB_BITWIDTH]));
-	gf_multBy3_4   mult_0_1   (.op(msg[0 +: SYMB_BITWIDTH]),
-				   .res(stageOut[0][SYMB_BITWIDTH +: SYMB_BITWIDTH]));
-
-	// The remaining stages..
-	generate 
-		for (i=1; i < K; i = i + 1) begin
-				// The edge GF addition unit
-				gf_add_4    add_i   (.op1(msg[i*SYMB_BITWIDTH +: SYMB_BITWIDTH]),
-						     .op2(stageOut[i-1][SYMB_BITWIDTH*(P-1) +: SYMB_BITWIDTH]),
-						     .res(stageOut[i][SYMB_BITWIDTH*P +: SYMB_BITWIDTH]));
-		end
-	endgenerate		
-
-	generate
-		for(i=1; i < K; i = i + 1) begin
-			// The GF multiplication units
-			gf_multBy2_4  mult_i_0   (.op(stageOut[i][SYMB_BITWIDTH*P +: SYMB_BITWIDTH]),
-					       .res(multOut[i][0 +: SYMB_BITWIDTH]));
-
-			gf_multBy3_4  mult_i_1   (.op(stageOut[i][SYMB_BITWIDTH*P +: SYMB_BITWIDTH]),
-					       .res(multOut[i][SYMB_BITWIDTH +: SYMB_BITWIDTH]));
-			for (j=1; j < P; j = j + 1) begin
-				gf_add_4   add_i_j    (.op1(multOut[i][SYMB_BITWIDTH*j +: SYMB_BITWIDTH]),
-						       .op2(stageOut[i-1][SYMB_BITWIDTH*(j-1) +: SYMB_BITWIDTH]),
-						       .res(stageOut[i][SYMB_BITWIDTH*j +: SYMB_BITWIDTH]));
-			end
-		end
-	endgenerate
-
-	always @* begin
-		//parity <= {stageOut[K-1][0 +: SYMB_BITWIDTH], stageOut[K-1][SYMB_BITWIDTH +: SYMB_BITWIDTH],msg};
-		for (k = 0; k < P; k = k + 1) begin
-			parity[k*SYMB_BITWIDTH +: SYMB_BITWIDTH] = stageOut[K-1][STG_BW-(k+2)*SYMB_BITWIDTH +: SYMB_BITWIDTH];
-		end		
-	end
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/rs_encoder_N31K29.v b/TestBench_hw/LpGBT_model/rs_encoder_N31K29.v
deleted file mode 100644
index 78582cf..0000000
--- a/TestBench_hw/LpGBT_model/rs_encoder_N31K29.v
+++ /dev/null
@@ -1,119 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: rs_encoder_N31K29.v
- *
- *  rs_encoder_N31K29
- *
- *  History:
- *  2016/09    José Fonseca    : Created
- *  2016/10/06 José Fonseca    : Concluded
- * 
- **/
-
-`timescale 1ns/1ps
-
-module rs_encoder_N31K29 #(parameter N=31,
-                    parameter K=29,
-                    parameter SYMB_BITWIDTH=5)
-                   (msg,
-                    parity);
-
-  // tmrg do_not_touch
-
-	// Dependent Parameters
-	parameter P = N-K;
-	parameter INP_BW = SYMB_BITWIDTH*K;
-	parameter OUT_BW = SYMB_BITWIDTH*N;
-	parameter POL_BW = SYMB_BITWIDTH*P;
-	parameter STG_BW = SYMB_BITWIDTH*(P+1);
-
-	// IO Definition
-	input      [INP_BW-1:0] msg;
-	output reg [POL_BW-1:0] parity;
-
-	// Connecting wires and regs
-	wire [STG_BW-1:0] stageOut [K-1:0];
-	wire [STG_BW-1:0] multOut  [K-1:0];
-
-	// Generation Variables for automatic module instantiation
-	genvar i,j;
-	integer k;
-
-  	// ---------------- The Parallel LFSR HDL description  ---------------- //
-  
-	// In the first layer, the rightmost node is an addition to zero, so
-	// we route it directly to the stage output	
-	assign stageOut[0][SYMB_BITWIDTH*P +: SYMB_BITWIDTH] = msg[0 +: SYMB_BITWIDTH];
-
-	// Since in the first layer there are no adders, the stageOut is
-	// connected to the multiplier output. Hence, the multOut is set to zero.
-	assign multOut[0][0 +: SYMB_BITWIDTH*P] = {(SYMB_BITWIDTH*P){1'b0}};
-
-	// The rightmost multOut is never used (we only add the input codeword
-	// with the previous node), so it is set to zero. On the other hand,
-	// the leftmost node only performs multiplication, so multOut is
-	// routed to stageOut.	
-	for (i=0; i < K; i = i + 1) begin
-		assign multOut[i][SYMB_BITWIDTH*P  +: SYMB_BITWIDTH] = {SYMB_BITWIDTH{1'b0}};
-		if (i != 0) begin
-			assign stageOut[i][0 +: SYMB_BITWIDTH] = multOut[i][0 +: SYMB_BITWIDTH];
-		end
-	end
- 
-	// Generates the instances of the GF(2^m) of the LFSR parallel network
-	// The first line is a particular case...
-
-	// The GF multiplications units in the first stage
-	gf_multBy2_5   mult_0_0   (.op(msg[0 +: SYMB_BITWIDTH]),
-				   .res(stageOut[0][0 +: SYMB_BITWIDTH]));
-	gf_multBy3_5   mult_0_1   (.op(msg[0 +: SYMB_BITWIDTH]),
-				   .res(stageOut[0][SYMB_BITWIDTH +: SYMB_BITWIDTH]));
-
-	// The remaining stages..
-	generate 
-		for (i=1; i < K; i = i + 1) begin
-				// The edge GF addition unit
-				gf_add_5    add_i   (.op1(msg[i*SYMB_BITWIDTH +: SYMB_BITWIDTH]),
-						     .op2(stageOut[i-1][SYMB_BITWIDTH*(P-1) +: SYMB_BITWIDTH]),
-						     .res(stageOut[i][SYMB_BITWIDTH*P +: SYMB_BITWIDTH]));
-		end
-	endgenerate		
-
-	generate
-		for(i=1; i < K; i = i + 1) begin
-			// The GF multiplication units
-			gf_multBy2_5  mult_i_0   (.op(stageOut[i][SYMB_BITWIDTH*P +: SYMB_BITWIDTH]),
-					       .res(multOut[i][0 +: SYMB_BITWIDTH]));
-
-			gf_multBy3_5  mult_i_1   (.op(stageOut[i][SYMB_BITWIDTH*P +: SYMB_BITWIDTH]),
-					       .res(multOut[i][SYMB_BITWIDTH +: SYMB_BITWIDTH]));
-			for (j=1; j < P; j = j + 1) begin
-				gf_add_5   add_i_j    (.op1(multOut[i][SYMB_BITWIDTH*j +: SYMB_BITWIDTH]),
-						       .op2(stageOut[i-1][SYMB_BITWIDTH*(j-1) +: SYMB_BITWIDTH]),
-						       .res(stageOut[i][SYMB_BITWIDTH*j +: SYMB_BITWIDTH]));
-			end
-		end
-	endgenerate
-
-	always @* begin
-		for (k = 0; k < P; k = k + 1) begin
-			parity[k*SYMB_BITWIDTH +: SYMB_BITWIDTH] = stageOut[K-1][STG_BW-(k+2)*SYMB_BITWIDTH +: SYMB_BITWIDTH];
-		end
-	end
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/scrambler51bitOrder49.v b/TestBench_hw/LpGBT_model/scrambler51bitOrder49.v
deleted file mode 100644
index 0975865..0000000
--- a/TestBench_hw/LpGBT_model/scrambler51bitOrder49.v
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Module: scrambler51bitOrder49                                             */ 
-/* Created: Paulo Moreira, 2015/09/18                                        */
-/* Modified: José Fonseca, 2016/10/21                                        */
-/* 2016/05/30 Kulis : Test partterns removed                                 */
-/*                    (moved to test pattern generator block)                */
-/* Institute: CERN                                                           */
-/* Version: 1.0                                                              */
-
-/* Scrambler width: 51 - bits                                                */
-/* Scrambler order: 49                                                       */
-/* Scrambling recursive equation: Si = Di xnor Si-40 xnor Si-49              */
-
-`timescale 1 ps / 1 ps
-
-module scrambler51bitOrder49 #(parameter INIT_SEED = 51'h7f1835baaca14)
-    (
-    input wire [50:0] data,
-    input wire clock,
-    input wire reset,
-    input wire bypass,
-    output reg [50:0] scrambledData
-    );
-
-// tmrg default triplicate
-
-wire [50:0] iScrambledData;
-wire [50:0] iScrambledDataVoted = iScrambledData;
-
-// Scrambler output register (+ feedback register) + bypass mux
-always @(posedge clock)
-    begin
-    if (reset == 1'b1)
-        scrambledData <= INIT_SEED;
-    else
-        scrambledData <= iScrambledDataVoted;
-    end
-
-// synopsys translate_off
-initial 
-  begin
-    scrambledData=$random;
-  end
-// synopsys translate_on
-
-// Scrambler polynomial and bypass mux  
-assign
-    iScrambledData[50:49] = (bypass)? data[50:49] : data[50:49] ~^ data[10:9] ~^ scrambledData[21:20] ~^ data[1:0] ~^ scrambledData[3:2],
-    iScrambledData[48:40] = (bypass)? data[48:40] : data[48:40] ~^ data[8:0] ~^ scrambledData[19:11] ~^ scrambledData[10:2] ~^ scrambledData[50:42],
-    iScrambledData[39:0]  = (bypass)? data[39:0]  : data[39:0] ~^ scrambledData[50:11] ~^ scrambledData[41:2];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/scrambler53bitOrder49.v b/TestBench_hw/LpGBT_model/scrambler53bitOrder49.v
deleted file mode 100644
index 21f7feb..0000000
--- a/TestBench_hw/LpGBT_model/scrambler53bitOrder49.v
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Module: scrambler51bitOrder49                                             */ 
-/* Created: Paulo Moreira, 2015/09/18                                        */
-/* Modified: José Fonseca, 2016/10/21                                        */
-/* 2016/05/30 Kulis : Test partterns removed                                 */
-/*                    (moved to test pattern generator block)                */
-/* Institute: CERN                                                           */
-/* Version: 1.0                                                              */
-
-/* Scrambler width: 51 - bits                                                */
-/* Scrambler order: 49                                                       */
-/* Scrambling recursive equation: Si = Di xnor Si-40 xnor Si-49              */
-
-`timescale 1 ps / 1 ps
-
-module scrambler53bitOrder49 #(parameter INIT_SEED = 53'h1f16348aab1a1a)
-    (
-    input wire [52:0] data,
-    input wire clock,
-    input wire reset,
-    input wire bypass,
-    output reg [52:0] scrambledData
-    );
-
-wire [52:0] iScrambledData;
-wire [52:0] iScrambledDataVoted = iScrambledData;
-
-// Scrambler output register (+ feedback register) + bypass mux
-always @(posedge clock)
-    begin
-    if (reset == 1'b1)
-        scrambledData <= INIT_SEED;
-    else 
-        scrambledData <= iScrambledDataVoted;
-end
-
-// synopsys translate_off
-initial 
-  begin
-    scrambledData=$random;
-  end
-// synopsys translate_on
-
-// Scrambler polynomial and bypass mux  
-assign
-    iScrambledData[52:49] = (bypass) ? data[52:49] : data[52:49] ~^ data[12:9] ~^ scrambledData[23:20] ~^ data[3:0] ~^ scrambledData[5:2],
-    iScrambledData[48:40] = (bypass) ? data[48:40] : data[48:40] ~^ data[8:0] ~^ scrambledData[19:11] ~^ scrambledData[10:2] ~^ scrambledData[50:42],
-    iScrambledData[39:0]  = (bypass) ? data[39:0]  : data[39:0] ~^ scrambledData[50:11] ~^ scrambledData[41:2];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/scrambler58bitOrder58.v b/TestBench_hw/LpGBT_model/scrambler58bitOrder58.v
deleted file mode 100644
index 23038b3..0000000
--- a/TestBench_hw/LpGBT_model/scrambler58bitOrder58.v
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Module: scrambler58bitOrder58                                        */
-/* Created: Paulo Moreira, 2015/09/15                                        */
-/* 2016/05/30 Kulis : Test partterns removed                                 */
-/*                    (moved to test pattern generator block)                */
-/* Institute: CERN                                                           */
-/* Version: 1.0                                                              */
-
-/* Scrambler width: 58 - bits                                                */
-/* Scrambler order: 58                                                       */
-/* Scrambling recursive equation: Si = Di xnor Si-39 xnor Si-58              */
-
-`timescale 1 ps / 1 ps
-
-module scrambler58bitOrder58 #(parameter INIT_SEED = 58'h112abaa1231ba11)
-    (
-    input wire [57:0] data,
-    input wire clock,
-    input wire reset,
-    input wire bypass,
-    output reg [57:0] scrambledData
-    );
-
-wire [57:0] iScrambledData;
-wire [57:0] iScrambledDataVoted = iScrambledData;
-
-// Scrambler output register (+ feedback register) + bypass mux
-always @(posedge clock)
-    begin
-    if (reset == 1'b1)
-        scrambledData <= INIT_SEED;
-    else
-        scrambledData <= iScrambledDataVoted;
-    end
-
-// synopsys translate_off
-initial 
-  begin
-    scrambledData=$random;
-  end
-// synopsys translate_on
-
-// Scrambler polynomial and bypass mux
-assign
-    iScrambledData[57:39] = (bypass)? data[57:39] : data[57:39] ~^ data[18:0] ~^ scrambledData[37:19] ~^ scrambledData[18:0] ~^ scrambledData[57:39],
-    iScrambledData[38:0]  = (bypass)? data[38:0]  : data[38:0]  ~^ scrambledData[57:19] ~^ scrambledData[38:0];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/scrambler60bitOrder58.v b/TestBench_hw/LpGBT_model/scrambler60bitOrder58.v
deleted file mode 100644
index efa363a..0000000
--- a/TestBench_hw/LpGBT_model/scrambler60bitOrder58.v
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Module: scrambler58bitOrder58                                        */
-/* Created: Paulo Moreira, 2015/09/15                                        */
-/* Modified: José Fonseca, 2016/10/21					     */
-/* 2016/05/30 Kulis : Test partterns removed                                 */
-/*                    (moved to test pattern generator block)                */
-/* Institute: CERN                                                           */
-/* Version: 1.0                                                              */
-
-/* Scrambler width: 60 - bits                                                */
-/* Scrambler order: 58                                                       */
-/* Scrambling recursive equation: Si = Di xnor Si-39 xnor Si-58              */
-
-`timescale 1 ps / 1 ps
-
-module scrambler60bitOrder58 #(parameter INIT_SEED = 60'h1faab124cade111)
-    (
-    input wire [59:0] data,
-    input wire clock,
-    input wire reset,
-    input wire bypass,
-    output reg [59:0] scrambledData
-    );
-
-wire [59:0] iScrambledData;
-wire [59:0] iScrambledDataVoted = iScrambledData;
-
-// Scrambler output register (+ feedback register) + bypass mux
-always @(posedge clock)
-    begin
-    if (reset == 1'b1)
-        scrambledData <= INIT_SEED;
-    else
-        scrambledData <= iScrambledDataVoted;
-    end
-
-// synopsys translate_off
-initial 
-  begin
-    scrambledData=$random;
-  end
-// synopsys translate_on
-
-// Scrambler polynomial and bypass mux
-assign
-    iScrambledData[59:58] = (bypass) ? data[59:58] : data[59:58] ~^ data[20:19] ~^ scrambledData[39:38] ~^ data[1:0] ~^ scrambledData[1:0],
-    iScrambledData[57:39] = (bypass) ? data[57:39] : data[57:39] ~^ data[18:0] ~^ scrambledData[37:19] ~^ scrambledData[18:0] ~^ scrambledData[57:39],
-    iScrambledData[38:0]  = (bypass) ? data[38:0]  : data[38:0]  ~^ scrambledData[57:19] ~^ scrambledData[38:0];
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/upLinkDataPath.v b/TestBench_hw/LpGBT_model/upLinkDataPath.v
deleted file mode 100644
index be2e404..0000000
--- a/TestBench_hw/LpGBT_model/upLinkDataPath.v
+++ /dev/null
@@ -1,136 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: upLinkDataPath.v
- *
- *  upLinkDataPath
- *
- *  Controll signals :
- *  txDataRate:
- *    ‘0’ - 5.12 Gb/s
- *    ‘1’ - 10.24 Gb/s
- *
- *  fecMode:
- *    ‘0’ - FEC 5
- *    ‘1’ - FEC 12
- *
- *  History:
- *  2016/05/20 Szymon Kulis    : Created
- *  2016/10/25 José Foseca     : Modified
- *  2016/12/08 Szymon Kulis    : BERT generator added
- *
- **/
-
-
-module upLinkDataPath (
-    // input cloks:
-    input          clk40M,
-
-    // input data:
-    input  [31:0]  txData0,
-    input  [31:0]  txData1,
-    input  [31:0]  txData2,
-    input  [31:0]  txData3,
-    input  [31:0]  txData4,
-    input  [31:0]  txData5,
-    input  [31:0]  txData6,
-    input  [1:0]   txIC,
-    input  [1:0]   txEC,
-    input  [5:0]   txDummyFec5,
-    input  [9:0]   txDummyFec12,
-
-    // controll signals
-    input          scramblerBypass,
-    input          interleaverBypass,
-    input          fecBypass,
-    input          fecMode,
-    input          txDataRate,
-    input          scramblerReset,
-    // output data
-    output  [255:0] upLinkFrame
-);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg default triplicate
-// -------------------------------------------------------------------------- //
-
-  wire [233:0] dataFec5;
-  wire [205:0] dataFec12;
-
-  upLinkDataSelect ULDS(
-    .clk(clk40M),
-    .dataFec12(dataFec12),
-    .dataFec5(dataFec5),
-    .dataRate(txDataRate),
-    .fecMode(fecMode),
-    .txDataGroup0(txData0),
-    .txDataGroup1(txData1),
-    .txDataGroup2(txData2),
-    .txDataGroup3(txData3),
-    .txDataGroup4(txData4),
-    .txDataGroup5(txData5),
-    .txDataGroup6(txData6),
-    .txDummyFec5(txDummyFec5),
-    .txDummyFec12(txDummyFec12),
-    .txEC(txEC),
-    .txIC(txIC)
-  );
-
-  wire [233:0] scrambledDataFec5;
-  wire [205:0] scrambledDataFec12;
-
-  upLinkScrambler UPS (
-    .bypass(scramblerBypass),
-    .clk(clk40M),
-    .dataFec12(dataFec12),
-    .dataFec5(dataFec5),
-    .fecMode(fecMode),
-    .reset(scramblerReset),
-    .scrambledDataFec12(scrambledDataFec12),
-    .scrambledDataFec5(scrambledDataFec5),
-    .txDataRate(txDataRate)
-  );
-
-  wire [19:0] fec5_enc, fec5;
-  wire [47:0] fec12_enc, fec12;
-
-  upLinkFECEncoder ULFE (
-    .dataFec12(scrambledDataFec12),
-    .dataFec5(scrambledDataFec5),
-    .fec12(fec12_enc),
-    .fec5(fec5_enc),
-    .drMode(txDataRate)
-  );
-
-  assign fec5  = (fecBypass) ? 20'd0 : fec5_enc;
-  assign fec12 = (fecBypass) ? 48'd0 : fec12_enc;
-
-  upLinkInterleaver ULI (
-    .clk(clk40M),
-    .bypass(interleaverBypass),
-    .dataFec12(scrambledDataFec12),
-    .dataFec5(scrambledDataFec5),
-    .fec12(fec12),
-    .fec5(fec5),
-    .fecMode(fecMode),
-    .txDataRate(txDataRate),
-    .upLinkFrame(upLinkFrame)
-  );
-
-endmodule
diff --git a/TestBench_hw/LpGBT_model/upLinkDataSelect.v b/TestBench_hw/LpGBT_model/upLinkDataSelect.v
deleted file mode 100644
index bb2a070..0000000
--- a/TestBench_hw/LpGBT_model/upLinkDataSelect.v
+++ /dev/null
@@ -1,111 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: upLinkDataSelect.v
- *
- *  upLinkDataSelect
- *
- *  Controll signals :
-
- *  fecMode:
- *    ‘0’ - FEC 5
- *    ‘1’ - FEC 12
- *
- *  History:
- *  2016/05/30 Szymon Kulis    : Created
- *  2016/10/19 José Fonseca    : Modified
- *
- **/
-
-module upLinkDataSelect(
-    // clocks:
-    input          clk,
-
-    // input data:
-    input  [31:0] txDataGroup0,
-    input  [31:0] txDataGroup1,
-    input  [31:0] txDataGroup2,
-    input  [31:0] txDataGroup3,
-    input  [31:0] txDataGroup4,
-    input  [31:0] txDataGroup5,
-    input  [31:0] txDataGroup6,
-
-    input  [1:0]   txIC,
-    input  [1:0]   txEC,
-    input  [5:0]   txDummyFec5,
-    input  [9:0]   txDummyFec12,
-
-    // controll signals:
-    input          fecMode,
-    input          dataRate,
-
-    // output data:
-    output reg [233:0] dataFec5,
-    output reg [205:0] dataFec12
-);
-
-  // tmrg default triplicate
-
-  localparam FEC5  = 1'b0;
-  localparam FEC12 = 1'b1;
-  localparam DR5G  = 1'b0;
-  localparam DR10G = 1'b1;
-
-  always @* begin
-      if (fecMode == FEC5) begin
-        dataFec12 = 0;
-        if (dataRate == DR10G) begin
-          dataFec5 = {txIC, txEC, txDummyFec5[5:0], txDataGroup6,
-						    txDataGroup5,
-						    txDataGroup4,
-						    txDataGroup3,
-						    txDataGroup2,
-						    txDataGroup1,
-						    txDataGroup0};
-        end
-        else begin
-          dataFec5 = {118'd0, txIC, txEC, txDataGroup6[15:0],
-					  txDataGroup5[15:0],
-					  txDataGroup4[15:0],
-					  txDataGroup3[15:0],
-					  txDataGroup2[15:0],
-					  txDataGroup1[15:0],
-					  txDataGroup0[15:0]};
-        end
-      end
-      else begin
-        dataFec5=0;
-       	if (dataRate == DR10G) begin
-          dataFec12 = {txIC, txEC, txDummyFec12[9:0], txDataGroup5[31:0],
-						      txDataGroup4[31:0], 
-						      txDataGroup3[31:0], 
-						      txDataGroup2[31:0], 
-						      txDataGroup1[31:0], 
-						      txDataGroup0[31:0]};
-        end
-        else begin
-          dataFec12 = {104'd0, txIC, txEC, txDummyFec12[1:0], txDataGroup5[15:0],
-							      txDataGroup4[15:0], 
-							      txDataGroup3[15:0], 
-							      txDataGroup2[15:0], 
-							      txDataGroup1[15:0], 
-							      txDataGroup0[15:0]};
-        end
-      end
-    end
-endmodule
-
diff --git a/TestBench_hw/LpGBT_model/upLinkFECEncoder.v b/TestBench_hw/LpGBT_model/upLinkFECEncoder.v
deleted file mode 100644
index 6145637..0000000
--- a/TestBench_hw/LpGBT_model/upLinkFECEncoder.v
+++ /dev/null
@@ -1,114 +0,0 @@
-
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: upLinkFECEncoder.v
- *
- *  upLinkFECEncoder
- * 
- *  Control flags :
-
- *  drMode:
- *    ‘0’ - 5.12  Gbps
- *    ‘1’ - 10.24 Gbps
- *
- *  History:
- *  2016/05/30 Szymon Kulis    : Created
- *  2016/10/19 José Fonseca    : Updated
- * 
- **/
-
-module upLinkFECEncoder(
-	// input data:
-	input [233:0]  dataFec5,
-	input [205:0]  dataFec12,
-  
-	// Control flag  
-	input drMode,
-   
-	// output FEC codes:
-	output [19:0]  fec5,
-	output [47:0]  fec12
-);
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg do_not_touch
-// -------------------------------------------------------------------------- //
-
-// -----------------------------------------------------------------------------
-// ---------------------  FEC 5 Encoders  --------------------------------------
-// -----------------------------------------------------------------------------
-
-  // wire [144:0] FEC5virtFrame_C0 = {29'b0, dataFec5[115:0]};
-  // wire [144:0] FEC5virtFrame_C1 = {29'b0, dataFec5[115:0]};
-  
-  wire [144:0] FEC5virtFrame_C0;
-  wire [144:0] FEC5virtFrame_C1;
-
-  assign FEC5virtFrame_C0 = (drMode) ? {26'd0, dataFec5[233:232], dataFec5[116:0]} : {29'd0, dataFec5[115:0]};
-  assign FEC5virtFrame_C1 = {29'd0, dataFec5[231:117]};
-
-
-  rs_encoder_N31K29 FEC5_C0 (.msg(FEC5virtFrame_C0), .parity(fec5[9:0])); 
-
-  rs_encoder_N31K29 FEC5_C1 (.msg(FEC5virtFrame_C1), .parity(fec5[19:10])); 
-
-// -----------------------------------------------------------------------------
-// ---------------------  FEC 12 Encoders --------------------------------------
-// -----------------------------------------------------------------------------
-
-  wire [51:0] FEC12virtFrame_C0;
-  wire [51:0] FEC12virtFrame_C1;
-  wire [51:0] FEC12virtFrame_C2;
-  wire [51:0] FEC12virtFrame_C3;
-  wire [51:0] FEC12virtFrame_C4;
-  wire [51:0] FEC12virtFrame_C5;
-
-  assign FEC12virtFrame_C0 = (drMode) ? {16'd0, dataFec12[135:134], dataFec12[33:0]}   : {16'd0, dataFec12[67:66], dataFec12[33:0]};
-  assign FEC12virtFrame_C1 = (drMode) ? {16'd0, dataFec12[169:168], dataFec12[67:34]}  : {18'd0, dataFec12[101:100], dataFec12[65:34]};
-  assign FEC12virtFrame_C2 = (drMode) ? {16'd0, dataFec12[203:202], dataFec12[101:68]} : {20'd0, dataFec12[99:68]};
-  assign FEC12virtFrame_C3 = {18'd0, dataFec12[205:204], dataFec12[133:102]}; 
-  assign FEC12virtFrame_C4 = {20'd0, dataFec12[167:136]};
-  assign FEC12virtFrame_C5 = {20'd0, dataFec12[201:170]};
-
-  rs_encoder_N15K13 FEC12_C0 (.msg(FEC12virtFrame_C0), .parity(fec12[7:0])); 
-
-  rs_encoder_N15K13 FEC12_C1 (.msg(FEC12virtFrame_C1), .parity(fec12[15:8])); 
-
-  rs_encoder_N15K13 FEC12_C2 (
-    .msg(FEC12virtFrame_C2),
-    .parity(fec12[23:16])
-  ); 
-
-  rs_encoder_N15K13 FEC12_C3 (
-    .msg(FEC12virtFrame_C3),
-    .parity(fec12[31:24])
-  ); 
-
-  rs_encoder_N15K13 FEC12_C4 (
-    .msg(FEC12virtFrame_C4),
-    .parity(fec12[39:32])
-  ); 
-
-  rs_encoder_N15K13 FEC12_C5 (
-    .msg(FEC12virtFrame_C5),
-    .parity(fec12[47:40])
-  ); 
-
-endmodule
-
diff --git a/TestBench_hw/LpGBT_model/upLinkInterleaver.v b/TestBench_hw/LpGBT_model/upLinkInterleaver.v
deleted file mode 100644
index d5e55b0..0000000
--- a/TestBench_hw/LpGBT_model/upLinkInterleaver.v
+++ /dev/null
@@ -1,154 +0,0 @@
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: upLinkInterleaver.v
- *
- *  upLinkInterleaver
- *
- *  History:
- *  2016/05/30 Szymon Kulis    : Created File
- *  2016/10/26 José Fonseca    : Implemented and completed
- * 
- **/
-
-module upLinkInterleaver (
-    // clocks:
-    input          clk,
-
-    // input data (and fec codes)
-    input [233:0]  dataFec5,
-    input [205:0]  dataFec12,
-    input [19:0]   fec5,
-    input [47:0]   fec12,
-
-    // control signals
-    input          txDataRate,
-    input          fecMode,
-    input	   bypass,
-
-    // output data:
-    output reg [255:0] upLinkFrame
-);
-
-// -------------------------------------------------------------------------- //
-// ------------- Triple Modular Redundancy Generator Directives ------------- //
-// -------------------------------------------------------------------------- //
-// tmrg default triplicate
-// -------------------------------------------------------------------------- //
- 	localparam FEC5            = 1'b0;
-	localparam FEC12           = 1'b1;
-	localparam TxDataRate5G12  = 1'b0;
-	localparam TxDataRate10G24 = 1'b1;
-	localparam HEADER          = 2'b10;
-
-
-/*
-  wire clkGateH=(txDataRate==TxDataRate10G24);
-
-  wire clkL=clk;
-  wire clkH=clk&clkGateH;
- 
-  reg [255:0] upLinkFrameNext;
-
-  always @(posedge clkL)
-    upLinkFrame [127:0] <= upLinkFrameNext[127:0];
-
-  always @(posedge clkH)
-    upLinkFrame [255:128] <= upLinkFrameNext[255:128];
-
-  localparam HEADERH = 2'b10;
-  localparam HEADERL = 2'b01;
-*/
-
-	always @(dataFec5 or dataFec12 or fec5 or fec12 or fecMode or txDataRate or bypass) begin 
-		if(fecMode == FEC5) begin
-			if(txDataRate == TxDataRate5G12) begin
-					upLinkFrame[127:0]   = {HEADER, dataFec5[115:0], fec5[9:0]};
-					upLinkFrame[255:128] = 128'b0;
-			end
-			else begin
-				if(bypass) 
-					upLinkFrame[255:0]   = {HEADER, dataFec5, fec5};
-				else begin
-					upLinkFrame[255:0]   = {HEADER, dataFec5[233:232], dataFec5[116:115], 
-									dataFec5[231:227], dataFec5[114:110], 
-									dataFec5[226:222], dataFec5[109:105],
-									dataFec5[221:217], dataFec5[104:100], 
-									dataFec5[216:212], dataFec5[99:95], 
-									dataFec5[211:207], dataFec5[94:90],
-									dataFec5[206:202], dataFec5[89:85],
-									dataFec5[201:197], dataFec5[84:80],
-									dataFec5[196:192], dataFec5[79:75],
-									dataFec5[191:187], dataFec5[74:70],
-									dataFec5[186:182], dataFec5[69:65],
-									dataFec5[181:177], dataFec5[64:60],
-									dataFec5[176:172], dataFec5[59:55],
-									dataFec5[171:167], dataFec5[54:50],
-									dataFec5[166:162], dataFec5[49:45],
-									dataFec5[161:157], dataFec5[44:40],
-									dataFec5[156:152], dataFec5[39:35],
-									dataFec5[151:147], dataFec5[34:30],
-									dataFec5[146:142], dataFec5[29:25],
-									dataFec5[141:137], dataFec5[24:20],
-									dataFec5[136:132], dataFec5[19:15],
-									dataFec5[131:127], dataFec5[14:10],
-									dataFec5[126:122], dataFec5[9:5],
-									dataFec5[121:117], dataFec5[4:0],
-									fec5[19:15], fec5[9:5], fec5[14:10], fec5[4:0]};
-				end
-			end
-		end
-		else begin
-			if(txDataRate == TxDataRate5G12) begin
-				if(bypass)
-					upLinkFrame[127:0] = {HEADER, dataFec12, fec12};
-				else begin
-					upLinkFrame[127:0]   = {HEADER, 	         dataFec12[101:100], dataFec12[67:66], dataFec12[33:32],
-									dataFec12[99:96], dataFec12[65:62]                   , dataFec12[31:28],
-									dataFec12[95:92], dataFec12[61:58]		   , dataFec12[27:24],
-									dataFec12[91:88], dataFec12[57:54]		   , dataFec12[23:20],
-									dataFec12[87:84], dataFec12[53:50]		   , dataFec12[19:16],
-									dataFec12[83:80], dataFec12[49:46]		   , dataFec12[15:12],
-									dataFec12[79:76], dataFec12[45:42]		   , dataFec12[11:8],
-									dataFec12[75:72], dataFec12[41:38]		   , dataFec12[7:4],
-									dataFec12[71:68], dataFec12[37:34]		   , dataFec12[3:0],
-									fec12[23:20]    , fec12[15:12]                       , fec12[7:4],
-									fec12[19:16]    , fec12[11:8]   			   , fec12[3:0]};
-				end
-				upLinkFrame[255:128] = 128'b0;
-			end
-			else begin
-				if(bypass) 
-					upLinkFrame[255:0]   = {HEADER, dataFec12, fec12};
-				else begin
-					upLinkFrame[255:0]   = {HEADER,                                         dataFec12[205:204], dataFec12[203:202], dataFec12[101:100], dataFec12[169:168], dataFec12[67:66], dataFec12[135:134], dataFec12[33:32], 
-								dataFec12[201:198], dataFec12[167:164],                    dataFec12[133:130],                      dataFec12[99:96],                    dataFec12[65:62], dataFec12[31:28],
-								dataFec12[197:194], dataFec12[163:160],                    dataFec12[129:126],                      dataFec12[95:92],                    dataFec12[61:58], dataFec12[27:24],
-								dataFec12[193:190], dataFec12[159:156],                    dataFec12[125:122],                      dataFec12[91:88],                    dataFec12[57:54], dataFec12[23:20],
-								dataFec12[189:186], dataFec12[155:152],                    dataFec12[121:118],                      dataFec12[87:84],                    dataFec12[53:50], dataFec12[19:16],
-								dataFec12[185:182], dataFec12[151:148],                    dataFec12[117:114],                      dataFec12[83:80],                    dataFec12[49:46], dataFec12[15:12],
-								dataFec12[181:178], dataFec12[147:144],                    dataFec12[113:110],                      dataFec12[79:76],                    dataFec12[45:42], dataFec12[11:8],
-								dataFec12[177:174], dataFec12[143:140],                    dataFec12[109:106],                      dataFec12[75:72],                    dataFec12[41:38], dataFec12[7:4],
-								dataFec12[173:170], dataFec12[139:136],                    dataFec12[105:102],                      dataFec12[71:68],                    dataFec12[37:34], dataFec12[3:0],
-								      fec12[47:44],       fec12[39:36],                          fec12[31:28],                          fec12[23:20],                        fec12[15:12],     fec12[7:4],
-								      fec12[43:40],       fec12[35:32],                          fec12[27:24],                          fec12[19:16],                         fec12[11:8],     fec12[3:0]};
-				end
-			end
-		end			
-	end
-			
-endmodule
diff --git a/TestBench_hw/LpGBT_model/upLinkScrambler.v b/TestBench_hw/LpGBT_model/upLinkScrambler.v
deleted file mode 100644
index eddca7c..0000000
--- a/TestBench_hw/LpGBT_model/upLinkScrambler.v
+++ /dev/null
@@ -1,160 +0,0 @@
-
-/** ****************************************************************************
- *  lpGBTX                                                                     *
- *  Copyright (C) 2011-2016 GBTX Team, CERN                                    *
- *                                                                             *
- *  This IP block is free for HEP experiments and other scientific research    *
- *  purposes. Commercial exploitation of a chip containing the IP is not       *
- *  permitted.  You can not redistribute the IP without written permission     *
- *  from the authors. Any modifications of the IP have to be communicated back *
- *  to the authors. The use of the IP should be acknowledged in publications,  *
- *  public presentations, user manual, and other documents.                    *
- *                                                                             *
- *  This IP is distributed in the hope that it will be useful, but WITHOUT ANY *
- *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS  *
- *  FOR A PARTICULAR PURPOSE.                                                  *
- *                                                                             *
- *******************************************************************************
- *
- *  file: upLinkScrambler.v
- *
- *  upLinkScrambler
- * 
- *  Controll signals :
-
- *  fecMode:
- *    ‘0’ - FEC 5
- *    ‘1’ - FEC 12
- *
- *  History:
- *  2016/05/30 Szymon Kulis    : Created
- *  2016/10/26 José Fonseca    : Completed
- * 
- **/
-
-module upLinkScrambler(
-    // input clocks:
-    input          clk,
-    // input data:
-    input [233:0]  dataFec5,
-    input [205:0]  dataFec12,
-   
-    // controll signals:
-    input          fecMode,
-    input          txDataRate,
-    input          reset,
-    input          bypass,
-
-    // output data:
-    output [233:0] scrambledDataFec5,
-    output [205:0] scrambledDataFec12
-
-);
-  // tmrg default triplicate
-  localparam FEC5           = 1'b0;
-  localparam FEC12          = 1'b1;
-  localparam TxDataRate5G12 = 1'b0;
-  localparam TxDataRate10G24= 1'b1;
-
-  reg clkGate10GFEC12;
-  reg clkGate10GFEC5;
-  reg clkGate5GFEC12;
-  reg clkGate5GFEC5;
-  
-  wire clk10GFEC12=clk&clkGate10GFEC12;
-  wire clk10GFEC5 =clk&clkGate10GFEC5;
-  wire clk5GFEC12 =clk&clkGate5GFEC12;
-  wire clk5GFEC5  =clk&clkGate5GFEC5;
-
-        
-  always @(fecMode or txDataRate)
-    begin
-      clkGate10GFEC12=1'b0;
-      clkGate10GFEC5 =1'b0;
-      clkGate5GFEC12 =1'b0;
-      clkGate5GFEC5  =1'b0;
-      case ({txDataRate,fecMode})
-        {TxDataRate5G12,  FEC5}: begin clkGate5GFEC5=1'b1; end
-        {TxDataRate5G12, FEC12}: begin clkGate5GFEC12=1'b1; end
-        {TxDataRate10G24, FEC5}: begin clkGate10GFEC5=1'b1; clkGate5GFEC5=1'b1; end
-        {TxDataRate10G24,FEC12}: begin clkGate10GFEC12=1'b1; clkGate5GFEC12=1'b1; end
-      endcase
-    end
-  
-// -----------------------------------------------------------------------------
-// --------------------- FEC 5 scramblers --------------------------------------
-// -----------------------------------------------------------------------------
-
-// low data rate 
-  scrambler58bitOrder58 FEC5L0 (
-    .bypass(bypass),
-    .clock(clk5GFEC5),
-    .data(dataFec5[57:0]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec5[57:0])
-  );
-
-  scrambler58bitOrder58 FEC5L1 (
-    .bypass(bypass),
-    .clock(clk5GFEC5),
-    .data(dataFec5[115:58]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec5[115:58])
-  );
-
-// high data rate
-  scrambler58bitOrder58 FEC5H0 (
-    .bypass(bypass),
-    .clock(clk10GFEC5),
-    .data(dataFec5[173:116]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec5[173:116])
-  );
-
-  scrambler60bitOrder58 FEC5H1 (
-    .bypass(bypass),
-    .clock(clk10GFEC5),
-    .data(dataFec5[233:174]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec5[233:174])
-  );
-
-// -----------------------------------------------------------------------------
-// --------------------- FEC 12 scramblers -------------------------------------
-// -----------------------------------------------------------------------------
-
-// low data rate 
-  scrambler51bitOrder49 FEC12L0 (
-    .bypass(bypass),
-    .clock(clk5GFEC12),
-    .data(dataFec12[50:0]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec12[50:00])
-  );
-
-  scrambler51bitOrder49 FEC12L1 (
-    .bypass(bypass),
-    .clock(clk5GFEC12),
-    .data(dataFec12[101:51]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec12[101:51])
-  );
-
-// high data rate
-  scrambler51bitOrder49 FEC12H0 (
-    .bypass(bypass),
-    .clock(clk10GFEC12),
-    .data(dataFec12[152:102]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec12[152:102])
-  );
-
-  scrambler53bitOrder49 FEC12H1 (
-    .bypass(bypass),
-    .clock(clk10GFEC12),
-    .data(dataFec12[205:153]),
-    .reset(reset),
-    .scrambledData(scrambledDataFec12[205:153])
-  );  
-endmodule
-
diff --git a/TestBench_hw/datarouter_top.vhd b/TestBench_hw/datarouter_top.vhd
deleted file mode 100644
index ddd05cc..0000000
--- a/TestBench_hw/datarouter_top.vhd
+++ /dev/null
@@ -1,80 +0,0 @@
--- IEEE VHDL standard library:
-library ieee;
-use ieee.std_logic_1164.all;
-
---=================================================================================================--
---#######################################   Entity   ##############################################--
---=================================================================================================--
-entity datarouter_top is
-   port (        
-        uplinkSelectDataRate_i           : in  std_logic;      -- '0': 5.12Gbps / '1': 10.24Gbps
-        uplinkSelectFEC_i                : in  std_logic;      -- '0': FEC5 / '1': FEC12
-        
-        upLinkData0                      : in  std_logic_vector(31 downto 0);
-        upLinkData1                      : in  std_logic_vector(31 downto 0);
-        upLinkData2                      : in  std_logic_vector(31 downto 0);
-        upLinkData3                      : in  std_logic_vector(31 downto 0);
-        upLinkData4                      : in  std_logic_vector(31 downto 0);
-        upLinkData5                      : in  std_logic_vector(31 downto 0);
-        upLinkData6                      : in  std_logic_vector(31 downto 0);
-        
-        upLinkData                       : out std_logic_vector(229 downto 0)
-   );   
-end datarouter_top;
-
---=================================================================================================--
---####################################   Architecture   ###########################################-- 
---=================================================================================================--
-
-architecture behavioral of datarouter_top is    
-
-    signal upLinkData_00_s          : std_logic_vector(229 downto 0);
-    signal upLinkData_01_s          : std_logic_vector(229 downto 0);
-    signal upLinkData_10_s          : std_logic_vector(229 downto 0);
-    signal upLinkData_11_s          : std_logic_vector(229 downto 0);
-    
-begin                 --========####   Architecture Body   ####========-- 
-
-    upLinkData_00_s(229 downto 112)  <= (others => '0');
-    upLinkData_00_s(111 downto 0)    <= upLinkData6(15 downto 0) &
-                                        upLinkData5(15 downto 0) &
-                                        upLinkData4(15 downto 0) &
-                                        upLinkData3(15 downto 0) &
-                                        upLinkData2(15 downto 0) &
-                                        upLinkData1(15 downto 0) &
-                                        upLinkData0(15 downto 0);
-    
-    upLinkData_01_s(229 downto 96)   <= (others => '0');
-    upLinkData_01_s(95 downto 0)     <= upLinkData5(15 downto 0) &
-                                        upLinkData4(15 downto 0) &
-                                        upLinkData3(15 downto 0) &
-                                        upLinkData2(15 downto 0) &
-                                        upLinkData1(15 downto 0) &
-                                        upLinkData0(15 downto 0);
-    
-    upLinkData_10_s(229 downto 224)   <= (others => '0');
-    upLinkData_10_s(223 downto 0)     <= upLinkData6 &
-                                         upLinkData5 &
-                                         upLinkData4 &
-                                         upLinkData3 &
-                                         upLinkData2 &
-                                         upLinkData1 &
-                                         upLinkData0;
-    
-    upLinkData_11_s(229 downto 192)  <= (others => '0');
-    upLinkData_11_s(191 downto 0)    <= upLinkData5 &
-                                        upLinkData4 &
-                                        upLinkData3 &
-                                        upLinkData2 &
-                                        upLinkData1 &
-                                        upLinkData0;
-
-    upLinkData  <=  upLinkData_00_s  when uplinkSelectDataRate_i = '0' and uplinkSelectFEC_i = '0' else
-                    upLinkData_01_s  when uplinkSelectDataRate_i = '0' and uplinkSelectFEC_i = '1' else
-                    upLinkData_10_s  when uplinkSelectDataRate_i = '1' and uplinkSelectFEC_i = '0' else
-                    upLinkData_11_s  when uplinkSelectDataRate_i = '1' and uplinkSelectFEC_i = '1';
-
-end behavioral;
---=================================================================================================--
---#################################################################################################--
---=================================================================================================--
\ No newline at end of file
diff --git a/TestBench_hw/downlinkstimulis_top.vhd b/TestBench_hw/downlinkstimulis_top.vhd
deleted file mode 100644
index c8e61ca..0000000
--- a/TestBench_hw/downlinkstimulis_top.vhd
+++ /dev/null
@@ -1,184 +0,0 @@
--- IEEE VHDL standard library:
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
---=================================================================================================--
---#######################################   Entity   ##############################################--
---=================================================================================================--
-entity downlinkstimulis_top is
-   generic (
-        flag_pattern_c                   : std_logic_vector(7 downto 0) := x"ff";
-        init_data_c                      : std_logic_vector(31 downto 0) := x"e459b8a4"
-   );
-   port (
-        downlink_txrdy_i                 : in  std_logic;
-        downlink_rxrdy_i                 : in  std_logic;
-        
-        downlink_txclock_i               : in  std_logic;
-        downlink_txen_i                  : in  std_logic;
-        downlink_rxclock_i               : in  std_logic;
-        downlink_rxen_i                  : in  std_logic;
-        
-        downlinkData_o                   : out std_logic_vector(31 downto 0);
-        downlinkData_i                   : in  std_logic_vector(31 downto 0);
-        
-        downlink_txFlag_o                : out std_logic;
-        downlink_rxFlag_o                : out std_logic;
-        
-        downlink_error_o                 : out std_logic
-   );   
-end downlinkstimulis_top;
-
---=================================================================================================--
---####################################   Architecture   ###########################################-- 
---=================================================================================================--
-
-architecture behavioral of downlinkstimulis_top is    
-    
-    signal check_prev_cnter_g0_s       : unsigned(7 downto 0);
-    signal check_prev_cnter_g1_s       : unsigned(7 downto 0);
-    signal check_prev_cnter_g2_s       : unsigned(7 downto 0);
-    signal check_prev_cnter_g3_s       : unsigned(7 downto 0);
-    
-    signal checker_rdy_s  : std_logic;
-    
-begin                 --========####   Architecture Body   ####========-- 
-
-    downlinkGen_proc: process(downlink_txrdy_i, downlink_txclock_i)
-        variable cnter_g0       : unsigned(7 downto 0);
-        variable cnter_g1       : unsigned(7 downto 0);
-        variable cnter_g2       : unsigned(7 downto 0);
-        variable cnter_g3       : unsigned(7 downto 0);
-    begin
-    
-        if downlink_txrdy_i = '0' then
-            cnter_g0   := unsigned(init_data_c(7 downto 0)); --x"74";
-            cnter_g1   := unsigned(init_data_c(15 downto 8)); --x"20";
-            cnter_g2   := unsigned(init_data_c(23 downto 16)); --x"a6";
-            cnter_g3   := unsigned(init_data_c(31 downto 24)); --x"18";
-            
-            downlinkData_o     <= x"00000000";
-            
-        elsif rising_edge(downlink_txclock_i) then
-        
-            if downlink_txen_i = '1' then
-            
-                -- Flag generator
-                downlink_txFlag_o <= '0';
-                if std_logic_vector(cnter_g0) = flag_pattern_c then
-                    downlink_txFlag_o <= '1';
-                end if;
-                
-                -- Data generator
-                downlinkData_o  <= std_logic_vector(cnter_g3) & std_logic_vector(cnter_g2) & std_logic_vector(cnter_g1) & std_logic_vector(cnter_g0);
-                
-                if cnter_g0 = x"FF" then
-                    cnter_g0    := x"00";
-                else
-                    cnter_g0    := cnter_g0 + 1;
-                end if;
-                
-                if cnter_g1 = x"FF" then
-                    cnter_g1    := x"00";
-                else
-                    cnter_g1    := cnter_g1 + 1;
-                end if;
-                
-                if cnter_g2 = x"FF" then
-                    cnter_g2    := x"00";
-                else
-                    cnter_g2    := cnter_g2 + 1;
-                end if;
-                
-                if cnter_g3 = x"FF" then
-                    cnter_g3    := x"00";
-                else
-                    cnter_g3    := cnter_g3 + 1;
-                end if;
-            end if;
-        end if;
-        
-    end process;
-    
-    downlinkCheck_proc: process(downlink_rxrdy_i, downlink_rxclock_i)    
-        variable check_expected_cnter_g0_s       : unsigned(7 downto 0);
-        variable check_expected_cnter_g1_s       : unsigned(7 downto 0);
-        variable check_expected_cnter_g2_s       : unsigned(7 downto 0);
-        variable check_expected_cnter_g3_s       : unsigned(7 downto 0);      
-    begin
-    
-        if downlink_rxrdy_i = '0' then
-            checker_rdy_s <= '0';
-            downlink_error_o <= '0';
-            
-        elsif rising_edge(downlink_rxclock_i) then
-        
-            if downlink_rxen_i = '1' then
-            
-                downlink_rxFlag_o <= '0';
-                if downLinkData_i(7 downto 0) = flag_pattern_c then
-                    downlink_rxFlag_o <= '1';
-                end if;
-                
-                check_prev_cnter_g0_s  <= unsigned(downLinkData_i(7 downto 0));
-                check_prev_cnter_g1_s  <= unsigned(downLinkData_i(15 downto 8));
-                check_prev_cnter_g2_s  <= unsigned(downLinkData_i(23 downto 16));
-                check_prev_cnter_g3_s  <= unsigned(downLinkData_i(31 downto 24));
-                
-                -- Check value
-                if checker_rdy_s = '1' then
-                
-                    if check_prev_cnter_g0_s = x"FF" then
-                        check_expected_cnter_g0_s  := x"00";
-                    else
-                        check_expected_cnter_g0_s  := check_prev_cnter_g0_s + 1;
-                    end if;
-                
-                    if check_prev_cnter_g1_s = x"FF" then
-                        check_expected_cnter_g1_s  := x"00";
-                    else
-                        check_expected_cnter_g1_s  := check_prev_cnter_g1_s + 1;
-                    end if;
-                
-                    if check_prev_cnter_g2_s = x"FF" then
-                        check_expected_cnter_g2_s  := x"00";
-                    else
-                        check_expected_cnter_g2_s  := check_prev_cnter_g2_s + 1;
-                    end if;
-                
-                    if check_prev_cnter_g3_s = x"FF" then
-                        check_expected_cnter_g3_s  := x"00";
-                    else
-                        check_expected_cnter_g3_s  := check_prev_cnter_g3_s + 1;
-                    end if;
-                    
-                    if unsigned(downLinkData_i(7 downto 0)) /= check_expected_cnter_g0_s then
-                        downlink_error_o <= '1';
-                    end if;
-                    
-                    if unsigned(downLinkData_i(15 downto 8)) /= check_expected_cnter_g1_s then
-                        downlink_error_o <= '1';                    
-                    end if;
-                    
-                    if unsigned(downLinkData_i(23 downto 16)) /= check_expected_cnter_g2_s then
-                        downlink_error_o <= '1';
-                    end if;
-                    
-                    if unsigned(downLinkData_i(31 downto 24)) /= check_expected_cnter_g3_s then
-                        downlink_error_o <= '1';
-                    end if;
-                    
-                end if;
-                
-                checker_rdy_s <= '1';
-                
-            end if;    
-        end if;
-        
-    end process;
-
-end behavioral;
---=================================================================================================--
---#################################################################################################--
---=================================================================================================--
\ No newline at end of file
diff --git a/TestBench_hw/jtag_controller/jtag_controller_top.vhd b/TestBench_hw/jtag_controller/jtag_controller_top.vhd
deleted file mode 100644
index fe650f5..0000000
--- a/TestBench_hw/jtag_controller/jtag_controller_top.vhd
+++ /dev/null
@@ -1,191 +0,0 @@
-----------------------------------------------------------------------------------
--- Company: 
--- Engineer: 
--- 
--- Create Date: 27.01.2016 17:21:58
--- Design Name: 
--- Module Name: xlx_ku_phaligner_mmcm_controller - Behavioral
--- Project Name: 
--- Target Devices: 
--- Tool Versions: 
--- Description: 
--- 
--- Dependencies: 
--- 
--- Revision:
--- Revision 0.01 - File Created
--- Additional Comments:
--- 
-----------------------------------------------------------------------------------
-
-
-library IEEE;
-use IEEE.STD_LOGIC_1164.ALL;
-
--- Uncomment the following library declaration if using
--- arithmetic functions with Signed or Unsigned values
-use IEEE.NUMERIC_STD.ALL;
-
--- Uncomment the following library declaration if instantiating
--- any Xilinx leaf cells in this code.
---library UNISIM;
---use UNISIM.VComponents.all;
-
-
-entity jtag_controller_top is
-  Port ( 
-      CLK_I                  : in std_logic;
-      RESET_I                : in std_logic;
-      
-      reset_lpgbtfpga        : out std_logic;
-      downlinkLpGBTEmulReady : in  std_logic
-  );
-end jtag_controller_top;
-
-architecture Behavioral of jtag_controller_top is
-
-    COMPONENT jtag_axi_0
-      PORT (
-        aclk : IN STD_LOGIC;
-        aresetn : IN STD_LOGIC;
-        m_axi_awaddr : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
-        m_axi_awprot : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
-        m_axi_awvalid : OUT STD_LOGIC;
-        m_axi_awready : IN STD_LOGIC;
-        m_axi_wdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
-        m_axi_wstrb : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
-        m_axi_wvalid : OUT STD_LOGIC;
-        m_axi_wready : IN STD_LOGIC;
-        m_axi_bresp : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
-        m_axi_bvalid : IN STD_LOGIC;
-        m_axi_bready : OUT STD_LOGIC;
-        m_axi_araddr : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
-        m_axi_arprot : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
-        m_axi_arvalid : OUT STD_LOGIC;
-        m_axi_arready : IN STD_LOGIC;
-        m_axi_rdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
-        m_axi_rresp : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
-        m_axi_rvalid : IN STD_LOGIC;
-        m_axi_rready : OUT STD_LOGIC
-      );
-    END COMPONENT;
-    
-    COMPONENT lpgbt_axi_control 
-        generic(
-            -- Width of S_AXI data bus.
-            C_S_AXI_DATA_WIDTH      : integer                       := 32;
-            -- Width of S_AXI address bus.
-            C_S_AXI_ADDR_WIDTH      : integer                       := 5
-        );
-        port(
-            -- AXI4LITE Interface
-            S_AXI_ACLK    		: in  std_logic;
-            S_AXI_ARESETN 		: in  std_logic;
-            S_AXI_AWADDR  		: in  std_logic_vector(C_S_AXI_ADDR_WIDTH - 1 downto 0);
-            S_AXI_AWVALID 		: in  std_logic;
-            S_AXI_AWREADY 		: out std_logic;
-            S_AXI_WDATA   		: in  std_logic_vector(C_S_AXI_DATA_WIDTH - 1 downto 0);
-            S_AXI_WSTRB   		: in  std_logic_vector((C_S_AXI_DATA_WIDTH / 8) - 1 downto 0);
-            S_AXI_WVALID  		: in  std_logic;
-            S_AXI_WREADY  		: out std_logic;
-            S_AXI_BRESP   		: out std_logic_vector(1 downto 0);
-            S_AXI_BVALID  		: out std_logic;
-            S_AXI_BREADY  		: in  std_logic;
-            S_AXI_ARADDR  		: in  std_logic_vector(C_S_AXI_ADDR_WIDTH - 1 downto 0);
-            S_AXI_ARVALID 		: in  std_logic;
-            S_AXI_ARREADY 		: out std_logic;
-            S_AXI_RDATA   		: out std_logic_vector(C_S_AXI_DATA_WIDTH - 1 downto 0);
-            S_AXI_RRESP   		: out std_logic_vector(1 downto 0);
-            S_AXI_RVALID  		: out std_logic;
-            S_AXI_RREADY  		: in  std_logic;
-            
-            -- Control GBT-FPGA
-            reset_lpgbtfpga       : out std_logic;
-            
-            -- Get GBT-FPGA Status
-            downlinkLpGBTEmulReady          : in std_logic
-        );
-    END COMPONENT;
-
-	signal m_axi_awaddr 		:  STD_LOGIC_VECTOR(31 DOWNTO 0);
-    signal m_axi_awprot         :  STD_LOGIC_VECTOR(2 DOWNTO 0);
-    signal m_axi_awvalid        :  STD_LOGIC;
-    signal m_axi_awready        :  STD_LOGIC;
-    signal m_axi_wdata          :  STD_LOGIC_VECTOR(31 DOWNTO 0);
-    signal m_axi_wstrb          :  STD_LOGIC_VECTOR(3 DOWNTO 0);
-    signal m_axi_wvalid         :  STD_LOGIC;
-    signal m_axi_wready         :  STD_LOGIC;
-    signal m_axi_bresp          :  STD_LOGIC_VECTOR(1 DOWNTO 0);
-    signal m_axi_bvalid         :  STD_LOGIC;
-    signal m_axi_bready         :  STD_LOGIC;
-    signal m_axi_araddr         :  STD_LOGIC_VECTOR(31 DOWNTO 0);
-    signal m_axi_arprot         :  STD_LOGIC_VECTOR(2 DOWNTO 0);
-    signal m_axi_arvalid        :  STD_LOGIC;
-    signal m_axi_arready        :  STD_LOGIC;
-    signal m_axi_rdata          :  STD_LOGIC_VECTOR(31 DOWNTO 0);
-    signal m_axi_rresp          :  STD_LOGIC_VECTOR(1 DOWNTO 0);
-    signal m_axi_rvalid         :  STD_LOGIC;
-    signal m_axi_rready         :  STD_LOGIC;
-
-    signal reset_n              : STD_LOGIC;
-begin
-
-   reset_n <= not(RESET_I);
-   
-   jtag_master_inst : jtag_axi_0
-        PORT MAP (
-          aclk => CLK_I,
-          aresetn => reset_n,
-          m_axi_awaddr => m_axi_awaddr,
-          m_axi_awprot => m_axi_awprot,
-          m_axi_awvalid => m_axi_awvalid,
-          m_axi_awready => m_axi_awready,
-          m_axi_wdata => m_axi_wdata,
-          m_axi_wstrb => m_axi_wstrb,
-          m_axi_wvalid => m_axi_wvalid,
-          m_axi_wready => m_axi_wready,
-          m_axi_bresp => m_axi_bresp,
-          m_axi_bvalid => m_axi_bvalid,
-          m_axi_bready => m_axi_bready,
-          m_axi_araddr => m_axi_araddr,
-          m_axi_arprot => m_axi_arprot,
-          m_axi_arvalid => m_axi_arvalid,
-          m_axi_arready => m_axi_arready,
-          m_axi_rdata => m_axi_rdata,
-          m_axi_rresp => m_axi_rresp,
-          m_axi_rvalid => m_axi_rvalid,
-          m_axi_rready => m_axi_rready
-        );
- 
-   lpgbt_axi_control_inst: lpgbt_axi_control
-       Port map( 
-         
-           -- AXI4LITE Interface
-           S_AXI_ACLK            => CLK_I,
-           S_AXI_ARESETN         => reset_n,
-           S_AXI_AWADDR          => m_axi_awaddr(4 downto 0),
-           S_AXI_AWVALID         => m_axi_awvalid,
-           S_AXI_AWREADY         => m_axi_awready,
-           S_AXI_WDATA           => m_axi_wdata,
-           S_AXI_WSTRB           => m_axi_wstrb,
-           S_AXI_WVALID          => m_axi_wvalid,
-           S_AXI_WREADY          => m_axi_wready,
-           S_AXI_BRESP           => m_axi_bresp,
-           S_AXI_BVALID          => m_axi_bvalid,
-           S_AXI_BREADY          => m_axi_bready,
-           S_AXI_ARADDR          => m_axi_araddr(4 downto 0),
-           S_AXI_ARVALID         => m_axi_arvalid,
-           S_AXI_ARREADY         => m_axi_arready,
-           S_AXI_RDATA           => m_axi_rdata,
-           S_AXI_RRESP           => m_axi_rresp,
-           S_AXI_RVALID          => m_axi_rvalid,
-           S_AXI_RREADY          => m_axi_rready,
-         
-           -- To GBT-FPGA
-           reset_lpgbtfpga         => reset_lpgbtfpga,
-         
-           -- From GBT-FPGA
-           downlinkLpGBTEmulReady  => downlinkLpGBTEmulReady
-        );
-   
-end Behavioral;
diff --git a/TestBench_hw/jtag_controller/lpgbt_axi_control.vhd b/TestBench_hw/jtag_controller/lpgbt_axi_control.vhd
deleted file mode 100644
index 74b5b97..0000000
--- a/TestBench_hw/jtag_controller/lpgbt_axi_control.vhd
+++ /dev/null
@@ -1,281 +0,0 @@
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
-entity lpgbt_axi_control is
-	generic(
-		-- Width of S_AXI data bus.
-		C_S_AXI_DATA_WIDTH      : integer                       := 32;
-		-- Width of S_AXI address bus.
-		C_S_AXI_ADDR_WIDTH      : integer                       := 5
-	);
-	port(
-		-- AXI4LITE Interface
-		S_AXI_ACLK    		: in  std_logic;
-		S_AXI_ARESETN 		: in  std_logic;
-		S_AXI_AWADDR  		: in  std_logic_vector(C_S_AXI_ADDR_WIDTH - 1 downto 0);
-		S_AXI_AWVALID 		: in  std_logic;
-		S_AXI_AWREADY 		: out std_logic;
-		S_AXI_WDATA   		: in  std_logic_vector(C_S_AXI_DATA_WIDTH - 1 downto 0);
-		S_AXI_WSTRB   		: in  std_logic_vector((C_S_AXI_DATA_WIDTH / 8) - 1 downto 0);
-		S_AXI_WVALID  		: in  std_logic;
-		S_AXI_WREADY  		: out std_logic;
-		S_AXI_BRESP   		: out std_logic_vector(1 downto 0);
-		S_AXI_BVALID  		: out std_logic;
-		S_AXI_BREADY  		: in  std_logic;
-		S_AXI_ARADDR  		: in  std_logic_vector(C_S_AXI_ADDR_WIDTH - 1 downto 0);
-		S_AXI_ARVALID 		: in  std_logic;
-		S_AXI_ARREADY 		: out std_logic;
-		S_AXI_RDATA   		: out std_logic_vector(C_S_AXI_DATA_WIDTH - 1 downto 0);
-		S_AXI_RRESP   		: out std_logic_vector(1 downto 0);
-		S_AXI_RVALID  		: out std_logic;
-		S_AXI_RREADY  		: in  std_logic;
-		
-		-- Control GBT-FPGA
-		reset_lpgbtfpga       : out std_logic;
-		
-		-- Get GBT-FPGA Status
-		downlinkLpGBTEmulReady          : in std_logic
-	);
-end lpgbt_axi_control;
-
-architecture arch of lpgbt_axi_control is
-
-	-- AXI4LITE signals
-	signal axi_awaddr  : std_logic_vector(C_S_AXI_ADDR_WIDTH - 1 downto 0);
-	signal axi_awready : std_logic;
-	signal axi_wready  : std_logic;
-	signal axi_bresp   : std_logic_vector(1 downto 0);
-	signal axi_bvalid  : std_logic;
-	signal axi_araddr  : std_logic_vector(C_S_AXI_ADDR_WIDTH - 1 downto 0);
-	signal axi_arready : std_logic;
-	signal axi_rdata   : std_logic_vector(C_S_AXI_DATA_WIDTH - 1 downto 0);
-	signal axi_rresp   : std_logic_vector(1 downto 0);
-	signal axi_rvalid  : std_logic;
-
-	-- ADDR_LSB is used for addressing 32 bit registers/memories
-	constant ADDR_LSB          : integer := (C_S_AXI_DATA_WIDTH / 32) + 1;
-	constant OPT_MEM_ADDR_BITS : integer := 2;
-
-	-- Slave register read/write signals
-	signal slv_reg_rden : std_logic;
-	signal slv_reg_wren : std_logic;
-
-	-- Signal that stores the current register's value
-	signal reg_data_out : std_logic_vector(C_S_AXI_DATA_WIDTH - 1 downto 0);
-
-	signal new_control_val	: std_logic := '0';
-	
-	signal rx_reply_received_s : std_logic;
-	
-begin
-
-	-- I/O Connections assignments
-	S_AXI_AWREADY 	<= axi_awready;
-	S_AXI_WREADY  	<= axi_wready;
-	S_AXI_BRESP   	<= axi_bresp;
-	S_AXI_BVALID  	<= axi_bvalid;
-	S_AXI_ARREADY 	<= axi_arready;
-	S_AXI_RDATA  	<= axi_rdata;
-	S_AXI_RRESP   	<= axi_rresp;
-	S_AXI_RVALID  	<= axi_rvalid;
-	
-	-- Implement axi_awready generation
-	-- axi_awready is asserted for one S_AXI_ACLK clock cycle when both
-	-- S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_awready is
-	-- de-asserted when reset is low.
-	process(S_AXI_ACLK)
-	begin
-		if rising_edge(S_AXI_ACLK) then
-			if S_AXI_ARESETN = '0' then
-				axi_awready <= '0';
-			else
-				if (axi_awready = '0' and S_AXI_AWVALID = '1' and S_AXI_WVALID = '1') then
-					-- slave is ready to accept write address when
-					-- there is a valid write address and write data
-					-- on the write address and data bus. This design 
-					-- expects no outstanding transactions. 
-					axi_awready <= '1';
-				else
-					axi_awready <= '0';
-				end if;
-			end if;
-		end if;
-	end process;
-
-	-- Implement axi_awaddr latching
-	-- This process is used to latch the address when both 
-	-- S_AXI_AWVALID and S_AXI_WVALID are valid. 
-	process(S_AXI_ACLK)
-	begin
-		if rising_edge(S_AXI_ACLK) then
-			if S_AXI_ARESETN = '0' then
-				axi_awaddr <= (others => '0');
-			else
-				if (axi_awready = '0' and S_AXI_AWVALID = '1' and S_AXI_WVALID = '1') then
-					-- Write Address latching
-					axi_awaddr <= S_AXI_AWADDR;
-				end if;
-			end if;
-		end if;
-	end process;
-
-	-- Implement axi_wready generation
-	-- axi_wready is asserted for one S_AXI_ACLK clock cycle when both
-	-- S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_wready is 
-	-- de-asserted when reset is low. 
-	process(S_AXI_ACLK)
-	begin
-		if rising_edge(S_AXI_ACLK) then
-			if S_AXI_ARESETN = '0' then
-				axi_wready <= '0';
-			else
-				if (axi_wready = '0' and S_AXI_WVALID = '1' and S_AXI_AWVALID = '1') then
-					-- slave is ready to accept write data when 
-					-- there is a valid write address and write data
-					-- on the write address and data bus. This design 
-					-- expects no outstanding transactions.           
-					axi_wready <= '1';
-				else
-					axi_wready <= '0';
-				end if;
-			end if;
-		end if;
-	end process;
-
-	-- Implement memory mapped register select and write logic generation
-	-- The write data is accepted and written to memory mapped registers when
-	-- axi_awready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. Write strobes are used to
-	-- select byte enables of slave registers while writing.
-	-- These registers are cleared when reset (active low) is applied.
-	-- Slave register write enable is asserted when valid address and data are available
-	-- and the slave is ready to accept the write address and write data.
-	slv_reg_wren <= axi_wready and S_AXI_WVALID and axi_awready and S_AXI_AWVALID;
-
-	process(S_AXI_ACLK)
-		variable loc_addr : std_logic_vector(OPT_MEM_ADDR_BITS downto 0);
-	begin
-		if rising_edge(S_AXI_ACLK) then
-                                                				
-			if S_AXI_ARESETN = '0' then
-			     reset_lpgbtfpga <= '0';
-			else
-				loc_addr := axi_awaddr(ADDR_LSB + OPT_MEM_ADDR_BITS downto ADDR_LSB);
-				if (slv_reg_wren = '1') then
-					case loc_addr is
-						when b"000" =>
-						
-						    if (S_AXI_WSTRB(0) = '1') then
-                                reset_lpgbtfpga          <= S_AXI_WDATA(0);
-                            end if;
-                                                        	
-						when others => NULL;
-						
-					end case;
-				end if;
-			end if;
-		end if;
-	end process;
-	
-	-- Implement write response logic generation
-	-- The write response and response valid signals are asserted by the slave 
-	-- when axi_wready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted.  
-	-- This marks the acceptance of address and indicates the status of 
-	-- write transaction.
-	process(S_AXI_ACLK)
-	begin
-		if rising_edge(S_AXI_ACLK) then
-			if S_AXI_ARESETN = '0' then
-				axi_bvalid <= '0';
-				axi_bresp  <= "00";     --need to work more on the responses
-			else
-				if (axi_awready = '1' and S_AXI_AWVALID = '1' and axi_wready = '1' and S_AXI_WVALID = '1' and axi_bvalid = '0') then
-					axi_bvalid <= '1';
-					axi_bresp  <= "00";
-				elsif (S_AXI_BREADY = '1' and axi_bvalid = '1') then --check if bready is asserted while bvalid is high)
-					axi_bvalid <= '0';  -- (there is a possibility that bready is always asserted high)
-				end if;
-			end if;
-		end if;
-	end process;
-
-	-- Implement axi_arready generation
-	-- axi_arready is asserted for one S_AXI_ACLK clock cycle when
-	-- S_AXI_ARVALID is asserted. axi_awready is 
-	-- de-asserted when reset (active low) is asserted. 
-	-- The read address is also latched when S_AXI_ARVALID is 
-	-- asserted. axi_araddr is reset to zero on reset assertion.
-	process(S_AXI_ACLK)
-	begin
-		if rising_edge(S_AXI_ACLK) then
-			if S_AXI_ARESETN = '0' then
-				axi_arready <= '0';
-				axi_araddr  <= (others => '1');
-			else
-				if (axi_arready = '0' and S_AXI_ARVALID = '1') then
-					-- indicates that the slave has acceped the valid read address
-					axi_arready <= '1';
-					-- Read Address latching 
-					axi_araddr  <= S_AXI_ARADDR;
-				else
-					axi_arready <= '0';
-				end if;
-			end if;
-		end if;
-	end process;
-
-	-- Implement axi_arvalid generation
-	-- axi_rvalid is asserted for one S_AXI_ACLK clock cycle when both 
-	-- S_AXI_ARVALID and axi_arready are asserted. The slave registers 
-	-- data are available on the axi_rdata bus at this instance. The 
-	-- assertion of axi_rvalid marks the validity of read data on the 
-	-- bus and axi_rresp indicates the status of read transaction.axi_rvalid 
-	-- is deasserted on reset (active low). axi_rresp and axi_rdata are 
-	-- cleared to zero on reset (active low).  
-	process(S_AXI_ACLK)
-	begin
-		if rising_edge(S_AXI_ACLK) then
-			if S_AXI_ARESETN = '0' then
-				axi_rvalid <= '0';
-				axi_rresp  <= "00";
-			else
-				if (axi_arready = '1' and S_AXI_ARVALID = '1' and axi_rvalid = '0') then
-					-- Valid read data is available at the read data bus
-					axi_rvalid <= '1';
-					axi_rresp  <= "00"; -- 'OKAY' response
-				elsif (axi_rvalid = '1' and S_AXI_RREADY = '1') then
-					-- Read data is accepted by the master
-					axi_rvalid <= '0';
-				end if;
-			end if;
-		end if;
-	end process;
-
-	-- Implement memory mapped register select and read logic generation
-	-- Slave register read enable is asserted when valid address is available
-	-- and the slave is ready to accept the read address.
-	slv_reg_rden <= axi_arready and S_AXI_ARVALID and (not axi_rvalid);
-
-    reg_data_out <= x"0000000" & "000" & downlinkLpGBTEmulReady                when axi_araddr(ADDR_LSB + OPT_MEM_ADDR_BITS downto ADDR_LSB) = b"000" else
-                    x"00000000";
-    
-	-- Output register or memory read data
-	process(S_AXI_ACLK) is
-	begin
-		if (rising_edge(S_AXI_ACLK)) then
-                       
-			if (S_AXI_ARESETN = '0') then
-				axi_rdata <= (others => '0');
-			else
-				if (slv_reg_rden = '1') then
-					-- When there is a valid read address (S_AXI_ARVALID) with 
-					-- acceptance of read address by the slave (axi_arready), 
-					-- output the read dada 
-					-- Read address mux					
-					axi_rdata <= reg_data_out; -- register read data
-				end if;
-			end if;
-		end if;
-	end process;
-
-end arch;
\ No newline at end of file
diff --git a/TestBench_hw/lpgbt_downlinkGenerator.vhd b/TestBench_hw/lpgbt_downlinkGenerator.vhd
new file mode 100644
index 0000000..8f24817
--- /dev/null
+++ b/TestBench_hw/lpgbt_downlinkGenerator.vhd
@@ -0,0 +1,165 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+
+entity lpgbt_elink_downlinkGenerator is
+    port(
+        --clk40Mhz_Tx_i      : in  std_logic;
+        clk320DnLink_i            : in  std_logic;
+        clkEnDnLink_i             : in  std_logic;
+
+        generator_rst_i           : in  std_logic;
+
+        config_group0_i           : in  std_logic_vector(1 downto 0);
+        config_group1_i           : in  std_logic_vector(1 downto 0);
+        config_group2_i           : in  std_logic_vector(1 downto 0);
+        config_group3_i           : in  std_logic_vector(1 downto 0);
+
+        fixed_pattern_i           : in  std_logic_vector(31 downto 0);
+
+        downlink_o                : out std_logic_vector(31 downto 0);
+
+        eport_gen_rdy_o           : out std_logic_vector(15 downto 0)
+    );
+end lpgbt_elink_downlinkGenerator;
+
+architecture rtl of lpgbt_elink_downlinkGenerator is
+
+    -- EPORT generators
+    component prbs7_2b_generator
+        generic(
+            INIT_c           : in std_logic_vector(7 downto 0)
+        );
+        port (
+            reset_i          : in  std_logic;
+            clk_i            : in  std_logic;
+            clken_i          : in  std_logic;
+            err_pattern_i    : in  std_logic_vector(7 downto 0);
+            rep_delay_i      : in  std_logic_vector(23 downto 0);
+            prbs_word_o      : out std_logic_vector(1 downto 0);
+            rdy_o            : out std_logic
+        );
+    end component;
+
+    component prbs7_4b_generator
+        generic(
+            INIT_c           : in std_logic_vector(7 downto 0)
+        );
+        port (
+            reset_i          : in  std_logic;
+            clk_i            : in  std_logic;
+            clken_i          : in  std_logic;
+            err_pattern_i    : in  std_logic_vector(7 downto 0);
+            rep_delay_i      : in  std_logic_vector(23 downto 0);
+            prbs_word_o      : out std_logic_vector(3 downto 0);
+            rdy_o            : out std_logic
+        );
+    end component;
+
+    component prbs7_8b_generator
+        generic(
+            INIT_c           : in std_logic_vector(7 downto 0)
+        );
+        port (
+            reset_i          : in  std_logic;
+            clk_i            : in  std_logic;
+            clken_i          : in  std_logic;
+            err_pattern_i    : in  std_logic_vector(7 downto 0);
+            rep_delay_i      : in  std_logic_vector(23 downto 0);
+            prbs_word_o      : out std_logic_vector(7 downto 0);
+            rdy_o            : out std_logic
+        );
+    end component;
+
+    type elink_80prbs_arr_T is array (integer range <>) of std_logic_vector(1 downto 0);
+    type elink_160prbs_arr_T is array (integer range <>) of std_logic_vector(3 downto 0);
+    type elink_320prbs_arr_T is array (integer range <>) of std_logic_vector(7 downto 0);
+
+    signal reset_synch_s     : std_logic;
+    signal prbs7_80data_s    : elink_80prbs_arr_T(15 downto 0);
+    signal prbs7_160data_s   : elink_160prbs_arr_T(7 downto 0);
+    signal prbs7_320data_s   : elink_320prbs_arr_T(3 downto 0);
+    signal rst_dst_s         : std_logic;
+    
+begin
+
+    reset_synch_proc: process(generator_rst_i, clk320DnLink_i)
+        begin
+            if generator_rst_i = '1' then
+                rst_dst_s  <= '1';
+                reset_synch_s <= '1';
+            elsif rising_edge(clk320DnLink_i) then
+                rst_dst_s  <= '0';
+                reset_synch_s <= rst_dst_s;
+            end if;
+    end process;
+    
+    multi_elink_gen_80mbps: for i in 0 to 15 generate
+        prbs7_2b_generator_inst: prbs7_2b_generator
+            generic map(
+                INIT_c           => x"a4"
+            )
+            port map(
+                reset_i          => reset_synch_s,
+                clk_i            => clk320DnLink_i,
+                clken_i          => clkEnDnLink_i,
+                err_pattern_i    => (others => '0'), -- No error injection
+                rep_delay_i      => (others => '0'), -- No error injection
+                prbs_word_o      => prbs7_80data_s(i),
+                rdy_o            => eport_gen_rdy_o(i)
+            );
+    end generate;
+
+    multi_elink_gen_160mbps: for i in 0 to 7 generate
+        prbs7_2b_generator_inst: prbs7_4b_generator
+            generic map(
+                INIT_c           => x"a4"
+            )
+            port map(
+                reset_i          => reset_synch_s,
+                clk_i            => clk320DnLink_i,
+                clken_i          => clkEnDnLink_i,
+                err_pattern_i    => (others => '0'), -- No error injection
+                rep_delay_i      => (others => '0'), -- No error injection
+                prbs_word_o      => prbs7_160data_s(i),
+                rdy_o            => eport_gen_rdy_o(i)
+            );
+    end generate;
+
+    multi_elink_gen_320mbps: for i in 0 to 3 generate
+        prbs7_2b_generator_inst: prbs7_8b_generator
+            generic map(
+                INIT_c           => x"a4"
+            )
+            port map(
+                reset_i          => reset_synch_s,
+                clk_i            => clk320DnLink_i,
+                clken_i          => clkEnDnLink_i,
+                err_pattern_i    => (others => '0'), -- No error injection
+                rep_delay_i      => (others => '0'), -- No error injection
+                prbs_word_o      => prbs7_320data_s(i),
+                rdy_o            => eport_gen_rdy_o(i)
+            );
+    end generate;
+
+    downlink_o(7 downto 0)   <= prbs7_320data_s(0) when config_group0_i = "11" else
+                                prbs7_160data_s(1) & prbs7_160data_s(0) when config_group0_i = "10" else
+                                prbs7_80data_s(3) & prbs7_80data_s(2) & prbs7_80data_s(1) & prbs7_80data_s(0) when config_group0_i = "01" else
+                                fixed_pattern_i(7 downto 0);
+
+    downlink_o(15 downto 8)  <= prbs7_320data_s(1) when config_group1_i = "11" else
+                                prbs7_160data_s(3) & prbs7_160data_s(2) when config_group1_i = "10" else
+                                prbs7_80data_s(7) & prbs7_80data_s(6) & prbs7_80data_s(5) & prbs7_80data_s(4) when config_group0_i = "01" else
+                                fixed_pattern_i(15 downto 8);
+
+    downlink_o(23 downto 16) <= prbs7_320data_s(2) when config_group2_i = "11" else
+                                prbs7_160data_s(5) & prbs7_160data_s(4) when config_group2_i = "10" else
+                                prbs7_80data_s(11) & prbs7_80data_s(10) & prbs7_80data_s(9) & prbs7_80data_s(8) when config_group0_i = "01" else
+                                fixed_pattern_i(23 downto 16);
+
+    downlink_o(31 downto 24) <= prbs7_320data_s(3) when config_group3_i = "11" else
+                                prbs7_160data_s(7) & prbs7_160data_s(6) when config_group3_i = "10" else
+                                prbs7_80data_s(15) & prbs7_80data_s(14) & prbs7_80data_s(13) & prbs7_80data_s(12) when config_group0_i = "01" else
+                                fixed_pattern_i(31 downto 24);
+
+end rtl;
diff --git a/TestBench_hw/lpgbtemul_top.vhd b/TestBench_hw/lpgbtemul_top.vhd
deleted file mode 100644
index 1f27a03..0000000
--- a/TestBench_hw/lpgbtemul_top.vhd
+++ /dev/null
@@ -1,642 +0,0 @@
--- IEEE VHDL standard library:
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
-use work.lpgbtfpga_package.all;
---=================================================================================================--
---#######################################   Entity   ##############################################--
---=================================================================================================--
-
-entity lpgbtemul_top is
-    port(    
-        -- Resets
-        rst_downlink_i                   : in  std_logic;
-        rst_uplink_i                     : in  std_logic;
-        
-        -- DownLink
-        downlinkClk_o                    : out std_logic;
-        downlinkClkEn_o                  : out std_logic;
-                
-        downLinkDataGroup0               : out std_logic_vector(15 downto 0);
-        downLinkDataGroup1               : out std_logic_vector(15 downto 0);
-        downLinkDataEc                   : out std_logic_vector(1 downto 0);
-        downLinkDataIc                   : out std_logic_vector(1 downto 0);
-        
-        downLinkBypassDeinterleaver      : in  std_logic;
-        downLinkBypassFECDecoder         : in  std_logic;
-        downLinkBypassDescsrambler       : in  std_logic;
-        
-        enableFECErrCounter              : in  std_logic;
-        fecCorrectionCount               : out std_logic_vector(15 downto 0);
-
-        downlinkRdy_o                    : out std_logic;
-        
-        -- uplink data        
-        uplinkClk_o                      : out std_logic;
-        uplinkClkEn_i                    : in  std_logic;
-        
-        upLinkData0                      : in  std_logic_vector(31 downto 0);
-        upLinkData1                      : in  std_logic_vector(31 downto 0);
-        upLinkData2                      : in  std_logic_vector(31 downto 0);
-        upLinkData3                      : in  std_logic_vector(31 downto 0);
-        upLinkData4                      : in  std_logic_vector(31 downto 0);
-        upLinkData5                      : in  std_logic_vector(31 downto 0);
-        upLinkData6                      : in  std_logic_vector(31 downto 0);
-        upLinkDataIC                     : in  std_logic_vector(1 downto 0);
-        upLinkDataEC                     : in  std_logic_vector(1 downto 0);
-
-        uplinkRdy_o                      : out std_logic;
-        
-        -- MGT
-        clk_mgtrefclk_i                  : in  std_logic;                       --! Transceiver serial clock
-        clk_mgtfreedrpclk_i              : in  std_logic;
-        
-        mgt_rxn_i                        : in  std_logic;
-        mgt_rxp_i                        : in  std_logic;
-        mgt_txn_o                        : out std_logic;
-        mgt_txp_o                        : out std_logic;
-
-        mgt_rdy_o                        : out std_logic;
-        
-        -- Uplink controll signals
-        upLinkScramblerBypass            : in  std_logic;
-        upLinkScramblerReset             : in  std_logic;
-        upLinkFecBypass                  : in  std_logic;
-        upLinkInterleaverBypass          : in  std_logic;
-        fecMode                          : in  std_logic;
-        txDataRate                       : in  std_logic
-    );
-end lpgbtemul_top;
-
---=================================================================================================--
---####################################   Architecture   ###########################################-- 
---=================================================================================================--
-
-architecture behabioral of lpgbtemul_top is
-
-    signal clk_mgtTxUsrclkToEmul_s              : std_logic;
-    signal clk_mgtRxUsrclkToEmul_s              : std_logic;
-    
-    signal dat_downLinkWord_fromMgt_s           : std_logic_vector(31 downto 0);
-    signal sta_mgtRxRdy_s                       : std_logic;
-    
-    signal rst_pattsearch_s                     : std_logic;
-    signal ctr_clkSlip_s                        : std_logic;
-    signal sta_headeLocked_s                    : std_logic;
-    signal sta_headerFlag_s                     : std_logic;
-    
-    signal sta_rxgbxRdy_s                       : std_logic;
-    
-    signal rstn_datapath_s                      : std_logic;
-    signal rst_datapath_s                       : std_logic;
-    
-    signal dat_downLinkWord_fromGb_s            : std_logic_vector(255 downto 0);
-    signal dat_downLinkWord_fromGbInv_s         : std_logic_vector(63 downto 0);
-    signal dat_downLinkWord_toPattSrch_s        : std_logic_vector(15 downto 0);
-    
-    signal clk_mgtTxUsrclk_s                    : std_logic;
-    signal clk_mgtRxUsrclk_s                    : std_logic;
-    
-    signal downlinkRdy_s0                       : std_logic;
-    signal downlinkRdy_s1                       : std_logic;
-    signal sta_mgtTxRdy_s                       : std_logic;
-    
-    signal uplinkClkEn_sh_s                     : std_logic;
-    signal uplinkClkEn_shgb_s                   : std_logic;
-    signal sta_txGbRdy_s                        : std_logic;
-    
-    signal dat_upLinkWord_fromLpGBT_s           : std_logic_vector(255 downto 0);
-    signal dat_upLinkWord_fromLpGBT_pipeline_s  : std_logic_vector(255 downto 0);
-    signal dat_upLinkWord_toGb_s                : std_logic_vector(255 downto 0);
-    signal dat_upLinkWord_toGb_pipeline_s       : std_logic_vector(255 downto 0);
-    signal dat_upLinkWord_fromGb_s              : std_logic_vector(31 downto 0);
-    
-    signal rst_uplinkGb_s                       : std_logic;
-    signal rst_uplinkGb_synch_s                 : std_logic;
-    signal rst_uplinkMgt_s                      : std_logic;
-    signal rst_uplinkInitDone_s                 : std_logic;
-    signal rst_downlinkInitDone_s               : std_logic;
-    
-    signal RX_CLKEn_s                           : std_logic;
-    signal RX_CLK40_s                           : std_logic;
-    
-    signal downLinkDataIc_s                     : std_logic_vector(1 downto 0);
-    signal downLinkDataEc_s                     : std_logic_vector(1 downto 0);
-    signal downLinkDataGroup1_s                 : std_logic_vector(15 downto 0);
-    signal downLinkDataGroup0_s                 : std_logic_vector(15 downto 0);
-    
-    signal clk_dataFlag_rxGb_s                  : std_logic;
-    
-    signal upLinkData0_s                        : std_logic_vector(31 downto 0);
-    signal upLinkData1_s                        : std_logic_vector(31 downto 0);
-    signal upLinkData2_s                        : std_logic_vector(31 downto 0);
-    signal upLinkData3_s                        : std_logic_vector(31 downto 0);
-    signal upLinkData4_s                        : std_logic_vector(31 downto 0);
-    signal upLinkData5_s                        : std_logic_vector(31 downto 0);
-    signal upLinkData6_s                        : std_logic_vector(31 downto 0);
-    signal upLinkDataIC_s                       : std_logic_vector(1 downto 0);
-    signal upLinkDataEC_s                       : std_logic_vector(1 downto 0);
-                
-    COMPONENT LpGBT_Model_dataPath
-       PORT (
-            -- Clock
-            upClki                           : in  std_logic;
-            downClki                         : in  std_logic;
-            downLinkDataPathEnable           : in  std_logic;
-            upLinkDataPathEnable             : in  std_logic;
-            
-            -- DownLink           
-            downLinkFrame                    : in  std_logic_vector(63 downto 0);
-            
-            downLinkDataGroup0               : out std_logic_vector(15 downto 0);
-            downLinkDataGroup1               : out std_logic_vector(15 downto 0);
-            downLinkDataEc                   : out std_logic_vector(1 downto 0);
-            downLinkDataIc                   : out std_logic_vector(1 downto 0);
-            downLinkHeader                   : out std_logic_vector(3 downto 0);
-            
-            downLinkBypassDeinterleaver      : in  std_logic;
-            downLinkBypassFECDecoder         : in  std_logic;
-            downLinkBypassDescsrambler       : in  std_logic;
-            
-            enableFECErrCounter              : in  std_logic;
-            fecCorrectionCount               : out std_logic_vector(15 downto 0);
-            
-            -- uplink data
-            upLinkData0                      : in  std_logic_vector(31 downto 0);
-            upLinkData1                      : in  std_logic_vector(31 downto 0);
-            upLinkData2                      : in  std_logic_vector(31 downto 0);
-            upLinkData3                      : in  std_logic_vector(31 downto 0);
-            upLinkData4                      : in  std_logic_vector(31 downto 0);
-            upLinkData5                      : in  std_logic_vector(31 downto 0);
-            upLinkData6                      : in  std_logic_vector(31 downto 0);
-            upLinkDataIC                     : in  std_logic_vector(1 downto 0);
-            upLinkDataEC                     : in  std_logic_vector(1 downto 0);
-
-            -- Uplink controll signals
-            upLinkScramblerBypass            : in  std_logic;
-            upLinkScramblerReset             : in  std_logic;
-            upLinkFecBypass                  : in  std_logic;
-            upLinkInterleaverBypass          : in  std_logic;
-            fecMode                          : in  std_logic;
-            txDataRate                       : in  std_logic;
-
-            -- Uplink output data
-            upLinkFrame                      : out std_logic_vector(255 downto 0)
-       );   
-    END COMPONENT;
-    
-    COMPONENT mgt
-       port (
-           -- Clocks
-           MGT_REFCLK_i                 : in  std_logic;
-           MGT_FREEDRPCLK_i             : in  std_logic;
-                 
-           MGT_RXUSRCLK_o               : out std_logic;
-           MGT_TXUSRCLK_o               : out std_logic;
-           
-           -- Resets
-           MGT_TXRESET_i                : in  std_logic;
-           MGT_RXRESET_i                : in  std_logic;
-           
-           -- Control & Status
-           MGT_RXSlide_i                : in  std_logic;           
-           MGT_TXREADY_o                : out std_logic;
-           MGT_RXREADY_o                : out std_logic;
-           
-           MGT_TX_ALIGNED_o             : out std_logic;
-           MGT_TX_PIPHASE_o             : out std_logic_vector(6 downto 0);
-           MGT_ENTXCALIBIN_i            : in  std_logic;
-           MGT_TXCALIB_i                : in  std_logic_vector(6 downto 0);
-
-           -- Data
-           MGT_USRWORD_i                : in  std_logic_vector(31 downto 0);
-           MGT_USRWORD_o                : out std_logic_vector(31 downto 0);
-           
-           RXn_i                        : in  std_logic;
-           RXp_i                        : in  std_logic;           
-           TXn_o                        : out std_logic;
-           TXp_o                        : out std_logic
-       );   
-    END COMPONENT;
-    
-    COMPONENT mgt_framealigner
-        generic (
-            c_wordRatio                      : integer;
-            c_headerPattern                  : std_logic_vector;
-            c_wordSize                       : integer;
-            c_allowedFalseHeader             : integer;
-            c_allowedFalseHeaderOverN        : integer;
-            c_requiredTrueHeader             : integer;
-            
-            c_resetOnEven                    : integer := 0;
-            c_bitslip_mindly                 : integer := 40
-        );
-        port (     
-            -- Clock(s)
-            clk_pcsRx_i                      : in  std_logic;
-            clk_freeRunningClk_i             : in  std_logic;
-            
-            -- Reset(s)
-            rst_pattsearch_i                 : in  std_logic;
-            rst_mgtctrler_i                  : in  std_logic;
-            rst_rstoneven_o                  : out std_logic;
-            
-            -- Control
-            cmd_bitslipCtrl_o                : out std_logic;
-            cmd_rstonevenoroddsel_i          : in  std_logic;
-            
-            -- Status
-            sta_headerLocked_o               : out std_logic;
-            sta_headerFlag_o                 : out std_logic;
-            
-            -- Data
-            dat_word_i                       : in  std_logic_vector(c_headerPattern'length-1 downto 0)
-       );  
-    END COMPONENT;
-    
-    COMPONENT rxGearbox
-        generic (
-            c_clockRatio                  : integer;
-            c_inputWidth                  : integer;
-            c_outputWidth                 : integer
-        );
-        port (
-            -- Clock and reset
-            clk_inClk_i                   : in  std_logic;
-            clk_clkEn_i                   : in  std_logic;
-            clk_dataFlag_o                : out std_logic;
-            
-            rst_gearbox_i                 : in  std_logic;
-
-            -- Data
-            dat_inFrame_i                 : in  std_logic_vector((c_inputWidth-1) downto 0);
-            dat_outFrame_o                : out std_logic_vector((c_inputWidth*c_clockRatio)-1 downto 0);
-            
-            -- Status
-            sta_gbRdy_o                   : out std_logic    
-        );
-    END COMPONENT;
-
-    COMPONENT txGearbox
-        generic (
-            c_clockRatio                  : integer;
-            c_inputWidth                  : integer;
-            c_outputWidth                 : integer
-        );
-        port (
-            -- Clock and reset
-            clk_inClk_i                   : in  std_logic;
-            clk_clkEn_i                   : in  std_logic;
-            clk_outClk_i                  : in  std_logic;
-            
-            rst_gearbox_i                 : in  std_logic;
-
-            -- Data
-            dat_inFrame_i                 : in  std_logic_vector((c_inputWidth-1) downto 0);
-            dat_outFrame_o                : out std_logic_vector((c_outputWidth-1) downto 0);
-            
-            -- Status
-            sta_gbRdy_o                   : out std_logic   
-        );
-    END COMPONENT;
-            
-begin                 --========####   Architecture Body   ####========-- 
-
-    rst_pattsearch_s            <= not(sta_mgtRxRdy_s);
-    rst_datapath_s              <= not(sta_headeLocked_s);
-    
-    rst_uplinkGb_s              <= rst_uplink_i or not(sta_mgtTxRdy_s) or not(sta_headeLocked_s);
-    rst_uplinkMgt_s             <= not(sta_headeLocked_s);
-    
-    uplinkRdy_o                 <= sta_txGbRdy_s;
-    
-    --Rdy process (delay from 1 clock)
-    process(sta_rxgbxRdy_s, clk_mgtRxUsrclk_s)
-    begin
-        if sta_rxgbxRdy_s = '0' then
-            downlinkRdy_o <= '0';
-            downlinkRdy_s0 <= '0';
-            downlinkRdy_s1 <= '0';
-        elsif rising_edge(clk_mgtRxUsrclk_s) then
-            if RX_CLKEn_s = '1' then
-                downlinkRdy_s0 <= '1';
-                downlinkRdy_s1 <= downlinkRdy_s0;
-                downlinkRdy_o  <= downlinkRdy_s1;
-            end if;
-        end if;    
-    end process;
-    
-    -- MGT
-    mgt_inst: mgt
-       port map(
-            -- Clocks
-            MGT_REFCLK_i                 => clk_mgtrefclk_i,
-            MGT_FREEDRPCLK_i             => clk_mgtfreedrpclk_i,
-                    
-            MGT_RXUSRCLK_o               => clk_mgtRxUsrclk_s,
-            MGT_TXUSRCLK_o               => clk_mgtTxUsrclk_s,
-              
-            -- Resets
-            MGT_TXRESET_i                => rst_downlink_i, -- rst_uplinkMgt_s, JM: issue - reseting the Tx side resets also the CPLL that is used by the Rx
-            MGT_RXRESET_i                => rst_downlink_i,
-              
-            -- Control & Status
-            MGT_RXSlide_i                => ctr_clkSlip_s,    
-            MGT_TXREADY_o                => sta_mgtTxRdy_s,
-            MGT_RXREADY_o                => sta_mgtRxRdy_s,
-            
-            MGT_TX_ALIGNED_o             => open,
-            MGT_TX_PIPHASE_o             => open,
-            MGT_ENTXCALIBIN_i            => '0',
-            MGT_TXCALIB_i                => "0000000", 
-                      
-            -- Data
-            MGT_USRWORD_i                => dat_upLinkWord_fromGb_s,
-            MGT_USRWORD_o                => dat_downLinkWord_fromMgt_s,
-              
-            RXn_i                        => mgt_rxn_i,
-            RXp_i                        => mgt_rxp_i,       
-            TXn_o                        => mgt_txn_o,
-            TXp_o                        => mgt_txp_o
-       );
-    
-    mgt_rdy_o <= sta_mgtTxRdy_s and sta_mgtRxRdy_s;
-    
-    -- Pattern aligner
-    mgt_framealigner_inst: mgt_framealigner
-        GENERIC map (
-            c_wordRatio                      => 8,
-            c_headerPattern                  => x"F00F",
-            c_wordSize                       => 32,
-            c_allowedFalseHeader             => 32,
-            c_allowedFalseHeaderOverN        => 40,
-            c_requiredTrueHeader             => 30,
-            c_bitslip_mindly                 => 40
-        )
-        PORT map (     
-            -- Clock(s)
-            clk_pcsRx_i                      => clk_mgtRxUsrclk_s,
-            clk_freeRunningClk_i             => '0',                  -- Not used: rst on even is not enabled
-            
-            -- Reset(s)
-            rst_pattsearch_i                 => rst_pattsearch_s,
-            rst_mgtctrler_i                  => '0',                  -- Not used: rst on even is not enabled
-            rst_rstoneven_o                  => open,                 -- Not used: rst on even is not enabled
-            
-            -- Control
-            cmd_bitslipCtrl_o                => ctr_clkSlip_s,
-            cmd_rstonevenoroddsel_i          => '0',                  -- Not used: rst on even is not enabled
-            
-            -- Status
-            sta_headerLocked_o               => sta_headeLocked_s,
-            sta_headerFlag_o                 => sta_headerFlag_s,
-
-            -- Data
-            dat_word_i                       => dat_downLinkWord_toPattSrch_s
-       );
-       
-            
-    dat_downLinkWord_toPattSrch_s <= dat_downLinkWord_fromMgt_s(24) & dat_downLinkWord_fromMgt_s(25) & dat_downLinkWord_fromMgt_s(26) & dat_downLinkWord_fromMgt_s(27) & 
-                                     dat_downLinkWord_fromMgt_s(16) & dat_downLinkWord_fromMgt_s(17) & dat_downLinkWord_fromMgt_s(18) & dat_downLinkWord_fromMgt_s(19) & 
-                                     dat_downLinkWord_fromMgt_s(8) & dat_downLinkWord_fromMgt_s(9) & dat_downLinkWord_fromMgt_s(10) & dat_downLinkWord_fromMgt_s(11) & 
-                                     dat_downLinkWord_fromMgt_s(3) & dat_downLinkWord_fromMgt_s(2) & dat_downLinkWord_fromMgt_s(1) & dat_downLinkWord_fromMgt_s(0);
-    
-    -- Downlink gearbox
-    rxGearbox_inst: rxGearbox
-        generic map(
-            c_clockRatio                  => 8,
-            c_inputWidth                  => 32,
-            c_outputWidth                 => 64
-        )
-        port map(
-            -- Clock and reset
-            clk_inClk_i                   => clk_mgtRxUsrclk_s,
-            clk_clkEn_i                   => sta_headerFlag_s,
-            clk_dataFlag_o                => clk_dataFlag_rxGb_s,
-            rst_gearbox_i                 => rst_datapath_s,
-
-            -- Data
-            dat_inFrame_i                 => dat_downLinkWord_fromMgt_s,
-            dat_outFrame_o                => dat_downLinkWord_fromGb_s,
-            
-            -- Status
-            sta_gbRdy_o                   => sta_rxgbxRdy_s
-        );
-    
-    --! Multicycle path configuration (downlink)
-    syncShiftRegDown_proc: process(sta_rxgbxRdy_s, clk_mgtRxUsrclk_s)
-        variable cnter  : integer range 0 to 7;
-    begin
-    
-        if sta_rxgbxRdy_s = '0' then
-              cnter              := 0;
-              RX_CLKEn_s         <= '0';
-              rst_downlinkInitDone_s <= '0';
-              
-        elsif rising_edge(clk_mgtRxUsrclk_s) then
-            if clk_dataFlag_rxGb_s = '1' then
-                cnter            := 0;
-                rst_downlinkInitDone_s <= '1';
-            elsif rst_downlinkInitDone_s = '1' then
-                cnter            := cnter + 1;
-            end if;
-            
-            RX_CLKEn_s           <= '0';
-            if cnter = 4 then
-                RX_CLKEn_s       <= rst_downlinkInitDone_s;
-            end if;              
-        end if;
-    end process;
-                                    
-    -- Uplink gearbox
-    txGearbox_inst: txGearbox
-        generic map (
-            c_clockRatio                  => 8,
-            c_inputWidth                  => 256,
-            c_outputWidth                 => 32
-        )
-        port map (
-            -- Clock and reset
-            clk_inClk_i                   => clk_mgtTxUsrclk_s, --RX_CLKEn_s,
-            clk_clkEn_i                   => uplinkClkEn_shgb_s, --'1',
-            clk_outClk_i                  => clk_mgtTxUsrclk_s,
-            
-            rst_gearbox_i                 => rst_uplinkGb_synch_s,
-
-            -- Data
-            dat_inFrame_i                 => dat_upLinkWord_toGb_pipeline_s,
-            dat_outFrame_o                => dat_upLinkWord_fromGb_s,
-            
-            -- Status
-            sta_gbRdy_o                   => sta_txGbRdy_s
-        );
-    
-    
-            
-    --! Multicycle path configuration
-    syncShiftRegUp_proc: process(rst_uplink_i, clk_mgtTxUsrclk_s)
-        variable cnter  : integer range 0 to 7;
-    begin
-    
-        if rst_uplink_i = '1' then
-              cnter                := 0;
-              uplinkClkEn_shgb_s   <= '0';
-              rst_uplinkGb_synch_s <= '1';
-              rst_uplinkInitDone_s <= '0';
-                            
-              upLinkData0_s       <= (others => '0');
-              upLinkData1_s       <= (others => '0');
-              upLinkData2_s       <= (others => '0');
-              upLinkData3_s       <= (others => '0');
-              upLinkData4_s       <= (others => '0');
-              upLinkData5_s       <= (others => '0');
-              upLinkData6_s       <= (others => '0');
-              upLinkDataIC_s      <= (others => '0');
-              upLinkDataEC_s      <= (others => '0');
-              
-        elsif rising_edge(clk_mgtTxUsrclk_s) then
-            if uplinkClkEn_i = '1' then
-                cnter            := 0;
-                
-                upLinkData0_s       <= upLinkData0;
-                upLinkData1_s       <= upLinkData1;
-                upLinkData2_s       <= upLinkData2;
-                upLinkData3_s       <= upLinkData3;
-                upLinkData4_s       <= upLinkData4;
-                upLinkData5_s       <= upLinkData5;
-                upLinkData6_s       <= upLinkData6;
-                upLinkDataIC_s      <= upLinkDataIC;
-                upLinkDataEC_s      <= upLinkDataEC;
-                
-                rst_uplinkInitDone_s <= '1';
-                
-            elsif rst_uplinkInitDone_s = '1' then
-                cnter            := cnter + 1;
-            end if;
-                        
-            uplinkClkEn_shgb_s           <= '0';
-            if cnter = 4 then
-                uplinkClkEn_shgb_s       <= '1';
-                rst_uplinkGb_synch_s     <= rst_uplinkGb_s or not(rst_uplinkInitDone_s);
-            end if;              
-        end if;
-    end process;
-    
-	uplinkClkEn_sh_s <= uplinkClkEn_i;
-    uplinkClk_o      <= clk_mgtTxUsrclk_s; --RX_CLKEn_s;
-    downlinkClk_o    <= clk_mgtRxUsrclk_s;
-    downlinkClkEn_o  <= RX_CLKEn_s; --RX_CLKEn_s;
-
-    --! Clocks for emulator
-    down_clkToEmul_proc: process(sta_mgtRxRdy_s, clk_mgtRxUsrclk_s)
-    begin    
-        if sta_mgtRxRdy_s = '0' then
-            clk_mgtRxUsrclkToEmul_s <= '0';
-        elsif rising_edge(clk_mgtRxUsrclk_s) then                
-            clk_mgtRxUsrclkToEmul_s <= '0';
-            if RX_CLKEn_s = '1' then
-                clk_mgtRxUsrclkToEmul_s <= '1';
-            end if;            
-        end if;
-    end process;
-    
-    up_clkToEmul_proc: process(rst_uplinkInitDone_s, clk_mgtTxUsrclk_s)
-    begin    
-        if rst_uplinkInitDone_s = '0' then
-            clk_mgtTxUsrclkToEmul_s <= '0';
-        elsif rising_edge(clk_mgtTxUsrclk_s) then                
-            clk_mgtTxUsrclkToEmul_s <= '0';
-            if uplinkClkEn_sh_s = '1' then
-                clk_mgtTxUsrclkToEmul_s <= '1';
-            end if;            
-        end if;
-    end process;
-    
-    -- LpGBT Model
-    LpGBT_Model_dataPath_inst: LpGBT_Model_dataPath
-        port map (
-            -- Clock
-            upClki                          => clk_mgtTxUsrclkToEmul_s, --RX_CLK40_s,
-            downClki                        => clk_mgtRxUsrclkToEmul_s,
-            downLinkDataPathEnable          => '1',
-            upLinkDataPathEnable            => '1', --RX_CLKEn_s,
-            
-            -- DownLink
-            downLinkFrame                   => dat_downLinkWord_fromGb_s(63 downto 0),
-            
-            downLinkDataGroup0              => downLinkDataGroup0_s,
-            downLinkDataGroup1              => downLinkDataGroup1_s,
-            downLinkDataEc                  => downLinkDataEc_s,
-            downLinkDataIc                  => downLinkDataIc_s,
-            downLinkHeader                  => open,
-            
-            downLinkBypassDeinterleaver     => downLinkBypassDeinterleaver,
-            downLinkBypassFECDecoder        => downLinkBypassFECDecoder,
-            downLinkBypassDescsrambler      => downLinkBypassDescsrambler,
-            
-            enableFECErrCounter             => enableFECErrCounter,
-            fecCorrectionCount              => fecCorrectionCount,
-            
-            upLinkData0                     => upLinkData0_s,
-            upLinkData1                     => upLinkData1_s,
-            upLinkData2                     => upLinkData2_s,
-            upLinkData3                     => upLinkData3_s,
-            upLinkData4                     => upLinkData4_s,
-            upLinkData5                     => upLinkData5_s,
-            upLinkData6                     => upLinkData6_s,
-            upLinkDataIC                    => upLinkDataIC,
-            upLinkDataEC                    => upLinkDataEC,
-
-            -- Uplink controll signals
-            upLinkScramblerBypass           => upLinkScramblerBypass,
-            upLinkScramblerReset            => rst_datapath_s,
-            upLinkFecBypass                 => upLinkFecBypass,
-            upLinkInterleaverBypass         => upLinkInterleaverBypass,
-            fecMode                         => fecMode,
-            txDataRate                      => txDataRate,
-
-            -- Uplink output data
-            upLinkFrame                     => dat_upLinkWord_fromLpGBT_s
-        );
-    
-    upLinkPipelineBeforeOversampling_proc: process(rst_uplink_i, clk_mgtTxUsrclk_s)
-      begin
-          if rst_uplink_i = '1' then
-              dat_upLinkWord_fromLpGBT_pipeline_s <= (others => '0');
-          elsif rising_edge(clk_mgtTxUsrclk_s) then
-              if uplinkClkEn_shgb_s = '1' then
-                dat_upLinkWord_fromLpGBT_pipeline_s <= dat_upLinkWord_fromLpGBT_s;
-              end if;
-          end if;      
-      end process;  
-              
-      upLinkPipelineAfterOversampling_proc: process(rst_uplink_i, clk_mgtTxUsrclk_s)
-        begin
-            if rst_uplink_i = '1' then
-                dat_upLinkWord_toGb_pipeline_s <= (others => '0');
-            elsif rising_edge(clk_mgtTxUsrclk_s) then
-                if uplinkClkEn_shgb_s = '1' then
-                  dat_upLinkWord_toGb_pipeline_s <= dat_upLinkWord_toGb_s;
-                end if;
-            end if;      
-        end process;  
-              
-    
-    -- Uplink oversampler
-    oversampler_gen: for i in 0 to 127 generate
-        oversampler_ph_gen: for j in 0 to 1 generate
-            dat_upLinkWord_toGb_s((i*2)+j)  <= dat_upLinkWord_fromLpGBT_pipeline_s(i) when txDataRate = '0' else
-                                               dat_upLinkWord_fromLpGBT_pipeline_s((i*2)+j);
-        end generate;
-    end generate;
-   
-    downLinkDataGroup0              <= downLinkDataGroup0_s;
-    downLinkDataGroup1              <= downLinkDataGroup1_s;
-    downLinkDataEc                  <= downLinkDataEc_s;
-    downLinkDataIc                  <= downLinkDataIc_s;
-     
-end behabioral;
---=================================================================================================--
---#################################################################################################--
---=================================================================================================--
\ No newline at end of file
diff --git a/TestBench_hw/lpgbtfpga_top.vhd b/TestBench_hw/lpgbtfpga_top.vhd
index 16ed548..b41e6be 100644
--- a/TestBench_hw/lpgbtfpga_top.vhd
+++ b/TestBench_hw/lpgbtfpga_top.vhd
@@ -89,171 +89,206 @@ architecture behavioral of lpgbtFpga_top is
     
     -- Components declaration
     COMPONENT LpGBT_FPGA_Downlink_datapath
-       PORT (
+       GENERIC(
+            MULTICYCLE_DELAY                : integer range 0 to 7 := 3              --! Multicycle delay
+       );
+       port (
             -- Clocks
-            donwlinkClk_i                    : in  std_logic;
-            downlinkClkEn_i                  : in  std_logic;
-            
+            donwlinkClk_i                    : in  std_logic;                       --! Downlink datapath clock (either 320 or 40MHz)
+            downlinkClkEn_i                  : in  std_logic;                       --! Clock enable (1 over 8 when encoding runs @ 320Mhz, '1' @ 40MHz)
             downlinkRst_i                    : in  std_logic;
             
             -- Down link
-            downlinkUserData_i               : in  std_logic_vector(31 downto 0);
-            downlinkEcData_i                 : in  std_logic_vector(1 downto 0);
-            downlinkIcData_i                 : in  std_logic_vector(1 downto 0);
+            downlinkUserData_i               : in  std_logic_vector(31 downto 0);   --! Downlink data (user)
+            downlinkEcData_i                 : in  std_logic_vector(1 downto 0);    --! Downlink EC field
+            downlinkIcData_i                 : in  std_logic_vector(1 downto 0);    --! Downlink IC field
             
-            downLinkFrame_o                  : out std_logic_vector(63 downto 0);
+            -- Output
+            downLinkFrame_o                  : out std_logic_vector(63 downto 0);   --! Downlink encoded frame (IC + EC + User Data + FEC)
             
-            downLinkBypassInterleaver_i      : in  std_logic;
-            downLinkBypassFECEncoder_i       : in  std_logic;
-            downLinkBypassScrambler_i        : in  std_logic;
+            -- Configuration
+            downLinkBypassInterleaver_i      : in  std_logic;                       --! Bypass downlink interleaver (test purpose only)
+            downLinkBypassFECEncoder_i       : in  std_logic;                       --! Bypass downlink FEC (test purpose only)
+            downLinkBypassScrambler_i        : in  std_logic;                       --! Bypass downlink scrambler (test purpose only)
             
-            downlinkReady_o                  : out std_logic
+            -- Status
+            downlinkReady_o                  : out std_logic                        --! Downlink ready status
        );   
     END COMPONENT;
     
     COMPONENT txGearbox
         generic (
-            c_clockRatio                  : integer;
-            c_inputWidth                  : integer;
-            c_outputWidth                 : integer
+            c_clockRatio                  : integer;                                                --! Clock ratio is clock_out / clock_in (shall be an integer)
+            c_inputWidth                  : integer;                                                --! Bus size of the input word
+            c_outputWidth                 : integer                                                 --! Bus size of the output word (Warning: c_clockRatio/(c_inputWidth/c_outputWidth) shall be an integer)
         );
         port (
             -- Clock and reset
-            clk_inClk_i                   : in  std_logic;
-            clk_clkEn_i                   : in  std_logic;
-            clk_outClk_i                  : in  std_logic;
-            
-            rst_gearbox_i                 : in  std_logic;
-
+            clk_inClk_i                   : in  std_logic;                                          --! Input clock (frame clock)
+            clk_clkEn_i                   : in  std_logic;                                          --! Input clock enable when multicycle path or '1'
+            clk_outClk_i                  : in  std_logic;                                          --! Output clock (from the MGT)
+    
+            rst_gearbox_i                 : in  std_logic;                                          --! Reset signal
+    
             -- Data
-            dat_inFrame_i                 : in  std_logic_vector((c_inputWidth-1) downto 0);
-            dat_outFrame_o                : out std_logic_vector((c_outputWidth-1) downto 0);
-            
+            dat_inFrame_i                 : in  std_logic_vector((c_inputWidth-1) downto 0);        --! Input data
+            dat_outFrame_o                : out std_logic_vector((c_outputWidth-1) downto 0);       --! Output data
+    
             -- Status
-            sta_gbRdy_o                   : out std_logic   
+            sta_gbRdy_o                   : out std_logic                                           --! Ready signal
         );
     END COMPONENT;
     
     COMPONENT LpGBT_FPGA_Uplink_datapath
        GENERIC(
-            DATARATE                         : integer range 0 to 2 := DYNAMIC;
-            FEC                              : integer range 0 to 2 := DYNAMIC
-       );                                    
-       PORT (                                
-            -- Clock and reset               
-            uplinkClk_i                      : in  std_logic;
-            uplinkClkInEn_i                  : in  std_logic;
-            uplinkClkOutEn_o                 : out std_logic;
-            uplinkRst_i                      : in  std_logic;
-
-            -- Input                         
-            uplinkFrame_i                    : in  std_logic_vector(255 downto 0);
-
-            -- Data                          
-            uplinkUserData_o                 : out std_logic_vector(229 downto 0);
-            uplinkEcData_o                   : out std_logic_vector(1 downto 0);
-            uplinkIcData_o                   : out std_logic_vector(1 downto 0);
-
-            -- Control                       
-            uplinkSelectDataRate_i           : in  std_logic;      -- '0': 5.12Gbps / '1': 10.24Gbps
-            uplinkSelectFEC_i                : in  std_logic;      -- '0': FEC5 / '1': FEC12
-            uplinkBypassInterleaver_i        : in  std_logic;  
-            uplinkBypassFECEncoder_i         : in  std_logic;
-            uplinkBypassScrambler_i          : in  std_logic;
-
-            uplinkReady_o                    : out std_logic
+            DATARATE                        : integer range 0 to 2 := DYNAMIC;       --! Datarate selection can be: DYNAMIC, DATARATE_10G24 or DATARATE_5G12
+            FEC                             : integer range 0 to 2 := DYNAMIC;       --! FEC selection can be: DYNAMIC, FEC5 or FEC12
+            MULTICYCLE_DELAY                : integer range 0 to 7 := 3              --! Multicycle delay
+       );
+       PORT (
+            -- Clock and reset
+            uplinkClk_i                     : in  std_logic;                         --! Input clock used to decode the received data
+            uplinkClkInEn_i                 : in  std_logic;                         --! Clock enable from Rx gearbox (Data flag)
+            uplinkClkOutEn_o                : out std_logic;                         --! Clock enable shifted from N clock cycle (clock data out - used by the user's logic)
+            uplinkRst_i                     : in  std_logic;                         --! Uplink datapath's reset signal
+            
+            -- Input
+            uplinkFrame_i                   : in  std_logic_vector(255 downto 0);    --! Input frame coming from the MGT -> Rx Gearbox. 
+                                                                                     --! In case of 5g12 datarate, the data bus of 128 bits shall be duplicated
+                                                                                     --! as followind: uplinkFrame_i <= data_5g12 & data_5g12
+            -- Data
+            uplinkUserData_o                : out std_logic_vector(229 downto 0);    --! User output (decoded data). The payload size varies depending on the
+                                                                                     --! datarate/FEC configuration: 
+                                                                                     --!     * *FEC5 / 5.12 Gbps*: 112bit
+                                                                                     --!     * *FEC12 / 5.12 Gbps*: 98bit
+                                                                                     --!     * *FEC5 / 10.24 Gbps*: 230bit
+                                                                                     --!     * *FEC12 / 10.24 Gbps*: 202bit
+            uplinkEcData_o                  : out std_logic_vector(1 downto 0);      --! EC field value received from the LpGBT
+            uplinkIcData_o                  : out std_logic_vector(1 downto 0);      --! IC field value received from the LpGBT
+    
+            -- Control
+            uplinkSelectDataRate_i          : in  std_logic;                         --! Datarate selection (only in DYNAMIC mode) -> '0': 5.12Gbps / '1': 10.24Gbps
+            uplinkSelectFEC_i               : in  std_logic;                         --! FEC selection (only in DYNAMIC mode) -> '0': FEC5 / '1': FEC12
+            uplinkBypassInterleaver_i       : in  std_logic;                         --! Bypass uplink interleaver (test purpose only)
+            uplinkBypassFECEncoder_i        : in  std_logic;                         --! Bypass uplink FEC (test purpose only)
+            uplinkBypassScrambler_i         : in  std_logic;                         --! Bypass uplink scrambler (test purpose only)
+                            
+            -- Status
+            uplinkDataCorrected_o           : out std_logic_vector(229 downto 0);    --! Flag allowing to know which bit(s) were toggled by the FEC
+            uplinkIcCorrected_o             : out std_logic_vector(1 downto 0);      --! Flag allowing to know which bit(s) of the IC field were toggled by the FEC
+            uplinkEcCorrected_o             : out std_logic_vector(1 downto 0);      --! Flag allowing to know which bit(s) of the EC field  were toggled by the FEC
+            uplinkReady_o                   : out std_logic                          --! Ready signal from the uplink decoder
        );  
     END COMPONENT;
     
-    COMPONENT mgt
-       PORT (
-           -- Clocks
-           MGT_REFCLK_i                 : in  std_logic;
-           MGT_FREEDRPCLK_i             : in  std_logic;
-                 
-           MGT_RXUSRCLK_o               : out std_logic;
-           MGT_TXUSRCLK_o               : out std_logic;
-           
-           -- Resets
-           MGT_TXRESET_i                : in  std_logic;
-           MGT_RXRESET_i                : in  std_logic;
-           
-           -- Control & Status
-           MGT_RXSlide_i                : in  std_logic;           
-           MGT_TXREADY_o                : out std_logic;
-           MGT_RXREADY_o                : out std_logic;
-                  
-           MGT_TX_ALIGNED_o             : out std_logic;
-           MGT_TX_PIPHASE_o             : out std_logic_vector(6 downto 0);
-           MGT_ENTXCALIBIN_i            : in  std_logic;
-           MGT_TXCALIB_i                : in  std_logic_vector(6 downto 0);
-                    
-           -- Data
-           MGT_USRWORD_i                : in  std_logic_vector(31 downto 0);
-           MGT_USRWORD_o                : out std_logic_vector(31 downto 0);
-           
-           RXn_i                        : in  std_logic;
-           RXp_i                        : in  std_logic;           
-           TXn_o                        : out std_logic;
-           TXp_o                        : out std_logic
+    COMPONENT mgt                         
+       port (
+            --=============--
+            -- Clocks      --
+            --=============--
+            MGT_REFCLK_i                 : in  std_logic;
+            MGT_FREEDRPCLK_i             : in  std_logic;
+            
+            MGT_RXUSRCLK_o               : out std_logic;
+            MGT_TXUSRCLK_o               : out std_logic;
+            
+            --=============--
+            -- Resets      --
+            --=============--
+            MGT_TXRESET_i                : in  std_logic;
+            MGT_RXRESET_i                : in  std_logic;
+            
+            --=============--
+            -- Control     --
+            --=============--
+            MGT_RXSlide_i                : in  std_logic;
+            
+            MGT_ENTXCALIBIN_i            : in  std_logic;
+            MGT_TXCALIB_i                : in  std_logic_vector(6 downto 0);
+            
+            --=============--
+            -- Status      --
+            --=============--
+            MGT_TXREADY_o                : out std_logic;
+            MGT_RXREADY_o                : out std_logic;
+            
+            MGT_TX_ALIGNED_o             : out std_logic;
+            MGT_TX_PIPHASE_o             : out std_logic_vector(6 downto 0);         
+            --==============--
+            -- Data         --
+            --==============--
+            MGT_USRWORD_i                : in  std_logic_vector(31 downto 0);
+            MGT_USRWORD_o                : out std_logic_vector(31 downto 0);
+            
+            --===============--
+            -- Serial intf.  --
+            --===============--
+            RXn_i                        : in  std_logic;
+            RXp_i                        : in  std_logic;
+            
+            TXn_o                        : out std_logic;
+            TXp_o                        : out std_logic   
        );
     END COMPONENT;
     
     COMPONENT mgt_framealigner
         generic (
-            c_wordRatio                      : integer;
-            c_headerPattern                  : std_logic_vector;
-            c_wordSize                       : integer;
-            c_allowedFalseHeader             : integer;
-            c_allowedFalseHeaderOverN        : integer;
-            c_requiredTrueHeader             : integer;
-            
-            c_resetOnEven                    : integer := 0;
-            c_bitslip_mindly                 : integer := 40
+            c_wordRatio                      : integer;             --! Word ration: frameclock / mgt_wordclock
+            c_headerPattern                  : std_logic_vector;    --! Header pattern specified by the standard
+            c_wordSize                       : integer;             --! Size of the MGT word
+            c_allowedFalseHeader             : integer;             --! Number of false header allowed to avoid unlock on frame error
+            c_allowedFalseHeaderOverN        : integer;             --! Number of header checked to know wether the lock is lost or not
+            c_requiredTrueHeader             : integer;             --! Number of true header required to go in locked state
+    
+            c_resetOnEven                    : integer := 0;        --! Reset on even bitslip (1: Enabled/ 0: disabled)
+            c_resetDuration                  : integer := 10;       --! Reset duration (in clk_freeRunningClk_i periods)
+            c_bitslip_mindly                 : integer := 40        --! Number of clock cycle required when asserting the bitslip signal
         );
-        port (     
+        port (
             -- Clock(s)
-            clk_pcsRx_i                      : in  std_logic;
-            clk_freeRunningClk_i             : in  std_logic;
-            
+            clk_pcsRx_i                      : in  std_logic;       --! MGT Wordclock
+            clk_freeRunningClk_i             : in  std_logic;       --! Free running clock for MGT reset (reset on even feature)
+    
             -- Reset(s)
-            rst_pattsearch_i                 : in  std_logic;
-            rst_mgtctrler_i                  : in  std_logic;
-            rst_rstoneven_o                  : out std_logic;
-            
+            rst_pattsearch_i                 : in  std_logic;       --! Rst the pattern search state machines
+            rst_mgtctrler_i                  : in  std_logic;       --! Rst the "reset on even" controller
+            rst_rstoneven_o                  : out std_logic;       --! Output reset asserted when reset is even or odd depending on cmd_rstonevenoroddsel_i
+    
             -- Control
-            cmd_bitslipCtrl_o                : out std_logic;
-            cmd_rstonevenoroddsel_i          : in  std_logic;
-            
+            cmd_bitslipCtrl_o                : out std_logic;       --! Bitslip signal to shift the parrallel word
+            cmd_rstonevenoroddsel_i          : in  std_logic;       --! Select how to reset the MGT (even or odd bitslip)
+    
             -- Status
-            sta_headerLocked_o               : out std_logic;
-            sta_headerFlag_o                 : out std_logic;
-            
+            sta_headerLocked_o               : out std_logic;       --! Status: header is locked
+            sta_headerFlag_o                 : out std_logic;       --! Status: header flag (1 pulse over c_wordRatio)
+    
             -- Data
-            dat_word_i                       : in  std_logic_vector(c_headerPattern'length-1 downto 0)
-       );  
+            dat_word_i                       : in  std_logic_vector(c_headerPattern'length-1 downto 0)  --! Header bits from the MGT word (compared with c_headerPattern)
+       );
     END COMPONENT;
     
     COMPONENT rxGearbox
         generic (
-            c_clockRatio                  : integer;
-            c_inputWidth                  : integer;
-            c_outputWidth                 : integer
+            c_clockRatio                  : integer;                                                         --! Clock ratio is clock_out / clock_in (shall be an integer)
+            c_inputWidth                  : integer;                                                         --! Bus size of the input word
+            c_outputWidth                 : integer;                                                         --! Bus size of the output word (Warning: c_clockRatio/(c_inputWidth/c_outputWidth) shall be an integer)
+            c_counterInitValue            : integer := 2                                                     --! Initialization value of the gearbox counter (3 for simulation / 2 for real HW)
         );
         port (
             -- Clock and reset
-            clk_inClk_i                   : in  std_logic;
-            clk_clkEn_i                   : in  std_logic;
+            clk_inClk_i                   : in  std_logic;                                                   --! Input clock (from MGT)
+            clk_outClk_i                  : in  std_logic;                                                   --! Output clock (from MGT)
+            clk_clkEn_i                   : in  std_logic;                                                   --! Clock enable (e.g.: header flag)
             clk_dataFlag_o                : out std_logic;
             
-            rst_gearbox_i                 : in  std_logic;
-
-            -- Data
-            dat_inFrame_i                 : in  std_logic_vector((c_inputWidth-1) downto 0);
-            dat_outFrame_o                : out std_logic_vector((c_inputWidth*c_clockRatio)-1 downto 0);
+            rst_gearbox_i                 : in  std_logic;                                                   --! Reset signal
             
+            -- Data
+            dat_inFrame_i                 : in  std_logic_vector((c_inputWidth-1) downto 0);                 --! Input data from MGT
+            dat_outFrame_o                : out std_logic_vector((c_inputWidth*c_clockRatio)-1 downto 0);    --! Output data, concatenation of word when the word ratio is lower than clock ration (e.g.: out <= word & word;)
+    
             -- Status
-            sta_gbRdy_o                   : out std_logic    
+            sta_gbRdy_o                   : out std_logic                                                    --! Ready signal
         );
     END COMPONENT;
     
@@ -323,7 +358,7 @@ begin                 --========####   Architecture Body   ####========--
     -- Downlink reset scheme:
     --      Step 1: Reset the MGT Tx (using downlinkRst_i signal)
     --      Step 2: Tx gearbox is reseted by the sta_mgtTxRdy_s signal from the MGT
-    --      Step 3: Tx datapath is reseted by the sta_txGbRdy_s signal from the tx Gearbox
+    --      Step 3: Tx datapath is reseted by the sta_txGbRdy_s signal from the tx Gearbox    
     rst_txgearbox_s             <= not(sta_mgtTxRdy_s);
     downlinkRst_to_datapath_s   <= not(sta_txGbRdy_s);
     
@@ -401,6 +436,7 @@ begin                 --========####   Architecture Body   ####========--
         port map (
             -- Clock and reset
             clk_inClk_i                   => clk_mgtRxUsrclk_s,
+            clk_outClk_i                  => clk_mgtRxUsrclk_s,
             clk_clkEn_i                   => sta_headerFlag_10g24_s,
             clk_dataFlag_o                => clk_dataFlag_rxgearbox_10g24_s,
             
@@ -423,6 +459,7 @@ begin                 --========####   Architecture Body   ####========--
         port map (
             -- Clock and reset
             clk_inClk_i                   => clk_mgtRxUsrclk_s,
+            clk_outClk_i                  => clk_mgtRxUsrclk_s,
             clk_clkEn_i                   => sta_headerFlag_5g12_s,
             clk_dataFlag_o                => clk_dataFlag_rxgearbox_5g12_s,
             
diff --git a/TestBench_hw/prbs/prbs7_16b_checker.vhd b/TestBench_hw/prbs/prbs7_16b_checker.vhd
new file mode 100644
index 0000000..cc0fae7
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_16b_checker.vhd
@@ -0,0 +1,115 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_16b_checker is
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;
+        prbs_word_i      : in  std_logic_vector(15 downto 0);
+        err_o            : out std_logic_vector(15 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_16b_checker;
+
+architecture rtl of prbs7_16b_checker is
+    signal feedback_reg         : std_logic_vector(15 downto 0);
+    signal err_s                : std_logic_vector(15 downto 0);
+    
+    type checker_state_T is (waitForLock, Locked);
+    signal status : checker_state_T;
+                                
+    constant STATS_CONFIG_c     : integer := 10;
+    signal cnt_stats            : integer range 0 to STATS_CONFIG_c;
+
+begin
+
+    checker_fsm_proc: process(reset_i, clk_i)
+    begin
+        if reset_i = '1' then
+            status <= waitForLock;
+            cnt_stats <= 0;
+            
+        elsif rising_edge(clk_i) then
+            case status is
+                when waitForLock =>                                
+                    if cnt_stats= STATS_CONFIG_c then
+                        status <= Locked;
+                    else
+                        if err_s = x"0000" and feedback_reg /= x"0000" then
+                            cnt_stats <= cnt_stats + 1;
+                        else
+                            cnt_stats <= 0;
+                        end if;
+                    end if;
+                
+                when Locked => null;
+            end case;
+        end if;
+    end process;
+    
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+    prbs7_proc: process(reset_i, clk_i)
+        variable cnter : integer range 0 to 1;
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= (others => '0');
+            err_s        <= x"0000";
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+                
+                err_s(0) <= prbs_word_i(0)   xor (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                err_s(1) <= prbs_word_i(1)   xor (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                err_s(2) <= prbs_word_i(2)   xor (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(3) <= prbs_word_i(3)   xor (feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(4) <= prbs_word_i(4)   xor (feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                err_s(5) <= prbs_word_i(5)   xor (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                err_s(6) <= prbs_word_i(6)   xor (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                err_s(7) <= prbs_word_i(7)   xor (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                err_s(8) <= prbs_word_i(8)   xor (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(9) <= prbs_word_i(9)   xor (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(10) <= prbs_word_i(10) xor (feedback_reg(1) xor feedback_reg(0));
+                err_s(11) <= prbs_word_i(11) xor (feedback_reg(2) xor feedback_reg(1));
+                err_s(12) <= prbs_word_i(12) xor (feedback_reg(3) xor feedback_reg(2));
+                err_s(13) <= prbs_word_i(13) xor (feedback_reg(4) xor feedback_reg(3));
+                err_s(14) <= prbs_word_i(14) xor (feedback_reg(5) xor feedback_reg(4));
+                err_s(15) <= prbs_word_i(15) xor (feedback_reg(6) xor feedback_reg(5)); 
+                
+                if status /= Locked then                    
+                    feedback_reg <= prbs_word_i;
+                else
+                    feedback_reg(0) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                    feedback_reg(1) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                    feedback_reg(2) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                    feedback_reg(3) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                    feedback_reg(4) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                    feedback_reg(5) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                    feedback_reg(6) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                    feedback_reg(7) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                    feedback_reg(8) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                    feedback_reg(9) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                    feedback_reg(10) <= feedback_reg(1) xor feedback_reg(0);
+                    feedback_reg(11) <= feedback_reg(2) xor feedback_reg(1);
+                    feedback_reg(12) <= feedback_reg(3) xor feedback_reg(2);
+                    feedback_reg(13) <= feedback_reg(4) xor feedback_reg(3);
+                    feedback_reg(14) <= feedback_reg(5) xor feedback_reg(4);
+                    feedback_reg(15) <= feedback_reg(6) xor feedback_reg(5);
+                end if;
+
+                
+            end if;
+            
+        end if;
+
+    end process;
+    
+    err_o <= err_s;
+    rdy_o <= '1' when status = Locked else '0';
+    
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_1b_checker.vhd b/TestBench_hw/prbs/prbs7_1b_checker.vhd
new file mode 100644
index 0000000..77d4505
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_1b_checker.vhd
@@ -0,0 +1,79 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_1b_checker is
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;
+        prbs_word_i      : in  std_logic;
+        err_o            : out std_logic_vector(3 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_1b_checker;
+
+architecture rtl of prbs7_1b_checker is
+    signal feedback_reg         : std_logic_vector(7 downto 0);
+    signal err_s                : std_logic_vector(3 downto 0);
+    
+    type checker_state_T is (waitForLock, Locked);
+    signal status : checker_state_T;
+                                
+    constant STATS_CONFIG_c     : integer := 10;
+    signal cnt_stats            : integer range 0 to STATS_CONFIG_c;
+begin
+    
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+    checker_fsm_proc: process(reset_i, clk_i)
+    begin
+        if reset_i = '1' then
+            status <= waitForLock;
+            cnt_stats <= 0;
+            
+        elsif rising_edge(clk_i) then
+            case status is
+                when waitForLock =>
+                    if err_s = "0000" and feedback_reg /= x"00" then
+                        cnt_stats <= cnt_stats + 1;
+                    else
+                        cnt_stats <= 0;
+                    end if;
+                    
+                    if cnt_stats= STATS_CONFIG_c then
+                        status <= Locked;
+                    end if;
+                
+                when Locked => null;
+            end case;
+        end if;
+    end process;
+    
+    prbs7_proc: process(reset_i, clk_i)
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= (others => '0');
+            err_s        <= "0000";
+
+        elsif rising_edge(clk_i) then
+            if clken_i = '1' then
+                err_s(0) <= (feedback_reg(6) xor feedback_reg(5)) xor prbs_word_i;  
+                err_s(3 downto 1) <= "000";
+
+                feedback_reg(7 downto 1) <= feedback_reg(6 downto 0);
+                if status /= Locked then                    
+                    feedback_reg(0) <= prbs_word_i;
+                else
+                    feedback_reg(0) <= (feedback_reg(5) xor feedback_reg(6));
+                end if;
+            end if;
+        end if;
+    end process;
+            
+    err_o <= err_s;
+    rdy_o <= '1' when status = Locked else '0';
+            
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_1b_generator.vhd b/TestBench_hw/prbs/prbs7_1b_generator.vhd
new file mode 100644
index 0000000..15b54ca
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_1b_generator.vhd
@@ -0,0 +1,86 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_1b_generator is
+    generic(
+        INIT_c           : in std_logic_vector(7 downto 0)
+    );
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;                 
+        err_pattern_i    : in  std_logic_vector(7 downto 0);
+        rep_delay_i      : in  std_logic_vector(23 downto 0);
+        prbs_word_o      : out std_logic;
+        rdy_o            : out std_logic
+    );
+end prbs7_1b_generator;
+
+architecture rtl of prbs7_1b_generator is
+    signal feedback_reg         : std_logic_vector(7 downto 0) := INIT_c;
+    signal prbs_word_s          : std_logic;
+    signal err_cnter_s          : unsigned(24 downto 0);
+    signal inject_error_s       : std_logic;
+    signal onceinject_done_s    : std_logic;
+    signal err_patt_pos_s       : integer range 0 to 7;
+    signal err_pattern_s        : std_logic;
+
+begin
+
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+
+    prbs7_proc: process(reset_i, clk_i)
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= INIT_c;
+            prbs_word_s  <= '0';
+            rdy_o        <= '0';
+            err_cnter_s   <= (others => '0');
+            err_pattern_s <= '0';
+            err_patt_pos_s <= 0;
+
+        elsif rising_edge(clk_i) then
+            if clken_i = '1' then
+                rdy_o        <= '1';                
+                prbs_word_s <= feedback_reg(6) xor feedback_reg(5);
+                feedback_reg <= feedback_reg(6 downto 0) & (feedback_reg(6) xor feedback_reg(5));
+                                                
+                err_pattern_s <= '0';
+                
+                if err_pattern_i /= x"00" then
+                    if std_logic_vector(err_cnter_s) = rep_delay_i then
+                        if rep_delay_i /= x"000000" or onceinject_done_s = '0' then
+                            err_pattern_s     <= err_pattern_i(err_patt_pos_s);
+                            if err_patt_pos_s = 7 then
+                                err_patt_pos_s    <= 0;
+                                err_cnter_s       <= (others => '0');
+                                onceinject_done_s <= '1';                                
+                            else
+                                err_patt_pos_s <= err_patt_pos_s+1;
+                            end if;
+                        end if;
+                    else
+                        if err_patt_pos_s = 7 then
+                            err_cnter_s <= err_cnter_s + 1;
+                            err_patt_pos_s <= 0;
+                        else
+                            err_patt_pos_s <= err_patt_pos_s + 1;
+                        end if;
+                    end if;
+                else
+                    err_cnter_s       <= (others => '0');
+                    onceinject_done_s <= '0';
+                    err_patt_pos_s    <= 0;
+                end if;
+            end if;
+        end if;
+
+    end process;
+
+    prbs_word_o   <= prbs_word_s xor err_pattern_s;
+
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_2b_checker.vhd b/TestBench_hw/prbs/prbs7_2b_checker.vhd
new file mode 100644
index 0000000..90fee2c
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_2b_checker.vhd
@@ -0,0 +1,90 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_2b_checker is
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        
+        clken_i          : in  std_logic;
+        prbs_word_i      : in  std_logic_vector(1 downto 0);
+        err_o            : out std_logic_vector(3 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_2b_checker;
+
+architecture rtl of prbs7_2b_checker is
+    signal feedback_reg         : std_logic_vector(7 downto 0); 
+    signal err_s                : std_logic_vector(3 downto 0);
+    
+    type checker_state_T is (waitForLock, Locked);
+    signal status : checker_state_T;
+                                
+    constant STATS_CONFIG_c     : integer := 10;                          
+    signal cnt_stats            : integer range 0 to STATS_CONFIG_c;
+begin
+
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+    checker_fsm_proc: process(reset_i, clk_i)
+    begin
+        if reset_i = '1' then
+            status <= waitForLock;
+            cnt_stats <= 0;
+            
+        elsif rising_edge(clk_i) then
+            case status is
+                when waitForLock =>
+                    
+                    if cnt_stats= STATS_CONFIG_c then
+                        status <= Locked;
+                    else                    
+                        if err_s = "0000" and feedback_reg /= x"00" then
+                            cnt_stats <= cnt_stats + 1;
+                        else
+                            cnt_stats <= 0;
+                        end if;
+                    end if;
+                
+                when Locked => null;
+            end case;
+        end if;
+    end process;
+    
+    prbs7_proc: process(reset_i, clk_i)
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= (others => '0');
+            err_s        <= "0000";
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+                
+                err_s(0) <= (feedback_reg(4) xor feedback_reg(5)) xor prbs_word_i(0);
+                err_s(1) <= (feedback_reg(6) xor feedback_reg(5)) xor prbs_word_i(1);
+                err_s(2) <= '0';
+                err_s(3) <= '0';
+                
+                
+                feedback_reg(7 downto 2)  <= feedback_reg(5 downto 0);
+                if status /= Locked then
+                    feedback_reg(0) <= prbs_word_i(0);
+                    feedback_reg(1) <= prbs_word_i(1);
+                else
+                    feedback_reg(0) <= (feedback_reg(4) xor feedback_reg(5));
+                    feedback_reg(1) <= (feedback_reg(6) xor feedback_reg(5));
+                end if;
+            end if;
+            
+        end if;
+
+    end process;
+    
+    err_o <= err_s;
+    rdy_o <= '1' when status = Locked else '0';
+    
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_2b_generator.vhd b/TestBench_hw/prbs/prbs7_2b_generator.vhd
new file mode 100644
index 0000000..d38ab5b
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_2b_generator.vhd
@@ -0,0 +1,103 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_2b_generator is
+    generic(
+        INIT_c           : in std_logic_vector(7 downto 0)
+    );
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+                                        
+        err_pattern_i    : in  std_logic_vector(7 downto 0);
+        rep_delay_i      : in  std_logic_vector(23 downto 0);
+        
+        clken_i          : in  std_logic;
+        prbs_word_o      : out std_logic_vector(1 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_2b_generator;
+
+architecture rtl of prbs7_2b_generator is
+    signal feedback_reg         : std_logic_vector(7 downto 0) := INIT_c;
+    signal prbs_word_s          : std_logic_vector(1 downto 0);
+    signal err_cnter_s          : unsigned(24 downto 0);
+    signal inject_error_s       : std_logic;
+    signal onceinject_done_s    : std_logic;
+    signal err_patt_pos_s       : integer range 0 to 6;
+    signal err_pattern_s        : std_logic_vector(1 downto 0);
+
+begin
+
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+
+    prbs7_proc: process(reset_i, clk_i)
+        variable cnter : integer range 0 to 1;
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= INIT_c;
+            prbs_word_s  <= (others => '0');
+            rdy_o        <= '0';
+            err_cnter_s   <= (others => '0');
+            err_pattern_s <= (others => '0');
+            err_patt_pos_s <= 0;
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+                rdy_o        <= '1';
+                
+                prbs_word_s(0) <= feedback_reg(5) xor feedback_reg(4);
+                prbs_word_s(1) <= feedback_reg(6) xor feedback_reg(5);
+
+                feedback_reg(7 downto 2)  <= feedback_reg(5 downto 0);
+                feedback_reg(0) <= feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(1) <= feedback_reg(6) xor feedback_reg(5);
+                                
+                err_pattern_s <= "00";
+                
+                if err_pattern_i /= x"00" then
+                    if std_logic_vector(err_cnter_s) = rep_delay_i then
+                        if rep_delay_i /= x"000000" or onceinject_done_s = '0' then
+                            err_pattern_s     <= err_pattern_i(err_patt_pos_s+1 downto err_patt_pos_s);
+                            if err_patt_pos_s = 6 then
+                                err_patt_pos_s    <= 0;
+                                err_cnter_s       <= (others => '0');
+                                onceinject_done_s <= '1';
+                                
+                            elsif err_patt_pos_s = 2 then
+                                err_patt_pos_s    <= 4;
+                                
+                            elsif err_patt_pos_s = 4 then
+                                err_patt_pos_s    <= 6;
+                                
+                            else
+                                err_patt_pos_s <= 2;
+                            end if;
+                        end if;
+                    else
+                        if err_patt_pos_s = 6 then
+                            err_cnter_s <= err_cnter_s + 1;
+                            err_patt_pos_s <= 0;
+                        else
+                            err_patt_pos_s <= err_patt_pos_s + 2;
+                        end if;
+                    end if;
+                else
+                    err_cnter_s       <= (others => '0');
+                    onceinject_done_s <= '0';
+                    err_patt_pos_s    <= 0;
+                end if;
+            end if;
+            
+        end if;
+
+    end process;
+
+    prbs_word_o   <= prbs_word_s xor err_pattern_s;
+
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_32b_checker.vhd b/TestBench_hw/prbs/prbs7_32b_checker.vhd
new file mode 100644
index 0000000..040a0ec
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_32b_checker.vhd
@@ -0,0 +1,147 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_32b_checker is
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;
+        prbs_word_i      : in  std_logic_vector(31 downto 0);
+        err_o            : out std_logic_vector(31 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_32b_checker;
+
+architecture rtl of prbs7_32b_checker is
+    signal feedback_reg         : std_logic_vector(31 downto 0);
+    signal err_s                : std_logic_vector(31 downto 0);
+    
+    type checker_state_T is (waitForLock, Locked);
+    signal status : checker_state_T;
+                                
+    constant STATS_CONFIG_c     : integer := 10;
+    signal cnt_stats            : integer range 0 to STATS_CONFIG_c;
+
+begin
+
+    checker_fsm_proc: process(reset_i, clk_i)
+    begin
+        if reset_i = '1' then
+            status <= waitForLock;
+            cnt_stats <= 0;
+            
+        elsif rising_edge(clk_i) then
+            case status is
+                when waitForLock =>                                
+                    if cnt_stats= STATS_CONFIG_c then
+                        status <= Locked;
+                    else
+                        if err_s = x"00000000" and feedback_reg /= x"00000000" then
+                            cnt_stats <= cnt_stats + 1;
+                        else
+                            cnt_stats <= 0;
+                        end if;
+                    end if;
+                
+                when Locked => null;
+            end case;
+        end if;
+    end process;
+    
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+    prbs7_proc: process(reset_i, clk_i)
+        variable cnter : integer range 0 to 1;
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= (others => '0');
+            err_s        <= x"00000000";
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+                
+                err_s(0) <= prbs_word_i(0) xor (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(1) <= prbs_word_i(1) xor (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(2) <= prbs_word_i(2) xor (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                err_s(3) <= prbs_word_i(3) xor (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                err_s(4) <= prbs_word_i(4) xor (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                err_s(5) <= prbs_word_i(5) xor (feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                err_s(6) <= prbs_word_i(6) xor (feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(7) <= prbs_word_i(7) xor (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(8) <= prbs_word_i(8) xor (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                err_s(9) <= prbs_word_i(9) xor (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                err_s(10) <= prbs_word_i(10) xor (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                err_s(11) <= prbs_word_i(11) xor (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                err_s(12) <= prbs_word_i(12) xor (feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(13) <= prbs_word_i(13) xor (feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(14) <= prbs_word_i(14) xor (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                err_s(15) <= prbs_word_i(15) xor (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                err_s(16) <= prbs_word_i(16) xor (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                err_s(17) <= prbs_word_i(17) xor (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                err_s(18) <= prbs_word_i(18) xor (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(19) <= prbs_word_i(19) xor (feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(20) <= prbs_word_i(20) xor (feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                err_s(21) <= prbs_word_i(21) xor (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                err_s(22) <= prbs_word_i(22) xor (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                err_s(23) <= prbs_word_i(23) xor (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                err_s(24) <= prbs_word_i(24) xor (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(25) <= prbs_word_i(25) xor (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(26) <= prbs_word_i(26) xor (feedback_reg(1) xor feedback_reg(0));
+                err_s(27) <= prbs_word_i(27) xor (feedback_reg(2) xor feedback_reg(1));
+                err_s(28) <= prbs_word_i(28) xor (feedback_reg(3) xor feedback_reg(2));
+                err_s(29) <= prbs_word_i(29) xor (feedback_reg(4) xor feedback_reg(3));
+                err_s(30) <= prbs_word_i(30) xor (feedback_reg(5) xor feedback_reg(4));
+                err_s(31) <= prbs_word_i(31) xor (feedback_reg(6) xor feedback_reg(5));
+                
+                if status /= Locked then                    
+                    feedback_reg <= prbs_word_i;
+                else
+                    feedback_reg(0) <= (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(1) <= (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                    feedback_reg(2) <= (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                    feedback_reg(3) <= (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                    feedback_reg(4) <= (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                    feedback_reg(5) <= (feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                    feedback_reg(6) <= (feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(7) <= (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                    feedback_reg(8) <= (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                    feedback_reg(9) <= (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                    feedback_reg(10) <= (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                    feedback_reg(11) <= (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                    feedback_reg(12) <= (feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(13) <= (feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                    feedback_reg(14) <= (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                    feedback_reg(15) <= (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                    feedback_reg(16) <= (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                    feedback_reg(17) <= (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                    feedback_reg(18) <= (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(19) <= (feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                    feedback_reg(20) <= (feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0));
+                    feedback_reg(21) <= (feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1));
+                    feedback_reg(22) <= (feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2));
+                    feedback_reg(23) <= (feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3));
+                    feedback_reg(24) <= (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(25) <= (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                    feedback_reg(26) <= (feedback_reg(1) xor feedback_reg(0));
+                    feedback_reg(27) <= (feedback_reg(2) xor feedback_reg(1));
+                    feedback_reg(28) <= (feedback_reg(3) xor feedback_reg(2));
+                    feedback_reg(29) <= (feedback_reg(4) xor feedback_reg(3));
+                    feedback_reg(30) <= (feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(31) <= (feedback_reg(6) xor feedback_reg(5));
+                end if;
+
+                
+            end if;
+            
+        end if;
+
+    end process;
+    
+    err_o <= err_s;
+    rdy_o <= '1' when status = Locked else '0';
+    
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_4b_checker.vhd b/TestBench_hw/prbs/prbs7_4b_checker.vhd
new file mode 100644
index 0000000..5bccc3f
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_4b_checker.vhd
@@ -0,0 +1,94 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_4b_checker is
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;
+        prbs_word_i      : in  std_logic_vector(3 downto 0);
+        err_o            : out std_logic_vector(3 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_4b_checker;
+
+architecture rtl of prbs7_4b_checker is
+    signal feedback_reg         : std_logic_vector(7 downto 0);
+    signal err_s                : std_logic_vector(3 downto 0);
+    
+    type checker_state_T is (waitForLock, Locked);
+    signal status : checker_state_T;
+                                
+    constant STATS_CONFIG_c     : integer := 10;
+    signal cnt_stats            : integer range 0 to STATS_CONFIG_c;
+begin
+
+    checker_fsm_proc: process(reset_i, clk_i)
+    begin
+        if reset_i = '1' then
+            status <= waitForLock;
+            cnt_stats <= 0;
+            
+        elsif rising_edge(clk_i) then
+            case status is
+                when waitForLock =>                                
+                    if cnt_stats= STATS_CONFIG_c then
+                        status <= Locked;
+                    else
+                        if err_s = "0000" and feedback_reg /= x"00" then
+                            cnt_stats <= cnt_stats + 1;
+                        else
+                            cnt_stats <= 0;
+                        end if;
+                    end if;
+                
+                when Locked => null;
+            end case;
+        end if;
+    end process;
+    
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+    prbs7_proc: process(reset_i, clk_i)
+        variable cnter : integer range 0 to 1;
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= (others => '0');
+            err_s        <= "0000";
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+                
+                err_s(0) <= (feedback_reg(2) xor feedback_reg(3)) xor prbs_word_i(0);
+                err_s(1) <= (feedback_reg(3) xor feedback_reg(4)) xor prbs_word_i(1);
+                err_s(2) <= (feedback_reg(4) xor feedback_reg(5)) xor prbs_word_i(2);
+                err_s(3) <= (feedback_reg(5) xor feedback_reg(6)) xor prbs_word_i(3);
+                
+                feedback_reg(7 downto 4)  <= feedback_reg(3 downto 0);
+                if status /= Locked then                    
+                    feedback_reg(0) <= prbs_word_i(0);
+                    feedback_reg(1) <= prbs_word_i(1);
+                    feedback_reg(2) <= prbs_word_i(2);
+                    feedback_reg(3) <= prbs_word_i(3);
+                else
+                    feedback_reg(0) <= (feedback_reg(2) xor feedback_reg(3));
+                    feedback_reg(1) <= (feedback_reg(3) xor feedback_reg(4));
+                    feedback_reg(2) <= (feedback_reg(4) xor feedback_reg(5));
+                    feedback_reg(3) <= (feedback_reg(5) xor feedback_reg(6));
+                end if;
+
+                
+            end if;
+            
+        end if;
+
+    end process;
+    
+    err_o <= err_s;
+    rdy_o <= '1' when status = Locked else '0';
+    
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_4b_generator.vhd b/TestBench_hw/prbs/prbs7_4b_generator.vhd
new file mode 100644
index 0000000..740265f
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_4b_generator.vhd
@@ -0,0 +1,100 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_4b_generator is
+    generic(
+        INIT_c           : in std_logic_vector(7 downto 0)
+    );
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;
+                        
+        err_pattern_i    : in  std_logic_vector(7 downto 0);
+        rep_delay_i      : in  std_logic_vector(23 downto 0);
+                
+        prbs_word_o      : out std_logic_vector(3 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_4b_generator;
+
+architecture rtl of prbs7_4b_generator is
+    signal feedback_reg         : std_logic_vector(7 downto 0) := INIT_c;
+    signal prbs_word_s          : std_logic_vector(3 downto 0);
+    signal err_pattern_s        : std_logic_vector(3 downto 0);
+    signal err_cnter_s          : unsigned(24 downto 0);
+    signal inject_error_s       : std_logic;
+    signal onceinject_done_s    : std_logic;
+    signal err_patt_pos_s       : integer range 0 to 4;
+begin
+
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+
+    prbs7_proc: process(reset_i, clk_i)
+        variable cnter : integer range 0 to 1;
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= INIT_c;
+            prbs_word_s  <= (others => '0');
+            rdy_o        <= '0';
+            err_cnter_s   <= (others => '0');
+            err_pattern_s <= (others => '0');
+            err_patt_pos_s <= 0;
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+                rdy_o        <= '1';
+                                
+                prbs_word_s(0) <= feedback_reg(2) xor feedback_reg(3);
+                prbs_word_s(1) <= feedback_reg(3) xor feedback_reg(4);
+                prbs_word_s(2) <= feedback_reg(4) xor feedback_reg(5);
+                prbs_word_s(3) <= feedback_reg(6) xor feedback_reg(5);
+
+                feedback_reg(7 downto 4)  <= feedback_reg(3 downto 0);
+                feedback_reg(0) <= feedback_reg(2) xor feedback_reg(3);
+                feedback_reg(1) <= feedback_reg(3) xor feedback_reg(4);
+                feedback_reg(2) <= feedback_reg(4) xor feedback_reg(5);
+                feedback_reg(3) <= feedback_reg(6) xor feedback_reg(5);
+                
+                err_pattern_s <= x"0";
+                
+                if err_pattern_i /= x"00" then
+                    if std_logic_vector(err_cnter_s) = rep_delay_i then
+                        if rep_delay_i /= x"000000" or onceinject_done_s = '0' then
+                            err_pattern_s     <= err_pattern_i(err_patt_pos_s+3 downto err_patt_pos_s);
+                            if err_patt_pos_s = 4 then
+                                err_patt_pos_s    <= 0;
+                                err_cnter_s       <= (others => '0');
+                                onceinject_done_s <= '1';
+                            else
+                                err_patt_pos_s <= 4;
+                            end if;
+                        end if;
+                    else
+                        if err_patt_pos_s = 4 then
+                            err_cnter_s <= err_cnter_s + 1;
+                            err_patt_pos_s <= 0;
+                        else
+                            err_patt_pos_s <= 4;
+                        end if;                        
+                    end if;
+                else
+                    err_cnter_s       <= (others => '0');
+                    onceinject_done_s <= '0';
+                    err_patt_pos_s    <= 0;
+                end if;
+                
+            end if;
+            
+        end if;
+
+    end process;
+
+    prbs_word_o   <= prbs_word_s xor err_pattern_s;
+
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_64b_generator.vhd b/TestBench_hw/prbs/prbs7_64b_generator.vhd
new file mode 100644
index 0000000..a72ee5d
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_64b_generator.vhd
@@ -0,0 +1,117 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_64b_generator is
+    generic(
+        INIT_c                  : in std_logic_vector(63 downto 0)
+    );
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clk_enable_i     : in  std_logic;
+
+        prbs_word_o      : out std_logic_vector(63 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_64b_generator;
+
+architecture rtl of prbs7_64b_generator is
+    signal feedback_reg         : std_logic_vector(63 downto 0) := INIT_c;
+    signal prbs_word_s          : std_logic_vector(63 downto 0) := INIT_c;
+
+begin
+
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+
+    prbs7_proc: process(reset_i, clk_i)
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= INIT_c;
+            prbs_word_s  <= INIT_c;
+            rdy_o        <= '0';
+
+        elsif rising_edge(clk_i) then
+
+            if clk_enable_i = '1' then
+
+                prbs_word_s  <= feedback_reg;
+                rdy_o        <= '1';
+
+                feedback_reg(0) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(1) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(2) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(3) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(4) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(5) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(6) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(7) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(8) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(9) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(10) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(11) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(12) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(13) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(14) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(15) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(16) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(17) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(18) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(19) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(20) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(21) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(22) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(23) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(24) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(25) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(26) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(27) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(28) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(29) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(30) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(31) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(32) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(33) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(34) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(35) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(36) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(37) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(38) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(39) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(40) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(41) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(42) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(43) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(44) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(45) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(46) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(47) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(48) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(49) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(50) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(51) <= feedback_reg(1) xor feedback_reg(0) xor feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(52) <= feedback_reg(2) xor feedback_reg(1) xor feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(53) <= feedback_reg(3) xor feedback_reg(2) xor feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(54) <= feedback_reg(4) xor feedback_reg(3) xor feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(55) <= feedback_reg(5) xor feedback_reg(4) xor feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(56) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(57) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(58) <= feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(59) <= feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(60) <= feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(61) <= feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(62) <= feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(63) <= feedback_reg(6) xor feedback_reg(5);
+
+            end if;
+
+        end if;
+
+    end process;
+
+    prbs_word_o   <= prbs_word_s;
+
+end rtl;
diff --git a/TestBench_hw/prbs/prbs7_8b_checker.vhd b/TestBench_hw/prbs/prbs7_8b_checker.vhd
new file mode 100644
index 0000000..57f45dd
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_8b_checker.vhd
@@ -0,0 +1,99 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_8b_checker is
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;
+        prbs_word_i      : in  std_logic_vector(7 downto 0);
+        err_o            : out std_logic_vector(7 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_8b_checker;
+
+architecture rtl of prbs7_8b_checker is
+    signal feedback_reg         : std_logic_vector(7 downto 0);
+    signal err_s                : std_logic_vector(7 downto 0);
+    
+    type checker_state_T is (waitForLock, Locked);
+    signal status : checker_state_T;
+                                
+    constant STATS_CONFIG_c     : integer := 10;
+    signal cnt_stats            : integer range 0 to STATS_CONFIG_c;
+
+begin
+
+    checker_fsm_proc: process(reset_i, clk_i)
+    begin
+        if reset_i = '1' then
+            status <= waitForLock;
+            cnt_stats <= 0;
+            
+        elsif rising_edge(clk_i) then
+            case status is
+                when waitForLock =>                                
+                    if cnt_stats= STATS_CONFIG_c then
+                        status <= Locked;
+                    else
+                        if err_s = x"00" and feedback_reg /= x"00" then
+                            cnt_stats <= cnt_stats + 1;
+                        else
+                            cnt_stats <= 0;
+                        end if;
+                    end if;
+                
+                when Locked => null;
+            end case;
+        end if;
+    end process;
+    
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+    prbs7_proc: process(reset_i, clk_i)
+        variable cnter : integer range 0 to 1;
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= (others => '0');
+            err_s        <= x"00";
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+                
+                err_s(0) <= prbs_word_i(0) xor (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                err_s(1) <= prbs_word_i(1) xor (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                err_s(2) <= prbs_word_i(2) xor (feedback_reg(1) xor feedback_reg(0));
+                err_s(3) <= prbs_word_i(3) xor (feedback_reg(2) xor feedback_reg(1));
+                err_s(4) <= prbs_word_i(4) xor (feedback_reg(3) xor feedback_reg(2));
+                err_s(5) <= prbs_word_i(5) xor (feedback_reg(4) xor feedback_reg(3));
+                err_s(6) <= prbs_word_i(6) xor (feedback_reg(5) xor feedback_reg(4));
+                err_s(7) <= prbs_word_i(7) xor (feedback_reg(6) xor feedback_reg(5));
+                
+                if status /= Locked then                    
+                    feedback_reg <= prbs_word_i;
+                else
+                    feedback_reg(0) <= (feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(1) <= (feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5));
+                    feedback_reg(2) <= (feedback_reg(1) xor feedback_reg(0));
+                    feedback_reg(3) <= (feedback_reg(2) xor feedback_reg(1));
+                    feedback_reg(4) <= (feedback_reg(3) xor feedback_reg(2));
+                    feedback_reg(5) <= (feedback_reg(4) xor feedback_reg(3));
+                    feedback_reg(6) <= (feedback_reg(5) xor feedback_reg(4));
+                    feedback_reg(7) <= (feedback_reg(6) xor feedback_reg(5));
+                end if;
+
+                
+            end if;
+            
+        end if;
+
+    end process;
+    
+    err_o <= err_s;
+    rdy_o <= '1' when status = Locked else '0';
+    
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/prbs/prbs7_8b_generator.vhd b/TestBench_hw/prbs/prbs7_8b_generator.vhd
new file mode 100644
index 0000000..98f0888
--- /dev/null
+++ b/TestBench_hw/prbs/prbs7_8b_generator.vhd
@@ -0,0 +1,88 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.numeric_std.all;
+
+entity prbs7_8b_generator is
+    generic(
+        INIT_c                  : in std_logic_vector(7 downto 0)
+    );
+    port (
+        reset_i          : in  std_logic;
+        clk_i            : in  std_logic;
+        clken_i          : in  std_logic;
+                
+        err_pattern_i    : in  std_logic_vector(7 downto 0);
+        rep_delay_i      : in  std_logic_vector(23 downto 0);
+
+        prbs_word_o      : out std_logic_vector(7 downto 0);
+        rdy_o            : out std_logic
+    );
+end prbs7_8b_generator;
+
+architecture rtl of prbs7_8b_generator is
+    signal feedback_reg         : std_logic_vector(7 downto 0) := INIT_c;
+    signal prbs_word_s          : std_logic_vector(7 downto 0) := INIT_c;
+    signal err_pattern_s        : std_logic_vector(7 downto 0);
+    signal err_cnter_s          : unsigned(24 downto 0);
+    signal inject_error_s       : std_logic;
+    signal onceinject_done_s    : std_logic;
+
+begin
+
+    -- PRBS7 equation: x^7 + x^6 + 1
+    -- LSB first
+
+    prbs7_proc: process(reset_i, clk_i)
+    begin
+
+        if reset_i = '1' then
+            feedback_reg <= INIT_c;
+            prbs_word_s  <= INIT_c;
+            rdy_o        <= '0';
+            err_cnter_s   <= (others => '0');
+            err_pattern_s <= (others => '0');
+
+        elsif rising_edge(clk_i) then
+
+            if clken_i = '1' then
+
+                prbs_word_s  <= feedback_reg;
+                rdy_o        <= '1';
+
+                feedback_reg(0) <= feedback_reg(6) xor feedback_reg(5) xor feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(1) <= feedback_reg(0) xor feedback_reg(6) xor feedback_reg(5);
+                feedback_reg(2) <= feedback_reg(1) xor feedback_reg(0);
+                feedback_reg(3) <= feedback_reg(2) xor feedback_reg(1);
+                feedback_reg(4) <= feedback_reg(3) xor feedback_reg(2);
+                feedback_reg(5) <= feedback_reg(4) xor feedback_reg(3);
+                feedback_reg(6) <= feedback_reg(5) xor feedback_reg(4);
+                feedback_reg(7) <= feedback_reg(6) xor feedback_reg(5);
+
+                err_pattern_s <= x"00";
+                
+                if err_pattern_i /= x"00" then
+                    if std_logic_vector(err_cnter_s) = rep_delay_i then
+                        if rep_delay_i /= x"000000" or onceinject_done_s = '0' then
+                            err_pattern_s     <= err_pattern_i;
+                            onceinject_done_s <= '1';
+                        end if;
+                                            
+                        err_cnter_s       <= (others => '0');                    
+                        
+                    else
+                        err_cnter_s <= err_cnter_s + 1;
+                    end if;
+                else
+                    err_cnter_s <= (others => '0');
+                    onceinject_done_s <= '0';
+                end if;
+            end if;
+
+        end if;
+
+    end process;
+
+    prbs_word_o   <= prbs_word_s xor err_pattern_s;
+
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/resetgen_top.vhd b/TestBench_hw/resetgen_top.vhd
deleted file mode 100644
index 2ef3dbf..0000000
--- a/TestBench_hw/resetgen_top.vhd
+++ /dev/null
@@ -1,73 +0,0 @@
--- IEEE VHDL standard library:
-library ieee;
-use ieee.std_logic_1164.all;
-
---=================================================================================================--
---#######################################   Entity   ##############################################--
---=================================================================================================--
-entity resetgen_top is
-   port (
-        -- Clocks
-        clk_mgtTxUsrclk_i              : in  std_logic;
-        clk_txClkEn_i                  : in  std_logic;
-        clk_mgtRxUsrclk_i              : in  std_logic;
-        clk_rxClkEn_i                  : in  std_logic;
-        
-        -- Reset in
-        rst_downlinkRst_i              : in  std_logic;
-        rst_uplinkRst_i                : in  std_logic;
-        
-        -- Reset out
-        rst_FPGAdownlinkRst_o          : out std_logic;
-        rst_FPGAuplinkRst_o             : out std_logic;
-        rst_ASICdownlinkEn_o          : out std_logic;
-        rst_ASICuplinkEn_o             : out std_logic;
-        
-        -- Control
-        rdy_downlinkRdy_i              : in  std_logic
-   );   
-end resetgen_top;
-
---=================================================================================================--
---####################################   Architecture   ###########################################-- 
---=================================================================================================--
-
-architecture behabioral of resetgen_top is
-    
-begin                 --========####   Architecture Body   ####========-- 
-    
-    
-    downRstSynchProc: process(clk_mgtTxUsrclk_i)
-    begin
-        if rst_downlinkRst_i = '1' then
-            rst_FPGAdownlinkRst_o <= '1';
-            
-        elsif rising_edge(clk_mgtTxUsrclk_i) then
-            if clk_txClkEn_i = '1' then
-                rst_FPGAdownlinkRst_o <= '0';
-            end if;
-        end if;
-        
-    end process;
-    
-    upRstSynchProc: process(clk_mgtRxUsrclk_i)
-    begin
-        if rst_uplinkRst_i = '1' then
-            rst_FPGAuplinkRst_o <= '1';
-            rst_ASICuplinkEn_o  <= '0';
-            
-        elsif rising_edge(clk_mgtRxUsrclk_i) then
-            if clk_rxClkEn_i = '1' then
-                rst_FPGAuplinkRst_o   <= '0';
-                rst_ASICuplinkEn_o    <= '1';
-            end if;
-        end if;
-        
-    end process;
-    
-    rst_ASICdownlinkEn_o         <= rdy_downlinkRdy_i;
-    
-end behabioral;
---=================================================================================================--
---#################################################################################################--
---=================================================================================================--
\ No newline at end of file
diff --git a/TestBench_hw/top_tb.vhd b/TestBench_hw/top_tb.vhd
index 7888dc4..3102364 100644
--- a/TestBench_hw/top_tb.vhd
+++ b/TestBench_hw/top_tb.vhd
@@ -1,17 +1,24 @@
 -- IEEE VHDL standard library:
 library ieee;
 use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
 
+package bus_multiplexer_pkg is
+    type conf2b_array is array(natural range <>) of std_logic_vector(1 downto 0);
+end package;
+    
 --! Xilinx devices library:
 library unisim;
 use unisim.vcomponents.all;
 
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.bus_multiplexer_pkg.all;
 use work.lpgbtfpga_package.all;
+
 --=================================================================================================--
 --#######################################   Entity   ##############################################--
 --=================================================================================================--
-
 entity lpgbt_fpga_kcu105 is
     port (  
       --===============--     
@@ -49,18 +56,12 @@ entity lpgbt_fpga_kcu105 is
       SFP0_TX_N                                      : out std_logic;
       SFP0_RX_P                                      : in  std_logic;
       SFP0_RX_N                                      : in  std_logic; 
-      
-      SFP1_TX_P                                      : out std_logic;
-      SFP1_TX_N                                      : out std_logic;
-      SFP1_RX_P                                      : in  std_logic;
-      SFP1_RX_N                                      : in  std_logic;    
-      
+           
       -- SFP control:
       ---------------
       
       SFP0_TX_DISABLE                                : out std_logic;    
-      SFP1_TX_DISABLE                                : out std_logic;
-      
+    
       --====================--
       -- Signals forwarding --
       --====================--
@@ -139,145 +140,15 @@ architecture behabioral of lpgbt_fpga_kcu105 is
             uplinkErrorMaskInject_i          : in  std_logic_vector(255 downto 0)   --! Force bit flip (uplink - serial)
        ); 
     END COMPONENT;
-    
-    COMPONENT lpgbtemul_top
-        port(    
-            -- Reset
-            rst_downlink_i                   : in  std_logic;
-            rst_uplink_i                     : in  std_logic;
-            
-            -- DownLink
-            downlinkClk_o                    : out std_logic;
-            downlinkClkEn_o                  : out std_logic;
-            
-            downLinkDataGroup0               : out std_logic_vector(15 downto 0);
-            downLinkDataGroup1               : out std_logic_vector(15 downto 0);
-            downLinkDataEc                   : out std_logic_vector(1 downto 0);
-            downLinkDataIc                   : out std_logic_vector(1 downto 0);
-            
-            downLinkBypassDeinterleaver      : in  std_logic;
-            downLinkBypassFECDecoder         : in  std_logic;
-            downLinkBypassDescsrambler       : in  std_logic;
-            
-            enableFECErrCounter              : in  std_logic;
-            fecCorrectionCount               : out std_logic_vector(15 downto 0);
-            
-            downlinkRdy_o                    : out std_logic;
-            
-            -- uplink data            
-            uplinkClk_o                      : out std_logic;
-            uplinkClkEn_i                    : in  std_logic;
-            
-            upLinkData0                      : in  std_logic_vector(31 downto 0);
-            upLinkData1                      : in  std_logic_vector(31 downto 0);
-            upLinkData2                      : in  std_logic_vector(31 downto 0);
-            upLinkData3                      : in  std_logic_vector(31 downto 0);
-            upLinkData4                      : in  std_logic_vector(31 downto 0);
-            upLinkData5                      : in  std_logic_vector(31 downto 0);
-            upLinkData6                      : in  std_logic_vector(31 downto 0);
-            upLinkDataIC                     : in  std_logic_vector(1 downto 0);
-            upLinkDataEC                     : in  std_logic_vector(1 downto 0);
-
-            uplinkRdy_o                      : out std_logic;
-                
-        
-            -- MGT
-            clk_mgtrefclk_i                  : in  std_logic;                       --! Transceiver serial clock
-            clk_mgtfreedrpclk_i              : in  std_logic;
-            
-            mgt_rxn_i                        : in  std_logic;
-            mgt_rxp_i                        : in  std_logic;
-            mgt_txn_o                        : out std_logic;
-            mgt_txp_o                        : out std_logic;
-
-            mgt_rdy_o                        : out std_logic;
-            
-            -- Uplink controll signals
-            upLinkScramblerBypass            : in  std_logic;
-            upLinkScramblerReset             : in  std_logic;
-            upLinkFecBypass                  : in  std_logic;
-            upLinkInterleaverBypass          : in  std_logic;
-            fecMode                          : in  std_logic;
-            txDataRate                       : in  std_logic
-        );
-    END COMPONENT;
         
-    COMPONENT datarouter_top
-       port (        
-            uplinkSelectDataRate_i           : in  std_logic;      -- '0': 5.12Gbps / '1': 10.24Gbps
-            uplinkSelectFEC_i                : in  std_logic;      -- '0': FEC5 / '1': FEC12
-            
-            upLinkData0                      : in  std_logic_vector(31 downto 0);
-            upLinkData1                      : in  std_logic_vector(31 downto 0);
-            upLinkData2                      : in  std_logic_vector(31 downto 0);
-            upLinkData3                      : in  std_logic_vector(31 downto 0);
-            upLinkData4                      : in  std_logic_vector(31 downto 0);
-            upLinkData5                      : in  std_logic_vector(31 downto 0);
-            upLinkData6                      : in  std_logic_vector(31 downto 0);
-            
-            upLinkData                       : out std_logic_vector(229 downto 0)
-       );
-    END COMPONENT;
-    
-    COMPONENT uplinkstimulis_top
-       port (
-            uplink_txrdy_i                   : in  std_logic;
-            uplink_rxrdy_i                   : in  std_logic;
-            
-            uplink_txclock_i                 : in  std_logic;
-            uplink_txen_i                    : in  std_logic;
-            uplink_rxclock_i                 : in  std_logic;
-            uplink_rxen_i                    : in  std_logic;
-            
-            uplinkSelectDataRate_i           : in  std_logic;      -- '0': 5.12Gbps / '1': 10.24Gbps
-            uplinkSelectFEC_i                : in  std_logic;      -- '0': FEC5 / '1': FEC12
-            upLinkDataSel_i                  : in  std_logic;
-            
-            upLinkData0                      : out std_logic_vector(31 downto 0);
-            upLinkData1                      : out std_logic_vector(31 downto 0);
-            upLinkData2                      : out std_logic_vector(31 downto 0);
-            upLinkData3                      : out std_logic_vector(31 downto 0);
-            upLinkData4                      : out std_logic_vector(31 downto 0);
-            upLinkData5                      : out std_logic_vector(31 downto 0);
-            upLinkData6                      : out std_logic_vector(31 downto 0);
-            
-            upLinkData                       : in  std_logic_vector(229 downto 0);
-        
-            uplink_error_o                   : out std_logic
-       );   
-    END COMPONENT;
-    
-    COMPONENT downlinkstimulis_top
-       port (
-            downlink_txrdy_i                 : in  std_logic;
-            downlink_rxrdy_i                 : in  std_logic;
-            
-            downlink_txclock_i               : in  std_logic;
-            downlink_txen_i                  : in  std_logic;
-            downlink_rxclock_i               : in  std_logic;
-            downlink_rxen_i                  : in  std_logic;
-            
-            downlinkData_o                   : out std_logic_vector(31 downto 0);
-            downlinkData_i                   : in  std_logic_vector(31 downto 0);
-            
-            downlink_txFlag_o                : out std_logic;
-            downlink_rxFlag_o                : out std_logic;
-            
-            downlink_error_o                 : out std_logic
-       );   
-    END COMPONENT;
-    
     COMPONENT vio_0
       PORT (
         clk : IN STD_LOGIC;
         probe_in0 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
         probe_in1 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
-        probe_in2 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
-        probe_in3 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
-        probe_in4 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
-        probe_in5 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
-        probe_in6 : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
-        probe_in7 : IN STD_LOGIC_VECTOR(6 DOWNTO 0);
+        probe_in2 : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+        probe_in3 : IN STD_LOGIC_VECTOR(27 DOWNTO 0);
+                
         probe_out0 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
         probe_out1 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
         probe_out2 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
@@ -287,21 +158,81 @@ architecture behabioral of lpgbt_fpga_kcu105 is
         probe_out6 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
         probe_out7 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
         probe_out8 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
-        probe_out9 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
-        probe_out10 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+        probe_out9 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+        probe_out10 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
+        probe_out11 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+        probe_out12 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+        probe_out13 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out14 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out15 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out16 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out17 : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
+        probe_out18 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out19 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out20 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out21 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out22 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out23 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out24 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out25 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out26 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out27 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out28 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out29 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out30 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out31 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out32 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out33 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out34 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out35 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out36 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out37 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out38 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out39 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out40 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out41 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out42 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out43 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+        probe_out44 : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)
       );
     END COMPONENT;
-    
-    COMPONENT jtag_controller_top
-      Port ( 
-          CLK_I                  : in std_logic;
-          RESET_I                : in std_logic;
           
-          reset_lpgbtfpga        : out std_logic;
-          downlinkLpGBTEmulReady : in  std_logic
+    COMPONENT lpgbt_elink_downlinkGenerator is
+      port(
+          clk320DnLink_i            : in  std_logic;
+          clkEnDnLink_i             : in  std_logic;
+    
+          generator_rst_i           : in  std_logic;
+    
+          config_group0_i           : in  std_logic_vector(1 downto 0);
+          config_group1_i           : in  std_logic_vector(1 downto 0);
+          config_group2_i           : in  std_logic_vector(1 downto 0);
+          config_group3_i           : in  std_logic_vector(1 downto 0);
+    
+          fixed_pattern_i           : in  std_logic_vector(31 downto 0);
+    
+          downlink_o                : out std_logic_vector(31 downto 0);
+    
+          eport_gen_rdy_o           : out std_logic_vector(15 downto 0)
       );
     END COMPONENT;
         
+    COMPONENT uplink_checker
+        port (
+            reset_checker_i  : in  std_logic;
+            ser320_clk_i     : in  std_logic;
+            ser320_clkEn_i   : in  std_logic;
+    
+            data_rate_i      : in  std_logic;
+    
+            elink_config_i   : in  conf2b_array(27 downto 0);
+    
+            error_detected_o : out std_logic_vector(27 downto 0);
+    
+            userDataUpLink_i : in  std_logic_vector(229 downto 0)
+        );
+    END COMPONENT;
+    
     -- Signals:
     
         -- Config
@@ -396,18 +327,23 @@ architecture behabioral of lpgbt_fpga_kcu105 is
         signal downlink_txFlag_s                  : std_logic;
         signal downlink_rxFlag_s                  : std_logic;
         signal upLinkDataSel_s                    : std_logic;
+        
+
+        
+        signal generator_rst_s                    : std_logic;
+        signal downconfig_g0_s                    : std_logic_vector(1 downto 0);
+        signal downconfig_g1_s                    : std_logic_vector(1 downto 0);
+        signal downconfig_g2_s                    : std_logic_vector(1 downto 0);
+        signal downconfig_g3_s                    : std_logic_vector(1 downto 0);        
+        signal downlink_gen_rdy_s                 : std_logic_vector(15 downto 0);
     
+        signal upelink_config_s                   : conf2b_array(27 downto 0);
+        signal uperror_detected_s                 : std_logic_vector(27 downto 0);
+        signal reset_upchecker_s                  : std_logic;
 begin                 --========####   Architecture Body   ####========-- 
 
-    -- Reset controll
-    lpgbtfpga_downlinkrst_s  <= CPU_RESET or reset_lpgbtfpga_from_jtag;  
-    lpgbtemul_downlinkrst_s  <= not(lpgbtfpga_downlinkrdy_s);
-    
-    lpgbtemul_uplinkrst_s    <= CPU_RESET or reset_lpgbtfpga_from_jtag;
-    lpgbtfpga_uplinkrst_s    <= not(lpgbtemul_uplinkrdy_s);
-    
+    -- Reset controll    
     SFP0_TX_DISABLE           <= '0';
-    SFP1_TX_DISABLE           <= '0';
     
     -- Clocks
     
@@ -472,82 +408,10 @@ begin                 --========####   Architecture Body   ####========--
         end if;
         
     end process;
-    
-    uplink_txClkEn_proc: process(lpgbtemul_mgtRdy_s, lpgbtemul_uplinkclk_s)
-        variable cnter : integer range 0 to 8;
-    begin
-        if lpgbtemul_mgtRdy_s = '0' then
-            cnter := 0;
-            lpgbtemul_uplinkClkEn_s   <= '0';
-        
-        elsif rising_edge(lpgbtemul_uplinkclk_s) then
-            cnter := cnter + 1;
-            
-            if cnter = 8 then
-                cnter := 0;                              
-            end if;
-                        
-            lpgbtemul_uplinkClkEn_s   <= '0';
-            if cnter = 0 then
-                lpgbtemul_uplinkClkEn_s   <= '1';  
-            end if;
-        
-        end if;
-        
-    end process;
           
     -- Data stimulis
     lpgbtfpga_downlinkEcData_s     <= (others => '1');
     lpgbtfpga_downlinkIcData_s     <= (others => '1');
-
-    uplinkstimulis_top_inst: uplinkstimulis_top
-       port map(
-            uplink_txrdy_i                   => lpgbtemul_uplinkrdy_s,
-            uplink_rxrdy_i                   => lpgbtfpga_uplinkrdy_s,
-
-            uplink_txclock_i                 => lpgbtemul_uplinkclk_s,
-            uplink_txen_i                    => lpgbtemul_uplinkClkEn_s,
-            uplink_rxclock_i                 => lpgbtfpga_uplinkclk_s,
-            uplink_rxen_i                    => lpgbtfpga_uplinkclken_s,
-
-            uplinkSelectDataRate_i           => uplinkSelectDataRate_s,
-            uplinkSelectFEC_i                => uplinkSelectFEC_s,
-            upLinkDataSel_i                  => upLinkDataSel_s,
-
-            upLinkData0                      => lpgbtemul_uplinkUserData_g0_s,
-            upLinkData1                      => lpgbtemul_uplinkUserData_g1_s,
-            upLinkData2                      => lpgbtemul_uplinkUserData_g2_s,
-            upLinkData3                      => lpgbtemul_uplinkUserData_g3_s,
-            upLinkData4                      => lpgbtemul_uplinkUserData_g4_s,
-            upLinkData5                      => lpgbtemul_uplinkUserData_g5_s,
-            upLinkData6                      => lpgbtemul_uplinkUserData_g6_s,
-
-            upLinkData                       => lpgbtfpga_uplinkUserData_s,
-            
-            uplink_error_o                   => uplink_error_s
-       );  
-    
-    downlinkstimulis_top_inst: downlinkstimulis_top
-       port map(
-            downlink_txrdy_i                 => lpgbtfpga_downlinkrdy_s,
-            downlink_rxrdy_i                 => lpgbtemul_downlinkrdy_s,
-            
-            downlink_txclock_i               => lpgbtfpga_mgttxclk_s,
-            downlink_txen_i                  => lpgbtfgpa_txclken_s,
-            downlink_rxclock_i               => lpgbtemul_downlinkclk_s,
-            downlink_rxen_i                  => lpgbtemul_downlinkclken_s,
-            
-            downlinkData_o                   => lpgbtfpga_downlinkUserData_s,
-            downlinkData_i                   => lpgbtemul_downlinkUserData_s,
-            
-            downlink_txFlag_o                => downlink_txFlag_s,
-            downlink_rxFlag_o                => downlink_rxFlag_s,
-            
-            downlink_error_o                 => downlink_error_s
-       );
-       
-    lpgbtemul_uplinkIcData_s       <= (others => '1');
-    lpgbtemul_uplinkEcData_s       <= (others => '1');
        
     -- LpGBT FPGA
     lpgbtFpga_top_inst: lpgbtFpga_top 
@@ -598,133 +462,117 @@ begin                 --========####   Architecture Body   ####========--
             mgt_txn_o                        => SFP0_TX_N,
             mgt_txp_o                        => SFP0_TX_P,
             
+            -- HPTD IP
             mgt_txcaliben_i                  => lpgbtfpga_mgt_txcaliben_s,
             mgt_txcalib_i                    => lpgbtfpga_mgt_txpicalib_s,                    
             mgt_txaligned_o                  => lpgbtfpga_mgt_txaligned_s,
             mgt_txphase_o                    => lpgbtfpga_mgt_txpiphase_s,
             
-            -- Test feature
+            -- Test feature (not used in the example design)
             downlink_forceHeaderErr_i        => downlink_forceHeaderErr_s,
             downlinkErrorMaskInject_i        => downlinkErrorMaskInject_s,
             uplink_forceHeaderErr_i          => uplink_forceHeaderErr_s,
             uplinkErrorMaskInject_i          => uplinkErrorMaskInject_s
        );
-
-
-    lpgbtemul_downlinkUserData_s            <= lpgbtemul_downlinkUserData_g1_s & lpgbtemul_downlinkUserData_g0_s;
-    
-    datarouter_top_inst: datarouter_top
-       port map (        
-            uplinkSelectDataRate_i           => uplinkSelectDataRate_s,
-            uplinkSelectFEC_i                => uplinkSelectFEC_s,
-            
-            upLinkData0                      => lpgbtemul_uplinkUserData_g0_s,
-            upLinkData1                      => lpgbtemul_uplinkUserData_g1_s,
-            upLinkData2                      => lpgbtemul_uplinkUserData_g2_s,
-            upLinkData3                      => lpgbtemul_uplinkUserData_g3_s,
-            upLinkData4                      => lpgbtemul_uplinkUserData_g4_s,
-            upLinkData5                      => lpgbtemul_uplinkUserData_g5_s,
-            upLinkData6                      => lpgbtemul_uplinkUserData_g6_s,
-            
-            upLinkData                       => lpgbtemul_uplinkUserData_s
-       );
        
-    -- LpGBT Model
-    lpgbtemul_top_inst: lpgbtemul_top
-        port map(    
-            -- Reset
-            rst_downlink_i                   => lpgbtemul_downlinkrst_s,
-            rst_uplink_i                     => lpgbtemul_uplinkrst_s,
-
-            -- DownLink
-            downlinkClk_o                    => lpgbtemul_downlinkclk_s,
-            downlinkClkEn_o                  => lpgbtemul_downlinkclken_s,            
-            
-            downLinkDataGroup0               => lpgbtemul_downlinkUserData_g0_s,
-            downLinkDataGroup1               => lpgbtemul_downlinkUserData_g1_s,
-            downLinkDataEc                   => lpgbtemul_downlinkEcData_s,
-            downLinkDataIc                   => lpgbtemul_downlinkIcData_s,
+    -- Data pattern generator / checker (PRBS7)
+    lpgbt_elink_downlinkGenerator_inst: lpgbt_elink_downlinkGenerator
+        port map(
+            --clk40Mhz_Tx_i      : in  std_logic;
+            clk320DnLink_i            => lpgbtfpga_mgttxclk_s,
+            clkEnDnLink_i             => lpgbtfgpa_txclken_s,
 
-            downLinkBypassDeinterleaver      => downLinkBypassInterleaver_s,
-            downLinkBypassFECDecoder         => downLinkBypassFECEncoder_s,
-            downLinkBypassDescsrambler       => downLinkBypassScrambler_s,
+            generator_rst_i           => generator_rst_s,
 
-            enableFECErrCounter              => '0',
-            fecCorrectionCount               => open,
+            -- Group configurations:
+            --    "11": 320Mbps
+            --    "10": 160Mbps
+            --    "01": 80Mbps
+            --    "00": Fixed pattern
+            config_group0_i           => downconfig_g0_s,
+            config_group1_i           => downconfig_g1_s,
+            config_group2_i           => downconfig_g2_s,
+            config_group3_i           => downconfig_g3_s,
 
-            downlinkRdy_o                    => lpgbtemul_downlinkrdy_s,
-            
-            -- uplink data
-            uplinkClk_o                      => lpgbtemul_uplinkclk_s,
-            uplinkClkEn_i                    => lpgbtemul_uplinkClkEn_s,
-            
-            upLinkData0                      => lpgbtemul_uplinkUserData_g0_s,
-            upLinkData1                      => lpgbtemul_uplinkUserData_g1_s,
-            upLinkData2                      => lpgbtemul_uplinkUserData_g2_s,
-            upLinkData3                      => lpgbtemul_uplinkUserData_g3_s,
-            upLinkData4                      => lpgbtemul_uplinkUserData_g4_s,
-            upLinkData5                      => lpgbtemul_uplinkUserData_g5_s,
-            upLinkData6                      => lpgbtemul_uplinkUserData_g6_s,
-            upLinkDataIC                     => lpgbtemul_uplinkIcData_s,
-            upLinkDataEC                     => lpgbtemul_uplinkEcData_s,
+            downlink_o                => lpgbtfpga_downlinkUserData_s,
 
-            uplinkRdy_o                      => lpgbtemul_uplinkrdy_s,
+            fixed_pattern_i           => x"12345678",
 
-            -- MGT
-            clk_mgtrefclk_i                  => mgtRefClk_from_smaMgtRefClkbuf_s,
-            clk_mgtfreedrpclk_i              => mgt_freedrpclk_s,
-            
-            mgt_rxn_i                        => SFP1_RX_N,
-            mgt_rxp_i                        => SFP1_RX_P,
-            mgt_txn_o                        => SFP1_TX_N,
-            mgt_txp_o                        => SFP1_TX_P,
-            
-            mgt_rdy_o                        => lpgbtemul_mgtRdy_s,
-            
-            -- Uplink control signals
-            upLinkScramblerBypass            => upLinkScramblerBypass_s,
-            upLinkScramblerReset             => '0',
-            upLinkFecBypass                  => upLinkFecBypass_s,
-            upLinkInterleaverBypass          => upLinkInterleaverBypass_s,
-            fecMode                          => uplinkSelectFEC_s,
-            txDataRate                       => uplinkSelectDataRate_s
+            eport_gen_rdy_o           => downlink_gen_rdy_s
         );
 
+    lpgbt_uplinkchecker_inst: uplink_checker
+        port map(
+            reset_checker_i  => reset_upchecker_s,
+            ser320_clk_i     => lpgbtfpga_uplinkclk_s,
+            ser320_clkEn_i   => lpgbtfpga_uplinkclken_s,
+    
+            data_rate_i      => uplinkSelectDataRate_s,
+    
+            elink_config_i   => upelink_config_s,
+    
+            error_detected_o => uperror_detected_s,
+    
+            userDataUpLink_i => lpgbtfpga_uplinkUserData_s
+        );
+        
     vio_debug_inst : vio_0
       PORT MAP (
         clk => mgt_freedrpclk_s,
-        probe_in0(0)  => lpgbtfpga_uplinkrdy_s,
-        probe_in1(0)  => lpgbtfpga_downlinkrdy_s,
-        probe_in2(0)  => lpgbtemul_uplinkrdy_s,
-        probe_in3(0)  => lpgbtemul_downlinkrdy_s,
-        probe_in4(0)  => uplink_error_s,
-        probe_in5(0)  => downlink_error_s,
-        probe_in6(0)  => lpgbtfpga_mgt_txaligned_s,
-        probe_in7     => lpgbtfpga_mgt_txpiphase_s,
-        probe_out0(0) => downLinkBypassInterleaver_s,
-        probe_out1(0) => downLinkBypassFECEncoder_s,
-        probe_out2(0) => downLinkBypassScrambler_s,
-        probe_out3(0) => uplinkSelectDataRate_s,
-        probe_out4(0) => uplinkSelectFEC_s,
-        probe_out5(0) => upLinkInterleaverBypass_s,
-        probe_out6(0) => upLinkFecBypass_s,
-        probe_out7(0) => upLinkScramblerBypass_s,
-        probe_out8(0) => lpgbtfpga_mgt_txcaliben_s,
-        probe_out9    => lpgbtfpga_mgt_txpicalib_s,
-        probe_out10(0) => upLinkDataSel_s
-      ); 
-      
-    jtag_controller_inst: jtag_controller_top
-        Port map( 
-            CLK_I                  => mgt_freedrpclk_s,
-            RESET_I                => CPU_RESET,
-            
-            reset_lpgbtfpga        => reset_lpgbtfpga_from_jtag,
-            downlinkLpGBTEmulReady => lpgbtfpga_downlinkrdy_s
-        );      
+        probe_in0(0)  => lpgbtfpga_downlinkrdy_s,
+        probe_in1(0)  => lpgbtfpga_uplinkrdy_s,
+        probe_in2     => downlink_gen_rdy_s,
+        probe_in3     => uperror_detected_s,
+
+        probe_out0(0) => lpgbtfpga_downlinkrst_s,
+        probe_out1(0) => lpgbtfpga_uplinkrst_s,
+        probe_out2(0) => downLinkBypassInterleaver_s,
+        probe_out3(0) => downLinkBypassFECEncoder_s,
+        probe_out4(0) => downLinkBypassScrambler_s,
+        probe_out5(0) => uplinkSelectDataRate_s,
+        probe_out6(0) => uplinkSelectFEC_s,
+        probe_out7(0) => upLinkInterleaverBypass_s,
+        probe_out8(0) => upLinkFecBypass_s,
+        probe_out9(0) => upLinkScramblerBypass_s,
+        probe_out10   => lpgbtfpga_mgt_txpicalib_s,
+        probe_out11(0)=> lpgbtfpga_mgt_txcaliben_s,
+        probe_out12(0)=> generator_rst_s,
+        probe_out13   => downconfig_g0_s,
+        probe_out14   => downconfig_g1_s,
+        probe_out15   => downconfig_g2_s,
+        probe_out16   => downconfig_g3_s,
+        probe_out17(0)=> reset_upchecker_s,
+        probe_out18   => upelink_config_s(0),
+        probe_out19   => upelink_config_s(1),
+        probe_out20   => upelink_config_s(2),
+        probe_out21   => upelink_config_s(3),
+        probe_out22   => upelink_config_s(4),
+        probe_out23   => upelink_config_s(5),
+        probe_out24   => upelink_config_s(6),
+        probe_out25   => upelink_config_s(7),
+        probe_out26   => upelink_config_s(8),
+        probe_out27   => upelink_config_s(9),
+        probe_out28   => upelink_config_s(10),
+        probe_out29   => upelink_config_s(11),
+        probe_out30   => upelink_config_s(12),
+        probe_out31   => upelink_config_s(13),
+        probe_out32   => upelink_config_s(14),
+        probe_out33   => upelink_config_s(15),
+        probe_out34   => upelink_config_s(16),
+        probe_out35   => upelink_config_s(17),
+        probe_out36   => upelink_config_s(18),
+        probe_out37   => upelink_config_s(20),
+        probe_out38   => upelink_config_s(21),
+        probe_out39   => upelink_config_s(22),
+        probe_out40   => upelink_config_s(23),
+        probe_out41   => upelink_config_s(24),
+        probe_out42   => upelink_config_s(25),
+        probe_out43   => upelink_config_s(26),
+        probe_out44   => upelink_config_s(27)        
+      );
       
-    USER_SMA_GPIO_P <= downlink_txFlag_s;
-    USER_SMA_GPIO_N <= downlink_rxFlag_s;
+      USER_SMA_GPIO_P <= '1';
+      USER_SMA_GPIO_N <= '1';
     
 end behabioral;
 --=================================================================================================--
diff --git a/TestBench_hw/uplink_checker.vhd b/TestBench_hw/uplink_checker.vhd
new file mode 100644
index 0000000..9402858
--- /dev/null
+++ b/TestBench_hw/uplink_checker.vhd
@@ -0,0 +1,291 @@
+-- IEEE VHDL standard library:
+library ieee;
+use ieee.std_logic_1164.all;
+
+package bus_multiplexer_pkg is
+    type conf2b_array is array(natural range <>) of std_logic_vector(1 downto 0);
+end package;
+    
+--! Xilinx devices library:
+library unisim;
+use unisim.vcomponents.all;
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+use work.bus_multiplexer_pkg.all;
+
+entity uplink_checker is
+    port (
+        reset_checker_i  : in  std_logic;
+        ser320_clk_i     : in  std_logic;
+        ser320_clkEn_i   : in  std_logic;
+
+        data_rate_i      : in  std_logic;
+
+        elink_config_i   : in  conf2b_array(27 downto 0);
+
+        error_detected_o : out std_logic_vector(27 downto 0);
+
+        userDataUpLink_i : in  std_logic_vector(229 downto 0)
+    );
+end uplink_checker;
+
+architecture rtl of uplink_checker is
+
+    component prbs7_32b_checker
+        port (
+            reset_i          : in  std_logic;
+            clk_i            : in  std_logic;
+            clken_i          : in  std_logic;
+            prbs_word_i      : in  std_logic_vector(31 downto 0);
+            err_o            : out std_logic_vector(31 downto 0);
+            rdy_o            : out std_logic
+        );
+    end component;
+
+    component prbs7_16b_checker
+        port (
+            reset_i          : in  std_logic;
+            clk_i            : in  std_logic;
+            clken_i          : in  std_logic;
+            prbs_word_i      : in  std_logic_vector(15 downto 0);
+            err_o            : out std_logic_vector(15 downto 0);
+            rdy_o            : out std_logic
+        );
+    end component;
+
+    component prbs7_8b_checker
+        port (
+            reset_i          : in  std_logic;
+            clk_i            : in  std_logic;
+            clken_i          : in  std_logic;
+            prbs_word_i      : in  std_logic_vector(7 downto 0);
+            err_o            : out std_logic_vector(7 downto 0);
+            rdy_o            : out std_logic
+        );
+    end component;
+
+    component prbs7_4b_checker
+        port (
+            reset_i          : in  std_logic;
+            clk_i            : in  std_logic;
+            clken_i          : in  std_logic;
+            prbs_word_i      : in  std_logic_vector(3 downto 0);
+            err_o            : out std_logic_vector(3 downto 0);
+            rdy_o            : out std_logic
+        );
+    end component;
+
+    type elink_1g28_T        is array(integer range <>) of std_logic_vector(31 downto 0);
+    type elink_640m_T        is array(integer range <>) of std_logic_vector(15 downto 0);
+    type elink_320m_T        is array(integer range <>) of std_logic_vector(7 downto 0);
+    type elink_160m_T        is array(integer range <>) of std_logic_vector(3 downto 0);
+    type bert_cnter_T        is array(integer range <>) of std_logic_vector(63 downto 0);
+    type err_cnter_T         is array(integer range <>) of std_logic_vector(5 downto 0);
+    type cnt_arr_T           is array(integer range <>) of unsigned(31 downto 0);
+
+    signal elink_1g28_s      : elink_1g28_T(6 downto 0);   -- Maximum of 7 links @ 1.28gbps
+    signal elink_640m_s      : elink_640m_T(14 downto 0);  -- Maximum of 14 links @ 640Mbps
+    signal elink_320m_s      : elink_320m_T(27 downto 0);  -- Maximum of 28 links @ 320Mbps
+    signal elink_160m_s      : elink_160m_T(27 downto 0);  -- Maximum of 28 links @ 160Mbps
+
+    signal elink_1g28_err_s  : elink_1g28_T(27 downto 0);
+    signal elink_640m_err_s  : elink_640m_T(27 downto 0);
+    signal elink_320m_err_s  : elink_320m_T(27 downto 0);
+    signal elink_160m_err_s  : elink_160m_T(27 downto 0);
+
+    signal elink_err_s       : elink_1g28_T(27 downto 0);
+    signal cntr_rst_s        : std_logic_vector(27 downto 0);
+    signal elink_prbs_rdy    : std_logic_vector(27 downto 0);
+
+    signal elink_1g28_prbsRdy_s  : std_logic_vector(27 downto 0);
+    signal elink_640m_prbsRdy_s  : std_logic_vector(27 downto 0);
+    signal elink_320m_prbsRdy_s  : std_logic_vector(27 downto 0);
+    signal elink_160m_prbsRdy_s  : std_logic_vector(27 downto 0);
+
+    signal reset320_s        : std_logic;
+    signal rst_dst_s         : std_logic;
+begin
+
+    reset_synch_proc: process(reset_checker_i, ser320_clk_i)
+        begin
+            if reset_checker_i = '1' then
+                rst_dst_s  <= '1';
+                reset320_s <= '1';
+            elsif rising_edge(ser320_clk_i) then
+                rst_dst_s  <= '0';
+                reset320_s <= rst_dst_s;
+            end if;
+    end process;
+    
+    elink_1g28_s(0)     <= userDataUpLink_i(31 downto 0);
+    elink_1g28_s(1)     <= userDataUpLink_i(63 downto 32);
+    elink_1g28_s(2)     <= userDataUpLink_i(95 downto 64);
+    elink_1g28_s(3)     <= userDataUpLink_i(127 downto 96);
+    elink_1g28_s(4)     <= userDataUpLink_i(159 downto 128);
+    elink_1g28_s(5)     <= userDataUpLink_i(191 downto 160);
+    elink_1g28_s(6)     <= userDataUpLink_i(223 downto 192);
+
+    elink_640m_s(0)     <= userDataUpLink_i(15 downto 0);
+    elink_640m_s(1)     <= userDataUpLink_i(31 downto 16) when data_rate_i = '1' else (others => '0');
+    elink_640m_s(2)     <= userDataUpLink_i(47 downto 32) when data_rate_i = '1' else userDataUpLink_i(31 downto 16);
+    elink_640m_s(3)     <= userDataUpLink_i(63 downto 48) when data_rate_i = '1' else (others => '0');
+    elink_640m_s(4)     <= userDataUpLink_i(79 downto 64) when data_rate_i = '1' else userDataUpLink_i(47 downto 32);
+    elink_640m_s(5)     <= userDataUpLink_i(95 downto 80) when data_rate_i = '1' else (others => '0');
+    elink_640m_s(6)     <= userDataUpLink_i(111 downto 96)  when data_rate_i = '1' else userDataUpLink_i(63 downto 48);
+    elink_640m_s(7)     <= userDataUpLink_i(127 downto 112) when data_rate_i = '1' else (others => '0');
+    elink_640m_s(8)     <= userDataUpLink_i(143 downto 128)  when data_rate_i = '1' else userDataUpLink_i(79 downto 64);
+    elink_640m_s(9)     <= userDataUpLink_i(159 downto 144)  when data_rate_i = '1' else (others => '0');
+    elink_640m_s(10)     <= userDataUpLink_i(175 downto 160) when data_rate_i = '1' else userDataUpLink_i(95 downto 80);
+    elink_640m_s(11)     <= userDataUpLink_i(191 downto 176) when data_rate_i = '1' else (others => '0');
+    elink_640m_s(12)     <= userDataUpLink_i(207 downto 192) when data_rate_i = '1' else userDataUpLink_i(111 downto 96);
+    elink_640m_s(13)     <= userDataUpLink_i(223 downto 208) when data_rate_i = '1' else (others => '0');
+
+    elink_320m_s(0)     <= userDataUpLink_i(7 downto 0);
+    elink_320m_s(1)     <= userDataUpLink_i(15 downto 8)  when data_rate_i = '1' else (others => '0');
+    elink_320m_s(2)     <= userDataUpLink_i(23 downto 16) when data_rate_i = '1' else userDataUpLink_i(15 downto 8);
+    elink_320m_s(3)     <= userDataUpLink_i(31 downto 24) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(4)     <= userDataUpLink_i(39 downto 32) when data_rate_i = '1' else userDataUpLink_i(23 downto 16);
+    elink_320m_s(5)     <= userDataUpLink_i(47 downto 40) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(6)     <= userDataUpLink_i(55 downto 48) when data_rate_i = '1' else userDataUpLink_i(31 downto 24);
+    elink_320m_s(7)     <= userDataUpLink_i(63 downto 56) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(8)     <= userDataUpLink_i(71 downto 64) when data_rate_i = '1' else userDataUpLink_i(39 downto 32);
+    elink_320m_s(9)     <= userDataUpLink_i(79 downto 72) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(10)     <= userDataUpLink_i(87 downto 80) when data_rate_i = '1' else userDataUpLink_i(47 downto 40);
+    elink_320m_s(11)     <= userDataUpLink_i(95 downto 88) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(12)     <= userDataUpLink_i(103 downto 96)  when data_rate_i = '1' else userDataUpLink_i(55 downto 48);
+    elink_320m_s(13)     <= userDataUpLink_i(111 downto 104) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(14)    <= userDataUpLink_i(119 downto 112)  when data_rate_i = '1' else userDataUpLink_i(63 downto 56);
+    elink_320m_s(15)     <= userDataUpLink_i(127 downto 120) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(16)     <= userDataUpLink_i(135 downto 128) when data_rate_i = '1' else userDataUpLink_i(71 downto 64);
+    elink_320m_s(17)     <= userDataUpLink_i(143 downto 136) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(18)     <= userDataUpLink_i(151 downto 144) when data_rate_i = '1' else userDataUpLink_i(79 downto 72);
+    elink_320m_s(19)     <= userDataUpLink_i(159 downto 152) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(20)     <= userDataUpLink_i(167 downto 160) when data_rate_i = '1' else userDataUpLink_i(87 downto 80);
+    elink_320m_s(21)     <= userDataUpLink_i(175 downto 168) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(22)     <= userDataUpLink_i(183 downto 176) when data_rate_i = '1' else userDataUpLink_i(95 downto 88);
+    elink_320m_s(23)     <= userDataUpLink_i(191 downto 184) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(24)     <= userDataUpLink_i(199 downto 192) when data_rate_i = '1' else userDataUpLink_i(103 downto 96);
+    elink_320m_s(25)     <= userDataUpLink_i(207 downto 200) when data_rate_i = '1' else (others => '0');
+    elink_320m_s(26)     <= userDataUpLink_i(215 downto 208) when data_rate_i = '1' else userDataUpLink_i(111 downto 104);
+    elink_320m_s(27)     <= userDataUpLink_i(223 downto 216) when data_rate_i = '1' else (others => '0');
+
+    elink_160m_s(0)     <= userDataUpLink_i(3 downto 0);
+    elink_160m_s(1)     <= userDataUpLink_i(7 downto 4);
+    elink_160m_s(2)     <= userDataUpLink_i(11 downto 8);
+    elink_160m_s(3)     <= userDataUpLink_i(15 downto 12);
+    elink_160m_s(4)     <= userDataUpLink_i(19 downto 16);
+    elink_160m_s(5)     <= userDataUpLink_i(23 downto 20);
+    elink_160m_s(6)     <= userDataUpLink_i(27 downto 24);
+    elink_160m_s(7)     <= userDataUpLink_i(31 downto 28);
+    elink_160m_s(8)     <= userDataUpLink_i(35 downto 32);
+    elink_160m_s(9)     <= userDataUpLink_i(39 downto 36);
+    elink_160m_s(10)     <= userDataUpLink_i(43 downto 40);
+    elink_160m_s(11)     <= userDataUpLink_i(47 downto 44);
+    elink_160m_s(12)     <= userDataUpLink_i(51 downto 48);
+    elink_160m_s(13)     <= userDataUpLink_i(55 downto 52);
+    elink_160m_s(14)    <= userDataUpLink_i(59 downto 56);
+    elink_160m_s(15)     <= userDataUpLink_i(63 downto 60);
+    elink_160m_s(16)     <= userDataUpLink_i(67 downto 64);
+    elink_160m_s(17)     <= userDataUpLink_i(71 downto 68);
+    elink_160m_s(18)     <= userDataUpLink_i(75 downto 72);
+    elink_160m_s(19)     <= userDataUpLink_i(79 downto 76);
+    elink_160m_s(20)     <= userDataUpLink_i(83 downto 80);
+    elink_160m_s(21)     <= userDataUpLink_i(87 downto 84);
+    elink_160m_s(22)     <= userDataUpLink_i(91 downto 88);
+    elink_160m_s(23)     <= userDataUpLink_i(95 downto 92);
+    elink_160m_s(24)     <= userDataUpLink_i(99 downto 96);
+    elink_160m_s(25)     <= userDataUpLink_i(103 downto 100);
+    elink_160m_s(26)     <= userDataUpLink_i(107 downto 104);
+    elink_160m_s(27)     <= userDataUpLink_i(111 downto 108);
+
+    multi_elink_1g28_gen: for i in 0 to 6 generate
+        prbs7_32b_checker_inst: prbs7_32b_checker
+            port map(
+                reset_i          => reset320_s,
+                clk_i            => ser320_clk_i,
+                clken_i          => ser320_clkEn_i,
+                prbs_word_i      => elink_1g28_s(i),
+                err_o            => elink_1g28_err_s(i*4),
+                rdy_o            => elink_1g28_prbsRdy_s(i*4)
+            );
+    end generate;
+
+    elink_1g28_prbsRdy_s(3 downto 1) <= "000";
+    elink_1g28_prbsRdy_s(7 downto 5) <= "000";
+    elink_1g28_prbsRdy_s(11 downto 9) <= "000";
+    elink_1g28_prbsRdy_s(15 downto 13) <= "000";
+    elink_1g28_prbsRdy_s(19 downto 17) <= "000";
+    elink_1g28_prbsRdy_s(23 downto 21) <= "000";
+    elink_1g28_prbsRdy_s(27 downto 25) <= "000";
+
+    multi_elink_640mbps_gen: for i in 0 to 13 generate
+        prbs7_16b_checker_inst: prbs7_16b_checker
+            port map(
+                reset_i          => reset320_s,
+                clk_i            => ser320_clk_i,
+                clken_i          => ser320_clkEn_i,
+                prbs_word_i      => elink_640m_s(i),
+                err_o            => elink_640m_err_s(i*2),
+                rdy_o            => elink_640m_prbsRdy_s(i*2)
+            );
+    end generate;
+
+    elink_640m_prbsRdy_s(1) <= '0';
+    elink_640m_prbsRdy_s(3) <= '0';
+    elink_640m_prbsRdy_s(5) <= '0';
+    elink_640m_prbsRdy_s(7) <= '0';
+    elink_640m_prbsRdy_s(9) <= '0';
+    elink_640m_prbsRdy_s(11) <= '0';
+    elink_640m_prbsRdy_s(13) <= '0';
+    elink_640m_prbsRdy_s(15) <= '0';
+    elink_640m_prbsRdy_s(17) <= '0';
+    elink_640m_prbsRdy_s(19) <= '0';
+    elink_640m_prbsRdy_s(21) <= '0';
+    elink_640m_prbsRdy_s(23) <= '0';
+    elink_640m_prbsRdy_s(25) <= '0';
+    elink_640m_prbsRdy_s(27) <= '0';
+
+    multi_elink_320mbps_gen: for i in 0 to 27 generate
+        prbs7_8b_checker_inst: prbs7_8b_checker
+            port map(
+                reset_i          => reset320_s,
+                clk_i            => ser320_clk_i,
+                clken_i          => ser320_clkEn_i,
+                prbs_word_i      => elink_320m_s(i),
+                err_o            => elink_320m_err_s(i),
+                rdy_o            => elink_320m_prbsRdy_s(i)
+            );
+    end generate;
+
+    multi_elink_160mbps_gen: for i in 0 to 27 generate
+        prbs7_4b_checker_inst: prbs7_4b_checker
+            port map(
+                reset_i          => reset320_s,
+                clk_i            => ser320_clk_i,
+                clken_i          => ser320_clkEn_i,
+                prbs_word_i      => elink_160m_s(i),
+                err_o            => elink_160m_err_s(i),
+                rdy_o            => elink_160m_prbsRdy_s(i)
+            );
+    end generate;
+
+    err_cnter_gen: for i in 0 to 27 generate
+
+        elink_err_s(i) <= elink_1g28_err_s(i) when elink_config_i(i) = "11" else
+                          x"0000" & elink_640m_err_s(i) when elink_config_i(i) = "10" else
+                          x"000000" & elink_320m_err_s(i) when elink_config_i(i) = "01" else
+                          x"0000000" & elink_160m_err_s(i);
+
+        elink_prbs_rdy(i) <= elink_1g28_prbsRdy_s(i) when elink_config_i(i) = "11" else
+                             elink_640m_prbsRdy_s(i) when elink_config_i(i) = "10" else
+                             elink_320m_prbsRdy_s(i) when elink_config_i(i) = "01" else
+                             elink_160m_prbsRdy_s(i);
+
+        error_detected_o(i)  <= '0' when elink_err_s(i) = x"00000000" else '1';
+
+    end generate;
+
+
+end rtl;
\ No newline at end of file
diff --git a/TestBench_hw/uplinkstimulis_top.vhd b/TestBench_hw/uplinkstimulis_top.vhd
deleted file mode 100644
index 840976c..0000000
--- a/TestBench_hw/uplinkstimulis_top.vhd
+++ /dev/null
@@ -1,502 +0,0 @@
----- IEEE VHDL standard library:
---library ieee;
---use ieee.std_logic_1164.all;
---use ieee.numeric_std.all;
-
-----=================================================================================================--
-----#######################################   Entity   ##############################################--
-----=================================================================================================--
---entity uplinkstimulis_top is
---   port (
---        uplink_txrdy_i                   : in  std_logic;
---        uplink_rxrdy_i                   : in  std_logic;
-        
---        uplink_txclock_i                 : in  std_logic;
---        uplink_txen_i                    : in  std_logic;
---        uplink_rxclock_i                 : in  std_logic;
---        uplink_rxen_i                    : in  std_logic;
-        
---        uplinkSelectDataRate_i           : in  std_logic;      -- '0': 5.12Gbps / '1': 10.24Gbps
---        uplinkSelectFEC_i                : in  std_logic;      -- '0': FEC5 / '1': FEC12
-        
---        upLinkData0                      : out std_logic_vector(31 downto 0);
---        upLinkData1                      : out std_logic_vector(31 downto 0);
---        upLinkData2                      : out std_logic_vector(31 downto 0);
---        upLinkData3                      : out std_logic_vector(31 downto 0);
---        upLinkData4                      : out std_logic_vector(31 downto 0);
---        upLinkData5                      : out std_logic_vector(31 downto 0);
---        upLinkData6                      : out std_logic_vector(31 downto 0);
-        
---        upLinkData                       : in  std_logic_vector(229 downto 0);
-        
---        uplink_error_o                   : out std_logic
---   );   
---end uplinkstimulis_top;
-
-----=================================================================================================--
-----####################################   Architecture   ###########################################-- 
-----=================================================================================================--
-
---architecture behavioral of uplinkstimulis_top is    
-    
---    signal check_prev_cnter_g0_s       : unsigned(31 downto 0);
-    
---    signal checker_rdy_s  : std_logic;
-    
---begin                 --========####   Architecture Body   ####========-- 
-
---    uplinkGen_proc: process(uplink_txrdy_i, uplink_txclock_i)
---        variable cnter_g0       : unsigned(31 downto 0);
---    begin
-    
---        if uplink_txrdy_i = '0' then
---            cnter_g0   := x"a472bc9e";
-            
---            upLinkData0     <= x"00000000";
---            upLinkData1     <= x"00000000";
---            upLinkData2     <= x"00000000";
---            upLinkData3     <= x"00000000";
---            upLinkData4     <= x"00000000";
---            upLinkData5     <= x"00000000";
---            upLinkData6     <= x"00000000";
-            
---        elsif rising_edge(uplink_txclock_i) then
-        
---            if uplink_txen_i = '1' then
-            
---                upLinkData0     <= std_logic_vector(cnter_g0);
---                upLinkData1     <= std_logic_vector(cnter_g0);
---                upLinkData2     <= std_logic_vector(cnter_g0);
---                upLinkData3     <= std_logic_vector(cnter_g0);
---                upLinkData4     <= std_logic_vector(cnter_g0);
---                upLinkData5     <= std_logic_vector(cnter_g0);
---                upLinkData6     <= std_logic_vector(cnter_g0);
-                
---                if cnter_g0 = x"FFFFFFFF" then
---                    cnter_g0    := x"00000000";
---                else
---                    cnter_g0    := cnter_g0 + 1;
---                end if;
-                
---            end if;
---        end if;
-        
---    end process;
-    
---    uplinkCheck_proc: process(uplink_rxrdy_i, uplink_rxclock_i)    
---        variable check_expected_cnter_g0_s       : unsigned(31 downto 0); 
---    begin
-    
---        if uplink_rxrdy_i = '0' then
---            checker_rdy_s <= '0';
---            uplink_error_o <= '0';
-            
---        elsif rising_edge(uplink_rxclock_i) then
-        
---            if uplink_rxen_i = '1' then
-            
---                -- Get Value
---                check_prev_cnter_g0_s  <= unsigned(x"0000" & upLinkData(15 downto 0));
-                
---                -- Check value
---                if checker_rdy_s = '1' then
-                
---                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g0_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g0_s = x"0000FFFF") then
---                        check_expected_cnter_g0_s  := x"00000000";
---                    else
---                        check_expected_cnter_g0_s  := check_prev_cnter_g0_s + 1;
---                    end if;
-                    
---                    if uplinkSelectDataRate_i = '1' then
---                        if unsigned(upLinkData(31 downto 0)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(63 downto 32)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';                    
---                        end if;
-                        
---                        if unsigned(upLinkData(95 downto 64)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(127 downto 96)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(159 downto 128)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(191 downto 160)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if uplinkSelectFEC_i = '0' and unsigned(upLinkData(223 downto 192)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                    
---                    else
---                        if unsigned(upLinkData(15 downto 0)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(31 downto 16)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';                    
---                        end if;
-                        
---                        if unsigned(upLinkData(47 downto 32)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(63 downto 48)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(79 downto 64)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if unsigned(upLinkData(95 downto 80)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                        if uplinkSelectFEC_i = '0' and unsigned(upLinkData(111 downto 96)) /= check_expected_cnter_g0_s then
---                            uplink_error_o <= '1';
---                        end if;
-                        
---                    end if;
-                    
---                end if;
-                
---                checker_rdy_s <= '1';
-                
---            end if;    
---        end if;
-        
---    end process;
-
---end behavioral;
-----=================================================================================================--
-----#################################################################################################--
-----=================================================================================================--
-
-
--- IEEE VHDL standard library:
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
---=================================================================================================--
---#######################################   Entity   ##############################################--
---=================================================================================================--
-entity uplinkstimulis_top is
-   port (
-        uplink_txrdy_i                   : in  std_logic;
-        uplink_rxrdy_i                   : in  std_logic;
-        
-        uplink_txclock_i                 : in  std_logic;
-        uplink_txen_i                    : in  std_logic;
-        uplink_rxclock_i                 : in  std_logic;
-        uplink_rxen_i                    : in  std_logic;
-        
-        uplinkSelectDataRate_i           : in  std_logic;      -- '0': 5.12Gbps / '1': 10.24Gbps
-        uplinkSelectFEC_i                : in  std_logic;      -- '0': FEC5 / '1': FEC12
-        upLinkDataSel_i                  : in  std_logic;
-        
-        upLinkData0                      : out std_logic_vector(31 downto 0);
-        upLinkData1                      : out std_logic_vector(31 downto 0);
-        upLinkData2                      : out std_logic_vector(31 downto 0);
-        upLinkData3                      : out std_logic_vector(31 downto 0);
-        upLinkData4                      : out std_logic_vector(31 downto 0);
-        upLinkData5                      : out std_logic_vector(31 downto 0);
-        upLinkData6                      : out std_logic_vector(31 downto 0);
-        
-        upLinkData                       : in  std_logic_vector(229 downto 0);
-        
-        uplink_error_o                   : out std_logic
-   );   
-end uplinkstimulis_top;
-
---=================================================================================================--
---####################################   Architecture   ###########################################-- 
---=================================================================================================--
-
-architecture behavioral of uplinkstimulis_top is    
-    
-    signal check_prev_cnter_g0_s       : unsigned(31 downto 0);
-    signal check_prev_cnter_g1_s       : unsigned(31 downto 0);
-    signal check_prev_cnter_g2_s       : unsigned(31 downto 0);
-    signal check_prev_cnter_g3_s       : unsigned(31 downto 0);
-    signal check_prev_cnter_g4_s       : unsigned(31 downto 0);
-    signal check_prev_cnter_g5_s       : unsigned(31 downto 0);
-    signal check_prev_cnter_g6_s       : unsigned(31 downto 0);
-    
-    signal checker_rdy_s  : std_logic;
-    
-begin                 --========####   Architecture Body   ####========-- 
-
-    uplinkGen_proc: process(uplink_txrdy_i, uplink_txclock_i)
-        variable cnter_g0       : unsigned(31 downto 0);
-        variable cnter_g1       : unsigned(31 downto 0);
-        variable cnter_g2       : unsigned(31 downto 0);
-        variable cnter_g3       : unsigned(31 downto 0);
-        variable cnter_g4       : unsigned(31 downto 0);
-        variable cnter_g5       : unsigned(31 downto 0);
-        variable cnter_g6       : unsigned(31 downto 0);
-    begin
-    
-        if uplink_txrdy_i = '0' then
-            cnter_g0   := x"000a0000";
-            cnter_g1   := x"00000000";
-            cnter_g2   := x"00000b00";
-            cnter_g3   := x"00005000";
-            cnter_g4   := x"03000000";
-            cnter_g5   := x"00000006";
-            cnter_g6   := x"00c00000";
-            
-            upLinkData0     <= x"00000000";
-            upLinkData1     <= x"00000000";
-            upLinkData2     <= x"00000000";
-            upLinkData3     <= x"00000000";
-            upLinkData4     <= x"00000000";
-            upLinkData5     <= x"00000000";
-            upLinkData6     <= x"00000000";
-            
-        elsif rising_edge(uplink_txclock_i) then
-        
-            if uplink_txen_i = '1' then
-            
-                if upLinkDataSel_i = '1' then
-                    upLinkData0     <= std_logic_vector(cnter_g0);
-                    upLinkData1     <= std_logic_vector(cnter_g1);
-                    upLinkData2     <= std_logic_vector(cnter_g2);
-                    upLinkData3     <= std_logic_vector(cnter_g3);
-                    upLinkData4     <= std_logic_vector(cnter_g4);
-                    upLinkData5     <= std_logic_vector(cnter_g5);
-                    upLinkData6     <= std_logic_vector(cnter_g6);
-                    
-                else
-                    upLinkData0     <= x"a739be8d";
-                    upLinkData1     <= x"db98acbd";
-                    upLinkData2     <= x"f24ade56";
-                    upLinkData3     <= x"5a250fbc";
-                    upLinkData4     <= x"82bca94d";
-                    upLinkData5     <= x"baba548d";
-                    upLinkData6     <= x"0986fac3";
-                end if;    
-                
-                if cnter_g0 = x"FFFFFFFF" then
-                    cnter_g0    := x"00000000";
-                else
-                    cnter_g0    := cnter_g0 + 1;
-                end if;
-                
-                if cnter_g1 = x"FFFFFFFF" then
-                    cnter_g1    := x"00000000";
-                else
-                    cnter_g1    := cnter_g1 + 1;
-                end if;
-                
-                if cnter_g2 = x"FFFFFFFF" then
-                    cnter_g2    := x"00000000";
-                else
-                    cnter_g2    := cnter_g2 + 1;
-                end if;
-                
-                if cnter_g3 = x"FFFFFFFF" then
-                    cnter_g3    := x"00000000";
-                else
-                    cnter_g3    := cnter_g3 + 1;
-                end if;
-                
-                if cnter_g4 = x"FFFFFFFF" then
-                    cnter_g4    := x"00000000";
-                else
-                    cnter_g4    := cnter_g4 + 1;
-                end if;
-                
-                if cnter_g5 = x"FFFFFFFF" then
-                    cnter_g5    := x"00000000";
-                else
-                    cnter_g5    := cnter_g5 + 1;
-                end if;
-                
-                if cnter_g0 = x"FFFFFFFF" then
-                    cnter_g6    := x"00000000";
-                else
-                    cnter_g6    := cnter_g6 + 1;
-                end if;
-                
-            end if;
-        end if;
-        
-    end process;
-    
-    uplinkCheck_proc: process(uplink_rxrdy_i, uplink_rxclock_i)    
-        variable check_expected_cnter_g0_s       : unsigned(31 downto 0);
-        variable check_expected_cnter_g1_s       : unsigned(31 downto 0);
-        variable check_expected_cnter_g2_s       : unsigned(31 downto 0);
-        variable check_expected_cnter_g3_s       : unsigned(31 downto 0);
-        variable check_expected_cnter_g4_s       : unsigned(31 downto 0);
-        variable check_expected_cnter_g5_s       : unsigned(31 downto 0);
-        variable check_expected_cnter_g6_s       : unsigned(31 downto 0);        
-    begin
-    
-        if uplink_rxrdy_i = '0' then
-            checker_rdy_s <= '0';
-            uplink_error_o <= '0';
-            
-        elsif rising_edge(uplink_rxclock_i) then
-        
-            if uplink_rxen_i = '1' then
-            
-                -- Get Value
-                if uplinkSelectDataRate_i = '1' then
-                    check_prev_cnter_g0_s  <= unsigned(upLinkData(31 downto 0));
-                    check_prev_cnter_g1_s  <= unsigned(upLinkData(63 downto 32));
-                    check_prev_cnter_g2_s  <= unsigned(upLinkData(95 downto 64));
-                    check_prev_cnter_g3_s  <= unsigned(upLinkData(127 downto 96));
-                    check_prev_cnter_g4_s  <= unsigned(upLinkData(159 downto 128));
-                    check_prev_cnter_g5_s  <= unsigned(upLinkData(191 downto 160));
-                    
-                    if uplinkSelectFEC_i = '0' then
-                        check_prev_cnter_g6_s  <= unsigned(upLinkData(223 downto 192));
-                    else
-                        check_prev_cnter_g6_s  <= x"00000000";
-                    end if;
-                
-                else
-                    check_prev_cnter_g0_s  <= unsigned(x"0000" & upLinkData(15 downto 0));
-                    check_prev_cnter_g1_s  <= unsigned(x"0000" & upLinkData(31 downto 16));
-                    check_prev_cnter_g2_s  <= unsigned(x"0000" & upLinkData(47 downto 32));
-                    check_prev_cnter_g3_s  <= unsigned(x"0000" & upLinkData(63 downto 48));
-                    check_prev_cnter_g4_s  <= unsigned(x"0000" & upLinkData(79 downto 64));
-                    check_prev_cnter_g5_s  <= unsigned(x"0000" & upLinkData(95 downto 80));
-                    
-                    if uplinkSelectFEC_i = '0' then
-                        check_prev_cnter_g6_s  <= unsigned(x"0000" & upLinkData(111 downto 96));
-                    else
-                        check_prev_cnter_g6_s  <= x"00000000";
-                    end if;
-
-                end if;
-                
-                -- Check value
-                if checker_rdy_s = '1' then
-                
-                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g0_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g0_s = x"0000FFFF") then
-                        check_expected_cnter_g0_s  := x"00000000";
-                    else
-                        check_expected_cnter_g0_s  := check_prev_cnter_g0_s + 1;
-                    end if;
-                
-                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g1_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g1_s = x"0000FFFF") then
-                        check_expected_cnter_g1_s  := x"00000000";
-                    else
-                        check_expected_cnter_g1_s  := check_prev_cnter_g1_s + 1;
-                    end if;
-                
-                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g2_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g2_s = x"0000FFFF") then
-                        check_expected_cnter_g2_s  := x"00000000";
-                    else
-                        check_expected_cnter_g2_s  := check_prev_cnter_g2_s + 1;
-                    end if;
-                
-                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g3_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g3_s = x"0000FFFF") then
-                        check_expected_cnter_g3_s  := x"00000000";
-                    else
-                        check_expected_cnter_g3_s  := check_prev_cnter_g3_s + 1;
-                    end if;
-                
-                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g4_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g4_s = x"0000FFFF") then
-                        check_expected_cnter_g4_s  := x"00000000";
-                    else
-                        check_expected_cnter_g4_s  := check_prev_cnter_g4_s + 1;
-                    end if;
-                
-                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g5_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g5_s = x"0000FFFF") then
-                        check_expected_cnter_g5_s  := x"00000000";
-                    else
-                        check_expected_cnter_g5_s  := check_prev_cnter_g5_s + 1;
-                    end if;
-                
-                    if (uplinkSelectDataRate_i = '1' and check_prev_cnter_g6_s = x"FFFFFFFF") or (uplinkSelectDataRate_i = '0' and check_prev_cnter_g6_s = x"0000FFFF") then
-                        check_expected_cnter_g6_s  := x"00000000";
-                    else
-                        check_expected_cnter_g6_s  := check_prev_cnter_g6_s + 1;
-                    end if;
-                    
-                    if uplinkSelectDataRate_i = '1' then
-                        if unsigned(upLinkData(31 downto 0)) /= check_expected_cnter_g0_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(63 downto 32)) /= check_expected_cnter_g1_s then
-                            uplink_error_o <= '1';                    
-                        end if;
-                        
-                        if unsigned(upLinkData(95 downto 64)) /= check_expected_cnter_g2_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(127 downto 96)) /= check_expected_cnter_g3_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(159 downto 128)) /= check_expected_cnter_g4_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(191 downto 160)) /= check_expected_cnter_g5_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if uplinkSelectFEC_i = '0' and unsigned(upLinkData(223 downto 192)) /= check_expected_cnter_g6_s then
-                            uplink_error_o <= '1';
-                        end if;
-                    
-                    else
-                        if unsigned(upLinkData(15 downto 0)) /= check_expected_cnter_g0_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(31 downto 16)) /= check_expected_cnter_g1_s then
-                            uplink_error_o <= '1';                    
-                        end if;
-                        
-                        if unsigned(upLinkData(47 downto 32)) /= check_expected_cnter_g2_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(63 downto 48)) /= check_expected_cnter_g3_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(79 downto 64)) /= check_expected_cnter_g4_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if unsigned(upLinkData(95 downto 80)) /= check_expected_cnter_g5_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                        if uplinkSelectFEC_i = '0' and unsigned(upLinkData(111 downto 96)) /= check_expected_cnter_g6_s then
-                            uplink_error_o <= '1';
-                        end if;
-                        
-                    end if;
-                    
-                end if;
-                
-                checker_rdy_s <= '1';
-                
-            end if;    
-        end if;
-        
-    end process;
-
-end behavioral;
---=================================================================================================--
---#################################################################################################--
---=================================================================================================--
\ No newline at end of file
diff --git a/Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/jtag_axi_0/jtag_axi_0.xci b/Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/jtag_axi_0/jtag_axi_0.xci
deleted file mode 100644
index 18ce11b..0000000
--- a/Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/jtag_axi_0/jtag_axi_0.xci
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <spirit:vendor>xilinx.com</spirit:vendor>
-  <spirit:library>xci</spirit:library>
-  <spirit:name>unknown</spirit:name>
-  <spirit:version>1.0</spirit:version>
-  <spirit:componentInstances>
-    <spirit:componentInstance>
-      <spirit:instanceName>jtag_axi_0</spirit:instanceName>
-      <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="jtag_axi" spirit:version="1.2"/>
-      <spirit:configurableElementValues>
-        <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.SIGNAL_CLOCK.FREQ_HZ">100000000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.FAMILY">kintexu</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.M_AXI_ADDR_WIDTH">32</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.M_AXI_DATA_WIDTH">32</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.M_AXI_ID_WIDTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.M_HAS_BURST">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.PROTOCOL">2</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.RD_TXN_QUEUE_LENGTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.WR_TXN_QUEUE_LENGTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">jtag_axi_0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_AXI_ADDR_WIDTH">32</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_AXI_DATA_WIDTH">32</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_AXI_ID_WIDTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_HAS_BURST">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROTOCOL">2</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_TXN_QUEUE_LENGTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WR_TXN_QUEUE_LENGTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">kintexu</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD">xilinx.com:kcu105:part0:1.1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xcku040</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ffva1156</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VHDL</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-2</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">E</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2016.3</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
-      </spirit:configurableElementValues>
-      <spirit:vendorExtensions>
-        <xilinx:componentInstanceExtensions>
-          <xilinx:configElementInfos>
-            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.PROTOCOL" xilinx:valueSource="user"/>
-          </xilinx:configElementInfos>
-        </xilinx:componentInstanceExtensions>
-      </spirit:vendorExtensions>
-    </spirit:componentInstance>
-  </spirit:componentInstances>
-</spirit:design>
diff --git a/Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/vio_0/vio_0.xci b/Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/vio_0/vio_0.xci
index 1631093..0839726 100644
--- a/Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/vio_0/vio_0.xci
+++ b/Vivado/lpgbt-fpga-kcu105.srcs/sources_1/ip/vio_0/vio_0.xci
@@ -11,13 +11,13 @@
       <spirit:configurableElementValues>
         <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.SIGNAL_CLOCK.FREQ_HZ">100000000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_PROBE_IN_ACTIVITY">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_PROBE_IN">8</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_PROBE_OUT">11</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_PROBE_IN">4</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_PROBE_OUT">45</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">kintexu</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_EN_PROBE_IN_ACTIVITY">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_EN_SYNCHRONIZATION">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_NUM_PROBE_IN">8</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_NUM_PROBE_OUT">11</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_NUM_PROBE_IN">4</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_NUM_PROBE_OUT">45</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN0_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN100_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN101_WIDTH">1</spirit:configurableElementValue>
@@ -196,7 +196,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN27_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN28_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN29_WIDTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN2_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN2_WIDTH">16</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN30_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN31_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN32_WIDTH">1</spirit:configurableElementValue>
@@ -207,7 +207,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN37_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN38_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN39_WIDTH">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN3_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN3_WIDTH">28</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN40_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN41_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_IN42_WIDTH">1</spirit:configurableElementValue>
@@ -297,7 +297,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT109_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT109_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT10_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT10_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT10_WIDTH">7</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT110_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT110_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT111_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -363,7 +363,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT139_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT139_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT13_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT13_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT13_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT140_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT140_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT141_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -385,7 +385,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT149_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT149_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT14_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT14_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT14_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT150_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT150_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT151_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -407,7 +407,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT159_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT159_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT15_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT15_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT15_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT160_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT160_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT161_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -429,7 +429,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT169_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT169_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT16_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT16_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT16_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT170_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT170_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT171_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -473,7 +473,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT189_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT189_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT18_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT18_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT18_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT190_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT190_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT191_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -495,7 +495,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT199_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT199_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT19_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT19_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT19_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT1_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT1_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT200_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -519,7 +519,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT209_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT209_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT20_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT20_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT20_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT210_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT210_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT211_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -541,7 +541,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT219_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT219_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT21_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT21_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT21_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT220_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT220_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT221_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -563,7 +563,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT229_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT229_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT22_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT22_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT22_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT230_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT230_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT231_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -585,7 +585,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT239_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT239_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT23_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT23_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT23_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT240_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT240_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT241_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -607,7 +607,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT249_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT249_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT24_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT24_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT24_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT250_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT250_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT251_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -621,49 +621,49 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT255_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT255_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT25_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT25_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT25_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT26_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT26_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT26_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT27_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT27_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT27_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT28_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT28_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT28_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT29_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT29_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT29_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT2_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT2_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT30_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT30_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT30_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT31_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT31_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT31_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT32_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT32_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT32_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT33_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT33_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT33_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT34_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT34_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT34_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT35_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT35_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT35_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT36_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT36_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT36_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT37_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT37_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT37_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT38_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT38_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT38_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT39_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT39_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT39_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT3_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT3_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT40_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT40_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT40_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT41_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT41_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT41_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT42_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT42_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT42_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT43_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT43_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT43_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT44_INIT_VAL">0x0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT44_WIDTH">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT44_WIDTH">2</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT45_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT45_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT46_INIT_VAL">0x0</spirit:configurableElementValue>
@@ -785,7 +785,7 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT99_INIT_VAL">0x0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT99_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT9_INIT_VAL">0x00</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT9_WIDTH">7</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_PROBE_OUT9_WIDTH">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">vio_0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">kintexu</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD">xilinx.com:kcu105:part0:1.1</spirit:configurableElementValue>
@@ -812,7 +812,42 @@
           <xilinx:configElementInfos>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_NUM_PROBE_IN" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_NUM_PROBE_OUT" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_IN2_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_IN3_WIDTH" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_IN7_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT10_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT13_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT14_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT15_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT16_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT18_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT19_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT20_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT21_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT22_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT23_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT24_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT25_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT26_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT27_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT28_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT29_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT30_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT31_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT32_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT33_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT34_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT35_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT36_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT37_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT38_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT39_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT40_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT41_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT42_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT43_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT44_WIDTH" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT45_WIDTH" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.C_PROBE_OUT9_WIDTH" xilinx:valueSource="user"/>
           </xilinx:configElementInfos>
         </xilinx:componentInstanceExtensions>
diff --git a/Vivado/lpgbt-fpga-kcu105.xpr b/Vivado/lpgbt-fpga-kcu105.xpr
index 48487c2..67b31d0 100644
--- a/Vivado/lpgbt-fpga-kcu105.xpr
+++ b/Vivado/lpgbt-fpga-kcu105.xpr
@@ -3,7 +3,7 @@
 <!--                                                         -->
 <!-- Copyright 1986-2016 Xilinx, Inc. All Rights Reserved.   -->
 
-<Project Version="7" Minor="17" Path="D:/LpGBT-FPGA/lpgbt-fpga-kcu105 - no hptd for release/Vivado/lpgbt-fpga-kcu105.xpr">
+<Project Version="7" Minor="17" Path="D:/LpGBT-FPGA/lpgbt-fpga-kcu105-git/Vivado/lpgbt-fpga-kcu105.xpr">
   <DefaultLaunch Dir="$PRUNDIR"/>
   <Configuration>
     <Option Name="Id" Val="ee7b1704ed96439f978269f23d8a0350"/>
@@ -20,7 +20,7 @@
     <Option Name="BoardPart" Val="xilinx.com:kcu105:part0:1.1"/>
     <Option Name="ActiveSimSet" Val="sim_1"/>
     <Option Name="DefaultLib" Val="xil_defaultlib"/>
-    <Option Name="IPOutputRepo" Val="$PCACHEDIR/ip"/>
+    <Option Name="IPOutputRepo" Val="$PPRDIR/../../lpgbt-fpga-kcu105 - no hptd for release/Vivado/lpgbt-fpga-kcu105.cache/ip"/>
     <Option Name="IPCachePermission" Val="read"/>
     <Option Name="IPCachePermission" Val="write"/>
     <Option Name="EnableCoreContainer" Val="FALSE"/>
@@ -37,13 +37,13 @@
     <Option Name="WTVcsLaunchSim" Val="0"/>
     <Option Name="WTRivieraLaunchSim" Val="0"/>
     <Option Name="WTActivehdlLaunchSim" Val="0"/>
-    <Option Name="WTXSimExportSim" Val="17"/>
-    <Option Name="WTModelSimExportSim" Val="17"/>
-    <Option Name="WTQuestaExportSim" Val="17"/>
-    <Option Name="WTIesExportSim" Val="17"/>
-    <Option Name="WTVcsExportSim" Val="17"/>
-    <Option Name="WTRivieraExportSim" Val="17"/>
-    <Option Name="WTActivehdlExportSim" Val="17"/>
+    <Option Name="WTXSimExportSim" Val="21"/>
+    <Option Name="WTModelSimExportSim" Val="21"/>
+    <Option Name="WTQuestaExportSim" Val="21"/>
+    <Option Name="WTIesExportSim" Val="21"/>
+    <Option Name="WTVcsExportSim" Val="21"/>
+    <Option Name="WTRivieraExportSim" Val="21"/>
+    <Option Name="WTActivehdlExportSim" Val="21"/>
     <Option Name="GenerateIPUpgradeLog" Val="TRUE"/>
     <Option Name="XSimRadix" Val="hex"/>
     <Option Name="XSimTimeUnit" Val="ns"/>
@@ -53,140 +53,13 @@
   <FileSets Version="1" Minor="31">
     <FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1">
       <Filter Type="Srcs"/>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_mult_3.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_multBy3_5.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_multBy3_4.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_multBy2_5.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_multBy2_4.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_multBy2_3.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_log_3.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_inv_3.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_add_5.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_add_4.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/gf_add_3.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/scrambler60bitOrder58.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/scrambler58bitOrder58.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/scrambler53bitOrder49.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/scrambler51bitOrder49.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/rs_encoder_N31K29.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/rs_encoder_N15K13.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/rs_decoder_N7K5.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/dataPathFecCounter.v">
+      <File Path="$PPRDIR/../LpGBT-FPGA/lpgbtfpga_package.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../LpGBT-FPGA/lpgbtfpga_package.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/top_tb.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
@@ -246,52 +119,9 @@
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/upLinkScrambler.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/upLinkInterleaver.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/upLinkFECEncoder.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/upLinkDataSelect.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/downLinkFECDecoder.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/downLinkDeinterleaver.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/descrambler36bitOrder36.v">
+      <File Path="$PPRDIR/../Mgt/xlx_ku_mgt_ip_reset_synchronizer.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
@@ -331,21 +161,7 @@
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/upLinkDataPath.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/downLinkDataPath.v">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <File Path="$PPRDIR/../Mgt/xlx_ku_mgt_ip_reset_synchronizer.vhd">
+      <File Path="$PPRDIR/../Mgt/xlx_ku_mgt.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
@@ -357,86 +173,85 @@
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../LpGBT-FPGA/dataPath/downlink_dataPath.vhd">
+      <File Path="$PPRDIR/../LpGBT-FPGA/gearbox/txgearbox.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/LpGBT_model/dataPath.v">
+      <File Path="$PPRDIR/../LpGBT-FPGA/gearbox/rxgearbox.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../LpGBT-FPGA/gearbox/rxgearbox.vhd">
+      <File Path="$PPRDIR/../LpGBT-FPGA/mgtFrameAligner/mgt_frameAligner.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../Mgt/xlx_ku_mgt.vhd">
+      <File Path="$PPRDIR/../LpGBT-FPGA/dataPath/downlink_dataPath.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../LpGBT-FPGA/gearbox/txgearbox.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/lpgbt_downlinkGenerator.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../LpGBT-FPGA/mgtFrameAligner/mgt_frameAligner.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/lpgbtfpga_top.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/jtag_controller/lpgbt_axi_control.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/uplink_checker.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/lpgbtfpga_top.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/prbs/prbs7_4b_generator.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/uplinkstimulis_top.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/prbs/prbs7_8b_checker.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/lpgbtemul_top.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/prbs/prbs7_8b_generator.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/downlinkstimulis_top.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/prbs/prbs7_2b_generator.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/datarouter_top.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/prbs/prbs7_32b_checker.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/jtag_controller/jtag_controller_top.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/prbs/prbs7_4b_checker.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../TestBench_hw/top_tb.vhd">
+      <File Path="$PPRDIR/../TestBench_hw/prbs/prbs7_16b_checker.vhd">
         <FileInfo>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
@@ -509,19 +324,6 @@
         <Option Name="UseBlackboxStub" Val="1"/>
       </Config>
     </FileSet>
-    <FileSet Name="jtag_axi_0" Type="BlockSrcs" RelSrcDir="$PSRCDIR/jtag_axi_0">
-      <File Path="$PSRCDIR/sources_1/ip/jtag_axi_0/jtag_axi_0.xci">
-        <FileInfo>
-          <Attr Name="UsedIn" Val="synthesis"/>
-          <Attr Name="UsedIn" Val="implementation"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
-      <Config>
-        <Option Name="TopModule" Val="jtag_axi_0"/>
-        <Option Name="UseBlackboxStub" Val="1"/>
-      </Config>
-    </FileSet>
   </FileSets>
   <Simulators>
     <Simulator Name="XSim">
@@ -566,14 +368,6 @@
       <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
       <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
     </Run>
-    <Run Id="jtag_axi_0_synth_1" Type="Ft3:Synth" SrcSet="jtag_axi_0" Part="xcku040-ffva1156-2-e" ConstrsSet="jtag_axi_0" Description="Vivado Synthesis Defaults" Dir="$PRUNDIR/jtag_axi_0_synth_1" IncludeInArchive="true">
-      <Strategy Version="1" Minor="2">
-        <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2016"/>
-        <Step Id="synth_design"/>
-      </Strategy>
-      <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
-      <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
-    </Run>
     <Run Id="impl_1" Type="Ft2:EntireDesign" Part="xcku040-ffva1156-2-e" ConstrsSet="constrs_1" Description="Default settings for Implementation." State="current" Dir="$PRUNDIR/impl_1" SynthRun="synth_1" IncludeInArchive="true">
       <Strategy Version="1" Minor="2">
         <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2016"/>
@@ -620,20 +414,5 @@
       </Strategy>
       <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
     </Run>
-    <Run Id="jtag_axi_0_impl_1" Type="Ft2:EntireDesign" Part="xcku040-ffva1156-2-e" ConstrsSet="jtag_axi_0" Description="Default settings for Implementation." SynthRun="jtag_axi_0_synth_1" IncludeInArchive="false">
-      <Strategy Version="1" Minor="2">
-        <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2016"/>
-        <Step Id="init_design"/>
-        <Step Id="opt_design"/>
-        <Step Id="power_opt_design"/>
-        <Step Id="place_design"/>
-        <Step Id="post_place_power_opt_design"/>
-        <Step Id="phys_opt_design"/>
-        <Step Id="route_design"/>
-        <Step Id="post_route_phys_opt_design"/>
-        <Step Id="write_bitstream"/>
-      </Strategy>
-      <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
-    </Run>
   </Runs>
 </Project>
-- 
GitLab