diff --git a/simulation/FELIX_Top/felig_sim_top_bnl712.vhd b/simulation/FELIX_Top/felig_sim_top_bnl712.vhd index d26529086f782dd17015383f417744d4ecac0637..24d2bbdece8498777fb222a96c4810d196eeecb2 100644 --- a/simulation/FELIX_Top/felig_sim_top_bnl712.vhd +++ b/simulation/FELIX_Top/felig_sim_top_bnl712.vhd @@ -77,6 +77,8 @@ architecture Behavioral of felig_sim_top_bnl712 is signal gt_txusrclk_i : std_logic_vector(GBT_NUM-1 downto 0); signal gt_rxusrclk_i : std_logic_vector(GBT_NUM-1 downto 0); + + signal gbt_downlink0 : std_logic_vector(119 downto 0); -- signal gbt_tx_data_120b_array_i: txrx120b_type(0 to GBT_NUM-1); -- signal gbt_rx_data_120b_array_i: txrx120b_type(0 to GBT_NUM-1); @@ -126,7 +128,7 @@ begin pcie0_register_map_40_control.FMEMU_RANDOM_CONTROL.SELECT_RANDOM <= "0"; pcie0_register_map_40_control.FMEMU_RANDOM_CONTROL.SEED <= (others=>'0'); pcie0_register_map_40_control.FMEMU_RANDOM_CONTROL.POLYNOMIAL <= (others=>'0'); - pcie0_register_map_40_control.CR_REVERSE_10B.FROMHOST <= "0"; + pcie0_register_map_40_control.CR_REVERSE_10B.FROMHOST <= "1"; --MSB -- lane_control.global.lane_reset <= '0'; @@ -171,11 +173,17 @@ begin emu_control(i).userdata <= X"ABCD"; end generate gen_emu_control; +-- emu_control(0).output_width <= "00"; +-- emu_control(1).output_width <= "00"; --"11"; +-- emu_control(2).output_width <= "01"; +-- emu_control(3).output_width <= "01"; +-- emu_control(4).output_width <= "10"; + emu_control(0).output_width <= "00"; - emu_control(1).output_width <= "00"; --"11"; - emu_control(2).output_width <= "01"; - emu_control(3).output_width <= "01"; - emu_control(4).output_width <= "10"; + emu_control(1).output_width <= "01"; --"11"; + emu_control(2).output_width <= "10"; + emu_control(3).output_width <= "10"; + emu_control(4).output_width <= "11"; -- gen_elink_control_egroup_0 : for i in 0 to 7 generate -- elink_control(i).output_width <= "10"; @@ -270,10 +278,10 @@ begin gbt_rx_reset <= '1'; elsif(time_count = 4600) then gbt_rx_reset <= '0'; - elsif(time_count = 4800) then - emu_reset <= '1'; - elsif(time_count = 5000) then - emu_reset <= '0'; +-- elsif(time_count = 4800) then +-- emu_reset <= '1'; +-- elsif(time_count = 5000) then +-- emu_reset <= '0'; elsif(time_count = 5600) then gbt_tx_reset <= '1'; elsif(time_count = 5800) then @@ -282,10 +290,10 @@ begin lane_control(0).global.l1a_counter_reset <= '1'; elsif(time_count = 6575) then lane_control(0).global.l1a_counter_reset <= '0'; - elsif(time_count = 10400) then - elink_sync <= '1'; - elsif(time_count = 15800) then - elink_sync <= '0'; +-- elsif(time_count = 10400) then +-- elink_sync <= '1'; +-- elsif(time_count = 15800) then +-- elink_sync <= '0'; end if; end if; end process; @@ -366,6 +374,7 @@ begin ); + gbt_downlink0 <= TX_120b_i(0); -- FELIG_lane_wrapper_comp : entity work.FELIG_lane_wrapper EmulatorWrapper_comp : entity work.EmulatorWrapper diff --git a/simulation/FELIX_Top/waveforms/FELIG_phase1_behav.wcfg b/simulation/FELIX_Top/waveforms/FELIG_phase1_behav.wcfg index ce73e10bb6a56f582e6818c6f1c5cbefbdbdd208..e9c60419d53de4b07a61da6b7fbf2b91cc15ff59 100644 --- a/simulation/FELIX_Top/waveforms/FELIG_phase1_behav.wcfg +++ b/simulation/FELIX_Top/waveforms/FELIG_phase1_behav.wcfg @@ -20,20 +20,18 @@ </db_ref> </db_ref_list> <zoom_setting> - <ZoomStartTime time="4790803fs"></ZoomStartTime> - <ZoomEndTime time="5041840fs"></ZoomEndTime> - <Cursor1Time time="5000000fs"></Cursor1Time> + <ZoomStartTime time="90833333fs"></ZoomStartTime> + <ZoomEndTime time="101833334fs"></ZoomEndTime> + <Cursor1Time time="100000000fs"></Cursor1Time> </zoom_setting> <column_width_setting> - <NameColumnWidth column_width="164"></NameColumnWidth> + <NameColumnWidth column_width="156"></NameColumnWidth> <ValueColumnWidth column_width="66"></ValueColumnWidth> </column_width_setting> - <WVObjectSize size="82" /> + <WVObjectSize size="50" /> <wave_markers> <marker label="" time="1901691000" /> <marker label="" time="1893448000" /> - <marker label="" time="38741718" /> - <marker label="" time="23190955" /> </wave_markers> <wvobject type="array" fp_name="/felig_sim_top_bnl712/gbt_rx_flag_i"> <obj_property name="ElementShortName">gbt_rx_flag_i[0:0]</obj_property> @@ -228,38 +226,6 @@ <obj_property name="label">elink_printer</obj_property> <obj_property name="DisplayName">label</obj_property> </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/gbt_payload"> - <obj_property name="ElementShortName">gbt_payload[79:0]</obj_property> - <obj_property name="ObjectShortName">gbt_payload[79:0]</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/gbt_bit_stream"> - <obj_property name="ElementShortName">gbt_bit_stream[107:0]</obj_property> - <obj_property name="ObjectShortName">gbt_bit_stream[107:0]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/tx_flag"> - <obj_property name="ElementShortName">tx_flag</obj_property> - <obj_property name="ObjectShortName">tx_flag</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/elink_sync"> - <obj_property name="ElementShortName">elink_sync</obj_property> - <obj_property name="ObjectShortName">elink_sync</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/bit_stream_sync"> - <obj_property name="ElementShortName">bit_stream_sync</obj_property> - <obj_property name="ObjectShortName">bit_stream_sync</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/elink_sync_lat"> - <obj_property name="ElementShortName">elink_sync_lat</obj_property> - <obj_property name="ObjectShortName">elink_sync_lat</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/gbt_word_latch"> - <obj_property name="ElementShortName">gbt_word_latch</obj_property> - <obj_property name="ObjectShortName">gbt_word_latch</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/gbt_shift_count"> - <obj_property name="ElementShortName">gbt_shift_count[2:0]</obj_property> - <obj_property name="ObjectShortName">gbt_shift_count[2:0]</obj_property> - </wvobject> <wvobject fp_name="divider362" type="divider"> <obj_property name="label">elink_printer_bit_feeder_9</obj_property> <obj_property name="DisplayName">label</obj_property> @@ -268,431 +234,13 @@ <obj_property name="ElementShortName">clk240_in</obj_property> <obj_property name="ObjectShortName">clk240_in</obj_property> </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/enable_endian_control"> - <obj_property name="ElementShortName">enable_endian_control</obj_property> - <obj_property name="ObjectShortName">enable_endian_control</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/enable"> - <obj_property name="ElementShortName">enable</obj_property> - <obj_property name="ObjectShortName">enable</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/elink_endian_mode"> - <obj_property name="ElementShortName">elink_endian_mode</obj_property> - <obj_property name="ObjectShortName">elink_endian_mode</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/bit_stream_en"> - <obj_property name="ElementShortName">bit_stream_en[2:0]</obj_property> - <obj_property name="ObjectShortName">bit_stream_en[2:0]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/bit_stream_en[2]"> - <obj_property name="ElementShortName">[2]</obj_property> - <obj_property name="ObjectShortName">[2]</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/elink_output_width"> - <obj_property name="ElementShortName">elink_output_width[1:0]</obj_property> - <obj_property name="ObjectShortName">elink_output_width[1:0]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/elink_input_width"> - <obj_property name="ElementShortName">elink_input_width</obj_property> - <obj_property name="ObjectShortName">elink_input_width</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/read_enable_d"> - <obj_property name="ElementShortName">read_enable_d</obj_property> - <obj_property name="ObjectShortName">read_enable_d</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/read_enable"> - <obj_property name="ElementShortName">read_enable</obj_property> - <obj_property name="ObjectShortName">read_enable</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/word_in"> - <obj_property name="DisplayName">label</obj_property> - <obj_property name="ElementShortName">word_in[0:9]</obj_property> - <obj_property name="ObjectShortName">word_in[0:9]</obj_property> - <obj_property name="Reversed">true</obj_property> - <obj_property name="label">word_in_rev[0:9]</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/word_in"> - <obj_property name="ElementShortName">word_in[9:0]</obj_property> - <obj_property name="ObjectShortName">word_in[9:0]</obj_property> - <obj_property name="Reversed">false</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/word_lat_ext"> - <obj_property name="ElementShortName">word_lat_ext[9:0]</obj_property> - <obj_property name="ObjectShortName">word_lat_ext[9:0]</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/shift_op"> - <obj_property name="ElementShortName">shift_op[1:0]</obj_property> - <obj_property name="ObjectShortName">shift_op[1:0]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/shift_en_q"> - <obj_property name="ElementShortName">shift_en_q</obj_property> - <obj_property name="ObjectShortName">shift_en_q</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/cycle_count_d"> - <obj_property name="ElementShortName">cycle_count_d[2:0]</obj_property> - <obj_property name="ObjectShortName">cycle_count_d[2:0]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/bit_stream_sync"> - <obj_property name="ElementShortName">bit_stream_sync</obj_property> - <obj_property name="ObjectShortName">bit_stream_sync</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/cycle_count_q"> - <obj_property name="ElementShortName">cycle_count_q[2:0]</obj_property> - <obj_property name="ObjectShortName">cycle_count_q[2:0]</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/reg_d"> - <obj_property name="ElementShortName">reg_d[11:0]</obj_property> - <obj_property name="ObjectShortName">reg_d[11:0]</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/reg_q"> - <obj_property name="ElementShortName">reg_q[11:0]</obj_property> - <obj_property name="ObjectShortName">reg_q[11:0]</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/bit_stream_1_0"> - <obj_property name="ElementShortName">bit_stream_1_0[1:0]</obj_property> - <obj_property name="ObjectShortName">bit_stream_1_0[1:0]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/bit_stream_1_0_we"> - <obj_property name="ElementShortName">bit_stream_1_0_we</obj_property> - <obj_property name="ObjectShortName">bit_stream_1_0_we</obj_property> - </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/bit_stream_3_2"> - <obj_property name="ElementShortName">bit_stream_3_2[1:0]</obj_property> - <obj_property name="ObjectShortName">bit_stream_3_2[1:0]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/\gen_elink_printers(9)\/elink_bit_feeder/bit_stream_3_2_we"> - <obj_property name="ElementShortName">bit_stream_3_2_we</obj_property> - <obj_property name="ObjectShortName">bit_stream_3_2_we</obj_property> - </wvobject> <wvobject fp_name="divider837" type="divider"> <obj_property name="label">New Divider 63</obj_property> <obj_property name="DisplayName">label</obj_property> <obj_property name="BkColor">#FFA500</obj_property> </wvobject> - <wvobject type="array" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer/gbt_payload"> - <obj_property name="ElementShortName">gbt_payload[79:0]</obj_property> - <obj_property name="ObjectShortName">gbt_payload[79:0]</obj_property> - </wvobject> - <wvobject type="vbus" fp_name="vbus1147"> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[79]"> - <obj_property name="ElementShortName">[79]</obj_property> - <obj_property name="ObjectShortName">[79]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[78]"> - <obj_property name="ElementShortName">[78]</obj_property> - <obj_property name="ObjectShortName">[78]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[77]"> - <obj_property name="ElementShortName">[77]</obj_property> - <obj_property name="ObjectShortName">[77]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[76]"> - <obj_property name="ElementShortName">[76]</obj_property> - <obj_property name="ObjectShortName">[76]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[75]"> - <obj_property name="ElementShortName">[75]</obj_property> - <obj_property name="ObjectShortName">[75]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[74]"> - <obj_property name="ElementShortName">[74]</obj_property> - <obj_property name="ObjectShortName">[74]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[73]"> - <obj_property name="ElementShortName">[73]</obj_property> - <obj_property name="ObjectShortName">[73]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[72]"> - <obj_property name="ElementShortName">[72]</obj_property> - <obj_property name="ObjectShortName">[72]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[71]"> - <obj_property name="ElementShortName">[71]</obj_property> - <obj_property name="ObjectShortName">[71]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[70]"> - <obj_property name="ElementShortName">[70]</obj_property> - <obj_property name="ObjectShortName">[70]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[69]"> - <obj_property name="ElementShortName">[69]</obj_property> - <obj_property name="ObjectShortName">[69]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[68]"> - <obj_property name="ElementShortName">[68]</obj_property> - <obj_property name="ObjectShortName">[68]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[67]"> - <obj_property name="ElementShortName">[67]</obj_property> - <obj_property name="ObjectShortName">[67]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[66]"> - <obj_property name="ElementShortName">[66]</obj_property> - <obj_property name="ObjectShortName">[66]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[65]"> - <obj_property name="ElementShortName">[65]</obj_property> - <obj_property name="ObjectShortName">[65]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[64]"> - <obj_property name="ElementShortName">[64]</obj_property> - <obj_property name="ObjectShortName">[64]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[63]"> - <obj_property name="ElementShortName">[63]</obj_property> - <obj_property name="ObjectShortName">[63]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[62]"> - <obj_property name="ElementShortName">[62]</obj_property> - <obj_property name="ObjectShortName">[62]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[61]"> - <obj_property name="ElementShortName">[61]</obj_property> - <obj_property name="ObjectShortName">[61]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[60]"> - <obj_property name="ElementShortName">[60]</obj_property> - <obj_property name="ObjectShortName">[60]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[59]"> - <obj_property name="ElementShortName">[59]</obj_property> - <obj_property name="ObjectShortName">[59]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[58]"> - <obj_property name="ElementShortName">[58]</obj_property> - <obj_property name="ObjectShortName">[58]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[57]"> - <obj_property name="ElementShortName">[57]</obj_property> - <obj_property name="ObjectShortName">[57]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[56]"> - <obj_property name="ElementShortName">[56]</obj_property> - <obj_property name="ObjectShortName">[56]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[55]"> - <obj_property name="ElementShortName">[55]</obj_property> - <obj_property name="ObjectShortName">[55]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[54]"> - <obj_property name="ElementShortName">[54]</obj_property> - <obj_property name="ObjectShortName">[54]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[53]"> - <obj_property name="ElementShortName">[53]</obj_property> - <obj_property name="ObjectShortName">[53]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[52]"> - <obj_property name="ElementShortName">[52]</obj_property> - <obj_property name="ObjectShortName">[52]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[51]"> - <obj_property name="ElementShortName">[51]</obj_property> - <obj_property name="ObjectShortName">[51]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[50]"> - <obj_property name="ElementShortName">[50]</obj_property> - <obj_property name="ObjectShortName">[50]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[49]"> - <obj_property name="ElementShortName">[49]</obj_property> - <obj_property name="ObjectShortName">[49]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[48]"> - <obj_property name="ElementShortName">[48]</obj_property> - <obj_property name="ObjectShortName">[48]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[47]"> - <obj_property name="ElementShortName">[47]</obj_property> - <obj_property name="ObjectShortName">[47]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[46]"> - <obj_property name="ElementShortName">[46]</obj_property> - <obj_property name="ObjectShortName">[46]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[45]"> - <obj_property name="ElementShortName">[45]</obj_property> - <obj_property name="ObjectShortName">[45]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[44]"> - <obj_property name="ElementShortName">[44]</obj_property> - <obj_property name="ObjectShortName">[44]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[43]"> - <obj_property name="ElementShortName">[43]</obj_property> - <obj_property name="ObjectShortName">[43]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[42]"> - <obj_property name="ElementShortName">[42]</obj_property> - <obj_property name="ObjectShortName">[42]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[41]"> - <obj_property name="ElementShortName">[41]</obj_property> - <obj_property name="ObjectShortName">[41]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[40]"> - <obj_property name="ElementShortName">[40]</obj_property> - <obj_property name="ObjectShortName">[40]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[39]"> - <obj_property name="ElementShortName">[39]</obj_property> - <obj_property name="ObjectShortName">[39]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[38]"> - <obj_property name="ElementShortName">[38]</obj_property> - <obj_property name="ObjectShortName">[38]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[37]"> - <obj_property name="ElementShortName">[37]</obj_property> - <obj_property name="ObjectShortName">[37]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[36]"> - <obj_property name="ElementShortName">[36]</obj_property> - <obj_property name="ObjectShortName">[36]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[35]"> - <obj_property name="ElementShortName">[35]</obj_property> - <obj_property name="ObjectShortName">[35]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[34]"> - <obj_property name="ElementShortName">[34]</obj_property> - <obj_property name="ObjectShortName">[34]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[33]"> - <obj_property name="ElementShortName">[33]</obj_property> - <obj_property name="ObjectShortName">[33]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[32]"> - <obj_property name="ElementShortName">[32]</obj_property> - <obj_property name="ObjectShortName">[32]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[31]"> - <obj_property name="ElementShortName">[31]</obj_property> - <obj_property name="ObjectShortName">[31]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[30]"> - <obj_property name="ElementShortName">[30]</obj_property> - <obj_property name="ObjectShortName">[30]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[29]"> - <obj_property name="ElementShortName">[29]</obj_property> - <obj_property name="ObjectShortName">[29]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[28]"> - <obj_property name="ElementShortName">[28]</obj_property> - <obj_property name="ObjectShortName">[28]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[27]"> - <obj_property name="ElementShortName">[27]</obj_property> - <obj_property name="ObjectShortName">[27]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[26]"> - <obj_property name="ElementShortName">[26]</obj_property> - <obj_property name="ObjectShortName">[26]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[25]"> - <obj_property name="ElementShortName">[25]</obj_property> - <obj_property name="ObjectShortName">[25]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[24]"> - <obj_property name="ElementShortName">[24]</obj_property> - <obj_property name="ObjectShortName">[24]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[23]"> - <obj_property name="ElementShortName">[23]</obj_property> - <obj_property name="ObjectShortName">[23]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[22]"> - <obj_property name="ElementShortName">[22]</obj_property> - <obj_property name="ObjectShortName">[22]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[21]"> - <obj_property name="ElementShortName">[21]</obj_property> - <obj_property name="ObjectShortName">[21]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[20]"> - <obj_property name="ElementShortName">[20]</obj_property> - <obj_property name="ObjectShortName">[20]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[19]"> - <obj_property name="ElementShortName">[19]</obj_property> - <obj_property name="ObjectShortName">[19]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[18]"> - <obj_property name="ElementShortName">[18]</obj_property> - <obj_property name="ObjectShortName">[18]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[17]"> - <obj_property name="ElementShortName">[17]</obj_property> - <obj_property name="ObjectShortName">[17]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[16]"> - <obj_property name="ElementShortName">[16]</obj_property> - <obj_property name="ObjectShortName">[16]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[15]"> - <obj_property name="ElementShortName">[15]</obj_property> - <obj_property name="ObjectShortName">[15]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[14]"> - <obj_property name="ElementShortName">[14]</obj_property> - <obj_property name="ObjectShortName">[14]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[13]"> - <obj_property name="ElementShortName">[13]</obj_property> - <obj_property name="ObjectShortName">[13]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[12]"> - <obj_property name="ElementShortName">[12]</obj_property> - <obj_property name="ObjectShortName">[12]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[11]"> - <obj_property name="ElementShortName">[11]</obj_property> - <obj_property name="ObjectShortName">[11]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[10]"> - <obj_property name="ElementShortName">[10]</obj_property> - <obj_property name="ObjectShortName">[10]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[9]"> - <obj_property name="ElementShortName">[9]</obj_property> - <obj_property name="ObjectShortName">[9]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[8]"> - <obj_property name="ElementShortName">[8]</obj_property> - <obj_property name="ObjectShortName">[8]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[7]"> - <obj_property name="ElementShortName">[7]</obj_property> - <obj_property name="ObjectShortName">[7]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[6]"> - <obj_property name="ElementShortName">[6]</obj_property> - <obj_property name="ObjectShortName">[6]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[5]"> - <obj_property name="ElementShortName">[5]</obj_property> - <obj_property name="ObjectShortName">[5]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[4]"> - <obj_property name="ElementShortName">[4]</obj_property> - <obj_property name="ObjectShortName">[4]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[3]"> - <obj_property name="ElementShortName">[3]</obj_property> - <obj_property name="ObjectShortName">[3]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[2]"> - <obj_property name="ElementShortName">[2]</obj_property> - <obj_property name="ObjectShortName">[2]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[1]"> - <obj_property name="ElementShortName">[1]</obj_property> - <obj_property name="ObjectShortName">[1]</obj_property> - </wvobject> - <wvobject type="logic" fp_name="/felig_sim_top_bnl712/EmulatorWrapper_comp/\emulator_inst(0)\/gbt/elink_muxer_v2/gbt_payload[0]"> - <obj_property name="ElementShortName">[0]</obj_property> - <obj_property name="ObjectShortName">[0]</obj_property> - </wvobject> + <wvobject type="array" fp_name="/felig_sim_top_bnl712/gbt_downlink0"> + <obj_property name="ElementShortName">gbt_downlink0[119:0]</obj_property> + <obj_property name="ObjectShortName">gbt_downlink0[119:0]</obj_property> </wvobject> </wave_config> diff --git a/sources/feligHG710/data_generator/elink_printer_bit_feeder_v2.vhd b/sources/feligHG710/data_generator/elink_printer_bit_feeder_v2.vhd index 9adbad4585b417567e27381d54df25d39751d2da..a324db45fe0e9c8bf41fc659e21138eedad2a2aa 100644 --- a/sources/feligHG710/data_generator/elink_printer_bit_feeder_v2.vhd +++ b/sources/feligHG710/data_generator/elink_printer_bit_feeder_v2.vhd @@ -53,6 +53,7 @@ architecture Behavioral of elink_printer_bit_feeder_v2 is signal reg_160_8b10b : std_logic_vector(159 downto 0) := (others => '0'); signal reg_160_direc : std_logic_vector(159 downto 0) := (others => '0'); + signal word_in_d : std_logic_vector(9 downto 0) := (others => '0'); signal word_test : std_logic_vector(9 downto 0) := (others => '0'); signal word_test_h : std_logic_vector(9 downto 0) := (others => '0'); signal word_test_l : std_logic_vector(9 downto 0) := (others => '0'); @@ -61,6 +62,7 @@ architecture Behavioral of elink_printer_bit_feeder_v2 is signal wr_to_reg : std_logic := '0'; signal wr_to_reg_2b : std_logic := '0'; signal wr_to_reg_final : std_logic := '0'; + signal wr_to_reg_final_d : std_logic := '0'; signal count : integer range 0 to 15; signal count_max : integer range 0 to 15; signal count_to_five : std_logic_vector(2 downto 0) := (others => '0'); @@ -135,26 +137,13 @@ begin '1' when shift_op = "001" and input_width = '1' else read_enable_buf when input_width = '0' else '0'; - word_test <= word_test_l when output_width = "010" and input_width = '1' else - word_test_l when output_width = "100" and input_width = '1' else - word_test_h; - + -- 2*5 = 10 1 word -- 4*5 = 20 2 words -- 8*5 = 40 4 words -- 16*5 = 80 8 words -- 32*5 = 160 16 words - - word_test_proc : process (flag) - begin - if flag'event and flag ='1' then - word_test_h <= word_in; - end if; - if flag'event and flag ='0' then - word_test_l <= word_in; - end if; - end process word_test_proc; - + count_max <= 0 when output_width = "000" else -- 2b 1 when output_width = "001" else -- 4b 3 when output_width = "010" else -- 8b @@ -173,7 +162,14 @@ begin begin if clk'event and clk ='1' then flag_d <= flag; - if wr_to_reg_final = '1' then + word_in_d <= word_in; + wr_to_reg_final_d <= wr_to_reg_final; + if flag = '0' and flag_d = '1' and (output_width = "010" or output_width = "100") and input_width = '1' then + word_test <= word_in_d; + elsif flag = '1' and flag_d = '0' and (output_width = "000" or output_width = "001" or output_width = "011") and input_width = '1' then + word_test <= word_in_d; + end if; + if wr_to_reg_final_d = '1' then reg_160_8b10b((count+1)*10 - 1 downto count*10) <= word_test; reg_160_direc((count+1)*8 - 1 downto count*8 ) <= word_test(7 downto 0); if count = count_max then