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