-- C:\JFB\XILINX\MWD\WORK\EBEAM\EBEAM -- VHDL Test Bench created by -- HDL Bencher 6.1i -- Thu Dec 02 12:19:44 2004 -- -- Notes: -- 1) This testbench has been automatically generated from -- your Test Bench Waveform -- 2) To use this as a user modifiable testbench do the following: -- - Save it as a file with a .vhd extension (i.e. File->Save As...) -- - Add it to your project as a testbench source (i.e. Project->Add Source...) -- LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_TEXTIO.ALL; USE STD.TEXTIO.ALL; ENTITY ebeamctrl_tbw IS END ebeamctrl_tbw; ARCHITECTURE testbench_arch OF ebeamctrl_tbw IS -- If you get a compiler error on the following line, -- from the menu do Options->Configuration select VHDL 87 FILE RESULTS: TEXT OPEN WRITE_MODE IS "results.txt"; COMPONENT ebeam_ctrl PORT ( reset : In std_logic; reset_timer : In std_logic; timeclk : In std_logic; sysclk : In std_logic; ebeam_oe : In std_logic; ebeam_sig : In std_logic; timer1 : In std_logic; timer2 : In std_logic; upword : In std_logic; loword : In std_logic; toto : Out std_logic_vector (15 DOWNTO 0); ebeam_data : Out std_logic_vector (15 DOWNTO 0) ); END COMPONENT; SIGNAL reset : std_logic; SIGNAL reset_timer : std_logic; SIGNAL timeclk : std_logic; SIGNAL sysclk : std_logic; SIGNAL ebeam_oe : std_logic; SIGNAL ebeam_sig : std_logic; SIGNAL timer1 : std_logic; SIGNAL timer2 : std_logic; SIGNAL upword : std_logic; SIGNAL loword : std_logic; SIGNAL toto : std_logic_vector (15 DOWNTO 0); SIGNAL ebeam_data : std_logic_vector (15 DOWNTO 0); BEGIN UUT : ebeam_ctrl PORT MAP ( reset => reset, reset_timer => reset_timer, timeclk => timeclk, sysclk => sysclk, ebeam_oe => ebeam_oe, ebeam_sig => ebeam_sig, timer1 => timer1, timer2 => timer2, upword => upword, loword => loword, toto => toto, ebeam_data => ebeam_data ); PROCESS -- clock process for sysclk, BEGIN CLOCK_LOOP : LOOP sysclk <= transport '0'; WAIT FOR 4 ns; sysclk <= transport '1'; WAIT FOR 4 ns; WAIT FOR 116 ns; sysclk <= transport '0'; WAIT FOR 116 ns; END LOOP CLOCK_LOOP; END PROCESS; PROCESS -- clock process for timeclk, BEGIN CLOCK_LOOP : LOOP timeclk <= transport '0'; WAIT FOR 4 ns; timeclk <= transport '1'; WAIT FOR 4 ns; WAIT FOR 1916 ns; timeclk <= transport '0'; WAIT FOR 1916 ns; END LOOP CLOCK_LOOP; END PROCESS; PROCESS -- Process for sysclk VARIABLE TX_OUT : LINE; VARIABLE TX_ERROR : INTEGER := 0; PROCEDURE CHECK_ebeam_data( next_ebeam_data : std_logic_vector (15 DOWNTO 0); TX_TIME : INTEGER ) IS VARIABLE TX_STR : String(1 to 4096); VARIABLE TX_LOC : LINE; BEGIN -- If compiler error ("/=" is ambiguous) occurs in the next line of code -- change compiler settings to use explicit declarations only IF (ebeam_data /= next_ebeam_data) THEN STD.TEXTIO.write(TX_LOC,string'("Error at time=")); STD.TEXTIO.write(TX_LOC, TX_TIME); STD.TEXTIO.write(TX_LOC,string'("ns ebeam_data=")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, ebeam_data); STD.TEXTIO.write(TX_LOC, string'(", Expected = ")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_ebeam_data); STD.TEXTIO.write(TX_LOC, string'(" ")); TX_STR(TX_LOC.all'range) := TX_LOC.all; STD.TEXTIO.writeline(results, TX_LOC); STD.TEXTIO.Deallocate(TX_LOC); ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR; TX_ERROR := TX_ERROR + 1; END IF; END; BEGIN -- -------------------- reset <= transport '0'; reset_timer <= transport '0'; timer1 <= transport '1'; timer2 <= transport '1'; upword <= transport '1'; loword <= transport '1'; -- -------------------- WAIT FOR 8 ns; -- Time=8 ns CHECK_ebeam_data("0000000000000000",8); --0 -- -------------------- WAIT FOR 232 ns; -- Time=240 ns ebeam_oe <= transport '1'; -- -------------------- WAIT FOR 8 ns; -- Time=248 ns CHECK_ebeam_data("0000000000000000",248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=488 ns CHECK_ebeam_data("0000000000000000",488); --0 -- -------------------- WAIT FOR 232 ns; -- Time=720 ns reset_timer <= transport '1'; -- -------------------- WAIT FOR 8 ns; -- Time=728 ns CHECK_ebeam_data("0000000000000000",728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=968 ns CHECK_ebeam_data("0000000000000000",968); --0 -- -------------------- WAIT FOR 232 ns; -- Time=1200 ns reset <= transport '1'; -- -------------------- WAIT FOR 8 ns; -- Time=1208 ns CHECK_ebeam_data("0000000000000000",1208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=1448 ns CHECK_ebeam_data("0000000000000000",1448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=1688 ns CHECK_ebeam_data("0000000000000000",1688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=1928 ns CHECK_ebeam_data("0000000000000000",1928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=2168 ns CHECK_ebeam_data("0000000000000000",2168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=2408 ns CHECK_ebeam_data("0000000000000000",2408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=2648 ns CHECK_ebeam_data("0000000000000000",2648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=2888 ns CHECK_ebeam_data("0000000000000000",2888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=3128 ns CHECK_ebeam_data("0000000000000000",3128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=3368 ns CHECK_ebeam_data("0000000000000000",3368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=3608 ns CHECK_ebeam_data("0000000000000000",3608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=3848 ns CHECK_ebeam_data("0000000000000000",3848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=4088 ns CHECK_ebeam_data("0000000000000000",4088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=4328 ns CHECK_ebeam_data("0000000000000000",4328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=4568 ns CHECK_ebeam_data("0000000000000000",4568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=4808 ns CHECK_ebeam_data("0000000000000000",4808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=5048 ns CHECK_ebeam_data("0000000000000000",5048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=5288 ns CHECK_ebeam_data("0000000000000000",5288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=5528 ns CHECK_ebeam_data("0000000000000000",5528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=5768 ns CHECK_ebeam_data("0000000000000000",5768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=6008 ns CHECK_ebeam_data("0000000000000000",6008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=6248 ns CHECK_ebeam_data("0000000000000000",6248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=6488 ns CHECK_ebeam_data("0000000000000000",6488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=6728 ns CHECK_ebeam_data("0000000000000000",6728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=6968 ns CHECK_ebeam_data("0000000000000000",6968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=7208 ns CHECK_ebeam_data("0000000000000000",7208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=7448 ns CHECK_ebeam_data("0000000000000000",7448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=7688 ns CHECK_ebeam_data("0000000000000000",7688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=7928 ns CHECK_ebeam_data("0000000000000000",7928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=8168 ns CHECK_ebeam_data("0000000000000000",8168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=8408 ns CHECK_ebeam_data("0000000000000000",8408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=8648 ns CHECK_ebeam_data("0000000000000000",8648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=8888 ns CHECK_ebeam_data("0000000000000000",8888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=9128 ns CHECK_ebeam_data("0000000000000000",9128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=9368 ns CHECK_ebeam_data("0000000000000000",9368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=9608 ns CHECK_ebeam_data("0000000000000000",9608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=9848 ns CHECK_ebeam_data("0000000000000000",9848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=10088 ns CHECK_ebeam_data("0000000000000000",10088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=10328 ns CHECK_ebeam_data("0000000000000000",10328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=10568 ns CHECK_ebeam_data("0000000000000000",10568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=10808 ns CHECK_ebeam_data("0000000000000000",10808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=11048 ns CHECK_ebeam_data("0000000000000000",11048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=11288 ns CHECK_ebeam_data("0000000000000000",11288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=11528 ns CHECK_ebeam_data("0000000000000000",11528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=11768 ns CHECK_ebeam_data("0000000000000000",11768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=12008 ns CHECK_ebeam_data("0000000000000000",12008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=12248 ns CHECK_ebeam_data("0000000000000000",12248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=12488 ns CHECK_ebeam_data("0000000000000000",12488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=12728 ns CHECK_ebeam_data("0000000000000000",12728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=12968 ns CHECK_ebeam_data("0000000000000000",12968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=13208 ns CHECK_ebeam_data("0000000000000000",13208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=13448 ns CHECK_ebeam_data("0000000000000000",13448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=13688 ns CHECK_ebeam_data("0000000000000000",13688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=13928 ns CHECK_ebeam_data("0000000000000000",13928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=14168 ns CHECK_ebeam_data("0000000000000000",14168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=14408 ns CHECK_ebeam_data("0000000000000000",14408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=14648 ns CHECK_ebeam_data("0000000000000000",14648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=14888 ns CHECK_ebeam_data("0000000000000000",14888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=15128 ns CHECK_ebeam_data("0000000000000000",15128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=15368 ns CHECK_ebeam_data("0000000000000000",15368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=15608 ns CHECK_ebeam_data("0000000000000000",15608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=15848 ns CHECK_ebeam_data("0000000000000000",15848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=16088 ns CHECK_ebeam_data("0000000000000000",16088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=16328 ns CHECK_ebeam_data("0000000000000000",16328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=16568 ns CHECK_ebeam_data("0000000000000000",16568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=16808 ns CHECK_ebeam_data("0000000000000000",16808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=17048 ns CHECK_ebeam_data("0000000000000000",17048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=17288 ns CHECK_ebeam_data("0000000000000000",17288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=17528 ns CHECK_ebeam_data("0000000000000000",17528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=17768 ns CHECK_ebeam_data("0000000000000000",17768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=18008 ns CHECK_ebeam_data("0000000000000000",18008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=18248 ns CHECK_ebeam_data("0000000000000000",18248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=18488 ns CHECK_ebeam_data("0000000000000000",18488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=18728 ns CHECK_ebeam_data("0000000000000000",18728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=18968 ns CHECK_ebeam_data("0000000000000000",18968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=19208 ns CHECK_ebeam_data("0000000000000000",19208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=19448 ns CHECK_ebeam_data("0000000000000000",19448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=19688 ns CHECK_ebeam_data("0000000000000000",19688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=19928 ns CHECK_ebeam_data("0000000000000000",19928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=20168 ns CHECK_ebeam_data("0000000000000000",20168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=20408 ns CHECK_ebeam_data("0000000000000000",20408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=20648 ns CHECK_ebeam_data("0000000000000000",20648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=20888 ns CHECK_ebeam_data("0000000000000000",20888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=21128 ns CHECK_ebeam_data("0000000000000000",21128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=21368 ns CHECK_ebeam_data("0000000000000000",21368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=21608 ns CHECK_ebeam_data("0000000000000000",21608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=21848 ns CHECK_ebeam_data("0000000000000000",21848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=22088 ns CHECK_ebeam_data("0000000000000000",22088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=22328 ns CHECK_ebeam_data("0000000000000000",22328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=22568 ns CHECK_ebeam_data("0000000000000000",22568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=22808 ns CHECK_ebeam_data("0000000000000000",22808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=23048 ns CHECK_ebeam_data("0000000000000000",23048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=23288 ns CHECK_ebeam_data("0000000000000000",23288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=23528 ns CHECK_ebeam_data("0000000000000000",23528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=23768 ns CHECK_ebeam_data("0000000000000000",23768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=24008 ns CHECK_ebeam_data("0000000000000000",24008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=24248 ns CHECK_ebeam_data("0000000000000000",24248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=24488 ns CHECK_ebeam_data("0000000000000000",24488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=24728 ns CHECK_ebeam_data("0000000000000000",24728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=24968 ns CHECK_ebeam_data("0000000000000000",24968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=25208 ns CHECK_ebeam_data("0000000000000000",25208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=25448 ns CHECK_ebeam_data("0000000000000000",25448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=25688 ns CHECK_ebeam_data("0000000000000000",25688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=25928 ns CHECK_ebeam_data("0000000000000000",25928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=26168 ns CHECK_ebeam_data("0000000000000000",26168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=26408 ns CHECK_ebeam_data("0000000000000000",26408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=26648 ns CHECK_ebeam_data("0000000000000000",26648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=26888 ns CHECK_ebeam_data("0000000000000000",26888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=27128 ns CHECK_ebeam_data("0000000000000000",27128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=27368 ns CHECK_ebeam_data("0000000000000000",27368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=27608 ns CHECK_ebeam_data("0000000000000000",27608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=27848 ns CHECK_ebeam_data("0000000000000000",27848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=28088 ns CHECK_ebeam_data("0000000000000000",28088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=28328 ns CHECK_ebeam_data("0000000000000000",28328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=28568 ns CHECK_ebeam_data("0000000000000000",28568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=28808 ns CHECK_ebeam_data("0000000000000000",28808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=29048 ns CHECK_ebeam_data("0000000000000000",29048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=29288 ns CHECK_ebeam_data("0000000000000000",29288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=29528 ns CHECK_ebeam_data("0000000000000000",29528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=29768 ns CHECK_ebeam_data("0000000000000000",29768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=30008 ns CHECK_ebeam_data("0000000000000000",30008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=30248 ns CHECK_ebeam_data("0000000000000000",30248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=30488 ns CHECK_ebeam_data("0000000000000000",30488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=30728 ns CHECK_ebeam_data("0000000000000000",30728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=30968 ns CHECK_ebeam_data("0000000000000000",30968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=31208 ns CHECK_ebeam_data("0000000000000000",31208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=31448 ns CHECK_ebeam_data("0000000000000000",31448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=31688 ns CHECK_ebeam_data("0000000000000000",31688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=31928 ns CHECK_ebeam_data("0000000000000000",31928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=32168 ns CHECK_ebeam_data("0000000000000000",32168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=32408 ns CHECK_ebeam_data("0000000000000000",32408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=32648 ns CHECK_ebeam_data("0000000000000000",32648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=32888 ns CHECK_ebeam_data("0000000000000000",32888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=33128 ns CHECK_ebeam_data("0000000000000000",33128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=33368 ns CHECK_ebeam_data("0000000000000000",33368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=33608 ns CHECK_ebeam_data("0000000000000000",33608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=33848 ns CHECK_ebeam_data("0000000000000000",33848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=34088 ns CHECK_ebeam_data("0000000000000000",34088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=34328 ns CHECK_ebeam_data("0000000000000000",34328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=34568 ns CHECK_ebeam_data("0000000000000000",34568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=34808 ns CHECK_ebeam_data("0000000000000000",34808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=35048 ns CHECK_ebeam_data("0000000000000000",35048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=35288 ns CHECK_ebeam_data("0000000000000000",35288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=35528 ns CHECK_ebeam_data("0000000000000000",35528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=35768 ns CHECK_ebeam_data("0000000000000000",35768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=36008 ns CHECK_ebeam_data("0000000000000000",36008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=36248 ns CHECK_ebeam_data("0000000000000000",36248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=36488 ns CHECK_ebeam_data("0000000000000000",36488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=36728 ns CHECK_ebeam_data("0000000000000000",36728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=36968 ns CHECK_ebeam_data("0000000000000000",36968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=37208 ns CHECK_ebeam_data("0000000000000000",37208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=37448 ns CHECK_ebeam_data("0000000000000000",37448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=37688 ns CHECK_ebeam_data("0000000000000000",37688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=37928 ns CHECK_ebeam_data("0000000000000000",37928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=38168 ns CHECK_ebeam_data("0000000000000000",38168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=38408 ns CHECK_ebeam_data("0000000000000000",38408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=38648 ns CHECK_ebeam_data("0000000000000000",38648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=38888 ns CHECK_ebeam_data("0000000000000000",38888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=39128 ns CHECK_ebeam_data("0000000000000000",39128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=39368 ns CHECK_ebeam_data("0000000000000000",39368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=39608 ns CHECK_ebeam_data("0000000000000000",39608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=39848 ns CHECK_ebeam_data("0000000000000000",39848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=40088 ns CHECK_ebeam_data("0000000000000000",40088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=40328 ns CHECK_ebeam_data("0000000000000000",40328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=40568 ns CHECK_ebeam_data("0000000000000000",40568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=40808 ns CHECK_ebeam_data("0000000000000000",40808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=41048 ns CHECK_ebeam_data("0000000000000000",41048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=41288 ns CHECK_ebeam_data("0000000000000000",41288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=41528 ns CHECK_ebeam_data("0000000000000000",41528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=41768 ns CHECK_ebeam_data("0000000000000000",41768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=42008 ns CHECK_ebeam_data("0000000000000000",42008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=42248 ns CHECK_ebeam_data("0000000000000000",42248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=42488 ns CHECK_ebeam_data("0000000000000000",42488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=42728 ns CHECK_ebeam_data("0000000000000000",42728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=42968 ns CHECK_ebeam_data("0000000000000000",42968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=43208 ns CHECK_ebeam_data("0000000000000000",43208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=43448 ns CHECK_ebeam_data("0000000000000000",43448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=43688 ns CHECK_ebeam_data("0000000000000000",43688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=43928 ns CHECK_ebeam_data("0000000000000000",43928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=44168 ns CHECK_ebeam_data("0000000000000000",44168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=44408 ns CHECK_ebeam_data("0000000000000000",44408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=44648 ns CHECK_ebeam_data("0000000000000000",44648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=44888 ns CHECK_ebeam_data("0000000000000000",44888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=45128 ns CHECK_ebeam_data("0000000000000000",45128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=45368 ns CHECK_ebeam_data("0000000000000000",45368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=45608 ns CHECK_ebeam_data("0000000000000000",45608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=45848 ns CHECK_ebeam_data("0000000000000000",45848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=46088 ns CHECK_ebeam_data("0000000000000000",46088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=46328 ns CHECK_ebeam_data("0000000000000000",46328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=46568 ns CHECK_ebeam_data("0000000000000000",46568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=46808 ns CHECK_ebeam_data("0000000000000000",46808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=47048 ns CHECK_ebeam_data("0000000000000000",47048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=47288 ns CHECK_ebeam_data("0000000000000000",47288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=47528 ns CHECK_ebeam_data("0000000000000000",47528); --0 -- -------------------- WAIT FOR 240 ns; -- Time=47768 ns CHECK_ebeam_data("0000000000000000",47768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=48008 ns CHECK_ebeam_data("0000000000000000",48008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=48248 ns CHECK_ebeam_data("0000000000000000",48248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=48488 ns CHECK_ebeam_data("0000000000000000",48488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=48728 ns CHECK_ebeam_data("0000000000000000",48728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=48968 ns CHECK_ebeam_data("0000000000000000",48968); --0 -- -------------------- WAIT FOR 240 ns; -- Time=49208 ns CHECK_ebeam_data("0000000000000000",49208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=49448 ns CHECK_ebeam_data("0000000000000000",49448); --0 -- -------------------- WAIT FOR 240 ns; -- Time=49688 ns CHECK_ebeam_data("0000000000000000",49688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=49928 ns CHECK_ebeam_data("0000000000000000",49928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=50168 ns CHECK_ebeam_data("0000000000000000",50168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=50408 ns CHECK_ebeam_data("0000000000000000",50408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=50648 ns CHECK_ebeam_data("0000000000000000",50648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=50888 ns CHECK_ebeam_data("0000000000000000",50888); --0 -- -------------------- WAIT FOR 240 ns; -- Time=51128 ns CHECK_ebeam_data("0000000000000000",51128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=51368 ns CHECK_ebeam_data("0000000000000000",51368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=51608 ns CHECK_ebeam_data("0000000000000000",51608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=51848 ns CHECK_ebeam_data("0000000000000000",51848); --0 -- -------------------- WAIT FOR 240 ns; -- Time=52088 ns CHECK_ebeam_data("0000000000000000",52088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=52328 ns CHECK_ebeam_data("0000000000000000",52328); --0 -- -------------------- WAIT FOR 240 ns; -- Time=52568 ns CHECK_ebeam_data("0000000000000000",52568); --0 -- -------------------- WAIT FOR 240 ns; -- Time=52808 ns CHECK_ebeam_data("0000000000000000",52808); --0 -- -------------------- WAIT FOR 240 ns; -- Time=53048 ns CHECK_ebeam_data("0000000000000000",53048); --0 -- -------------------- WAIT FOR 240 ns; -- Time=53288 ns CHECK_ebeam_data("0000000000000000",53288); --0 -- -------------------- WAIT FOR 240 ns; -- Time=53528 ns CHECK_ebeam_data("0000000000000000",53528); --0 -- -------------------- WAIT FOR 232 ns; -- Time=53760 ns ebeam_oe <= transport '0'; -- -------------------- WAIT FOR 8 ns; -- Time=53768 ns CHECK_ebeam_data("0000000000000000",53768); --0 -- -------------------- WAIT FOR 240 ns; -- Time=54008 ns CHECK_ebeam_data("0000000000000000",54008); --0 -- -------------------- WAIT FOR 240 ns; -- Time=54248 ns CHECK_ebeam_data("0000000000000000",54248); --0 -- -------------------- WAIT FOR 240 ns; -- Time=54488 ns CHECK_ebeam_data("0000000000000000",54488); --0 -- -------------------- WAIT FOR 240 ns; -- Time=54728 ns CHECK_ebeam_data("0000000000000000",54728); --0 -- -------------------- WAIT FOR 240 ns; -- Time=54968 ns CHECK_ebeam_data("0000000000000000",54968); --0 -- -------------------- WAIT FOR 232 ns; -- Time=55200 ns timer1 <= transport '0'; -- -------------------- WAIT FOR 8 ns; -- Time=55208 ns CHECK_ebeam_data("0000000000000000",55208); --0 -- -------------------- WAIT FOR 240 ns; -- Time=55448 ns CHECK_ebeam_data("0000000000000000",55448); --0 -- -------------------- WAIT FOR 232 ns; -- Time=55680 ns upword <= transport '0'; -- -------------------- WAIT FOR 8 ns; -- Time=55688 ns CHECK_ebeam_data("0000000000000000",55688); --0 -- -------------------- WAIT FOR 240 ns; -- Time=55928 ns CHECK_ebeam_data("0000000000000000",55928); --0 -- -------------------- WAIT FOR 240 ns; -- Time=56168 ns CHECK_ebeam_data("0000000000000000",56168); --0 -- -------------------- WAIT FOR 240 ns; -- Time=56408 ns CHECK_ebeam_data("0000000000000000",56408); --0 -- -------------------- WAIT FOR 240 ns; -- Time=56648 ns CHECK_ebeam_data("0000000000000000",56648); --0 -- -------------------- WAIT FOR 240 ns; -- Time=56888 ns CHECK_ebeam_data("0000000000000000",56888); --0 -- -------------------- WAIT FOR 232 ns; -- Time=57120 ns upword <= transport '1'; -- -------------------- WAIT FOR 8 ns; -- Time=57128 ns CHECK_ebeam_data("0000000000000000",57128); --0 -- -------------------- WAIT FOR 240 ns; -- Time=57368 ns CHECK_ebeam_data("0000000000000000",57368); --0 -- -------------------- WAIT FOR 240 ns; -- Time=57608 ns CHECK_ebeam_data("0000000000000000",57608); --0 -- -------------------- WAIT FOR 240 ns; -- Time=57848 ns CHECK_ebeam_data("0000000000000000",57848); --0 -- -------------------- WAIT FOR 232 ns; -- Time=58080 ns loword <= transport '0'; -- -------------------- WAIT FOR 8 ns; -- Time=58088 ns CHECK_ebeam_data("0000000000000000",58088); --0 -- -------------------- WAIT FOR 240 ns; -- Time=58328 ns CHECK_ebeam_data("0000000000000101",58328); --5 -- -------------------- WAIT FOR 240 ns; -- Time=58568 ns CHECK_ebeam_data("0000000000000101",58568); --5 -- -------------------- WAIT FOR 240 ns; -- Time=58808 ns CHECK_ebeam_data("0000000000000101",58808); --5 -- -------------------- WAIT FOR 240 ns; -- Time=59048 ns CHECK_ebeam_data("0000000000000101",59048); --5 -- -------------------- WAIT FOR 240 ns; -- Time=59288 ns CHECK_ebeam_data("0000000000000101",59288); --5 -- -------------------- WAIT FOR 240 ns; -- Time=59528 ns CHECK_ebeam_data("0000000000000101",59528); --5 -- -------------------- WAIT FOR 240 ns; -- Time=59768 ns CHECK_ebeam_data("0000000000000101",59768); --5 -- -------------------- WAIT FOR 240 ns; -- Time=60008 ns CHECK_ebeam_data("0000000000000101",60008); --5 -- -------------------- WAIT FOR 232 ns; -- Time=60240 ns loword <= transport '1'; -- -------------------- WAIT FOR 8 ns; -- Time=60248 ns CHECK_ebeam_data("0000000000000101",60248); --5 -- -------------------- WAIT FOR 240 ns; -- Time=60488 ns CHECK_ebeam_data("0000000000000101",60488); --5 -- -------------------- WAIT FOR 240 ns; -- Time=60728 ns CHECK_ebeam_data("0000000000000101",60728); --5 -- -------------------- WAIT FOR 240 ns; -- Time=60968 ns CHECK_ebeam_data("0000000000000101",60968); --5 -- -------------------- WAIT FOR 240 ns; -- Time=61208 ns CHECK_ebeam_data("0000000000000101",61208); --5 -- -------------------- WAIT FOR 232 ns; -- Time=61440 ns timer1 <= transport '1'; -- -------------------- WAIT FOR 8 ns; -- Time=61448 ns CHECK_ebeam_data("0000000000000101",61448); --5 -- -------------------- WAIT FOR 240 ns; -- Time=61688 ns CHECK_ebeam_data("0000000000000101",61688); --5 -- -------------------- WAIT FOR 240 ns; -- Time=61928 ns CHECK_ebeam_data("0000000000000101",61928); --5 -- -------------------- WAIT FOR 240 ns; -- Time=62168 ns CHECK_ebeam_data("0000000000000101",62168); --5 -- -------------------- WAIT FOR 240 ns; -- Time=62408 ns CHECK_ebeam_data("0000000000000101",62408); --5 -- -------------------- WAIT FOR 240 ns; -- Time=62648 ns CHECK_ebeam_data("0000000000000101",62648); --5 -- -------------------- WAIT FOR 240 ns; -- Time=62888 ns CHECK_ebeam_data("0000000000000101",62888); --5 -- -------------------- WAIT FOR 240 ns; -- Time=63128 ns CHECK_ebeam_data("0000000000000101",63128); --5 -- -------------------- WAIT FOR 240 ns; -- Time=63368 ns CHECK_ebeam_data("0000000000000101",63368); --5 -- -------------------- WAIT FOR 240 ns; -- Time=63608 ns CHECK_ebeam_data("0000000000000101",63608); --5 -- -------------------- WAIT FOR 240 ns; -- Time=63848 ns CHECK_ebeam_data("0000000000000101",63848); --5 -- -------------------- WAIT FOR 240 ns; -- Time=64088 ns CHECK_ebeam_data("0000000000000101",64088); --5 -- -------------------- WAIT FOR 240 ns; -- Time=64328 ns CHECK_ebeam_data("0000000000000101",64328); --5 -- -------------------- WAIT FOR 240 ns; -- Time=64568 ns CHECK_ebeam_data("0000000000000101",64568); --5 -- -------------------- WAIT FOR 240 ns; -- Time=64808 ns CHECK_ebeam_data("0000000000000101",64808); --5 -- -------------------- WAIT FOR 240 ns; -- Time=65048 ns CHECK_ebeam_data("0000000000000101",65048); --5 -- -------------------- WAIT FOR 240 ns; -- Time=65288 ns CHECK_ebeam_data("0000000000000101",65288); --5 -- -------------------- WAIT FOR 240 ns; -- Time=65528 ns CHECK_ebeam_data("0000000000000101",65528); --5 -- -------------------- WAIT FOR 240 ns; -- Time=65768 ns CHECK_ebeam_data("0000000000000101",65768); --5 -- -------------------- WAIT FOR 240 ns; -- Time=66008 ns CHECK_ebeam_data("0000000000000101",66008); --5 -- -------------------- WAIT FOR 240 ns; -- Time=66248 ns CHECK_ebeam_data("0000000000000101",66248); --5 -- -------------------- WAIT FOR 240 ns; -- Time=66488 ns CHECK_ebeam_data("0000000000000101",66488); --5 -- -------------------- WAIT FOR 232 ns; -- Time=66720 ns timer2 <= transport '0'; -- -------------------- WAIT FOR 8 ns; -- Time=66728 ns CHECK_ebeam_data("0000000000000101",66728); --5 -- -------------------- WAIT FOR 240 ns; -- Time=66968 ns CHECK_ebeam_data("0000000000000101",66968); --5 -- -------------------- WAIT FOR 236 ns; -- Time=67204 ns -- -------------------- IF (TX_ERROR = 0) THEN STD.TEXTIO.write(TX_OUT,string'("No errors or warnings")); STD.TEXTIO.writeline(results, TX_OUT); ASSERT (FALSE) REPORT "Simulation successful (not a failure). No problems detected. " SEVERITY FAILURE; ELSE STD.TEXTIO.write(TX_OUT, TX_ERROR); STD.TEXTIO.write(TX_OUT, string'( " errors found in simulation")); STD.TEXTIO.writeline(results, TX_OUT); ASSERT (FALSE) REPORT "Errors found during simulation" SEVERITY FAILURE; END IF; END PROCESS; PROCESS -- Process for timeclk VARIABLE TX_OUT : LINE; VARIABLE TX_ERROR : INTEGER := 0; PROCEDURE CHECK_toto( next_toto : std_logic_vector (15 DOWNTO 0); TX_TIME : INTEGER ) IS VARIABLE TX_STR : String(1 to 4096); VARIABLE TX_LOC : LINE; BEGIN -- If compiler error ("/=" is ambiguous) occurs in the next line of code -- change compiler settings to use explicit declarations only IF (toto /= next_toto) THEN STD.TEXTIO.write(TX_LOC,string'("Error at time=")); STD.TEXTIO.write(TX_LOC, TX_TIME); STD.TEXTIO.write(TX_LOC,string'("ns toto=")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, toto); STD.TEXTIO.write(TX_LOC, string'(", Expected = ")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, next_toto); STD.TEXTIO.write(TX_LOC, string'(" ")); TX_STR(TX_LOC.all'range) := TX_LOC.all; STD.TEXTIO.writeline(results, TX_LOC); STD.TEXTIO.Deallocate(TX_LOC); ASSERT (FALSE) REPORT TX_STR SEVERITY ERROR; TX_ERROR := TX_ERROR + 1; END IF; END; BEGIN -- -------------------- -- -------------------- WAIT FOR 8 ns; -- Time=8 ns CHECK_toto("0000000000000000",8); --0 -- -------------------- WAIT FOR 3840 ns; -- Time=3848 ns CHECK_toto("0000000000000000",3848); --0 -- -------------------- WAIT FOR 3840 ns; -- Time=7688 ns CHECK_toto("0000000000000000",7688); --0 -- -------------------- WAIT FOR 3840 ns; -- Time=11528 ns CHECK_toto("0000000000000000",11528); --0 -- -------------------- WAIT FOR 3840 ns; -- Time=15368 ns CHECK_toto("0000000000000000",15368); --0 -- -------------------- WAIT FOR 3840 ns; -- Time=19208 ns CHECK_toto("0000000000000000",19208); --0 -- -------------------- WAIT FOR 3840 ns; -- Time=23048 ns CHECK_toto("0000000000000101",23048); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=26888 ns CHECK_toto("0000000000000101",26888); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=30728 ns CHECK_toto("0000000000000101",30728); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=34568 ns CHECK_toto("0000000000000101",34568); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=38408 ns CHECK_toto("0000000000000101",38408); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=42248 ns CHECK_toto("0000000000000101",42248); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=46088 ns CHECK_toto("0000000000000101",46088); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=49928 ns CHECK_toto("0000000000000101",49928); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=53768 ns CHECK_toto("0000000000000101",53768); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=57608 ns CHECK_toto("0000000000000101",57608); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=61448 ns CHECK_toto("0000000000000101",61448); --5 -- -------------------- WAIT FOR 3840 ns; -- Time=65288 ns CHECK_toto("0000000000000101",65288); --5 -- -------------------- WAIT FOR 1916 ns; -- Time=67204 ns -- -------------------- IF (TX_ERROR = 0) THEN STD.TEXTIO.write(TX_OUT,string'("No errors or warnings")); STD.TEXTIO.writeline(results, TX_OUT); ASSERT (FALSE) REPORT "Simulation successful (not a failure). No problems detected. " SEVERITY FAILURE; ELSE STD.TEXTIO.write(TX_OUT, TX_ERROR); STD.TEXTIO.write(TX_OUT, string'( " errors found in simulation")); STD.TEXTIO.writeline(results, TX_OUT); ASSERT (FALSE) REPORT "Errors found during simulation" SEVERITY FAILURE; END IF; END PROCESS; PROCESS -- Process for Asynchronous Signals VARIABLE TX_OUT : LINE; VARIABLE TX_ERROR : INTEGER := 0; BEGIN -- -------------------- ebeam_sig <= transport '1'; -- -------------------- WAIT FOR 4 ns; -- Time=4 ns ebeam_sig <= transport '0'; -- -------------------- WAIT FOR 12 ns; -- Time=16 ns ebeam_sig <= transport '1'; -- -------------------- WAIT FOR 44659 ns; -- Time=44675 ns -- -------------------- WAIT FOR 22529 ns; -- Time=67204 ns -- -------------------- IF (TX_ERROR = 0) THEN STD.TEXTIO.write(TX_OUT,string'("No errors or warnings")); STD.TEXTIO.writeline(results, TX_OUT); ASSERT (FALSE) REPORT "Simulation successful (not a failure). No problems detected. " SEVERITY FAILURE; ELSE STD.TEXTIO.write(TX_OUT, TX_ERROR); STD.TEXTIO.write(TX_OUT, string'( " errors found in simulation")); STD.TEXTIO.writeline(results, TX_OUT); ASSERT (FALSE) REPORT "Errors found during simulation" SEVERITY FAILURE; END IF; END PROCESS; END testbench_arch; CONFIGURATION ebeam_ctrl_cfg OF ebeamctrl_tbw IS FOR testbench_arch END FOR; END ebeam_ctrl_cfg;