Source code for hwtLib.examples.hierarchy.simpleSubunit2
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from hwt.hdl.constants import Time
from hwt.interfaces.utils import addClkRstn, propagateClkRstn
from hwt.simulator.simTestCase import SimTestCase
from hwt.synthesizer.param import Param
from hwt.synthesizer.unit import Unit
from hwtLib.amba.axis import AxiStream
from hwtLib.examples.simpleAxiStream import SimpleUnitAxiStream
[docs]class SimpleSubunit2(Unit):
"""
.. hwt-autodoc::
"""
def _config(self) -> None:
self.USE_STRB = Param(True)
def _declr(self):
addClkRstn(self)
with self._paramsShared():
self.subunit0 = SimpleUnitAxiStream()
self.a0 = AxiStream()
self.b0 = AxiStream()._m()
self.a0.DATA_WIDTH = 8
self.b0.DATA_WIDTH = 8
def _impl(self):
propagateClkRstn(self)
u = self.subunit0
u.a(self.a0)
self.b0(u.b)
[docs]class SimpleSubunit2TC(SimTestCase):
[docs] @classmethod
def setUpClass(cls):
cls.u = SimpleSubunit2()
cls.compileSim(cls.u)
[docs] def test_simplePass(self):
u = self.u
data = [(5, 1, 0), (6, 1, 1)]
u.a0._ag.data.extend(data)
self.runSim(50 * Time.ns)
self.assertEmpty(u.a0._ag.data)
self.assertValSequenceEqual(u.b0._ag.data, data)
if __name__ == "__main__":
from hwt.synthesizer.utils import to_rtl_str
print(to_rtl_str(SimpleSubunit2()))
import unittest
testLoader = unittest.TestLoader()
suite = testLoader.loadTestsFromTestCase(SimpleSubunit2TC)
runner = unittest.TextTestRunner(verbosity=3)
runner.run(suite)