Source code for hwtLib.handshaked.fifoDrop
from typing import Optional, Tuple, Union
from hwt.hwIOs.std import HwIOSignal, HwIORst, HwIORst_n, HwIOClk
from hwtLib.handshaked.fifo import HandshakedFifo
from hwtLib.mem.fifoDrop import FifoDrop
from hwt.pyUtils.typingFuture import override
[docs]
class HandshakedFifoDrop(HandshakedFifo):
"""
FIFO for handsahaked interface which allows to discard/commit written data
:see: :class:`hwtLib.handshaked.fifo.HandshakedFifo`
and :class:`hwtLib.mem.fifoDrop.FifoDrop`
.. hwt-autodoc:: _example_HandshakedFifoDrop
"""
FIFO_CLS = FifoDrop
@override
def hwDeclr(self):
HandshakedFifo.hwDeclr(self)
self.dataIn_discard = HwIOSignal()
self.dataIn_commit = HwIOSignal()
@override
def hwImpl(self, clk_rst: Optional[Tuple[
Tuple[HwIOClk, Union[HwIORst, HwIORst_n]],
Tuple[HwIOClk, Union[HwIORst, HwIORst_n]]]]=None):
super(HandshakedFifoDrop, self).hwImpl(clk_rst=clk_rst)
f = self.fifo
f.dataIn.commit(self.dataIn_commit)
f.dataIn.discard(self.dataIn_discard)
[docs]
def _example_HandshakedFifoDrop():
from hwt.hwIOs.std import HwIODataRdVld
m = HandshakedFifoDrop(HwIODataRdVld)
m.DEPTH = 8
m.DATA_WIDTH = 4
m.EXPORT_SIZE = True
m.EXPORT_SPACE = True
return m
if __name__ == "__main__":
from hwt.synth import to_rtl_str
m = _example_HandshakedFifoDrop()
print(to_rtl_str(m))