Verdi Quickrefpdf
Verdi Quickrefpdf
Flow View
                                                                              1.   In nTrace or nWave windows, select a signal that has transitioned
Quick Reference                                                               2.
                                                                                   to an X.
                                                                                   Click Auto Trace toolbar icon      .
                                                                                   Alternatively,
Guide                                                                              •    Right-click to invoke Temporal Flow View -> Create
                                                                                        Temporal Flow View.
                                                                                   •    In Temporal Flow View, select a port signal, right-click to
                                                                                        invoke Trace Active X.
Compute Newly Added SVA in Verdi without Re-                               Count the Transitions of a Clock or Register
running Simulation                                                         1.   To turn on the Grid Count in nWave:
1.   Load design and signal level FSDB into Verdi.                              •    In nWave, invoke View -> Grid Options.
2.   In nTrace, invoke Tools -> Property Tools.                                 •    In the Grid Options form, enable the Grid on, Rising Edge,
     1. In the Property Tools window or Assertion Hierarchy                          and Grid Count with Start Number options and click the
          View pane, click the Get Properties icon         .                         Apply button at the bottom.
     2. In the Total Assertions section of the Get Properties form,             •    Left-click in the nWave window to move the start count on
          click the scope/instance that has your SVA code.                           the signal that you want to count.
          •When you see your assertion in the next column that you         2.   To Jump to the 100th rising edge, for example:
           want to evaluate, double-click it.                                   •    Go back to the Grid Options form and click on the Lock
     3. Click the OK button.                                                         Grid Count and Jump Cursor to Grid Number and click
          •You can see the chosen assertion in the hierarchy tree of the             the Apply button at the bottom.
           Property Tools window.                                          3.   From the same Grid Options form, disable the Grid on and
     4. Click the Evaluate icon          .                                      Rising Edge options, then click the Apply button at the bottom.
     5. Click the assertion that you want to evaluate in the hierarchy
          tree of the Property Tools window.                               Modify Existing Logical Operation Signals
     6. Click the RUN button at the bottom right of the Property           1.   In nWave, left-click a signal that you’d like to create a copy/
          Tools window.                                                         modify.
     7. Double-click a row in the FSDB Statistics tab, in the              2.   In nWave, invoke Signal -> Logical Operation, and then select
          Results Mode window.                                                  an existing logical operation signal in the Logical Operation
          •A Property Details area will appear below the FSDB                   form.
           Statistics tab.                                                 3.   Modify the content in the Expression field, for example, if you
                                                                                have selected an 8 bit register, perform a logical right two bit
Analyze the Reason for Assertion Failures                                       shift operation like this: “top/reg1[7:0]” >> 2
1.   Click the assertion property that you want to analyze/debug.          4.   Click the Create/Modify button.
2.   Then double-click the assertion property or click the Analyze
     Property button        .                                              Trace Memory Contents without Re-running
     Now an Analyzer tab appears at the bottom of the Property Tools       Simulators
     window.                                                               1.   From TFV, invoke Tools -> Show Memory Contents.
3.   Scroll down the Analyzer pane to view property and sequences               -OR-
     for the specific SV Assertion that you want to debug.                      From nTrace, right-click to invoke Debug Memory -> Show
4.   Notice the time information above and the data information                 Memory Contents.
     below the variable signals in the sequences.                          2.   In nMemory window, invoke Time -> Sync Cursor Time to
5.   Click the Expand button        .                                           automatically locate the last write.
     This will focus in on the logical failures in the sequence.
6.   In nWave, select the SV Assertion that you want to debug and          Compute Memory Contents and Write to an
     invoke Waveform -> Expand/Shrink Property Signal.                     FSDB File
7.   View the expanded assert at top for the specific SV assertion that    1.   Find location for memory array. In nTrace source code pane,
     you want to debug.                                                         right-click to invoke Debug Memory -> Dump Memory
8.   To automatically add the evaluated/analyzed SVA property to the            Waveform to FSDB.
     nWave window, invoke View -> Options from the Property Tools               •    In Dump Memory Waveform to FSDB form, be sure to set
     window.                                                                         start time and end time and enter name for Dump FSDB
     •    From the Analyzer tab of the Assertion Options form,                       File similar as “my_memory_dump.fsdb”,
          enable the Add Evaluated Signals to nWave                             •    Then click Start Dumping button.
          Automatically option.                                            2.   In nWave, invoke File -> Edit Virtual File.
                                                                                •    In Virtual File Editor form, set Virtual File Name similar
Shift Time for Signals                                                               as "original_plus_memory_data.vf";
1.   To shift the complete FSDB file:                                           •    Then select the original FSDB file and the new
                                                                                     "my_memory_dump.fdsb" file and click the Add button.
     •    Then click the OK button.                                             •    Select Full, Partial or Any Change in Toggle Criterion
3.   Find the location for the memory array. In nTrace source code                   section.
     pane, right-click to invoke Debug Memory -> Show Memory                    •    Then click Apply button.
     Contents.                                                                  •    Click the Report button to see the toggle report.
     •    Then in Get Memory Variable form, select Dumped by               3.   In the Toggle Coverage Report form, select Toggled or Not
          Simulator tab, find your memory array name in right side              Toggled in the List by section.
          of form. Select it and then click OK button.                     4.   To save report, click the Save button and save the result as
4.   Finally, in nMemory window, click the search arrow buttons to              "something.rpt".
     find changes of last write in memory array. These changes will
     show in red.
                                                                           Compare Two FSDB Mismatches
                                                                           1.   Open two nWave windows with different FSDB files. Ideally
Virtually Combine Multiple FSDB Files as a                                      pass vs. fail FSDB files on same test or RTL vs. Gate simulation
Single FSDB                                                                     on locked in signal names.
1.   Open a new nWave window.                                                   •    In the first nWave window, invoke File -> Open, select an
     •    In nTrace, click nWave icon on menu bar                                    FSDB file and click the Add button, then click OK button.
          -OR-                                                                  •    In the second nWave window, invoke File -> Open, select a
     •    Invoke Tools -> New Waveform from pull-down menu.                          different FSDB file and click the Add button, then click OK
2.   In nWave, invoke File -> Edit Virtual File.                                     button.
     •    In the Virtual File Editor form, enter a name for your virtual   2.   Put the same signals to the two nWave windows. You can drag
          file in the Virtual File Name section, similar as                     and drop signals from one nWave window to another.
          "total_virtual_file.vf".                                         3.   Synchronize the nWave window cursors.
     •    Select an FSDB file and click the Add button. Add more                •    In the first nWave, invoke Windows -> Sync Waveform
          files in the same way, and then click the OK button.                       View.
3.   If you already have many other FSDB files opened in the current            •    In the second nWave, invoke Windows -> Sync Waveform
     nWave window, you have to set the new virtual file as active:                   View.
     •    In nWave, invoke File -> Set Active.                             4.   Compare any parts of the signals, e.g. compare all signals in each
     •    In the Active File form, select the virtual file that you just        group for both nWave windows.
          created and click the OK button.                                      •    In nWave, invoke Tools -> Waveform Compare
                                                                                     -> Compare Two Groups.
Aliasing and Alias Files                                                        •    In Compare Two Groups form, click Groups in Different
                                                                                     Windows.
1.   Use the -autoalias option on Verdi command line for automatic
     mnemonic recognition for ‘defines and parameters.                          •    Select the first group name from the first Group Name
                                                                                     selection field. And select the second group name from the
     •     % verdi -f run.f -autoalias
                                                                                     second Group Name selection field.
2.   Use aliasextract to extract an alias file from a compiled library.
                                                                                •    The Comparison Result form shows your comparison
     The default is extracted.alias.
                                                                                     results for the signals in each group.
     •     % vericom –f run.f –lib work
                                                                                •    To save report, click Save button to save the report as a .txt
     •     % aliasextract -lib work                                                  file.
3.   Use the -aliasFile option on Verdi command line to load an alias      5.   Search by mismatches:
     file.
                                                                                •    In the first nWave window, make sure Search By option is
     •     % verdi -top system -aliasFile extracted.alias                            set to Mismatches (/), then click on the blue horizontal
