Logic and verification simulation Tutorial
11 pages
English

Logic and verification simulation Tutorial

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
11 pages
English
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Cadence VHDL/Veril og Simulation Guide and Tu torialfor use at the University of CincinnatiWei YangJanuary 2 003(Updated Jan 04, H . Carter)This guide describes, via a tutorial, how to set up the personal environment (paths andevnrionment variables), and simulate VH D L (or Verilog) models using the Cadencetools. The tutorial describes VH D L simulation, but Verilog simulation should beidentical except that the model files traditionally end in .v rather than .vhd or .vh dl. TheCadence simulator can simulate either or both VH D L and Verilog models.The Cadence tools were initially acquired in 2 001 and have been gaining increasing useas educators and researchers in the Electrical and Computer Engineering and ComputerScience (ECE CS) department have become familiar with them. All of the Cadence toolsand documentation are located in /opt/CAD/Cadence/ and can be executed only fromSun workstations served by the department servers. Since these tools are commerciallylicensed, please do not point any UR L 's to them from public websites.This guide is presented in three sections:1 .H ow to set up your environment to view the documents and run the simulator tools.You can skip this section if your environment is already set up to access the Cadencetools.2 .Executing the VH D L /Verilog simulator. Two approaches can be used to simulateVH D L /Verilog models: 1 ) manually executing a series of three programs to compile,elaborate, and simulate the ...

Informations

Publié par
Nombre de lectures 347
Langue English

Extrait

