2024-12-12 14:51:48 +01:00
// DESCRIPTION: Verilator: Verilog Test module
//
2026-01-27 02:24:34 +01:00
// This file ONLY is placed under the Creative Commons Public Domain
// SPDX-FileCopyrightText: 2024 Antmicro
2024-12-12 14:51:48 +01:00
// SPDX-License-Identifier: CC0-1.0
2026-04-04 20:43:06 +02:00
// verilog_format: off
`define stop $stop
`define checks(gotv,expv) do if ((gotv) != (expv)) begin $write("%%Error: %s:%0d: got='%s' exp='%s'\n", `__FILE__,`__LINE__, (gotv), (expv)); `stop; end while(0);
// verilog_format: on
2025-09-13 15:28:43 +02:00
module t ;
2024-12-12 14:51:48 +01:00
2026-04-04 20:43:06 +02:00
function string validate_time_precision ( string precision ) ;
static string valid_precision [ $ ] = ' { " ps " , " ns " , " us " , " ms " , " s " } ;
if ( ! ( precision inside { valid_precision } ) ) begin
return " none " ;
end
return precision ;
endfunction
2026-03-08 23:26:40 +01:00
initial begin
automatic int q [ $ ] = { 1 , 2 } ;
2026-04-04 20:43:06 +02:00
string s ;
2026-02-09 00:20:28 +01:00
2026-03-08 23:26:40 +01:00
if ( ! ( 1 inside { q [ 0 ] , q [ 1 ] } ) ) $stop ;
if ( 3 inside { q [ 0 ] , q [ 1 ] } ) $stop ;
2024-12-12 14:51:48 +01:00
2026-04-04 20:43:06 +02:00
s = validate_time_precision ( " ps " ) ;
`checks ( s , " ps " ) ;
s = validate_time_precision ( " ns " ) ;
`checks ( s , " ns " ) ;
s = validate_time_precision ( " us " ) ;
`checks ( s , " us " ) ;
s = validate_time_precision ( " ms " ) ;
`checks ( s , " ms " ) ;
s = validate_time_precision ( " s " ) ;
`checks ( s , " s " ) ;
s = validate_time_precision ( " random " ) ;
`checks ( s , " none " ) ;
s = validate_time_precision ( " " ) ;
`checks ( s , " none " ) ;
2026-03-08 23:26:40 +01:00
$write ( " *-* All Finished *-* \n " ) ;
$finish ;
end
2024-12-12 14:51:48 +01:00
endmodule