From 1ed686911043076daa9ac4e969d15f447f5eae59 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Thu, 14 May 2020 00:06:15 +1000 Subject: [PATCH] soc: Revive generation of a PointToPoint interconnect When there's only one master, one slave, and that slave is at 0 Signed-off-by: Benjamin Herrenschmidt --- litex/soc/integration/soc.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/litex/soc/integration/soc.py b/litex/soc/integration/soc.py index 2967daa2c..c051c254b 100644 --- a/litex/soc/integration/soc.py +++ b/litex/soc/integration/soc.py @@ -824,7 +824,18 @@ class SoC(Module): # SoC Bus Interconnect --------------------------------------------------------------------- bus_masters = self.bus.masters.values() bus_slaves = [(self.bus.regions[n].decoder(self.bus), s) for n, s in self.bus.slaves.items()] - if len(bus_masters) and len(bus_slaves): + + use_p2p = False + if len(bus_masters) == 1 and len(bus_slaves) == 1: + n = list(self.bus.slaves)[0] + if self.bus.regions[n].origin == 0: + use_p2p = True + + if use_p2p: + self.submodules.bus_interconnect = wishbone.InterconnectPointToPoint( + master = list(bus_masters)[0], + slave = list(self.bus.slaves.values())[0]) + elif len(bus_masters) and len(bus_slaves): self.submodules.bus_interconnect = wishbone.InterconnectShared( masters = bus_masters, slaves = bus_slaves,