diff --git a/Makefile b/Makefile
index 45bc3d02a13b0112a97829b1fa47b775267f1750..6d32d8021040a2c68643f6562b1ad946c7057b12 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,6 @@
 # Global receipes
 none:
 	$(info You should specify what to make: ip, sim, clean, clean-all)
-ip:component.xml
 
 sim:
 
@@ -29,9 +28,12 @@ hdl/combpm_protocol_electron_ctrl.vhd: rdl/combpm_protocol_electron_ctrl.rdl
 
 ###############################################################################
 # Package IP
+ip:component.xml
+
 component.xml:tcl/sources.tcl tcl/combpm.tcl $(hdlsrc) $(xcisrc)
 	vivado -mode batch -source tcl/combpm.tcl
 
+
 ###############################################################################
 # Cleaner Rules
 clean:
@@ -46,5 +48,6 @@ clean-sim:
 
 clean-all:clean-ip clean
 	rm -f tcl/sources.tcl
+	rm -f hdl/combpm_protocol_electron_ctrl.vhd
 
 .PHONY: clean clean-ip clean-sim clean-all none ip sim
diff --git a/hdl/combpm_gtwizard_gthe4_common_wrapper.v b/hdl/combpm_gtwizard_gthe4_common_wrapper.v
new file mode 100644
index 0000000000000000000000000000000000000000..5085df4597ec33d6d573566bf1fe2e52ccef9cd3
--- /dev/null
+++ b/hdl/combpm_gtwizard_gthe4_common_wrapper.v
@@ -0,0 +1,397 @@
+
+
+`timescale 1ps/1ps
+module combpm_gtwizard_gthe4_common_wrapper (
+  input                                   [0:0] GTHE4_COMMON_BGBYPASSB,
+  input                                   [0:0] GTHE4_COMMON_BGMONITORENB,
+  input                                   [0:0] GTHE4_COMMON_BGPDB,
+  input                                   [4:0] GTHE4_COMMON_BGRCALOVRD,
+  input                                   [0:0] GTHE4_COMMON_BGRCALOVRDENB,
+  input                                  [15:0] GTHE4_COMMON_DRPADDR,
+  input                                   [0:0] GTHE4_COMMON_DRPCLK,
+  input                                  [15:0] GTHE4_COMMON_DRPDI,
+  input                                   [0:0] GTHE4_COMMON_DRPEN,
+  input                                   [0:0] GTHE4_COMMON_DRPWE,
+  input                                   [0:0] GTHE4_COMMON_GTGREFCLK0,
+  input                                   [0:0] GTHE4_COMMON_GTGREFCLK1,
+  input                                   [0:0] GTHE4_COMMON_GTNORTHREFCLK00,
+  input                                   [0:0] GTHE4_COMMON_GTNORTHREFCLK01,
+  input                                   [0:0] GTHE4_COMMON_GTNORTHREFCLK10,
+  input                                   [0:0] GTHE4_COMMON_GTNORTHREFCLK11,
+  input                                   [0:0] GTHE4_COMMON_GTREFCLK00,
+  input                                   [0:0] GTHE4_COMMON_GTREFCLK01,
+  input                                   [0:0] GTHE4_COMMON_GTREFCLK10,
+  input                                   [0:0] GTHE4_COMMON_GTREFCLK11,
+  input                                   [0:0] GTHE4_COMMON_GTSOUTHREFCLK00,
+  input                                   [0:0] GTHE4_COMMON_GTSOUTHREFCLK01,
+  input                                   [0:0] GTHE4_COMMON_GTSOUTHREFCLK10,
+  input                                   [0:0] GTHE4_COMMON_GTSOUTHREFCLK11,
+  input                                   [2:0] GTHE4_COMMON_PCIERATEQPLL0,
+  input                                   [2:0] GTHE4_COMMON_PCIERATEQPLL1,
+  input                                   [7:0] GTHE4_COMMON_PMARSVD0,
+  input                                   [7:0] GTHE4_COMMON_PMARSVD1,
+  input                                   [0:0] GTHE4_COMMON_QPLL0CLKRSVD0,
+  input                                   [0:0] GTHE4_COMMON_QPLL0CLKRSVD1,
+  input                                   [7:0] GTHE4_COMMON_QPLL0FBDIV,
+  input                                   [0:0] GTHE4_COMMON_QPLL0LOCKDETCLK,
+  input                                   [0:0] GTHE4_COMMON_QPLL0LOCKEN,
+  input                                   [0:0] GTHE4_COMMON_QPLL0PD,
+  input                                   [2:0] GTHE4_COMMON_QPLL0REFCLKSEL,
+  input                                   [0:0] GTHE4_COMMON_QPLL0RESET,
+  input                                   [0:0] GTHE4_COMMON_QPLL1CLKRSVD0,
+  input                                   [0:0] GTHE4_COMMON_QPLL1CLKRSVD1,
+  input                                   [7:0] GTHE4_COMMON_QPLL1FBDIV,
+  input                                   [0:0] GTHE4_COMMON_QPLL1LOCKDETCLK,
+  input                                   [0:0] GTHE4_COMMON_QPLL1LOCKEN,
+  input                                   [0:0] GTHE4_COMMON_QPLL1PD,
+  input                                   [2:0] GTHE4_COMMON_QPLL1REFCLKSEL,
+  input                                   [0:0] GTHE4_COMMON_QPLL1RESET,
+  input                                   [7:0] GTHE4_COMMON_QPLLRSVD1,
+  input                                   [4:0] GTHE4_COMMON_QPLLRSVD2,
+  input                                   [4:0] GTHE4_COMMON_QPLLRSVD3,
+  input                                   [7:0] GTHE4_COMMON_QPLLRSVD4,
+  input                                   [0:0] GTHE4_COMMON_RCALENB,
+  input                                  [24:0] GTHE4_COMMON_SDM0DATA,
+  input                                   [0:0] GTHE4_COMMON_SDM0RESET,
+  input                                   [0:0] GTHE4_COMMON_SDM0TOGGLE,
+  input                                   [1:0] GTHE4_COMMON_SDM0WIDTH,
+  input                                  [24:0] GTHE4_COMMON_SDM1DATA,
+  input                                   [0:0] GTHE4_COMMON_SDM1RESET,
+  input                                   [0:0] GTHE4_COMMON_SDM1TOGGLE,
+  input                                   [1:0] GTHE4_COMMON_SDM1WIDTH,
+  input                                   [9:0] GTHE4_COMMON_TCONGPI,
+  input                                   [0:0] GTHE4_COMMON_TCONPOWERUP,
+  input                                   [1:0] GTHE4_COMMON_TCONRESET,
+  input                                   [1:0] GTHE4_COMMON_TCONRSVDIN1,
+
+  output                                 [15:0] GTHE4_COMMON_DRPDO,
+  output                                  [0:0] GTHE4_COMMON_DRPRDY,
+  output                                  [7:0] GTHE4_COMMON_PMARSVDOUT0,
+  output                                  [7:0] GTHE4_COMMON_PMARSVDOUT1,
+  output                                  [0:0] GTHE4_COMMON_QPLL0FBCLKLOST,
+  output                                  [0:0] GTHE4_COMMON_QPLL0LOCK,
+  output                                  [0:0] GTHE4_COMMON_QPLL0OUTCLK,
+  output                                  [0:0] GTHE4_COMMON_QPLL0OUTREFCLK,
+  output                                  [0:0] GTHE4_COMMON_QPLL0REFCLKLOST,
+  output                                  [0:0] GTHE4_COMMON_QPLL1FBCLKLOST,
+  output                                  [0:0] GTHE4_COMMON_QPLL1LOCK,
+  output                                  [0:0] GTHE4_COMMON_QPLL1OUTCLK,
+  output                                  [0:0] GTHE4_COMMON_QPLL1OUTREFCLK,
+  output                                  [0:0] GTHE4_COMMON_QPLL1REFCLKLOST,
+  output                                  [7:0] GTHE4_COMMON_QPLLDMONITOR0,
+  output                                  [7:0] GTHE4_COMMON_QPLLDMONITOR1,
+  output                                  [0:0] GTHE4_COMMON_REFCLKOUTMONITOR0,
+  output                                  [0:0] GTHE4_COMMON_REFCLKOUTMONITOR1,
+  output                                  [1:0] GTHE4_COMMON_RXRECCLK0SEL,
+  output                                  [1:0] GTHE4_COMMON_RXRECCLK1SEL,
+  output                                  [3:0] GTHE4_COMMON_SDM0FINALOUT,
+  output                                 [14:0] GTHE4_COMMON_SDM0TESTDATA,
+  output                                  [3:0] GTHE4_COMMON_SDM1FINALOUT,
+  output                                 [14:0] GTHE4_COMMON_SDM1TESTDATA,
+  output                                  [9:0] GTHE4_COMMON_TCONGPO,
+  output                                  [0:0] GTHE4_COMMON_TCONRSVDOUT0
+);
+
+
+
+gtwizard_ultrascale_v1_7_9_gthe4_common #(
+  .GTHE4_COMMON_AEN_QPLL0_FBDIV                 (1'b1),
+  .GTHE4_COMMON_AEN_QPLL1_FBDIV                 (1'b1),
+  .GTHE4_COMMON_AEN_SDM0TOGGLE                  (1'b0),
+  .GTHE4_COMMON_AEN_SDM1TOGGLE                  (1'b0),
+  .GTHE4_COMMON_A_SDM0TOGGLE                    (1'b0),
+  .GTHE4_COMMON_A_SDM1DATA_HIGH                 (9'b000000000),
+  .GTHE4_COMMON_A_SDM1DATA_LOW                  (16'b0000000000000000),
+  .GTHE4_COMMON_A_SDM1TOGGLE                    (1'b0),
+  .GTHE4_COMMON_BGBYPASSB_TIE_EN                (1'b0),
+  .GTHE4_COMMON_BGBYPASSB_VAL                   (1'b1),
+  .GTHE4_COMMON_BGMONITORENB_TIE_EN             (1'b0),
+  .GTHE4_COMMON_BGMONITORENB_VAL                (1'b1),
+  .GTHE4_COMMON_BGPDB_TIE_EN                    (1'b0),
+  .GTHE4_COMMON_BGPDB_VAL                       (1'b1),
+  .GTHE4_COMMON_BGRCALOVRDENB_TIE_EN            (1'b0),
+  .GTHE4_COMMON_BGRCALOVRDENB_VAL               (1'b1),
+  .GTHE4_COMMON_BGRCALOVRD_TIE_EN               (1'b0),
+  .GTHE4_COMMON_BGRCALOVRD_VAL                  (5'b11111),
+  .GTHE4_COMMON_BIAS_CFG0                       (16'b0000000000000000),
+  .GTHE4_COMMON_BIAS_CFG1                       (16'b0000000000000000),
+  .GTHE4_COMMON_BIAS_CFG2                       (16'b0000000100100100),
+  .GTHE4_COMMON_BIAS_CFG3                       (16'b0000000001000001),
+  .GTHE4_COMMON_BIAS_CFG4                       (16'b0000000000010000),
+  .GTHE4_COMMON_BIAS_CFG_RSVD                   (16'b0000000000000000),
+  .GTHE4_COMMON_COMMON_CFG0                     (16'b0000000000000000),
+  .GTHE4_COMMON_COMMON_CFG1                     (16'b0000000000000000),
+  .GTHE4_COMMON_DRPADDR_TIE_EN                  (1'b0),
+  .GTHE4_COMMON_DRPADDR_VAL                     (16'b0000000000000000),
+  .GTHE4_COMMON_DRPCLK_TIE_EN                   (1'b0),
+  .GTHE4_COMMON_DRPCLK_VAL                      (1'b0),
+  .GTHE4_COMMON_DRPDI_TIE_EN                    (1'b0),
+  .GTHE4_COMMON_DRPDI_VAL                       (16'b0000000000000000),
+  .GTHE4_COMMON_DRPEN_TIE_EN                    (1'b0),
+  .GTHE4_COMMON_DRPEN_VAL                       (1'b0),
+  .GTHE4_COMMON_DRPWE_TIE_EN                    (1'b0),
+  .GTHE4_COMMON_DRPWE_VAL                       (1'b0),
+  .GTHE4_COMMON_GTGREFCLK0_TIE_EN               (1'b0),
+  .GTHE4_COMMON_GTGREFCLK0_VAL                  (1'b0),
+  .GTHE4_COMMON_GTGREFCLK1_TIE_EN               (1'b0),
+  .GTHE4_COMMON_GTGREFCLK1_VAL                  (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK00_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK00_VAL             (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK01_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK01_VAL             (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK10_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK10_VAL             (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK11_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTNORTHREFCLK11_VAL             (1'b0),
+  .GTHE4_COMMON_GTREFCLK00_TIE_EN               (1'b0),
+  .GTHE4_COMMON_GTREFCLK00_VAL                  (1'b0),
+  .GTHE4_COMMON_GTREFCLK01_TIE_EN               (1'b0),
+  .GTHE4_COMMON_GTREFCLK01_VAL                  (1'b0),
+  .GTHE4_COMMON_GTREFCLK10_TIE_EN               (1'b0),
+  .GTHE4_COMMON_GTREFCLK10_VAL                  (1'b0),
+  .GTHE4_COMMON_GTREFCLK11_TIE_EN               (1'b0),
+  .GTHE4_COMMON_GTREFCLK11_VAL                  (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK00_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK00_VAL             (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK01_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK01_VAL             (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK10_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK10_VAL             (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK11_TIE_EN          (1'b0),
+  .GTHE4_COMMON_GTSOUTHREFCLK11_VAL             (1'b0),
+  .GTHE4_COMMON_PCIERATEQPLL0_TIE_EN            (1'b0),
+  .GTHE4_COMMON_PCIERATEQPLL0_VAL               (3'b000),
+  .GTHE4_COMMON_PCIERATEQPLL1_TIE_EN            (1'b0),
+  .GTHE4_COMMON_PCIERATEQPLL1_VAL               (3'b000),
+  .GTHE4_COMMON_PMARSVD0_TIE_EN                 (1'b0),
+  .GTHE4_COMMON_PMARSVD0_VAL                    (8'b00000000),
+  .GTHE4_COMMON_PMARSVD1_TIE_EN                 (1'b0),
+  .GTHE4_COMMON_PMARSVD1_VAL                    (8'b00000000),
+  .GTHE4_COMMON_POR_CFG                         (16'b0000000000000000),
+  .GTHE4_COMMON_PPF0_CFG                        (16'b0000011000000000),
+  .GTHE4_COMMON_PPF1_CFG                        (16'b0000011000000000),
+  .GTHE4_COMMON_QPLL0CLKOUT_RATE                ("HALF"),
+  .GTHE4_COMMON_QPLL0CLKRSVD0_TIE_EN            (1'b0),
+  .GTHE4_COMMON_QPLL0CLKRSVD0_VAL               (1'b0),
+  .GTHE4_COMMON_QPLL0CLKRSVD1_TIE_EN            (1'b0),
+  .GTHE4_COMMON_QPLL0CLKRSVD1_VAL               (1'b0),
+  .GTHE4_COMMON_QPLL0FBDIV_TIE_EN               (1'b0),
+  .GTHE4_COMMON_QPLL0FBDIV_VAL                  (8'b00000000),
+  .GTHE4_COMMON_QPLL0LOCKDETCLK_TIE_EN          (1'b0),
+  .GTHE4_COMMON_QPLL0LOCKDETCLK_VAL             (1'b0),
+  .GTHE4_COMMON_QPLL0LOCKEN_TIE_EN              (1'b0),
+  .GTHE4_COMMON_QPLL0LOCKEN_VAL                 (1'b1),
+  .GTHE4_COMMON_QPLL0PD_TIE_EN                  (1'b0),
+  .GTHE4_COMMON_QPLL0PD_VAL                     (1'b0),
+  .GTHE4_COMMON_QPLL0REFCLKSEL_TIE_EN           (1'b0),
+  .GTHE4_COMMON_QPLL0REFCLKSEL_VAL              (3'b001),
+  .GTHE4_COMMON_QPLL0RESET_TIE_EN               (1'b0),
+  .GTHE4_COMMON_QPLL0RESET_VAL                  (1'b0),
+  .GTHE4_COMMON_QPLL0_CFG0                      (16'b0011001100011100),
+  .GTHE4_COMMON_QPLL0_CFG1                      (16'b1101000000111000),
+  .GTHE4_COMMON_QPLL0_CFG1_G3                   (16'b1101000000111000),
+  .GTHE4_COMMON_QPLL0_CFG2                      (16'b0000111111000000),
+  .GTHE4_COMMON_QPLL0_CFG2_G3                   (16'b0000111111000000),
+  .GTHE4_COMMON_QPLL0_CFG3                      (16'b0000000100100000),
+  .GTHE4_COMMON_QPLL0_CFG4                      (16'b0000000000000011),
+  .GTHE4_COMMON_QPLL0_CP                        (10'b0011111111),
+  .GTHE4_COMMON_QPLL0_CP_G3                     (10'b0000001111),
+  .GTHE4_COMMON_QPLL0_FBDIV                     (66),
+  .GTHE4_COMMON_QPLL0_FBDIV_G3                  (160),
+  .GTHE4_COMMON_QPLL0_INIT_CFG0                 (16'b0000001010110010),
+  .GTHE4_COMMON_QPLL0_INIT_CFG1                 (8'b00000000),
+  .GTHE4_COMMON_QPLL0_LOCK_CFG                  (16'b0010010111101000),
+  .GTHE4_COMMON_QPLL0_LOCK_CFG_G3               (16'b0010010111101000),
+  .GTHE4_COMMON_QPLL0_LPF                       (10'b1000111111),
+  .GTHE4_COMMON_QPLL0_LPF_G3                    (10'b0111010101),
+  .GTHE4_COMMON_QPLL0_PCI_EN                    (1'b0),
+  .GTHE4_COMMON_QPLL0_RATE_SW_USE_DRP           (1'b1),
+  .GTHE4_COMMON_QPLL0_REFCLK_DIV                (1),
+  .GTHE4_COMMON_QPLL0_SDM_CFG0                  (16'b0000000010000000),
+  .GTHE4_COMMON_QPLL0_SDM_CFG1                  (16'b0000000000000000),
+  .GTHE4_COMMON_QPLL0_SDM_CFG2                  (16'b0000000000000000),
+  .GTHE4_COMMON_QPLL1CLKOUT_RATE                ("HALF"),
+  .GTHE4_COMMON_QPLL1CLKRSVD0_TIE_EN            (1'b0),
+  .GTHE4_COMMON_QPLL1CLKRSVD0_VAL               (1'b0),
+  .GTHE4_COMMON_QPLL1CLKRSVD1_TIE_EN            (1'b0),
+  .GTHE4_COMMON_QPLL1CLKRSVD1_VAL               (1'b0),
+  .GTHE4_COMMON_QPLL1FBDIV_TIE_EN               (1'b0),
+  .GTHE4_COMMON_QPLL1FBDIV_VAL                  (8'b00000000),
+  .GTHE4_COMMON_QPLL1LOCKDETCLK_TIE_EN          (1'b0),
+  .GTHE4_COMMON_QPLL1LOCKDETCLK_VAL             (1'b0),
+  .GTHE4_COMMON_QPLL1LOCKEN_TIE_EN              (1'b0),
+  .GTHE4_COMMON_QPLL1LOCKEN_VAL                 (1'b1),
+  .GTHE4_COMMON_QPLL1PD_TIE_EN                  (1'b0),
+  .GTHE4_COMMON_QPLL1PD_VAL                     (1'b0),
+  .GTHE4_COMMON_QPLL1REFCLKSEL_TIE_EN           (1'b0),
+  .GTHE4_COMMON_QPLL1REFCLKSEL_VAL              (3'b001),
+  .GTHE4_COMMON_QPLL1RESET_TIE_EN               (1'b0),
+  .GTHE4_COMMON_QPLL1RESET_VAL                  (1'b0),
+  .GTHE4_COMMON_QPLL1_CFG0                      (16'b0011001100011100),
+  .GTHE4_COMMON_QPLL1_CFG1                      (16'b1101000000111000),
+  .GTHE4_COMMON_QPLL1_CFG1_G3                   (16'b1101000000111000),
+  .GTHE4_COMMON_QPLL1_CFG2                      (16'b0000111111000011),
+  .GTHE4_COMMON_QPLL1_CFG2_G3                   (16'b0000111111000011),
+  .GTHE4_COMMON_QPLL1_CFG3                      (16'b0000000100100000),
+  .GTHE4_COMMON_QPLL1_CFG4                      (16'b0000000000000011),
+  .GTHE4_COMMON_QPLL1_CP                        (10'b0011111111),
+  .GTHE4_COMMON_QPLL1_CP_G3                     (10'b0001111111),
+  .GTHE4_COMMON_QPLL1_FBDIV                     (54),
+  .GTHE4_COMMON_QPLL1_FBDIV_G3                  (80),
+  .GTHE4_COMMON_QPLL1_INIT_CFG0                 (16'b0000001010110010),
+  .GTHE4_COMMON_QPLL1_INIT_CFG1                 (8'b00000000),
+  .GTHE4_COMMON_QPLL1_LOCK_CFG                  (16'b0010010111101000),
+  .GTHE4_COMMON_QPLL1_LOCK_CFG_G3               (16'b0010010111101000),
+  .GTHE4_COMMON_QPLL1_LPF                       (10'b1000011111),
+  .GTHE4_COMMON_QPLL1_LPF_G3                    (10'b0111010100),
+  .GTHE4_COMMON_QPLL1_PCI_EN                    (1'b0),
+  .GTHE4_COMMON_QPLL1_RATE_SW_USE_DRP           (1'b1),
+  .GTHE4_COMMON_QPLL1_REFCLK_DIV                (1),
+  .GTHE4_COMMON_QPLL1_SDM_CFG0                  (16'b0000000000000000),
+  .GTHE4_COMMON_QPLL1_SDM_CFG1                  (16'b0000000000000000),
+  .GTHE4_COMMON_QPLL1_SDM_CFG2                  (16'b0000000000000000),
+  .GTHE4_COMMON_QPLLRSVD1_TIE_EN                (1'b0),
+  .GTHE4_COMMON_QPLLRSVD1_VAL                   (8'b00000000),
+  .GTHE4_COMMON_QPLLRSVD2_TIE_EN                (1'b0),
+  .GTHE4_COMMON_QPLLRSVD2_VAL                   (5'b00000),
+  .GTHE4_COMMON_QPLLRSVD3_TIE_EN                (1'b0),
+  .GTHE4_COMMON_QPLLRSVD3_VAL                   (5'b00000),
+  .GTHE4_COMMON_QPLLRSVD4_TIE_EN                (1'b0),
+  .GTHE4_COMMON_QPLLRSVD4_VAL                   (8'b00000000),
+  .GTHE4_COMMON_RCALENB_TIE_EN                  (1'b0),
+  .GTHE4_COMMON_RCALENB_VAL                     (1'b1),
+  .GTHE4_COMMON_RSVD_ATTR0                      (16'b0000000000000000),
+  .GTHE4_COMMON_RSVD_ATTR1                      (16'b0000000000000000),
+  .GTHE4_COMMON_RSVD_ATTR2                      (16'b0000000000000000),
+  .GTHE4_COMMON_RSVD_ATTR3                      (16'b0000000000000000),
+  .GTHE4_COMMON_RXRECCLKOUT0_SEL                (2'b00),
+  .GTHE4_COMMON_RXRECCLKOUT1_SEL                (2'b00),
+  .GTHE4_COMMON_SARC_ENB                        (1'b0),
+  .GTHE4_COMMON_SARC_SEL                        (1'b0),
+  .GTHE4_COMMON_SDM0DATA_TIE_EN                 (1'b0),
+  .GTHE4_COMMON_SDM0DATA_VAL                    (25'b0000000000000000000000000),
+  .GTHE4_COMMON_SDM0INITSEED0_0                 (16'b0000000100010001),
+  .GTHE4_COMMON_SDM0INITSEED0_1                 (9'b000010001),
+  .GTHE4_COMMON_SDM0RESET_TIE_EN                (1'b0),
+  .GTHE4_COMMON_SDM0RESET_VAL                   (1'b0),
+  .GTHE4_COMMON_SDM0TOGGLE_TIE_EN               (1'b0),
+  .GTHE4_COMMON_SDM0TOGGLE_VAL                  (1'b0),
+  .GTHE4_COMMON_SDM0WIDTH_TIE_EN                (1'b0),
+  .GTHE4_COMMON_SDM0WIDTH_VAL                   (2'b00),
+  .GTHE4_COMMON_SDM1DATA_TIE_EN                 (1'b0),
+  .GTHE4_COMMON_SDM1DATA_VAL                    (25'b0010001011010000111001010),
+  .GTHE4_COMMON_SDM1INITSEED0_0                 (16'b0000000100010001),
+  .GTHE4_COMMON_SDM1INITSEED0_1                 (9'b000010001),
+  .GTHE4_COMMON_SDM1RESET_TIE_EN                (1'b0),
+  .GTHE4_COMMON_SDM1RESET_VAL                   (1'b0),
+  .GTHE4_COMMON_SDM1TOGGLE_TIE_EN               (1'b0),
+  .GTHE4_COMMON_SDM1TOGGLE_VAL                  (1'b0),
+  .GTHE4_COMMON_SDM1WIDTH_TIE_EN                (1'b0),
+  .GTHE4_COMMON_SDM1WIDTH_VAL                   (2'b00),
+  .GTHE4_COMMON_SIM_DEVICE                      ("ULTRASCALE_PLUS"),
+  .GTHE4_COMMON_SIM_MODE                        ("FAST"),
+  .GTHE4_COMMON_SIM_RESET_SPEEDUP               ("TRUE"),
+  .GTHE4_COMMON_TCONGPI_TIE_EN                  (1'b0),
+  .GTHE4_COMMON_TCONGPI_VAL                     (10'b0000000000),
+  .GTHE4_COMMON_TCONPOWERUP_TIE_EN              (1'b0),
+  .GTHE4_COMMON_TCONPOWERUP_VAL                 (1'b0),
+  .GTHE4_COMMON_TCONRESET_TIE_EN                (1'b0),
+  .GTHE4_COMMON_TCONRESET_VAL                   (2'b00),
+  .GTHE4_COMMON_TCONRSVDIN1_TIE_EN              (1'b0),
+  .GTHE4_COMMON_TCONRSVDIN1_VAL                 (2'b00)
+) common_inst (
+
+  // inputs
+  .GTHE4_COMMON_BGBYPASSB                       (GTHE4_COMMON_BGBYPASSB),
+  .GTHE4_COMMON_BGMONITORENB                    (GTHE4_COMMON_BGMONITORENB),
+  .GTHE4_COMMON_BGPDB                           (GTHE4_COMMON_BGPDB),
+  .GTHE4_COMMON_BGRCALOVRD                      (GTHE4_COMMON_BGRCALOVRD),
+  .GTHE4_COMMON_BGRCALOVRDENB                   (GTHE4_COMMON_BGRCALOVRDENB),
+  .GTHE4_COMMON_DRPADDR                         (GTHE4_COMMON_DRPADDR),
+  .GTHE4_COMMON_DRPCLK                          (GTHE4_COMMON_DRPCLK),
+  .GTHE4_COMMON_DRPDI                           (GTHE4_COMMON_DRPDI),
+  .GTHE4_COMMON_DRPEN                           (GTHE4_COMMON_DRPEN),
+  .GTHE4_COMMON_DRPWE                           (GTHE4_COMMON_DRPWE),
+  .GTHE4_COMMON_GTGREFCLK0                      (GTHE4_COMMON_GTGREFCLK0),
+  .GTHE4_COMMON_GTGREFCLK1                      (GTHE4_COMMON_GTGREFCLK1),
+  .GTHE4_COMMON_GTNORTHREFCLK00                 (GTHE4_COMMON_GTNORTHREFCLK00),
+  .GTHE4_COMMON_GTNORTHREFCLK01                 (GTHE4_COMMON_GTNORTHREFCLK01),
+  .GTHE4_COMMON_GTNORTHREFCLK10                 (GTHE4_COMMON_GTNORTHREFCLK10),
+  .GTHE4_COMMON_GTNORTHREFCLK11                 (GTHE4_COMMON_GTNORTHREFCLK11),
+  .GTHE4_COMMON_GTREFCLK00                      (GTHE4_COMMON_GTREFCLK00),
+  .GTHE4_COMMON_GTREFCLK01                      (GTHE4_COMMON_GTREFCLK01),
+  .GTHE4_COMMON_GTREFCLK10                      (GTHE4_COMMON_GTREFCLK10),
+  .GTHE4_COMMON_GTREFCLK11                      (GTHE4_COMMON_GTREFCLK11),
+  .GTHE4_COMMON_GTSOUTHREFCLK00                 (GTHE4_COMMON_GTSOUTHREFCLK00),
+  .GTHE4_COMMON_GTSOUTHREFCLK01                 (GTHE4_COMMON_GTSOUTHREFCLK01),
+  .GTHE4_COMMON_GTSOUTHREFCLK10                 (GTHE4_COMMON_GTSOUTHREFCLK10),
+  .GTHE4_COMMON_GTSOUTHREFCLK11                 (GTHE4_COMMON_GTSOUTHREFCLK11),
+  .GTHE4_COMMON_PCIERATEQPLL0                   (GTHE4_COMMON_PCIERATEQPLL0),
+  .GTHE4_COMMON_PCIERATEQPLL1                   (GTHE4_COMMON_PCIERATEQPLL1),
+  .GTHE4_COMMON_PMARSVD0                        (GTHE4_COMMON_PMARSVD0),
+  .GTHE4_COMMON_PMARSVD1                        (GTHE4_COMMON_PMARSVD1),
+  .GTHE4_COMMON_QPLL0CLKRSVD0                   (GTHE4_COMMON_QPLL0CLKRSVD0),
+  .GTHE4_COMMON_QPLL0CLKRSVD1                   (GTHE4_COMMON_QPLL0CLKRSVD1),
+  .GTHE4_COMMON_QPLL0FBDIV                      (GTHE4_COMMON_QPLL0FBDIV),
+  .GTHE4_COMMON_QPLL0LOCKDETCLK                 (GTHE4_COMMON_QPLL0LOCKDETCLK),
+  .GTHE4_COMMON_QPLL0LOCKEN                     (GTHE4_COMMON_QPLL0LOCKEN),
+  .GTHE4_COMMON_QPLL0PD                         (GTHE4_COMMON_QPLL0PD),
+  .GTHE4_COMMON_QPLL0REFCLKSEL                  (GTHE4_COMMON_QPLL0REFCLKSEL),
+  .GTHE4_COMMON_QPLL0RESET                      (GTHE4_COMMON_QPLL0RESET),
+  .GTHE4_COMMON_QPLL1CLKRSVD0                   (GTHE4_COMMON_QPLL1CLKRSVD0),
+  .GTHE4_COMMON_QPLL1CLKRSVD1                   (GTHE4_COMMON_QPLL1CLKRSVD1),
+  .GTHE4_COMMON_QPLL1FBDIV                      (GTHE4_COMMON_QPLL1FBDIV),
+  .GTHE4_COMMON_QPLL1LOCKDETCLK                 (GTHE4_COMMON_QPLL1LOCKDETCLK),
+  .GTHE4_COMMON_QPLL1LOCKEN                     (GTHE4_COMMON_QPLL1LOCKEN),
+  .GTHE4_COMMON_QPLL1PD                         (GTHE4_COMMON_QPLL1PD),
+  .GTHE4_COMMON_QPLL1REFCLKSEL                  (GTHE4_COMMON_QPLL1REFCLKSEL),
+  .GTHE4_COMMON_QPLL1RESET                      (GTHE4_COMMON_QPLL1RESET),
+  .GTHE4_COMMON_QPLLRSVD1                       (GTHE4_COMMON_QPLLRSVD1),
+  .GTHE4_COMMON_QPLLRSVD2                       (GTHE4_COMMON_QPLLRSVD2),
+  .GTHE4_COMMON_QPLLRSVD3                       (GTHE4_COMMON_QPLLRSVD3),
+  .GTHE4_COMMON_QPLLRSVD4                       (GTHE4_COMMON_QPLLRSVD4),
+  .GTHE4_COMMON_RCALENB                         (GTHE4_COMMON_RCALENB),
+  .GTHE4_COMMON_SDM0DATA                        (GTHE4_COMMON_SDM0DATA),
+  .GTHE4_COMMON_SDM0RESET                       (GTHE4_COMMON_SDM0RESET),
+  .GTHE4_COMMON_SDM0TOGGLE                      (GTHE4_COMMON_SDM0TOGGLE),
+  .GTHE4_COMMON_SDM0WIDTH                       (GTHE4_COMMON_SDM0WIDTH),
+  .GTHE4_COMMON_SDM1DATA                        (GTHE4_COMMON_SDM1DATA),
+  .GTHE4_COMMON_SDM1RESET                       (GTHE4_COMMON_SDM1RESET),
+  .GTHE4_COMMON_SDM1TOGGLE                      (GTHE4_COMMON_SDM1TOGGLE),
+  .GTHE4_COMMON_SDM1WIDTH                       (GTHE4_COMMON_SDM1WIDTH),
+  .GTHE4_COMMON_TCONGPI                         (GTHE4_COMMON_TCONGPI),
+  .GTHE4_COMMON_TCONPOWERUP                     (GTHE4_COMMON_TCONPOWERUP),
+  .GTHE4_COMMON_TCONRESET                       (GTHE4_COMMON_TCONRESET),
+  .GTHE4_COMMON_TCONRSVDIN1                     (GTHE4_COMMON_TCONRSVDIN1),
+
+  // outputs
+  .GTHE4_COMMON_DRPDO                           (GTHE4_COMMON_DRPDO),
+  .GTHE4_COMMON_DRPRDY                          (GTHE4_COMMON_DRPRDY),
+  .GTHE4_COMMON_PMARSVDOUT0                     (GTHE4_COMMON_PMARSVDOUT0),
+  .GTHE4_COMMON_PMARSVDOUT1                     (GTHE4_COMMON_PMARSVDOUT1),
+  .GTHE4_COMMON_QPLL0FBCLKLOST                  (GTHE4_COMMON_QPLL0FBCLKLOST),
+  .GTHE4_COMMON_QPLL0LOCK                       (GTHE4_COMMON_QPLL0LOCK),
+  .GTHE4_COMMON_QPLL0OUTCLK                     (GTHE4_COMMON_QPLL0OUTCLK),
+  .GTHE4_COMMON_QPLL0OUTREFCLK                  (GTHE4_COMMON_QPLL0OUTREFCLK),
+  .GTHE4_COMMON_QPLL0REFCLKLOST                 (GTHE4_COMMON_QPLL0REFCLKLOST),
+  .GTHE4_COMMON_QPLL1FBCLKLOST                  (GTHE4_COMMON_QPLL1FBCLKLOST),
+  .GTHE4_COMMON_QPLL1LOCK                       (GTHE4_COMMON_QPLL1LOCK),
+  .GTHE4_COMMON_QPLL1OUTCLK                     (GTHE4_COMMON_QPLL1OUTCLK),
+  .GTHE4_COMMON_QPLL1OUTREFCLK                  (GTHE4_COMMON_QPLL1OUTREFCLK),
+  .GTHE4_COMMON_QPLL1REFCLKLOST                 (GTHE4_COMMON_QPLL1REFCLKLOST),
+  .GTHE4_COMMON_QPLLDMONITOR0                   (GTHE4_COMMON_QPLLDMONITOR0),
+  .GTHE4_COMMON_QPLLDMONITOR1                   (GTHE4_COMMON_QPLLDMONITOR1),
+  .GTHE4_COMMON_REFCLKOUTMONITOR0               (GTHE4_COMMON_REFCLKOUTMONITOR0),
+  .GTHE4_COMMON_REFCLKOUTMONITOR1               (GTHE4_COMMON_REFCLKOUTMONITOR1),
+  .GTHE4_COMMON_RXRECCLK0SEL                    (GTHE4_COMMON_RXRECCLK0SEL),
+  .GTHE4_COMMON_RXRECCLK1SEL                    (GTHE4_COMMON_RXRECCLK1SEL),
+  .GTHE4_COMMON_SDM0FINALOUT                    (GTHE4_COMMON_SDM0FINALOUT),
+  .GTHE4_COMMON_SDM0TESTDATA                    (GTHE4_COMMON_SDM0TESTDATA),
+  .GTHE4_COMMON_SDM1FINALOUT                    (GTHE4_COMMON_SDM1FINALOUT),
+  .GTHE4_COMMON_SDM1TESTDATA                    (GTHE4_COMMON_SDM1TESTDATA),
+  .GTHE4_COMMON_TCONGPO                         (GTHE4_COMMON_TCONGPO),
+  .GTHE4_COMMON_TCONRSVDOUT0                    (GTHE4_COMMON_TCONRSVDOUT0)
+);
+
+endmodule
+
diff --git a/hdl/combpm_gtwizard_gthe4_common_wrapper_inst.vhd b/hdl/combpm_gtwizard_gthe4_common_wrapper_inst.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..15308220593b339fac584597822221f43619045a
--- /dev/null
+++ b/hdl/combpm_gtwizard_gthe4_common_wrapper_inst.vhd
@@ -0,0 +1,92 @@
+-- TRANSCEIVER COMMON BLOCK
+gthe4_common_wrapper_inst: entity work.combpm_gtwizard_gthe4_common_wrapper
+port map(
+    GTHE4_COMMON_BGBYPASSB =>         "1",
+    GTHE4_COMMON_BGMONITORENB =>      "1",
+    GTHE4_COMMON_BGPDB =>             "1",
+    GTHE4_COMMON_BGRCALOVRD =>        "11111",
+    GTHE4_COMMON_BGRCALOVRDENB =>     "1",
+    GTHE4_COMMON_DRPADDR =>           "0000000000000000",
+    GTHE4_COMMON_DRPCLK =>            "0",
+    GTHE4_COMMON_DRPDI =>             "0000000000000000",
+    GTHE4_COMMON_DRPEN =>             "0",
+    GTHE4_COMMON_DRPWE =>             "0",
+    GTHE4_COMMON_GTGREFCLK0 =>        "0",
+    GTHE4_COMMON_GTGREFCLK1 =>        "0",
+    GTHE4_COMMON_GTNORTHREFCLK00 =>   "0",
+    GTHE4_COMMON_GTNORTHREFCLK01 =>   "0",
+    GTHE4_COMMON_GTNORTHREFCLK10 =>   "0",
+    GTHE4_COMMON_GTNORTHREFCLK11 =>   "0",
+    GTHE4_COMMON_GTREFCLK00 =>        (gtrefclk00_int [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_GTREFCLK01 =>        (gtrefclk01_int [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_GTREFCLK10 =>        "0",
+    GTHE4_COMMON_GTREFCLK11 =>        "0",
+    GTHE4_COMMON_GTSOUTHREFCLK00 =>   "0",
+    GTHE4_COMMON_GTSOUTHREFCLK01 =>   "0",
+    GTHE4_COMMON_GTSOUTHREFCLK10 =>   "0",
+    GTHE4_COMMON_GTSOUTHREFCLK11 =>   "0",
+    GTHE4_COMMON_PCIERATEQPLL0 =>     "000",
+    GTHE4_COMMON_PCIERATEQPLL1 =>     "000",
+    GTHE4_COMMON_PMARSVD0 =>          "00000000",
+    GTHE4_COMMON_PMARSVD1 =>          "00000000",
+    GTHE4_COMMON_QPLL0CLKRSVD0 =>     "0",
+    GTHE4_COMMON_QPLL0CLKRSVD1 =>     "0",
+    GTHE4_COMMON_QPLL0FBDIV =>        "00000000",
+    GTHE4_COMMON_QPLL0LOCKDETCLK =>   "0",
+    GTHE4_COMMON_QPLL0LOCKEN =>       "1",
+    GTHE4_COMMON_QPLL0PD =>           "0",
+    GTHE4_COMMON_QPLL0REFCLKSEL =>    "001",
+    GTHE4_COMMON_QPLL0RESET =>        (qpll0reset_int [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_QPLL1CLKRSVD0 =>     "0",
+    GTHE4_COMMON_QPLL1CLKRSVD1 =>     "0",
+    GTHE4_COMMON_QPLL1FBDIV =>        "00000000",
+    GTHE4_COMMON_QPLL1LOCKDETCLK =>   "0",
+    GTHE4_COMMON_QPLL1LOCKEN =>       "1",
+    GTHE4_COMMON_QPLL1PD =>           "0",
+    GTHE4_COMMON_QPLL1REFCLKSEL =>    "001",
+    GTHE4_COMMON_QPLL1RESET =>        (qpll1reset_int [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_QPLLRSVD1 =>         "00000000",
+    GTHE4_COMMON_QPLLRSVD2 =>         "00000",
+    GTHE4_COMMON_QPLLRSVD3 =>         "00000",
+    GTHE4_COMMON_QPLLRSVD4 =>         "00000000",
+    GTHE4_COMMON_RCALENB =>           "1",
+    GTHE4_COMMON_SDM0DATA =>          "0000000000000000000000000",
+    GTHE4_COMMON_SDM0RESET =>         "0",
+    GTHE4_COMMON_SDM0TOGGLE =>        "0",
+    GTHE4_COMMON_SDM0WIDTH =>         "00",
+    GTHE4_COMMON_SDM1DATA =>          "0010001011010000111001010",
+    GTHE4_COMMON_SDM1RESET =>         "0",
+    GTHE4_COMMON_SDM1TOGGLE =>        "0",
+    GTHE4_COMMON_SDM1WIDTH =>         "00",
+    GTHE4_COMMON_TCONGPI =>           "0000000000",
+    GTHE4_COMMON_TCONPOWERUP =>       "0",
+    GTHE4_COMMON_TCONRESET =>         "00",
+    GTHE4_COMMON_TCONRSVDIN1 =>       "00",
+    GTHE4_COMMON_DRPDO =>             open,
+    GTHE4_COMMON_DRPRDY =>            open,
+    GTHE4_COMMON_PMARSVDOUT0 =>       open,
+    GTHE4_COMMON_PMARSVDOUT1 =>       open,
+    GTHE4_COMMON_QPLL0FBCLKLOST =>    open,
+    GTHE4_COMMON_QPLL0LOCK =>         (qpll0lock_int      [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_QPLL0OUTCLK =>       (qpll0outclk_out    [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_QPLL0OUTREFCLK =>    (qpll0outrefclk_out [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO open
+    GTHE4_COMMON_QPLL0REFCLKLOST =>   open,
+    GTHE4_COMMON_QPLL1FBCLKLOST =>    open,
+    GTHE4_COMMON_QPLL1LOCK =>         (qpll1lock_int      [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_QPLL1OUTCLK =>       (qpll1outclk_out    [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO
+    GTHE4_COMMON_QPLL1OUTREFCLK =>    (qpll1outrefclk_out [f_ub_cm( 1,(4*cm)+3) : f_lb_cm( 1,4*cm)]),  // TODO open
+    GTHE4_COMMON_QPLL1REFCLKLOST =>   open,
+    GTHE4_COMMON_QPLLDMONITOR0 =>     open,
+    GTHE4_COMMON_QPLLDMONITOR1 =>     open,
+    GTHE4_COMMON_REFCLKOUTMONITOR0 => open,
+    GTHE4_COMMON_REFCLKOUTMONITOR1 => open,
+    GTHE4_COMMON_RXRECCLK0SEL =>      open,
+    GTHE4_COMMON_RXRECCLK1SEL =>      open,
+    GTHE4_COMMON_SDM0FINALOUT =>      open,
+    GTHE4_COMMON_SDM0TESTDATA =>      open,
+    GTHE4_COMMON_SDM1FINALOUT =>      open,
+    GTHE4_COMMON_SDM1TESTDATA =>      open,
+    GTHE4_COMMON_TCONGPO =>           open,
+    GTHE4_COMMON_TCONRSVDOUT0 =>      open
+);
+
diff --git a/hdl/combpm_gtwrapper.vhd b/hdl/combpm_gtwrapper.vhd
deleted file mode 100644
index 4658bb872399c0f22421e55fbffa78769ee20be6..0000000000000000000000000000000000000000
--- a/hdl/combpm_gtwrapper.vhd
+++ /dev/null
@@ -1,183 +0,0 @@
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.std_logic_misc.all;
-
-library UNISIM;
-use UNISIM.vcomponents.all;
-
-use work.combpm_gtwrapper_pkg.all;
-
-entity combpm_gtwrapper is
-    port(
-        -- 100MHz clock, main ref clock
-        clk_100                                                    : in std_logic;
-
-        -- Usrclock for data transfer
-        usrclk                                                     : out std_logic;
-
-        -- Async reset active low
-        rst_n                                                      : in std_logic;
-
-        -- Differential reference clock inputs and buffered output
-        mgtrefclk_p                                                : in std_logic;
-        mgtrefclk_n                                                : in std_logic;
-        mgtrefclk                                                  : out std_logic;
-
-        -- SFP interfaces
-        sfp_txp                                                    : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        sfp_txn                                                    : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        sfp_rxp                                                    : in std_logic_vector(C_NUM_CHAN-1 downto 0);
-        sfp_rxn                                                    : in std_logic_vector(C_NUM_CHAN-1 downto 0);
-        sfp_rx_los                                                 : in std_logic_vector(C_NUM_CHAN-1 downto 0);
-        sfp_mod_abs                                                : in std_logic_vector(C_NUM_CHAN-1 downto 0);
-        sfp_tx_disable                                             : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        sfp_tx_fault                                               : in std_logic_vector(C_NUM_CHAN-1 downto 0);
-
-        -- GT interfaces
-        gt_datarx                                                  : out std_logic_vector(16*C_NUM_CHAN-1 downto 0);
-        gt_datatx                                                  : in std_logic_vector(16*C_NUM_CHAN-1 downto 0);
-        gt_powergood                                               : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_qplllock                                                : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_txclkactive                                             : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxclkactive                                             : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_txresetdone                                             : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxresetdone                                             : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxbyteisaligned                                         : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxbyterealign                                           : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxcommadet                                              : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxcdrlock                                               : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_txfault                                                 : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxlos                                                   : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_modabs                                                  : out std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rstall                                                  : in std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_rxcommadeten                                            : in std_logic_vector(C_NUM_CHAN-1 downto 0);
-        gt_txdisable                                               : in std_logic_vector(C_NUM_CHAN-1 downto 0)
-    );
-end entity combpm_gtwrapper;
-
-architecture struct of combpm_gtwrapper is
-
-    --------------------------------
-    -- INTERFACE PORT ASSOCIATION --
-    --------------------------------
-    ATTRIBUTE X_INTERFACE_INFO                         : STRING;
-    ATTRIBUTE X_INTERFACE_PARAMETER                    : STRING;
-
-    ATTRIBUTE X_INTERFACE_INFO of clk_100              :  SIGNAL is "xilinx.com:signal:clock:1.0 clk_100 CLK";
-    ATTRIBUTE X_INTERFACE_PARAMETER of clk_100         :  SIGNAL is "FREQ 100000000";
-    ATTRIBUTE X_INTERFACE_INFO of rst_n                :  SIGNAL is "xilinx.com:signal:reset:1.0 rst_n RST";
-    ATTRIBUTE X_INTERFACE_PARAMETER of rst_n           :  SIGNAL is "POLARITY ACTIVE_LOW";
-
-    ------------------------
-    -- SIGNAL DECLARATION --
-    ------------------------
-    signal txclkactive      : std_logic;
-    signal rxclkactive      : std_logic;
-    signal rstall           : std_logic;
-    signal txresetdone      : std_logic;
-    signal rxresetdone      : std_logic;
-    signal qplllock         : std_logic;
-    signal ref_clk          : std_logic;
-
-
-begin
-
-    ---------------------
-    -- DIFF CLK BUFFER --
-    ---------------------
-    ibufd_clkref_inst: IBUFDS_GTE4
-    generic map (
-        REFCLK_EN_TX_PATH          => '0',
-        REFCLK_HROW_CK_SEL         => "00",
-        REFCLK_ICNTL_RX            => "00"
-    )
-    port map (
-        O                          => ref_clk,
-        ODIV2                      => open,
-        CEB                        => '0',
-        I                          => mgtrefclk_p,
-        IB                         => mgtrefclk_n
-    );
-    -- Connect to output port
-    mgtrefclk <= ref_clk;
-
-
-    -----------------
-    -- MAP SIGNALS --
-    -----------------
-    g_map_sigs:for I in 0 to C_NUM_CHAN-1 generate
-        gt_txclkactive(I)   <= txclkactive;
-        gt_rxclkactive(I)   <= rxclkactive;
-        gt_txresetdone(I)   <= txresetdone;
-        gt_rxresetdone(I)   <= rxresetdone;
-        gt_qplllock(I)      <= qplllock;
-    end generate g_map_sigs;
-
-    rstall          <= or_reduce(gt_rstall);
-    gt_txfault      <= sfp_tx_fault;
-    gt_rxlos        <= sfp_rx_los;
-    gt_modabs       <= sfp_mod_abs;
-    sfp_tx_disable  <= gt_txdisable;
-
-    -- Temporary
-    qplllock <= '1';
-
-    --------------------------
-    -- TRANSCEIVER INSTANCE --
-    --------------------------
-    gtwiz_inst: combpm_gtwizard
-    PORT MAP (
-        gtwiz_userclk_tx_reset_in             => "0",
-        gtwiz_userclk_tx_srcclk_out           => open,
-        gtwiz_userclk_tx_usrclk_out           => open,
-        gtwiz_userclk_tx_usrclk2_out          => open,
-        gtwiz_userclk_tx_active_out(0)        => txclkactive,
-        gtwiz_userclk_rx_reset_in             => "0",
-        gtwiz_userclk_rx_srcclk_out           => open,
-        gtwiz_userclk_rx_usrclk_out(0)        => usrclk,
-        gtwiz_userclk_rx_usrclk2_out          => open,
-        gtwiz_userclk_rx_active_out(0)        => rxclkactive,
-        gtwiz_reset_clk_freerun_in(0)         => clk_100,
-        gtwiz_reset_all_in(0)                 => rstall,
-        gtwiz_reset_tx_pll_and_datapath_in    => "0",
-        gtwiz_reset_tx_datapath_in            => "0",
-        gtwiz_reset_rx_pll_and_datapath_in    => "0",
-        gtwiz_reset_rx_datapath_in            => "0",
-        gtwiz_reset_rx_cdr_stable_out         => open,
-        gtwiz_reset_tx_done_out(0)            => txresetdone,
-        gtwiz_reset_rx_done_out(0)            => rxresetdone,
-        gtwiz_userdata_tx_in                  => gt_datatx,
-        gtwiz_userdata_rx_out                 => gt_datarx,
-        gtrefclk01_in(0)                      => ref_clk,
-        --qpll1lock_out(0)                      => qplllock,
-        qpll1outclk_out                       => open,
-        qpll1outrefclk_out                    => open,
-        gthrxn_in                             => sfp_rxn,
-        gthrxp_in                             => sfp_rxp,
-        rxbufreset_in                         => (others => '0'),
-        rx8b10ben_in                          => (others => '1'),
-        rxcommadeten_in                       => gt_rxcommadeten,
-        rxmcommaalignen_in                    => (others => '1'),
-        rxpcommaalignen_in                    => (others => '1'),
-        tx8b10ben_in                          => (others => '1'),
-        txctrl0_in                            => (others => '0'),
-        txctrl1_in                            => (others => '0'),
-        txctrl2_in                            => (others => '0'),
-        gthtxn_out                            => sfp_txn,
-        gthtxp_out                            => sfp_txp,
-        gtpowergood_out                       => gt_powergood,
-        rxbufstatus_out                       => open,
-        rxbyteisaligned_out                   => gt_rxbyteisaligned,
-        rxbyterealign_out                     => gt_rxbyterealign,
-        rxclkcorcnt_out                       => open,
-        rxcommadet_out                        => gt_rxcommadet,
-        rxctrl0_out                           => open,
-        rxctrl1_out                           => open,
-        rxctrl2_out                           => open,
-        rxctrl3_out                           => open,
-        rxpmaresetdone_out                    => open,
-        txpmaresetdone_out                    => open
-    );
-
-end architecture struct;
-
diff --git a/hdl/gtwizard_ultrascale_v1_7_gthe4_common.v b/hdl/gtwizard_ultrascale_v1_7_gthe4_common.v
new file mode 100755
index 0000000000000000000000000000000000000000..3f7c77b6785fdfb4b93f54784175b0d5ad66af9e
--- /dev/null
+++ b/hdl/gtwizard_ultrascale_v1_7_gthe4_common.v
@@ -0,0 +1,928 @@
+//------------------------------------------------------------------------------
+//  (c) Copyright 2013-2015 Xilinx, Inc. All rights reserved.
+//
+//  This file contains confidential and proprietary information
+//  of Xilinx, Inc. and is protected under U.S. and
+//  international copyright and other intellectual property
+//  laws.
+//
+//  DISCLAIMER
+//  This disclaimer is not a license and does not grant any
+//  rights to the materials distributed herewith. Except as
+//  otherwise provided in a valid license issued to you by
+//  Xilinx, and to the maximum extent permitted by applicable
+//  law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
+//  WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
+//  AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
+//  BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
+//  INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
+//  (2) Xilinx shall not be liable (whether in contract or tort,
+//  including negligence, or under any other theory of
+//  liability) for any loss or damage of any kind or nature
+//  related to, arising under or in connection with these
+//  materials, including for any direct, or any indirect,
+//  special, incidental, or consequential loss or damage
+//  (including loss of data, profits, goodwill, or any type of
+//  loss or damage suffered as a result of any action brought
+//  by a third party) even if such damage or loss was
+//  reasonably foreseeable or Xilinx had been advised of the
+//  possibility of the same.
+//
+//  CRITICAL APPLICATIONS
+//  Xilinx products are not designed or intended to be fail-
+//  safe, or for use in any application requiring fail-safe
+//  performance, such as life-support or safety devices or
+//  systems, Class III medical devices, nuclear facilities,
+//  applications related to the deployment of airbags, or any
+//  other applications that could lead to death, personal
+//  injury, or severe property or environmental damage
+//  (individually and collectively, "Critical
+//  Applications"). Customer assumes the sole risk and
+//  liability of any use of Xilinx products in Critical
+//  Applications, subject only to applicable laws and
+//  regulations governing limitations on product liability.
+//
+//  THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
+//  PART OF THIS FILE AT ALL TIMES.
+//------------------------------------------------------------------------------
+
+// ***************************
+// * DO NOT MODIFY THIS FILE *
+// ***************************
+
+`timescale 1ps/1ps
+
+module gtwizard_ultrascale_v1_7_9_gthe4_common #(
+
+
+  // -------------------------------------------------------------------------------------------------------------------
+  // Parameters relating to GTHE4_COMMON primitive
+  // -------------------------------------------------------------------------------------------------------------------
+
+  // primitive wrapper parameters which override corresponding GTHE4_COMMON primitive parameters
+  parameter   [0:0] GTHE4_COMMON_AEN_QPLL0_FBDIV = 1'b1,
+  parameter   [0:0] GTHE4_COMMON_AEN_QPLL1_FBDIV = 1'b1,
+  parameter   [0:0] GTHE4_COMMON_AEN_SDM0TOGGLE = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_AEN_SDM1TOGGLE = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_A_SDM0TOGGLE = 1'b0,
+  parameter   [8:0] GTHE4_COMMON_A_SDM1DATA_HIGH = 9'b000000000,
+  parameter  [15:0] GTHE4_COMMON_A_SDM1DATA_LOW = 16'b0000000000000000,
+  parameter   [0:0] GTHE4_COMMON_A_SDM1TOGGLE = 1'b0,
+  parameter  [15:0] GTHE4_COMMON_BIAS_CFG0 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_BIAS_CFG1 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_BIAS_CFG2 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_BIAS_CFG3 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_BIAS_CFG4 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_BIAS_CFG_RSVD = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_COMMON_CFG0 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_COMMON_CFG1 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_POR_CFG = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_PPF0_CFG = 16'h0F00,
+  parameter  [15:0] GTHE4_COMMON_PPF1_CFG = 16'h0F00,
+  parameter         GTHE4_COMMON_QPLL0CLKOUT_RATE = "FULL",
+  parameter  [15:0] GTHE4_COMMON_QPLL0_CFG0 = 16'h391C,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_CFG1 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_CFG1_G3 = 16'h0020,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_CFG2 = 16'h0F80,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_CFG2_G3 = 16'h0F80,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_CFG3 = 16'h0120,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_CFG4 = 16'h0002,
+  parameter   [9:0] GTHE4_COMMON_QPLL0_CP = 10'b0000011111,
+  parameter   [9:0] GTHE4_COMMON_QPLL0_CP_G3 = 10'b0000011111,
+  parameter integer GTHE4_COMMON_QPLL0_FBDIV = 66,
+  parameter integer GTHE4_COMMON_QPLL0_FBDIV_G3 = 80,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_INIT_CFG0 = 16'h0000,
+  parameter   [7:0] GTHE4_COMMON_QPLL0_INIT_CFG1 = 8'h00,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_LOCK_CFG = 16'h01E8,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_LOCK_CFG_G3 = 16'h21E8,
+  parameter   [9:0] GTHE4_COMMON_QPLL0_LPF = 10'b1011111111,
+  parameter   [9:0] GTHE4_COMMON_QPLL0_LPF_G3 = 10'b1111111111,
+  parameter   [0:0] GTHE4_COMMON_QPLL0_PCI_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0_RATE_SW_USE_DRP = 1'b0,
+  parameter integer GTHE4_COMMON_QPLL0_REFCLK_DIV = 1,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_SDM_CFG0 = 16'h0040,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_SDM_CFG1 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_QPLL0_SDM_CFG2 = 16'h0000,
+  parameter         GTHE4_COMMON_QPLL1CLKOUT_RATE = "FULL",
+  parameter  [15:0] GTHE4_COMMON_QPLL1_CFG0 = 16'h691C,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_CFG1 = 16'h0020,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_CFG1_G3 = 16'h0020,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_CFG2 = 16'h0F80,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_CFG2_G3 = 16'h0F80,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_CFG3 = 16'h0120,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_CFG4 = 16'h0002,
+  parameter   [9:0] GTHE4_COMMON_QPLL1_CP = 10'b0000011111,
+  parameter   [9:0] GTHE4_COMMON_QPLL1_CP_G3 = 10'b0000011111,
+  parameter integer GTHE4_COMMON_QPLL1_FBDIV = 66,
+  parameter integer GTHE4_COMMON_QPLL1_FBDIV_G3 = 80,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_INIT_CFG0 = 16'h0000,
+  parameter   [7:0] GTHE4_COMMON_QPLL1_INIT_CFG1 = 8'h00,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_LOCK_CFG = 16'h01E8,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_LOCK_CFG_G3 = 16'h21E8,
+  parameter   [9:0] GTHE4_COMMON_QPLL1_LPF = 10'b1011111111,
+  parameter   [9:0] GTHE4_COMMON_QPLL1_LPF_G3 = 10'b1111111111,
+  parameter   [0:0] GTHE4_COMMON_QPLL1_PCI_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1_RATE_SW_USE_DRP = 1'b0,
+  parameter integer GTHE4_COMMON_QPLL1_REFCLK_DIV = 1,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_SDM_CFG0 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_SDM_CFG1 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_QPLL1_SDM_CFG2 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_RSVD_ATTR0 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_RSVD_ATTR1 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_RSVD_ATTR2 = 16'h0000,
+  parameter  [15:0] GTHE4_COMMON_RSVD_ATTR3 = 16'h0000,
+  parameter   [1:0] GTHE4_COMMON_RXRECCLKOUT0_SEL = 2'b00,
+  parameter   [1:0] GTHE4_COMMON_RXRECCLKOUT1_SEL = 2'b00,
+  parameter   [0:0] GTHE4_COMMON_SARC_ENB = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SARC_SEL = 1'b0,
+  parameter  [15:0] GTHE4_COMMON_SDM0INITSEED0_0 = 16'b0000000000000000,
+  parameter   [8:0] GTHE4_COMMON_SDM0INITSEED0_1 = 9'b000000000,
+  parameter  [15:0] GTHE4_COMMON_SDM1INITSEED0_0 = 16'b0000000000000000,
+  parameter   [8:0] GTHE4_COMMON_SDM1INITSEED0_1 = 9'b000000000,
+  parameter         GTHE4_COMMON_SIM_MODE = "FAST",
+  parameter         GTHE4_COMMON_SIM_RESET_SPEEDUP = "TRUE",
+  parameter         GTHE4_COMMON_SIM_DEVICE  = "ULTRASCALE_PLUS",
+
+  // primitive wrapper parameters which specify GTHE4_COMMON primitive input port default driver values
+  parameter   [0:0] GTHE4_COMMON_BGBYPASSB_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_BGMONITORENB_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_BGPDB_VAL = 1'b0,
+  parameter   [4:0] GTHE4_COMMON_BGRCALOVRD_VAL = 5'b0,
+  parameter   [0:0] GTHE4_COMMON_BGRCALOVRDENB_VAL = 1'b0,
+  parameter  [15:0] GTHE4_COMMON_DRPADDR_VAL = 16'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPCLK_VAL = 1'b0,
+  parameter  [15:0] GTHE4_COMMON_DRPDI_VAL = 16'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPEN_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPWE_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTGREFCLK0_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTGREFCLK1_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK00_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK01_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK10_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK11_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK00_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK01_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK10_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK11_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK00_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK01_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK10_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK11_VAL = 1'b0,
+  parameter   [2:0] GTHE4_COMMON_PCIERATEQPLL0_VAL = 3'b0,
+  parameter   [2:0] GTHE4_COMMON_PCIERATEQPLL1_VAL = 3'b0,
+  parameter   [7:0] GTHE4_COMMON_PMARSVD0_VAL = 8'b0,
+  parameter   [7:0] GTHE4_COMMON_PMARSVD1_VAL = 8'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0CLKRSVD0_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0CLKRSVD1_VAL = 1'b0,
+  parameter   [7:0] GTHE4_COMMON_QPLL0FBDIV_VAL = 8'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0LOCKDETCLK_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0LOCKEN_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0PD_VAL = 1'b0,
+  parameter   [2:0] GTHE4_COMMON_QPLL0REFCLKSEL_VAL = 3'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0RESET_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1CLKRSVD0_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1CLKRSVD1_VAL = 1'b0,
+  parameter   [7:0] GTHE4_COMMON_QPLL1FBDIV_VAL = 8'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1LOCKDETCLK_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1LOCKEN_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1PD_VAL = 1'b0,
+  parameter   [2:0] GTHE4_COMMON_QPLL1REFCLKSEL_VAL = 3'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1RESET_VAL = 1'b0,
+  parameter   [7:0] GTHE4_COMMON_QPLLRSVD1_VAL = 8'b0,
+  parameter   [4:0] GTHE4_COMMON_QPLLRSVD2_VAL = 5'b0,
+  parameter   [4:0] GTHE4_COMMON_QPLLRSVD3_VAL = 5'b0,
+  parameter   [7:0] GTHE4_COMMON_QPLLRSVD4_VAL = 8'b0,
+  parameter   [0:0] GTHE4_COMMON_RCALENB_VAL = 1'b0,
+  parameter  [24:0] GTHE4_COMMON_SDM0DATA_VAL = 25'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM0RESET_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM0TOGGLE_VAL = 1'b0,
+  parameter   [1:0] GTHE4_COMMON_SDM0WIDTH_VAL = 2'b0,
+  parameter  [24:0] GTHE4_COMMON_SDM1DATA_VAL = 25'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM1RESET_VAL = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM1TOGGLE_VAL = 1'b0,
+  parameter   [1:0] GTHE4_COMMON_SDM1WIDTH_VAL = 2'b0,
+  parameter   [9:0] GTHE4_COMMON_TCONGPI_VAL = 10'b0,
+  parameter   [0:0] GTHE4_COMMON_TCONPOWERUP_VAL = 1'b0,
+  parameter   [1:0] GTHE4_COMMON_TCONRESET_VAL = 2'b0,
+  parameter   [1:0] GTHE4_COMMON_TCONRSVDIN1_VAL = 2'b0,
+
+  // primitive wrapper parameters which control GTHE4_COMMON primitive input port tie-off enablement
+  parameter   [0:0] GTHE4_COMMON_BGBYPASSB_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_BGMONITORENB_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_BGPDB_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_BGRCALOVRD_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_BGRCALOVRDENB_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPADDR_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPCLK_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPDI_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPEN_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_DRPWE_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTGREFCLK0_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTGREFCLK1_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK00_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK01_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK10_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTNORTHREFCLK11_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK00_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK01_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK10_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTREFCLK11_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK00_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK01_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK10_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_GTSOUTHREFCLK11_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_PCIERATEQPLL0_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_PCIERATEQPLL1_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_PMARSVD0_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_PMARSVD1_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0CLKRSVD0_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0CLKRSVD1_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0FBDIV_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0LOCKDETCLK_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0LOCKEN_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0PD_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0REFCLKSEL_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL0RESET_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1CLKRSVD0_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1CLKRSVD1_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1FBDIV_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1LOCKDETCLK_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1LOCKEN_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1PD_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1REFCLKSEL_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLL1RESET_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLLRSVD1_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLLRSVD2_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLLRSVD3_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_QPLLRSVD4_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_RCALENB_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM0DATA_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM0RESET_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM0TOGGLE_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM0WIDTH_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM1DATA_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM1RESET_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM1TOGGLE_TIE_EN = 1'b0,
+  parameter   [0:0] GTHE4_COMMON_SDM1WIDTH_TIE_EN = 1'b0,
+  parameter   [9:0] GTHE4_COMMON_TCONGPI_TIE_EN = 10'b0,
+  parameter   [0:0] GTHE4_COMMON_TCONPOWERUP_TIE_EN = 1'b0,
+  parameter   [1:0] GTHE4_COMMON_TCONRESET_TIE_EN = 2'b0,
+  parameter   [1:0] GTHE4_COMMON_TCONRSVDIN1_TIE_EN = 2'b0
+
+)(
+
+
+  // -------------------------------------------------------------------------------------------------------------------
+  // Ports relating to GTHE4_COMMON primitive
+  // -------------------------------------------------------------------------------------------------------------------
+
+  // primitive wrapper input ports which can drive corresponding GTHE4_COMMON primitive input ports
+  input  wire [ 0:0] GTHE4_COMMON_BGBYPASSB,
+  input  wire [ 0:0] GTHE4_COMMON_BGMONITORENB,
+  input  wire [ 0:0] GTHE4_COMMON_BGPDB,
+  input  wire [ 4:0] GTHE4_COMMON_BGRCALOVRD,
+  input  wire [ 0:0] GTHE4_COMMON_BGRCALOVRDENB,
+  input  wire [15:0] GTHE4_COMMON_DRPADDR,
+  input  wire [ 0:0] GTHE4_COMMON_DRPCLK,
+  input  wire [15:0] GTHE4_COMMON_DRPDI,
+  input  wire [ 0:0] GTHE4_COMMON_DRPEN,
+  input  wire [ 0:0] GTHE4_COMMON_DRPWE,
+  input  wire [ 0:0] GTHE4_COMMON_GTGREFCLK0,
+  input  wire [ 0:0] GTHE4_COMMON_GTGREFCLK1,
+  input  wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK00,
+  input  wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK01,
+  input  wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK10,
+  input  wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK11,
+  input  wire [ 0:0] GTHE4_COMMON_GTREFCLK00,
+  input  wire [ 0:0] GTHE4_COMMON_GTREFCLK01,
+  input  wire [ 0:0] GTHE4_COMMON_GTREFCLK10,
+  input  wire [ 0:0] GTHE4_COMMON_GTREFCLK11,
+  input  wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK00,
+  input  wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK01,
+  input  wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK10,
+  input  wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK11,
+  input  wire [ 2:0] GTHE4_COMMON_PCIERATEQPLL0,
+  input  wire [ 2:0] GTHE4_COMMON_PCIERATEQPLL1,
+  input  wire [ 7:0] GTHE4_COMMON_PMARSVD0,
+  input  wire [ 7:0] GTHE4_COMMON_PMARSVD1,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL0CLKRSVD0,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL0CLKRSVD1,
+  input  wire [ 7:0] GTHE4_COMMON_QPLL0FBDIV,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL0LOCKDETCLK,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL0LOCKEN,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL0PD,
+  input  wire [ 2:0] GTHE4_COMMON_QPLL0REFCLKSEL,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL0RESET,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL1CLKRSVD0,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL1CLKRSVD1,
+  input  wire [ 7:0] GTHE4_COMMON_QPLL1FBDIV,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL1LOCKDETCLK,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL1LOCKEN,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL1PD,
+  input  wire [ 2:0] GTHE4_COMMON_QPLL1REFCLKSEL,
+  input  wire [ 0:0] GTHE4_COMMON_QPLL1RESET,
+  input  wire [ 7:0] GTHE4_COMMON_QPLLRSVD1,
+  input  wire [ 4:0] GTHE4_COMMON_QPLLRSVD2,
+  input  wire [ 4:0] GTHE4_COMMON_QPLLRSVD3,
+  input  wire [ 7:0] GTHE4_COMMON_QPLLRSVD4,
+  input  wire [ 0:0] GTHE4_COMMON_RCALENB,
+  input  wire [24:0] GTHE4_COMMON_SDM0DATA,
+  input  wire [ 0:0] GTHE4_COMMON_SDM0RESET,
+  input  wire [ 0:0] GTHE4_COMMON_SDM0TOGGLE,
+  input  wire [ 1:0] GTHE4_COMMON_SDM0WIDTH,
+  input  wire [24:0] GTHE4_COMMON_SDM1DATA,
+  input  wire [ 0:0] GTHE4_COMMON_SDM1RESET,
+  input  wire [ 0:0] GTHE4_COMMON_SDM1TOGGLE,
+  input  wire [ 1:0] GTHE4_COMMON_SDM1WIDTH,
+  input  wire [ 9:0] GTHE4_COMMON_TCONGPI,
+  input  wire [ 0:0] GTHE4_COMMON_TCONPOWERUP,
+  input  wire [ 1:0] GTHE4_COMMON_TCONRESET,
+  input  wire [ 1:0] GTHE4_COMMON_TCONRSVDIN1,
+
+  // primitive wrapper output ports which are driven by corresponding GTHE4_COMMON primitive output ports
+  output wire [15:0] GTHE4_COMMON_DRPDO,
+  output wire [ 0:0] GTHE4_COMMON_DRPRDY,
+  output wire [ 7:0] GTHE4_COMMON_PMARSVDOUT0,
+  output wire [ 7:0] GTHE4_COMMON_PMARSVDOUT1,
+  output wire [ 0:0] GTHE4_COMMON_QPLL0FBCLKLOST,
+  output wire [ 0:0] GTHE4_COMMON_QPLL0LOCK,
+  output wire [ 0:0] GTHE4_COMMON_QPLL0OUTCLK,
+  output wire [ 0:0] GTHE4_COMMON_QPLL0OUTREFCLK,
+  output wire [ 0:0] GTHE4_COMMON_QPLL0REFCLKLOST,
+  output wire [ 0:0] GTHE4_COMMON_QPLL1FBCLKLOST,
+  output wire [ 0:0] GTHE4_COMMON_QPLL1LOCK,
+  output wire [ 0:0] GTHE4_COMMON_QPLL1OUTCLK,
+  output wire [ 0:0] GTHE4_COMMON_QPLL1OUTREFCLK,
+  output wire [ 0:0] GTHE4_COMMON_QPLL1REFCLKLOST,
+  output wire [ 7:0] GTHE4_COMMON_QPLLDMONITOR0,
+  output wire [ 7:0] GTHE4_COMMON_QPLLDMONITOR1,
+  output wire [ 0:0] GTHE4_COMMON_REFCLKOUTMONITOR0,
+  output wire [ 0:0] GTHE4_COMMON_REFCLKOUTMONITOR1,
+  output wire [ 1:0] GTHE4_COMMON_RXRECCLK0SEL,
+  output wire [ 1:0] GTHE4_COMMON_RXRECCLK1SEL,
+  output wire [ 3:0] GTHE4_COMMON_SDM0FINALOUT,
+  output wire [14:0] GTHE4_COMMON_SDM0TESTDATA,
+  output wire [ 3:0] GTHE4_COMMON_SDM1FINALOUT,
+  output wire [14:0] GTHE4_COMMON_SDM1TESTDATA,
+  output wire [ 9:0] GTHE4_COMMON_TCONGPO,
+  output wire [ 0:0] GTHE4_COMMON_TCONRSVDOUT0
+
+);
+
+
+  // -------------------------------------------------------------------------------------------------------------------
+  // HDL generation of wiring and instances relating to GTHE4_COMMON primitive
+  // -------------------------------------------------------------------------------------------------------------------
+
+  generate if (1) begin : gthe4_common_gen
+
+    // for each GTHE4_COMMON primitive input port, declare a properly-sized vector
+    wire [ 0:0] GTHE4_COMMON_BGBYPASSB_int;
+    wire [ 0:0] GTHE4_COMMON_BGMONITORENB_int;
+    wire [ 0:0] GTHE4_COMMON_BGPDB_int;
+    wire [ 4:0] GTHE4_COMMON_BGRCALOVRD_int;
+    wire [ 0:0] GTHE4_COMMON_BGRCALOVRDENB_int;
+    wire [15:0] GTHE4_COMMON_DRPADDR_int;
+    wire [ 0:0] GTHE4_COMMON_DRPCLK_int;
+    wire [15:0] GTHE4_COMMON_DRPDI_int;
+    wire [ 0:0] GTHE4_COMMON_DRPEN_int;
+    wire [ 0:0] GTHE4_COMMON_DRPWE_int;
+    wire [ 0:0] GTHE4_COMMON_GTGREFCLK0_int;
+    wire [ 0:0] GTHE4_COMMON_GTGREFCLK1_int;
+    wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK00_int;
+    wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK01_int;
+    wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK10_int;
+    wire [ 0:0] GTHE4_COMMON_GTNORTHREFCLK11_int;
+    wire [ 0:0] GTHE4_COMMON_GTREFCLK00_int;
+    wire [ 0:0] GTHE4_COMMON_GTREFCLK01_int;
+    wire [ 0:0] GTHE4_COMMON_GTREFCLK10_int;
+    wire [ 0:0] GTHE4_COMMON_GTREFCLK11_int;
+    wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK00_int;
+    wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK01_int;
+    wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK10_int;
+    wire [ 0:0] GTHE4_COMMON_GTSOUTHREFCLK11_int;
+    wire [ 2:0] GTHE4_COMMON_PCIERATEQPLL0_int;
+    wire [ 2:0] GTHE4_COMMON_PCIERATEQPLL1_int;
+    wire [ 7:0] GTHE4_COMMON_PMARSVD0_int;
+    wire [ 7:0] GTHE4_COMMON_PMARSVD1_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL0CLKRSVD0_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL0CLKRSVD1_int;
+    wire [ 7:0] GTHE4_COMMON_QPLL0FBDIV_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL0LOCKDETCLK_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL0LOCKEN_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL0PD_int;
+    wire [ 2:0] GTHE4_COMMON_QPLL0REFCLKSEL_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL0RESET_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL1CLKRSVD0_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL1CLKRSVD1_int;
+    wire [ 7:0] GTHE4_COMMON_QPLL1FBDIV_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL1LOCKDETCLK_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL1LOCKEN_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL1PD_int;
+    wire [ 2:0] GTHE4_COMMON_QPLL1REFCLKSEL_int;
+    wire [ 0:0] GTHE4_COMMON_QPLL1RESET_int;
+    wire [ 7:0] GTHE4_COMMON_QPLLRSVD1_int;
+    wire [ 4:0] GTHE4_COMMON_QPLLRSVD2_int;
+    wire [ 4:0] GTHE4_COMMON_QPLLRSVD3_int;
+    wire [ 7:0] GTHE4_COMMON_QPLLRSVD4_int;
+    wire [ 0:0] GTHE4_COMMON_RCALENB_int;
+    wire [24:0] GTHE4_COMMON_SDM0DATA_int;
+    wire [ 0:0] GTHE4_COMMON_SDM0RESET_int;
+    wire [ 0:0] GTHE4_COMMON_SDM0TOGGLE_int;
+    wire [ 1:0] GTHE4_COMMON_SDM0WIDTH_int;
+    wire [24:0] GTHE4_COMMON_SDM1DATA_int;
+    wire [ 0:0] GTHE4_COMMON_SDM1RESET_int;
+    wire [ 0:0] GTHE4_COMMON_SDM1TOGGLE_int;
+    wire [ 1:0] GTHE4_COMMON_SDM1WIDTH_int;
+    wire [ 9:0] GTHE4_COMMON_TCONGPI_int;
+    wire [ 0:0] GTHE4_COMMON_TCONPOWERUP_int;
+    wire [ 1:0] GTHE4_COMMON_TCONRESET_int;
+    wire [ 1:0] GTHE4_COMMON_TCONRSVDIN1_int;
+
+    // assign each vector either the corresponding tie-off value or the corresponding input port
+    if (GTHE4_COMMON_BGBYPASSB_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_BGBYPASSB_int = GTHE4_COMMON_BGBYPASSB_VAL;
+    else
+      assign GTHE4_COMMON_BGBYPASSB_int = GTHE4_COMMON_BGBYPASSB;
+
+    if (GTHE4_COMMON_BGMONITORENB_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_BGMONITORENB_int = GTHE4_COMMON_BGMONITORENB_VAL;
+    else
+      assign GTHE4_COMMON_BGMONITORENB_int = GTHE4_COMMON_BGMONITORENB;
+
+    if (GTHE4_COMMON_BGPDB_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_BGPDB_int = GTHE4_COMMON_BGPDB_VAL;
+    else
+      assign GTHE4_COMMON_BGPDB_int = GTHE4_COMMON_BGPDB;
+
+    if (GTHE4_COMMON_BGRCALOVRD_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_BGRCALOVRD_int = GTHE4_COMMON_BGRCALOVRD_VAL;
+    else
+      assign GTHE4_COMMON_BGRCALOVRD_int = GTHE4_COMMON_BGRCALOVRD;
+
+    if (GTHE4_COMMON_BGRCALOVRDENB_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_BGRCALOVRDENB_int = GTHE4_COMMON_BGRCALOVRDENB_VAL;
+    else
+      assign GTHE4_COMMON_BGRCALOVRDENB_int = GTHE4_COMMON_BGRCALOVRDENB;
+
+    if (GTHE4_COMMON_DRPADDR_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_DRPADDR_int = GTHE4_COMMON_DRPADDR_VAL;
+    else
+      assign GTHE4_COMMON_DRPADDR_int = GTHE4_COMMON_DRPADDR;
+
+    if (GTHE4_COMMON_DRPCLK_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_DRPCLK_int = GTHE4_COMMON_DRPCLK_VAL;
+    else
+      assign GTHE4_COMMON_DRPCLK_int = GTHE4_COMMON_DRPCLK;
+
+    if (GTHE4_COMMON_DRPDI_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_DRPDI_int = GTHE4_COMMON_DRPDI_VAL;
+    else
+      assign GTHE4_COMMON_DRPDI_int = GTHE4_COMMON_DRPDI;
+
+    if (GTHE4_COMMON_DRPEN_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_DRPEN_int = GTHE4_COMMON_DRPEN_VAL;
+    else
+      assign GTHE4_COMMON_DRPEN_int = GTHE4_COMMON_DRPEN;
+
+    if (GTHE4_COMMON_DRPWE_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_DRPWE_int = GTHE4_COMMON_DRPWE_VAL;
+    else
+      assign GTHE4_COMMON_DRPWE_int = GTHE4_COMMON_DRPWE;
+
+    if (GTHE4_COMMON_GTGREFCLK0_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTGREFCLK0_int = GTHE4_COMMON_GTGREFCLK0_VAL;
+    else
+      assign GTHE4_COMMON_GTGREFCLK0_int = GTHE4_COMMON_GTGREFCLK0;
+
+    if (GTHE4_COMMON_GTGREFCLK1_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTGREFCLK1_int = GTHE4_COMMON_GTGREFCLK1_VAL;
+    else
+      assign GTHE4_COMMON_GTGREFCLK1_int = GTHE4_COMMON_GTGREFCLK1;
+
+    if (GTHE4_COMMON_GTNORTHREFCLK00_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTNORTHREFCLK00_int = GTHE4_COMMON_GTNORTHREFCLK00_VAL;
+    else
+      assign GTHE4_COMMON_GTNORTHREFCLK00_int = GTHE4_COMMON_GTNORTHREFCLK00;
+
+    if (GTHE4_COMMON_GTNORTHREFCLK01_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTNORTHREFCLK01_int = GTHE4_COMMON_GTNORTHREFCLK01_VAL;
+    else
+      assign GTHE4_COMMON_GTNORTHREFCLK01_int = GTHE4_COMMON_GTNORTHREFCLK01;
+
+    if (GTHE4_COMMON_GTNORTHREFCLK10_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTNORTHREFCLK10_int = GTHE4_COMMON_GTNORTHREFCLK10_VAL;
+    else
+      assign GTHE4_COMMON_GTNORTHREFCLK10_int = GTHE4_COMMON_GTNORTHREFCLK10;
+
+    if (GTHE4_COMMON_GTNORTHREFCLK11_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTNORTHREFCLK11_int = GTHE4_COMMON_GTNORTHREFCLK11_VAL;
+    else
+      assign GTHE4_COMMON_GTNORTHREFCLK11_int = GTHE4_COMMON_GTNORTHREFCLK11;
+
+    if (GTHE4_COMMON_GTREFCLK00_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTREFCLK00_int = GTHE4_COMMON_GTREFCLK00_VAL;
+    else
+      assign GTHE4_COMMON_GTREFCLK00_int = GTHE4_COMMON_GTREFCLK00;
+
+    if (GTHE4_COMMON_GTREFCLK01_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTREFCLK01_int = GTHE4_COMMON_GTREFCLK01_VAL;
+    else
+      assign GTHE4_COMMON_GTREFCLK01_int = GTHE4_COMMON_GTREFCLK01;
+
+    if (GTHE4_COMMON_GTREFCLK10_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTREFCLK10_int = GTHE4_COMMON_GTREFCLK10_VAL;
+    else
+      assign GTHE4_COMMON_GTREFCLK10_int = GTHE4_COMMON_GTREFCLK10;
+
+    if (GTHE4_COMMON_GTREFCLK11_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTREFCLK11_int = GTHE4_COMMON_GTREFCLK11_VAL;
+    else
+      assign GTHE4_COMMON_GTREFCLK11_int = GTHE4_COMMON_GTREFCLK11;
+
+    if (GTHE4_COMMON_GTSOUTHREFCLK00_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTSOUTHREFCLK00_int = GTHE4_COMMON_GTSOUTHREFCLK00_VAL;
+    else
+      assign GTHE4_COMMON_GTSOUTHREFCLK00_int = GTHE4_COMMON_GTSOUTHREFCLK00;
+
+    if (GTHE4_COMMON_GTSOUTHREFCLK01_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTSOUTHREFCLK01_int = GTHE4_COMMON_GTSOUTHREFCLK01_VAL;
+    else
+      assign GTHE4_COMMON_GTSOUTHREFCLK01_int = GTHE4_COMMON_GTSOUTHREFCLK01;
+
+    if (GTHE4_COMMON_GTSOUTHREFCLK10_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTSOUTHREFCLK10_int = GTHE4_COMMON_GTSOUTHREFCLK10_VAL;
+    else
+      assign GTHE4_COMMON_GTSOUTHREFCLK10_int = GTHE4_COMMON_GTSOUTHREFCLK10;
+
+    if (GTHE4_COMMON_GTSOUTHREFCLK11_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_GTSOUTHREFCLK11_int = GTHE4_COMMON_GTSOUTHREFCLK11_VAL;
+    else
+      assign GTHE4_COMMON_GTSOUTHREFCLK11_int = GTHE4_COMMON_GTSOUTHREFCLK11;
+
+    if (GTHE4_COMMON_PCIERATEQPLL0_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_PCIERATEQPLL0_int = GTHE4_COMMON_PCIERATEQPLL0_VAL;
+    else
+      assign GTHE4_COMMON_PCIERATEQPLL0_int = GTHE4_COMMON_PCIERATEQPLL0;
+
+    if (GTHE4_COMMON_PCIERATEQPLL1_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_PCIERATEQPLL1_int = GTHE4_COMMON_PCIERATEQPLL1_VAL;
+    else
+      assign GTHE4_COMMON_PCIERATEQPLL1_int = GTHE4_COMMON_PCIERATEQPLL1;
+
+    if (GTHE4_COMMON_PMARSVD0_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_PMARSVD0_int = GTHE4_COMMON_PMARSVD0_VAL;
+    else
+      assign GTHE4_COMMON_PMARSVD0_int = GTHE4_COMMON_PMARSVD0;
+
+    if (GTHE4_COMMON_PMARSVD1_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_PMARSVD1_int = GTHE4_COMMON_PMARSVD1_VAL;
+    else
+      assign GTHE4_COMMON_PMARSVD1_int = GTHE4_COMMON_PMARSVD1;
+
+    if (GTHE4_COMMON_QPLL0CLKRSVD0_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0CLKRSVD0_int = GTHE4_COMMON_QPLL0CLKRSVD0_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0CLKRSVD0_int = GTHE4_COMMON_QPLL0CLKRSVD0;
+
+    if (GTHE4_COMMON_QPLL0CLKRSVD1_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0CLKRSVD1_int = GTHE4_COMMON_QPLL0CLKRSVD1_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0CLKRSVD1_int = GTHE4_COMMON_QPLL0CLKRSVD1;
+
+    if (GTHE4_COMMON_QPLL0FBDIV_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0FBDIV_int = GTHE4_COMMON_QPLL0FBDIV_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0FBDIV_int = GTHE4_COMMON_QPLL0FBDIV;
+
+    if (GTHE4_COMMON_QPLL0LOCKDETCLK_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0LOCKDETCLK_int = GTHE4_COMMON_QPLL0LOCKDETCLK_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0LOCKDETCLK_int = GTHE4_COMMON_QPLL0LOCKDETCLK;
+
+    if (GTHE4_COMMON_QPLL0LOCKEN_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0LOCKEN_int = GTHE4_COMMON_QPLL0LOCKEN_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0LOCKEN_int = GTHE4_COMMON_QPLL0LOCKEN;
+
+    if (GTHE4_COMMON_QPLL0PD_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0PD_int = GTHE4_COMMON_QPLL0PD_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0PD_int = GTHE4_COMMON_QPLL0PD;
+
+    if (GTHE4_COMMON_QPLL0REFCLKSEL_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0REFCLKSEL_int = GTHE4_COMMON_QPLL0REFCLKSEL_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0REFCLKSEL_int = GTHE4_COMMON_QPLL0REFCLKSEL;
+
+    if (GTHE4_COMMON_QPLL0RESET_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL0RESET_int = GTHE4_COMMON_QPLL0RESET_VAL;
+    else
+      assign GTHE4_COMMON_QPLL0RESET_int = GTHE4_COMMON_QPLL0RESET;
+
+    if (GTHE4_COMMON_QPLL1CLKRSVD0_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1CLKRSVD0_int = GTHE4_COMMON_QPLL1CLKRSVD0_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1CLKRSVD0_int = GTHE4_COMMON_QPLL1CLKRSVD0;
+
+    if (GTHE4_COMMON_QPLL1CLKRSVD1_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1CLKRSVD1_int = GTHE4_COMMON_QPLL1CLKRSVD1_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1CLKRSVD1_int = GTHE4_COMMON_QPLL1CLKRSVD1;
+
+    if (GTHE4_COMMON_QPLL1FBDIV_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1FBDIV_int = GTHE4_COMMON_QPLL1FBDIV_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1FBDIV_int = GTHE4_COMMON_QPLL1FBDIV;
+
+    if (GTHE4_COMMON_QPLL1LOCKDETCLK_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1LOCKDETCLK_int = GTHE4_COMMON_QPLL1LOCKDETCLK_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1LOCKDETCLK_int = GTHE4_COMMON_QPLL1LOCKDETCLK;
+
+    if (GTHE4_COMMON_QPLL1LOCKEN_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1LOCKEN_int = GTHE4_COMMON_QPLL1LOCKEN_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1LOCKEN_int = GTHE4_COMMON_QPLL1LOCKEN;
+
+    if (GTHE4_COMMON_QPLL1PD_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1PD_int = GTHE4_COMMON_QPLL1PD_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1PD_int = GTHE4_COMMON_QPLL1PD;
+
+    if (GTHE4_COMMON_QPLL1REFCLKSEL_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1REFCLKSEL_int = GTHE4_COMMON_QPLL1REFCLKSEL_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1REFCLKSEL_int = GTHE4_COMMON_QPLL1REFCLKSEL;
+
+    if (GTHE4_COMMON_QPLL1RESET_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLL1RESET_int = GTHE4_COMMON_QPLL1RESET_VAL;
+    else
+      assign GTHE4_COMMON_QPLL1RESET_int = GTHE4_COMMON_QPLL1RESET;
+
+    if (GTHE4_COMMON_QPLLRSVD1_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLLRSVD1_int = GTHE4_COMMON_QPLLRSVD1_VAL;
+    else
+      assign GTHE4_COMMON_QPLLRSVD1_int = GTHE4_COMMON_QPLLRSVD1;
+
+    if (GTHE4_COMMON_QPLLRSVD2_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLLRSVD2_int = GTHE4_COMMON_QPLLRSVD2_VAL;
+    else
+      assign GTHE4_COMMON_QPLLRSVD2_int = GTHE4_COMMON_QPLLRSVD2;
+
+    if (GTHE4_COMMON_QPLLRSVD3_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLLRSVD3_int = GTHE4_COMMON_QPLLRSVD3_VAL;
+    else
+      assign GTHE4_COMMON_QPLLRSVD3_int = GTHE4_COMMON_QPLLRSVD3;
+
+    if (GTHE4_COMMON_QPLLRSVD4_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_QPLLRSVD4_int = GTHE4_COMMON_QPLLRSVD4_VAL;
+    else
+      assign GTHE4_COMMON_QPLLRSVD4_int = GTHE4_COMMON_QPLLRSVD4;
+
+    if (GTHE4_COMMON_RCALENB_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_RCALENB_int = GTHE4_COMMON_RCALENB_VAL;
+    else
+      assign GTHE4_COMMON_RCALENB_int = GTHE4_COMMON_RCALENB;
+
+    if (GTHE4_COMMON_SDM0DATA_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM0DATA_int = GTHE4_COMMON_SDM0DATA_VAL;
+    else
+      assign GTHE4_COMMON_SDM0DATA_int = GTHE4_COMMON_SDM0DATA;
+
+    if (GTHE4_COMMON_SDM0RESET_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM0RESET_int = GTHE4_COMMON_SDM0RESET_VAL;
+    else
+      assign GTHE4_COMMON_SDM0RESET_int = GTHE4_COMMON_SDM0RESET;
+
+    if (GTHE4_COMMON_SDM0TOGGLE_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM0TOGGLE_int = GTHE4_COMMON_SDM0TOGGLE_VAL;
+    else
+      assign GTHE4_COMMON_SDM0TOGGLE_int = GTHE4_COMMON_SDM0TOGGLE;
+
+    if (GTHE4_COMMON_SDM0WIDTH_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM0WIDTH_int = GTHE4_COMMON_SDM0WIDTH_VAL;
+    else
+      assign GTHE4_COMMON_SDM0WIDTH_int = GTHE4_COMMON_SDM0WIDTH;
+
+    if (GTHE4_COMMON_SDM1DATA_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM1DATA_int = GTHE4_COMMON_SDM1DATA_VAL;
+    else
+      assign GTHE4_COMMON_SDM1DATA_int = GTHE4_COMMON_SDM1DATA;
+
+    if (GTHE4_COMMON_SDM1RESET_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM1RESET_int = GTHE4_COMMON_SDM1RESET_VAL;
+    else
+      assign GTHE4_COMMON_SDM1RESET_int = GTHE4_COMMON_SDM1RESET;
+
+    if (GTHE4_COMMON_SDM1TOGGLE_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM1TOGGLE_int = GTHE4_COMMON_SDM1TOGGLE_VAL;
+    else
+      assign GTHE4_COMMON_SDM1TOGGLE_int = GTHE4_COMMON_SDM1TOGGLE;
+
+    if (GTHE4_COMMON_SDM1WIDTH_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_SDM1WIDTH_int = GTHE4_COMMON_SDM1WIDTH_VAL;
+    else
+      assign GTHE4_COMMON_SDM1WIDTH_int = GTHE4_COMMON_SDM1WIDTH;
+
+    if (GTHE4_COMMON_TCONGPI_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_TCONGPI_int = GTHE4_COMMON_TCONGPI_VAL;
+    else
+      assign GTHE4_COMMON_TCONGPI_int = GTHE4_COMMON_TCONGPI;
+
+    if (GTHE4_COMMON_TCONPOWERUP_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_TCONPOWERUP_int = GTHE4_COMMON_TCONPOWERUP_VAL;
+    else
+      assign GTHE4_COMMON_TCONPOWERUP_int = GTHE4_COMMON_TCONPOWERUP;
+
+    if (GTHE4_COMMON_TCONRESET_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_TCONRESET_int = GTHE4_COMMON_TCONRESET_VAL;
+    else
+      assign GTHE4_COMMON_TCONRESET_int = GTHE4_COMMON_TCONRESET;
+
+    if (GTHE4_COMMON_TCONRSVDIN1_TIE_EN == 1'b1)
+      assign GTHE4_COMMON_TCONRSVDIN1_int = GTHE4_COMMON_TCONRSVDIN1_VAL;
+    else
+      assign GTHE4_COMMON_TCONRSVDIN1_int = GTHE4_COMMON_TCONRSVDIN1;
+
+    // generate the GTHE4_COMMON primitive instance, mapping parameters and ports
+    GTHE4_COMMON #(
+      .AEN_QPLL0_FBDIV       (GTHE4_COMMON_AEN_QPLL0_FBDIV      ),
+      .AEN_QPLL1_FBDIV       (GTHE4_COMMON_AEN_QPLL1_FBDIV      ),
+      .AEN_SDM0TOGGLE        (GTHE4_COMMON_AEN_SDM0TOGGLE       ),
+      .AEN_SDM1TOGGLE        (GTHE4_COMMON_AEN_SDM1TOGGLE       ),
+      .A_SDM0TOGGLE          (GTHE4_COMMON_A_SDM0TOGGLE         ),
+      .A_SDM1DATA_HIGH       (GTHE4_COMMON_A_SDM1DATA_HIGH      ),
+      .A_SDM1DATA_LOW        (GTHE4_COMMON_A_SDM1DATA_LOW       ),
+      .A_SDM1TOGGLE          (GTHE4_COMMON_A_SDM1TOGGLE         ),
+      .BIAS_CFG0             (GTHE4_COMMON_BIAS_CFG0            ),
+      .BIAS_CFG1             (GTHE4_COMMON_BIAS_CFG1            ),
+      .BIAS_CFG2             (GTHE4_COMMON_BIAS_CFG2            ),
+      .BIAS_CFG3             (GTHE4_COMMON_BIAS_CFG3            ),
+      .BIAS_CFG4             (GTHE4_COMMON_BIAS_CFG4            ),
+      .BIAS_CFG_RSVD         (GTHE4_COMMON_BIAS_CFG_RSVD        ),
+      .COMMON_CFG0           (GTHE4_COMMON_COMMON_CFG0          ),
+      .COMMON_CFG1           (GTHE4_COMMON_COMMON_CFG1          ),
+      .POR_CFG               (GTHE4_COMMON_POR_CFG              ),
+      .PPF0_CFG              (GTHE4_COMMON_PPF0_CFG             ),
+      .PPF1_CFG              (GTHE4_COMMON_PPF1_CFG             ),
+      .QPLL0CLKOUT_RATE      (GTHE4_COMMON_QPLL0CLKOUT_RATE     ),
+      .QPLL0_CFG0            (GTHE4_COMMON_QPLL0_CFG0           ),
+      .QPLL0_CFG1            (GTHE4_COMMON_QPLL0_CFG1           ),
+      .QPLL0_CFG1_G3         (GTHE4_COMMON_QPLL0_CFG1_G3        ),
+      .QPLL0_CFG2            (GTHE4_COMMON_QPLL0_CFG2           ),
+      .QPLL0_CFG2_G3         (GTHE4_COMMON_QPLL0_CFG2_G3        ),
+      .QPLL0_CFG3            (GTHE4_COMMON_QPLL0_CFG3           ),
+      .QPLL0_CFG4            (GTHE4_COMMON_QPLL0_CFG4           ),
+      .QPLL0_CP              (GTHE4_COMMON_QPLL0_CP             ),
+      .QPLL0_CP_G3           (GTHE4_COMMON_QPLL0_CP_G3          ),
+      .QPLL0_FBDIV           (GTHE4_COMMON_QPLL0_FBDIV          ),
+      .QPLL0_FBDIV_G3        (GTHE4_COMMON_QPLL0_FBDIV_G3       ),
+      .QPLL0_INIT_CFG0       (GTHE4_COMMON_QPLL0_INIT_CFG0      ),
+      .QPLL0_INIT_CFG1       (GTHE4_COMMON_QPLL0_INIT_CFG1      ),
+      .QPLL0_LOCK_CFG        (GTHE4_COMMON_QPLL0_LOCK_CFG       ),
+      .QPLL0_LOCK_CFG_G3     (GTHE4_COMMON_QPLL0_LOCK_CFG_G3    ),
+      .QPLL0_LPF             (GTHE4_COMMON_QPLL0_LPF            ),
+      .QPLL0_LPF_G3          (GTHE4_COMMON_QPLL0_LPF_G3         ),
+      .QPLL0_PCI_EN          (GTHE4_COMMON_QPLL0_PCI_EN         ),
+      .QPLL0_RATE_SW_USE_DRP (GTHE4_COMMON_QPLL0_RATE_SW_USE_DRP),
+      .QPLL0_REFCLK_DIV      (GTHE4_COMMON_QPLL0_REFCLK_DIV     ),
+      .QPLL0_SDM_CFG0        (GTHE4_COMMON_QPLL0_SDM_CFG0       ),
+      .QPLL0_SDM_CFG1        (GTHE4_COMMON_QPLL0_SDM_CFG1       ),
+      .QPLL0_SDM_CFG2        (GTHE4_COMMON_QPLL0_SDM_CFG2       ),
+      .QPLL1CLKOUT_RATE      (GTHE4_COMMON_QPLL1CLKOUT_RATE     ),
+      .QPLL1_CFG0            (GTHE4_COMMON_QPLL1_CFG0           ),
+      .QPLL1_CFG1            (GTHE4_COMMON_QPLL1_CFG1           ),
+      .QPLL1_CFG1_G3         (GTHE4_COMMON_QPLL1_CFG1_G3        ),
+      .QPLL1_CFG2            (GTHE4_COMMON_QPLL1_CFG2           ),
+      .QPLL1_CFG2_G3         (GTHE4_COMMON_QPLL1_CFG2_G3        ),
+      .QPLL1_CFG3            (GTHE4_COMMON_QPLL1_CFG3           ),
+      .QPLL1_CFG4            (GTHE4_COMMON_QPLL1_CFG4           ),
+      .QPLL1_CP              (GTHE4_COMMON_QPLL1_CP             ),
+      .QPLL1_CP_G3           (GTHE4_COMMON_QPLL1_CP_G3          ),
+      .QPLL1_FBDIV           (GTHE4_COMMON_QPLL1_FBDIV          ),
+      .QPLL1_FBDIV_G3        (GTHE4_COMMON_QPLL1_FBDIV_G3       ),
+      .QPLL1_INIT_CFG0       (GTHE4_COMMON_QPLL1_INIT_CFG0      ),
+      .QPLL1_INIT_CFG1       (GTHE4_COMMON_QPLL1_INIT_CFG1      ),
+      .QPLL1_LOCK_CFG        (GTHE4_COMMON_QPLL1_LOCK_CFG       ),
+      .QPLL1_LOCK_CFG_G3     (GTHE4_COMMON_QPLL1_LOCK_CFG_G3    ),
+      .QPLL1_LPF             (GTHE4_COMMON_QPLL1_LPF            ),
+      .QPLL1_LPF_G3          (GTHE4_COMMON_QPLL1_LPF_G3         ),
+      .QPLL1_PCI_EN          (GTHE4_COMMON_QPLL1_PCI_EN         ),
+      .QPLL1_RATE_SW_USE_DRP (GTHE4_COMMON_QPLL1_RATE_SW_USE_DRP),
+      .QPLL1_REFCLK_DIV      (GTHE4_COMMON_QPLL1_REFCLK_DIV     ),
+      .QPLL1_SDM_CFG0        (GTHE4_COMMON_QPLL1_SDM_CFG0       ),
+      .QPLL1_SDM_CFG1        (GTHE4_COMMON_QPLL1_SDM_CFG1       ),
+      .QPLL1_SDM_CFG2        (GTHE4_COMMON_QPLL1_SDM_CFG2       ),
+      .RSVD_ATTR0            (GTHE4_COMMON_RSVD_ATTR0           ),
+      .RSVD_ATTR1            (GTHE4_COMMON_RSVD_ATTR1           ),
+      .RSVD_ATTR2            (GTHE4_COMMON_RSVD_ATTR2           ),
+      .RSVD_ATTR3            (GTHE4_COMMON_RSVD_ATTR3           ),
+      .RXRECCLKOUT0_SEL      (GTHE4_COMMON_RXRECCLKOUT0_SEL     ),
+      .RXRECCLKOUT1_SEL      (GTHE4_COMMON_RXRECCLKOUT1_SEL     ),
+      .SARC_ENB              (GTHE4_COMMON_SARC_ENB             ),
+      .SARC_SEL              (GTHE4_COMMON_SARC_SEL             ),
+      .SDM0INITSEED0_0       (GTHE4_COMMON_SDM0INITSEED0_0      ),
+      .SDM0INITSEED0_1       (GTHE4_COMMON_SDM0INITSEED0_1      ),
+      .SDM1INITSEED0_0       (GTHE4_COMMON_SDM1INITSEED0_0      ),
+      .SDM1INITSEED0_1       (GTHE4_COMMON_SDM1INITSEED0_1      ),
+      .SIM_MODE              (GTHE4_COMMON_SIM_MODE             ),
+      .SIM_RESET_SPEEDUP     (GTHE4_COMMON_SIM_RESET_SPEEDUP    ),
+      .SIM_DEVICE            (GTHE4_COMMON_SIM_DEVICE           )
+    ) GTHE4_COMMON_PRIM_INST (
+      .BGBYPASSB            (GTHE4_COMMON_BGBYPASSB_int       [ 0:0]),
+      .BGMONITORENB         (GTHE4_COMMON_BGMONITORENB_int    [ 0:0]),
+      .BGPDB                (GTHE4_COMMON_BGPDB_int           [ 0:0]),
+      .BGRCALOVRD           (GTHE4_COMMON_BGRCALOVRD_int      [ 4:0]),
+      .BGRCALOVRDENB        (GTHE4_COMMON_BGRCALOVRDENB_int   [ 0:0]),
+      .DRPADDR              (GTHE4_COMMON_DRPADDR_int         [15:0]),
+      .DRPCLK               (GTHE4_COMMON_DRPCLK_int          [ 0:0]),
+      .DRPDI                (GTHE4_COMMON_DRPDI_int           [15:0]),
+      .DRPEN                (GTHE4_COMMON_DRPEN_int           [ 0:0]),
+      .DRPWE                (GTHE4_COMMON_DRPWE_int           [ 0:0]),
+      .GTGREFCLK0           (GTHE4_COMMON_GTGREFCLK0_int      [ 0:0]),
+      .GTGREFCLK1           (GTHE4_COMMON_GTGREFCLK1_int      [ 0:0]),
+      .GTNORTHREFCLK00      (GTHE4_COMMON_GTNORTHREFCLK00_int [ 0:0]),
+      .GTNORTHREFCLK01      (GTHE4_COMMON_GTNORTHREFCLK01_int [ 0:0]),
+      .GTNORTHREFCLK10      (GTHE4_COMMON_GTNORTHREFCLK10_int [ 0:0]),
+      .GTNORTHREFCLK11      (GTHE4_COMMON_GTNORTHREFCLK11_int [ 0:0]),
+      .GTREFCLK00           (GTHE4_COMMON_GTREFCLK00_int      [ 0:0]),
+      .GTREFCLK01           (GTHE4_COMMON_GTREFCLK01_int      [ 0:0]),
+      .GTREFCLK10           (GTHE4_COMMON_GTREFCLK10_int      [ 0:0]),
+      .GTREFCLK11           (GTHE4_COMMON_GTREFCLK11_int      [ 0:0]),
+      .GTSOUTHREFCLK00      (GTHE4_COMMON_GTSOUTHREFCLK00_int [ 0:0]),
+      .GTSOUTHREFCLK01      (GTHE4_COMMON_GTSOUTHREFCLK01_int [ 0:0]),
+      .GTSOUTHREFCLK10      (GTHE4_COMMON_GTSOUTHREFCLK10_int [ 0:0]),
+      .GTSOUTHREFCLK11      (GTHE4_COMMON_GTSOUTHREFCLK11_int [ 0:0]),
+      .PCIERATEQPLL0        (GTHE4_COMMON_PCIERATEQPLL0_int   [ 2:0]),
+      .PCIERATEQPLL1        (GTHE4_COMMON_PCIERATEQPLL1_int   [ 2:0]),
+      .PMARSVD0             (GTHE4_COMMON_PMARSVD0_int        [ 7:0]),
+      .PMARSVD1             (GTHE4_COMMON_PMARSVD1_int        [ 7:0]),
+      .QPLL0CLKRSVD0        (GTHE4_COMMON_QPLL0CLKRSVD0_int   [ 0:0]),
+      .QPLL0CLKRSVD1        (GTHE4_COMMON_QPLL0CLKRSVD1_int   [ 0:0]),
+      .QPLL0FBDIV           (GTHE4_COMMON_QPLL0FBDIV_int      [ 7:0]),
+      .QPLL0LOCKDETCLK      (GTHE4_COMMON_QPLL0LOCKDETCLK_int [ 0:0]),
+      .QPLL0LOCKEN          (GTHE4_COMMON_QPLL0LOCKEN_int     [ 0:0]),
+      .QPLL0PD              (GTHE4_COMMON_QPLL0PD_int         [ 0:0]),
+      .QPLL0REFCLKSEL       (GTHE4_COMMON_QPLL0REFCLKSEL_int  [ 2:0]),
+      .QPLL0RESET           (GTHE4_COMMON_QPLL0RESET_int      [ 0:0]),
+      .QPLL1CLKRSVD0        (GTHE4_COMMON_QPLL1CLKRSVD0_int   [ 0:0]),
+      .QPLL1CLKRSVD1        (GTHE4_COMMON_QPLL1CLKRSVD1_int   [ 0:0]),
+      .QPLL1FBDIV           (GTHE4_COMMON_QPLL1FBDIV_int      [ 7:0]),
+      .QPLL1LOCKDETCLK      (GTHE4_COMMON_QPLL1LOCKDETCLK_int [ 0:0]),
+      .QPLL1LOCKEN          (GTHE4_COMMON_QPLL1LOCKEN_int     [ 0:0]),
+      .QPLL1PD              (GTHE4_COMMON_QPLL1PD_int         [ 0:0]),
+      .QPLL1REFCLKSEL       (GTHE4_COMMON_QPLL1REFCLKSEL_int  [ 2:0]),
+      .QPLL1RESET           (GTHE4_COMMON_QPLL1RESET_int      [ 0:0]),
+      .QPLLRSVD1            (GTHE4_COMMON_QPLLRSVD1_int       [ 7:0]),
+      .QPLLRSVD2            (GTHE4_COMMON_QPLLRSVD2_int       [ 4:0]),
+      .QPLLRSVD3            (GTHE4_COMMON_QPLLRSVD3_int       [ 4:0]),
+      .QPLLRSVD4            (GTHE4_COMMON_QPLLRSVD4_int       [ 7:0]),
+      .RCALENB              (GTHE4_COMMON_RCALENB_int         [ 0:0]),
+      .SDM0DATA             (GTHE4_COMMON_SDM0DATA_int        [24:0]),
+      .SDM0RESET            (GTHE4_COMMON_SDM0RESET_int       [ 0:0]),
+      .SDM0TOGGLE           (GTHE4_COMMON_SDM0TOGGLE_int      [ 0:0]),
+      .SDM0WIDTH            (GTHE4_COMMON_SDM0WIDTH_int       [ 1:0]),
+      .SDM1DATA             (GTHE4_COMMON_SDM1DATA_int        [24:0]),
+      .SDM1RESET            (GTHE4_COMMON_SDM1RESET_int       [ 0:0]),
+      .SDM1TOGGLE           (GTHE4_COMMON_SDM1TOGGLE_int      [ 0:0]),
+      .SDM1WIDTH            (GTHE4_COMMON_SDM1WIDTH_int       [ 1:0]),
+      .TCONGPI              (GTHE4_COMMON_TCONGPI_int         [ 9:0]),
+      .TCONPOWERUP          (GTHE4_COMMON_TCONPOWERUP_int     [ 0:0]),
+      .TCONRESET            (GTHE4_COMMON_TCONRESET_int       [ 1:0]),
+      .TCONRSVDIN1          (GTHE4_COMMON_TCONRSVDIN1_int     [ 1:0]),
+
+      .DRPDO                (GTHE4_COMMON_DRPDO               [15:0]),
+      .DRPRDY               (GTHE4_COMMON_DRPRDY              [ 0:0]),
+      .PMARSVDOUT0          (GTHE4_COMMON_PMARSVDOUT0         [ 7:0]),
+      .PMARSVDOUT1          (GTHE4_COMMON_PMARSVDOUT1         [ 7:0]),
+      .QPLL0FBCLKLOST       (GTHE4_COMMON_QPLL0FBCLKLOST      [ 0:0]),
+      .QPLL0LOCK            (GTHE4_COMMON_QPLL0LOCK           [ 0:0]),
+      .QPLL0OUTCLK          (GTHE4_COMMON_QPLL0OUTCLK         [ 0:0]),
+      .QPLL0OUTREFCLK       (GTHE4_COMMON_QPLL0OUTREFCLK      [ 0:0]),
+      .QPLL0REFCLKLOST      (GTHE4_COMMON_QPLL0REFCLKLOST     [ 0:0]),
+      .QPLL1FBCLKLOST       (GTHE4_COMMON_QPLL1FBCLKLOST      [ 0:0]),
+      .QPLL1LOCK            (GTHE4_COMMON_QPLL1LOCK           [ 0:0]),
+      .QPLL1OUTCLK          (GTHE4_COMMON_QPLL1OUTCLK         [ 0:0]),
+      .QPLL1OUTREFCLK       (GTHE4_COMMON_QPLL1OUTREFCLK      [ 0:0]),
+      .QPLL1REFCLKLOST      (GTHE4_COMMON_QPLL1REFCLKLOST     [ 0:0]),
+      .QPLLDMONITOR0        (GTHE4_COMMON_QPLLDMONITOR0       [ 7:0]),
+      .QPLLDMONITOR1        (GTHE4_COMMON_QPLLDMONITOR1       [ 7:0]),
+      .REFCLKOUTMONITOR0    (GTHE4_COMMON_REFCLKOUTMONITOR0   [ 0:0]),
+      .REFCLKOUTMONITOR1    (GTHE4_COMMON_REFCLKOUTMONITOR1   [ 0:0]),
+      .RXRECCLK0SEL         (GTHE4_COMMON_RXRECCLK0SEL        [ 1:0]),
+      .RXRECCLK1SEL         (GTHE4_COMMON_RXRECCLK1SEL        [ 1:0]),
+      .SDM0FINALOUT         (GTHE4_COMMON_SDM0FINALOUT        [ 3:0]),
+      .SDM0TESTDATA         (GTHE4_COMMON_SDM0TESTDATA        [14:0]),
+      .SDM1FINALOUT         (GTHE4_COMMON_SDM1FINALOUT        [ 3:0]),
+      .SDM1TESTDATA         (GTHE4_COMMON_SDM1TESTDATA        [14:0]),
+      .TCONGPO              (GTHE4_COMMON_TCONGPO             [ 9:0]),
+      .TCONRSVDOUT0         (GTHE4_COMMON_TCONRSVDOUT0        [ 0:0])
+
+    );
+
+  end
+  endgenerate
+
+
+endmodule
diff --git a/hdl/top_combpm_electron.vhd b/hdl/top_combpm_electron.vhd
index a8b0abfebe66556cee4ce5c6e18eac28a3fa4539..415a22a080060a9279136b076e3ae924093785ce 100644
--- a/hdl/top_combpm_electron.vhd
+++ b/hdl/top_combpm_electron.vhd
@@ -8,14 +8,16 @@ use ieee.numeric_std.all;
 
 entity top_combpm_electron is
     port(
-        gt_clk               : out std_logic;   -- Data clock from GT
-        rst_n                : in std_logic;    -- Asyncheonous reset
+
+        rst_n                : in std_logic;    -- Asynchronous reset
         free_100_clk         : in std_logic;    -- Freerunning clock for GT
+        clk                  : out std_logic;   -- main clock (AXIS and AXI-MM)
 
-        -- Differential reference clock inputs and buffered output
-        mgtref_clk_p          : in std_logic;
-        mgtref_clk_n          : in std_logic;
-        mgtref_buf_clk       : out std_logic;
+        -- Transceiver QPLL interface
+        qpll_out_clk         : in std_logic;    -- QPLL clock for transceivers
+        qpll_ref_clk         : in std_logic;    -- QPLL ref clock
+        qpll_reset           : out std_logic;   -- QPLL reset
+        qpll_lock            : in std_logic;    -- QPLL is locked
 
         -- SFP interfaces
         sfp_txp              : out std_logic;
@@ -73,8 +75,7 @@ architecture struct of top_combpm_electron is
     ATTRIBUTE X_INTERFACE_PARAMETER of rst_n         :  SIGNAL is "POLARITY ACTIVE_LOW";
 
     ATTRIBUTE X_INTERFACE_PARAMETER of free_100_clk: SIGNAL is "FREQ_HZ 100000000";
-    ATTRIBUTE X_INTERFACE_PARAMETER of mgtref_buf_clk: SIGNAL is "FREQ_HZ 156250000";
-    ATTRIBUTE X_INTERFACE_PARAMETER of gt_clk: SIGNAL is "FREQ_HZ 156250000, ASSOCIATED_BUSIF m_axis:s_axi";
+    ATTRIBUTE X_INTERFACE_PARAMETER of clk: SIGNAL is "FREQ_HZ 156250000, ASSOCIATED_BUSIF m_axis:s_axi";
 
     ATTRIBUTE X_INTERFACE_INFO of sfp_txn: SIGNAL is "xilinx.com:interface:sfp:1.0 sfp TXN";
     ATTRIBUTE X_INTERFACE_INFO of sfp_rxn: SIGNAL is "xilinx.com:interface:sfp:1.0 sfp RXN";
@@ -85,27 +86,19 @@ architecture struct of top_combpm_electron is
     ATTRIBUTE X_INTERFACE_INFO of sfp_tx_disable: SIGNAL is "xilinx.com:interface:sfp:1.0 sfp TX_DISABLE";
     ATTRIBUTE X_INTERFACE_INFO of sfp_tx_fault: SIGNAL is "xilinx.com:interface:sfp:1.0 sfp TX_FAULT";
 
-    ATTRIBUTE X_INTERFACE_INFO of mgtref_clk_p: SIGNAL is "xilinx.com:interface:diff_clock:1.0 mgtrefclk CLK_P";
-    ATTRIBUTE X_INTERFACE_INFO of mgtref_clk_n: SIGNAL is "xilinx.com:interface:diff_clock:1.0 mgtrefclk CLK_N";
-    ATTRIBUTE X_INTERFACE_PARAMETER of mgtref_clk_p: SIGNAL is "FREQ_HZ 156250000";
-
 
     ------------------------
     -- SIGNAL DECLARATION --
     ------------------------
-    signal sync_rst      : std_logic;       -- Reset synchonized to clock
     signal rst           : std_logic;
     signal tx_disable    : std_logic;
     signal rx_commadeten : std_logic;
-    signal srst_gt       : std_logic;
     signal frame_counter : std_logic_vector(15 downto 0);
     signal frame_error   : std_logic;
 
-    signal gt_usrclk          : std_logic;
     signal gt_datarx          : std_logic_vector(15 downto 0);
     signal gt_datatx          : std_logic_vector(15 downto 0);
     signal gt_powergood       : std_logic;
-    signal gt_qplllock        : std_logic;
     signal gt_txclkactive     : std_logic;
     signal gt_rxclkactive     : std_logic;
     signal gt_txresetdone     : std_logic;
@@ -120,18 +113,10 @@ architecture struct of top_combpm_electron is
     signal gt_rxcommadeten    : std_logic;
     signal gt_txdisable       : std_logic;
     signal gt_rxcdrlock       : std_logic;
+    signal gt_rxresetdatapath : std_logic;
 
 begin
 
-    ---------------------------
-    -- RESET SYNCHRONIZATION --
-    ---------------------------
-    inst_cdc_arst: xpm_cdc_async_rst
-    port map(
-        src_arst    => rst,
-        dest_clk    => gt_clk,
-        dest_arst   => sync_rst
-    );
 
     -- Reset invert polarity
     rst <= not rst_n;
@@ -149,7 +134,7 @@ begin
         sfp_modabs_i          => gt_modabs,
         sfp_txdisable_o       => tx_disable,
         gt_powergood_i        => gt_powergood,
-        gt_qplllock_i         => gt_qplllock,
+        gt_qplllock_i         => qpll_lock,
         gt_txclkactive_i      => gt_txclkactive,
         gt_rxclkactive_i      => gt_rxclkactive,
         gt_rxcdrlock_i        => gt_rxcdrlock,
@@ -159,11 +144,11 @@ begin
         gt_rxbyterealign_i    => gt_rxbyterealign,
         gt_rxcommadet_i       => gt_rxcommadet,
         gt_rxcommadeten_o     => rx_commadeten,
-        gt_rstall_o           => srst_gt,
+        gt_rxresetdatapath_o  => gt_rxresetdatapath,
         protocol_framecnt_i   => frame_counter,
         protocol_frameerror_i => frame_error,
 
-        clk                   => gt_usrclk,
+        clk                   => clk,
         reset                 => sync_rst,
         S_AXI_AWADDR          => S_AXI_AWADDR,
         S_AXI_AWPROT          => S_AXI_AWPROT,
@@ -192,11 +177,11 @@ begin
     protocol_inst: entity work.combpm_protocol_electron
     port map(
         rst_n              => rst_n,
-        clk                => gt_usrclk,
+        clk                => clk,
         gt_datarx          => gt_datarx,
         gt_datatx          => gt_datatx,
         gt_powergood       => gt_powergood,
-        gt_qplllock        => gt_qplllock,
+        gt_qplllock        => qpll_lock,
         gt_txclkactive     => gt_txclkactive,
         gt_rxclkactive     => gt_rxclkactive,
         gt_txresetdone     => gt_txresetdone,
@@ -224,62 +209,91 @@ begin
 
         tx_disable_i       => tx_disable,
         rx_commadeten_i    => rx_commadeten,
-        srst_gt_i          => srst_gt,
+        srst_gt_i          => gt_rxresetdatapath,
         frame_counter_o    => frame_counter,
         frame_error_o      => frame_error
 
     );
 
-    ----------------
-    -- GT WRAPPER --
-    ----------------
-    gt_clk  <= gt_usrclk;
-    inst_gtwrapper: entity work.combpm_gtwrapper
-    port map(
-        -- 100MHz clock, main ref clock
-        clk_100                                                    => free_100_clk,
-
-        -- Usrclock for data transfer
-        usrclk                                                     => gt_usrclk,
-
-        -- Async reset active low
-        rst_n                                                      => rst_n,
-
-        -- Differential reference clock inputs and buffered output
-        mgtrefclk_p                                                => mgtref_clk_p,
-        mgtrefclk_n                                                => mgtref_clk_n,
-        mgtrefclk                                                  => mgtref_buf_clk,
-
-        -- SFP interfaces
-        sfp_txp(0)                                                 => sfp_txp,
-        sfp_txn(0)                                                 => sfp_txn,
-        sfp_rxp(0)                                                 => sfp_rxp,
-        sfp_rxn(0)                                                 => sfp_rxn,
-        sfp_rx_los(0)                                              => sfp_rx_los,
-        sfp_mod_abs(0)                                             => sfp_mod_abs,
-        sfp_tx_disable(0)                                          => sfp_tx_disable,
-        sfp_tx_fault(0)                                            => sfp_tx_fault,
-
-        -- GT interfaces
-        gt_datarx                                                  => gt_datarx,
-        gt_datatx                                                  => gt_datatx,
-        gt_powergood(0)                                            => gt_powergood,
-        gt_qplllock(0)                                             => gt_qplllock,
-        gt_txclkactive(0)                                          => gt_txclkactive,
-        gt_rxclkactive(0)                                          => gt_rxclkactive,
-        gt_txresetdone(0)                                          => gt_txresetdone,
-        gt_rxresetdone(0)                                          => gt_rxresetdone,
-        gt_rxbyteisaligned(0)                                      => gt_rxbyteisaligned,
-        gt_rxbyterealign(0)                                        => gt_rxbyterealign,
-        gt_rxcommadet(0)                                           => gt_rxcommadet,
-        gt_txfault(0)                                              => gt_txfault,
-        gt_rxlos(0)                                                => gt_rxlos,
-        gt_rxcdrlock(0)                                            => gt_rxcdrlock,
-        gt_modabs(0)                                               => gt_modabs,
-        gt_rstall(0)                                               => gt_rstall,
-        gt_rxcommadeten(0)                                         => gt_rxcommadeten,
-        gt_txdisable(0)                                            => gt_txdisable
+    ---------------
+    -- GT WIZARD --
+    ---------------
+    gtwizard_inst : combpm_gtwizard
+    PORT MAP (
+        -- Async reset
+        gtwiz_reset_all_in(0)                 => rst,
+        gtwiz_userclk_tx_reset_in(0)          => rst,
+        gtwiz_userclk_rx_reset_in(0)          => rst,
+
+        -- Free run clock
+        gtwiz_reset_clk_freerun_in(0)         => free_100_clk,
+
+        -- Clock and data
+        gtwiz_userclk_rx_usrclk_out(0)        => clk,
+        gtwiz_userdata_tx_in                  => gt_datatx,
+        gtwiz_userdata_rx_out                 => gt_datarx,
+
+        -- QPLL COMMON
+        gtwiz_reset_qpll1lock_in(0)           => qpll_lock,
+        gtwiz_reset_qpll1reset_out(0)         => qpll_reset,
+        qpll1clk_in(0)                        => qpll_out_clk,
+        qpll1refclk_in(0)                     => qpll_ref_clk,
+
+        -- Control
+        gtwiz_reset_rx_datapath_in(0)         => gt_rxresetdatapath,
+        rxbufreset_in(0)                      => "0",
+        rxcommadeten_in(0)                    => gt_rxcommadeten,
+        rx8b10ben_in                          => "1",
+        rxmcommaalignen_in                    => "1",
+        rxpcommaalignen_in                    => "1",
+        tx8b10ben_in                          => "1",
+        gtwiz_reset_tx_pll_and_datapath_in    => "0",
+        gtwiz_reset_tx_datapath_in            => "0",
+        gtwiz_reset_rx_pll_and_datapath_in    => "0",
+
+        -- Status
+        gtwiz_userclk_tx_active_out(0)        => gt_txclkactive,
+        gtwiz_userclk_rx_active_out(0)        => gt_rxclkactive,
+        gtwiz_reset_tx_done_out(0)            => gt_txresetdone,
+        gtwiz_reset_rx_done_out(0)            => gt_rxresetdone,
+        gtpowergood_out(0)                    => gt_powergood,
+        rxbyteisaligned_out(0)                => gt_rxbyteisaligned,
+        rxbyterealign_out(0)                  => gt_rxbyterealign,
+        rxcdrlock_out(0)                      => gt_rxcdrlock,
+        rxcommadet_out(0)                     => gt_rxcommadet,
+        rxbufstatus_out                       => open,
+        rxclkcorcnt_out                       => open,
+        rxpmaresetdone_out                    => open,
+        txpmaresetdone_out                    => open,
+
+        -- SFP
+        gthrxn_in(0)                          => sfp_rxn,
+        gthrxp_in(0)                          => sfp_rxp,
+        gthtxn_out                            => sfp_txn,
+        gthtxp_out                            => sfp_txp,
+
+        -- Not used
+        qpll0clk_in                           => "0",     -- not used
+        qpll0refclk_in                        => "0",  -- not used
+        gtwiz_reset_rx_cdr_stable_out         => open, -- Do not use
+        gtwiz_userclk_rx_srcclk_out           => open,
+        gtwiz_userclk_rx_usrclk2_out          => open,
+        rxctrl0_out                           => (others => '0'),
+        rxctrl1_out                           => (others => '0'),
+        rxctrl2_out                           => (others => '0'),
+        rxctrl3_out                           => (others => '0'),
+        txctrl0_in                            => (others => '0'),
+        txctrl1_in                            => (others => '0'),
+        txctrl2_in                            => (others => '0'),
+        gtwiz_userclk_tx_srcclk_out           => open,
+        gtwiz_userclk_tx_usrclk_out           => open,
+        gtwiz_userclk_tx_usrclk2_out          => open
     );
 
+    -- SFP direct connexion
+    gt_txfault      <= sfp_tx_fault;
+    gt_rxlos        <= sfp_rx_los;
+    gt_modabs       <= sfp_mod_abs;
+    sfp_tx_disable  <= gt_txdisable;
 
 end architecture struct;
diff --git a/rdl/combpm_protocol_electron_ctrl.rdl b/rdl/combpm_protocol_electron_ctrl.rdl
index 30fffa00a9fbf568f9a4875f45a58f61caed516f..1bfcf92f621d479325ffbf55adf6479dd6093138 100644
--- a/rdl/combpm_protocol_electron_ctrl.rdl
+++ b/rdl/combpm_protocol_electron_ctrl.rdl
@@ -103,10 +103,10 @@ addrmap combpm_protocol_electron_ctrl {
         } RXCOMMADETEN = 1;
 
         field {
-            desc="Reset all";
+            desc="Reset RX datapath";
             hw=r;
             sw=rw;
-        } RSTALL = 1;
+        } RXRSTDATAPATH = 1;
 
     } GT;
 
diff --git a/tcl/generate_gtwizard.tcl b/tcl/generate_gtwizard.tcl
index 1f0b6ff4c438925437300acbe5fea25876b10419..67b6e0a330be7be6de7121c3ad3227743e2fb4e4 100644
--- a/tcl/generate_gtwizard.tcl
+++ b/tcl/generate_gtwizard.tcl
@@ -35,15 +35,24 @@ set_property -dict [list \
     CONFIG.RX_CC_K_0_0 {true} \
     CONFIG.RX_CC_VAL_0_1 {10010101} \
     CONFIG.RX_CC_K_0_1 {true} \
-    CONFIG.ENABLE_OPTIONAL_PORTS {qpll1lock_out rxcdrlock_out} \
+    CONFIG.ENABLE_OPTIONAL_PORTS {rxcdrlock_out} \
     CONFIG.RX_REFCLK_SOURCE {X0Y4 clk1} \
     CONFIG.TX_REFCLK_SOURCE {X0Y4 clk1} \
     CONFIG.LOCATE_TX_USER_CLOCKING {CORE} \
     CONFIG.LOCATE_RX_USER_CLOCKING {CORE} \
+    CONFIG.LOCATE_COMMON {EXAMPLE_DESIGN} \
+    CONFIG.LOCATE_RESET_CONTROLLER {CORE} \
+    CONFIG.LOCATE_USER_DATA_WIDTH_SIZING {CORE} \
     CONFIG.TXPROGDIV_FREQ_SOURCE {QPLL1} \
     CONFIG.TXPROGDIV_FREQ_VAL {106} \
     CONFIG.FREERUN_FREQUENCY {100} \
     ] [get_ips ${module_name}]
 
+# If using 2 ports
+# CONFIG.CHANNEL_ENABLE {X0Y4 X0Y5}
+# CONFIG.RX_REFCLK_SOURCE {X0Y5 clk1 X0Y4 clk1}
+# CONFIG.TX_REFCLK_SOURCE {X0Y5 clk1 X0Y4 clk1}
+
+
 # Generate output products
 generate_target all [get_ips ${module_name}]
diff --git a/tcl/metadata.tcl b/tcl/metadata.tcl
index ab54487fdab22dc2605f3e41b320e8ba77d88bb9..d0c1c6fea1bd3dbbaeeb778faf5722da9dc93872 100644
--- a/tcl/metadata.tcl
+++ b/tcl/metadata.tcl
@@ -2,8 +2,10 @@ set design "combpm"
 set top top_combpm_electron
 set part "xczu11eg-ffvc1760-2L-e"
 
+set vlnv_vendor "synchrotron-soleil.fr"
+
 set ip_properties [ list \
-    vendor "synchrotron-soleil.fr" \
+    vendor ${vlnv_vendor} \
     library "user" \
     name ${design} \
     version "1.0" \