diff --git a/docs/internals.rst b/docs/internals.rst index a572a67f6..99295c218 100644 --- a/docs/internals.rst +++ b/docs/internals.rst @@ -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 -------------------------------- diff --git a/test_regress/driver.py b/test_regress/driver.py index a5292afe7..5c6f2d8de 100755 --- a/test_regress/driver.py +++ b/test_regress/driver.py @@ -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)