Cadence VHDL/Verilog Simulation Guide and Tutorial for use at the University of Cincinnati Wei Yang January 2003 (Updated Jan 04, H. Carter)
This guide describes, via a tutorial, how to set up the personal environment (paths and evnrionment variables), and simulate VHDL (or Verilog) models using the Cadence tools. The tutorial describes VHDL simulation, but Verilog simulation should be identical except that the model files traditionally end in.vrather than.vhdor.vhdl. The Cadence simulator can simulate either or both VHDL and Verilog models.
The Cadence tools were initially acquired in 2001 and have been gaining increasing use as educators and researchers in the Electrical and Computer Engineering and Computer Science (ECECS) department have become familiar with them. All of the Cadence tools and documentation are located in/opt/CAD/Cadence/ and can be executed only from Sun workstations served by the department servers. Since these tools are commercially licensed, please do not point any URL's to them from public websites.
This guide is presented in three sections:
1. How to set up your environment to view the documents and run the simulator tools. You can skip this section if your environment is already set up to access the Cadence tools. 2. Executing the VHDL/Verilog simulator. Two approaches can be used to simulate VHDL/Verilog models: 1) manually executing a series of three programs to compile, elaborate, and simulate the models, or 2) using a GUI to perform the simulation. We describe both methods. 3. How to visualize the simulation results.
How to Set Up Your Environment to Access Cadence Tools and Documents
The Cadence tool set actually consists of a set of tool suites. For example, there is the integrated circuit design suite which resides in the IC directory. For out purposes, we are interested in the VHDL/Verilog simulation tools which are in the LDV directory. For the instructions given below on adding path and enviornment information to the initialization files, all Cadence tools are included just in case you will unltimately need other than simulation tools in the future. Using a standard text editor likeemacsorvilines to your, add the following .cshrcor. cshrc.local initialization file after the first set path command (which looks something likeset path=(/bin /usr/bin /usr/ucb /etc .)will be using csh or tcsh (preferred). You as your working shell. If you usually useshorbash, you should executetcshwhen you execute Cadence tools.
set path=($path /usr/local/bin) # to access netscape (reqd by cdsdoc) set path=($path /opt/gnu/bin) # to access emacs set path=($path /opt/X11/bin) # to access X11 tools
set cpath="/opt/CAD/Cadence" set path=($cpath/LDV/tools/bin $path) # VHDL simulator set path=($cpath/IC/tools/dfII/bin $path) set path=($cpath/IC/tools/bin $path) set path=($cpath/DSM-SE/tools/bin $path) set path=($cpath/ICC/tools/bin $path) set path=($cpath/NCSU_CDK/bin $path) set path=($cpath/NEOCELL/tools/NeoCell/bin $path) set path=($cpath/PSD/tools/bin $path) set path=($cpath/SPR/tools/bin $path) # Place and Route set path=($cpath/SPR/BuildGates/v4.0-s008/bin $path) # BuildGates Synth set path=($cpath/SPW/tools/bin $path) set path=($cpath/VCC/tools/bin $path)
setenv CLS_CDSD_COMPATIBILITY_LOCKING NO setenv DD_DONT_DO_OS_LOCKS set
unsetenv LM_LICENSE_FILE
Accessing Cadence Documentation Before we simulate a model, it may be helpful to describe how to access the documentation. To read Cadence documentation online, executecdsdoc. A small window should appear that looks like:
Select the tool suite you want to view documentation in the top selector. I find the “Docs by type” to be the best viewing style. Expand “Manuals” in the window to see the list of documentation available. Select the document you want and it will display as a pdf file.
Setting up to Execute the Cadence VHDL/Verilog Simulator Before executing the simulator for the first time, it is necessary to create the working directory and two small files to inform the simulator where some key information is located. 1. Create a project directory named, say,project,in your home directory. mkdir project
You will do all of your simulation work in this directory. For our example here, we assumeprojectis a subdirectory of/home/youraccount/eces681. 2. cd to/home/youraccount/eces681/projectand create directoryworklib cd project mkdir worklib 3. In the project directory, create a file namedcds.libwith the following two lines:
Include /opt/CAD/Cadence/LDV/tools/inca/files/cds.lib define worklib ./worklib
4. In the project directory, create a file namedhdl.varwhich has two lines as follows:
define WORK worklib define VHDL_SUFFIX(.vhd,.vhdl)
5. Finally, create your VHDL or Verilog files in the project directory. If the models were developed elsewhere, move them to the project directory.
At this point you should copy all of the files in /http://www.ececs.uc.edu/~hcarter/tutorials/ncvhdl to your project directory. The rest of this tutorial uses these files.
Executing the Cadence VHDL/Verilog Simulator
Now we're ready to simulate. There are two ways to do it: 1) manually where we execute a sequence of three programs that compile, elaborate, and simulate the model, or 2) use a graphical interface to execute the three programs. The graphical interface approach also provides a graphical capability to view the simulation results. At this point you should copy Manual Approach Assume the model to be simulated consists of three files:packages.vhd, testbench.vhd, anddtmf_recvr_core.vhd. Thetestbenchmodel described in testbench.vhdinstantiates thedtmf_recvrmodel described indtmf_recvr_core.vhdas a component. Bothtestbenchanddtmf_recvruse objects and types described in packages.vhd. Further, let the top- most entity of the model bedtmf_recvr_core_testwhich has a single architecture calledbehavior. Then simulate the model as follows: 1. Compile the model. ncvhdl –messages packages.vhd dtmf_recvr_core.vhd testbench.vhd
1. The -message option produces additional information as the program executes. 2. -linedebug adds information in the compiled components to enable debugging during execution. 3. The files shown in the command line must be in appropriate compilation order.
You should see the output:
ncvhdl: v03.20.(s013): (c) Copyright 1995 - 2001 Cadence Design Systems, Inc. packages.vhd:  errors: 0, warnings: 0 dtmf_recvr_core.vhd:  errors: 0, warnings: 0 testbench.vhd:  errors: 0, warnings: 0 WORKLIB.TDSP_P (package):  streams: 1, words: 2259 WORKLIB.ARB_P (package):  streams: 1, words: 76
<additional 40 or so similar lines>
WORKLIB.DTMF_RECVR_CORE_TEST (entity):  streams: 1, words: 3 WORKLIB.DTMF_RECVR_CORE_TEST:BEHAVIOR (architecture):  streams: 1, words: 459 WORKLIB.DTMF_RECVR_CORE_TEST:GATE_TEST (architecture):  streams: 1, words: 460
2. Elaborate the model
Elaboration consists of connecting the units that were compiled, and establishing some initial conditions. Note that the top compiled unit is listed in the output above as the second- to-last item: (WORKLIB.DTMF_RECVR_CORE_TEST:BEHAVIOR )
ncelab -messages worklib.dtmf_recvr_core_test:behavior
The following output is displayed:
ncelab: v03.20.(s013): (c) Copyright 1995 - 2001 Cadence Design Systems, Inc.  Elaborating the design hierarchy: ncelab: *W,CUDEFB: default binding occurred for component instance (:dtmf_recvr_core_test(behavior):TOP) with design unit (WORKLIB.DTMF_RECVR_CORE:RTL). ncelab: *W,CUDEFB: default binding occurred for component instance (:dtmf_recvr_core_test(behavior):TOP@dtmf_recvr_core(rtl):ROM_INST) with design unit (WORKLIB.ROM_512X16:BEHAVIORAL).
<additional 20 or so lines>
ncelab: *W,CUDEFB: default binding occurred for component instance (:dtmf_recvr_core_test(behavior):TOP@dtmf_recvr_core(rtl): TEST_CONTROL_INST) with design unit (WORKLIB.TEST_CONTROL:RTL).  Building instance specific data structures.  Design hierarchy summary:  Instances Unique
 Components: 27 26  Default bindings: 15 - Processes: 130 130  Signals: 292 292  Writing initial simulation snapshot: WORKLIB.DTMF_RECVR_CORE_TEST:BEHAVIOR
3. Simulate the Model
We now have a single, elaborated model in worklib with the name dtmf_recvr_core_test:behaviorin the last line of output from theas shown elaboration execution. To simulate the model, execute:
ncsim worklib.dtmf_recvr_core_test:behavior
The following output is displayed:
ncsim: v03.20.(s013): (c) Copyright 1995 - 2001 Cadence Design Systems, Inc. ncsim> source /opt/CAD/Cadence/LDV-3.2/tools/inca/files/ncsimrc ncsim> run ASSERT/WARNING (time 0 FS) from package ieee.STD_LOGIC_ARITH, this builtin function called from function @ieee.std_logic_signed:"/=" Built-in relational argument contains a ('U', 'X', 'W', 'Z', '-') in an operand. ASSERT/WARNING (time 0 FS) from package ieee.STD_LOGIC_ARITH, this builtin function called from function @ieee.std_logic_signed:"=" Built-in relational argument contains a ('U', 'X', 'W', 'Z', '-') in an operand.
<some more lines>
ASSERT/WARNING (time 902 NS) from package ieee.STD_LOGIC_ARITH, this builtin function called from function @ieee.std_logic_signed:"=" Built-in relational argument contains a ('U', 'X', 'W', 'Z', '-') in an operand. ASSERT/WARNING (time 902 NS) from package ieee.STD_LOGIC_ARITH, this builtin function called from function @ieee.std_logic_signed:"=" Built-in relational argument contains a ('U', 'X', 'W', 'Z', '-') in an operand. Found digit 1 Found digit 8 Found digit 0 Found digit 0 ----------------------------------------------------- DTMF TESTING SUCCESSFULLY COMPLETED! -----------------------------------------------------ASSERT/FAILURE (time 12722660 NS) from process :main (architecture worklib.dtmf_recvr_core_test:behavior) Assertion violation. Assertion at 12722660 NS + 5 ./testbench.vhd:203 assert FALSE severity FAILURE; ncsim> exit
Note that the assertion violation is not a logical error. Rather, it is a standard way in a VHDL model to test for a termination condition to stop the simulation.
Graphical Interface Approach
There is graphical interface approach callednclaunchwhich integrates the three manual steps described above.
While in your project directory, run the command
nclaunch -new
which will bring up the window:
Now, set each directory and work library as shown (replacing “hcarter” with your home directory name). If you have not created a cds.lib or hdl.var file, select “new” as appropriate. Further, you can create a working library (“worklib” in this example) by selecting “New” next to the “Select the work library” area.
Select Ok to confirm. The following window appears:
We will now execute the three phases to simulate a VHDL model: Analyze (i.e., compile) the VHDL files, elaborate the model, and simulate the model.
1.
Analyze the vhdl file.
Select each VHDL file in turn, holding down the ctrl key to multiply select the three VHDL files. The files must be selected in compilation order (see the discussion above on the arguments on the command line forncvhdl). For this tutorial, select the files in the order:packages.vhd, dtmf_recvr_core.vhd, and testbench.vhd.
Select “Tool -> Analyzer”, and “Tool -> Enable line debug” . Click OK to begin compiling.Watch the bottom message window for errors during compilation. Alternatively, you can click on the first button to the right after “Tools” in the second menu bar to begin compilation.
2.
Elaborate the design
If no compilation errors occur, click on the “+” next to “worklib” in the right sub-window. You will see the entities names for each design unit. Expand dtmf_recvr_core_test design unit to reveal the architecture named “behavior”. Click on “behavior” as the top level design unit to be elaborated. Select “Tools”- >”elaborator”, or click on the third button to the right of “Tools” (looks like a paperclip) to begin elaboration.
3. Simulate the Design
Elaboration produces a “Snapshots “ folder. Exand it to reveal the name of the simulation snapshot:worklib.dtmf_recvr_core_test:behaviorthe. Select snapshot, then select “Tools -> Simulator” from the menu (or, alternatively, select the fourth button to the right of “Tools” on the second menu bar). Observe the message window to view the results of simulation.
To observer the signal, just choose the signals, right click mouse, choose “wave trace”. Then click the “play” button, you will get the waveform window. Note, to simulate the circuit, you need a testbench.
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents