Skip to content

Commit

Permalink
Merge pull request #734 from antmicro/axi4-slave-bridge
Browse files Browse the repository at this point in the history
Add get_ios for full AXI and add missing signals in connect_to_pads
  • Loading branch information
enjoy-digital authored Dec 18, 2020
2 parents 9ae5a4f + f26769e commit 57d9816
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion litex/soc/interconnect/axi.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,29 @@ def __init__(self, data_width=32, address_width=32, id_width=1, clock_domain="sy
self.r = stream.Endpoint(r_description(data_width, id_width))

def connect_to_pads(self, pads, mode="master"):
return connect_to_pads(self, pads, mode)
r = connect_to_pads(self, pads, mode)

if mode == "master":
r.append(pads.wlast.eq(self.w.last))
r.append(self.r.last.eq(pads.rlast))
else:
r.append(pads.rlast.eq(self.r.last))
r.append(self.w.last.eq(pads.wlast))

return r

def get_ios(self, bus_name="wb"):
subsignals = []
for channel in ["aw", "w", "b", "ar", "r"]:
for name in ["valid", "ready"]:
subsignals.append(Subsignal(channel + name, Pins(1)))
for name, width in getattr(self, channel).description.payload_layout:
subsignals.append(Subsignal(channel + name, Pins(width)))

subsignals.append(Subsignal("rlast", Pins(1)))
subsignals.append(Subsignal("wlast", Pins(1)))
ios = [(bus_name , 0) + tuple(subsignals)]
return ios

def connect(self, slave, **kwargs):
return _connect_axi(self, slave, **kwargs)
Expand Down

0 comments on commit 57d9816

Please sign in to comment.