Source code for hwt.interfaces.agents.universalComposite

from hwt.synthesizer.interface import Interface
from hwtSimApi.agents.base import AgentBase
from hwtSimApi.hdlSimulator import HdlSimulator
from ipCorePackager.constants import INTF_DIRECTION


[docs]class UniversalCompositeAgent(AgentBase): """ Composite agent which just instantiates agents for every subinterface """
[docs] def __init__(self, sim: HdlSimulator, intf: Interface): self.__enable = True super(UniversalCompositeAgent, self).__init__(sim, intf) for i in intf._interfaces: i._initSimAgent(sim)
[docs] def getEnable(self): return self.__enable
[docs] def setEnable(self, v: bool): """ Distribute change of enable on child agents """ self.__enable = v for o in self.intf._interfaces: o._ag.setEnable(v)
[docs] def getDrivers(self): for i in self.intf._interfaces: if i._direction == INTF_DIRECTION.MASTER: yield from i._ag.getMonitors() else: yield from i._ag.getDrivers()
[docs] def getMonitors(self): for i in self.intf._interfaces: if i._direction == INTF_DIRECTION.MASTER: yield from i._ag.getMonitors() else: yield from i._ag.getDrivers()