day2 intro. model sim
DESCRIPTION
TRANSCRIPT
ModelSim OverView
What we already learnedWhat we already learned
● Verilog can model: behavioral, RTL structure● Module: basic unit in Verilog● A tutorial: Module instantiation, stimulus, respone● Procedure block: initial, always
ModelSim RTL simulation1. Create libraries.2. Map to libraries.3. Compile source code and testbenches.4. Load the design.5. Add design stimulus.6. View the simulation results.7. Advance the simulator
ModelSim Tutorial
ModelSim Tool OverView
ModelSim Flow 1
2
3
4
5
Link
Vlog order independent
ModelSim use mode
Command Mode
Batch Run
ModelSim Tutorial
Projects
ModelSim: New Project File > New > Project
− *.mpf
Add Existing File
HDL files 路徑名稱不能有中文
Add Existing File
File > Add to Project
Compile
Mouseright click
Load Design
Mouse doubleClick
Simulate > End Simulation.
OPEN CLOSE A PROJECT FILE > OPEN
FILE > CLOSE
ModelSim Tutorial
Projects Folder
Add Folder File > Add to Project > Folder.
Add a sub folder File > Add to Project > Folder.
Move Files to folder HDL
NOTE:NO actual directories created in the file system.
ModelSim Tutorial
Simulation Configuration
Simulation Configuration File > Add to Project > Simulation Configuration.
Loading
ModelSim Tutorial
Project Setting
Right Click > Properties...
Project Setting
ModelSim Tutorial
Waveform Display
Waveform Window
Add wave
View wave Add wave * OR
VIEW > DEBUG WINDOWS > WAVE
Add signals to waveform
Or, Mouse Drag-and-Drop
Zoom-in 2X Zoom-in
2X Zoom-out
Full
Cursor in Wave Window
Rename the Cursor
Mouse Right Click A
Add Cursor
Click Rename
Cursor2 to B
Drag Bto measurethe Delta
Cursor
CURSOR HERE
Window Undock & Dock
Tools > Combine Signal
Save Waveform Format: File > Save
File > LoadSelect wave.do
ModelSim Tutorial
SDF
SDF SDF versions 1.0 through 4.0 vsim
-sdfmin [<instance>=]<filename>-sdftyp [<instance>=]<filename>-sdfmax [<instance>=]<filename>
Exvsim -sdfmax /testbench/u1=myasic.sdf testbench
OrSimulate > Start Simulation> SDF
$sdf_annotate system task $sdf_annotate (["<sdffile>"], [<instance>],
["<config_file>"], ["<log_file>"], ["<mtm_spec>"], ["<scale_factor>"], ["<scale_type>"]);
Ex$sdf_annotate("myasic.sdf", testbench.u1);$sdf_annotate("myasic.sdf", testbench.u1, , , "maximum");
The SDF TIMESCALE construct specifies time units of values in the SDF file. The annotator rounds timing values from the SDF file to the time precision of the module that is annotated. For example, if the SDF TIMESCALE is 1ns and a value of .016 is annotated to a path delay in a module having a time precision of 10ps (from the timescale directive), then the path delay receives a value of 20ps. The SDF value of 16ps is rounded to 20ps. Interconnect delays are rounded to the time precision of the module that contains the annotated MIPD.
ModelSim Tutorial
Library
Appendix