NEWSLETTERS
QUICK REF. CARDS
TOOL & UTILITIES
QUICK REF. for PDAs
TECHNOTES
Automated Incremental Save in Verilog-XL®

Saving frequent value-change dumps during simulation is invaluable in tracking down errors, if it can be done without slowing down the simulation too much, running out of disk space, or excessive monitoring.

Combining '$incsave' (which can be put in an 'always' loop to keep saving the incremental database during simulation after a specified interval of time), with the Verilog '$system' function call, provides an efficient, "automated" way of maintaining an ongoing dump by removing previously saved incremental files if no error is encountered for a long time.

Functional Description:
. Every N ns
  . If Error
      . Print error message
      . Print Iteration_Num
    . $finish
    else
      if (first iteration)
        do a complete save
      else
        do an incremental save
        if Iteration_Num > M
           delete saved file for
                  iteration_Num-M
        end if
      end if

Since '$incsave' normally takes the name of the file as a fixed string, our algorithm will require string manipulation for changing the name of the incremental files, each time with a unique name. A string is used as a variable in the '$incsave' command to generate a new file each time.

The algorithm looks straightforward, but since string manipulation is not so obvious in Verilog, this method of automatically assigning unique file names can be easily overlooked. >> Download Now

 

®Verilog-Xl is a trademark of Cadence Design Systems, Inc

Feedback   |   Contact   |   Privacy & Legal © 2006 Comit Systems. All rights reserved