Fix incorrect traversal into externals for read/write buffered regs. #167

This commit is contained in:
Alex Mykyta
2025-11-16 20:27:57 -08:00
parent efbddccc54
commit 61bffb7b91
3 changed files with 13 additions and 6 deletions

View File

@@ -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

View File

@@ -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