diff --git a/src/peakrdl_regblock/read_buffering/storage_generator.py b/src/peakrdl_regblock/read_buffering/storage_generator.py index e6eba18..4f291bc 100644 --- a/src/peakrdl_regblock/read_buffering/storage_generator.py +++ b/src/peakrdl_regblock/read_buffering/storage_generator.py @@ -1,8 +1,13 @@ -from systemrdl.node import FieldNode, RegNode +from systemrdl.node import FieldNode, RegNode, AddressableNode +from systemrdl.walker import WalkerAction from ..struct_generator import RDLStructGenerator class RBufStorageStructGenerator(RDLStructGenerator): + def enter_AddressableComponent(self, node: AddressableNode) -> WalkerAction: + if node.external : + return WalkerAction.SkipDescendants + return WalkerAction.Continue def enter_Field(self, node: FieldNode) -> None: # suppress parent class's field behavior diff --git a/src/peakrdl_regblock/write_buffering/storage_generator.py b/src/peakrdl_regblock/write_buffering/storage_generator.py index 3cae471..b6322b7 100644 --- a/src/peakrdl_regblock/write_buffering/storage_generator.py +++ b/src/peakrdl_regblock/write_buffering/storage_generator.py @@ -1,6 +1,7 @@ from typing import TYPE_CHECKING -from systemrdl.node import FieldNode, RegNode +from systemrdl.node import FieldNode, RegNode, AddressableNode +from systemrdl.walker import WalkerAction from ..struct_generator import RDLStructGenerator @@ -12,6 +13,11 @@ class WBufStorageStructGenerator(RDLStructGenerator): super().__init__() self.wbuf = wbuf + def enter_AddressableComponent(self, node: AddressableNode) -> WalkerAction: + if node.external : + return WalkerAction.SkipDescendants + return WalkerAction.Continue + def enter_Field(self, node: FieldNode) -> None: # suppress parent class's field behavior pass diff --git a/tests/test_validation_errors/testcase.py b/tests/test_validation_errors/testcase.py index 3267dac..1ddd728 100644 --- a/tests/test_validation_errors/testcase.py +++ b/tests/test_validation_errors/testcase.py @@ -10,10 +10,6 @@ class TestValidationErrors(BaseTestCase): # Stub usual pre-test setup pass - def tearDown(self): - # Delete any cruft that may get generated - self.delete_run_dir() - def assert_validate_error(self, rdl_file: str, err_regex: str) -> None: self.rdl_file = rdl_file f = io.StringIO()