4.   To add an alias file from nWave:                                                arrows next to the Search By option.
     •     In nWave, click a bus signal in the hierarchy pane.
     •     Invoke Waveform -> Signal Value Radix -> Add Alias              Compress Time Region
           from File.                                                      1.   In nWave, invoke View -> Compress Time Range.
     •     Then select the .alias file, and click OK button.                    •    In the Compress Time Range form, enter the value in the
     •     The .alias file contains lines that look as following:                    From Time and To Time fields.
           ADDA            6'h0d                                                     -OR-
           ADDB            6'h0e                                                •    Go to nWave window, left-click a starting time and right-
                                                                                     click an ending time, then go back to Compress Time Range
Toggle Coverage Analysis                                                             form and click Cursor/Marker button.
1.   Bring in as many FSDB files as you like:                                   •    Click the Insert button.
     •    In nWave, invoke File -> Open.                                   2.   Compress time in the nWave window.
     •    Select an FSDB file and click the Add button (select more if          •    You can add more compressed time ranges by repeating
          needed). Then click OK button.                                             previous steps.
2.   In nWave, invoke Tools -> Toggle Coverage Report.                          •    You can also remove compressed time ranges by clicking a
     •    In the Toggle Coverage form, your FSDB files are shown in                  specific compressed time range in the main section in the
          the Target File(s) section.                                                Compress Time Range form and click the Delete button.
     •    When done, click the Close button.                                    Single write and read transactions will be displayed in the
                                                                                waveform.
Collapse Source Code                                                       9.   In nWave, compare read and write transactions to bus signals.
1.   In nTrace\, enable Automatic Source Code Folding option in
     Tools -> Preferences -> Source Code page -> Miscellaneous             Advanced Transaction Analysis
     page.                                                                 1.   In nWave, invoke Tools -> Transaction -> Analysis Window to
2.   In the source code of the nTrace window, you see process and               open the Transaction Analyzer window.
     while blocks with a [-] and [+] next to the line number. Click on     2.   Add a few transaction streams into the Transaction Analyzer
     the minus [-] icon to collapse code.                                       window by clicking the Get Signals button. Then double-
3.   If you want to expand all the collapsed code, invoke View ->               clicking on transactions in the Get Signals form.
     Source Code Folder -> Expand All in Scope in nTrace.                  3.   Click on column heading to sort.
4.   To collapse all the code in a specific module, invoke View ->         4.   Click on Statistic Window icon, then click on Full Range
     Source Code Folder -> Collect All in Scope in nTrace.                      button and click OK.
                                                                           5.   In Statistic Window, invoke Window -> Duplicate Window as
Transaction Evaluator                                                           -> Pie Chart.
1.   Transactions can come from multiple sources:
     •    Some languages, i.e. SystemC, e, SVTB and Vera, have a           nAnalyzer - Clock Tree Crossing
          notion of transactions and abstract transaction-level data can
          be directly dumped into the FSDB database.                       NOTE: This Topic is still considered general beta.
     •    Transaction IP such as SpiraTech can dump transaction-
          level data using APIs since they are transaction-aware.          1.   In nTrace, invoke Tools -> New Schematics -> Clock Tree.
     •    End-users can bolt in our API into their own proprietary         2.   Click the Import SDC Format button to open the Load SDC
          tools or models to dump the data in transaction format.               form.
