12 USE ieee.std_logic_1164.
ALL;
13 USE ieee.std_logic_unsigned.
all;
14 USE ieee.numeric_std.
ALL;
15 use ieee.std_logic_textio.
all;
31 -- Component Declaration for the Unit Under Test (UUT)
64 variable temp: (inp'range) := (others => 'X');
66 for i in inp'range loop
67 if (inp(i) = '1') then
69 elsif (inp(i) = '0') then
76 ---------------------------------------------------------------------------
77 -- Function INT2SLV converts an integer to a std_logic_vector
78 ---------------------------------------------------------------------------
84 variable result: (size-1 downto 0);
89 for i in 0 to size-1 loop
90 if (temp mod 2) = 1 then
98 elsif (temp > 'low) then
99 temp := (temp - 1) / 2;
-- simulate ASR
101 temp := temp / 2;
-- simulate ASR
108 ---------------------------------------------------------------------------
109 -- Function INT2SLV16 converts an integer to a 16 bit std_logic_vector
110 ---------------------------------------------------------------------------
129 -- Clock period definitions.
130 -- Note: periods must be even multiples of 1 ps to make ISE happy
137 FILE ctp_out: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/testctp.txt";
138 FILE data_jem0: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test0.txt";
139 FILE data_jem1: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test1.txt";
140 FILE data_jem2: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test2.txt";
141 FILE data_jem3: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test3.txt";
142 FILE data_jem4: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test4.txt";
143 FILE data_jem5: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test5.txt";
144 FILE data_jem6: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test6.txt";
145 FILE data_jem7: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test7.txt";
146 FILE data_jem8: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test8.txt";
147 FILE data_jem9: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test9.txt";
148 FILE data_jem10: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test10.txt";
149 FILE data_jem11: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test11.txt";
150 FILE data_jem12: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test12.txt";
151 FILE data_jem13: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test13.txt";
152 FILE data_jem14: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test14.txt";
153 FILE data_jem15: TEXT
open READ_MODE
is "../../Jet_common/trunk/data/test15.txt";
155 -- FILE ctp_out: TEXT open READ_MODE is "data/testctp.txt";
156 -- FILE data_jem0: TEXT open READ_MODE is "data/test0.txt";
157 -- FILE data_jem1: TEXT open READ_MODE is "data/test1.txt";
158 -- FILE data_jem2: TEXT open READ_MODE is "data/test2.txt";
159 -- FILE data_jem3: TEXT open READ_MODE is "data/test3.txt";
160 -- FILE data_jem4: TEXT open READ_MODE is "data/test4.txt";
161 -- FILE data_jem5: TEXT open READ_MODE is "data/test5.txt";
162 -- FILE data_jem6: TEXT open READ_MODE is "data/test6.txt";
163 -- FILE data_jem7: TEXT open READ_MODE is "data/test7.txt";
164 -- FILE data_jem8: TEXT open READ_MODE is "data/test8.txt";
165 -- FILE data_jem9: TEXT open READ_MODE is "data/test9.txt";
166 -- FILE data_jem10: TEXT open READ_MODE is "data/test10.txt";
167 -- FILE data_jem11: TEXT open READ_MODE is "data/test11.txt";
168 -- FILE data_jem12: TEXT open READ_MODE is "data/test12.txt";
169 -- FILE data_jem13: TEXT open READ_MODE is "data/test13.txt";
170 -- FILE data_jem14: TEXT open READ_MODE is "data/test14.txt";
171 -- FILE data_jem15: TEXT open READ_MODE is "data/test15.txt";
175 -- SHARED VARIABLE trigsave : LINE;
177 -- Clock and zero definitions
182 signal zeros : (15 downto 0) := (others => '0');
184 -- Other important signals
186 signal P : mat_var (numactchan-1 downto 0):=(others => (others => '0'));
190 signal ctp_error : ;
-- Mismatch between CTP output and input
191 constant ctp_delay : := 10;
-- delay between input and CTP output
197 ----------------------------------------------------------------------------
198 -- VME-- backplane (65 signals)
199 ----------------------------------------------------------------------------
200 --GEOADDR0: in std_logic; -- GeoAddr0
202 --VMEADDR: in std_logic_vector(23 downto 1); -- Address bus
226 --VMEDS_L: in std_logic; -- DS strobe VMEDS_L
228 --VMEWR_L: in std_logic; -- VME Write VMEWR_L
230 --VMERST_L: in std_logic; -- System reset VMERST_L
232 --VMEDATA: inout std_logic_vector(15 downto 0); -- Data bus VMEDATA
233 OCB_D:
inout (
15 downto 0);
234 ----------------------------------------------------------------------------
639 --CLK_40MHz08_DSKW_2_BF_LOGIC_DIR : in std_logic;
640 --CLK_40MHz08_DSKW_2_BF_LOGIC_CMP : in std_logic;
645 --CLK_320MHz64_LHC_BF_LOGIC_DIR : in std_logic;
646 --CLK_320MHz64_LHC_BF_LOGIC_CMP : in std_logic;
861 --011 1000 0000 0010 1011 0001
873 -- Instantiate the Unit Under Test (UUT)
875 ----------------------------------------------------------------------------
876 -- VME-- backplane (65 signals)
877 ----------------------------------------------------------------------------
906 ----------------------------------------------------------------------------
1532 -- Clock process definitions
1544 -- Clock process definitions
1556 -- Clock process definitions
1576 clock_gen: for i in 0 to 15 generate
1577 P(i)<= clk80 & "ZZZZZZZZZZZZZZZZZZZZZZZZ";
1580 --strobe for vme the fixed vme write so reset is '0'
1581 zeros<=(others=>'0');
1590 OCB_D<=(others=>'0');
1598 OCB_D<=(others=>'0');
1606 OCB_D<=(to_unsigned(7,16));
1614 OCB_D<=(to_unsigned(350,16));
1689 type mystring
is array(15 downto 0) of (24 downto 1);
--always counts from one
1693 for i in 0 to 15 loop -- Blank backplane data
1694 P(i) <= 'Z' & "100000000000000000000000";
1697 WAIT until (clk160_CMP'event and clk160='1');
-- Synchronize with backplane timing
1698 while not endfile (data_jem0) loop -- assume all files have equal length
1699 -- Read lines from input files:
1716 -- Extract data strings from the lines
1733 -- Finally, enter the extracted data into the backplane inputs
1734 for i in 0 to 15 loop
1739 for i in 0 to 15 loop -- Blank backplane data
1740 P(i) <= 'Z' & "100000000000000000000000";
1743 wait;
-- Wait forever
1744 end process JEM_INPUTS;
-- end of input stimulus process;
1746 -- invert the (already inverted) CTP output for convenience sake
1750 "000111111111111111111111111111111000111111111111111111111111111111");
1754 VARIABLE fileline_ctp : LINE;
1755 VARIABLE ctpstring : (32 downto 1);
1763 while not endfile (ctp_out) loop -- assume all files have equal length
1764 readline(ctp_out,fileline_ctp);
1765 read (fileline_ctp, ctpstring);
1767 readline(ctp_out,fileline_ctp);
1768 read (fileline_ctp, ctpstring);
1777 -- build the reference vector
1796 -- PROCESS -- clock process for USR_CLK
1799 -- CLOCK_LOOP : LOOP
1801 -- WAIT FOR (PERIOD_USR_CLK - (PERIOD_USR_CLK * DUTY_CYCLE));
1803 -- WAIT FOR (PERIOD_USR_CLK * DUTY_CYCLE);
1804 -- END LOOP CLOCK_LOOP;
1808 -- -- Trigger Output
1812 -- if (USR_CLK='1' AND USR_CLK'EVENT) then
1813 -- if TRG_OUT='1' then
1814 -- write(trigsave, HT); -- put the tab
1815 -- write(trigsave,slv2int(EDEP(0,1)));
1816 -- writeline(data_trig_out,trigsave);
1819 -- END PROCESS tb_trigout;
out BF_DOUT_CTP_41std_logic
out BF_DOUT_CTP_01std_logic
out BF_TO_FROM_BSPT_2std_logic
time :=6.238 ns CLK160_period
out BF_DAQ_DATA_OUT_CMPstd_logic
in CLK_120MHz000_XTAL_1_BF_TRNCV_DIRstd_logic
in BF_TO_TP_ROI_SLINK_RETURN_CMPstd_logic
out BF_TO_FROM_BSPT_3std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test15.txt" data_jem15
out BF_LED_REQ_4std_logic
in BF_TO_FROM_BSPT_0std_logic
out BF_DOUT_CTP_61std_logic
out BF_DOUT_CTP_34std_logic
out BF_DOUT_CTP_32std_logic
out BF_TO_FROM_BSPT_6std_logic
std_logic_vector INT2SLV16val,
out BF_LED_REQ_1std_logic
out BF_DOUT_CTP_21std_logic
out BF_DOUT_CTP_46std_logic
out BF_DOUT_CTP_04std_logic
out BF_DOUT_CTP_65std_logic
out BF_DOUT_CTP_55std_logic
out BF_DOUT_CTP_19std_logic
out BF_DOUT_CTP_14std_logic
out BF_DOUT_CTP_47std_logic
time :=12.476 ns CLK80_period
out BF_LED_REQ_2std_logic
in BF_TO_TP_DAQ_SLINK_RETURN_DIRstd_logic
out BF_LED_REQ_0std_logic
out BF_DOUT_CTP_00std_logic
out BF_DOUT_CTP_49std_logic
out BF_DOUT_CTP_64std_logic
out BF_ROI_DATA_OUT_DIRstd_logic
out BF_DOUT_CTP_05std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test14.txt" data_jem14
out BF_DOUT_CTP_50std_logic
out BF_DOUT_CTP_57std_logic
out BF_DOUT_CTP_42std_logic
std_logic_vector (31 downto 0) ctpvec_low
std_logic :='0' CLK_120MHz000_XTAL_1_BF_TRNCV_DIR
out BF_DOUT_CTP_51std_logic
out BF_DOUT_CTP_54std_logic
in BF_TO_FROM_BSPT_1std_logic
out BF_DOUT_CTP_45std_logic
time :=8.334 ns CLK120_period
out BF_DOUT_CTP_60std_logic
out BF_DOUT_CTP_07std_logic
out BF_TO_FROM_BSPT_5std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test9.txt" data_jem9
TEXT open READ_MODE is "../../Jet_common/trunk/data/test3.txt" data_jem3
out BF_DOUT_CTP_17std_logic
out BF_DOUT_CTP_31std_logic
out BF_DOUT_CTP_38std_logic
out BF_DOUT_CTP_37std_logic
out BF_DOUT_CTP_29std_logic
out BF_REQ_CABLE_3_INPUTstd_logic
out BF_DOUT_CTP_35std_logic
out BF_DOUT_CTP_26std_logic
out BF_DOUT_CTP_39std_logic
out BF_DOUT_CTP_23std_logic
out BF_DOUT_CTP_16std_logic
std_logic_vector str_to_stdvecinp,
std_logic :='0' CLK40_DIR
out BF_DOUT_CTP_28std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test7.txt" data_jem7
TEXT open READ_MODE is "../../Jet_common/trunk/data/test4.txt" data_jem4
out BF_DOUT_CTP_24std_logic
in BF_TO_TP_DAQ_SLINK_RETURN_CMPstd_logic
out BF_DOUT_CTP_53std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test5.txt" data_jem5
TEXT open READ_MODE is "../../Jet_common/trunk/data/test10.txt" data_jem10
out BF_REQ_CABLE_1_INPUTstd_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/testctp.txt" ctp_out
in CLK_120MHz000_XTAL_1_BF_TRNCV_CMPstd_logic
out BF_DOUT_CTP_18std_logic
out BF_DOUT_CTP_06std_logic
out BF_DOUT_CTP_27std_logic
out BF_DOUT_CTP_43std_logic
mat_var (numactchan - 1 downto 0) :=( others =>( others =>'0' ) ) P
time :=24.952 ns CLK40_DIR_period
TEXT open READ_MODE is "../../Jet_common/trunk/data/test2.txt" data_jem2
out BF_DOUT_CTP_58std_logic
out BF_DOUT_CTP_10std_logic
in OCB_SYS_RESET_Bstd_logic
out BF_DOUT_CTP_03std_logic
in BUF_TTC_BNCH_CNT_RESstd_logic
out BF_REQ_CTP_1_INPUTstd_logic
out BF_LED_REQ_3std_logic
std_logic :='0' CLK_120MHz000_XTAL_1_BF_TRNCV_CMP
out BF_TO_FROM_BSPT_7std_logic
out BF_DOUT_CTP_25std_logic
std_logic_vector (31 downto 0) ctpvec_high
std_logic BUF_TTC_BNCH_CNT_RES
std_logic_vector (23 downto 0) OCB_A
out BF_DOUT_CTP_20std_logic
std_logic_vector INT2SLVval,size,
out BF_DOUT_CTP_30std_logic
std_logic_vector (15 downto 0) OCB_D
in BUF_TTC_L1_ACCEPTstd_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test0.txt" data_jem0
out BF_DAQ_DATA_OUT_DIRstd_logic
out BF_DOUT_CTP_22std_logic
out BF_DOUT_CTP_08std_logic
out BF_TO_FROM_BSPT_4std_logic
out BF_DOUT_CTP_09std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test12.txt" data_jem12
out BF_REQ_CABLE_2_INPUTstd_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test8.txt" data_jem8
in OCB_GEO_ADRS_0std_logic
out BF_DOUT_CTP_63std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test6.txt" data_jem6
out BF_DOUT_CTP_40std_logic
std_logic_vector (15 downto 0) :=( others =>'0' ) zeros
std_logic :='0' CLK40_CMP
out BF_ROI_DATA_OUT_CMPstd_logic
out BF_DOUT_CTP_15std_logic
out BF_DOUT_CTP_62std_logic
out BF_DOUT_CTP_33std_logic
std_logic_vector (65 downto 0) CTPout
std_logic_vector (7 downto 0) OCB_A_BOARD_ADDR
in CLK_40MHz08_DSKW_1_BF_LOGIC_CMPstd_logic
out BF_DOUT_CTP_48std_logic
out BF_DOUT_CTP_44std_logic
out BF_DOUT_CTP_52std_logic
std_logic_vector (65 downto 0) CTPout_ref
out BF_REQ_CTP_2_INPUTstd_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test13.txt" data_jem13
TEXT open READ_MODE is "../../Jet_common/trunk/data/test11.txt" data_jem11
inout OCB_Dstd_logic_vector (15 downto 0)
out BF_DOUT_CTP_02std_logic
std_logic_vector (15 downto 0) OCB_A_LOCAL_ADDR
in CLK_40MHz08_DSKW_1_BF_LOGIC_DIRstd_logic
out BF_DOUT_CTP_13std_logic
TEXT open READ_MODE is "../../Jet_common/trunk/data/test1.txt" data_jem1
out BF_DOUT_CTP_59std_logic
in BF_TO_TP_ROI_SLINK_RETURN_DIRstd_logic
out BF_DOUT_CTP_56std_logic
std_logic_vector (65 downto 0) CTPout_clean
out BF_DOUT_CTP_11std_logic
out BF_DOUT_CTP_36std_logic
array (15 downto 0 ) of string (24 downto 1) mystring
out BF_DOUT_CTP_12std_logic