soc: Rework interconnect
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 11 May 2020 11:22:07 +0000 (21:22 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 25 May 2020 01:33:09 +0000 (11:33 +1000)
commit573b6b4bc4ce7410904738c9b192b07b8e481daf
tree6ddd96dae7220689e40759cb782afd0486f88e20
parent8d64090a68a47fbcfea162b488542fd325b7c2b8
soc: Rework interconnect

This changes the SoC interconnect such that the main 64-bit wishbone out
of the processor is first split between only 3 slaves (BRAM, DRAM and a
general "IO" bus) instead of all the slaves in the SoC.

The IO bus leg is then latched and down-converted to 32 bits data width,
before going through a second address decoder for the various IO devices.

This significantly reduces routing and timing pressure on the main bus,
allowing to get rid of frequent timing violations when synthetizing on
small'ish FPGAs such as the Artix-7 35T found on the original Arty board.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
20 files changed:
core_tb.vhdl
fpga/top-arty.vhdl
fpga/top-generic.vhdl
fpga/top-nexys-video.vhdl
include/microwatt_soc.h
litedram/gen-src/sdram_init/head.S
litedram/gen-src/sdram_init/sdram_init.lds.S
litedram/gen-src/wrapper-mw-init.vhdl
litedram/gen-src/wrapper-self-init.vhdl
litedram/generated/arty/litedram-wrapper.vhdl
litedram/generated/arty/litedram_core.init
litedram/generated/arty/litedram_core.v
litedram/generated/nexys-video/litedram-wrapper.vhdl
litedram/generated/nexys-video/litedram_core.init
litedram/generated/nexys-video/litedram_core.v
soc.vhdl
syscon.vhdl
tests/xics/xics.h
wishbone_types.vhdl
xics.vhdl