2.   Describe the sequence of events that make up transactions in          3.   Select a SDC (Synopsys Design Constraint) file and then click
     SVA and use the Transaction Evaluator engine to create the                 OK to extract clock trees for the target clock sources.
     transaction data. Reasons for using SVA:                              4.   In nTrace, invoke Tools -> Clock Analyzer -> Extract Clock
     •    It is a standard language which many users are becoming               Information.
          increasingly familiar with. The ramp-up time for adoption is
          hence much shorter.                                              nAnalyzer - Switching Reports
     •    Assertion languages have facilities to specify temporal
          sequences of events.                                             NOTE: nAnalyzer is an optional Verdi module.
     •    Some of the SVA code that is written for its original
          purpose, i.e. assertion checking, can be re-used for             1.   In nTrace, invoke Tools -> Switching Analysis -> New Query.
          transaction extraction.                                               •    In Switching Analysis form, working scope should be a
     •    SVA has local variables which can map to transaction                       scope that you want to focus on, or just use the top scope for
          attributes. SVA’s local variables give it an advantage in this             everything, e.g. tb_CPUsystem.i_CPUsystem.i_CPU;
          regard over other assertion languages.                                •    Enable Include Instances under the Hierarchy.
3.   When the waveform view is too cluttered with signals, define the           •    Enable Switching Activity Report for the report type.
     transaction using SVA. A suffix of _nTX is recommended for the             •    Click OK.
     assertion name.
                                                                           2.   In the Switching Analysis Report window,
4.   In nTrace, invoke Tools -> Transaction -> Transaction
                                                                                •    In the Filters tab, enter in a module name to search for, i.e.,
     Evaluator.
                                                                                     enter: *alu* in the Module text field.
5.   In the Transaction Evaluator form, select a transaction to drag
                                                                                •    In the Sorting Scheme tab, select the Sort By option as
     and drop into nTrace.
                                                                                     Name and also enable the Ascend option. Left-click the
6.   In nTrace, double-click the property referenced in the assert                   Transition Count column to sort the results by the number
     statement to trace to the underlying sequence.                                  of transitions.
                                                                           3.   In the Switching Analysis Report window, click the New Query
NOTE: The sequence describes a sequence of signal events that can               button to open the Switching Analysis form.
          be used to capture transaction-level data for the ‘single
          write’ action with the Transaction Evaluator engine.                  •    In the Switching Analysis form, you can change the working
                                                                                     scope to another level, i.e.,
7.   In Transaction Evaluator form, click Evaluate button to create a                tb_CPUsystem.i_CPUsystem.i_CPU.i_ALUB.i_alu;
     new FSDB with transaction data.                                            •    Enable the Peak Activity Report option in the Report
8.   In nWave, open Get Signals form to select the transaction                       Type section.
     streams, e.g. NEW_ASSERT_nTX under the scope where you
     put your transaction code and add to waveform. Select one of the
     transactions of NEW_ASSERT_nTX in waveform area, and then
     click-right on Properties to open Transaction Property form to
     change each of its attribute’s value radix to “Hexadecimal”.
     •    Click OK.                                                            •    Then select a path with the worst slack
                                                                               •    Click File Viewer in Show On section, then click Show
NOTE: The new Switching Analysis Report window has different                        button at bottom
          Time stamps with Transition Count and also notice the                     -OR-
          “Time Period” at the top of the window should have some
          range, e.g. “0 ~ 15000 x ns”.                                        •    click on nSchema in Show On section, then click Show
                                                                                    button at bottom.
     •    To find the location for the highest peak activity for an       3.   In nSchema, invoke Schematic -> Auto Fit Found Object(s).
          instance of time, double-click on the row in the Switching           Drag longest slack path on delay to nSchema
          Analysis Report window that has the time that you want to       4.   Fix the delay. In nSchema, find the cell output pin that may have
          see. This will open a new Switching Analysis Report                  the highest slack, and right-click for Trace Connectivity.
          window but the Time Period will be one snapshot in time,
                                                                               •    Assume the combinational logic on the load is too much,
          i.e. “3000 ~ 3000 x ns”. This will give you all the locations
                                                                                    then, right-mouse-click and drag over all necessary and
          in that time snapshot and their Transition Counts.
                                                                                    Shift click all Connected logic.
                                                                          5.   In nSchema, invoke Tools -> New Schematic -> ECO Window
nAnalyzer - Timing Analysis                                                    for Selected.
                                                                          6.   In ECO Window, for example, to share a load of eight cells:
NOTE: nAnalyzer is an optional Verdi module.
                                                                               •    Shift click on bottom four B inputs, then click Disconnect
                                                                                    Pin from Net button, at top of window.
