diff --git a/Makefile b/Makefile index 7d8f13854555491ebdf01badcfa5c28582d74641..29cc228839e0564ee3153af30764cfbf8d796dc4 100644 --- a/Makefile +++ b/Makefile @@ -28,9 +28,16 @@ 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) +component.xml:tcl/sources.tcl tcl/combpm.tcl $(hdlsrc) vivado -mode batch -source tcl/combpm.tcl +############################################################################### +# Synthessize IP for test +synth:component.xml + vivado -mode batch -source tcl/bloc_synthesis.tcl + + + ############################################################################### # Cleaner Rules @@ -48,4 +55,4 @@ 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 +.PHONY: clean clean-ip clean-sim clean-all none ip sim synth diff --git a/hdl/top_combpm_electron.vhd b/hdl/top_combpm_electron.vhd index 415a22a080060a9279136b076e3ae924093785ce..b7968ec864a324bde06282cd427b4cc5e98c0ad8 100644 --- a/hdl/top_combpm_electron.vhd +++ b/hdl/top_combpm_electron.vhd @@ -86,10 +86,68 @@ 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"; + COMPONENT combpm_gtwizard + PORT ( + gtwiz_userclk_tx_reset_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_tx_srcclk_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_tx_usrclk_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_tx_usrclk2_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_tx_active_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_rx_reset_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_rx_srcclk_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_rx_usrclk_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_rx_usrclk2_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userclk_rx_active_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_clk_freerun_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_all_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_tx_pll_and_datapath_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_tx_datapath_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_rx_pll_and_datapath_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_rx_datapath_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_qpll1lock_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_rx_cdr_stable_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_tx_done_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_rx_done_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_reset_qpll1reset_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtwiz_userdata_tx_in : IN STD_LOGIC_VECTOR(15 DOWNTO 0); + gtwiz_userdata_rx_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); + gthrxn_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + gthrxp_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + qpll0clk_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + qpll0refclk_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + qpll1clk_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + qpll1refclk_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + rx8b10ben_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + rxbufreset_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + rxcommadeten_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + rxmcommaalignen_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + rxpcommaalignen_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + tx8b10ben_in : IN STD_LOGIC_VECTOR(0 DOWNTO 0); + txctrl0_in : IN STD_LOGIC_VECTOR(15 DOWNTO 0); + txctrl1_in : IN STD_LOGIC_VECTOR(15 DOWNTO 0); + txctrl2_in : IN STD_LOGIC_VECTOR(7 DOWNTO 0); + gthtxn_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gthtxp_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + gtpowergood_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + rxbufstatus_out : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); + rxbyteisaligned_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + rxbyterealign_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + rxcdrlock_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + rxclkcorcnt_out : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); + rxcommadet_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + rxctrl0_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); + rxctrl1_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); + rxctrl2_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); + rxctrl3_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); + rxpmaresetdone_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0); + txpmaresetdone_out : OUT STD_LOGIC_VECTOR(0 DOWNTO 0) + ); + END COMPONENT; ------------------------ -- SIGNAL DECLARATION -- ------------------------ + signal usrclk : std_logic; signal rst : std_logic; signal tx_disable : std_logic; signal rx_commadeten : std_logic; @@ -144,12 +202,12 @@ begin gt_rxbyterealign_i => gt_rxbyterealign, gt_rxcommadet_i => gt_rxcommadet, gt_rxcommadeten_o => rx_commadeten, - gt_rxresetdatapath_o => gt_rxresetdatapath, + gt_rxrstdatapath_o => gt_rxresetdatapath, protocol_framecnt_i => frame_counter, protocol_frameerror_i => frame_error, - clk => clk, - reset => sync_rst, + clk => usrclk, + reset => rst, S_AXI_AWADDR => S_AXI_AWADDR, S_AXI_AWPROT => S_AXI_AWPROT, S_AXI_AWVALID => S_AXI_AWVALID, @@ -177,7 +235,7 @@ begin protocol_inst: entity work.combpm_protocol_electron port map( rst_n => rst_n, - clk => clk, + clk => usrclk, gt_datarx => gt_datarx, gt_datatx => gt_datatx, gt_powergood => gt_powergood, @@ -229,7 +287,7 @@ begin gtwiz_reset_clk_freerun_in(0) => free_100_clk, -- Clock and data - gtwiz_userclk_rx_usrclk_out(0) => clk, + gtwiz_userclk_rx_usrclk_out(0) => usrclk, gtwiz_userdata_tx_in => gt_datatx, gtwiz_userdata_rx_out => gt_datarx, @@ -241,7 +299,7 @@ begin -- Control gtwiz_reset_rx_datapath_in(0) => gt_rxresetdatapath, - rxbufreset_in(0) => "0", + rxbufreset_in => "0", rxcommadeten_in(0) => gt_rxcommadeten, rx8b10ben_in => "1", rxmcommaalignen_in => "1", @@ -269,8 +327,8 @@ begin -- SFP gthrxn_in(0) => sfp_rxn, gthrxp_in(0) => sfp_rxp, - gthtxn_out => sfp_txn, - gthtxp_out => sfp_txp, + gthtxn_out(0) => sfp_txn, + gthtxp_out(0) => sfp_txp, -- Not used qpll0clk_in => "0", -- not used @@ -278,10 +336,10 @@ begin 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'), + rxctrl0_out => open, + rxctrl1_out => open, + rxctrl2_out => open, + rxctrl3_out => open, txctrl0_in => (others => '0'), txctrl1_in => (others => '0'), txctrl2_in => (others => '0'), @@ -290,6 +348,8 @@ begin gtwiz_userclk_tx_usrclk2_out => open ); + clk <= usrclk; + -- SFP direct connexion gt_txfault <= sfp_tx_fault; gt_rxlos <= sfp_rx_los; diff --git a/others/combpm_gtwizard_gthe4_common_wrapper.v b/others/combpm_gtwizard_gthe4_common_wrapper.v new file mode 100644 index 0000000000000000000000000000000000000000..5085df4597ec33d6d573566bf1fe2e52ccef9cd3 --- /dev/null +++ b/others/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/others/gthe_common.vhd b/others/gthe_common.vhd new file mode 100644 index 0000000000000000000000000000000000000000..fdbd8d3915018145a3d929977927fee9e6971971 --- /dev/null +++ b/others/gthe_common.vhd @@ -0,0 +1,238 @@ +library ieee; +use ieee.std_logic_1164.all; + +Library UNISIM; +use UNISIM.vcomponents.all; + +entity gthe_common is + port( + -- Differential clock intput + gtrefclk_p : in std_logic; + gtrefclk_n : in std_logic; + + -- QPLL0 interface + qpll0reset : in std_logic; + qpll0lock : out std_logic; + qpll0outclk : out std_logic; + qpll0refclk : out std_logic; + + -- QPLL0 interface + qpll1reset : in std_logic; + qpll1lock : out std_logic; + qpll1outclk : out std_logic; + qpll1refclk : out std_logic + + ); +end entity gthe_common; + +architecture struct of gthe_common is + + ATTRIBUTE X_INTERFACE_INFO : STRING; + ATTRIBUTE X_INTERFACE_INFO of gtrefclk_p: SIGNAL is "xilinx.com:interface:diff_clock:1.0 gtrefclk_diff CLK_P"; + ATTRIBUTE X_INTERFACE_INFO of gtrefclk_n: SIGNAL is "xilinx.com:interface:diff_clock:1.0 gtrefclk_diff CLK_N"; + + signal gtrefclk : std_logic; + + component combpm_gtwizard_gthe4_common_wrapper + port( + GTHE4_COMMON_BGBYPASSB : in std_logic_vector(0 downto 0); + GTHE4_COMMON_BGMONITORENB : in std_logic_vector(0 downto 0); + GTHE4_COMMON_BGPDB : in std_logic_vector(0 downto 0); + GTHE4_COMMON_BGRCALOVRD : in std_logic_vector(4 downto 0); + GTHE4_COMMON_BGRCALOVRDENB : in std_logic_vector(0 downto 0); + GTHE4_COMMON_DRPADDR : in std_logic_vector(15 downto 0); + GTHE4_COMMON_DRPCLK : in std_logic_vector(0 downto 0); + GTHE4_COMMON_DRPDI : in std_logic_vector(15 downto 0); + GTHE4_COMMON_DRPEN : in std_logic_vector(0 downto 0); + GTHE4_COMMON_DRPWE : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTGREFCLK0 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTGREFCLK1 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTNORTHREFCLK00 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTNORTHREFCLK01 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTNORTHREFCLK10 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTNORTHREFCLK11 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTREFCLK00 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTREFCLK01 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTREFCLK10 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTREFCLK11 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTSOUTHREFCLK00 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTSOUTHREFCLK01 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTSOUTHREFCLK10 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_GTSOUTHREFCLK11 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_PCIERATEQPLL0 : in std_logic_vector(2 downto 0); + GTHE4_COMMON_PCIERATEQPLL1 : in std_logic_vector(2 downto 0); + GTHE4_COMMON_PMARSVD0 : in std_logic_vector(7 downto 0); + GTHE4_COMMON_PMARSVD1 : in std_logic_vector(7 downto 0); + GTHE4_COMMON_QPLL0CLKRSVD0 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0CLKRSVD1 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0FBDIV : in std_logic_vector(7 downto 0); + GTHE4_COMMON_QPLL0LOCKDETCLK : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0LOCKEN : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0PD : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0REFCLKSEL : in std_logic_vector(2 downto 0); + GTHE4_COMMON_QPLL0RESET : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1CLKRSVD0 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1CLKRSVD1 : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1FBDIV : in std_logic_vector(7 downto 0); + GTHE4_COMMON_QPLL1LOCKDETCLK : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1LOCKEN : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1PD : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1REFCLKSEL : in std_logic_vector(2 downto 0); + GTHE4_COMMON_QPLL1RESET : in std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLLRSVD1 : in std_logic_vector(7 downto 0); + GTHE4_COMMON_QPLLRSVD2 : in std_logic_vector(4 downto 0); + GTHE4_COMMON_QPLLRSVD3 : in std_logic_vector(4 downto 0); + GTHE4_COMMON_QPLLRSVD4 : in std_logic_vector(7 downto 0); + GTHE4_COMMON_RCALENB : in std_logic_vector(0 downto 0); + GTHE4_COMMON_SDM0DATA : in std_logic_vector(24 downto 0); + GTHE4_COMMON_SDM0RESET : in std_logic_vector(0 downto 0); + GTHE4_COMMON_SDM0TOGGLE : in std_logic_vector(0 downto 0); + GTHE4_COMMON_SDM0WIDTH : in std_logic_vector(1 downto 0); + GTHE4_COMMON_SDM1DATA : in std_logic_vector(24 downto 0); + GTHE4_COMMON_SDM1RESET : in std_logic_vector(0 downto 0); + GTHE4_COMMON_SDM1TOGGLE : in std_logic_vector(0 downto 0); + GTHE4_COMMON_SDM1WIDTH : in std_logic_vector(1 downto 0); + GTHE4_COMMON_TCONGPI : in std_logic_vector(9 downto 0); + GTHE4_COMMON_TCONPOWERUP : in std_logic_vector(0 downto 0); + GTHE4_COMMON_TCONRESET : in std_logic_vector(1 downto 0); + GTHE4_COMMON_TCONRSVDIN1 : in std_logic_vector(1 downto 0); + GTHE4_COMMON_DRPDO : out std_logic_vector(15 downto 0); + GTHE4_COMMON_DRPRDY : out std_logic_vector(0 downto 0); + GTHE4_COMMON_PMARSVDOUT0 : out std_logic_vector(7 downto 0); + GTHE4_COMMON_PMARSVDOUT1 : out std_logic_vector(7 downto 0); + GTHE4_COMMON_QPLL0FBCLKLOST : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0LOCK : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0OUTCLK : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0OUTREFCLK : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL0REFCLKLOST : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1FBCLKLOST : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1LOCK : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1OUTCLK : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1OUTREFCLK : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLL1REFCLKLOST : out std_logic_vector(0 downto 0); + GTHE4_COMMON_QPLLDMONITOR0 : out std_logic_vector(7 downto 0); + GTHE4_COMMON_QPLLDMONITOR1 : out std_logic_vector(7 downto 0); + GTHE4_COMMON_REFCLKOUTMONITOR0 : out std_logic_vector(0 downto 0); + GTHE4_COMMON_REFCLKOUTMONITOR1 : out std_logic_vector(0 downto 0); + GTHE4_COMMON_RXRECCLK0SEL : out std_logic_vector(1 downto 0); + GTHE4_COMMON_RXRECCLK1SEL : out std_logic_vector(1 downto 0); + GTHE4_COMMON_SDM0FINALOUT : out std_logic_vector(3 downto 0); + GTHE4_COMMON_SDM0TESTDATA : out std_logic_vector(14 downto 0); + GTHE4_COMMON_SDM1FINALOUT : out std_logic_vector(3 downto 0); + GTHE4_COMMON_SDM1TESTDATA : out std_logic_vector(14 downto 0); + GTHE4_COMMON_TCONGPO : out std_logic_vector(9 downto 0); + GTHE4_COMMON_TCONRSVDOUT0 : out std_logic_vector(0 downto 0) + ); + end component; + +begin + + -- INPUT BUFFER + IBUFDS_GTE4_inst : IBUFDS_GTE4 + generic map ( + REFCLK_EN_TX_PATH => '0', + REFCLK_HROW_CK_SEL => "00", + REFCLK_ICNTL_RX => "00" + ) + port map ( + O => gtrefclk, + ODIV2 => open, + CEB => '0', + I => gtrefclk_p, + IB => gtrefclk_n + ); + + + -- TRANSCEIVER COMMON BLOCK + gthe4_common_wrapper_inst: 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(0) => gtrefclk, + GTHE4_COMMON_GTREFCLK01(0) => gtrefclk, + 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(0) => qpll0reset, + 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(0) => qpll1reset, + 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(0) => qpll0lock, + GTHE4_COMMON_QPLL0OUTCLK(0) => qpll0outclk, + GTHE4_COMMON_QPLL0OUTREFCLK(0) => qpll0refclk, + GTHE4_COMMON_QPLL0REFCLKLOST => open, + GTHE4_COMMON_QPLL1FBCLKLOST => open, + GTHE4_COMMON_QPLL1LOCK(0) => qpll1lock, + GTHE4_COMMON_QPLL1OUTCLK(0) => qpll1outclk, + GTHE4_COMMON_QPLL1OUTREFCLK(0) => qpll1refclk, + 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 + ); + +end architecture struct; diff --git a/others/gtwizard_ultrascale_v1_7_gthe4_common.v b/others/gtwizard_ultrascale_v1_7_gthe4_common.v new file mode 100644 index 0000000000000000000000000000000000000000..3f7c77b6785fdfb4b93f54784175b0d5ad66af9e --- /dev/null +++ b/others/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/tcl/bloc_synthesis.tcl b/tcl/bloc_synthesis.tcl new file mode 100644 index 0000000000000000000000000000000000000000..c48220a6608c625e4d9918affc845fee66b5e805 --- /dev/null +++ b/tcl/bloc_synthesis.tcl @@ -0,0 +1,20 @@ +# Source metadata +source ./tcl/metadata.tcl + +# Create project +create_project synth_project -part ${part} -in_memory +set_property source_mgmt_mode All [current_project] + +set_property IP_REPO_PATHS . [current_fileset] +update_ip_catalog + +# Create instance of the IP +create_ip -vendor ${vlnv_vendor} -library "user" -name "combpm" -module_name combpm_0 + +# Generate output products +#generate_target all [get_ips combpm_0] + +# Try synthesis +synth_ip [get_ips combpm_0] + +close_project