From 9ac81a586799d181b51a603c08db5ede75674c11 Mon Sep 17 00:00:00 2001 From: Ludwig Maier Date: Tue, 8 Apr 2014 19:57:43 +0200 Subject: [PATCH] data stream merge handler still buggy, will try new one --- nxyter/cores/pll_adc_clk.ipx | 8 +- nxyter/cores/pll_adc_clk.lpc | 6 +- nxyter/cores/pll_adc_clk.vhd | 20 +- nxyter/cores/pll_nx_clk250.ipx | 8 +- nxyter/cores/pll_nx_clk250.lpc | 6 +- nxyter/cores/pll_nx_clk250.vhd | 20 +- nxyter/source/adc_ad9228.vhd | 285 +++--- nxyter/source/gray_decoder.vhd | 4 +- nxyter/source/gray_encoder.vhd | 4 +- nxyter/source/nx_data_delay.vhd | 5 +- nxyter/source/nx_data_receiver.vhd | 909 ++++++++++-------- nxyter/source/nx_data_validate.vhd | 524 ++++++---- nxyter/source/nx_fpga_timestamp.vhd | 55 +- nxyter/source/nx_i2c_master.vhd | 12 +- .../{nx_setup.vhd => nx_register_setup.vhd} | 127 +-- .../source/{nx_control.vhd => nx_status.vhd} | 143 ++- nxyter/source/nx_status_event.vhd | 23 +- nxyter/source/nx_timestamp_sim.vhd | 2 +- nxyter/source/nx_trigger_generator.vhd | 123 ++- nxyter/source/nx_trigger_handler.vhd | 15 +- nxyter/source/nx_trigger_validate.vhd | 68 +- nxyter/source/nxyter.pdf | Bin 169390 -> 204296 bytes nxyter/source/nxyter_components.vhd | 98 +- nxyter/source/nxyter_fee_board.vhd | 211 ++-- nxyter/source/registers.txt | 8 +- nxyter/trb3_periph.p2t | 2 +- nxyter/trb3_periph.prj | 4 +- nxyter/trb3_periph_constraints.lpf | 9 +- nxyter/trb3_periph_nx1.vhd | 34 +- nxyter/trb3_periph_nxyter.lpf | 10 +- 30 files changed, 1551 insertions(+), 1192 deletions(-) rename nxyter/source/{nx_setup.vhd => nx_register_setup.vhd} (93%) rename nxyter/source/{nx_control.vhd => nx_status.vhd} (80%) diff --git a/nxyter/cores/pll_adc_clk.ipx b/nxyter/cores/pll_adc_clk.ipx index 0b8e765..46f3f23 100644 --- a/nxyter/cores/pll_adc_clk.ipx +++ b/nxyter/cores/pll_adc_clk.ipx @@ -1,8 +1,8 @@ - + - - - + + + diff --git a/nxyter/cores/pll_adc_clk.lpc b/nxyter/cores/pll_adc_clk.lpc index 73a8e23..916c5ed 100644 --- a/nxyter/cores/pll_adc_clk.lpc +++ b/nxyter/cores/pll_adc_clk.lpc @@ -16,8 +16,8 @@ CoreRevision=5.3 ModuleName=pll_adc_clk SourceFormat=VHDL ParameterFileVersion=1.0 -Date=10/02/2013 -Time=22:14:51 +Date=04/07/2014 +Time=15:14:44 [Parameters] Verilog=0 @@ -54,7 +54,7 @@ U_KFrq=50 OK_Tol=0.0 KFrq= ClkRst=0 -PCDR=0 +PCDR=1 FINDELA=0 VcoRate= Bandwidth=1.826303 diff --git a/nxyter/cores/pll_adc_clk.vhd b/nxyter/cores/pll_adc_clk.vhd index c4b0100..5244e69 100644 --- a/nxyter/cores/pll_adc_clk.vhd +++ b/nxyter/cores/pll_adc_clk.vhd @@ -1,8 +1,8 @@ -- VHDL netlist generated by SCUBA Diamond_2.1_Production (100) -- Module Version: 5.3 ---/usr/local/opt/lattice_diamond/diamond/2.1/ispfpga/bin/lin64/scuba -w -n pll_adc_clk -lang vhdl -synth synplify -arch ep5c00 -type pll -fin 200 -phase_cntl STATIC -fclkop 187.5 -fclkop_tol 0.0 -fb_mode CLOCKTREE -noclkos -noclkok -norst -noclkok2 -bw -e +--/usr/local/opt/lattice_diamond/diamond/2.1/ispfpga/bin/lin64/scuba -w -n pll_adc_clk -lang vhdl -synth synplify -arch ep5c00 -type pll -fin 200 -phase_cntl STATIC -fclkop 187.5 -fclkop_tol 0.0 -fb_mode CLOCKTREE -noclkos -noclkok -use_rst -noclkok2 -bw -e --- Wed Oct 2 22:14:51 2013 +-- Mon Apr 7 15:14:44 2014 library IEEE; use IEEE.std_logic_1164.all; @@ -14,6 +14,7 @@ use ecp3.components.all; entity pll_adc_clk is port ( CLK: in std_logic; + RESET: in std_logic; CLKOP: out std_logic; LOCK: out std_logic); attribute dont_touch : boolean; @@ -75,14 +76,13 @@ begin PHASE_DELAY_CNTL=> "STATIC", DUTY=> 8, PHASEADJ=> "0.0", CLKOK_DIV=> 2, CLKOP_DIV=> 4, CLKFB_DIV=> 15, CLKI_DIV=> 16, FIN=> "200.000000") - port map (CLKI=>CLK, CLKFB=>CLKOP_t, RST=>scuba_vlo, - RSTK=>scuba_vlo, WRDEL=>scuba_vlo, DRPAI3=>scuba_vlo, - DRPAI2=>scuba_vlo, DRPAI1=>scuba_vlo, DRPAI0=>scuba_vlo, - DFPAI3=>scuba_vlo, DFPAI2=>scuba_vlo, DFPAI1=>scuba_vlo, - DFPAI0=>scuba_vlo, FDA3=>scuba_vlo, FDA2=>scuba_vlo, - FDA1=>scuba_vlo, FDA0=>scuba_vlo, CLKOP=>CLKOP_t, - CLKOS=>open, CLKOK=>open, CLKOK2=>open, LOCK=>LOCK, - CLKINTFB=>open); + port map (CLKI=>CLK, CLKFB=>CLKOP_t, RST=>RESET, RSTK=>scuba_vlo, + WRDEL=>scuba_vlo, DRPAI3=>scuba_vlo, DRPAI2=>scuba_vlo, + DRPAI1=>scuba_vlo, DRPAI0=>scuba_vlo, DFPAI3=>scuba_vlo, + DFPAI2=>scuba_vlo, DFPAI1=>scuba_vlo, DFPAI0=>scuba_vlo, + FDA3=>scuba_vlo, FDA2=>scuba_vlo, FDA1=>scuba_vlo, + FDA0=>scuba_vlo, CLKOP=>CLKOP_t, CLKOS=>open, CLKOK=>open, + CLKOK2=>open, LOCK=>LOCK, CLKINTFB=>open); CLKOP <= CLKOP_t; end Structure; diff --git a/nxyter/cores/pll_nx_clk250.ipx b/nxyter/cores/pll_nx_clk250.ipx index 8bcbb75..26990f9 100644 --- a/nxyter/cores/pll_nx_clk250.ipx +++ b/nxyter/cores/pll_nx_clk250.ipx @@ -1,8 +1,8 @@ - + - - - + + + diff --git a/nxyter/cores/pll_nx_clk250.lpc b/nxyter/cores/pll_nx_clk250.lpc index 83f8158..360c9d9 100644 --- a/nxyter/cores/pll_nx_clk250.lpc +++ b/nxyter/cores/pll_nx_clk250.lpc @@ -16,8 +16,8 @@ CoreRevision=5.3 ModuleName=pll_nx_clk250 SourceFormat=VHDL ParameterFileVersion=1.0 -Date=10/20/2013 -Time=03:05:02 +Date=04/07/2014 +Time=15:14:25 [Parameters] Verilog=0 @@ -54,7 +54,7 @@ U_KFrq=125 OK_Tol=0.0 KFrq=125.000000 ClkRst=0 -PCDR=0 +PCDR=1 FINDELA=0 VcoRate= Bandwidth=1.753251 diff --git a/nxyter/cores/pll_nx_clk250.vhd b/nxyter/cores/pll_nx_clk250.vhd index 02f8c81..6691721 100644 --- a/nxyter/cores/pll_nx_clk250.vhd +++ b/nxyter/cores/pll_nx_clk250.vhd @@ -1,8 +1,8 @@ -- VHDL netlist generated by SCUBA Diamond_2.1_Production (100) -- Module Version: 5.3 ---/usr/local/opt/lattice_diamond/diamond/2.1/ispfpga/bin/lin64/scuba -w -n pll_nx_clk250 -lang vhdl -synth synplify -arch ep5c00 -type pll -fin 200 -phase_cntl STATIC -fclkop 250 -fclkop_tol 0.0 -fb_mode CLOCKTREE -noclkos -fclkok 125 -fclkok_tol 0.0 -clkoki 0 -norst -noclkok2 -bw -e +--/usr/local/opt/lattice_diamond/diamond/2.1/ispfpga/bin/lin64/scuba -w -n pll_nx_clk250 -lang vhdl -synth synplify -arch ep5c00 -type pll -fin 200 -phase_cntl STATIC -fclkop 250 -fclkop_tol 0.0 -fb_mode CLOCKTREE -noclkos -fclkok 125 -fclkok_tol 0.0 -clkoki 0 -use_rst -noclkok2 -bw -e --- Sun Oct 20 03:05:02 2013 +-- Mon Apr 7 15:14:25 2014 library IEEE; use IEEE.std_logic_1164.all; @@ -14,6 +14,7 @@ use ecp3.components.all; entity pll_nx_clk250 is port ( CLK: in std_logic; + RESET: in std_logic; CLKOP: out std_logic; CLKOK: out std_logic; LOCK: out std_logic); @@ -78,14 +79,13 @@ begin PHASE_DELAY_CNTL=> "STATIC", DUTY=> 8, PHASEADJ=> "0.0", CLKOK_DIV=> 2, CLKOP_DIV=> 4, CLKFB_DIV=> 5, CLKI_DIV=> 4, FIN=> "200.000000") - port map (CLKI=>CLK, CLKFB=>CLKOP_t, RST=>scuba_vlo, - RSTK=>scuba_vlo, WRDEL=>scuba_vlo, DRPAI3=>scuba_vlo, - DRPAI2=>scuba_vlo, DRPAI1=>scuba_vlo, DRPAI0=>scuba_vlo, - DFPAI3=>scuba_vlo, DFPAI2=>scuba_vlo, DFPAI1=>scuba_vlo, - DFPAI0=>scuba_vlo, FDA3=>scuba_vlo, FDA2=>scuba_vlo, - FDA1=>scuba_vlo, FDA0=>scuba_vlo, CLKOP=>CLKOP_t, - CLKOS=>open, CLKOK=>CLKOK, CLKOK2=>open, LOCK=>LOCK, - CLKINTFB=>open); + port map (CLKI=>CLK, CLKFB=>CLKOP_t, RST=>RESET, RSTK=>scuba_vlo, + WRDEL=>scuba_vlo, DRPAI3=>scuba_vlo, DRPAI2=>scuba_vlo, + DRPAI1=>scuba_vlo, DRPAI0=>scuba_vlo, DFPAI3=>scuba_vlo, + DFPAI2=>scuba_vlo, DFPAI1=>scuba_vlo, DFPAI0=>scuba_vlo, + FDA3=>scuba_vlo, FDA2=>scuba_vlo, FDA1=>scuba_vlo, + FDA0=>scuba_vlo, CLKOP=>CLKOP_t, CLKOS=>open, CLKOK=>CLKOK, + CLKOK2=>open, LOCK=>LOCK, CLKINTFB=>open); CLKOP <= CLKOP_t; end Structure; diff --git a/nxyter/source/adc_ad9228.vhd b/nxyter/source/adc_ad9228.vhd index b293d39..2ca5424 100644 --- a/nxyter/source/adc_ad9228.vhd +++ b/nxyter/source/adc_ad9228.vhd @@ -62,16 +62,10 @@ architecture Behavioral of adc_ad9228 is signal adc0_frame_notlocked : std_logic; signal adc0_frame_notlocked_p : std_logic; signal adc0_notlock_ctr : unsigned(7 downto 0); - signal adc0_bit_shift : unsigned(1 downto 0); - signal adc0_bit_shift_last : unsigned(1 downto 0); - signal adc0_bit_shift_change : std_logic; signal adc1_frame_notlocked : std_logic; signal adc1_frame_notlocked_p : std_logic; signal adc1_notlock_ctr : unsigned(7 downto 0); - signal adc1_bit_shift : unsigned(1 downto 0); - signal adc1_bit_shift_last : unsigned(1 downto 0); - signal adc1_bit_shift_change : std_logic; -- Merge Data type q_map_t is array(0 to 4) of std_logic_vector(3 downto 0); @@ -80,13 +74,25 @@ architecture Behavioral of adc_ad9228 is signal adc0_data_buf : adc_data_buf_t; signal adc0_frame_ctr : unsigned(2 downto 0); + signal adc0_frame_ctr_last : unsigned(2 downto 0); + signal adc0_bit_shift : unsigned(1 downto 0); + signal adc0_bit_shift_last : unsigned(1 downto 0); + signal adc0_ctr_error : std_logic; + signal adc0_shift_error : std_logic; + signal adc0_error_status : std_logic_vector(15 downto 0); signal adc0_frame_locked : std_logic; - + signal adc0_new_data_t : std_logic; signal adc0_data_t : adc_data_t; signal adc1_data_buf : adc_data_buf_t; signal adc1_frame_ctr : unsigned(2 downto 0); + signal adc1_frame_ctr_last : unsigned(2 downto 0); + signal adc1_bit_shift : unsigned(1 downto 0); + signal adc1_bit_shift_last : unsigned(1 downto 0); + signal adc1_ctr_error : std_logic; + signal adc1_shift_error : std_logic; + signal adc1_error_status : std_logic_vector(15 downto 0); signal adc1_frame_locked : std_logic; signal adc1_new_data_t : std_logic; @@ -136,18 +142,21 @@ begin -- DEBUG DEBUG_OUT(0) <= CLK_IN; DEBUG_OUT(1) <= DDR_DATA_CLK; - DEBUG_OUT(2) <= adc0_bit_shift_change; - DEBUG_OUT(3) <= adc0_write_enable; - DEBUG_OUT(4) <= adc0_fifo_full; - DEBUG_OUT(5) <= adc0_fifo_empty; - DEBUG_OUT(6) <= adc0_frame_locked; - DEBUG_OUT(7) <= adc0_new_data_t; - DEBUG_OUT(8) <= adc0_read_enable; - DEBUG_OUT(9) <= adc0_read_enable_t; - DEBUG_OUT(10) <= adc0_read_enable_tt; - DEBUG_OUT(11) <= adc0_data_valid_o; - DEBUG_OUT(15 downto 12) <= (others => '0'); - + DEBUG_OUT(2) <= adc0_write_enable; + DEBUG_OUT(3) <= adc0_fifo_full; + DEBUG_OUT(4) <= adc0_fifo_empty; + DEBUG_OUT(5) <= adc0_new_data_t; + DEBUG_OUT(6) <= adc0_read_enable; + DEBUG_OUT(7) <= adc0_read_enable_t; + DEBUG_OUT(8) <= adc0_read_enable_tt; + DEBUG_OUT(9) <= adc0_data_valid_o; + DEBUG_OUT(10) <= adc0_ctr_error; + DEBUG_OUT(11) <= adc0_shift_error; + DEBUG_OUT(12) <= adc0_frame_locked; + DEBUG_OUT(13) <= adc0_frame_notlocked; + DEBUG_OUT(14) <= adc0_frame_notlocked_p; + DEBUG_OUT(15) <= error_adc0_o; + when x"1" => DEBUG_OUT <= adc0_data_buf(0); @@ -163,14 +172,9 @@ begin when x"5" => DEBUG_OUT <= adc0_data_buf(4); - --when x"e" => - -- DEBUG_OUT <= q_0(15 downto 0); - - --when x"f" => - -- DEBUG_OUT <= q_1(15 downto 0); - when others => DEBUG_OUT <= (others => '0'); + end case; end process PROC_DEBUG; @@ -222,36 +226,48 @@ begin ----------------------------------------------------------------------------- PROC_MERGE_DATA0: process(DDR_DATA_CLK) - variable q_0_map : q_map_t; + variable q_0_map : q_map_t; begin if (rising_edge(DDR_DATA_CLK)) then - -- Remap DDR Output q_value - for I in 0 to 4 loop - q_0_map(I) := q_0(I + 0) & q_0(I + 5) & q_0(I + 10) & q_0(I + 15); - end loop; - - for I in 0 to 4 loop - adc0_data_buf(I)(3 downto 0) <= q_0_map(I); - adc0_data_buf(I)(15 downto 4) <= adc0_data_buf(I)(11 downto 0); - end loop; - if (RESET_DDR_DATA_CLK = '1') then adc0_new_data_t <= '0'; adc0_frame_ctr <= (others => '0'); - adc0_frame_locked <= '0'; + adc0_frame_ctr_last <= (others => '0'); adc0_bit_shift <= "00"; adc0_bit_shift_last <= "00"; - adc0_bit_shift_change <= '0'; + adc0_ctr_error <= '0'; + adc0_shift_error <= '0'; + adc0_error_status <= (others => '0'); + adc0_frame_locked <= '0'; + + for I in 0 to 3 loop + adc0_data_t(I) <= (others => '0'); + end loop; + else + adc0_shift_error <= '0'; + adc0_frame_locked <= '0'; + + -- Remap DDR Output q_value + for I in 0 to 4 loop + q_0_map(I) := q_0(I + 0) & q_0(I + 5) & q_0(I + 10) & q_0(I + 15); + end loop; + + -- Buffer new incoming Data + for I in 0 to 4 loop + adc0_data_buf(I)(3 downto 0) <= q_0_map(I); + adc0_data_buf(I)(15 downto 4) <= adc0_data_buf(I)(11 downto 0); + end loop; + -- Test Frame Clock Pattern - adc0_new_data_t <= '0'; - case adc0_data_buf(4) is -- adc0_data_buf(4) is frame clock + case adc0_data_buf(4) is -- q_0_map(4) is THE Frame Clock when "0000111111000000" => for I in 0 to 3 loop adc0_data_t(I) <= adc0_data_buf(I)(11 downto 0); end loop; adc0_new_data_t <= '1'; adc0_bit_shift <= "00"; + adc0_frame_ctr <= (others => '0'); when "0001111110000001" => for I in 0 to 3 loop @@ -259,40 +275,59 @@ begin end loop; adc0_new_data_t <= '1'; adc0_bit_shift <= "01"; - + adc0_frame_ctr <= (others => '0'); + when "0011111100000011" => for I in 0 to 3 loop adc0_data_t(I) <= adc0_data_buf(I)(13 downto 2); end loop; adc0_new_data_t <= '1'; adc0_bit_shift <= "10"; - + adc0_frame_ctr <= (others => '0'); + when "0111111000000111" => for I in 0 to 3 loop adc0_data_t(I) <= adc0_data_buf(I)(14 downto 3); end loop; adc0_new_data_t <= '1'; adc0_bit_shift <= "11"; - - when others => null; + adc0_frame_ctr <= (others => '0'); + when others => + for I in 0 to 3 loop + adc0_data_t(I) <= (others => '0'); + end loop; + adc0_new_data_t <= '0'; + adc0_frame_ctr <= adc0_frame_ctr + 1; end case; - -- ADC Lock Status + -- Monitor ADC Lock Status + adc0_frame_ctr_last <= adc0_frame_ctr; if (adc0_new_data_t = '1') then - adc0_frame_ctr <= (others => '0'); - adc0_frame_locked <= '1'; - elsif (adc0_frame_ctr < x"4") then - adc0_frame_ctr <= adc0_frame_ctr + 1; - else - adc0_frame_locked <= '0'; + if (adc0_frame_ctr_last /= x"2") then + adc0_ctr_error <= '1'; + else + adc0_ctr_error <= '0'; + end if; end if; - adc0_bit_shift_last <= adc0_bit_shift; + adc0_bit_shift_last <= adc0_bit_shift; if (adc0_bit_shift /= adc0_bit_shift_last) then - adc0_bit_shift_change <= '1'; + adc0_shift_error <= '1'; + else + adc0_shift_error <= '0'; + end if; + + -- Error Status + adc0_error_status(0) <= adc0_ctr_error or adc0_shift_error; + for X in 0 to 14 loop + adc0_error_status(X + 1) <= adc0_error_status(X); + end loop; + + if (adc0_error_status = x"0000") then + adc0_frame_locked <= '1'; else - adc0_bit_shift_change <= '0'; + adc0_frame_locked <= '0'; end if; end if; @@ -305,26 +340,36 @@ begin variable q_1_map : q_map_t; begin if (rising_edge(DDR_DATA_CLK)) then - -- Remap DDR Output q_value - for I in 0 to 4 loop - q_1_map(I) := q_1(I + 0) & q_1(I + 5) & q_1(I + 10) & q_1(I + 15); - end loop; - - for I in 0 to 4 loop - adc1_data_buf(I)(3 downto 0) <= q_1_map(I); - adc1_data_buf(I)(15 downto 4) <= adc1_data_buf(I)(11 downto 0); - end loop; - if (RESET_DDR_DATA_CLK = '1') then adc1_new_data_t <= '0'; adc1_frame_ctr <= (others => '0'); - adc1_frame_locked <= '0'; + adc1_frame_ctr_last <= (others => '0'); adc1_bit_shift <= "00"; adc1_bit_shift_last <= "00"; - adc1_bit_shift_change <= '0'; + adc1_ctr_error <= '0'; + adc1_shift_error <= '0'; + adc1_error_status <= (others => '0'); + adc1_frame_locked <= '0'; + + for I in 0 to 3 loop + adc1_data_t(I) <= (others => '0'); + end loop; else + adc1_ctr_error <= '0'; + adc1_shift_error <= '0'; + + -- Remap DDR Output q_value + for I in 0 to 4 loop + q_1_map(I) := q_1(I + 0) & q_1(I + 5) & q_1(I + 10) & q_1(I + 15); + end loop; + + -- Buffer new incoming Data + for I in 0 to 4 loop + adc1_data_buf(I)(3 downto 0) <= q_1_map(I); + adc1_data_buf(I)(15 downto 4) <= adc1_data_buf(I)(11 downto 0); + end loop; + -- Test Frame Clock Pattern - adc1_new_data_t <= '0'; case adc1_data_buf(4) is -- adc1_data_buf(4) is frame clock when "0000111111000000" => for I in 0 to 3 loop @@ -332,6 +377,7 @@ begin end loop; adc1_new_data_t <= '1'; adc1_bit_shift <= "00"; + adc1_frame_ctr <= (others => '0'); when "0001111110000001" => for I in 0 to 3 loop @@ -339,6 +385,7 @@ begin end loop; adc1_new_data_t <= '1'; adc1_bit_shift <= "01"; + adc1_frame_ctr <= (others => '0'); when "0011111100000011" => for I in 0 to 3 loop @@ -346,6 +393,7 @@ begin end loop; adc1_new_data_t <= '1'; adc1_bit_shift <= "10"; + adc1_frame_ctr <= (others => '0'); when "0111111000000111" => for I in 0 to 3 loop @@ -353,26 +401,44 @@ begin end loop; adc1_new_data_t <= '1'; adc1_bit_shift <= "11"; + adc1_frame_ctr <= (others => '0'); + + when others => + for I in 0 to 3 loop + adc1_data_t(I) <= (others => '0'); + end loop; + adc1_new_data_t <= '0'; + adc1_frame_ctr <= adc1_frame_ctr + 1; - when others => null; - end case; - -- ADC Lock Status + -- Monitor ADC Lock Status + adc1_frame_ctr_last <= adc1_frame_ctr; if (adc1_new_data_t = '1') then - adc1_frame_ctr <= (others => '0'); - adc1_frame_locked <= '1'; - elsif (adc1_frame_ctr < x"4") then - adc1_frame_ctr <= adc1_frame_ctr + 1; - else - adc1_frame_locked <= '0'; + if (adc1_frame_ctr_last /= x"2") then + adc1_ctr_error <= '1'; + else + adc1_ctr_error <= '0'; + end if; end if; - adc1_bit_shift_last <= adc1_bit_shift; + adc1_bit_shift_last <= adc1_bit_shift; if (adc1_bit_shift /= adc1_bit_shift_last) then - adc1_bit_shift_change <= '1'; + adc1_shift_error <= '1'; + else + adc1_shift_error <= '0'; + end if; + + -- Error Status + adc1_error_status(0) <= adc1_ctr_error or adc1_shift_error; + for X in 0 to 14 loop + adc1_error_status(X + 1) <= adc1_error_status(X); + end loop; + + if (adc1_error_status = x"0000") then + adc1_frame_locked <= '1'; else - adc1_bit_shift_change <= '0'; + adc1_frame_locked <= '0'; end if; end if; @@ -491,49 +557,36 @@ begin ----------------------------------------------------------------------------- -- Lock Monitor ----------------------------------------------------------------------------- + signal_async_trans_1: signal_async_trans + port map ( + CLK_IN => CLK_IN, + SIGNAL_A_IN => not adc0_frame_locked, + SIGNAL_OUT => adc0_frame_notlocked + ); + signal_async_trans_2: signal_async_trans + port map ( + CLK_IN => CLK_IN, + SIGNAL_A_IN => not adc1_frame_locked, + SIGNAL_OUT => adc1_frame_notlocked + ); + level_to_pulse_1: level_to_pulse port map ( - CLK_IN => DDR_DATA_CLK, - RESET_IN => RESET_DDR_DATA_CLK, - LEVEL_IN => not adc0_frame_locked, + CLK_IN => CLK_IN, + RESET_IN => RESET_IN, + LEVEL_IN => adc0_frame_notlocked, PULSE_OUT => adc0_frame_notlocked_p ); level_to_pulse_2: level_to_pulse port map ( - CLK_IN => DDR_DATA_CLK, - RESET_IN => RESET_DDR_DATA_CLK, - LEVEL_IN => not adc1_frame_locked, + CLK_IN => CLK_IN, + RESET_IN => RESET_IN, + LEVEL_IN => adc1_frame_notlocked, PULSE_OUT => adc1_frame_notlocked_p ); - pulse_dtrans_1: pulse_dtrans - generic map ( - CLK_RATIO => 2 - ) - port map ( - CLK_A_IN => DDR_DATA_CLK, - RESET_A_IN => RESET_DDR_DATA_CLK, - PULSE_A_IN => adc0_frame_notlocked_p, - CLK_B_IN => CLK_IN, - RESET_B_IN => RESET_IN, - PULSE_B_OUT => adc0_frame_notlocked - ); - - pulse_dtrans_2: pulse_dtrans - generic map ( - CLK_RATIO => 2 - ) - port map ( - CLK_A_IN => DDR_DATA_CLK, - RESET_A_IN => RESET_DDR_DATA_CLK, - PULSE_A_IN => adc1_frame_notlocked_p, - CLK_B_IN => CLK_IN, - RESET_B_IN => RESET_IN, - PULSE_B_OUT => adc1_frame_notlocked - ); - PROC_NOTLOCK_COUNTER: process(CLK_IN) begin if (rising_edge(CLK_IN)) then @@ -541,11 +594,11 @@ begin adc0_notlock_ctr <= (others => '0'); adc1_notlock_ctr <= (others => '0'); else - if (adc0_frame_notlocked = '1') then + if (adc0_frame_notlocked_p = '1') then adc0_notlock_ctr <= adc0_notlock_ctr + 1; end if; - if (adc1_frame_notlocked = '1') then + if (adc1_frame_notlocked_p = '1') then adc1_notlock_ctr <= adc1_notlock_ctr + 1; end if; end if; @@ -562,13 +615,11 @@ begin error_adc0_o <= '0'; error_adc1_o <= '0'; - if (adc0_frame_notlocked = '1' or - adc0_bit_shift_change = '1') then + if (adc0_frame_notlocked = '1') then error_adc0_o <= '1'; end if; - if (adc1_frame_notlocked = '1' or - adc1_bit_shift_change = '1') then + if (adc1_frame_notlocked = '1') then error_adc1_o <= '1'; end if; end if; diff --git a/nxyter/source/gray_decoder.vhd b/nxyter/source/gray_decoder.vhd index bceaf6c..e708378 100644 --- a/nxyter/source/gray_decoder.vhd +++ b/nxyter/source/gray_decoder.vhd @@ -7,7 +7,7 @@ library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; -entity Gray_Decoder is +entity gray_decoder is generic ( WIDTH : integer range 2 to 32 := 12 -- Register Width @@ -27,7 +27,7 @@ entity Gray_Decoder is end entity; -architecture Behavioral of Gray_Decoder is +architecture Behavioral of gray_decoder is signal binary_o : std_logic_vector(WIDTH - 1 downto 0); diff --git a/nxyter/source/gray_encoder.vhd b/nxyter/source/gray_encoder.vhd index 559acaa..fb9fcee 100644 --- a/nxyter/source/gray_encoder.vhd +++ b/nxyter/source/gray_encoder.vhd @@ -7,7 +7,7 @@ library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; -entity Gray_Encoder is +entity gray_encoder is generic ( WIDTH : integer range 2 to 32 := 12 -- Register Width ); @@ -25,7 +25,7 @@ entity Gray_Encoder is end entity; -architecture Behavioral of Gray_Encoder is +architecture Behavioral of gray_encoder is signal gray_o : std_logic_vector(WIDTH - 1 downto 0); diff --git a/nxyter/source/nx_data_delay.vhd b/nxyter/source/nx_data_delay.vhd index 26b771f..33065c5 100644 --- a/nxyter/source/nx_data_delay.vhd +++ b/nxyter/source/nx_data_delay.vhd @@ -89,10 +89,7 @@ begin DEBUG_OUT(6) <= fifo_read_enable; DEBUG_OUT(7) <= fifo_read_enable_t; DEBUG_OUT(8) <= fifo_read_enable_tt; - DEBUG_OUT(9) <= new_data_o; - DEBUG_OUT(12 downto 10) <= NX_FRAME_IN(11 downto 9); - DEBUG_OUT(15 downto 13) <= nx_frame_o(11 downto 9); - --DEBUG_OUT(15 downto 13) <= fifo_data_out(11 downto 9); + DEBUG_OUT(15 downto 9) <= NX_FRAME_OUT(14 downto 8); else DEBUG_OUT <= debug_fifo; end if; diff --git a/nxyter/source/nx_data_receiver.vhd b/nxyter/source/nx_data_receiver.vhd index df9a729..b54048d 100644 --- a/nxyter/source/nx_data_receiver.vhd +++ b/nxyter/source/nx_data_receiver.vhd @@ -9,45 +9,44 @@ use work.nxyter_components.all; entity nx_data_receiver is port( - CLK_IN : in std_logic; - RESET_IN : in std_logic; - NX_DATA_CLK_TEST_IN : in std_logic; - TRIGGER_IN : in std_logic; + CLK_IN : in std_logic; + RESET_IN : in std_logic; + NX_DATA_CLK_TEST_IN : in std_logic; + TRIGGER_IN : in std_logic; + + -- nXyter Ports + NX_TIMESTAMP_CLK_IN : in std_logic; + NX_TIMESTAMP_IN : in std_logic_vector (7 downto 0); + NX_TIMESTAMP_RESET_OUT : out std_logic; - -- nXyter Ports - NX_TIMESTAMP_CLK_IN : in std_logic; - NX_TIMESTAMP_IN : in std_logic_vector (7 downto 0); - -- ADC Ports - ADC_CLK_DAT_IN : in std_logic; - ADC_FCLK_IN : in std_logic_vector(1 downto 0); - ADC_DCLK_IN : in std_logic_vector(1 downto 0); - ADC_SAMPLE_CLK_OUT : out std_logic; - ADC_A_IN : in std_logic_vector(1 downto 0); - ADC_B_IN : in std_logic_vector(1 downto 0); - ADC_NX_IN : in std_logic_vector(1 downto 0); - ADC_D_IN : in std_logic_vector(1 downto 0); - ADC_SCLK_LOCK_OUT : out std_logic; - - -- Outputs - NX_TIMESTAMP_OUT : out std_logic_vector(31 downto 0); - ADC_DATA_OUT : out std_logic_vector(11 downto 0); - NEW_DATA_OUT : out std_logic; - - TIMESTAMP_CURRENT_IN : in unsigned(11 downto 0); - - -- Slave bus - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_ADDR_IN : in std_logic_vector(15 downto 0); - SLV_ACK_OUT : out std_logic; - SLV_NO_MORE_DATA_OUT : out std_logic; - SLV_UNKNOWN_ADDR_OUT : out std_logic; - - ERROR_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(15 downto 0) + ADC_CLK_DAT_IN : in std_logic; + ADC_FCLK_IN : in std_logic_vector(1 downto 0); + ADC_DCLK_IN : in std_logic_vector(1 downto 0); + ADC_SAMPLE_CLK_OUT : out std_logic; + ADC_A_IN : in std_logic_vector(1 downto 0); + ADC_B_IN : in std_logic_vector(1 downto 0); + ADC_NX_IN : in std_logic_vector(1 downto 0); + ADC_D_IN : in std_logic_vector(1 downto 0); + ADC_SCLK_LOCK_OUT : out std_logic; + + -- Outputs + NX_TIMESTAMP_OUT : out std_logic_vector(31 downto 0); + ADC_DATA_OUT : out std_logic_vector(11 downto 0); + NEW_DATA_OUT : out std_logic; + + -- Slave bus + SLV_READ_IN : in std_logic; + SLV_WRITE_IN : in std_logic; + SLV_DATA_OUT : out std_logic_vector(31 downto 0); + SLV_DATA_IN : in std_logic_vector(31 downto 0); + SLV_ADDR_IN : in std_logic_vector(15 downto 0); + SLV_ACK_OUT : out std_logic; + SLV_NO_MORE_DATA_OUT : out std_logic; + SLV_UNKNOWN_ADDR_OUT : out std_logic; + + ERROR_OUT : out std_logic; + DEBUG_OUT : out std_logic_vector(15 downto 0) ); end entity; @@ -83,9 +82,6 @@ architecture Behavioral of nx_data_receiver is signal rs_sync_set : std_logic; signal rs_sync_reset : std_logic; - -- Parity Check - signal parity_error : std_logic; - -- NX Clock Active signal nx_clk_active_ff_0 : std_logic; signal nx_clk_active_ff_1 : std_logic; @@ -123,6 +119,7 @@ architecture Behavioral of nx_data_receiver is signal rs_timeout_timer_start : std_logic; signal rs_timeout_timer_done : std_logic; signal rs_timeout_timer_reset : std_logic; + signal nx_timestamp_reset_o : std_logic; type R_STATES is (R_IDLE, R_SET_ALL_RESETS, @@ -152,16 +149,19 @@ architecture Behavioral of nx_data_receiver is signal nx_fifo_read_enable : std_logic; signal nx_fifo_empty : std_logic; signal nx_read_enable : std_logic; + signal nx_fifo_data_valid_tt : std_logic; signal nx_fifo_data_valid_t : std_logic; signal nx_fifo_data_valid : std_logic; - + + signal nx_fifo_data : std_logic_vector(31 downto 0); + -- NX FIFO READ type delay_array_t is array(0 to 15) of std_logic_vector(31 downto 0); signal nx_timestamp_d : delay_array_t; signal nx_timestamp_t : std_logic_vector(31 downto 0); signal nx_new_timestamp : std_logic; signal nx_new_timestamp_ctr : unsigned(3 downto 0); - signal nx_fifo_data : std_logic_vector(31 downto 0); + signal nx_fifo_data_f : std_logic_vector(31 downto 0); -- Resync Counter Process signal resync_counter : unsigned(11 downto 0); @@ -169,8 +169,8 @@ architecture Behavioral of nx_data_receiver is signal nx_clk_active : std_logic; -- Parity Error Counter Process + signal parity_error : std_logic; signal parity_error_counter : unsigned(11 downto 0); - signal parity_error_ctr_inc : std_logic; signal reg_nx_frame_synced : std_logic; @@ -192,17 +192,19 @@ architecture Behavioral of nx_data_receiver is signal adc_debug_type : std_logic_vector(3 downto 0); -- Data Output Handler - type STATES is (IDLE, - WAIT_ADC, + type STATES is (WAIT_ADC, WAIT_TIMESTAMP ); signal STATE : STATES; - signal STATE_d : std_logic_vector(1 downto 0); - + signal STATE_d : std_logic; + signal nx_timestamp_o : std_logic_vector(31 downto 0); signal adc_data_o : std_logic_vector(11 downto 0); signal new_data_o : std_logic; - + signal merge_timeout_ctr : unsigned(3 downto 0); + signal merge_timeout_error : std_logic; + signal merge_error_ctr : unsigned(11 downto 0); + -- Check Nxyter Data Clock via Johnson Counter signal nx_data_clock_test_0 : std_logic; signal nx_data_clock_test_1 : std_logic; @@ -220,10 +222,10 @@ architecture Behavioral of nx_data_receiver is signal adc_frame_rate : unsigned(27 downto 0); signal frame_rate_ctr : unsigned(27 downto 0); signal frame_rate : unsigned(27 downto 0); - signal parity_rate_ctr : unsigned(27 downto 0); - signal parity_rate : unsigned(27 downto 0); + signal parity_err_rate_ctr : unsigned(27 downto 0); + signal parity_err_rate : unsigned(27 downto 0); signal rate_timer_ctr : unsigned(27 downto 0); - + -- Error signal error_adc0 : std_logic; signal error_adc1 : std_logic; @@ -238,7 +240,13 @@ architecture Behavioral of nx_data_receiver is signal frame_rate_error : std_logic; signal parity_rate_error : std_logic; signal reset_for_offline : std_logic; - + + -- Data Stream DeltaT Error Counters + signal new_adc_delta_t_ctr : unsigned(3 downto 0); + signal new_timestamp_delta_t_ctr : unsigned(3 downto 0); + signal new_adc_dt_error_ctr : unsigned(11 downto 0); + signal new_timestamp_dt_error_ctr : unsigned(11 downto 0); + -- Slave Bus signal slv_data_out_o : std_logic_vector(31 downto 0); signal slv_no_more_data_o : std_logic; @@ -296,14 +304,14 @@ begin DEBUG_OUT(2) <= nx_fifo_full; DEBUG_OUT(3) <= nx_fifo_write_enable; DEBUG_OUT(4) <= nx_fifo_empty; - DEBUG_OUT(5) <= nx_fifo_empty; + DEBUG_OUT(5) <= merge_timeout_error; --STATE_d; DEBUG_OUT(6) <= nx_fifo_read_enable; DEBUG_OUT(7) <= nx_fifo_data_valid; DEBUG_OUT(8) <= adc_data_valid; DEBUG_OUT(9) <= nx_new_timestamp; DEBUG_OUT(10) <= adc_new_data; DEBUG_OUT(11) <= nx_fifo_reset; - DEBUG_OUT(12) <= '0'; + DEBUG_OUT(12) <= parity_error; DEBUG_OUT(13) <= nx_new_frame; DEBUG_OUT(14) <= new_data_o; DEBUG_OUT(15) <= nx_frame_synced; @@ -327,7 +335,7 @@ begin when "10" => -- AD9228 Handler Debug output DEBUG_OUT <= ADC_DEBUG; - + when "11" => -- Test Channel DEBUG_OUT(0) <= CLK_IN; @@ -504,8 +512,8 @@ begin timer_static_RESET_TIMEOUT: timer_static generic map ( - CTR_WIDTH => 26, - CTR_END => 10000000 -- 1s + CTR_WIDTH => 30, + CTR_END => 1000000000 -- 10s ) port map ( CLK_IN => CLK_IN, @@ -545,6 +553,7 @@ begin reset_handler_busy <= '0'; reset_timeout_flag <= '0'; startup_reset <= '1'; + nx_timestamp_reset_o <= '0'; R_STATE <= R_IDLE; else frame_rates_reset <= '0'; @@ -558,112 +567,119 @@ begin rs_timeout_timer_start <= '0'; rs_timeout_timer_reset <= '0'; reset_handler_busy <= '1'; - + nx_timestamp_reset_o <= '0'; + debug_state <= x"0"; if (reset_handler_counter_clear = '1') then - reset_handler_counter <= (others => '0'); + reset_handler_counter <= (others => '0'); end if; if (rs_timeout_timer_done = '1') then -- Reset Timeout - reset_timeout_flag <= '1'; + reset_timeout_flag <= '1'; + R_STATE <= R_IDLE; + else + + case R_STATE is + when R_IDLE => + if (reset_for_offline = '1' or + pll_adc_not_lock = '1' or + adc_reset_sync = '1' or + reset_handler_start_r = '1' or + startup_reset = '1' + ) then + if (reset_handler_counter_clear = '0') then + reset_handler_counter <= reset_handler_counter + 1; + end if; + R_STATE <= R_SET_ALL_RESETS; + else + reset_handler_busy <= '0'; + R_STATE <= R_IDLE; + end if; + + when R_SET_ALL_RESETS => + frame_rates_reset <= '1'; + nx_fifo_reset <= '1'; + sampling_clk_reset <= '1'; + adc_reset_p <= '1'; + adc_reset <= '1'; + output_handler_reset <= '1'; + + nx_timestamp_reset_o <= '1'; + + rs_wait_timer_start <= '1'; -- wait 1mue to settle + R_STATE <= R_WAIT_1; + debug_state <= x"1"; + + when R_WAIT_1 => + if (rs_wait_timer_done = '0') then + nx_fifo_reset <= '1'; + sampling_clk_reset <= '1'; + adc_reset <= '1'; + output_handler_reset <= '1'; + R_STATE <= R_WAIT_1; + else + -- Release NX Fifo Reset + Start Timeout Handler + sampling_clk_reset <= '1'; + adc_reset <= '1'; + output_handler_reset <= '1'; + rs_timeout_timer_start <= '1'; + R_STATE <= R_WAIT_NX_FRAME_RATE_OK; + end if; + debug_state <= x"2"; + + when R_WAIT_NX_FRAME_RATE_OK => + if (nx_frame_rate_offline = '0' and + nx_frame_rate_error = '0') then + -- Release PLL Reset + adc_reset <= '1'; + output_handler_reset <= '1'; + R_STATE <= R_PLL_WAIT_LOCK; + else + sampling_clk_reset <= '1'; + adc_reset <= '1'; + output_handler_reset <= '1'; + R_STATE <= R_WAIT_NX_FRAME_RATE_OK; + end if; + debug_state <= x"3"; + + when R_PLL_WAIT_LOCK => + if (pll_adc_not_lock = '1') then + adc_reset <= '1'; + output_handler_reset <= '1'; + R_STATE <= R_PLL_WAIT_LOCK; + else + -- Release ADC Reset + output_handler_reset <= '1'; + R_STATE <= R_WAIT_ADC_OK; + end if; + debug_state <= x"4"; + + when R_WAIT_ADC_OK => + if (error_adc0 = '0' and + adc_frame_rate_error = '0') then + -- Release Output Handler Reset + R_STATE <= R_WAIT_DATA_HANDLER_OK; + else + output_handler_reset <= '1'; + R_STATE <= R_WAIT_ADC_OK; + end if; + debug_state <= x"5"; + + when R_WAIT_DATA_HANDLER_OK => + if (frame_rate_error = '0') then + startup_reset <= '0'; + reset_timeout_flag <= '0'; + rs_timeout_timer_reset <= '1'; + R_STATE <= R_IDLE; + else + R_STATE <= R_WAIT_DATA_HANDLER_OK; + end if; + debug_state <= x"6"; + + end case; end if; - - case R_STATE is - when R_IDLE => - if (reset_for_offline = '1' or - --pll_adc_not_lock = '1' or - --adc_reset_sync = '1' or - reset_handler_start_r = '1' or - startup_reset = '1' - ) then - if (reset_handler_counter_clear = '0') then - reset_handler_counter <= reset_handler_counter + 1; - end if; - R_STATE <= R_SET_ALL_RESETS; - else - reset_handler_busy <= '0'; - R_STATE <= R_IDLE; - end if; - - when R_SET_ALL_RESETS => - frame_rates_reset <= '1'; - nx_fifo_reset <= '1'; - sampling_clk_reset <= '1'; - adc_reset_p <= '1'; - adc_reset <= '1'; - output_handler_reset <= '1'; - - rs_wait_timer_start <= '1'; -- wait 1mue to settle - R_STATE <= R_WAIT_1; - debug_state <= x"1"; - - when R_WAIT_1 => - if (rs_wait_timer_done = '0') then - nx_fifo_reset <= '1'; - sampling_clk_reset <= '1'; - adc_reset <= '1'; - output_handler_reset <= '1'; - R_STATE <= R_WAIT_1; - else - -- Release NX Fifo Reset + Start Timeout HAndler - sampling_clk_reset <= '1'; - adc_reset <= '1'; - output_handler_reset <= '1'; - reset_timeout_flag <= '0'; - rs_timeout_timer_start <= '1'; - R_STATE <= R_WAIT_NX_FRAME_RATE_OK; - end if; - debug_state <= x"2"; - - when R_WAIT_NX_FRAME_RATE_OK => - if (nx_frame_rate_offline = '0' and - nx_frame_rate_error = '0') then - -- Release PLL Reset - adc_reset <= '1'; - output_handler_reset <= '1'; - R_STATE <= R_PLL_WAIT_LOCK; - else - sampling_clk_reset <= '1'; - adc_reset <= '1'; - output_handler_reset <= '1'; - R_STATE <= R_WAIT_NX_FRAME_RATE_OK; - end if; - debug_state <= x"3"; - - when R_PLL_WAIT_LOCK => - if (pll_adc_not_lock = '1') then - adc_reset <= '1'; - output_handler_reset <= '1'; - R_STATE <= R_PLL_WAIT_LOCK; - else - -- Release ADC Reset - output_handler_reset <= '1'; - R_STATE <= R_WAIT_ADC_OK; - end if; - debug_state <= x"4"; - - when R_WAIT_ADC_OK => - if (error_adc0 = '0' and - adc_frame_rate_error = '0') then - -- Release Output Handler Reset - R_STATE <= R_WAIT_DATA_HANDLER_OK; - else - R_STATE <= R_WAIT_ADC_OK; - end if; - debug_state <= x"5"; - - when R_WAIT_DATA_HANDLER_OK => - if (frame_rate_error = '0') then - startup_reset <= '0'; - R_STATE <= R_IDLE; - else - R_STATE <= R_WAIT_DATA_HANDLER_OK; - end if; - debug_state <= x"6"; - - end case; end if; end if; end process PROC_RESET_HANDLER; @@ -757,45 +773,18 @@ begin end if; end process PROC_RS_FRAME_SYNCED; - -- Check Parity - PROC_PARITY_CHECK: process(NX_TIMESTAMP_CLK_IN) - variable parity_bits : std_logic_vector(22 downto 0); - variable parity : std_logic; - begin - if (rising_edge(NX_TIMESTAMP_CLK_IN) ) then - if (RESET_NX_TIMESTAMP_CLK_IN = '1') then - parity_error <= '0'; - else - parity_error <= '0'; - if (nx_new_frame = '1' and nx_frame_synced = '1') then - -- Timestamp Bit #6 is excluded (funny nxyter-bug) - parity_bits := nx_frame_word(31) & - nx_frame_word(30 downto 24) & - nx_frame_word(21 downto 16) & - nx_frame_word(14 downto 8) & - nx_frame_word( 2 downto 1); - parity := xor_all(parity_bits); - - if (parity /= nx_frame_word(0)) then - parity_error <= '1'; - end if; - end if; - end if; - end if; - end process PROC_PARITY_CHECK; - fifo_ts_32to32_dc_1: fifo_ts_32to32_dc port map ( - Data => nx_frame_word, - WrClock => NX_TIMESTAMP_CLK_IN, - RdClock => CLK_IN, - WrEn => nx_fifo_write_enable, - RdEn => nx_fifo_read_enable, - Reset => nx_fifo_reset, - RPReset => nx_fifo_reset, - Q => nx_fifo_data, - Empty => nx_fifo_empty, - Full => nx_fifo_full + Data => nx_frame_word, + WrClock => NX_TIMESTAMP_CLK_IN, + RdClock => CLK_IN, + WrEn => nx_fifo_write_enable, + RdEn => nx_fifo_read_enable, + Reset => nx_fifo_reset, + RPReset => nx_fifo_reset, + Q => nx_fifo_data_f, + Empty => nx_fifo_empty, + Full => nx_fifo_full ); nx_fifo_write_enable <= nx_new_frame and not nx_fifo_full; @@ -890,17 +879,86 @@ begin -- NX CLK_IN Domain ----------------------------------------------------------------------------- + ----------------------------------------------------------------------------- + -- Gray Decode Timestamp Frame (Timestamp and Channel Id) + ----------------------------------------------------------------------------- + + gray_decoder_TIMESTAMP: gray_decoder -- Decode nx_timestamp + generic map ( + WIDTH => 14 + ) + port map ( + CLK_IN => CLK_IN, + RESET_IN => RESET_IN, + GRAY_IN(13 downto 7) => not nx_fifo_data_f(30 downto 24), + GRAY_IN( 6 downto 0) => not nx_fifo_data_f(22 downto 16), + BINARY_OUT(13 downto 7) => nx_fifo_data(30 downto 24), + BINARY_OUT(6 downto 0) => nx_fifo_data(22 downto 16) + ); + + gray_decoder_CHANNEL_ID: gray_decoder -- Decode Channel_ID + generic map ( + WIDTH => 7 + ) + port map ( + CLK_IN => CLK_IN, + RESET_IN => RESET_IN, + GRAY_IN => nx_fifo_data_f(14 downto 8), + BINARY_OUT => nx_fifo_data(14 downto 8) + ); + + -- Leave other bits untouched + PROC_GRAY_DECODE: process(CLK_IN) + begin + if (rising_edge(CLK_IN) ) then + nx_fifo_data(31) <= nx_fifo_data_f(31); + nx_fifo_data(23) <= nx_fifo_data_f(23); + nx_fifo_data(15) <= nx_fifo_data_f(15); + nx_fifo_data(7 downto 1) <= nx_fifo_data_f(7 downto 1); + end if; + end process PROC_GRAY_DECODE; + + -- Replace Parity Bit by Parity Error Bit + PROC_PARITY_CHECKER: process(CLK_IN) + variable parity_bits : std_logic_vector(22 downto 0); + variable parity : std_logic; + begin + if (rising_edge(CLK_IN) ) then + if (RESET_IN = '1') then + nx_fifo_data(0) <= '0'; + else + -- Timestamp Bit #6 is excluded (funny nxyter-bug) + parity_bits := nx_fifo_data_f(31) & + nx_fifo_data_f(30 downto 24) & + nx_fifo_data_f(21 downto 16) & + nx_fifo_data_f(14 downto 8) & + nx_fifo_data_f( 2 downto 1); + parity := xor_all(parity_bits); + if (parity /= nx_fifo_data_f(0)) then + nx_fifo_data(0) <= '1'; + else + nx_fifo_data(0) <= '0'; + end if; + end if; + end if; + end process PROC_PARITY_CHECKER; + + ----------------------------------------------------------------------------- -- FIFO Read Handler + ----------------------------------------------------------------------------- + nx_fifo_read_enable <= not nx_fifo_empty; PROC_NX_FIFO_READ_ENABLE: process(CLK_IN) begin if (rising_edge(CLK_IN) ) then - nx_fifo_data_valid_t <= nx_fifo_read_enable; + nx_fifo_data_valid_tt <= nx_fifo_read_enable; if(RESET_IN = '1') then + nx_fifo_data_valid_t <= '0'; nx_fifo_data_valid <= '0'; else - -- Delay read signal by one CLK + -- Delay read signal by two Clock Cycles + nx_fifo_data_valid_t <= nx_fifo_data_valid_tt; nx_fifo_data_valid <= nx_fifo_data_valid_t; end if; end if; @@ -916,6 +974,7 @@ begin for I in 1 to 15 loop nx_timestamp_d(I) <= (others => '0'); end loop; + parity_error <= '0'; else if (nx_fifo_data_valid = '1') then -- Delay Data relative to ADC by 8 steps @@ -926,9 +985,11 @@ begin nx_timestamp_t <= nx_timestamp_d(to_integer(nx_fifo_delay)); nx_new_timestamp <= '1'; nx_new_timestamp_ctr <= nx_new_timestamp_ctr + 1; + parity_error <= nx_timestamp_d(to_integer(nx_fifo_delay))(0); else nx_timestamp_t <= x"deadbeef"; nx_new_timestamp <= '0'; + parity_error <= '0'; end if; end if; end if; @@ -952,19 +1013,6 @@ begin PULSE_B_OUT => resync_ctr_inc ); - pulse_dtrans_3: pulse_dtrans - generic map ( - CLK_RATIO => 3 - ) - port map ( - CLK_A_IN => NX_TIMESTAMP_CLK_IN, - RESET_A_IN => RESET_NX_TIMESTAMP_CLK_IN, - PULSE_A_IN => parity_error, - CLK_B_IN => CLK_IN, - RESET_B_IN => RESET_IN, - PULSE_B_OUT => parity_error_ctr_inc - ); - -- nx_frame_synced --> CLK_IN Domain signal_async_trans_1: signal_async_trans port map ( @@ -993,7 +1041,7 @@ begin if (RESET_IN = '1' or reset_parity_error_ctr = '1') then parity_error_counter <= (others => '0'); else - if (parity_error_ctr_inc = '1') then + if (parity_error = '1') then parity_error_counter <= parity_error_counter + 1; end if; end if; @@ -1034,67 +1082,111 @@ begin ----------------------------------------------------------------------------- -- Output handler ----------------------------------------------------------------------------- - PROC_OUTPUT_HANDLER: process(CLK_IN) + + PROC_DATA_STREAM_DELTA_T: process(CLK_IN) + begin + if (rising_edge(CLK_IN) ) then + if (RESET_IN = '1') then + new_adc_delta_t_ctr <= (others => '0'); + new_timestamp_delta_t_ctr <= (others => '0'); + new_adc_dt_error_ctr <= (others => '0'); + new_timestamp_dt_error_ctr <= (others => '0'); + else + -- ADC + if (adc_new_data = '1') then + if (new_adc_delta_t_ctr < x"2" or + new_adc_delta_t_ctr > x"3") then + new_adc_dt_error_ctr <= new_adc_dt_error_ctr + 1; + end if; + new_adc_delta_t_ctr <= (others => '0'); + else + new_adc_delta_t_ctr <= new_adc_delta_t_ctr + 1; + end if; + + -- TimeStamp + if (nx_new_timestamp = '1') then + if (new_timestamp_delta_t_ctr < x"2" or + new_timestamp_delta_t_ctr > x"3") then + new_timestamp_dt_error_ctr <= new_timestamp_dt_error_ctr + 1; + end if; + new_timestamp_delta_t_ctr <= (others => '0'); + else + new_timestamp_delta_t_ctr <= new_timestamp_delta_t_ctr + 1; + end if; + + end if; + end if; + end process PROC_DATA_STREAM_DELTA_T; + + PROC_OUTPUT_MERGE_HANDLER: process(CLK_IN) begin if (rising_edge(CLK_IN) ) then if (RESET_IN = '1' or output_handler_reset = '1') then - nx_timestamp_o <= (others => '0'); - adc_data_o <= (others => '0'); - new_data_o <= '0'; - STATE <= IDLE; + nx_timestamp_o <= (others => '0'); + adc_data_o <= (others => '0'); + new_data_o <= '0'; + merge_timeout_ctr <= (others => '0'); + merge_timeout_error <= '0'; + merge_error_ctr <= (others => '0'); + STATE <= WAIT_ADC; else case STATE is - when IDLE => - STATE_d <= "00"; - if (nx_new_timestamp = '1' and adc_new_data = '1') then - nx_timestamp_o <= nx_timestamp_t; - adc_data_o <= adc_data_t; - new_data_o <= '1'; - STATE <= IDLE; - elsif (nx_new_timestamp = '1') then - nx_timestamp_o <= nx_timestamp_t; - adc_data_o <= (others => '0'); - new_data_o <= '0'; - STATE <= WAIT_ADC; - elsif (adc_new_data = '1') then - adc_data_o <= adc_data_t; - nx_timestamp_o <= (others => '0'); - new_data_o <= '0'; - STATE <= WAIT_TIMESTAMP; - else - nx_timestamp_o <= (others => '0'); - adc_data_o <= (others => '0'); - new_data_o <= '0'; - STATE <= IDLE; - end if; - when WAIT_ADC => - STATE_d <= "01"; - if (adc_new_data = '1') then - adc_data_o <= adc_data_t; - new_data_o <= '1'; - STATE <= IDLE; - else - new_data_o <= '0'; - STATE <= WAIT_ADC; + STATE_d <= '0'; + if (adc_new_data = '1' and nx_new_timestamp = '1') then + nx_timestamp_o <= nx_timestamp_t; + adc_data_o <= adc_data_t; + new_data_o <= '1'; + merge_timeout_ctr <= (others => '0'); + STATE <= WAIT_ADC; + elsif (adc_new_data = '1') then + nx_timestamp_o <= (others => '0'); + adc_data_o <= adc_data_t; + new_data_o <= '0'; + STATE <= WAIT_TIMESTAMP; + else + nx_timestamp_o <= (others => '0'); + adc_data_o <= (others => '0'); + new_data_o <= '0'; + merge_timeout_ctr <= merge_timeout_ctr + 1; + STATE <= WAIT_ADC; end if; when WAIT_TIMESTAMP => - STATE_d <= "10"; - if (nx_new_timestamp = '1') then - nx_timestamp_o <= nx_timestamp_t; - new_data_o <= '1'; - STATE <= IDLE; + STATE_d <= '1'; + if (merge_timeout_error = '1') then + nx_timestamp_o <= (others => '0'); + adc_data_o <= (others => '0'); + new_data_o <= '0'; + merge_timeout_ctr <= (others => '0'); + STATE <= WAIT_ADC; else - new_data_o <= '0'; - STATE <= WAIT_TIMESTAMP; - end if; - + if (nx_new_timestamp = '1') then + nx_timestamp_o <= nx_timestamp_t; + new_data_o <= '1'; + merge_timeout_ctr <= (others => '0'); + STATE <= WAIT_ADC; + else + nx_timestamp_o <= (others => '0'); + new_data_o <= '0'; + merge_timeout_ctr <= merge_timeout_ctr + 1; + STATE <= WAIT_TIMESTAMP; + end if; + end if; + end case; + + -- Timeout? + if (merge_timeout_ctr > x"3") then + merge_timeout_error <= '1'; + merge_error_ctr <= merge_error_ctr + 1; + else + merge_timeout_error <= '0'; + end if; end if; end if; - end process PROC_OUTPUT_HANDLER; + end process PROC_OUTPUT_MERGE_HANDLER; ----------------------------------------------------------------------------- -- Rate Counters + Rate Error Check @@ -1109,46 +1201,46 @@ begin adc_frame_rate <= (others => '0'); frame_rate_ctr <= (others => '0'); frame_rate <= (others => '0'); - parity_rate_ctr <= (others => '0'); - parity_rate <= (others => '0'); + parity_err_rate_ctr <= (others => '0'); + parity_err_rate <= (others => '0'); rate_timer_ctr <= (others => '0'); else if (rate_timer_ctr < x"5f5e100") then - rate_timer_ctr <= rate_timer_ctr + 1; + rate_timer_ctr <= rate_timer_ctr + 1; if (nx_fifo_data_valid = '1') then - nx_frame_rate_ctr <= nx_frame_rate_ctr + 1; - end if; - - if (adc_data_valid = '1') then - adc_frame_rate_ctr <= adc_frame_rate_ctr + 1; - end if; - - if (new_data_o = '1') then - frame_rate_ctr <= frame_rate_ctr + 1; - end if; - - if (parity_error_ctr_inc = '1') then - parity_rate_ctr <= parity_rate_ctr + 1; - end if; - else - rate_timer_ctr <= (others => '0'); - nx_frame_rate <= nx_frame_rate_ctr; - adc_frame_rate <= adc_frame_rate_ctr; - frame_rate <= frame_rate_ctr; - parity_rate <= parity_rate_ctr; - - nx_frame_rate_ctr(27 downto 1) <= (others => '0'); - nx_frame_rate_ctr(0) <= nx_fifo_data_valid; - - adc_frame_rate_ctr(27 downto 1) <= (others => '0'); - adc_frame_rate_ctr(0) <= adc_data_valid; - - frame_rate_ctr(27 downto 1) <= (others => '0'); - frame_rate_ctr(0) <= new_data_o; - - parity_rate_ctr(27 downto 1) <= (others => '0'); - parity_rate_ctr(0) <= parity_error_ctr_inc; + nx_frame_rate_ctr <= nx_frame_rate_ctr + 1; + end if; + + if (adc_data_valid = '1') then + adc_frame_rate_ctr <= adc_frame_rate_ctr + 1; + end if; + + if (new_data_o = '1') then + frame_rate_ctr <= frame_rate_ctr + 1; + end if; + + if (parity_error = '1') then + parity_err_rate_ctr <= parity_err_rate_ctr + 1; + end if; + else + rate_timer_ctr <= (others => '0'); + nx_frame_rate <= nx_frame_rate_ctr; + adc_frame_rate <= adc_frame_rate_ctr; + frame_rate <= frame_rate_ctr; + parity_err_rate <= parity_err_rate_ctr; + + nx_frame_rate_ctr(27 downto 1) <= (others => '0'); + nx_frame_rate_ctr(0) <= nx_fifo_data_valid; + + adc_frame_rate_ctr(27 downto 1) <= (others => '0'); + adc_frame_rate_ctr(0) <= adc_data_valid; + + frame_rate_ctr(27 downto 1) <= (others => '0'); + frame_rate_ctr(0) <= new_data_o; + + parity_err_rate_ctr(27 downto 1) <= (others => '0'); + parity_err_rate_ctr(0) <= parity_error; end if; end if; end if; @@ -1195,10 +1287,10 @@ begin frame_rate_error <= '0'; end if; - if (parity_rate > 0) then - parity_rate_error <= '1'; + if (parity_err_rate > 0) then + parity_rate_error <= '1'; else - parity_rate_error <= '0'; + parity_rate_error <= '0'; end if; -- Reset Request to Reset Handler @@ -1252,123 +1344,135 @@ begin if (SLV_READ_IN = '1') then case SLV_ADDR_IN is when x"0000" => - slv_data_out_o <= nx_timestamp_t; - slv_ack_o <= '1'; + slv_data_out_o(11 downto 0) <= error_status_bits; + slv_data_out_o(31 downto 8) <= (others => '0'); + slv_ack_o <= '1'; when x"0001" => - slv_data_out_o(0) <= nx_fifo_full; - slv_data_out_o(1) <= nx_fifo_empty; - slv_data_out_o(2) <= '0'; - slv_data_out_o(3) <= '0'; - slv_data_out_o(4) <= nx_fifo_data_valid; - slv_data_out_o(5) <= adc_new_data; - slv_data_out_o(29 downto 5) <= (others => '0'); - slv_data_out_o(30) <= '0'; - slv_data_out_o(31) <= reg_nx_frame_synced; - slv_ack_o <= '1'; - + slv_data_out_o(0) <= reset_handler_busy; + slv_data_out_o(1) <= reset_timeout_flag; + slv_data_out_o(31 downto 2) <= (others => '0'); + slv_ack_o <= '1'; + when x"0002" => - slv_data_out_o(11 downto 0) <= - std_logic_vector(resync_counter); - slv_data_out_o(31 downto 12) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(27 downto 0) <= std_logic_vector(frame_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; when x"0003" => - slv_data_out_o(11 downto 0) <= - std_logic_vector(parity_error_counter); - slv_data_out_o(31 downto 12) <= (others => '0'); - slv_ack_o <= '1'; - + slv_data_out_o(27 downto 0) <= std_logic_vector(nx_frame_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; + when x"0004" => - slv_data_out_o(11 downto 0) <= - std_logic_vector(pll_adc_not_lock_ctr); - slv_data_out_o(31 downto 12) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(27 downto 0) <= std_logic_vector(adc_frame_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; when x"0005" => - slv_data_out_o(1 downto 0) <= johnson_counter_sync_r; - slv_data_out_o(31 downto 2) <= (others => '0'); + slv_data_out_o(27 downto 0) <= parity_err_rate; + slv_data_out_o(31 downto 28) <= (others => '0'); slv_ack_o <= '1'; - + when x"0006" => - slv_data_out_o(3 downto 0) <= - std_logic_vector(pll_adc_sample_clk_dphase_r); - slv_data_out_o(31 downto 4) <= (others => '0'); + slv_data_out_o(15 downto 0) <= reset_handler_counter; + slv_data_out_o(31 downto 6) <= (others => '0'); slv_ack_o <= '1'; when x"0007" => - slv_data_out_o(3 downto 0) <= pll_adc_sample_clk_finedelb; - slv_data_out_o(31 downto 4) <= (others => '0'); - slv_ack_o <= '1'; - - when x"0008" => - slv_data_out_o(11 downto 0) <= adc_data_t; + slv_data_out_o(11 downto 0) <= std_logic_vector(adc_reset_ctr); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; + + when x"0008" => + slv_data_out_o(7 downto 0) <= + std_logic_vector(adc_notlock_ctr); + slv_data_out_o(31 downto 8) <= (others => '0'); + slv_ack_o <= '1'; when x"0009" => - slv_data_out_o(11 downto 0) <= std_logic_vector(adc_reset_ctr); + slv_data_out_o(11 downto 0) <= merge_error_ctr; slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - - when x"000a" => - slv_data_out_o(31 downto 0) <= (others => '0'); - slv_ack_o <= '1'; + when x"000a" => + slv_data_out_o(11 downto 0) <= + std_logic_vector(resync_counter); + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; + when x"000b" => - slv_data_out_o(0) <= reset_handler_busy; - slv_data_out_o(31 downto 1) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(11 downto 0) <= + std_logic_vector(parity_error_counter); + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; when x"000c" => - slv_data_out_o(15 downto 0) <= reset_handler_counter; - slv_data_out_o(31 downto 6) <= (others => '0'); - slv_ack_o <= '1'; - + slv_data_out_o(11 downto 0) <= + std_logic_vector(pll_adc_not_lock_ctr); + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; + when x"000d" => - slv_data_out_o(3 downto 0) <= std_logic_vector(nx_fifo_delay); + slv_data_out_o(3 downto 0) <= + std_logic_vector(pll_adc_sample_clk_dphase_r); slv_data_out_o(31 downto 4) <= (others => '0'); slv_ack_o <= '1'; when x"000e" => - slv_data_out_o(3 downto 0) <= std_logic_vector(adc_bit_shift); + slv_data_out_o(3 downto 0) <= pll_adc_sample_clk_finedelb; slv_data_out_o(31 downto 4) <= (others => '0'); - slv_ack_o <= '1'; - + slv_ack_o <= '1'; + when x"000f" => - slv_data_out_o(7 downto 0) <= - std_logic_vector(adc_notlock_ctr); - slv_data_out_o(31 downto 8) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(1 downto 0) <= johnson_counter_sync_r; + slv_data_out_o(31 downto 2) <= (others => '0'); + slv_ack_o <= '1'; when x"0010" => - slv_data_out_o(27 downto 0) <= std_logic_vector(nx_frame_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(3 downto 0) <= std_logic_vector(nx_fifo_delay); + slv_data_out_o(31 downto 4) <= (others => '0'); + slv_ack_o <= '1'; when x"0011" => - slv_data_out_o(27 downto 0) <= std_logic_vector(adc_frame_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(0) <= nx_fifo_full; + slv_data_out_o(1) <= nx_fifo_empty; + slv_data_out_o(2) <= '0'; + slv_data_out_o(3) <= '0'; + slv_data_out_o(4) <= nx_fifo_data_valid; + slv_data_out_o(5) <= adc_new_data; + slv_data_out_o(29 downto 5) <= (others => '0'); + slv_data_out_o(30) <= '0'; + slv_data_out_o(31) <= reg_nx_frame_synced; + slv_ack_o <= '1'; when x"0012" => - slv_data_out_o(11 downto 0) <= test_adc_data; - slv_data_out_o(31 downto 12) <= (others => '0'); + slv_data_out_o(3 downto 0) <= std_logic_vector(adc_bit_shift); + slv_data_out_o(31 downto 4) <= (others => '0'); slv_ack_o <= '1'; - + when x"0013" => - slv_data_out_o(27 downto 0) <= std_logic_vector(frame_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o <= nx_timestamp_t; + slv_ack_o <= '1'; when x"0014" => - slv_data_out_o(11 downto 0) <= error_status_bits; - slv_data_out_o(31 downto 8) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(11 downto 0) <= new_adc_dt_error_ctr; + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; when x"0015" => - slv_data_out_o(27 downto 0) <= parity_rate; - slv_data_out_o(31 downto 28) <= (others => '0'); + slv_data_out_o(11 downto 0) <= new_timestamp_dt_error_ctr; + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; + + when x"001c" => + slv_data_out_o(11 downto 0) <= adc_data_t; + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; + + when x"001d" => + slv_data_out_o(11 downto 0) <= test_adc_data; + slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; when x"001e" => @@ -1387,52 +1491,52 @@ begin elsif (SLV_WRITE_IN = '1') then case SLV_ADDR_IN is - when x"0002" => + when x"0001" => + reset_handler_start_r <= '1'; + slv_ack_o <= '1'; + + when x"0002" => + reset_handler_counter_clear <= '1'; + slv_ack_o <= '1'; + + when x"000a" => reset_resync_ctr <= '1'; slv_ack_o <= '1'; - when x"0003" => + when x"000b" => reset_parity_error_ctr <= '1'; slv_ack_o <= '1'; - - when x"0004" => + + when x"000c" => pll_adc_not_lock_ctr_clear <= '1'; slv_ack_o <= '1'; - - when x"0005" => - johnson_counter_sync_r <= SLV_DATA_IN(1 downto 0); - reset_handler_start_r <= '1'; - slv_ack_o <= '1'; - when x"0006" => + when x"000d" => pll_adc_sample_clk_dphase_r <= unsigned(SLV_DATA_IN(3 downto 0)); reset_handler_start_r <= '1'; slv_ack_o <= '1'; - - when x"0007" => + + when x"000e" => pll_adc_sample_clk_finedelb <= SLV_DATA_IN(3 downto 0); reset_handler_start_r <= '1'; slv_ack_o <= '1'; - when x"000b" => + when x"000f" => + johnson_counter_sync_r <= SLV_DATA_IN(1 downto 0); reset_handler_start_r <= '1'; - slv_ack_o <= '1'; - - when x"000c" => - reset_handler_counter_clear <= '1'; - slv_ack_o <= '1'; - - when x"000d" => + slv_ack_o <= '1'; + + when x"0010" => nx_fifo_delay <= unsigned(SLV_DATA_IN(3 downto 0)); slv_ack_o <= '1'; - when x"000e" => + when x"0012" => adc_bit_shift <= unsigned(SLV_DATA_IN(3 downto 0)); slv_ack_o <= '1'; - + when x"001e" => debug_adc <= SLV_DATA_IN(1 downto 0); slv_ack_o <= '1'; @@ -1464,7 +1568,7 @@ begin nx_frame_rate_offline = '1' or nx_frame_rate_error = '1' or adc_clk_ok = '0' or - parity_error_ctr_inc = '1' or + parity_error = '1' or reg_nx_frame_synced = '0' or adc_frame_rate_error = '1' or parity_rate_error = '1' @@ -1491,17 +1595,16 @@ begin end process PROC_ERROR; -- Output Signals - - NX_TIMESTAMP_OUT <= nx_timestamp_o - when new_data_o = '1' else x"0000_0000"; - ADC_DATA_OUT <= adc_data_o when new_data_o = '1' else x"000"; - NEW_DATA_OUT <= new_data_o; - ADC_SCLK_LOCK_OUT <= pll_adc_sampling_clk_lock; - ERROR_OUT <= error_o; - - SLV_DATA_OUT <= slv_data_out_o; - SLV_NO_MORE_DATA_OUT <= slv_no_more_data_o; - SLV_UNKNOWN_ADDR_OUT <= slv_unknown_addr_o; - SLV_ACK_OUT <= slv_ack_o; + NX_TIMESTAMP_RESET_OUT <= nx_timestamp_reset_o; + NX_TIMESTAMP_OUT <= nx_timestamp_o; + ADC_DATA_OUT <= adc_data_o; + NEW_DATA_OUT <= new_data_o; + ADC_SCLK_LOCK_OUT <= pll_adc_sampling_clk_lock; + ERROR_OUT <= error_o; + + SLV_DATA_OUT <= slv_data_out_o; + SLV_NO_MORE_DATA_OUT <= slv_no_more_data_o; + SLV_UNKNOWN_ADDR_OUT <= slv_unknown_addr_o; + SLV_ACK_OUT <= slv_ack_o; end Behavioral; diff --git a/nxyter/source/nx_data_validate.vhd b/nxyter/source/nx_data_validate.vhd index c4a9254..5c3b509 100644 --- a/nxyter/source/nx_data_validate.vhd +++ b/nxyter/source/nx_data_validate.vhd @@ -14,15 +14,14 @@ entity nx_data_validate is -- Inputs NX_TIMESTAMP_IN : in std_logic_vector(31 downto 0); ADC_DATA_IN : in std_logic_vector(11 downto 0); - NEW_DATA_IN : in std_logic; + DATA_CLK_IN : in std_logic; -- Outputs TIMESTAMP_OUT : out std_logic_vector(13 downto 0); CHANNEL_OUT : out std_logic_vector(6 downto 0); TIMESTAMP_STATUS_OUT : out std_logic_vector(2 downto 0); ADC_DATA_OUT : out std_logic_vector(11 downto 0); - DATA_VALID_OUT : out std_logic; - SELF_TRIGGER_OUT : out std_logic; + DATA_CLK_OUT : out std_logic; NX_TOKEN_RETURN_OUT : out std_logic; NX_NOMORE_DATA_OUT : out std_logic; @@ -36,7 +35,8 @@ entity nx_data_validate is SLV_ACK_OUT : out std_logic; SLV_NO_MORE_DATA_OUT : out std_logic; SLV_UNKNOWN_ADDR_OUT : out std_logic; - + + ERROR_OUT : out std_logic; DEBUG_OUT : out std_logic_vector(15 downto 0) ); @@ -52,8 +52,7 @@ architecture Behavioral of nx_data_validate is signal new_timestamp : std_logic; signal valid_frame_bits : std_logic_vector(3 downto 0); signal status_bits : std_logic_vector(1 downto 0); - signal parity_bit : std_logic; - signal parity : std_logic; + signal parity_error : std_logic; signal adc_data : std_logic_vector(11 downto 0); -- Validate Timestamp @@ -61,7 +60,7 @@ architecture Behavioral of nx_data_validate is signal channel_o : std_logic_vector(6 downto 0); signal timestamp_status_o : std_logic_vector(2 downto 0); signal adc_data_o : std_logic_vector(11 downto 0); - signal data_valid_o : std_logic; + signal data_clk_o : std_logic; signal nx_token_return_o : std_logic; signal nx_nomore_data_o : std_logic; @@ -69,7 +68,6 @@ architecture Behavioral of nx_data_validate is signal invalid_frame_ctr : unsigned(15 downto 0); signal overflow_ctr : unsigned(15 downto 0); signal pileup_ctr : unsigned(15 downto 0); - signal parity_error_ctr : unsigned(15 downto 0); signal trigger_rate_inc : std_logic; signal frame_rate_inc : std_logic; @@ -84,19 +82,38 @@ architecture Behavioral of nx_data_validate is signal nx_frame_ctr_t : unsigned(27 downto 0); signal nx_pileup_ctr_t : unsigned(27 downto 0); signal nx_overflow_ctr_t : unsigned(27 downto 0); + signal adc_tr_error_ctr_t : unsigned(27 downto 0); + signal nx_rate_timer : unsigned(27 downto 0); -- ADC Averages signal adc_average_divisor : unsigned(3 downto 0); - signal adc_average_ctr : unsigned(8 downto 0); - signal adc_average_sum : unsigned(24 downto 0); + signal adc_average_ctr : unsigned(15 downto 0); + signal adc_average_sum : unsigned(31 downto 0); signal adc_average : unsigned(11 downto 0); signal adc_data_last : std_logic_vector(11 downto 0); - signal adc_av : std_logic; + + -- Token Return Average + signal adc_tr_data_p : std_logic_vector(11 downto 0); + signal adc_tr_data_c : std_logic_vector(11 downto 0); + signal adc_tr_data_clk : std_logic; + signal adc_tr_average_divisor : unsigned(7 downto 0); + signal adc_tr_average_ctr : unsigned(15 downto 0); + signal adc_tr_average_sum : unsigned(31 downto 0); + signal adc_tr_average : unsigned(11 downto 0); + signal adc_tr_mean : unsigned(11 downto 0); + signal adc_tr_limit : unsigned(11 downto 0); + signal adc_tr_error_ctr : unsigned(11 downto 0); + signal adc_tr_error : std_logic; + signal adc_tr_error_status : std_logic_vector(1 downto 0); + signal adc_tr_debug_mode : std_logic; -- Config signal readout_type : std_logic_vector(1 downto 0); + -- Error Status + signal error_o : std_logic; + -- Slave Bus signal slv_data_out_o : std_logic_vector(31 downto 0); signal slv_no_more_data_o : std_logic; @@ -107,87 +124,64 @@ architecture Behavioral of nx_data_validate is signal nx_frame_rate : unsigned(27 downto 0); signal nx_pileup_rate : unsigned(27 downto 0); signal nx_overflow_rate : unsigned(27 downto 0); - signal invalid_adc : std_logic; + signal adc_tr_error_rate : unsigned(27 downto 0); + signal invalid_adc : std_logic; begin -- Debug Line - DEBUG_OUT(0) <= CLK_IN; - DEBUG_OUT(1) <= nx_token_return_o; - DEBUG_OUT(2) <= nx_nomore_data_o; - DEBUG_OUT(3) <= data_valid_o; - DEBUG_OUT(4) <= new_timestamp; - DEBUG_OUT(5) <= self_trigger_o; - DEBUG_OUT(8 downto 6) <= (others => '0'); - DEBUG_OUT(15 downto 9) <= channel_o; - --DEBUG_OUT(6 downto 4) <= timestamp_status_o; - --DEBUG_OUT(7) <= nx_token_return_o; - --DEBUG_OUT(8) <= invalid_adc;--nx_nomore_data_o; - - --DEBUG_OUT(15 downto 9) <= channel_o; + DEBUG_OUT(0) <= CLK_IN; + DEBUG_OUT(1) <= data_clk_o; --DATA_CLK_IN; + DEBUG_OUT(2) <= nx_token_return_o; + DEBUG_OUT(3) <= nx_nomore_data_o; + + DEBUG_OUT(15 downto 4) <= adc_data; + + --DEBUG_OUT(4) <= data_clk_o; + --DEBUG_OUT(5) <= new_timestamp; + --DEBUG_OUT(6) <= self_trigger_o; + --DEBUG_OUT(7) <= invalid_adc; + --DEBUG_OUT(8) <= adc_tr_data_clk; + --DEBUG_OUT(9) <= adc_tr_error; + --DEBUG_OUT(15 downto 10) <= channel_o(5 downto 0); ----------------------------------------------------------------------------- - -- Gray Decoder for Timestamp and Channel Id + -- Data Separation ----------------------------------------------------------------------------- - - Gray_Decoder_1: Gray_Decoder -- Decode nx_timestamp - generic map ( - WIDTH => 14 - ) - port map ( - CLK_IN => CLK_IN, - RESET_IN => RESET_IN, - GRAY_IN(13 downto 7) => not NX_TIMESTAMP_IN(30 downto 24), - GRAY_IN( 6 downto 0) => not NX_TIMESTAMP_IN(22 downto 16), - BINARY_OUT => nx_timestamp - ); - - Gray_Decoder_2: Gray_Decoder -- Decode Channel_ID - generic map ( - WIDTH => 7 - ) - port map ( - CLK_IN => CLK_IN, - RESET_IN => RESET_IN, - GRAY_IN => NX_TIMESTAMP_IN(14 downto 8), - BINARY_OUT => nx_channel_id - ); - - -- Separate Status-, Parity- and Frame-bits, calculate parity + + -- Separate Timestamp-, Status-, Parity- and Frame-bits PROC_TIMESTAMP_BITS: process (CLK_IN) - variable parity_bits : std_logic_vector(22 downto 0); begin if( rising_edge(CLK_IN) ) then if (RESET_IN = '1') then valid_frame_bits <= (others => '0'); + nx_timestamp <= (others => '0'); + nx_channel_id <= (others => '0'); status_bits <= (others => '0'); - parity_bit <= '0'; - parity <= '0'; + parity_error <= '0'; new_timestamp <= '0'; adc_data <= (others => '0'); else - -- Timestamp Bit #6 is excluded (funny nxyter-bug) - parity_bits := NX_TIMESTAMP_IN(31 downto 24) & - NX_TIMESTAMP_IN(21 downto 16) & - NX_TIMESTAMP_IN(14 downto 8) & - NX_TIMESTAMP_IN( 2 downto 1); - valid_frame_bits <= (others => '0'); - status_bits <= (others => '0'); - parity_bit <= '0'; - parity <= '0'; - new_timestamp <= '0'; - adc_data <= (others => '0'); - - if (NEW_DATA_IN = '1') then - valid_frame_bits(3) <= NX_TIMESTAMP_IN(31); - valid_frame_bits(2) <= NX_TIMESTAMP_IN(23); - valid_frame_bits(1) <= NX_TIMESTAMP_IN(15); - valid_frame_bits(0) <= NX_TIMESTAMP_IN(7); - status_bits <= NX_TIMESTAMP_IN(2 downto 1); - parity_bit <= NX_TIMESTAMP_IN(0); - parity <= xor_all(parity_bits); - adc_data <= ADC_DATA_IN; - new_timestamp <= '1'; + if (DATA_CLK_IN = '1') then + valid_frame_bits(3) <= NX_TIMESTAMP_IN(31); + valid_frame_bits(2) <= NX_TIMESTAMP_IN(23); + valid_frame_bits(1) <= NX_TIMESTAMP_IN(15); + valid_frame_bits(0) <= NX_TIMESTAMP_IN(7); + nx_timestamp(13 downto 7) <= NX_TIMESTAMP_IN(30 downto 24); + nx_timestamp(6 downto 0) <= NX_TIMESTAMP_IN(22 downto 16); + nx_channel_id <= NX_TIMESTAMP_IN(14 downto 8); + status_bits <= NX_TIMESTAMP_IN(2 downto 1); + parity_error <= NX_TIMESTAMP_IN(0); + adc_data <= ADC_DATA_IN; + new_timestamp <= '1'; + else + valid_frame_bits <= (others => '0'); + nx_timestamp <= (others => '0'); + nx_channel_id <= (others => '0'); + status_bits <= (others => '0'); + parity_error <= '0'; + adc_data <= (others => '0'); + new_timestamp <= '0'; end if; end if; end if; @@ -205,31 +199,37 @@ begin channel_o <= (others => '0'); timestamp_status_o <= (others => '0'); adc_data_o <= (others => '0'); - data_valid_o <= '0'; + data_clk_o <= '0'; nx_token_return_o <= '0'; nx_nomore_data_o <= '0'; trigger_rate_inc <= '0'; frame_rate_inc <= '0'; pileup_rate_inc <= '0'; overflow_rate_inc <= '0'; - invalid_frame_ctr <= (others => '0'); overflow_ctr <= (others => '0'); pileup_ctr <= (others => '0'); - parity_error_ctr <= (others => '0'); + invalid_adc <= '0'; + adc_tr_data_p <= (others => '0'); + adc_tr_data_c <= (others => '0'); + adc_tr_data_clk <= '0'; + adc_data_last <= (others => '0'); else timestamp_o <= (others => '0'); channel_o <= (others => '0'); timestamp_status_o <= (others => '0'); adc_data_o <= (others => '0'); - data_valid_o <= '0'; + data_clk_o <= '0'; trigger_rate_inc <= '0'; frame_rate_inc <= '0'; pileup_rate_inc <= '0'; overflow_rate_inc <= '0'; invalid_adc <= '0'; - + adc_tr_data_clk <= '0'; + if (new_timestamp = '1') then + adc_data_last <= adc_data; + case valid_frame_bits is -- Data Frame @@ -240,14 +240,6 @@ begin overflow_rate_inc <= '1'; end if; - ---- Check Parity - if ((parity_bit /= parity) and (clear_counters = '0')) then - timestamp_status_o(2) <= '1'; - parity_error_ctr <= parity_error_ctr + 1; - else - timestamp_status_o(2) <= '0'; - end if; - -- Check PileUp if ((status_bits(1) = '1') and (clear_counters = '0')) then pileup_ctr <= pileup_ctr + 1; @@ -257,9 +249,14 @@ begin -- Take Timestamp timestamp_o <= nx_timestamp; channel_o <= nx_channel_id; + timestamp_status_o(2) <= parity_error; timestamp_status_o(1 downto 0) <= status_bits; - adc_data_o <= adc_data; - data_valid_o <= '1'; + if (adc_tr_debug_mode = '0') then + adc_data_o <= adc_data; + else + adc_data_o <= adc_tr_data_p; + end if; + data_clk_o <= '1'; if (adc_data = x"aff") then invalid_adc <= '1'; @@ -268,7 +265,14 @@ begin nx_token_return_o <= '0'; nx_nomore_data_o <= '0'; trigger_rate_inc <= '1'; - + + if (nx_token_return_o = '1') then + -- First Data Word after empty Frame + adc_tr_data_p <= adc_data_last; + adc_tr_data_c <= adc_data; + adc_tr_data_clk <= '1'; + end if; + -- Token return and nomore_data when "0000" => nx_token_return_o <= '1'; @@ -296,7 +300,6 @@ begin invalid_frame_ctr <= (others => '0'); overflow_ctr <= (others => '0'); pileup_ctr <= (others => '0'); - parity_error_ctr <= (others => '0'); end if; end if; end if; @@ -311,40 +314,48 @@ begin nx_rate_timer <= (others => '0'); nx_hit_rate <= (others => '0'); nx_frame_rate <= (others => '0'); + adc_tr_error_rate <= (others => '0'); else if (nx_rate_timer < x"5f5e100") then if (trigger_rate_inc = '1') then - nx_trigger_ctr_t <= nx_trigger_ctr_t + 1; + nx_trigger_ctr_t <= nx_trigger_ctr_t + 1; end if; if (frame_rate_inc = '1') then - nx_frame_ctr_t <= nx_frame_ctr_t + 1; + nx_frame_ctr_t <= nx_frame_ctr_t + 1; end if; if (pileup_rate_inc = '1') then - nx_pileup_ctr_t <= nx_pileup_ctr_t + 1; + nx_pileup_ctr_t <= nx_pileup_ctr_t + 1; end if; if (overflow_rate_inc = '1') then - nx_overflow_ctr_t <= nx_overflow_ctr_t + 1; - end if; - nx_rate_timer <= nx_rate_timer + 1; - else - nx_hit_rate <= nx_trigger_ctr_t; - nx_frame_rate <= nx_frame_ctr_t; - nx_pileup_rate <= nx_pileup_ctr_t; - nx_overflow_rate <= nx_overflow_ctr_t; - - nx_trigger_ctr_t(27 downto 1) <= (others => '0'); - nx_trigger_ctr_t(0) <= trigger_rate_inc; - - nx_frame_ctr_t(27 downto 1) <= (others => '0'); - nx_frame_ctr_t(0) <= frame_rate_inc; - - nx_pileup_ctr_t(27 downto 1) <= (others => '0'); - nx_pileup_ctr_t(0) <= pileup_rate_inc; - - nx_overflow_ctr_t(27 downto 1) <= (others => '0'); - nx_overflow_ctr_t(0) <= overflow_rate_inc; + nx_overflow_ctr_t <= nx_overflow_ctr_t + 1; + end if; + if (adc_tr_error = '1') then + adc_tr_error_ctr_t <= adc_tr_error_ctr_t + 1; + end if; + nx_rate_timer <= nx_rate_timer + 1; + else + nx_hit_rate <= nx_trigger_ctr_t; + nx_frame_rate <= nx_frame_ctr_t; + nx_pileup_rate <= nx_pileup_ctr_t; + nx_overflow_rate <= nx_overflow_ctr_t; + adc_tr_error_rate <= adc_tr_error_ctr_t; + + nx_trigger_ctr_t(27 downto 1) <= (others => '0'); + nx_trigger_ctr_t(0) <= trigger_rate_inc; + + nx_frame_ctr_t(27 downto 1) <= (others => '0'); + nx_frame_ctr_t(0) <= frame_rate_inc; + + nx_pileup_ctr_t(27 downto 1) <= (others => '0'); + nx_pileup_ctr_t(0) <= pileup_rate_inc; + + nx_overflow_ctr_t(27 downto 1) <= (others => '0'); + nx_overflow_ctr_t(0) <= overflow_rate_inc; + + adc_tr_error_ctr_t(27 downto 0) <= (others => '0'); + adc_tr_error_ctr_t(0) <= adc_tr_error; - nx_rate_timer <= (others => '0'); + nx_rate_timer <= (others => '0'); end if; end if; end if; @@ -357,42 +368,103 @@ begin adc_average_ctr <= (others => '0'); adc_average_sum <= (others => '0'); adc_average <= (others => '0'); - adc_data_last <= (others => '0'); - adc_av <= '0'; else - adc_av <= '0'; if ((adc_average_ctr srl to_integer(adc_average_divisor)) > 0) then - adc_average <= (adc_average_sum srl + adc_average <= (adc_average_sum srl to_integer(adc_average_divisor))(11 downto 0); - adc_average_sum <= (others => '0'); - adc_average_ctr <= (others => '0'); - adc_av <= '1'; - elsif (data_valid_o = '1') then - adc_average_sum <= adc_average_sum + unsigned(adc_data_o); - adc_average_ctr <= adc_average_ctr + 1; + if (data_clk_o = '1') then + adc_average_sum(11 downto 0) <= unsigned(adc_data_o); + adc_average_sum(31 downto 13) <= (others => '0'); + adc_average_ctr <= x"0001"; + else + adc_average_sum <= (others => '0'); + adc_average_ctr <= (others => '0'); + end if; + elsif (data_clk_o = '1') then + adc_average_sum <= adc_average_sum + unsigned(adc_data_o); + adc_average_ctr <= adc_average_ctr + 1; end if; - if (data_valid_o = '1') then - adc_data_last <= adc_data_o; - end if; end if; end if; end process PROC_ADC_AVERAGE; - ----------------------------------------------------------------------------- - -- Self Trigger Out - ----------------------------------------------------------------------------- - pulse_to_level_SELF_TRIGGER: pulse_to_level - generic map ( - NUM_CYCLES => 2 - ) - port map ( - CLK_IN => CLK_IN, - RESET_IN => RESET_IN, - PULSE_IN => data_valid_o, - LEVEL_OUT => self_trigger_o - ); - + PROC_ADC_TOKEN_RETURN: process(CLK_IN) + variable lower_limit : unsigned(11 downto 0); + variable upper_limit : unsigned(11 downto 0); + + begin + if (rising_edge(CLK_IN) ) then + if (RESET_IN = '1') then + adc_tr_average_ctr <= (others => '0'); + adc_tr_average_sum <= (others => '0'); + adc_tr_average <= (others => '0'); + + adc_tr_error_ctr <= (others => '0'); + adc_tr_error <= '0'; + else + upper_limit := adc_tr_mean + adc_tr_limit; + lower_limit := adc_tr_mean - adc_tr_limit; + adc_tr_error <= '0'; + + if (adc_tr_data_clk = '1') then + if (unsigned(adc_tr_data_p) <= upper_limit and + unsigned(adc_tr_data_p) >= lower_limit) then + -- Empty token value is O.K., check next one + if (unsigned(adc_tr_data_c) > lower_limit) then + -- Following Value is not low enough, increase bit shift by one + adc_tr_error_ctr <= adc_tr_error_ctr + 1; + adc_tr_error_status <= "10"; + adc_tr_error <= '1'; + else + adc_tr_error_status <= "00"; + end if; + else + -- Empty token value is not low enough, decrease bit shift by one + adc_tr_error_ctr <= adc_tr_error_ctr + 1; + adc_tr_error_status <= "01"; + adc_tr_error <= '1'; + end if; + end if; + + if (adc_tr_average_ctr srl to_integer(adc_average_divisor) > 0) then + adc_tr_average <= + (adc_tr_average_sum srl + to_integer(adc_average_divisor))(11 downto 0); + if (adc_tr_data_clk = '1') then + adc_tr_average_sum(11 downto 0) <= unsigned(adc_tr_data_p); + adc_tr_average_sum(31 downto 12) <= (others => '0'); + adc_tr_average_ctr <= x"0001"; + else + adc_tr_average_sum <= (others => '0'); + adc_tr_average_ctr <= (others => '0'); + end if; + elsif (adc_tr_data_clk = '1') then + adc_tr_average_sum <= + adc_tr_average_sum + unsigned(adc_tr_data_p); + adc_tr_average_ctr <= adc_tr_average_ctr + 1; + end if; + + end if; + end if; + end process PROC_ADC_TOKEN_RETURN; + + PROC_ADC_TOKEN_RETURN_ERROR: process(CLK_IN) + begin + if (rising_edge(CLK_IN) ) then + if (RESET_IN = '1') then + error_o <= '0'; + else + if (adc_tr_error_rate > x"0000020") then + error_o <= '1'; + else + error_o <= '0'; + end if; + end if; + + end if; + end process PROC_ADC_TOKEN_RETURN_ERROR; + ----------------------------------------------------------------------------- -- TRBNet Slave Bus ----------------------------------------------------------------------------- @@ -408,6 +480,11 @@ begin slv_no_more_data_o <= '0'; clear_counters <= '0'; adc_average_divisor <= x"3"; + + adc_tr_average_divisor <= x"00"; + adc_tr_mean <= x"8f2"; -- 2290 + adc_tr_limit <= x"014"; -- 20 + adc_tr_debug_mode <= '0'; else slv_data_out_o <= (others => '0'); slv_unknown_addr_o <= '0'; @@ -416,92 +493,136 @@ begin if (SLV_READ_IN = '1') then case SLV_ADDR_IN is - + when x"0000" => - slv_data_out_o(15 downto 0) <= - std_logic_vector(invalid_frame_ctr); - slv_data_out_o(31 downto 16) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(27 downto 0) <= + std_logic_vector(nx_hit_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; when x"0001" => - slv_data_out_o(15 downto 0) <= - std_logic_vector(overflow_ctr); - slv_data_out_o(31 downto 16) <= (others => '0'); - slv_ack_o <= '1'; - + slv_data_out_o(27 downto 0) <= + std_logic_vector(nx_frame_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; + when x"0002" => - slv_data_out_o(15 downto 0) <= - std_logic_vector(pileup_ctr); - slv_data_out_o(31 downto 16) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(27 downto 0) <= + std_logic_vector(nx_pileup_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; when x"0003" => - slv_data_out_o(15 downto 0) <= - std_logic_vector(parity_error_ctr); - slv_data_out_o(31 downto 16) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(27 downto 0) <= + std_logic_vector(nx_overflow_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); + slv_ack_o <= '1'; when x"0004" => - slv_data_out_o(27 downto 0) <= - std_logic_vector(nx_hit_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(3 downto 0) <= + std_logic_vector(adc_average_divisor); + slv_data_out_o(31 downto 4) <= (others => '0'); + slv_ack_o <= '1'; when x"0005" => - slv_data_out_o(27 downto 0) <= - std_logic_vector(nx_frame_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; - - when x"0006" => - slv_data_out_o(11 downto 0) <= adc_data_last; + slv_data_out_o(11 downto 0) <= std_logic_vector(adc_average); slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; - + + when x"0006" => + slv_data_out_o(1 downto 0) <= adc_tr_error_status; + slv_data_out_o(31 downto 8) <= (others => '0'); + slv_ack_o <= '1'; + when x"0007" => - slv_data_out_o(11 downto 0) <= std_logic_vector(adc_average); - slv_data_out_o(31 downto 12) <= (others => '0'); + slv_data_out_o(27 downto 0) + <= std_logic_vector(adc_tr_error_rate); + slv_data_out_o(31 downto 28) <= (others => '0'); slv_ack_o <= '1'; - + when x"0008" => - slv_data_out_o(3 downto 0) <= - std_logic_vector(adc_average_divisor); - slv_data_out_o(31 downto 4) <= (others => '0'); - slv_ack_o <= '1'; + slv_data_out_o(11 downto 0) + <= std_logic_vector(adc_tr_average); + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; when x"0009" => - slv_data_out_o(27 downto 0) <= - std_logic_vector(nx_pileup_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); + slv_data_out_o(11 downto 0) + <= std_logic_vector(adc_tr_mean); + slv_data_out_o(31 downto 12) <= (others => '0'); slv_ack_o <= '1'; when x"000a" => - slv_data_out_o(27 downto 0) <= - std_logic_vector(nx_overflow_rate); - slv_data_out_o(31 downto 28) <= (others => '0'); - slv_ack_o <= '1'; - + slv_data_out_o(11 downto 0) + <= std_logic_vector(adc_tr_limit); + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000b" => + slv_data_out_o(11 downto 0) + <= std_logic_vector(adc_tr_error_ctr); + slv_data_out_o(31 downto 12) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000c" => + slv_data_out_o(15 downto 0) <= + std_logic_vector(pileup_ctr); + slv_data_out_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000d" => + slv_data_out_o(15 downto 0) <= + std_logic_vector(overflow_ctr); + slv_data_out_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000e" => + slv_data_out_o(15 downto 0) <= + std_logic_vector(invalid_frame_ctr); + slv_data_out_o(31 downto 16) <= (others => '0'); + slv_ack_o <= '1'; + + when x"000f" => + slv_data_out_o(0) <= adc_tr_debug_mode; + slv_data_out_o(31 downto 1) <= (others => '0'); + slv_ack_o <= '1'; + slv_ack_o <= '1'; + when others => - slv_unknown_addr_o <= '1'; - slv_ack_o <= '0'; + slv_unknown_addr_o <= '1'; + slv_ack_o <= '0'; end case; elsif (SLV_WRITE_IN = '1') then case SLV_ADDR_IN is when x"0000" => - clear_counters <= '1'; - slv_ack_o <= '1'; - - when x"0008" => + clear_counters <= '1'; + slv_ack_o <= '1'; + + when x"0005" => adc_average_divisor <= SLV_DATA_IN(3 downto 0); slv_ack_o <= '1'; - + + when x"0009" => + adc_tr_mean + <= unsigned(SLV_DATA_IN(11 downto 0)); + slv_ack_o <= '1'; + + when x"000a" => + adc_tr_limit + <= unsigned(SLV_DATA_IN(11 downto 0)); + slv_ack_o <= '1'; + + when x"000f" => + adc_tr_debug_mode <= SLV_DATA_IN(0); + slv_ack_o <= '1'; + when others => - slv_unknown_addr_o <= '1'; - slv_ack_o <= '0'; + slv_unknown_addr_o <= '1'; + slv_ack_o <= '0'; end case; else - slv_ack_o <= '0'; + slv_ack_o <= '0'; end if; end if; end if; @@ -515,10 +636,11 @@ begin CHANNEL_OUT <= channel_o; TIMESTAMP_STATUS_OUT <= timestamp_status_o; ADC_DATA_OUT <= adc_data_o; - DATA_VALID_OUT <= data_valid_o; + DATA_CLK_OUT <= data_clk_o; NX_TOKEN_RETURN_OUT <= nx_token_return_o; NX_NOMORE_DATA_OUT <= nx_nomore_data_o; - SELF_TRIGGER_OUT <= self_trigger_o; + + ERROR_OUT <= error_o; -- Slave SLV_DATA_OUT <= slv_data_out_o; diff --git a/nxyter/source/nx_fpga_timestamp.vhd b/nxyter/source/nx_fpga_timestamp.vhd index ba1cfe4..b9ab20e 100644 --- a/nxyter/source/nx_fpga_timestamp.vhd +++ b/nxyter/source/nx_fpga_timestamp.vhd @@ -11,11 +11,11 @@ entity nx_fpga_timestamp is RESET_IN : in std_logic; NX_MAIN_CLK_IN : in std_logic; - TIMESTAMP_SYNC_IN : in std_logic; + TIMESTAMP_RESET_IN : in std_logic; + TIMESTAMP_RESET_OUT : out std_logic; TRIGGER_IN : in std_logic; -- must be in NX_MAIN_CLK_DOMAIN TIMESTAMP_CURRENT_OUT : out unsigned(11 downto 0); TIMESTAMP_HOLD_OUT : out unsigned(11 downto 0); - TIMESTAMP_SYNCED_OUT : out std_logic; TIMESTAMP_TRIGGER_OUT : out std_logic; -- Slave bus @@ -33,18 +33,14 @@ entity nx_fpga_timestamp is end entity; architecture Behavioral of nx_fpga_timestamp is - - signal timestamp_ctr : unsigned(11 downto 0); - signal timestamp_current_o : unsigned(11 downto 0); - signal timestamp_hold_o : std_logic_vector(11 downto 0); - signal timestamp_trigger_o : std_logic; - signal timestamp_sync : std_logic; - signal timestamp_synced : std_logic; - signal timestamp_synced_o : std_logic; + signal timestamp_reset : std_logic; + signal timestamp_ctr : unsigned(11 downto 0); - signal fifo_full : std_logic; - signal fifo_write_enable : std_logic; + signal timestamp_current_o : unsigned(11 downto 0); + signal timestamp_hold_o : std_logic_vector(11 downto 0); + signal timestamp_trigger_o : std_logic; + signal timestamp_reset_o : std_logic; -- Reset signal RESET_NX_MAIN_CLK_IN : std_logic; @@ -52,8 +48,8 @@ architecture Behavioral of nx_fpga_timestamp is begin DEBUG_OUT(0) <= CLK_IN; - DEBUG_OUT(1) <= TIMESTAMP_SYNC_IN; - DEBUG_OUT(2) <= timestamp_synced_o; + DEBUG_OUT(1) <= TIMESTAMP_RESET_IN; + DEBUG_OUT(2) <= TIMESTAMP_RESET_OUT; DEBUG_OUT(3) <= TRIGGER_IN; DEBUG_OUT(15 downto 4) <= timestamp_hold_o(11 downto 0); @@ -79,25 +75,25 @@ begin port map ( CLK_IN => NX_MAIN_CLK_IN, RESET_IN => RESET_NX_MAIN_CLK_IN, - PULSE_A_IN => TIMESTAMP_SYNC_IN, - PULSE_OUT => timestamp_sync + PULSE_A_IN => TIMESTAMP_RESET_IN, + PULSE_OUT => timestamp_reset ); -- Timestamp Process + Trigger PROC_TIMESTAMP_CTR: process (NX_MAIN_CLK_IN) begin - if( rising_edge(NX_MAIN_CLK_IN) ) then - if( RESET_NX_MAIN_CLK_IN = '1' ) then + if (rising_edge(NX_MAIN_CLK_IN)) then + if (RESET_NX_MAIN_CLK_IN = '1') then timestamp_ctr <= (others => '0'); timestamp_hold_o <= (others => '0'); - timestamp_synced <= '0'; + timestamp_reset_o <= '0'; else timestamp_trigger_o <= '1'; - timestamp_synced <= '0'; + timestamp_reset_o <= '0'; - if (timestamp_sync = '1') then + if (timestamp_reset = '1') then timestamp_ctr <= (others => '0'); - timestamp_synced <= '1'; + timestamp_reset_o <= '1'; else if (TRIGGER_IN = '1') then timestamp_hold_o <= std_logic_vector(timestamp_ctr); @@ -115,22 +111,9 @@ begin -- Output Signals ----------------------------------------------------------------------------- - pulse_dtrans_1: pulse_dtrans - generic map ( - CLK_RATIO => 4 - ) - port map ( - CLK_A_IN => NX_MAIN_CLK_IN, - RESET_A_IN => RESET_NX_MAIN_CLK_IN, - PULSE_A_IN => timestamp_synced, - CLK_B_IN => CLK_IN, - RESET_B_IN => RESET_IN, - PULSE_B_OUT => timestamp_synced_o - ); - + TIMESTAMP_RESET_OUT <= timestamp_reset_o; TIMESTAMP_CURRENT_OUT <= timestamp_current_o; TIMESTAMP_HOLD_OUT <= timestamp_hold_o; - TIMESTAMP_SYNCED_OUT <= timestamp_synced_o; TIMESTAMP_TRIGGER_OUT <= timestamp_trigger_o; end Behavioral; diff --git a/nxyter/source/nx_i2c_master.vhd b/nxyter/source/nx_i2c_master.vhd index 0fd659c..a506ffa 100644 --- a/nxyter/source/nx_i2c_master.vhd +++ b/nxyter/source/nx_i2c_master.vhd @@ -23,7 +23,7 @@ entity nx_i2c_master is I2C_DATA_OUT : out std_logic_vector(31 downto 0); I2C_DATA_BYTES_OUT : out std_logic_vector(31 downto 0); I2C_LOCK_IN : in std_logic; - + -- Slave bus SLV_READ_IN : in std_logic; SLV_WRITE_IN : in std_logic; @@ -148,8 +148,8 @@ begin DEBUG_OUT(11) <= i2c_busy; DEBUG_OUT(12) <= sda_o; DEBUG_OUT(13) <= scl_o; - DEBUG_OUT(14) <= sda; - DEBUG_OUT(15) <= scl; + DEBUG_OUT(14) <= sda_i; + DEBUG_OUT(15) <= scl_i; --DEBUG_OUT(12 downto 9) <= i2c_data(31 downto 28); -- Start / Stop Sequence @@ -223,7 +223,7 @@ begin end if; end if; end process PROC_I2C_LINES_SYNC; - + PROC_I2C_MASTER_TRANSFER: process(CLK_IN) begin if( rising_edge(CLK_IN) ) then @@ -288,7 +288,7 @@ begin when S_IDLE => if (i2c_start = '1') then i2c_data_x <= x"8000_0000"; -- Set Running, clear all - -- other bits + -- other bits NEXT_STATE <= S_START; else i2c_busy_x <= '0'; @@ -597,7 +597,7 @@ begin COMMAND_BUSY_OUT <= command_busy_o; I2C_DATA_OUT <= i2c_data_internal_o; I2C_DATA_BYTES_OUT <= i2c_data_internal_bytes_o; - + -- Slave Bus SLV_DATA_OUT <= slv_data_out_o; SLV_NO_MORE_DATA_OUT <= slv_no_more_data_o; diff --git a/nxyter/source/nx_setup.vhd b/nxyter/source/nx_register_setup.vhd similarity index 93% rename from nxyter/source/nx_setup.vhd rename to nxyter/source/nx_register_setup.vhd index f5d9f54..3bd0891 100644 --- a/nxyter/source/nx_setup.vhd +++ b/nxyter/source/nx_register_setup.vhd @@ -7,17 +7,17 @@ use work.trb_net_std.all; use work.trb_net_components.all; use work.nxyter_components.all; -entity nx_setup is +entity nx_register_setup is port( CLK_IN : in std_logic; RESET_IN : in std_logic; + I2C_ONLINE_IN : in std_logic; I2C_COMMAND_OUT : out std_logic_vector(31 downto 0); I2C_COMMAND_BUSY_IN : in std_logic; I2C_DATA_IN : in std_logic_vector(31 downto 0); I2C_DATA_BYTES_IN : in std_logic_vector(31 downto 0); I2C_LOCK_OUT : out std_logic; - I2C_ONLINE_OUT : out std_logic; I2C_REG_RESET_IN : in std_logic; SPI_COMMAND_OUT : out std_logic_vector(31 downto 0); @@ -46,14 +46,13 @@ entity nx_setup is ); end entity; -architecture Behavioral of nx_setup is +architecture Behavioral of nx_register_setup is -- I2C Command Multiplexer signal i2c_lock_0 : std_logic; signal i2c_lock_1 : std_logic; signal i2c_lock_2 : std_logic; signal i2c_lock_3 : std_logic; - signal i2c_lock_4 : std_logic; signal i2c_command : std_logic_vector(31 downto 0); -- Send I2C Command @@ -185,7 +184,7 @@ architecture Behavioral of nx_setup is signal adc_token_ctr : unsigned(1 downto 0); signal adc_read_token_clear : std_logic_vector(3 downto 0); signal next_token_adc : std_logic; - signal i2c_lock_4_clear : std_logic; + signal i2c_lock_3_clear : std_logic; -- I2C Online Check type R_STATES is (R_TIMER_RESTART, @@ -198,9 +197,6 @@ architecture Behavioral of nx_setup is signal wait_timer_start : std_logic; signal wait_timer_done : std_logic; - signal i2c_online_command : std_logic_vector(31 downto 0); - signal i2c_lock_3_clear : std_logic; - signal i2c_online_o : std_logic; -- I2C Status signal i2c_online_t : std_logic_vector(7 downto 0); @@ -244,20 +240,20 @@ begin DEBUG_OUT(0) <= CLK_IN; DEBUG_OUT(1) <= I2C_COMMAND_BUSY_IN; DEBUG_OUT(2) <= i2c_command_busy_o; - DEBUG_OUT(3) <= i2c_error; + DEBUG_OUT(3) <= i2c_disable_memory; --i2c_error; DEBUG_OUT(4) <= i2c_command_done; DEBUG_OUT(5) <= next_token_dac_r or next_token_dac_w; - DEBUG_OUT(6) <= i2c_update_memory; + DEBUG_OUT(6) <= i2c_update_memory_r; DEBUG_OUT(7) <= i2c_lock_0_clear; DEBUG_OUT(8) <= i2c_lock_1_clear; DEBUG_OUT(9) <= i2c_lock_2_clear; - DEBUG_OUT(10) <= i2c_lock_4_clear; - DEBUG_OUT(11) <= i2c_online_o; + DEBUG_OUT(10) <= i2c_lock_3_clear; + DEBUG_OUT(11) <= i2c_command(31); DEBUG_OUT(12) <= i2c_lock_0; DEBUG_OUT(13) <= i2c_lock_1; DEBUG_OUT(14) <= i2c_lock_2; - DEBUG_OUT(15) <= i2c_lock_4; + DEBUG_OUT(15) <= i2c_lock_3; ----------------------------------------------------------------------------- @@ -334,7 +330,7 @@ begin ----------------------------------------------------------------------------- PROC_I2C_COMMAND_MULTIPLEXER: process(CLK_IN) - variable locks : std_logic_vector(4 downto 0) := (others => '0'); + variable locks : std_logic_vector(3 downto 0) := (others => '0'); begin if( rising_edge(CLK_IN) ) then if( RESET_IN = '1' ) then @@ -342,13 +338,11 @@ begin i2c_lock_1 <= '0'; i2c_lock_2 <= '0'; i2c_lock_3 <= '0'; - i2c_lock_4 <= '0'; i2c_command <= (others => '0'); else i2c_command <= (others => '0'); - locks := i2c_lock_4 & i2c_lock_3 & - i2c_lock_2 & i2c_lock_1 & - i2c_lock_0; + locks := i2c_lock_3 & i2c_lock_2 & + i2c_lock_1 & i2c_lock_0; -- Clear Locks if (i2c_lock_0_clear = '1') then @@ -363,36 +357,28 @@ begin if (i2c_lock_3_clear = '1') then i2c_lock_3 <= '0'; end if; - if (i2c_lock_4_clear = '1') then - i2c_lock_4 <= '0'; - end if; if (i2c_command_busy_o = '0') then - if (nx_i2c_command(31) = '1' and - ((locks and "11110") = "00000") and + if (nx_i2c_command(31) = '1' and + ((locks and "1110") = "0000") and i2c_lock_0_clear = '0') then i2c_command <= nx_i2c_command; i2c_lock_0 <= '1'; - elsif (dac_write_i2c_command(31) = '1' and - ((locks and "11011") = "00000") and + elsif (dac_write_i2c_command(31) = '1' and + ((locks and "1011") = "0000") and i2c_lock_2_clear = '0') then i2c_command <= dac_write_i2c_command; i2c_lock_2 <= '1'; - elsif (dac_read_i2c_command(31) = '1' and - ((locks and "11101") = "00000") and + elsif (dac_read_i2c_command(31) = '1' and + ((locks and "1101") = "0000") and i2c_lock_1_clear = '0') then i2c_command <= dac_read_i2c_command; i2c_lock_1 <= '1'; - elsif (i2c_online_command(31) = '1' and - ((locks and "10111") = "00000") and - i2c_lock_3_clear = '0') then - i2c_command <= i2c_online_command; - i2c_lock_3 <= '1'; - elsif (adc_i2c_command(31) = '1' and - ((locks and "01111") = "00000") and - i2c_lock_4_clear = '0') then + elsif (adc_i2c_command(31) = '1' and + ((locks and "0111") = "0000") and + i2c_lock_3_clear = '0') then i2c_command <= adc_i2c_command; - i2c_lock_4 <= '1'; + i2c_lock_3 <= '1'; end if; end if; end if; @@ -808,14 +794,14 @@ begin adc_token_ctr <= (others => '0'); next_token_adc <= '0'; adc_read_token_clear <= (others => '0'); - i2c_lock_4_clear <= '0'; + i2c_lock_3_clear <= '0'; ADC_STATE <= ADC_IDLE_TOKEN; else index := to_integer(unsigned(adc_token_ctr)); adc_i2c_command <= (others => '0'); next_token_adc <= '0'; adc_read_token_clear <= (others => '0'); - i2c_lock_4_clear <= '0'; + i2c_lock_3_clear <= '0'; case ADC_STATE is @@ -836,7 +822,7 @@ begin when "11" => adc_i2c_command(15 downto 8) <= x"80"; end case; adc_i2c_command(7 downto 0) <= (others => '0'); - if (i2c_lock_4 = '0') then + if (i2c_lock_3 = '0') then ADC_STATE <= ADC_READ_I2C_REGISTER; else adc_read_token_clear(index) <= '1'; @@ -858,7 +844,7 @@ begin else adc_ram(index) <= (others => '1'); end if; - i2c_lock_4_clear <= '1'; + i2c_lock_3_clear <= '1'; ADC_STATE <= ADC_NEXT_TOKEN; -- Next Token @@ -890,58 +876,6 @@ begin TIMER_DONE_OUT => wait_timer_done ); - PROC_I2C_ONLINE: process(CLK_IN) - begin - if( rising_edge(CLK_IN) ) then - if( RESET_IN = '1' ) then - i2c_online_command <= (others => '0'); - i2c_online_o <= '0'; - i2c_lock_3_clear <= '0'; - wait_timer_start <= '0'; - R_STATE <= R_TIMER_RESTART; - else - i2c_online_command <= (others => '0'); - i2c_lock_3_clear <= '0'; - wait_timer_start <= '0'; - - case R_STATE is - - when R_TIMER_RESTART => - wait_timer_start <= '1'; - R_STATE <= R_IDLE; - - when R_IDLE => - if (wait_timer_done = '1') then - R_STATE <= R_READ_DUMMY; - else - R_STATE <= R_IDLE; - end if; - - when R_READ_DUMMY => - i2c_online_command(31 downto 16) <= x"c108"; - i2c_online_command(15 downto 8) <= x"1f"; -- Dummy register - i2c_online_command(7 downto 0) <= (others => '0'); - if (i2c_lock_3 = '0') then - R_STATE <= R_READ_DUMMY; - else - R_STATE <= R_WAIT_DONE; - end if; - - when R_WAIT_DONE => - if (i2c_command_done = '0') then - R_STATE <= R_WAIT_DONE; - else - i2c_online_o <= not i2c_error; - i2c_lock_3_clear <= '1'; - R_STATE <= R_TIMER_RESTART; - end if; - - end case; - - end if; - end if; - end process PROC_I2C_ONLINE; - PROC_I2C_STATUS: process(CLK_IN) begin if( rising_edge(CLK_IN) ) then @@ -954,7 +888,7 @@ begin i2c_reg_reset_clear <= '0'; -- Shift Online - i2c_online_t(0) <= i2c_online_o; + i2c_online_t(0) <= I2C_ONLINE_IN; for I in 1 to 7 loop i2c_online_t(I) <= i2c_online_t(I - 1); end loop; @@ -1132,7 +1066,7 @@ begin when x"0056" => -- I2C Online - int_data_o(0) <= i2c_online_o; + int_data_o(0) <= I2C_ONLINE_IN; int_data_o(31 downto 2) <= (others => '0'); int_ack_o <= '1'; @@ -1168,7 +1102,7 @@ begin dac_ram_write_0 <= '0'; dac_read_token_r <= (others => '0'); adc_read_token_r <= (others => '0'); - i2c_update_memory_r <= '0'; + i2c_update_memory_r <= '0'; nxyter_clock <= (others => '0'); nxyter_polarity <= (others => '0'); nxyter_testtrigger <= (others => '0'); @@ -1398,7 +1332,7 @@ begin when x"0056" => -- I2C Online - slv_data_out_o(0) <= i2c_online_o; + slv_data_out_o(0) <= I2C_ONLINE_IN; slv_data_out_o(31 downto 2) <= (others => '0'); slv_ack_o <= '1'; @@ -1514,7 +1448,6 @@ begin I2C_COMMAND_OUT <= i2c_command_o; I2C_LOCK_OUT <= i2c_command_busy_o; - I2C_ONLINE_OUT <= i2c_online_o; SPI_COMMAND_OUT <= (others => '0'); SPI_LOCK_OUT <= '0'; diff --git a/nxyter/source/nx_control.vhd b/nxyter/source/nx_status.vhd similarity index 80% rename from nxyter/source/nx_control.vhd rename to nxyter/source/nx_status.vhd index 82e7fb2..023f1c7 100644 --- a/nxyter/source/nx_control.vhd +++ b/nxyter/source/nx_status.vhd @@ -5,7 +5,7 @@ use ieee.numeric_std.all; library work; use work.nxyter_components.all; -entity nx_control is +entity nx_status is port( CLK_IN : in std_logic; RESET_IN : in std_logic; @@ -14,13 +14,13 @@ entity nx_control is PLL_NX_CLK_LOCK_IN : in std_logic; PLL_ADC_DCLK_LOCK_IN : in std_logic; PLL_ADC_SCLK_LOCK_IN : in std_logic; - + PLL_RESET_OUT : out std_logic; + -- Signals - I2C_SM_RESET_OUT : out std_logic; + I2C_SM_RESET_OUT : inout std_logic; I2C_REG_RESET_OUT : out std_logic; NX_TS_RESET_OUT : out std_logic; - I2C_ONLINE_IN : in std_logic; - OFFLINE_OUT : out std_logic; + NX_ONLINE_OUT : out std_logic; -- Error ERROR_ALL_IN : in std_logic_vector(7 downto 0); @@ -39,16 +39,20 @@ entity nx_control is ); end entity; -architecture Behavioral of nx_control is +architecture Behavioral of nx_status is -- Offline Handler - signal offline_force_internal : std_logic; + + signal i2c_sm_reset_i_x : std_logic; + signal i2c_sm_reset_i : std_logic; + signal i2c_sm_online : std_logic; + signal i2c_sm_online_ctr : unsigned(8 downto 0); + signal offline_force : std_logic; - signal offline_o : std_logic; - signal offline_on : std_logic; - signal online_on : std_logic; - signal offline_last : std_logic; - + signal online_o : std_logic; + signal online_trigger : std_logic; + signal online_last : std_logic; + -- I2C Reset signal i2c_sm_reset_start : std_logic; signal i2c_reg_reset_start : std_logic; @@ -57,7 +61,7 @@ architecture Behavioral of nx_control is signal i2c_sm_reset_o : std_logic; signal i2c_reg_reset_o : std_logic; signal nx_ts_reset_o : std_logic; - + type STATES is (S_IDLE, S_I2C_SM_RESET, @@ -89,6 +93,7 @@ architecture Behavioral of nx_control is signal pll_adc_sclk_notlock_ctr : unsigned(15 downto 0); signal clear_notlock_counters : std_logic; + signal pll_reset_o : std_logic; -- Nxyter Data Clock signal nx_data_clk_dphase_o : std_logic_vector(3 downto 0); @@ -114,12 +119,12 @@ begin DEBUG_OUT(9) <= pll_adc_sclk_lock; - DEBUG_OUT(10) <= I2C_ONLINE_IN; + DEBUG_OUT(10) <= i2c_sm_online; DEBUG_OUT(11) <= offline_force; - DEBUG_OUT(12) <= offline_force_internal; - DEBUG_OUT(13) <= offline_o; - DEBUG_OUT(14) <= online_on; - DEBUG_OUT(15) <= '0'; + DEBUG_OUT(12) <= online_o; + DEBUG_OUT(13) <= i2c_sm_reset_i; + DEBUG_OUT(14) <= pll_reset_o; + DEBUG_OUT(15) <= online_trigger; timer_1: timer generic map ( @@ -137,38 +142,64 @@ begin -- Offline Handler ----------------------------------------------------------------------------- - offline_force_internal <= '0'; + signal_async_trans_i2c_sm_reset_i: signal_async_trans + port map ( + CLK_IN => CLK_IN, + SIGNAL_A_IN => i2c_sm_reset_i_x, + SIGNAL_OUT => i2c_sm_reset_i + ); + + PROC_I2C_OFFLINE_SCHMITT_TRIGGER: process(CLK_IN) + begin + if( rising_edge(CLK_IN) ) then + if( RESET_IN = '1' ) then + i2c_sm_online <= '0'; + i2c_sm_online_ctr <= (others => '0'); + else + if (i2c_sm_reset_i = '1') then + if (i2c_sm_online_ctr < x"1ff") then + i2c_sm_online_ctr <= i2c_sm_online_ctr + 1; + end if; + else + if (i2c_sm_online_ctr > x"000") then + i2c_sm_online_ctr <= i2c_sm_online_ctr - 1; + end if; + end if; + if (i2c_sm_online_ctr > x"1d6") then + i2c_sm_online <= '1'; + elsif (i2c_sm_online_ctr < x"01e") then + i2c_sm_online <= '0'; + end if; + end if; + end if; + end process PROC_I2C_OFFLINE_SCHMITT_TRIGGER; + PROC_NXYTER_OFFLINE: process(CLK_IN) - variable offline_state : std_logic_vector(1 downto 0) := "00"; + variable online_state : std_logic_vector(1 downto 0) := "00"; begin if( rising_edge(CLK_IN) ) then if( RESET_IN = '1' ) then - offline_on <= '0'; - online_on <= '0'; - offline_o <= '1'; - offline_last <= '0'; + online_trigger <= '0'; + online_o <= '1'; + online_last <= '0'; else - if (offline_force = '1' or offline_force_internal = '1') then - offline_o <= '1'; + if (i2c_sm_online = '1' and offline_force = '0') then + online_o <= '1'; else - offline_o <= not I2C_ONLINE_IN; + online_o <= '0'; end if; -- Offline State changes - offline_on <= '0'; - online_on <= '0'; - offline_last <= offline_o; - offline_state := offline_o & offline_last; + online_last <= online_o; + online_state := online_o & online_last; - case offline_state is - when "01" => - offline_on <= '1'; - - when "10" => - online_on <= '0'; + case online_state is + when "01" | "10" => + online_trigger <= '1'; - when others => null; + when others => + online_trigger <= '0'; end case; end if; end if; @@ -350,6 +381,7 @@ begin nx_data_clk_dphase_o <= x"7"; nx_data_clk_finedelb_o <= x"0"; clear_notlock_counters <= '0'; + pll_reset_o <= '0'; else slv_unknown_addr_o <= '0'; slv_no_more_data_o <= '0'; @@ -358,6 +390,7 @@ begin i2c_reg_reset_start <= '0'; nx_ts_reset_start <= '0'; clear_notlock_counters <= '0'; + pll_reset_o <= '0'; if (SLV_WRITE_IN = '1') then case SLV_ADDR_IN is @@ -377,6 +410,10 @@ begin offline_force <= SLV_DATA_IN(0); slv_ack_o <= '1'; + when x"0006" => + pll_reset_o <= '1'; + slv_ack_o <= '1'; + when x"000a" => clear_notlock_counters <= '1'; slv_ack_o <= '1'; @@ -388,18 +425,23 @@ begin elsif (SLV_READ_IN = '1') then case SLV_ADDR_IN is + when x"0000" => + slv_data_out_o(0) <= i2c_sm_reset_i; + slv_data_out_o(31 downto 1) <= (others => '0'); + slv_ack_o <= '1'; + when x"0003" => slv_data_out_o(0) <= offline_force; slv_data_out_o(31 downto 1) <= (others => '0'); slv_ack_o <= '1'; when x"0004" => - slv_data_out_o(0) <= I2C_ONLINE_IN; + slv_data_out_o(0) <= i2c_sm_online; slv_data_out_o(31 downto 1) <= (others => '0'); slv_ack_o <= '1'; when x"0005" => - slv_data_out_o(0) <= offline_o; + slv_data_out_o(0) <= online_o; slv_data_out_o(31 downto 1) <= (others => '0'); slv_ack_o <= '1'; @@ -451,14 +493,17 @@ begin end process PROC_NX_REGISTERS; -- Output Signals - SLV_DATA_OUT <= slv_data_out_o; - SLV_NO_MORE_DATA_OUT <= slv_no_more_data_o; - SLV_UNKNOWN_ADDR_OUT <= slv_unknown_addr_o; - SLV_ACK_OUT <= slv_ack_o; + i2c_sm_reset_i_x <= I2C_SM_RESET_OUT; + + SLV_DATA_OUT <= slv_data_out_o; + SLV_NO_MORE_DATA_OUT <= slv_no_more_data_o; + SLV_UNKNOWN_ADDR_OUT <= slv_unknown_addr_o; + SLV_ACK_OUT <= slv_ack_o; + + PLL_RESET_OUT <= pll_reset_o; + I2C_SM_RESET_OUT <= '0' when i2c_sm_reset_o = '1' else 'Z'; + I2C_REG_RESET_OUT <= not i2c_reg_reset_o; + NX_TS_RESET_OUT <= nx_ts_reset_o; + NX_ONLINE_OUT <= online_o; - I2C_SM_RESET_OUT <= i2c_sm_reset_o; - I2C_REG_RESET_OUT <= i2c_reg_reset_o; - NX_TS_RESET_OUT <= nx_ts_reset_o; - OFFLINE_OUT <= offline_o; - end Behavioral; diff --git a/nxyter/source/nx_status_event.vhd b/nxyter/source/nx_status_event.vhd index c6076e0..ba3d6ba 100644 --- a/nxyter/source/nx_status_event.vhd +++ b/nxyter/source/nx_status_event.vhd @@ -8,7 +8,8 @@ use work.trb3_components.all; entity nx_status_event is generic ( - BOARD_ID : std_logic_vector(1 downto 0) := "11" + BOARD_ID : std_logic_vector(1 downto 0) := "11"; + VERSION_NUMBER : std_logic_vector(3 downto 0) := x"1" ); port ( CLK_IN : in std_logic; @@ -50,9 +51,11 @@ architecture Behavioral of nx_status_event is -- Event Write type E_STATES is (E_IDLE, + E_HEADER, E_READ_NEXT, E_READ, E_NEXT_INDEX, + E_TRAILER, E_END ); @@ -165,11 +168,18 @@ begin when E_IDLE => index_ctr <= (others => '0'); if (event_write_start = '1') then - E_STATE <= E_NEXT_INDEX; + E_STATE <= E_HEADER; else E_STATE <= E_IDLE; end if; - + + when E_HEADER => + fee_data_o(25 downto 0) <= (others => '1'); + fee_data_o(29 downto 26) <= VERSION_NUMBER; + fee_data_o(31 downto 30) <= BOARD_ID; + fee_data_write_o <= '1'; + E_STATE <= E_NEXT_INDEX; + when E_READ_NEXT => if (register_addr <= unsigned(reg_addr_end(index))) then int_addr_o <= register_addr; @@ -196,9 +206,14 @@ begin register_addr <= reg_addr_start(index); E_STATE <= E_READ_NEXT; else - E_STATE <= E_END; + E_STATE <= E_TRAILER; end if; + when E_TRAILER => + fee_data_o <= (others => '1'); + fee_data_write_o <= '1'; + E_STATE <= E_END; + when E_END => event_write_done <= '1'; E_STATE <= E_IDLE; diff --git a/nxyter/source/nx_timestamp_sim.vhd b/nxyter/source/nx_timestamp_sim.vhd index 133f368..18465e8 100644 --- a/nxyter/source/nx_timestamp_sim.vhd +++ b/nxyter/source/nx_timestamp_sim.vhd @@ -80,7 +80,7 @@ begin end if; end process PROC_NX_TIMESTAMP; --- Gray_Encoder_1: Gray_Encoder +-- gray_Encoder_1: gray_Encoder -- generic map ( -- WIDTH => 8 -- ) diff --git a/nxyter/source/nx_trigger_generator.vhd b/nxyter/source/nx_trigger_generator.vhd index a71a326..7abb077 100644 --- a/nxyter/source/nx_trigger_generator.vhd +++ b/nxyter/source/nx_trigger_generator.vhd @@ -11,12 +11,18 @@ entity nx_trigger_generator is RESET_IN : in std_logic; NX_MAIN_CLK_IN : in std_logic; + TRIGGER_BUSY_IN : in std_logic; + TRIGGER_IN : in std_logic; -- must be in NX_MAIN_CLK_DOMAIN TRIGGER_OUT : out std_logic; TS_RESET_OUT : out std_logic; TESTPULSE_OUT : out std_logic; - TEST_IN : in std_logic_vector(31 downto 0); - + + TIMESTAMP_IN : in std_logic_vector(31 downto 0); + ADC_DATA_IN : in std_logic_vector(11 downto 0); + NEW_DATA_IN : in std_logic; + SELF_TRIGGER_OUT : out std_logic; + -- Slave bus SLV_READ_IN : in std_logic; SLV_WRITE_IN : in std_logic; @@ -55,6 +61,18 @@ architecture Behavioral of nx_trigger_generator is signal testpulse_rate_t : unsigned(27 downto 0); signal rate_timer : unsigned(27 downto 0); + -- Self Trigger + + type ST_STATES is (ST_IDLE, + ST_BUSY + ); + signal ST_STATE : ST_STATES; + + signal self_trigger_ctr : unsigned(4 downto 0); + signal self_trigger_busy : std_logic; + signal self_trigger : std_logic; + signal self_trigger_o : std_logic; + -- TRBNet Slave Bus signal slv_data_out_o : std_logic_vector(31 downto 0); signal slv_no_more_data_o : std_logic; @@ -67,24 +85,23 @@ architecture Behavioral of nx_trigger_generator is signal reg_ts_reset_on : std_logic; signal testpulse_rate : unsigned(27 downto 0); - signal test_debug : std_logic; - -- Reset signal RESET_NX_MAIN_CLK_IN : std_logic; begin -- Debug Line - DEBUG_OUT(0) <= CLK_IN; - DEBUG_OUT(1) <= '0';--TRIGGER_IN; - DEBUG_OUT(2) <= '0'; - DEBUG_OUT(3) <= start_cycle; - DEBUG_OUT(4) <= '0';--wait_timer_done; - DEBUG_OUT(5) <= ts_reset_o; - DEBUG_OUT(6) <= testpulse_o_b; - DEBUG_OUT(7) <= testpulse; - DEBUG_OUT(8) <= test_debug; - DEBUG_OUT(15 downto 9) <= (others => '0'); - + DEBUG_OUT(0) <= CLK_IN; + DEBUG_OUT(1) <= NEW_DATA_IN; + DEBUG_OUT(2) <= start_cycle; + DEBUG_OUT(3) <= ts_reset_o; + DEBUG_OUT(4) <= testpulse_o_b; + DEBUG_OUT(5) <= testpulse; + DEBUG_OUT(6) <= self_trigger; + DEBUG_OUT(7) <= self_trigger_o; + DEBUG_OUT(8) <= self_trigger_busy; + DEBUG_OUT(9) <= TRIGGER_BUSY_IN; + DEBUG_OUT(15 downto 10) <= (others => '0'); + ----------------------------------------------------------------------------- -- Reset Domain Transfer ----------------------------------------------------------------------------- @@ -97,21 +114,6 @@ begin ----------------------------------------------------------------------------- - PROC_TEST_DEBUG: process(CLK_IN) - begin - if( rising_edge(CLK_IN) ) then - if (RESET_IN = '1') then - test_debug <= '0'; - else - if (TEST_IN = x"7f7f7f06" or TEST_IN = x"0000_0000") then - test_debug <= '0'; - else - test_debug <= '1'; - end if; - end if; - end if; - end process PROC_TEST_DEBUG; - -- Timer timer_1: timer generic map ( @@ -218,6 +220,64 @@ begin end if; end process PROC_CAL_RATES; + ----------------------------------------------------------------------------- + -- Self Trigger + ----------------------------------------------------------------------------- + + PROC_SELF_TRIGGER: process(CLK_IN) + variable frame_bits : std_logic_vector(3 downto 0); + begin + if( rising_edge(CLK_IN) ) then + if( RESET_IN = '1' ) then + self_trigger_ctr <= (others => '0'); + self_trigger_busy <= '0'; + self_trigger <= '0'; + else + frame_bits := TIMESTAMP_IN(31) & + TIMESTAMP_IN(23) & + TIMESTAMP_IN(15) & + TIMESTAMP_IN(7); + self_trigger <= '0'; + self_trigger_busy <= '0'; + + case ST_STATE is + when ST_IDLE => + if (TRIGGER_BUSY_IN = '0' and + NEW_DATA_IN = '1' and + frame_bits = "1000") then + self_trigger_ctr <= "10100"; -- 20 + self_trigger <= '1'; + ST_STATE <= ST_BUSY; + else + self_trigger_ctr <= (others => '0'); + ST_STATE <= ST_IDLE; + end if; + + when ST_BUSY => + if (self_trigger_ctr > 0) then + self_trigger_ctr <= self_trigger_ctr - 1; + self_trigger_busy <= '1'; + ST_STATE <= ST_BUSY; + else + ST_STATE <= ST_IDLE; + end if; + end case; + + end if; + end if; + end process PROC_SELF_TRIGGER; + + pulse_to_level_SELF_TRIGGER: pulse_to_level + generic map ( + NUM_CYCLES => 8 + ) + port map ( + CLK_IN => CLK_IN, + RESET_IN => RESET_IN, + PULSE_IN => self_trigger, + LEVEL_OUT => self_trigger_o + ); + ----------------------------------------------------------------------------- -- TRBNet Slave Bus ----------------------------------------------------------------------------- @@ -292,7 +352,8 @@ begin TRIGGER_OUT <= trigger_o; TS_RESET_OUT <= ts_reset_o; TESTPULSE_OUT <= testpulse_o_b; - + SELF_TRIGGER_OUT <= self_trigger_o; + -- Slave Bus SLV_DATA_OUT <= slv_data_out_o; SLV_NO_MORE_DATA_OUT <= slv_no_more_data_o; diff --git a/nxyter/source/nx_trigger_handler.vhd b/nxyter/source/nx_trigger_handler.vhd index 6c07459..a3a078d 100644 --- a/nxyter/source/nx_trigger_handler.vhd +++ b/nxyter/source/nx_trigger_handler.vhd @@ -400,8 +400,15 @@ begin case STATE is when S_IDLE => if (LVL1_VALID_NOTIMING_TRG_IN = '1') then - -- Calibration Trigger .. ignore - TRIGGER_TYPE <= T_IGNORE; --T_SETUP; + -- Calibration Trigger + if (LVL1_TRG_TYPE_IN = x"e") then + -- Status Trigger + TRIGGER_TYPE <= T_SETUP; + status_trigger_o <= '1'; + else + -- Something else, Ignore + TRIGGER_TYPE <= T_IGNORE; + end if; STATE <= S_WAIT_TRG_DATA_VALID; elsif (LVL1_VALID_TIMING_TRG_IN = '1') then @@ -437,7 +444,9 @@ begin end if; when S_WAIT_TIMING_TRIGGER_DONE => - if (TRIGGER_BUSY_0_IN = '1') then + if ((TRIGGER_TYPE = T_TIMING and TRIGGER_BUSY_0_IN = '1') or + (TRIGGER_TYPE = T_SETUP and TRIGGER_BUSY_1_IN = '1') + ) then STATE <= S_WAIT_TIMING_TRIGGER_DONE; else fee_data_finished_o <= '1'; diff --git a/nxyter/source/nx_trigger_validate.vhd b/nxyter/source/nx_trigger_validate.vhd index d9f8d5a..b18778e 100644 --- a/nxyter/source/nx_trigger_validate.vhd +++ b/nxyter/source/nx_trigger_validate.vhd @@ -7,7 +7,8 @@ use work.nxyter_components.all; entity nx_trigger_validate is generic ( - BOARD_ID : std_logic_vector(1 downto 0) := "11" + BOARD_ID : std_logic_vector(1 downto 0) := "11"; + VERSION_NUMBER : std_logic_vector(3 downto 0) := x"1" ); port ( CLK_IN : in std_logic; @@ -17,9 +18,9 @@ entity nx_trigger_validate is DATA_CLK_IN : in std_logic; TIMESTAMP_IN : in std_logic_vector(13 downto 0); CHANNEL_IN : in std_logic_vector(6 downto 0); - TIMESTAMP_STATUS_IN : in std_logic_vector(2 downto 0); -- 2: parity - ADC_DATA_IN : in std_logic_vector(11 downto 0); -- 1: pileup - NX_TOKEN_RETURN_IN : in std_logic; -- 0: ovfl + TIMESTAMP_STATUS_IN : in std_logic_vector(2 downto 0); -- 2: Parity Err + ADC_DATA_IN : in std_logic_vector(11 downto 0); -- 1: Pileup + NX_TOKEN_RETURN_IN : in std_logic; -- 0: Ovfl NX_NOMORE_DATA_IN : in std_logic; TRIGGER_IN : in std_logic; @@ -59,7 +60,7 @@ entity nx_trigger_validate is end entity; architecture Behavioral of nx_trigger_validate is - constant VERSION_NUMBER : std_logic_vector(3 downto 0) := x"1"; + constant S_PARITY : integer := 2; constant S_PILEUP : integer := 1; @@ -153,6 +154,7 @@ architecture Behavioral of nx_trigger_validate is signal out_of_window_error_ctr : unsigned(15 downto 0); signal readout_mode : std_logic_vector(3 downto 0); + signal timestamp_fpga_i : unsigned(11 downto 0); signal timestamp_fpga : unsigned(11 downto 0); signal timestamp_ref : unsigned(11 downto 0); signal busy_time_ctr_last : unsigned(11 downto 0); @@ -199,22 +201,22 @@ architecture Behavioral of nx_trigger_validate is begin -- Debug Line - DEBUG_OUT(0) <= CLK_IN; - DEBUG_OUT(1) <= TRIGGER_IN; - DEBUG_OUT(2) <= trigger_busy_o; - DEBUG_OUT(3) <= DATA_CLK_IN; - DEBUG_OUT(4) <= out_of_window_l; - DEBUG_OUT(5) <= out_of_window_h; - DEBUG_OUT(6) <= NX_TOKEN_RETURN_IN; - DEBUG_OUT(7) <= NX_NOMORE_DATA_IN; - DEBUG_OUT(8) <= channel_all_done; - DEBUG_OUT(9) <= store_to_fifo; - DEBUG_OUT(10) <= data_clk_o; - DEBUG_OUT(11) <= out_of_window_error or EVT_BUFFER_FULL_IN; - DEBUG_OUT(12) <= token_update; --TRIGGER_BUSY_IN; --wait_timer_done; - DEBUG_OUT(13) <= min_val_time_expired; - DEBUG_OUT(14) <= token_update; - DEBUG_OUT(15) <= nomore_data_o; + DEBUG_OUT(0) <= CLK_IN; + DEBUG_OUT(1) <= TRIGGER_IN; + DEBUG_OUT(2) <= trigger_busy_o; + DEBUG_OUT(3) <= DATA_CLK_IN; + DEBUG_OUT(4) <= out_of_window_l; + DEBUG_OUT(5) <= out_of_window_h; + DEBUG_OUT(6) <= NX_TOKEN_RETURN_IN; + DEBUG_OUT(7) <= NX_NOMORE_DATA_IN; + DEBUG_OUT(8) <= channel_all_done; + DEBUG_OUT(9) <= store_to_fifo; + DEBUG_OUT(10) <= data_clk_o; + DEBUG_OUT(11) <= out_of_window_error or EVT_BUFFER_FULL_IN; + DEBUG_OUT(12) <= TIMESTAMP_STATUS_IN(S_PARITY);-- token_update; --TRIGGER_BUSY_IN; --wait_timer_done; + DEBUG_OUT(13) <= min_val_time_expired; + DEBUG_OUT(14) <= token_update; + DEBUG_OUT(15) <= nomore_data_o; -- Timer timer_1: timer @@ -354,7 +356,7 @@ begin end if; end if; - --TS Window Disabled, always store data + -- TS Window Disabled, always store data if (readout_mode(2) = '1' or self_trigger_mode = '1') then store_data := '1'; @@ -526,6 +528,7 @@ begin variable min_validation_time : unsigned(19 downto 0); begin if( rising_edge(CLK_IN) ) then + timestamp_fpga_i <= TIMESTAMP_FPGA_IN; if (RESET_IN = '1' or FAST_CLEAR_IN = '1') then store_to_fifo <= '0'; trigger_busy_o <= '0'; @@ -644,9 +647,14 @@ begin if (wait_timer_done_ns = '0') then STATE <= S_WAIT_DATA; else - timestamp_fpga <= - TIMESTAMP_FPGA_IN + fpga_timestamp_offset; - timestamp_ref <= timestamp_fpga; + -- If Self-Trigger-Mode active set TS Ref to zero + if (self_trigger_mode = '1') then + timestamp_fpga <= (others => '0'); + else + timestamp_fpga <= + timestamp_fpga_i + fpga_timestamp_offset; + timestamp_ref <= timestamp_fpga; + end if; STATE <= S_WRITE_HEADER; end if; @@ -873,7 +881,11 @@ begin when x"0001" => slv_data_out_o(11 downto 0) <= std_logic_vector(ts_window_offset(11 downto 0)); - slv_data_out_o(31 downto 11) <= (others => '0'); + if (ts_window_offset(11) = '1') then + slv_data_out_o(31 downto 12) <= (others => '1'); + else + slv_data_out_o(31 downto 12) <= (others => '0'); + end if; slv_ack_o <= '1'; when x"0002" => @@ -1057,8 +1069,8 @@ begin slv_ack_o <= '1'; when x"0001" => - if ((signed(SLV_DATA_IN(11 downto 0)) > -1024) and - (signed(SLV_DATA_IN(11 downto 0)) < 1024)) then + if ((signed(SLV_DATA_IN(11 downto 0)) > -2048) and + (signed(SLV_DATA_IN(11 downto 0)) < 2048)) then ts_window_offset(11 downto 0) <= signed(SLV_DATA_IN(11 downto 0)); end if; diff --git a/nxyter/source/nxyter.pdf b/nxyter/source/nxyter.pdf index 9094a7ce465acc54cca1298c42c1f9cd28f0e62d..04fdedcd3a2feb97742e1413161ae0229e0e9f41 100644 GIT binary patch literal 204296 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 aa!D*J8lz#?a26Yc)g?4*)~RRbg#QB&^v)Xq literal 169390 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%0D3207ol0r&Q{dRSd;fk}t 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 '0'); + error_all(1) <= error_data_validate; + error_all(2) <= error_event_buffer; + error_all(7 downto 3) <= (others => '0'); ------------------------------------------------------------------------------- -- Port Maps @@ -249,7 +251,7 @@ begin generic map( PORT_NUMBER => NUM_PORTS, - PORT_ADDRESSES => ( 0 => x"0100", -- NX Control Handler + PORT_ADDRESSES => ( 0 => x"0100", -- NX Status Handler 1 => x"0040", -- I2C Master 2 => x"0500", -- Data Receiver 3 => x"0600", -- Data Buffer @@ -258,23 +260,23 @@ begin 6 => x"0120", -- Data Validate 7 => x"0160", -- Trigger Handler 8 => x"0400", -- Trigger Validate - 9 => x"0200", -- NX Setup + 9 => x"0200", -- NX Register Setup 10 => x"0800", -- NX Histograms 11 => x"0020", -- Debug Handler - 12 => x"0130", -- Data Delay + 12 => x"0180", -- Data Delay others => x"0000" ), - PORT_ADDR_MASK => ( 0 => 4, -- NX Control Handler + PORT_ADDR_MASK => ( 0 => 4, -- NX Status Handler 1 => 1, -- I2C master 2 => 5, -- Data Receiver 3 => 3, -- Data Buffer 4 => 0, -- SPI Master 5 => 3, -- Trigger Generator - 6 => 4, -- Data Validate + 6 => 5, -- Data Validate 7 => 4, -- Trigger Handler 8 => 5, -- Trigger Validate - 9 => 9, -- NX Setup + 9 => 9, -- NX Register Setup 10 => 10, -- NX Histograms 11 => 0, -- Debug Handler 12 => 2, -- Data Delay @@ -317,7 +319,7 @@ begin ------------------------------------------------------------------------------- -- Registers ------------------------------------------------------------------------------- - nx_control_1: nx_control + nx_status_1: nx_status port map ( CLK_IN => CLK_IN, RESET_IN => RESET_IN, @@ -325,12 +327,12 @@ begin PLL_NX_CLK_LOCK_IN => PLL_NX_CLK_LOCK_IN, PLL_ADC_DCLK_LOCK_IN => PLL_ADC_DCLK_LOCK_IN, PLL_ADC_SCLK_LOCK_IN => pll_sadc_clk_lock, + PLL_RESET_OUT => PLL_RESET_OUT, - I2C_SM_RESET_OUT => i2c_sm_reset_o, + I2C_SM_RESET_OUT => I2C_SM_RESET_OUT, I2C_REG_RESET_OUT => i2c_reg_reset_o, - NX_TS_RESET_OUT => nx_ts_reset_1, - I2C_ONLINE_IN => nxyter_online_i2c, - OFFLINE_OUT => nxyter_offline, + NX_TS_RESET_OUT => nx_timestamp_reset_1, + NX_ONLINE_OUT => nxyter_online, ERROR_ALL_IN => error_all, @@ -346,17 +348,17 @@ begin DEBUG_OUT => debug_line(0) ); - nx_setup_1: nx_setup + nx_register_setup_1: nx_register_setup port map ( CLK_IN => CLK_IN, RESET_IN => RESET_IN, + I2C_ONLINE_IN => nxyter_online, I2C_COMMAND_OUT => i2c_command, I2C_COMMAND_BUSY_IN => i2c_command_busy, I2C_DATA_IN => i2c_data, I2C_DATA_BYTES_IN => i2c_data_bytes, I2C_LOCK_OUT => i2c_lock, - I2C_ONLINE_OUT => nxyter_online_i2c, - I2C_REG_RESET_IN => i2c_reg_reset_o, + I2C_REG_RESET_IN => not i2c_reg_reset_o, SPI_COMMAND_OUT => spi_command, SPI_COMMAND_BUSY_IN => spi_command_busy, SPI_DATA_IN => spi_data, @@ -445,11 +447,11 @@ begin CLK_IN => CLK_IN, RESET_IN => RESET_IN, NX_MAIN_CLK_IN => CLK_NX_MAIN_IN, - TIMESTAMP_SYNC_IN => nx_ts_reset_o, + TIMESTAMP_RESET_IN => nx_timestamp_reset, + TIMESTAMP_RESET_OUT => nx_timestamp_reset_o, TRIGGER_IN => timestamp_trigger, TIMESTAMP_CURRENT_OUT => timestamp_current, TIMESTAMP_HOLD_OUT => timestamp_hold, - TIMESTAMP_SYNCED_OUT => nx_timestamp_sync, TIMESTAMP_TRIGGER_OUT => nx_timestamp_trigger_o, SLV_READ_IN => open, SLV_WRITE_IN => open, @@ -471,7 +473,7 @@ begin CLK_IN => CLK_IN, RESET_IN => RESET_IN, NX_MAIN_CLK_IN => CLK_NX_MAIN_IN, - NXYTER_OFFLINE_IN => nxyter_offline, + NXYTER_OFFLINE_IN => not nxyter_online, TIMING_TRIGGER_IN => TIMING_TRIGGER_IN, LVL1_TRG_DATA_VALID_IN => LVL1_TRG_DATA_VALID_IN, @@ -531,11 +533,18 @@ begin CLK_IN => CLK_IN, RESET_IN => RESET_IN, NX_MAIN_CLK_IN => CLK_NX_MAIN_IN, + + TRIGGER_BUSY_IN => trigger_busy, TRIGGER_IN => trigger_testpulse, TRIGGER_OUT => trigger_intern, - TS_RESET_OUT => nx_ts_reset_2, + TS_RESET_OUT => nx_timestamp_reset_2, TESTPULSE_OUT => nx_testpulse_o, - TEST_IN => new_timestamp, + + TIMESTAMP_IN => timestamp_recv, + ADC_DATA_IN => adc_data_recv, + NEW_DATA_IN => data_clk_recv, + SELF_TRIGGER_OUT => self_trigger, + SLV_READ_IN => slv_read(5), SLV_WRITE_IN => slv_write(5), SLV_DATA_OUT => slv_data_rd(5*32+31 downto 5*32), @@ -554,40 +563,39 @@ begin nx_data_receiver_1: nx_data_receiver port map ( - CLK_IN => CLK_IN, - RESET_IN => RESET_IN, - NX_DATA_CLK_TEST_IN => NX_DATA_CLK_TEST_IN, - TRIGGER_IN => trigger_timing, - - NX_TIMESTAMP_CLK_IN => NX_DATA_CLK_IN, - NX_TIMESTAMP_IN => NX_TIMESTAMP_IN, + CLK_IN => CLK_IN, + RESET_IN => RESET_IN, + NX_DATA_CLK_TEST_IN => NX_DATA_CLK_TEST_IN, + TRIGGER_IN => trigger_timing, + + NX_TIMESTAMP_CLK_IN => NX_DATA_CLK_IN, + NX_TIMESTAMP_IN => NX_TIMESTAMP_IN, + NX_TIMESTAMP_RESET_OUT => nx_timestamp_reset_3, - ADC_CLK_DAT_IN => CLK_ADC_IN, - ADC_FCLK_IN => ADC_FCLK_IN, - ADC_DCLK_IN => ADC_DCLK_IN, - ADC_SAMPLE_CLK_OUT => ADC_SAMPLE_CLK_OUT, - ADC_A_IN => ADC_A_IN, - ADC_B_IN => ADC_B_IN, - ADC_NX_IN => ADC_NX_IN, - ADC_D_IN => ADC_D_IN, - ADC_SCLK_LOCK_OUT => pll_sadc_clk_lock, - - NX_TIMESTAMP_OUT => new_timestamp, - ADC_DATA_OUT => new_adc_data, - NEW_DATA_OUT => new_data, - - TIMESTAMP_CURRENT_IN => timestamp_current, - - SLV_READ_IN => slv_read(2), - SLV_WRITE_IN => slv_write(2), - SLV_DATA_OUT => slv_data_rd(2*32+31 downto 2*32), - SLV_DATA_IN => slv_data_wr(2*32+31 downto 2*32), - SLV_ADDR_IN => slv_addr(2*16+15 downto 2*16), - SLV_ACK_OUT => slv_ack(2), - SLV_NO_MORE_DATA_OUT => slv_no_more_data(2), - SLV_UNKNOWN_ADDR_OUT => slv_unknown_addr(2), - ERROR_OUT => error_data_receiver, - DEBUG_OUT => debug_line(7) + ADC_CLK_DAT_IN => CLK_ADC_IN, + ADC_FCLK_IN => ADC_FCLK_IN, + ADC_DCLK_IN => ADC_DCLK_IN, + ADC_SAMPLE_CLK_OUT => ADC_SAMPLE_CLK_OUT, + ADC_A_IN => ADC_A_IN, + ADC_B_IN => ADC_B_IN, + ADC_NX_IN => ADC_NX_IN, + ADC_D_IN => ADC_D_IN, + ADC_SCLK_LOCK_OUT => pll_sadc_clk_lock, + + NX_TIMESTAMP_OUT => timestamp_recv, + ADC_DATA_OUT => adc_data_recv, + NEW_DATA_OUT => data_clk_recv, + + SLV_READ_IN => slv_read(2), + SLV_WRITE_IN => slv_write(2), + SLV_DATA_OUT => slv_data_rd(2*32+31 downto 2*32), + SLV_DATA_IN => slv_data_wr(2*32+31 downto 2*32), + SLV_ADDR_IN => slv_addr(2*16+15 downto 2*16), + SLV_ACK_OUT => slv_ack(2), + SLV_NO_MORE_DATA_OUT => slv_no_more_data(2), + SLV_UNKNOWN_ADDR_OUT => slv_unknown_addr(2), + ERROR_OUT => error_data_receiver, + DEBUG_OUT => debug_line(7) ); ------------------------------------------------------------------------------- @@ -598,13 +606,15 @@ begin CLK_IN => CLK_IN, RESET_IN => RESET_IN, - NX_FRAME_IN => new_timestamp, - ADC_DATA_IN => new_adc_data, - NEW_DATA_IN => new_data, - NX_FRAME_OUT => new_timestamp_delayed, - ADC_DATA_OUT => new_adc_data_delayed, - NEW_DATA_OUT => new_data_delayed, - FIFO_DELAY_IN => new_data_fifo_delay, + NX_FRAME_IN => timestamp_recv, + ADC_DATA_IN => adc_data_recv, + NEW_DATA_IN => data_clk_recv, + + NX_FRAME_OUT => timestamp_delayed, + ADC_DATA_OUT => adc_data_delayed, + NEW_DATA_OUT => data_clk_delayed, + + FIFO_DELAY_IN => data_fifo_delay, SLV_READ_IN => slv_read(12), SLV_WRITE_IN => slv_write(12), @@ -627,16 +637,15 @@ begin CLK_IN => CLK_IN, RESET_IN => RESET_IN, - NX_TIMESTAMP_IN => new_timestamp_delayed, - ADC_DATA_IN => new_adc_data_delayed, - NEW_DATA_IN => new_data_delayed, + NX_TIMESTAMP_IN => timestamp_delayed, + ADC_DATA_IN => adc_data_delayed, + DATA_CLK_IN => data_clk_delayed, TIMESTAMP_OUT => timestamp, CHANNEL_OUT => timestamp_channel_id, TIMESTAMP_STATUS_OUT => timestamp_status, ADC_DATA_OUT => adc_data, - DATA_VALID_OUT => data_valid, - SELF_TRIGGER_OUT => self_trigger, + DATA_CLK_OUT => data_clk, NX_TOKEN_RETURN_OUT => nx_token_return, NX_NOMORE_DATA_OUT => nx_nomore_data, @@ -650,6 +659,7 @@ begin SLV_NO_MORE_DATA_OUT => slv_no_more_data(6), SLV_UNKNOWN_ADDR_OUT => slv_unknown_addr(6), + ERROR_OUT => error_data_validate, DEBUG_OUT => debug_line(9) ); @@ -659,13 +669,14 @@ begin nx_trigger_validate_1: nx_trigger_validate generic map ( - BOARD_ID => BOARD_ID + BOARD_ID => BOARD_ID, + VERSION_NUMBER => VERSION_NUMBER ) port map ( CLK_IN => CLK_IN, RESET_IN => RESET_IN, - DATA_CLK_IN => data_valid, + DATA_CLK_IN => data_clk, TIMESTAMP_IN => timestamp, CHANNEL_IN => timestamp_channel_id, TIMESTAMP_STATUS_IN => timestamp_status, @@ -678,7 +689,7 @@ begin FAST_CLEAR_IN => fast_clear, TRIGGER_BUSY_OUT => trigger_validate_busy, TIMESTAMP_FPGA_IN => timestamp_hold, - DATA_FIFO_DELAY_OUT => new_data_fifo_delay, + DATA_FIFO_DELAY_OUT => data_fifo_delay, DATA_OUT => trigger_data, DATA_CLK_OUT => trigger_data_clk, @@ -710,13 +721,13 @@ begin nx_event_buffer_1: nx_event_buffer generic map ( - BOARD_ID => BOARD_ID + BOARD_ID => BOARD_ID ) port map ( CLK_IN => CLK_IN, RESET_IN => RESET_IN, RESET_DATA_BUFFER_IN => event_buffer_clear, - NXYTER_OFFLINE_IN => nxyter_offline, + NXYTER_OFFLINE_IN => not nxyter_online, DATA_IN => trigger_data, DATA_CLK_IN => trigger_data_clk, @@ -746,12 +757,13 @@ begin nx_status_event_1: nx_status_event generic map ( - BOARD_ID => BOARD_ID + BOARD_ID => BOARD_ID, + VERSION_NUMBER => VERSION_NUMBER ) port map ( CLK_IN => CLK_IN, RESET_IN => RESET_IN, - NXYTER_OFFLINE_IN => nxyter_offline, + NXYTER_OFFLINE_IN => not nxyter_online, TRIGGER_IN => trigger_status, FAST_CLEAR_IN => fast_clear, TRIGGER_BUSY_OUT => trigger_evt_busy_1, @@ -792,16 +804,17 @@ begin ------------------------------------------------------------------------------- -- nXyter Signals ------------------------------------------------------------------------------- - nx_ts_reset_o <= nx_ts_reset_1 or nx_ts_reset_2; - NX_RESET_OUT <= not nx_ts_reset_o; - NX_TESTPULSE_OUT <= nx_testpulse_o; + nx_timestamp_reset <= nx_timestamp_reset_1 or + nx_timestamp_reset_2 or + nx_timestamp_reset_3; + NX_RESET_OUT <= not nx_timestamp_reset_o; + NX_TESTPULSE_OUT <= nx_testpulse_o; ------------------------------------------------------------------------------- -- I2C Signals ------------------------------------------------------------------------------- - I2C_SM_RESET_OUT <= not i2c_sm_reset_o; - I2C_REG_RESET_OUT <= not i2c_reg_reset_o; + I2C_REG_RESET_OUT <= i2c_reg_reset_o; ------------------------------------------------------------------------------- -- Others diff --git a/nxyter/source/registers.txt b/nxyter/source/registers.txt index 377dfc3..e0ab33e 100644 --- a/nxyter/source/registers.txt +++ b/nxyter/source/registers.txt @@ -95,10 +95,10 @@ 0x8125 : r Frame Rate (in Hz) -- NX Data Delay -0x8130 : r FIFO Delay, i.e. Trigger Delay (8 Bit, in 32ns). +0x8180 : r FIFO Delay, i.e. Trigger Delay (8 Bit, in 32ns). Calculation is based on CTS Trigger Delay (see NX Trigger Validate) -0x8131 : r/w Debug Multiplexer (0=Dta Delay, 1=FIFO) +0x8181 : r/w Debug Multiplexer (0=Data Delay, 1=FIFO) -- NX Trigger Validate 0x8400 : r/w Readout Mode: 4 Bits @@ -190,8 +190,8 @@ -- Debug Multiplexer 0x8020 : r/w Select Debug Entity - 0: nx_control - 1: nx_setup + 0: nx_status + 1: nx_register_setup 2: nx_i2c_master 3: adc_spi_master 4: nx_fpga_timestamp diff --git a/nxyter/trb3_periph.p2t b/nxyter/trb3_periph.p2t index 995161f..dcd85bb 100644 --- a/nxyter/trb3_periph.p2t +++ b/nxyter/trb3_periph.p2t @@ -4,7 +4,7 @@ -n 1 -y -s 12 --t 11 +-t 26 -c 1 -e 2 -m nodelist.txt diff --git a/nxyter/trb3_periph.prj b/nxyter/trb3_periph.prj index ef169a4..5bf3ac0 100644 --- a/nxyter/trb3_periph.prj +++ b/nxyter/trb3_periph.prj @@ -179,8 +179,8 @@ add_file -vhdl -lib "work" "source/nx_trigger_validate.vhd" add_file -vhdl -lib "work" "source/nx_event_buffer.vhd" add_file -vhdl -lib "work" "source/nx_status_event.vhd" -add_file -vhdl -lib "work" "source/nx_control.vhd" -add_file -vhdl -lib "work" "source/nx_setup.vhd" +add_file -vhdl -lib "work" "source/nx_status.vhd" +add_file -vhdl -lib "work" "source/nx_register_setup.vhd" add_file -vhdl -lib "work" "source/nx_histogram.vhd" add_file -vhdl -lib "work" "source/nx_histograms.vhd" diff --git a/nxyter/trb3_periph_constraints.lpf b/nxyter/trb3_periph_constraints.lpf index 6d5bdba..e499849 100644 --- a/nxyter/trb3_periph_constraints.lpf +++ b/nxyter/trb3_periph_constraints.lpf @@ -39,8 +39,8 @@ BLOCK RD_DURING_WR_PATHS ; USE PRIMARY NET "clk_100_i_c"; USE PRIMARY NET "CLK_PCLK_RIGHT_c"; - USE PRIMARY2EDGE NET "clk_adc_dat_1"; - #USE PRIMARY2EDGE NET "clk_adc_dat_2"; + USE PRIMARY2EDGE NET "nx1_clk_adc_dat"; + #USE PRIMARY2EDGE NET "nx2_clk_adc_dat"; ################################################################# # Reset Nets @@ -64,9 +64,10 @@ MULTICYCLE FROM CELL "THE_RESET_HANDLER/final_reset*" MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_data_receiver_*/adc_reset*" 30 ns; MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_data_receiver_*/signal_async_trans_RESET_IN/*" 30 ns; MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_fpga_timestamp_*/signal_async_trans_RESET_IN/*" 30 ns; +MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_data_receiver_*/nx_timestamp_reset_o" 10 ns; MULTICYCLE TO CELL "nXyter_FEE_board_*/nx_trigger_handler_*/signal_async_trans_TRIGGER_BUSY*" 20 ns; -MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_control_*/nx_ts_reset_o" 10 ns; +MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_status_*/nx_ts_reset_o" 10 ns; MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_fpga_timestamp_*/timestamp_hold_o_*" 10 ns; MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_trigger_handler_*/fast_clear_o" 20 ns; @@ -79,7 +80,7 @@ MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_trigger_validate_*/ts_window_offset_ MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_trigger_validate_*/ts_window_width_*" 100 ns; MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_trigger_validate_*/readout_time_max_*" 100 ns; MULTICYCLE FROM CELL "nXyter_FEE_board_*/nx_trigger_validate_*/fpga_timestamp_offset_*" 100 ns; -MULTICYCLE FROM CELL "nXyter_FEE_board_*.nx_event_buffer_*.fifo_almost_full_thr" 100 ns; +MULTICYCLE FROM CELL "nXyter_FEE_board_*.nx_event_buffer_*.fifo_almost_full_thr_*" 100 ns; BLOCK NET "nXyter_FEE_board_*/nx_data_receiver_*/adc_ad9228_*/fifo_adc_48to48_dc_*/r_gcount*"; diff --git a/nxyter/trb3_periph_nx1.vhd b/nxyter/trb3_periph_nx1.vhd index d834f28..e2f3cbb 100644 --- a/nxyter/trb3_periph_nx1.vhd +++ b/nxyter/trb3_periph_nx1.vhd @@ -44,7 +44,7 @@ entity trb3_periph is NX1_RESET_OUT : out std_logic; NX1_I2C_SDA_INOUT : inout std_logic; NX1_I2C_SCL_INOUT : inout std_logic; - NX1_I2C_SM_RESET_OUT : out std_logic; + NX1_I2C_SM_RESET_OUT : inout std_logic; NX1_I2C_REG_RESET_OUT : out std_logic; NX1_SPI_SCLK_OUT : out std_logic; NX1_SPI_SDIO_INOUT : inout std_logic; @@ -253,14 +253,15 @@ architecture trb3_periph_arch of trb3_periph is signal time_counter : unsigned(31 downto 0); -- nXyter-FEB-Board Clocks - signal nx_main_clk : std_logic; - signal nx_data_clk_test : std_logic; - signal pll_nx_clk_lock : std_logic; - signal clk_adc_dat_1 : std_logic; - signal pll_adc_clk_lock_1 : std_logic; - - signal nx1_adc_sample_clk : std_logic; + signal nx_main_clk : std_logic; + signal nx_pll_clk_lock : std_logic; + signal nx_data_clk_test : std_logic; + signal nx_pll_reset : std_logic; + signal nx1_clk_adc_dat : std_logic; + signal nx1_pll_adc_clk_lock : std_logic; + signal nx1_adc_sample_clk : std_logic; + -- nXyter 1 Regio Bus signal nx1_regio_addr_in : std_logic_vector (15 downto 0); signal nx1_regio_data_in : std_logic_vector (31 downto 0); @@ -630,11 +631,12 @@ begin CLK_IN => clk_100_i, RESET_IN => reset_i, CLK_NX_MAIN_IN => nx_main_clk, - CLK_ADC_IN => clk_adc_dat_1, - PLL_NX_CLK_LOCK_IN => pll_nx_clk_lock, - PLL_ADC_DCLK_LOCK_IN => pll_adc_clk_lock_1, + CLK_ADC_IN => nx1_clk_adc_dat, + PLL_NX_CLK_LOCK_IN => nx_pll_clk_lock, + PLL_ADC_DCLK_LOCK_IN => nx1_pll_adc_clk_lock, NX_DATA_CLK_TEST_IN => nx_data_clk_test, - + PLL_RESET_OUT => nx_pll_reset, + TRIGGER_OUT => fee1_trigger, I2C_SDA_INOUT => NX1_I2C_SDA_INOUT, @@ -710,9 +712,10 @@ begin pll_nx_clk250_1: entity work.pll_nx_clk250 port map ( CLK => CLK_PCLK_RIGHT, + RESET => nx_pll_reset, CLKOP => nx_main_clk, CLKOK => nx_data_clk_test, - LOCK => pll_nx_clk_lock + LOCK => nx_pll_clk_lock ); -- Port FF for Nxyter Main Clocks @@ -731,8 +734,9 @@ begin pll_adc_clk_1: pll_adc_clk port map ( CLK => CLK_PCLK_RIGHT, - CLKOP => clk_adc_dat_1, - LOCK => pll_adc_clk_lock_1 + RESET => nx_pll_reset, + CLKOP => nx1_clk_adc_dat, + LOCK => nx1_pll_adc_clk_lock ); end architecture; diff --git a/nxyter/trb3_periph_nxyter.lpf b/nxyter/trb3_periph_nxyter.lpf index 01d67a5..c645d2d 100644 --- a/nxyter/trb3_periph_nxyter.lpf +++ b/nxyter/trb3_periph_nxyter.lpf @@ -150,14 +150,14 @@ IOBUF PORT "NX1_TESTPULSE_OUT" IO_TYPE=LVDS25; IOBUF PORT "NX1_MAIN_CLK_OUT" IO_TYPE=LVDS25; IOBUF PORT "NX1_RESET_OUT" IO_TYPE=LVDS25; -IOBUF PORT "NX1_I2C_SM_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=NONE; -IOBUF PORT "NX1_I2C_REG_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=NONE; +IOBUF PORT "NX1_I2C_SM_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=DOWN; +IOBUF PORT "NX1_I2C_REG_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=UP; IOBUF PORT "NX1_I2C_SDA_INOUT" IO_TYPE=LVCMOS25 PULLMODE=UP; IOBUF PORT "NX1_I2C_SCL_INOUT" IO_TYPE=LVCMOS25 PULLMODE=UP; IOBUF PORT "NX1_SPI_SDIO_INOUT" IO_TYPE=LVCMOS25 PULLMODE=DOWN DRIVE=4; IOBUF PORT "NX1_SPI_SCLK_OUT" IO_TYPE=LVCMOS25 PULLMODE=DOWN DRIVE=4; -IOBUF PORT "NX1_SPI_CSB_OUT" IO_TYPE=LVCMOS25 PULLMODE=UP DRIVE=4; +IOBUF PORT "NX1_SPI_CSB_OUT" IO_TYPE=LVCMOS25 PULLMODE=UP DRIVE=4; @@ -223,8 +223,8 @@ IOBUF PORT "NX1_SPI_CSB_OUT" IO_TYPE=LVCMOS25 PULLMODE=UP DRIVE=4; #IOBUF PORT "NX2_MAIN_CLK_OUT" IO_TYPE=LVDS25; #IOBUF PORT "NX2_RESET_OUT" IO_TYPE=LVDS25; # -#IOBUF PORT "NX2_I2C_SM_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=NONE; -#IOBUF PORT "NX2_I2C_REG_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=NONE; +#IOBUF PORT "NX2_I2C_SM_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=DOWN; +#IOBUF PORT "NX2_I2C_REG_RESET_OUT" IO_TYPE=LVCMOS25 PULLMODE=UP; #IOBUF PORT "NX2_I2C_SDA_INOUT" IO_TYPE=LVCMOS25 PULLMODE=UP; #IOBUF PORT "NX2_I2C_SCL_INOUT" IO_TYPE=LVCMOS25 PULLMODE=UP; # -- 2.43.0