Tests: Add UVM 2020-3.1 hello world

This commit is contained in:
Wilson Snyder 2025-11-09 15:02:22 -05:00
parent c87a3e92fc
commit fbb195e054
4 changed files with 46584 additions and 1 deletions

View File

@ -12,6 +12,7 @@ import sys
def process() -> None:
in_header = True
in_backslash = False
for line in sys.stdin:
line = line.rstrip()
line = line.expandtabs(tabsize=8)
@ -32,13 +33,15 @@ def process() -> None:
continue
if re.match(r'^`line ', line):
continue
if re.match(r'^\s*$', line):
if re.match(r'^\s*$', line) and not in_backslash:
continue
if re.match(r'^ *endpackage', line):
print(line)
break
in_backslash = re.search(r'\\$', line)
print(line)

View File

@ -0,0 +1,26 @@
#!/usr/bin/env python3
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2024 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
import vltest_bootstrap
test.scenarios('vlt')
test.top_filename = 't/t_uvm_hello.v'
if test.have_dev_gcov:
test.skip("Test suite intended for full dev coverage without needing this test")
test.compile(v_flags2=[
"--binary",
"-j 0",
"-Wall",
"+incdir+t/uvm", #
"t/uvm/uvm_pkg_all_v2020_3_1_nodpi.svh",
])
test.passes()

View File

@ -176,6 +176,7 @@
super.new(name); \
endfunction \
endclass \
`define m_uvm_topdown_phase(PHASE,COMP,PREFIX) \
class PREFIX``PHASE``_phase extends uvm_topdown_phase; \
virtual function void exec_func(uvm_component comp, uvm_phase phase); \
@ -195,6 +196,7 @@
super.new(name); \
endfunction \
endclass \
`define m_uvm_bottomup_phase(PHASE,COMP,PREFIX) \
class PREFIX``PHASE``_phase extends uvm_bottomup_phase; \
virtual function void exec_func(uvm_component comp, uvm_phase phase); \
@ -214,6 +216,7 @@
super.new(name); \
endfunction \
endclass \
`define uvm_builtin_task_phase(PHASE) \
`m_uvm_task_phase(PHASE,uvm_component,uvm_)
`define uvm_builtin_topdown_phase(PHASE) \
@ -749,11 +752,13 @@ end
`define m_uvm_compare_threshold_begin(COMPARER) \
if ((!COMPARER.get_threshold() || \
(COMPARER.get_result() < COMPARER.get_threshold()))) begin \
`define m_uvm_compare_threshold_end \
end
`define m_uvm_compare_begin(LVALUE, RVALUE, COMPARER=comparer) \
`m_uvm_compare_threshold_begin(COMPARER) \
if ((LVALUE) !== (RVALUE)) begin \
`define m_uvm_compare_end \
end \
`m_uvm_compare_threshold_end
@ -1802,6 +1807,7 @@ local function void __m_uvm_execute_field_op( uvm_field_op __local_op__ );
default: \
return; /* unknown op, just return */ \
endcase \
`define uvm_field_utils_end \
endfunction : __m_uvm_execute_field_op
`define uvm_object_utils(T) \
@ -1833,8 +1839,10 @@ endfunction : __m_uvm_execute_field_op
`define uvm_component_utils(T) \
`m_uvm_component_registry_internal(T,T) \
`uvm_type_name_decl(`"T`") \
`define uvm_component_param_utils(T) \
`m_uvm_component_registry_param(T) \
`define uvm_component_utils_begin(T) \
`uvm_component_utils(T) \
`uvm_field_utils_begin(T)
@ -1844,8 +1852,10 @@ endfunction : __m_uvm_execute_field_op
`define uvm_component_abstract_utils(T) \
`m_uvm_component_abstract_registry_internal(T,T) \
`uvm_type_name_decl(`"T`") \
`define uvm_component_abstract_param_utils(T) \
`m_uvm_component_abstract_registry_param(T) \
`define uvm_component_abstract_utils_begin(T) \
`uvm_component_abstract_utils(T) \
`uvm_field_utils_begin(T)
@ -2938,6 +2948,7 @@ UVM_``OP: \
`m_uvm_field_end(ARG)
`define uvm_field_aa_int_int(ARG,FLAG=UVM_DEFAULT) \
`uvm_field_aa_int_key(int, ARG, FLAG) \
`define uvm_field_aa_int_int_unsigned(ARG,FLAG=UVM_DEFAULT) \
`uvm_field_aa_int_key(int unsigned, ARG, FLAG)
`define uvm_field_aa_int_integer(ARG,FLAG=UVM_DEFAULT) \
@ -3660,6 +3671,7 @@ endclass
end
`define uvm_do_callbacks_exit_on(T,CB,METHOD,VAL) \
`uvm_do_obj_callbacks_exit_on(T,CB,this,METHOD,VAL) \
`define uvm_do_obj_callbacks_exit_on(T,CB,OBJ,METHOD,VAL) \
begin \
uvm_callback_iter#(T,CB) iter = new(OBJ); \

File diff suppressed because it is too large Load Diff