Source code for hwtLib.examples.hierarchy.simpleSubunit

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from hwt.interfaces.std import Signal
from hwt.synthesizer.unit import Unit
from hwtLib.examples.simple import SimpleUnit


[docs]class SimpleSubunit(Unit): """ .. hwt-autodoc:: """ def _declr(self): self.a = Signal() self.b = Signal()._m() # Here we instantiate our subunit and register it by assigning # to property of self it can be done in _impl as well, # but if you do it here, it offers more possibilities for parallelization self.subunit0 = SimpleUnit() def _impl(self): u = self.subunit0 u.a(self.a) self.b(u.b)
# Any configuration for subcomponents in _impl has to be done before registering # The subcomponent has to be always registered on parent :class:`hwt.synthesizer.unit.Unit` otherwise # it won't be discovered and initialized. if __name__ == "__main__": from hwt.synthesizer.utils import to_rtl_str u = SimpleSubunit() from hwt.serializer.vhdl import Vhdl2008Serializer print(to_rtl_str(u, serializer_cls=Vhdl2008Serializer))