iverilog/ivtest/ivltests/sv_timeunit_prec3a.v

179 lines
3.4 KiB
Coq
Raw Normal View History

/*
* Check the basic parsing.
*/
// A global timeunit and timeprecision are OK
timeunit 100us;
timeprecision 1us;
/*
* Check the various timeunit/precision combinations (this is valid SV syntax).
*/
// A local time unit is OK.
module check_tu;
timeunit 10us;
endmodule
// A local time precision is OK.
module check_tp;
timeprecision 10us;
endmodule
// Both a local time unit and precision are OK.
module check_tup;
timeunit 10us;
timeprecision 10us;
endmodule
// Both a local time unit and precision are OK (check both orders).
module check_tpu;
timeprecision 10us;
timeunit 10us;
endmodule
/*
* Now do the same with repeat declarations (this is valid SV syntax).
*/
// A global timeunit and timeprecision are OK
timeunit 100us;
timeprecision 1us;
// A local time unit is OK.
module check_tu_d;
timeunit 10us;
timeunit 10us;
endmodule
// A local time precision is OK.
module check_tp_d;
timeprecision 10us;
timeprecision 10us;
endmodule
// Both a local time unit and precision are OK.
module check_tup_d;
timeunit 10us;
timeprecision 10us;
timeunit 10us;
timeprecision 10us;
endmodule
// Both a local time unit and precision are OK (check both orders).
module check_tpu_d;
timeprecision 10us;
timeunit 10us;
timeprecision 10us;
timeunit 10us;
endmodule
/*
* Now check all the valid timeunit and time precision values.
*/
module check_100s;
timeunit 100s;
timeprecision 100s;
endmodule
module check_10s;
timeunit 10s;
timeprecision 10s;
endmodule
module check_1s;
timeunit 1s;
timeprecision 1s;
endmodule
module check_100ms;
timeunit 100ms;
timeprecision 100ms;
endmodule
module check_10ms;
timeunit 10ms;
timeprecision 10ms;
endmodule
module check_1ms;
timeunit 1ms;
timeprecision 1ms;
endmodule
module check_100us;
timeunit 100us;
timeprecision 100us;
endmodule
module check_10us;
timeunit 10us;
timeprecision 10us;
endmodule
module check_1us;
timeunit 1us;
timeprecision 1us;
endmodule
module check_100ns;
timeunit 100ns;
timeprecision 100ns;
endmodule
module check_10ns;
timeunit 10ns;
timeprecision 10ns;
endmodule
module check_1ns;
timeunit 1ns;
timeprecision 1ns;
endmodule
module check_100ps;
timeunit 100ps;
timeprecision 100ps;
endmodule
module check_10ps;
timeunit 10ps;
timeprecision 10ps;
endmodule
module check_1ps;
timeunit 1ps;
timeprecision 1ps;
endmodule
module check_100fs;
timeunit 100fs;
timeprecision 100fs;
endmodule
module check_10fs;
timeunit 10fs;
timeprecision 10fs;
endmodule
module check_1fs;
timeunit 1fs;
timeprecision 1fs;
endmodule
module check1;
initial begin
$printtimescale(check_100s);
$printtimescale(check_10s);
$printtimescale(check_1s);
$printtimescale(check_100ms);
$printtimescale(check_10ms);
$printtimescale(check_1ms);
$printtimescale(check_100us);
$printtimescale(check_10us);
$printtimescale(check_1us);
$printtimescale(check_100ns);
$printtimescale(check_10ns);
$printtimescale(check_1ns);
$printtimescale(check_100ps);
$printtimescale(check_10ps);
$printtimescale(check_1ps);
$printtimescale(check_100fs);
$printtimescale(check_10fs);
$printtimescale(check_1fs);
$display("");
$printtimescale(check_tu);
$printtimescale(check_tp);
$printtimescale(check_tup);
$printtimescale(check_tpu);
$display("");
$printtimescale(check_tu_d);
$printtimescale(check_tp_d);
$printtimescale(check_tup_d);
$printtimescale(check_tpu_d);
end
endmodule