X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=milkymist%2Flm32%2F__init__.py;h=d2777a5096ea8fe7d10573776598a959032ab2f4;hb=5931c5eb592d81b7dc68ab1d43e2114dadea83cb;hp=cace4b54b2aebc96723e03a3b132c7f8f0cd1cc5;hpb=42d5e850fe2f3d34ef26996a3a2f7994d929e9d6;p=litex.git diff --git a/milkymist/lm32/__init__.py b/milkymist/lm32/__init__.py index cace4b54..d2777a50 100644 --- a/milkymist/lm32/__init__.py +++ b/milkymist/lm32/__init__.py @@ -8,44 +8,45 @@ class LM32: self.interrupt = Signal(BV(32)) self.ext_break = Signal() self._inst = Instance("lm32_top", - [("I_ADR_O", BV(32)), - ("I_DAT_O", i.dat_w), - ("I_SEL_O", i.sel), - ("I_CYC_O", i.cyc), - ("I_STB_O", i.stb), - ("I_WE_O", i.we), - ("I_CTI_O", i.cti), - ("I_LOCK_O", BV(1)), - ("I_BTE_O", i.bte), - ("D_ADR_O", BV(32)), - ("D_DAT_O", d.dat_w), - ("D_SEL_O", d.sel), - ("D_CYC_O", d.cyc), - ("D_STB_O", d.stb), - ("D_WE_O", d.we), - ("D_CTI_O", d.cti), - ("D_LOCK_O", BV(1)), - ("D_BTE_O", d.bte)], + Instance.ClockPort("clk_i"), + Instance.ResetPort("rst_i"), - [("interrupt", self.interrupt), - #("ext_break", self.ext_break), - ("I_DAT_I", i.dat_r), - ("I_ACK_I", i.ack), - ("I_ERR_I", i.err), - ("I_RTY_I", BV(1)), - ("D_DAT_I", d.dat_r), - ("D_ACK_I", d.ack), - ("D_ERR_I", d.err), - ("D_RTY_I", BV(1))], + Instance.Input("interrupt", self.interrupt), + #Instance.Input("ext_break", self.ext_break), + + Instance.Output("I_ADR_O", BV(32)), + Instance.Output("I_DAT_O", i.dat_w), + Instance.Output("I_SEL_O", i.sel), + Instance.Output("I_CYC_O", i.cyc), + Instance.Output("I_STB_O", i.stb), + Instance.Output("I_WE_O", i.we), + Instance.Output("I_CTI_O", i.cti), + Instance.Output("I_LOCK_O", BV(1)), + Instance.Output("I_BTE_O", i.bte), + Instance.Input("I_DAT_I", i.dat_r), + Instance.Input("I_ACK_I", i.ack), + Instance.Input("I_ERR_I", i.err), + Instance.Input("I_RTY_I", BV(1)), - clkport="clk_i", - rstport="rst_i") + Instance.Output("D_ADR_O", BV(32)), + Instance.Output("D_DAT_O", d.dat_w), + Instance.Output("D_SEL_O", d.sel), + Instance.Output("D_CYC_O", d.cyc), + Instance.Output("D_STB_O", d.stb), + Instance.Output("D_WE_O", d.we), + Instance.Output("D_CTI_O", d.cti), + Instance.Output("D_LOCK_O", BV(1)), + Instance.Output("D_BTE_O", d.bte), + Instance.Input("D_DAT_I", d.dat_r), + Instance.Input("D_ACK_I", d.ack), + Instance.Input("D_ERR_I", d.err), + Instance.Input("D_RTY_I", BV(1))) def get_fragment(self): comb = [ - self._inst.ins["I_RTY_I"].eq(0), - self._inst.ins["D_RTY_I"].eq(0), - self.ibus.adr.eq(self._inst.outs["I_ADR_O"][2:]), - self.dbus.adr.eq(self._inst.outs["D_ADR_O"][2:]) + self._inst.get_io("I_RTY_I").eq(0), + self._inst.get_io("D_RTY_I").eq(0), + self.ibus.adr.eq(self._inst.get_io("I_ADR_O")[2:]), + self.dbus.adr.eq(self._inst.get_io("D_ADR_O")[2:]) ] return Fragment(comb=comb, instances=[self._inst])