-- C:\JFB\XILINX\MWD\WORK\EBEAM\EBEAM -- VHDL Annotation Test Bench created by -- HDL Bencher 6.1i -- Thu Dec 02 09:01:16 2004 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 ebeammux_tbw IS END ebeammux_tbw; ARCHITECTURE testbench_arch OF ebeammux_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 "c:\jfb\xilinx\mwd\work\ebeam\ebeam\ebeammux_tbw.ano"; COMPONENT ebeammux PORT ( reset : In std_logic; sysclk : In std_logic; timer1 : In std_logic; timer2 : In std_logic; upword : In std_logic; loword : In std_logic; msb1 : In std_logic_vector (15 DOWNTO 0); lsb1 : In std_logic_vector (15 DOWNTO 0); msb2 : In std_logic_vector (15 DOWNTO 0); lsb2 : In std_logic_vector (15 DOWNTO 0); muxout : Out std_logic_vector (15 DOWNTO 0) ); END COMPONENT; SIGNAL reset : std_logic; SIGNAL sysclk : std_logic; SIGNAL timer1 : std_logic; SIGNAL timer2 : std_logic; SIGNAL upword : std_logic; SIGNAL loword : std_logic; SIGNAL msb1 : std_logic_vector (15 DOWNTO 0); SIGNAL lsb1 : std_logic_vector (15 DOWNTO 0); SIGNAL msb2 : std_logic_vector (15 DOWNTO 0); SIGNAL lsb2 : std_logic_vector (15 DOWNTO 0); SIGNAL muxout : std_logic_vector (15 DOWNTO 0); BEGIN UUT : ebeammux PORT MAP ( reset => reset, sysclk => sysclk, timer1 => timer1, timer2 => timer2, upword => upword, loword => loword, msb1 => msb1, lsb1 => lsb1, msb2 => msb2, lsb2 => lsb2, muxout => muxout ); PROCESS -- clock process for sysclk, VARIABLE TX_TIME : INTEGER :=0; PROCEDURE ANNOTATE_muxout( TX_TIME : INTEGER ) IS VARIABLE TX_STR : String(1 to 4096); VARIABLE TX_LOC : LINE; BEGIN STD.TEXTIO.write(TX_LOC,string'("Annotate[")); STD.TEXTIO.write(TX_LOC, TX_TIME); STD.TEXTIO.write(TX_LOC,string'(",muxout,")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, muxout); 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); END; BEGIN CLOCK_LOOP : LOOP sysclk <= transport '0'; WAIT FOR 4 ns; TX_TIME := TX_TIME + 4; sysclk <= transport '1'; WAIT FOR 4 ns; TX_TIME := TX_TIME + 4; ANNOTATE_muxout(TX_TIME); WAIT FOR 2396 ns; TX_TIME := TX_TIME + 2396; sysclk <= transport '0'; WAIT FOR 2396 ns; TX_TIME := TX_TIME + 2396; END LOOP CLOCK_LOOP; END PROCESS; PROCESS -- Process for sysclk VARIABLE TX_OUT : LINE; BEGIN -- -------------------- reset <= transport '0'; timer1 <= transport '1'; timer2 <= transport '1'; upword <= transport '1'; loword <= transport '1'; msb1 <= transport std_logic_vector'("0000000000000001"); --1 lsb1 <= transport std_logic_vector'("0000000000000010"); --2 msb2 <= transport std_logic_vector'("0000000000000011"); --3 lsb2 <= transport std_logic_vector'("0000000000000100"); --4 -- -------------------- WAIT FOR 4800 ns; -- Time=4800 ns reset <= transport '1'; -- -------------------- WAIT FOR 4800 ns; -- Time=9600 ns timer1 <= transport '0'; -- -------------------- WAIT FOR 4800 ns; -- Time=14400 ns upword <= transport '0'; -- -------------------- WAIT FOR 4800 ns; -- Time=19200 ns upword <= transport '1'; -- -------------------- WAIT FOR 4800 ns; -- Time=24000 ns loword <= transport '0'; -- -------------------- WAIT FOR 4800 ns; -- Time=28800 ns loword <= transport '1'; -- -------------------- WAIT FOR 4800 ns; -- Time=33600 ns timer1 <= transport '1'; -- -------------------- WAIT FOR 4800 ns; -- Time=38400 ns timer2 <= transport '0'; -- -------------------- WAIT FOR 4800 ns; -- Time=43200 ns upword <= transport '0'; -- -------------------- WAIT FOR 4800 ns; -- Time=48000 ns upword <= transport '1'; -- -------------------- WAIT FOR 4800 ns; -- Time=52800 ns loword <= transport '0'; -- -------------------- WAIT FOR 4800 ns; -- Time=57600 ns loword <= transport '1'; -- -------------------- WAIT FOR 4800 ns; -- Time=62400 ns timer2 <= transport '1'; -- -------------------- WAIT FOR 28808 ns; -- Time=91208 ns -- -------------------- STD.TEXTIO.write(TX_OUT, string'("Total[]")); STD.TEXTIO.writeline(results, TX_OUT); ASSERT (FALSE) REPORT "Success! Simulation for annotation completed" SEVERITY FAILURE; END PROCESS; END testbench_arch; CONFIGURATION ebeammux_cfg OF ebeammux_tbw IS FOR testbench_arch END FOR; END ebeammux_cfg;