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
|
||||
|
||||
Reference in New Issue
Block a user