1.   In nTrace, invoke File -> SDF -> Load SDF Files ->
     <your_sdf_file>.sdf                                                       •    Find the cell that has too much load on it, right-click on cell
                                                                                    to invoke Copy Instance, and then right-click to invoke
2.   In nTrace, invoke Source -> Find String; enter the name of a
                                                                                    Paste Instance.
     register where you want to start. Select Match Case and In All
     Files options; double-click on desired result in the message pane         •    Click on output of new cell to carry load and previous
     at the bottom of the nTrace window.                                            disconnected pins, and then click on Make Connection
                                                                                    button at top of Window.
3.   In nTrace, click nSchema icon.
                                                                               •    Connect all inputs of old loaded cell to inputs of new copy
4.   In nSchema, invoke Trace -> Two Points.
                                                                                    that will help share the load.
5.   In nTrace, drag and drop starting point output pin into From
                                                                               •    Click the Keep Placement button at top of window to turn
     field of Trace Two Points form.
                                                                                    it off and on to reroute placement.
6.   In nTrace, invoke Source -> Find String; enter some name of a
                                                                               •    In nECO, invoke File -> Commit Change.
     register where you want to end; Select Match Case and In All
     Files options; Double-click on desired result in the message pane    7.   In nTrace, change to the scope where the change was made by
     at the bottom of the nTrace window.                                       double-clicking, then search for the word Novas to see changes
7.   In nTrace, drag and drop ending point output pin into To field of    8.   In nTrace, invoke File -> ECO -> Save ECO Netlist can also
     Trace Two Points form.                                                    save eco script.
8.   In Trace Two Points form, click the Trace button.                         •    To save ECO Netlist form, turn on Affected Files Only,
                                                                                    then click OK.
     •     In View Trace Result Schematic window, invoke Schematic
           -> SDF Annotation.                                             9.   In nTrace, invoke File -> ECO -> ECO Report.
     •     In View Trace Result Schematic window, invoke Schematic             •    In ECO Report form, append eco0/eco.log to the Full File
           -> Delay Type and Schematic -> Delay Scale.                              Name text field, then click OK.
     •     In View Trace Result Schematic window, invoke Trace ->              •    % cd eco0; % emacs eco.log
           Shortest/Longest Path and select Longest.
     •     In nSchema window, right-click on cell to invoke Show          Accelerate Simulation and Reduce Dumping Size
           Cell Delay.                                                    with Siloti
                                                                          1.   Run a Siloti command as following:
nECO                                                                           •    % esa –f run.f –hier_eslist es.list –bas cmp_top.iop
- Graphical Engineering Change Order                                           •    -bas <scope> = Perform Behavior Analysis on the specified
Enhancement Tool                                                                    scope immediately after loading design. If the specified
                                                                                    scope does not exist, Behavior Analysis will not be
- Modify Gate Level Netlist
                                                                                    performed.
- Non-Freeze Silicon ECO                                                       •    –hier_eslist = Specify the output file name for hierarchical
                                                                                    format only; recommended for simulation to get better
NOTE: nECO is an optional Verdi module.                                             performance.
                                                                          2.   We have analyzed the design with Behavior Analysis to generate
NOTE: Frozen Silicon, spare cells need to be specified.                        a minimal but sufficient set of signals to be dumped during
                                                                               simulation to provide 100% visibility during debug.
1.   In nTrace, invoke File -> Import Path Data File to open a            3.   Be sure to add in the Novas FSDB dumping commands into your
     Timing Report form.                                                       testbench:
2.   In Timing Report form,                                                    •    $fsdbDumpfile("esd.fsdb");
     •    After Enable Sorting, select Descending or Ascending.                •    $fsdbDumpvarsES("es.list");
4.   Then run your simulation again.
5.   The result of this simulation is in the ‘esd.fsdb’ file. You could
     have named it anything.
6.   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 non-
          incremental 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 module-
          based mode.
7.   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.
8.   Drag local signals to nWave. Drag an instance in the Verdi
     session.
9.   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