Logic Verification Flow


What's contained in this page?

This page gives a brief description of the most current timing verification flow between a Matlab SIMULINK design and the subsequent HSPICE netlist produced by...(ta da) Rhett Davis' design flow.  Here's what you'll need:


How do I verify my SIMULINK design?  Or better yet, how do I verify my module generator?

  1. First, you need to generate some input and output test vectors in SIMULINK.
  2. Next, you need to save those vectors into files and then transfer them over into a UNIX environment if you're not already in one.  There should be one file per input/output variable and the files should be named with the following convention:

    filename:  "<netlist name>.<variable name>.<data type>.<data width>.<data radix>.<in/out>.mat"

   Sample:  Take the case of a fixed point adder.  Let the inputs to the adder be ia and ib.   Let the sum output be iz.  As declared in Matlab, let's assume the data types for ia, ib & iz are sfrac(9,3), sfrac(8,2) and sfrac(10,4) respectively.  Also, let's assume the name of the HSPICE netlist is called "adder.sp".  The corresponding vector file names for these variables should be:

For ia:   "adder.ia.sfrac.9.3.in.mat"
For ib:    "adder.ib.sfrac.8.2.in.mat"
For iz:    "adder.iz.sfrac.10.4.out.mat"
  1. Once you have the vector files, place them all in the same directory.  You can now run the timing verification script(s) to check your design.  The following is a list of the scripts available & their description/usage.  All of the following scripts can be found under the "/tools/designs/SCR1/verification/timing/scripts" directory.
  1. To view the actual waveforms for the simulation, run turboWave at the UNIX prompt and open the "timemill.out" file in your run directory.  ( Ex:   unix_prompt> turboWave &)

Fred Chen
chenff@eecs.berkeley.edu