EmbDev.net

Forum: FPGA, VHDL & Verilog Automated Validation of Combinational Circuit


von edadev55 (Guest)


Attached files:

Rate this post
useful
not useful
I am fairly new to FPGA/Hardware design, so pardon if the question isn't 
appropriate for this forum. This question is pertaining to approaches 
available for automating validation of testing any combinational circuit 
in a synthesized implementation. I will try to explain it with an 
example

Say i have verilog module called ADD designed to add two numbers. Code 
for same is attached. Now as i understand, there are two methods with 
which i could validate the verilog module designed. They are using

    A. Simulation
    B. Synthesis.

For simulation purpose, i have used icarus verilog and created a test 
module that would instantiate the adder module and feed it various 
values and check the result with values computed. This is just provided 
for an illustration. Obviously for different circuits the test bench and 
testing method on simulation would vary.

Now for synthesized implementation, i am planning to use Xilinx FPGA. As 
i understand, we cannot use timing controls like #1 in the synthesized 
implementation. One approach, i could think of is creating a Look up 
table contain all test cases input and expected output and have it as 
part of the design. Run a counter and use the LSB bits of the counter to 
decide the test input for a given clock and check the output, in the 
event
of difference, write into a flip flop whose output would be used to 
turn-off a LED. Thus i could check whether the design has passed all the 
test conditions provided based on LED output status.

I am wondering if there are better approaches for performing validation 
of a synthesized implementation. For instance

A. Is there a way by which say, test inputs are available in a PC and 
can be streamed and generated output can be fed back to a file in PC.

B. Is there a way to mimic timing sequence control available in 
simulation and get tests done in synthesized implementation apart from 
using counters.

As i am a newbie to this, i am wondering how is this problem tackled in 
general. Any links to reference material that i could read through would 
be highly appreciated.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.