1 ----------------------------------------------------------------------------------
8 ----------------------------------------------------------------------------------
10 use IEEE.STD_LOGIC_1164.
ALL;
16 -- Uncomment the following library declaration if using
17 -- arithmetic functions with Signed or Unsigned values
20 -- Uncomment the following library declaration if instantiating
21 -- any Xilinx primitives in this code.
23 --use UNISIM.VComponents.all;
28 ODATA : out ((numbitsinchan*4)-1 downto 0);
34 end BUF_2X24_AT_80_TO_1X96_AT_40;
44 signal P_temp_reg : (numbitsinchan -1 downto 0);
-- holds
55 signal N_temp_reg : (numbitsinchan -1 downto 0);
--same for
58 --signal P_temp_reg1,N_temp_reg1 : std_logic_vector(numbitsinchan -1 downto 0);
67 --1 set of 24 bits (rising 40MHz
70 -- -- signal PDATA_msb0, NDATA_msb0 : std_logic_vector(numbitsinchan-1 downto 0);
71 -- -- --PDATA_reg_msb0, NDATA_reg_msb0 : std_logic_vector(numbitsinchan-1 downto 0);
72 -- -- -- corresponding signals
73 -- -- -- with the msb set to 0
74 -- -- -- for parity calculation
76 --attribute keep of P_temp_reg1, N_temp_reg1,
81 DATA :
in (numbitsinchan
- 1 downto 0);
87 --PDATA_24(23 downto (23-(numbitsinchan-1))) <= PDATA;
88 --NDATA_24(23 downto (23-(numbitsinchan-1))) <= NDATA;
89 --genZEROS: if numbitsinchan<24 generate
90 -- PDATA_24(23-(numbitsinchan-1)-1 downto 0) <= (others=>'0');
91 -- NDATA_24(23-(numbitsinchan-1)-1 downto 0) <= (others=>'0');
92 --end generate genZEROS;
94 --- ---PDATA_msb0(numbitsinchan-2 downto 0)<=PDATA(numbitsinchan-2 downto 0);
95 --- ---PDATA_msb0(numbitsinchan-1)<='0';
96 --- ---NDATA_msb0(numbitsinchan-2 downto 0)<=NDATA(numbitsinchan-2 downto 0);
97 --- ---NDATA_msb0(numbitsinchan-1)<='0';
99 --PDATA_reg_msb0(numbitsinchan-2 downto 0)<=PDATA_reg(numbitsinchan-2 downto 0);
100 --PDATA_reg_msb0(numbitsinchan-1)<='0';
101 --NDATA_reg_msb0(numbitsinchan-2 downto 0)<=NDATA_reg(numbitsinchan-2 downto 0);
102 --NDATA_reg_msb0(numbitsinchan-1)<='0';
117 if rising_edge(clk80) then
119 ODATA<=(others=>'0');
136 --P_temp_reg1<=PDATA;
137 --N_temp_reg1<=NDATA;
139 -- reversed order --ODATA( (4*numbitsinchan-1) downto (3*numbitsinchan)) <= P_temp_reg;
140 -- reversed order --ODATA( (3*numbitsinchan)-1 downto (2*numbitsinchan)) <= N_temp_reg;
141 -- reversed order --ODATA( (2*numbitsinchan)-1 downto (1*numbitsinchan)) <=PDATA;
142 -- reversed order --ODATA( (1*numbitsinchan)-1 downto (0*numbitsinchan)) <=NDATA;
144 ODATA( (4*numbitsinchan-1) downto (3*numbitsinchan)) <= NDATA;
145 ODATA( (3*numbitsinchan)-1 downto (2*numbitsinchan)) <= PDATA;
out ODATA_first_halfstd_logic_vector ((numbitsinchan * 2) - 1 downto 0)
std_logic_vector (numbitsinchan - 1 downto 0) N_temp_reg
std_logic_vector (numbitsinchan - 1 downto 0) P_temp_reg
in DATAstd_logic_vector (numbitsinchan - 1 downto 0)
in PDATAstd_logic_vector (numbitsinchan - 1 downto 0)
std_logic_vector (23 downto 0) PDATA_24
std_logic parN_odd_err_reg
in counter_enablestd_logic
out ODATAstd_logic_vector ((numbitsinchan * 4) - 1 downto 0)
std_logic parP_odd_err_reg
std_logic_vector (23 downto 0) NDATA_24
in cyclecounterunsigned (0 downto 0)
in NDATAstd_logic_vector (numbitsinchan - 1 downto 0)