Test driver.py: Pass-through +verilator+ arguments to runtime

This commit is contained in:
Wilson Snyder 2025-08-12 19:32:56 -04:00
parent 60cbbf0ec1
commit 75c6745868
2 changed files with 16 additions and 0 deletions

View File

@ -2109,6 +2109,14 @@ the regression tests with OBJCACHE enabled and in parallel on a machine
with many cores. See the -j option and OBJCACHE environment variable.
driver.py Pass-Thru Arguments
-----------------------------
Arguments not understood by `driver.py` which begin with `+verilator+` are
passed through as Verilated executable arguments. Other not-understood
arguments are passed as Verilator arguments.
driver.py Non-Scenario Arguments
--------------------------------

View File

@ -1543,6 +1543,7 @@ class VlTest:
*param['all_run_flags'],
("'" if Args.gdbsim else ""),
]
cmd += self.driver_verilated_flags
self.run(
cmd=cmd,
aslr_off=param['aslr_off'], # Disable address space layour randomization
@ -1578,6 +1579,10 @@ class VlTest:
def driver_verilator_flags(self) -> list:
return Args.passdown_verilator_flags
@property
def driver_verilated_flags(self) -> list:
return Args.passdown_verilated_flags
@property
def get_default_vltmt_threads(self) -> int:
return Vltmt_Threads
@ -2734,6 +2739,8 @@ def _parameter(param: str) -> None:
sys.exit("%Error: Expected number following " + _Parameter_Next_Level + ": " + param)
Args.passdown_verilator_flags.append(param)
_Parameter_Next_Level = None
elif re.match(r'^(\+verilator\+.*)', param):
Args.passdown_verilated_flags.append(param)
elif re.search(r'\.py', param):
Arg_Tests.append(param)
elif re.match(r'^-?(-debugi|-dumpi)', param):
@ -2891,6 +2898,7 @@ if __name__ == '__main__':
(Args, rest) = parser.parse_known_intermixed_args()
Args.passdown_verilator_flags = []
Args.passdown_verilated_flags = []
for arg in rest:
_parameter(arg)