Fix incorrect traversal into externals for read/write buffered regs. #167
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user