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
|
from ..struct_generator import RDLStructGenerator
|
||||||
|
|
||||||
class RBufStorageStructGenerator(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:
|
def enter_Field(self, node: FieldNode) -> None:
|
||||||
# suppress parent class's field behavior
|
# suppress parent class's field behavior
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from typing import TYPE_CHECKING
|
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
|
from ..struct_generator import RDLStructGenerator
|
||||||
|
|
||||||
@@ -12,6 +13,11 @@ class WBufStorageStructGenerator(RDLStructGenerator):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.wbuf = wbuf
|
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:
|
def enter_Field(self, node: FieldNode) -> None:
|
||||||
# suppress parent class's field behavior
|
# suppress parent class's field behavior
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -10,10 +10,6 @@ class TestValidationErrors(BaseTestCase):
|
|||||||
# Stub usual pre-test setup
|
# Stub usual pre-test setup
|
||||||
pass
|
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:
|
def assert_validate_error(self, rdl_file: str, err_regex: str) -> None:
|
||||||
self.rdl_file = rdl_file
|
self.rdl_file = rdl_file
|
||||||
f = io.StringIO()
|
f = io.StringIO()
|
||||||
|
|||||||
Reference in New Issue
Block a user