179 lines
3.4 KiB
Coq
179 lines
3.4 KiB
Coq
|
|
/*
|
||
|
|
* 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
|