Source code for hwtLib.examples.mem.rom

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

from hwt.code import If
from hwt.hdl.types.bits import HBits
from hwt.hwIOs.std import HwIOClk, HwIOVectSignal
from hwt.hwModule import HwModule
from hwt.pyUtils.typingFuture import override


[docs] class SimpleRom(HwModule): """ .. hwt-autodoc:: """ @override def hwDeclr(self): self.addr = HwIOVectSignal(2) self.dout = HwIOVectSignal(8)._m() @override def hwImpl(self): rom = self._sig("rom_data", HBits(8)[4], def_val=[1, 2, 3, 4]) self.dout(rom[self.addr])
[docs] class SimpleSyncRom(SimpleRom): """ .. hwt-autodoc:: """ @override def hwDeclr(self): super().hwDeclr() self.clk = HwIOClk() @override def hwImpl(self): rom = self._sig("rom_data", HBits(8)[4], def_val=[1, 2, 3, 4]) If(self.clk._onRisingEdge(), self.dout(rom[self.addr]) )
if __name__ == "__main__": from hwt.synth import to_rtl_str print(to_rtl_str(SimpleSyncRom()))