Verdi-Quick Ref PDF
Verdi-Quick Ref PDF
Verdi-Quick Ref PDF
Table of Contents
Automatic Tracing of Value with Verdis Temporal Flow View Automatic Tracing of Xs with Verdis Temporal Flow View Choose Cycled Based or Transition Based TFV Active Tracing of RTL Function Debugging Macro Debugging SystemVerilog TestBench (SVTB) FSDB Logging SystemVerilog TestBench (SVTB) Testbench Browser Compile and Dump SystemVerilog Assertion Compute Newly Added SVA in Verdi without Re-running Simulation Analyze the Reason for Assertion Failures Shift Time for Signals Count the Transitions of a Clock or Register Modify Existing Logical Operation Signals Trace Memory Contents without Re-running Simulators Compute Memory Contents and Write to an FSDB File Virtually Combine Multiple FSDB Files as a Single FSDB Aliasing and Alias Files Toggle Coverage Analysis Compare Two FSDB Mismatches Compress Time Region Collapse Source Code Transaction Evaluator Advanced Transaction Analysis nAnalyzer - Clock Tree Crossing nAnalyzer - Switching Reports nAnalyzer - Timing Analysis nECO - Graphical Engineering Change Order Enhancement Tool - Modify Gate Level Netlist - Non-Freeze Silicon ECO Accelerate Simulation and Reduce Dumping Size with Siloti Resources
5.
6. 7.
3. 4.
In nTrace, invoke Source -> Active Annotation. Click on the signal, right-click to invoke Active Trace.
waveform pane to drag and drop in the source code pane of the Testbench Browser window to find the source code which produces the message.
Function Debugging
1. 2. 3. 4. In nTrace, find a signal that is driven by a function, i.e. add, etc. Invoke Source -> Function Annotation. Double-click the function, i.e. add. Click on function, i.e. add to jump back.
Macro Debugging
1. 2. 3. In nTrace, find a macro, i.e. MACRO1(CLOCK2). Put your mouse cursor on MACRO1. The tip window shows the definition of MACRO1. Invoke Source -> Expand Macro.
NOTE: With above +ext+ examples, files with extension name (.sv
or .SV) will automatically be recognized as SystemVerilog. Files with extension name (.v2k) will automatically be recognized as Verilog-2001. Files with extension name (.v) will automatically be recognized as Verilog-95. 2. Dumping: $fsdbDumpSVA; command is required to dump SVA. Only asserts will be dumped, Verdi will calculate properties automatically when analyzing. For VCS, set LD_LIBRARY_PATH to the Novas dumper, the VCS version will be selected automatically. For example: % setenv LD_LIBRARY_PATH ${NOVAS_INST_DIR}/ share/PLI/VCS/${PLATFORM} Include the -debug_pp option to enable the basic post processing debug capability. Include the -sverilog option to enable SystemVerilog features. Use the -P option to specify the Novas PLI table file. For example: % vcs -line -debug_pp \ -P ${NOVAS_INST_DIR}/share/PLI/VCS/ ${PLATFORM}/novas.tab \ ${NOVAS_INST_DIR}/share/PLI/VCS/ ${PLATFORM}/pli.a \ -f run.f -sverilog For IUS, set LD_LIBRARY_PATH to the Novas dumper, the IUS version will be selected automatically. For example: % setenv LD_LIBRARY_PATH ${NOVAS_INST_DIR}/ share/PLI/IUS/${PLATFORM} Include the -sv option to enable SystemVerilog features for ncvlog. Include the -access +R option to add read access to attempt for NCSim. For example: % ncvlog -sv -f run.f % ncelab top -access +R % ncsim top For Modelsim, set LD_LIBRARY_PATH to the Novas dumper, the Modelsim version will be selected automatically. For example: % setenv LD_LIBRARY_PATH ${NOVAS_INST_DIR}/ share/PLI/MODELSIM/${PLATFORM}
2.
Include the -sva and -assertdebug in vsim command line. Use the -pli option to specify the Novas PLI table file. For example: % vlog -f run.f % vsim -sva -assertdebug -pli ${NOVAS_INST_DIR}/share/PLI/MODELSIM/ ${PLATFORM}/novas_fli.so top
2.
3.
In nWave, invoke Waveform -> Waveform Time -> Shift File Time. To shift just one signals time: In nWave, invoke Waveform -> Waveform Time -> Shift Individual Signal Time. Enter the time (+ or -) to shift the FSDB file or signal by, for example: 500.
2.
3.
3.
3. 4. 5. 6. 7. 8.
2.
2.
3.
4.
Then click the OK button. Find the location for the memory array. In nTrace source code pane, right-click to invoke Debug Memory -> Show Memory Contents. Then in Get Memory Variable form, select Dumped by Simulator tab, find your memory array name in right side of form. Select it and then click OK button. Finally, in nMemory window, click the search arrow buttons to find changes of last write in memory array. These changes will show in red.
3. 4.
Select Full, Partial or Any Change in Toggle Criterion section. Then click Apply button. Click the Report button to see the toggle report. In the Toggle Coverage Report form, select Toggled or Not Toggled in the List by section. To save report, click the Save button and save the result as "something.rpt".
2.
2. 3.
3.
4.
2.
3.
5.
4.
2.
Single write and read transactions will be displayed in the waveform. In nWave, compare read and write transactions to bus signals.
2.
3. 4.
3. 4. 5.
Transaction Evaluator
1. Transactions can come from multiple sources: Some languages, i.e. SystemC, e, SVTB and Vera, have a notion of transactions and abstract transaction-level data can be directly dumped into the FSDB database. Transaction IP such as SpiraTech can dump transactionlevel data using APIs since they are transaction-aware. End-users can bolt in our API into their own proprietary tools or models to dump the data in transaction format. Describe the sequence of events that make up transactions in SVA and use the Transaction Evaluator engine to create the transaction data. Reasons for using SVA: It is a standard language which many users are becoming increasingly familiar with. The ramp-up time for adoption is hence much shorter. Assertion languages have facilities to specify temporal sequences of events. Some of the SVA code that is written for its original purpose, i.e. assertion checking, can be re-used for transaction extraction. SVA has local variables which can map to transaction attributes. SVAs local variables give it an advantage in this regard over other assertion languages. When the waveform view is too cluttered with signals, define the transaction using SVA. A suffix of _nTX is recommended for the assertion name. In nTrace, invoke Tools -> Transaction -> Transaction Evaluator. In the Transaction Evaluator form, select a transaction to drag and drop into nTrace. In nTrace, double-click the property referenced in the assert statement to trace to the underlying sequence.
2.
3.
4. 5. 6.
2.
3.
Click OK.
5. 6.
3. 4. 5. 6.
7. 8.
7. 8.
9.
Then select a path with the worst slack Click File Viewer in Show On section, then click Show button at bottom -OR click on nSchema in Show On section, then click Show button at bottom. In nSchema, invoke Schematic -> Auto Fit Found Object(s). Drag longest slack path on delay to nSchema Fix the delay. In nSchema, find the cell output pin that may have the highest slack, and right-click for Trace Connectivity. Assume the combinational logic on the load is too much, then, right-mouse-click and drag over all necessary and Shift click all Connected logic. In nSchema, invoke Tools -> New Schematic -> ECO Window for Selected. In ECO Window, for example, to share a load of eight cells: Shift click on bottom four B inputs, then click Disconnect Pin from Net button, at top of window. Find the cell that has too much load on it, right-click on cell to invoke Copy Instance, and then right-click to invoke Paste Instance. Click on output of new cell to carry load and previous disconnected pins, and then click on Make Connection button at top of Window. Connect all inputs of old loaded cell to inputs of new copy that will help share the load. Click the Keep Placement button at top of window to turn it off and on to reroute placement. In nECO, invoke File -> Commit Change. In nTrace, change to the scope where the change was made by double-clicking, then search for the word Novas to see changes In nTrace, invoke File -> ECO -> Save ECO Netlist can also save eco script. To save ECO Netlist form, turn on Affected Files Only, then click OK. In nTrace, invoke File -> ECO -> ECO Report. In ECO Report form, append eco0/eco.log to the Full File Name text field, then click OK. % cd eco0; % emacs eco.log
nECO - Graphical Engineering Change Order Enhancement Tool - Modify Gate Level Netlist - Non-Freeze Silicon ECO
NOTE: nECO is an optional Verdi module.
2.
4. 5. 6.
7.
8. 9.
Then run your simulation again. The result of this simulation is in the esd.fsdb file. You could have named it anything. Load design and essential signal FSDB file into Verdi: % verdi f run.f ssf esd.fsdb ba de sigexp ba_mode WSBA ba = Perform Behavior Analysis immediately after loading design. de = Perform Data Expansion setup (auto time window mode) automatically after loading the design. sigexp = Enable signal expansion by default. All signals in the design are displayed in the Get Signals form whether they are dumped to the FSDB file during simulation or they can be expanded. ba_mode WSBA = Run Behavior Analysis in nonincremental mode. Specify WSBA to do scope base Behavior Analysis for all top scopes. There are two modes for this argument: WSBA: Perform non-incremental Behavior Analysis in working scope mode. MBBA: Perform incremental Behavior Analysis in modulebased mode. Enable Active Annotation by invoking Source -> Active Annotation in nTrace to view data expansion results. Note that the value calculated by the Data Expansion engine will be marked as purple. Drag local signals to nWave. Drag an instance in the Verdi session. Create a Temporal Flow View from this transition to view full capabilities of Verdi debug.
Resources
Verdi User's Guide & Tutorial: $NOVAS_HOME/doc/ VerdiTut.pdf Siloti User's Guide & Tutorial: $NOVAS_HOME/doc/ SilotiTut.pdf nECO User's Guide & Tutorial: $NOVAS_HOME/doc/ nECO.pdf nAnalyzer User's Guide & Tutorial: $NOVAS_HOME/doc/ nAnalyzer.pdf nCompare User's Manual: $NOVAS_HOME/doc/ nCompare.pdf Demo cases: $NOVAS_HOME/demo Verdi and Siloti Command Reference Manual: $NOVAS_HOME/doc/novas.pdf Application Notes, FAQ, Newsletter, Release Notes: http:// support.springsoft.com