cpu/vexriscv_smp: more coherent_dma to __init__ instead of add_memory_buses.
LiteX is creating the SoC.dma_bus just after the CPU is declared, so declaring it in add_memory_buses was preventing it. It's also more coherent to move it to __init__ since not related to the memory_buses.
This commit is contained in:
parent
b3531cd2a8
commit
6f69679d21
|
@ -259,24 +259,6 @@ class VexRiscvSMP(CPU):
|
||||||
i_plicWishbone_DAT_MOSI = plicbus.dat_w
|
i_plicWishbone_DAT_MOSI = plicbus.dat_w
|
||||||
)
|
)
|
||||||
|
|
||||||
def set_reset_address(self, reset_address):
|
|
||||||
assert not hasattr(self, "reset_address")
|
|
||||||
self.reset_address = reset_address
|
|
||||||
assert reset_address == 0x00000000
|
|
||||||
|
|
||||||
def add_sources(self, platform):
|
|
||||||
vdir = get_data_mod("cpu", "vexriscv_smp").data_location
|
|
||||||
print(f"VexRiscv cluster : {self.cluster_name}")
|
|
||||||
if not path.exists(os.path.join(vdir, self.cluster_name + ".v")):
|
|
||||||
self.generate_netlist()
|
|
||||||
|
|
||||||
platform.add_source(os.path.join(vdir, "RamXilinx.v"), "verilog")
|
|
||||||
platform.add_source(os.path.join(vdir, self.cluster_name + ".v"), "verilog")
|
|
||||||
|
|
||||||
def add_memory_buses(self, address_width, data_width):
|
|
||||||
VexRiscvSMP.litedram_width = data_width
|
|
||||||
|
|
||||||
VexRiscvSMP.generate_cluster_name()
|
|
||||||
if VexRiscvSMP.coherent_dma:
|
if VexRiscvSMP.coherent_dma:
|
||||||
self.dma_bus = dma_bus = wishbone.Interface(data_width=VexRiscvSMP.dcache_width)
|
self.dma_bus = dma_bus = wishbone.Interface(data_width=VexRiscvSMP.dcache_width)
|
||||||
dma_bus_stall = Signal()
|
dma_bus_stall = Signal()
|
||||||
|
@ -301,6 +283,25 @@ class VexRiscvSMP(CPU):
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def set_reset_address(self, reset_address):
|
||||||
|
assert not hasattr(self, "reset_address")
|
||||||
|
self.reset_address = reset_address
|
||||||
|
assert reset_address == 0x00000000
|
||||||
|
|
||||||
|
def add_sources(self, platform):
|
||||||
|
vdir = get_data_mod("cpu", "vexriscv_smp").data_location
|
||||||
|
print(f"VexRiscv cluster : {self.cluster_name}")
|
||||||
|
if not path.exists(os.path.join(vdir, self.cluster_name + ".v")):
|
||||||
|
self.generate_netlist()
|
||||||
|
|
||||||
|
platform.add_source(os.path.join(vdir, "RamXilinx.v"), "verilog")
|
||||||
|
platform.add_source(os.path.join(vdir, self.cluster_name + ".v"), "verilog")
|
||||||
|
|
||||||
|
def add_memory_buses(self, address_width, data_width):
|
||||||
|
VexRiscvSMP.litedram_width = data_width
|
||||||
|
|
||||||
|
VexRiscvSMP.generate_cluster_name()
|
||||||
|
|
||||||
from litedram.common import LiteDRAMNativePort
|
from litedram.common import LiteDRAMNativePort
|
||||||
ibus = LiteDRAMNativePort(mode="both", address_width=32, data_width=VexRiscvSMP.litedram_width)
|
ibus = LiteDRAMNativePort(mode="both", address_width=32, data_width=VexRiscvSMP.litedram_width)
|
||||||
dbus = LiteDRAMNativePort(mode="both", address_width=32, data_width=VexRiscvSMP.litedram_width)
|
dbus = LiteDRAMNativePort(mode="both", address_width=32, data_width=VexRiscvSMP.litedram_width)
|
||||||
|
|
Loading…
Reference in New Issue