diff options
Diffstat (limited to 'platform')
| -rw-r--r-- | platform/wavelet3d/GenW3DHost.scala | 2 | ||||
| -rw-r--r-- | platform/wavelet3d/w3d_host_vexriscv.v | 4 | ||||
| -rw-r--r-- | platform/wavelet3d/w3d_interconnect.sv | 14 |
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 }), |
