Add validation check for write buffered registers that trigger off of their own field. #39
This commit is contained in:
@@ -4,7 +4,7 @@ from systemrdl.udp import UDPDefinition
|
||||
from systemrdl.component import Reg
|
||||
from systemrdl.rdltypes.references import RefType, PropertyReference
|
||||
from systemrdl.rdltypes import NoValue
|
||||
from systemrdl.node import Node, RegNode, VectorNode, SignalNode
|
||||
from systemrdl.node import Node, RegNode, VectorNode, SignalNode, FieldNode
|
||||
|
||||
|
||||
class xBufferTrigger(UDPDefinition):
|
||||
@@ -91,6 +91,16 @@ class WBufferTrigger(xBufferTrigger):
|
||||
return node
|
||||
return None
|
||||
|
||||
def validate(self, node: Node, value: Any) -> None:
|
||||
super().validate(node, value)
|
||||
|
||||
if isinstance(value, FieldNode):
|
||||
if value.parent == node:
|
||||
self.msg.error(
|
||||
"Trigger for a write-buffered register cannot be a field "
|
||||
"within the same register since the buffering makes it impossible to trigger."
|
||||
)
|
||||
|
||||
|
||||
class BufferReads(UDPDefinition):
|
||||
name = "buffer_reads"
|
||||
|
||||
Reference in New Issue
Block a user