Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

why we need test benches in verilog

Not open for further replies.


Newbie level 6
Nov 25, 2010
Reaction score
Trophy points
Activity points
hello friends
i want to know why we need test benches in we can easily check the outputs by forcing values through modelsim..plz explain me the reason...

test benches alow you to put define the input of your design and when you run your simulation it will give results according to your input. Like when you want to simulate a counter you can define the cycle of your clock with a test bench file and run it.
test benches are just models those are used to varify correctness of a HDL model so that u can compare o/p response with expected values.According to that timing information u can see wavforms in ur is done before ur simulation
actually by force you can do it the thing is test-benches are used to test the code in various condition, for pure testing and analysis part and if you are familiar with model sim it should show some pearl commends it show some successive executed commends so professional analysis it is mandatory,
well it is not right way to force the reg too, still there are some TCL commends are there to regularise simulation of u that i would better and surly you would clarified

# advantage
* specify inputs and observe outputs
* allows testing without downloading to device
*can program a test of all inputs as well automatically check expected behaviour
*Testbench is self-contained
*Internal signals are directly manipulated
Testbench Structure

architecture behaviour of testbench is

signal clk, rst : std_logic;

signal done : boolean;

constant clk_period : time := 5 ns;


end architecture;

done <= true when condition else


. . .

. . .

clk <= '0' when rst = '1' else

not clk after clk_period when not done

else '0';

. . .

rst <= '1',

'0' after time;

Condition indicates simulation is over. e.g:
o time period has elapsed
o iterations completed
o end of input file reached

Basic signals are clock, reset, and termination:


o not active during reset
o oscillates until done


o brief pulse for reset of all signals in the design
The following quote from the Art of Writing TestBenches sums it up:

Writing a testbench is as complex as writing the RTL code itself. These days ASICs are getting more and more complex and thus verifying these complex ASIC has become a challenge. Typically 60-70% of time needed for any ASIC is spent on verification/validation/testing. Even though the above facts are well known to most ASIC engineers, still engineers think that there is no glory in verification.

Art of Writing TestBenches

A Verilog HDL Test Bench Primer

Not open for further replies.

Part and Inventory Search

Welcome to