mirror of
https://github.com/verilator/verilator.git
synced 2025-01-07 15:17:36 +00:00
75 lines
2.0 KiB
Verilog
75 lines
2.0 KiB
Verilog
// DESCRIPTION: Verilator: Verilog Test module
|
|
//
|
|
// This file ONLY is placed into the Public Domain, for any use,
|
|
// without warranty, 2009 by Wilson Snyder.
|
|
|
|
module t;
|
|
|
|
integer p_i;
|
|
reg [7*8:1] p_str;
|
|
string sv_str;
|
|
reg [7*8:1] p_in;
|
|
string sv_in;
|
|
|
|
initial begin
|
|
if ($test$plusargs("PLUS")!==1) $stop;
|
|
if ($test$plusargs("PLUSNOT")!==0) $stop;
|
|
if ($test$plusargs("PL")!==1) $stop;
|
|
//if ($test$plusargs("")!==1) $stop; // Simulators differ in this answer
|
|
if ($test$plusargs("NOTTHERE")!==0) $stop;
|
|
|
|
p_i = 10;
|
|
if ($value$plusargs("NOTTHERE%d", p_i)!==0) $stop;
|
|
if (p_i !== 10) $stop;
|
|
|
|
p_i = 0;
|
|
if ($value$plusargs("INT=%d", p_i)!==1) $stop;
|
|
if (p_i !== 32'd1234) $stop;
|
|
|
|
p_i = 0;
|
|
if ($value$plusargs("INT=%H", p_i)!==1) $stop; // tests uppercase % also
|
|
if (p_i !== 32'h1234) $stop;
|
|
|
|
p_i = 0;
|
|
// Check octal and WIDTH
|
|
if (!$value$plusargs("INT=%o", p_i)) $stop;
|
|
if (p_i !== 32'o1234) $stop;
|
|
|
|
p_str = "none";
|
|
if ($value$plusargs("IN%s", p_str)!==1) $stop;
|
|
$display("str='%s'",p_str);
|
|
if (p_str !== "T=1234") $stop;
|
|
|
|
sv_str = "none";
|
|
if ($value$plusargs("IN%s", sv_str)!==1) $stop;
|
|
$display("str='%s'",sv_str);
|
|
if (sv_str != "T=1234") $stop;
|
|
|
|
sv_str = "none";
|
|
$value$plusargs("IN%s", sv_str);
|
|
$display("str='%s'",sv_str);
|
|
if (sv_str != "T=1234") $stop;
|
|
|
|
p_in = "IN%s";
|
|
`ifdef VERILATOR
|
|
p_in = $c(p_in); // Prevent constant propagation
|
|
`endif
|
|
sv_str = "none";
|
|
if ($value$plusargs(p_in, sv_str)!==1) $stop;
|
|
$display("str='%s'",sv_str);
|
|
if (sv_str != "T=1234") $stop;
|
|
|
|
sv_in = "INT=%d";
|
|
`ifdef VERILATOR
|
|
if ($c1(0)) sv_in = "NEVER"; // Prevent constant propagation
|
|
`endif
|
|
p_i = 0;
|
|
if ($value$plusargs(sv_in, p_i)!==1) $stop;
|
|
$display("i='%d'",p_i);
|
|
if (p_i !== 32'd1234) $stop;
|
|
|
|
$write("*-* All Finished *-*\n");
|
|
$finish;
|
|
end
|
|
endmodule
|