User guide

2-11
Modeling Your Design
An example of the $test$plusargs system function is as follows:
initial
if ($test$plusargs("postprocess"))
begin
$vcdpluson(0,design_1);
$vcdplustraceon(design_1);
$vcsplusdeltacycleon;
$vcdplusglitchon;
end
In this technique you do not include the +define compile-time
argument on the vcs command line. Instead you compile the system
tasks into the testbench and then enable the execution of the system
tasks with the runtime argument to the $test$plusargs system
function. So for this example the simv command line is as follows:
% simv +postprocess
During simulation VCS writes the VPD file with all the information
specified by these system tasks. Later you can execute another simv
command line, without the +postprocess runtime option. As a
result, VCS does not write the VPD file, and therefore runs faster.
There is a pitfall to this technique. This system function will match
any plusarg that has the function’s argument as a prefix. For example:
module top;
initial
begin
if ( $test$plusargs("a") )
$display("\n<<< Now a >>>\n");
else if ( $test$plusargs("ab") )
$display("\n<<< Now ab >>>\n");
else if ( $test$plusargs("abc") )
$display("\n<<< Now abc >>>\n");
end
endmodule