-- C:\JFB\XILINX\MWD\WORK\CHANNELCTRL\CHNCTRL -- VHDL Annotation Test Bench created by -- HDL Bencher 6.1i -- Fri Jun 09 15:34:43 2006 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 fifo3_tbw IS END fifo3_tbw; ARCHITECTURE testbench_arch OF fifo3_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\channelctrl\chnctrl\fifo3_tbw.ano"; COMPONENT fifo3 PORT ( reset : In std_logic; clk : In std_logic; acqen : In std_logic; tmode : In std_logic; fifo3_en : In std_logic; rstdataready : In std_logic; dataready : Out std_logic; rst3 : Out std_logic; wen3 : Out std_logic ); END COMPONENT; SIGNAL reset : std_logic; SIGNAL clk : std_logic; SIGNAL acqen : std_logic; SIGNAL tmode : std_logic; SIGNAL fifo3_en : std_logic; SIGNAL rstdataready : std_logic; SIGNAL dataready : std_logic; SIGNAL rst3 : std_logic; SIGNAL wen3 : std_logic; BEGIN UUT : fifo3 PORT MAP ( reset => reset, clk => clk, acqen => acqen, tmode => tmode, fifo3_en => fifo3_en, rstdataready => rstdataready, dataready => dataready, rst3 => rst3, wen3 => wen3 ); PROCESS -- clock process for clk, VARIABLE TX_TIME : INTEGER :=0; PROCEDURE ANNOTATE_rst3( 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'(",rst3,")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, rst3); 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; PROCEDURE ANNOTATE_wen3( 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'(",wen3,")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, wen3); 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; PROCEDURE ANNOTATE_dataready( 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'(",dataready,")); IEEE.STD_LOGIC_TEXTIO.write(TX_LOC, dataready); 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 clk <= transport '0'; WAIT FOR 6 ns; TX_TIME := TX_TIME + 6; clk <= transport '1'; WAIT FOR 6 ns; TX_TIME := TX_TIME + 6; ANNOTATE_rst3(TX_TIME); ANNOTATE_wen3(TX_TIME); ANNOTATE_dataready(TX_TIME); WAIT FOR 9 ns; TX_TIME := TX_TIME + 9; clk <= transport '0'; WAIT FOR 9 ns; TX_TIME := TX_TIME + 9; END LOOP CLOCK_LOOP; END PROCESS; PROCESS -- Process for clk VARIABLE TX_OUT : LINE; BEGIN -- -------------------- reset <= transport '0'; acqen <= transport '1'; fifo3_en <= transport '1'; -- -------------------- WAIT FOR 120 ns; -- Time=120 ns reset <= transport '1'; -- -------------------- WAIT FOR 60 ns; -- Time=180 ns acqen <= transport '0'; -- -------------------- WAIT FOR 480 ns; -- Time=660 ns fifo3_en <= transport '0'; -- -------------------- WAIT FOR 690 ns; -- Time=1350 ns fifo3_en <= transport '1'; -- -------------------- WAIT FOR 1800 ns; -- Time=3150 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 fifo3_cfg OF fifo3_tbw IS FOR testbench_arch END FOR; END fifo3_cfg;