Source code for hwtLib.examples.arithmetic.twoCntrs

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

from hwt.code import If
from hwt.hdl.types.bits import HBits
from hwt.hwIOs.std import HwIOSignal
from hwt.hwIOs.utils import addClkRstn
from hwt.hwModule import HwModule
from hwt.pyUtils.typingFuture import override


[docs] class TwoCntrs(HwModule): """ .. hwt-autodoc:: """ @override def hwDeclr(self): addClkRstn(self) self.a_en = HwIOSignal() self.b_en = HwIOSignal() self.eq = HwIOSignal()._m() self.ne = HwIOSignal()._m() self.lt = HwIOSignal()._m() self.gt = HwIOSignal()._m() @override def hwImpl(self): index_t = HBits(8, signed=False) a = self._reg("reg_a", index_t, def_val=0) b = self._reg("reg_b", index_t, def_val=0) If(self.a_en, a(a + 1) ) If(self.b_en, b(b + 1) ) self.eq(a._eq(b)) self.ne(a != b) self.lt(a < b) self.gt(a > b)
if __name__ == "__main__": from hwt.synth import to_rtl_str m = TwoCntrs() print(to_rtl_str(m))