Source code for hwt.hwIOs.agents.regCntrl
from hwt.hwIOs.agents.signal import HwIOSignalAgent
from hwt.hwIOs.agents.vldSync import HwIODataVldAgent
from hwt.simulator.agentBase import SyncAgentBase
from hwtSimApi.agents.base import AgentBase
[docs]
class HwIORegCntrlAgent(SyncAgentBase):
"""
Simulation/verification agent for RegCntrl interface
"""
[docs]
def __init__(self, sim, hwIO: "HwIORegCntrl"):
super().__init__(sim, hwIO)
self._din = HwIOSignalAgent(sim, hwIO.din)
self._dout = HwIODataVldAgent(sim, hwIO.dout, allowNoReset=True)
[docs]
def setEnable_asDriver(self, en: bool):
AgentBase.setEnable(self, en)
self._din.setEnable(en)
self._dout.setEnable(en)
[docs]
def setEnable_asMonitor(self, en: bool):
AgentBase.setEnable(self, en)
self._din.setEnable(en)
self._dout.setEnable(en)
[docs]
def din_getter(self):
return self._din.data
[docs]
def din_setter(self, newVal):
self._din.data = newVal
din = property(din_getter, din_setter)
[docs]
def dout_getter(self):
return self._dout.data
[docs]
def dout_setter(self, newVal):
self._dout.data = newVal
dout = property(dout_getter, dout_setter)
[docs]
def getDrivers(self):
yield from self._din.getMonitors()
yield from self._dout.getDrivers()
[docs]
def getMonitors(self):
yield from self._din.getDrivers()
yield from self._dout.getMonitors()