Source code for hwtLib.examples.mem.bram_wire

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

from hwt.hdl.constants import READ
from hwt.interfaces.std import BramPort_withoutClk
from hwt.interfaces.utils import addClkRst
from hwt.simulator.simTestCase import SimTestCase
from hwt.synthesizer.unit import Unit
from hwtSimApi.constants import CLK_PERIOD


[docs]class BramWire(Unit): """ .. hwt-autodoc:: """ def _declr(self): addClkRst(self) self.din = BramPort_withoutClk() self.dout = BramPort_withoutClk()._m() def _impl(self): self.dout(self.din)
[docs]class BramWireTC(SimTestCase):
[docs] @classmethod def setUpClass(cls): cls.u = BramWire() cls.compileSim(cls.u)
[docs] def test_read(self): u = self.u u.dout._ag.mem[1] = 1 u.dout._ag.mem[2] = 2 u.din._ag.requests.extend([(READ, 1), (READ, 2), (READ, 3)]) self.runSim(10 * CLK_PERIOD) self.assertValSequenceEqual(u.din._ag.r_data, [1, 2, None])
if __name__ == "__main__": import unittest testLoader = unittest.TestLoader() # suite = unittest.TestSuite([BramWireTC("test_async_resources")]) suite = testLoader.loadTestsFromTestCase(BramWireTC) runner = unittest.TextTestRunner(verbosity=3) runner.run(suite)