Source code for hwtLib.examples.mem.bram_wire
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from hwt.constants import READ
from hwt.hwIOs.std import HwIOBramPort_noClk
from hwt.hwIOs.utils import addClkRst
from hwt.hwModule import HwModule
from hwt.pyUtils.typingFuture import override
from hwt.simulator.simTestCase import SimTestCase
from hwtSimApi.constants import CLK_PERIOD
[docs]
class BramWire(HwModule):
"""
.. hwt-autodoc::
"""
@override
def hwDeclr(self):
addClkRst(self)
self.din = HwIOBramPort_noClk()
self.dout = HwIOBramPort_noClk()._m()
@override
def hwImpl(self):
self.dout(self.din)
[docs]
class BramWireTC(SimTestCase):
[docs]
@classmethod
@override
def setUpClass(cls):
cls.dut = BramWire()
cls.compileSim(cls.dut)
[docs]
def test_read(self):
dut = self.dut
dut.dout._ag.mem[1] = 1
dut.dout._ag.mem[2] = 2
dut.din._ag.requests.extend([(READ, 1), (READ, 2), (READ, 3)])
self.runSim(10 * CLK_PERIOD)
self.assertValSequenceEqual(dut.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)