Source code for hwtLib.examples.rtlLvl.indexOps

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

from hwt.synthesizer.rtlLevel.netlist import RtlNetlist
from hwtLib.examples.rtlLvl.netlistToRtl import netlistToVhdlStr
from hwt.hdl.types.bits import Bits
from ipCorePackager.constants import DIRECTION


[docs]def IndexOps(): t = Bits(8) n = RtlNetlist() s_in = n.sig("s_in", t) s_out = n.sig("s_out", t) s_in2 = n.sig("s_in2", t) s_out2 = n.sig("s_out2", t) s_in3 = n.sig("s_in3", Bits(16)) s_out3 = n.sig("s_out3", t) s_in4a = n.sig("s_in4a", t) s_in4b = n.sig("s_in4b", t) s_out4 = n.sig("s_out4", Bits(16)) s_out(s_in[4:]._concat(Bits(4).from_py(2))) s_out2[4:](s_in2[4:]) s_out2[:4](s_in2[:4]) s_out3(s_in3[8:]) s_out4[8:](s_in4a) s_out4[(8 + 8):8](s_in4b) interf = { s_in: DIRECTION.IN, s_out: DIRECTION.OUT, s_in2: DIRECTION.IN, s_out2: DIRECTION.OUT, s_in3: DIRECTION.IN, s_out3: DIRECTION.OUT, s_in4a: DIRECTION.IN, s_in4b: DIRECTION.IN, s_out4: DIRECTION.OUT } return n, interf
if __name__ == "__main__": netlist, interfaces = IndexOps() print(netlistToVhdlStr("IndexOps", netlist, interfaces))