diff --git a/constraints/FMEmu_top_BNL711_v2.0.xdc b/constraints/FMEmu_top_BNL711_v2.0.xdc index 8513de75de8b55bebda1fa5c2332618a6d8f1b63..04672d90244354e3c34b6823d897339c4f11b4bb 100644 --- a/constraints/FMEmu_top_BNL711_v2.0.xdc +++ b/constraints/FMEmu_top_BNL711_v2.0.xdc @@ -57,6 +57,13 @@ set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] #set_property IOSTANDARD LVCMOS18 [get_ports {leds[6]}] #set_property IOSTANDARD LVCMOS18 [get_ports {leds[7]}] +#Jumper J14 Position 8 selects bifurcation: +#* OFF ('1') (production default): Bifurcation +#* ON ('0') : no bifurcation +set_property IOSTANDARD LVCMOS18 [get_ports {select_bifurcation[0]}] +set_property PACKAGE_PIN P25 [get_ports {select_bifurcation[0]}] + + ################################################################################ # End User Constraints ################################################################################ diff --git a/scripts/FMEmu_top/FMEMU_import_sigasi.tcl b/scripts/FMEmu_top/FMEMU_import_sigasi.tcl index 229ecfc28aa2a87b81c289a8c3b76e37a41545ae..a0d6533c1ec899ebc4405937984e0a5aa19bacf7 100644 --- a/scripts/FMEmu_top/FMEMU_import_sigasi.tcl +++ b/scripts/FMEmu_top/FMEMU_import_sigasi.tcl @@ -33,6 +33,7 @@ source ../filesets/wupper_fileset.tcl #source ../filesets/fullmode_gbt_core_fileset.tcl source ../filesets/housekeeping_fileset.tcl source ../filesets/ttc_decoder_fileset.tcl +source ../filesets/ttc_emulator_fileset.tcl #Actually execute all the filesets source ../helper/sigasi_import_generic.tcl diff --git a/sources/FullModeEmulator/FMEmu_top_bnl711.vhd b/sources/FullModeEmulator/FMEmu_top_bnl711.vhd index c9d0d9b1b55fad0ba4a85f5f9de9acba6fe814f8..0c2cf0422736f64cf21d3874a305642763c1ed29 100644 --- a/sources/FullModeEmulator/FMEmu_top_bnl711.vhd +++ b/sources/FullModeEmulator/FMEmu_top_bnl711.vhd @@ -65,6 +65,7 @@ use work.centralRouter_package.all; use work.FMTransceiverPackage.all; library xpm; use xpm.vcomponents.all; +use work.FELIX_package.all; entity FMEmu_top_bnl711 is generic( @@ -76,13 +77,9 @@ entity FMEmu_top_bnl711 is GENERATE_GBT : boolean := true; AUTOMATIC_CLOCK_SWITCH : boolean := true; USE_BACKUP_CLK : boolean := true; -- true to use 100/200 mhz board crystal, false to use TTC clock - DEBUG_MODE : boolean := false; -- true debug ON wideMode : boolean := true; CARD_TYPE : integer := 711; - GBT_MAPPING : integer := 0; -- GBT mapping: 0 NORMAL CXP1 -> GBT1-12 | 1 ALTERNATE CXP1 -> GBT 1-4,9-12,17-20 OPTO_TRX : integer := 2; - crInternalLoopbackMode : boolean := false; - TTC_test_mode : boolean := false; generateTTCemu : boolean := false; GIT_HASH : std_logic_vector(159 downto 0) := x"0000000000000000000000000000000000000000"; COMMIT_DATETIME : std_logic_vector(39 downto 0) := x"0000FE71CE"; @@ -140,6 +137,7 @@ entity FMEmu_top_bnl711 is PEX_PERSTn : out std_logic; PEX_SCL : inout std_logic; PEX_SDA : inout std_logic; + select_bifurcation : in std_logic_vector(NUM_PEX(CARD_TYPE)-1 downto 0); --For the FLX712 we can select bifurcation with jumper J14:8 (ON: No bifurcation, Off(default): Bifucation PORT_GOOD : in std_logic_vector(7 downto 0); Perstn1_open : in std_logic; -- @suppress "Unused port: Perstn1_open is not used in work.FMEmu_top_bnl711(structure)" Perstn2_open : in std_logic; -- @suppress "Unused port: Perstn2_open is not used in work.FMEmu_top_bnl711(structure)" @@ -224,7 +222,7 @@ architecture structure of FMEmu_top_bnl711 is signal u1_LMK_locked : std_logic_vector(0 downto 0); signal clk10_xtal : std_logic; signal clk40_xtal : std_logic; - signal cdrlocked_out : std_logic; + signal cdrlocked_out : std_logic; -- @suppress "signal cdrlocked_out is never read" signal MMCM_Locked_out : std_logic; signal MMCM_OscSelect_out : std_logic; signal rst_soft_40_0 : std_logic; @@ -233,7 +231,7 @@ architecture structure of FMEmu_top_bnl711 is signal register_map_ttc_monitor : register_map_ttc_monitor_type; signal ttc_TTC_BUSY_mon_array : busyOut_array_type(23 downto 0); signal TTC_BUSY_mon_array : busyOut_array_type(GBT_NUM-1 downto 0); - signal pcie0_register_map_emu_monitor : register_map_gbtemu_monitor_type; + --signal pcie0_register_map_emu_monitor : register_map_gbtemu_monitor_type; signal cr0_register_map_xoff_monitor : register_map_xoff_monitor_type; -- @suppress "signal cr0_register_map_xoff_monitor is never written" signal register_map_cr_monitor : register_map_cr_monitor_type; -- @suppress "signal register_map_cr_monitor is never written" signal pcie1_tohost_busy_out : std_logic; @@ -343,7 +341,7 @@ begin register_map_control_appreg_clk => pcie0_register_map_control_appreg_clk, register_map_gen_board_info => register_map_gen_board_info, register_map_cr_monitor => register_map_cr_monitor, - register_map_gbtemu_monitor => pcie0_register_map_emu_monitor, + register_map_gbtemu_monitor => register_map_gbtemu_monitor_c, register_map_gbt_monitor => register_map_gbt_monitor, register_map_ttc_monitor => register_map_ttc_monitor, register_map_xoff_monitor => cr0_register_map_xoff_monitor, @@ -354,7 +352,6 @@ begin reset_hard => open, reset_soft => rst_soft_40_0, reset_soft_appreg_clk => reset_soft_pcie0, - reset_hw_in => rst_hw, sys_clk_n => sys_clk0_n, sys_clk_p => sys_clk0_p, sys_reset_n => sys_reset_n, @@ -547,7 +544,7 @@ begin register_map_control_appreg_clk => open, register_map_gen_board_info => register_map_gen_board_info, register_map_cr_monitor => register_map_cr_monitor, - register_map_gbtemu_monitor => pcie0_register_map_emu_monitor, + register_map_gbtemu_monitor => register_map_gbtemu_monitor_c, register_map_gbt_monitor => register_map_gbt_monitor, register_map_ttc_monitor => register_map_ttc_monitor, register_map_xoff_monitor => cr0_register_map_xoff_monitor, @@ -558,7 +555,6 @@ begin reset_hard => open, reset_soft => open, reset_soft_appreg_clk => open, - reset_hw_in => rst_hw, sys_clk_n => sys_clk1_n, sys_clk_p => sys_clk1_p, sys_reset_n => sys_reset_n, @@ -787,6 +783,7 @@ end generate FMEMU_logic; CARD_TYPE => CARD_TYPE ) port map( + select_bifurcation => select_bifurcation, I2C_SMB => I2C_SMB, I2C_SMBUS_CFG_nEN => I2C_SMBUS_CFG_nEN, MGMT_PORT_EN => MGMT_PORT_EN, diff --git a/sources/GBT/gbt_code/gbtRx_wrap_FELIX.vhd b/sources/GBT/gbt_code/gbtRx_wrap_FELIX.vhd index d1ade67168b9311bb1eddcdc7847e33e194c2a32..2fe1e9db2faaa87362b902fc9428f85ed7e71d61 100644 --- a/sources/GBT/gbt_code/gbtRx_wrap_FELIX.vhd +++ b/sources/GBT/gbt_code/gbtRx_wrap_FELIX.vhd @@ -142,7 +142,7 @@ begin --- outsel_o <= outsel_gen; - process(RX_RESET_I, L40M) + process(L40M) begin if L40M'event and L40M='1' then if RX_RESET_I = '1' then @@ -156,7 +156,7 @@ begin desmux_en : if RX_DESCR_MUX_EN = '1' generate - process(RX_RESET_I, L40M) + process(L40M) begin if L40M'event and L40M = '0' then RX_DATA_120b_O_r <= RX_DATA_120b_Oi; @@ -182,11 +182,11 @@ begin -- L40M => L40M, OddEven => OddEven, TopBot => TopBot, - data_sel => data_sel, + --data_sel => data_sel, HeaderFlag => HeaderFlag, header_found => header_found, Rx_Data_Format => Rx_Data_Format, - RX_ISDATA_FLAG_O => RX_ISDATA_FLAG_O, + --RX_ISDATA_FLAG_O => RX_ISDATA_FLAG_O, RX_LATOPT_DES => RX_LATOPT_DES, RX_DATA_20b_I => RX_DATA_20b_I,