summaryrefslogtreecommitdiff
path: root/target/w3d_de1soc/w3d_de1soc.sv
diff options
context:
space:
mode:
Diffstat (limited to 'target/w3d_de1soc/w3d_de1soc.sv')
-rw-r--r--target/w3d_de1soc/w3d_de1soc.sv116
1 files changed, 7 insertions, 109 deletions
diff --git a/target/w3d_de1soc/w3d_de1soc.sv b/target/w3d_de1soc/w3d_de1soc.sv
index 65d0f4c..1d188fd 100644
--- a/target/w3d_de1soc/w3d_de1soc.sv
+++ b/target/w3d_de1soc/w3d_de1soc.sv
@@ -32,6 +32,11 @@ module w3d_de1soc
output wire [7:0] vga_dac_b
);
+ // Sistema ve 512MiB superior (0x20000000-0x3fffffff) de SDRAM de HPS
+ function logic[31:0] f2s_addr(logic[31:0] addr);
+ return {3'b001, addr[28:0]};
+ endfunction
+
logic button, reset_reset_n, sys_clk, sys_rst_n, sys_srst_n;
logic dram_arready, dram_arvalid, dram_awready, dram_awvalid, dram_bready, dram_bvalid,
@@ -62,20 +67,6 @@ module w3d_de1soc
logic[3:0] mmio_wstrb;
logic[31:0] mmio_araddr, mmio_awaddr, mmio_rdata, mmio_wdata;
- /*logic dram_axi3_arready, dram_axi3_arvalid, dram_axi3_awready, dram_axi3_awvalid,
- dram_axi3_bready, dram_axi3_bvalid, dram_axi3_rlast, dram_axi3_rready,
- dram_axi3_rvalid, dram_axi3_wlast, dram_axi3_wready, dram_axi3_wvalid;
-
- logic[1:0] dram_axi3_arburst, dram_axi3_arlock, dram_axi3_awburst, dram_axi3_awlock,
- dram_axi3_bresp, dram_axi3_rresp;
-
- logic[3:0] dram_axi3_arcache, dram_axi3_arlen, ram_axi3_awcache, dram_axi3_awlen,
- dram_axi3_wstrb;
-
- logic[2:0] dram_axi3_arprot, dram_axi3_arsize, dram_axi3_awprot, dram_axi3_awsize;
- logic[7:0] dram_axi3_arid, dram_axi3_awid, dram_axi3_bid, dram_axi3_rid, dram_axi3_wid;
- logic[31:0] dram_axi3_araddr, dram_axi3_awaddr, dram_axi3_rdata, dram_axi3_wdata;*/
-
logic mmio_full_arlock, mmio_full_awlock;
logic[2:0] mmio_full_arprot, mmio_full_awprot;
logic[3:0] mmio_full_arcache, mmio_full_awcache;
@@ -127,13 +118,13 @@ module w3d_de1soc
.vga_dac_R(vga_dac_r),
.vga_dac_G(vga_dac_g),
.vga_dac_B(vga_dac_b),
- .dram_axi_bridge_s0_araddr(dram_araddr),
+ .dram_axi_bridge_s0_araddr(f2s_addr(dram_araddr)),
.dram_axi_bridge_s0_arlen(dram_arlen),
.dram_axi_bridge_s0_arid(dram_arid),
.dram_axi_bridge_s0_arsize(dram_arsize),
.dram_axi_bridge_s0_arburst(dram_arburst),
.dram_axi_bridge_s0_arvalid(dram_arvalid),
- .dram_axi_bridge_s0_awaddr(dram_awaddr),
+ .dram_axi_bridge_s0_awaddr(f2s_addr(dram_awaddr)),
.dram_axi_bridge_s0_awlen(dram_awlen),
.dram_axi_bridge_s0_awid(dram_awid),
.dram_axi_bridge_s0_awsize(dram_awsize),
@@ -264,99 +255,6 @@ module w3d_de1soc
.jtag_tdo()
);
- /*defparam
- dram_bridge.C_AXI_ID_WIDTH = 8,
- dram_bridge.C_AXI_ADDR_WIDTH = 32,
- dram_bridge.C_AXI_DATA_WIDTH = 32;
-
- axi2axi3 dram_bridge
- (
- .S_AXI_ACLK(sys_clk),
- .S_AXI_ARESETN(sys_srst_n),
-
- .S_AXI_AWVALID(dram_awvalid),
- .S_AXI_AWREADY(dram_awready),
- .S_AXI_AWID(dram_awid),
- .S_AXI_AWADDR(dram_awaddr),
- .S_AXI_AWLEN(dram_awlen),
- .S_AXI_AWSIZE(dram_awsize),
- .S_AXI_AWBURST(dram_awburst),
- .S_AXI_AWLOCK(0),
- .S_AXI_AWCACHE(4'b0011), // Normal non-cacheable, non-bufferable
- .S_AXI_AWPROT(3'b0),
- .S_AXI_AWQOS(4'b0),
-
- .S_AXI_WVALID(dram_wvalid),
- .S_AXI_WREADY(dram_wready),
- .S_AXI_WDATA(dram_wdata),
- .S_AXI_WSTRB(dram_wstrb),
- .S_AXI_WLAST(dram_wlast),
-
- .S_AXI_BVALID(dram_bvalid),
- .S_AXI_BREADY(dram_bready),
- .S_AXI_BID(dram_bid),
- .S_AXI_BRESP(dram_bresp),
-
- .S_AXI_ARVALID(dram_arvalid),
- .S_AXI_ARREADY(dram_arready),
- .S_AXI_ARID(dram_arid),
- .S_AXI_ARADDR(dram_araddr),
- .S_AXI_ARLEN(dram_arlen),
- .S_AXI_ARSIZE(dram_arsize),
- .S_AXI_ARBURST(dram_arburst),
- .S_AXI_ARLOCK(0),
- .S_AXI_ARCACHE(4'b0011), // Normal non-cacheable, non-bufferable
- .S_AXI_ARPROT(3'b0),
- .S_AXI_ARQOS(4'b0),
-
- .S_AXI_RVALID(dram_rvalid),
- .S_AXI_RREADY(dram_rready),
- .S_AXI_RID(dram_rid),
- .S_AXI_RDATA(dram_rdata),
- .S_AXI_RLAST(dram_rlast),
- .S_AXI_RRESP(dram_rresp),
-
- .M_AXI_AWVALID(dram_axi3_awvalid),
- .M_AXI_AWREADY(dram_axi3_awready),
- .M_AXI_AWID(dram_axi3_awid),
- .M_AXI_AWADDR(dram_axi3_awaddr),
- .M_AXI_AWLEN(dram_axi3_awlen),
- .M_AXI_AWSIZE(dram_axi3_awsize),
- .M_AXI_AWBURST(dram_axi3_awburst),
- .M_AXI_AWLOCK(dram_axi3_awlock),
- .M_AXI_AWCACHE(dram_axi3_awcache),
- .M_AXI_AWPROT(dram_axi3_awprot),
- .M_AXI_AWQOS(),
-
- .M_AXI_WVALID(dram_axi3_wvalid),
- .M_AXI_WREADY(dram_axi3_wready),
- .M_AXI_WID(dram_axi3_wid),
- .M_AXI_WDATA(dram_axi3_wdata),
- .M_AXI_WSTRB(dram_axi3_wstrb),
- .M_AXI_WLAST(dram_axi3_wlast),
- .M_AXI_BVALID(dram_axi3_bvalid),
- .M_AXI_BREADY(dram_axi3_bready),
- .M_AXI_BID(dram_axi3_bid),
- .M_AXI_BRESP(dram_axi3_bresp),
- .M_AXI_ARVALID(dram_axi3_arvalid),
- .M_AXI_ARREADY(dram_axi3_arready),
- .M_AXI_ARID(dram_axi3_arid),
- .M_AXI_ARADDR(dram_axi3_araddr),
- .M_AXI_ARLEN(dram_axi3_arlen),
- .M_AXI_ARSIZE(dram_axi3_arsize),
- .M_AXI_ARBURST(dram_axi3_arburst),
- .M_AXI_ARLOCK(dram_axi3_arlock),
- .M_AXI_ARCACHE(dram_axi3_arcache),
- .M_AXI_ARPROT(dram_axi3_arprot),
- .M_AXI_ARQOS(),
- .M_AXI_RVALID(dram_axi3_rvalid),
- .M_AXI_RREADY(dram_axi3_rready),
- .M_AXI_RID(dram_axi3_rid),
- .M_AXI_RDATA(dram_axi3_rdata),
- .M_AXI_RLAST(dram_axi3_rlast),
- .M_AXI_RRESP(dram_axi3_rresp)
- );*/
-
defparam
mmio_bridge.C_AXI_ID_WIDTH = 8,
mmio_bridge.C_AXI_ADDR_WIDTH = 32,