2022-05-17 18:19:44 +00:00
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2022 by Antmicro Ltd.
// SPDX-License-Identifier: CC0-1.0
2023-08-23 14:27:17 +00:00
`define checkh(gotv,expv) do if ((gotv) !== (expv)) begin $write("%%Error: %s:%0d: got='h%x exp='h%x\n", `__FILE__,`__LINE__, (gotv), (expv)); $stop; end while(0)
2022-05-17 18:19:44 +00:00
module t ( /*AUTOARG*/
// Inputs
clk
) ;
input clk ;
2023-08-23 14:27:17 +00:00
wire [ 3 : 0 ] # 4 val1 = half_cyc ;
2022-05-17 18:19:44 +00:00
wire [ 3 : 0 ] # 4 val2 ;
2023-08-23 14:27:17 +00:00
reg [ 3 : 0 ] half_cyc = 0 ;
2022-05-17 18:19:44 +00:00
2023-08-23 14:27:17 +00:00
assign # 4 val2 = half_cyc ;
2022-05-17 18:19:44 +00:00
2023-08-23 14:27:17 +00:00
always @ ( clk ) begin
if ( $time > 0 ) half_cyc < = half_cyc + 1 ;
2022-05-17 18:19:44 +00:00
`ifdef TEST_VERBOSE
2023-08-23 14:27:17 +00:00
$strobe ( " [%0t] half_cyc=%0d, val1=%0d, val2=%0d " , $time , half_cyc , val1 , val2 ) ;
2022-05-17 18:19:44 +00:00
`endif
2023-08-23 14:27:17 +00:00
if ( half_cyc > = 7 ) begin
`checkh ( val1 , half_cyc - 3 ) ;
`checkh ( val2 , half_cyc - 7 ) ;
end
if ( half_cyc = = 15 ) begin
2022-05-17 18:19:44 +00:00
$write ( " *-* All Finished *-* \n " ) ;
$finish ;
end
end
endmodule