Source code for hwt.interfaces.agents.regCntrl
from hwt.interfaces.agents.signal import SignalAgent
from hwt.interfaces.agents.vldSynced import VldSyncedAgent
from hwt.simulator.agentBase import SyncAgentBase
from hwtSimApi.agents.base import AgentBase
[docs]class RegCntrlAgent(SyncAgentBase):
"""
Simulation/verification agent for RegCntrl interface
"""
[docs] def __init__(self, sim, intf):
super().__init__(sim, intf)
self._din = SignalAgent(sim, intf.din)
self._dout = VldSyncedAgent(sim, intf.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()