summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--platform/wavelet3d/GenW3DHost.scala2
-rw-r--r--platform/wavelet3d/w3d_host_vexriscv.v4
-rw-r--r--platform/wavelet3d/w3d_interconnect.sv14
3 files changed, 12 insertions, 8 deletions
diff --git a/platform/wavelet3d/GenW3DHost.scala b/platform/wavelet3d/GenW3DHost.scala
index 3aa181a..a6c78ec 100644
--- a/platform/wavelet3d/GenW3DHost.scala
+++ b/platform/wavelet3d/GenW3DHost.scala
@@ -59,7 +59,7 @@ object GenW3DHost extends App{
)
),
new StaticMemoryTranslatorPlugin(
- ioRange = _(31 downto 27) > 0x0
+ ioRange = _(31 downto 26) >= 0x7 // Inicia en 0x1c000000 (0x3c000000 para HPS)
),
new DecoderSimplePlugin(
catchIllegalInstruction = true
diff --git a/platform/wavelet3d/w3d_host_vexriscv.v b/platform/wavelet3d/w3d_host_vexriscv.v
index 4ae9e2c..b46c702 100644
--- a/platform/wavelet3d/w3d_host_vexriscv.v
+++ b/platform/wavelet3d/w3d_host_vexriscv.v
@@ -5451,7 +5451,7 @@ module w3d_host_vexriscv (
assign IBusCachedPlugin_mmuBus_rsp_allowRead = 1'b1;
assign IBusCachedPlugin_mmuBus_rsp_allowWrite = 1'b1;
assign IBusCachedPlugin_mmuBus_rsp_allowExecute = 1'b1;
- assign IBusCachedPlugin_mmuBus_rsp_isIoAccess = (5'h00 < IBusCachedPlugin_mmuBus_rsp_physicalAddress[31 : 27]);
+ assign IBusCachedPlugin_mmuBus_rsp_isIoAccess = (6'h07 <= IBusCachedPlugin_mmuBus_rsp_physicalAddress[31 : 26]);
assign IBusCachedPlugin_mmuBus_rsp_isPaging = 1'b0;
assign IBusCachedPlugin_mmuBus_rsp_exception = 1'b0;
assign IBusCachedPlugin_mmuBus_rsp_refilling = 1'b0;
@@ -5460,7 +5460,7 @@ module w3d_host_vexriscv (
assign DBusCachedPlugin_mmuBus_rsp_allowRead = 1'b1;
assign DBusCachedPlugin_mmuBus_rsp_allowWrite = 1'b1;
assign DBusCachedPlugin_mmuBus_rsp_allowExecute = 1'b1;
- assign DBusCachedPlugin_mmuBus_rsp_isIoAccess = (5'h00 < DBusCachedPlugin_mmuBus_rsp_physicalAddress[31 : 27]);
+ assign DBusCachedPlugin_mmuBus_rsp_isIoAccess = (6'h07 <= DBusCachedPlugin_mmuBus_rsp_physicalAddress[31 : 26]);
assign DBusCachedPlugin_mmuBus_rsp_isPaging = 1'b0;
assign DBusCachedPlugin_mmuBus_rsp_exception = 1'b0;
assign DBusCachedPlugin_mmuBus_rsp_refilling = 1'b0;
diff --git a/platform/wavelet3d/w3d_interconnect.sv b/platform/wavelet3d/w3d_interconnect.sv
index 17d7522..22dd5ee 100644
--- a/platform/wavelet3d/w3d_interconnect.sv
+++ b/platform/wavelet3d/w3d_interconnect.sv
@@ -58,11 +58,15 @@ module w3d_interconnect_dram
if_axib.m dram
);
- defparam xbar.NM = 3;
- defparam xbar.NS = 1;
- defparam xbar.OPT_LOWPOWER = 0;
+ // VRAM es 0x1c000000..0x1fffffff
+ function logic[31:0] vram_addr(logic[31:0] addr);
+ return {6'b000111, addr[25:0]};
+ endfunction
defparam
+ xbar.NM = 3,
+ xbar.NS = 1,
+ xbar.OPT_LOWPOWER = 0,
xbar.SLAVE_ADDR = '0,
xbar.SLAVE_MASK = '0,
xbar.C_AXI_ID_WIDTH = 8;
@@ -88,7 +92,7 @@ module w3d_interconnect_dram
host_ibus.awid
}),
.S_AXI_AWADDR({
- gfx_vram.awaddr,
+ vram_addr(gfx_vram.awaddr),
host_dbus.awaddr,
host_ibus.awaddr
}),
@@ -175,7 +179,7 @@ module w3d_interconnect_dram
host_ibus.arid
}),
.S_AXI_ARADDR({
- gfx_vram.araddr,
+ vram_addr(gfx_vram.araddr),
host_dbus.araddr,
host_ibus.araddr
}),