44 lines
1.3 KiB
Coq
44 lines
1.3 KiB
Coq
|
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
//
|
||
|
|
// using `timescale, test rounding up to specified precision and
|
||
|
|
// scaling to specified time unit
|
||
|
|
//
|
||
|
|
// run with
|
||
|
|
// iverilog lrm_eg.v
|
||
|
|
// vvp a.out
|
||
|
|
//
|
||
|
|
// (uncomment $display statements for help in debugging)
|
||
|
|
//
|
||
|
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
`timescale 10 ns / 1 ns
|
||
|
|
|
||
|
|
module test;
|
||
|
|
reg set;
|
||
|
|
parameter d = 1.55;
|
||
|
|
reg fail;
|
||
|
|
reg [7:0] ii;
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
fail = 0;
|
||
|
|
#d set = 0;
|
||
|
|
//$display("time in units of 10ns: %0t, in ns: %0d, set: %0b",$time,ii,set);
|
||
|
|
if((ii < 15) || (ii > 16)) fail = 1;
|
||
|
|
#d set = 1;
|
||
|
|
//$display("time in units of 10ns: %0t, in ns: %0d, set: %0b",$time,ii,set);
|
||
|
|
if((ii < 31) || (ii > 32)) fail = 1;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
//$dumpvars;
|
||
|
|
for(ii = 0; ii < 50; ii = ii + 1) begin
|
||
|
|
//$display("time in ns: %0d, set: %0b",ii,set);
|
||
|
|
#0.1;
|
||
|
|
end
|
||
|
|
$display("\n\t\t**********************************************");
|
||
|
|
if(fail) $display("\t\t********** timescale test FAILED *************");
|
||
|
|
else $display("\t\t********** timescale test PASSED *************");
|
||
|
|
$display("\t\t**********************************************\n");
|
||
|
|
$finish(0);
|
||
|
|
end
|
||
|
|
endmodule
|