diff options
| author | Alejandro Soto <alejandro@34project.org> | 2024-05-05 17:38:55 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2024-05-05 18:12:08 -0600 |
| commit | ca02833f22b08ceeeff501107371aa6667426115 (patch) | |
| tree | f864c5fc238a292082d2096ce546270badce9f1d /platform/wavelet3d/gfx_sched.sv | |
| parent | 081a8a3ba8bfe036f31da53f9c041a2caa30fce2 (diff) | |
rtl/gfx: rename platform/wavelet3d -> rtl/gfx
Diffstat (limited to 'platform/wavelet3d/gfx_sched.sv')
| -rw-r--r-- | platform/wavelet3d/gfx_sched.sv | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/platform/wavelet3d/gfx_sched.sv b/platform/wavelet3d/gfx_sched.sv deleted file mode 100644 index b8b6b7e..0000000 --- a/platform/wavelet3d/gfx_sched.sv +++ /dev/null @@ -1,139 +0,0 @@ -module gfx_sched -import gfx::*; -( - input logic clk, - rst_n, - srst_n, - - gfx_axil.m axim, - - input irq_lines irq -); - - logic axi_ready, axi_valid, bram_ready, bram_read, bram_write, bram_write_next, - mem_instr, mem_la_read, mem_la_write, mem_ready, mem_valid, select_bram; - - word bram[SCHED_BRAM_WORDS]; - word axi_rdata, bram_rdata, mem_addr, mem_la_addr, mem_rdata, mem_wdata; - logic[$bits(word) / $bits(byte) - 1:0] mem_wstrb; - - logic[$clog2(SCHED_BRAM_WORDS) - 1:0] bram_addr; - - assign bram_addr = mem_addr[$bits(bram_addr) + SUBWORD_BITS - 1:SUBWORD_BITS]; - assign mem_ready = (axi_valid & axi_ready) | bram_ready; - assign mem_rdata = bram_ready ? bram_rdata : axi_rdata; - assign select_bram = ~|mem_la_addr[$bits(mem_la_addr) - 1:$bits(bram_addr) + SUBWORD_BITS]; - assign bram_write_next = mem_la_write & select_bram; - - defparam core.ENABLE_COUNTERS = 0; - defparam core.ENABLE_COUNTERS64 = 0; - defparam core.BARREL_SHIFTER = 1; - defparam core.COMPRESSED_ISA = 1; - defparam core.CATCH_MISALIGN = 0; - defparam core.CATCH_ILLINSN = 0; - defparam core.ENABLE_MUL = 1; - defparam core.ENABLE_DIV = 1; - defparam core.ENABLE_IRQ = 1; - defparam core.ENABLE_IRQ_QREGS = 0; - defparam core.ENABLE_IRQ_TIMER = 0; - defparam core.PROGADDR_RESET = BOOTROM_BASE; - - picorv32 core - ( - .clk, - .resetn(srst_n), - .trap(), - - .mem_valid, - .mem_instr, - .mem_ready, - - .mem_addr, - .mem_wdata, - .mem_wstrb, - .mem_rdata, - - .mem_la_read, - .mem_la_write, - .mem_la_addr, - .mem_la_wdata(), - .mem_la_wstrb(), - - .pcpi_valid(), - .pcpi_insn(), - .pcpi_rs1(), - .pcpi_rs2(), - .pcpi_wr(), - .pcpi_rd(), - .pcpi_wait(0), - .pcpi_ready(0), - - .irq, - .eoi(), - - .trace_valid(), - .trace_data() - ); - - picorv32_axi_adapter axi - ( - .clk, - .resetn(srst_n), - - .mem_axi_awvalid(axim.awvalid), - .mem_axi_awready(axim.awready), - .mem_axi_awaddr(axim.awaddr), - .mem_axi_awprot(), - - .mem_axi_wvalid(axim.wvalid), - .mem_axi_wready(axim.wready), - .mem_axi_wdata(axim.wdata), - .mem_axi_wstrb(), // Potenciales sorpresas - - .mem_axi_bvalid(axim.bvalid), - .mem_axi_bready(axim.bready), - - .mem_axi_arvalid(axim.arvalid), - .mem_axi_arready(axim.arready), - .mem_axi_araddr(axim.araddr), - .mem_axi_arprot(), - - .mem_axi_rvalid(axim.rvalid), - .mem_axi_rready(axim.rready), - .mem_axi_rdata(axim.rdata), - - .mem_valid(mem_valid & axi_valid), - .mem_instr, - .mem_ready(axi_ready), - .mem_addr, - .mem_wdata, - .mem_wstrb, - .mem_rdata(axi_rdata) - ); - - always_ff @(posedge clk) begin - if (bram_write) begin - for (int i = 0; i < $bits(mem_wstrb); ++i) - if (mem_wstrb[i]) - bram[bram_addr][i] <= mem_wdata[i]; - - bram_rdata <= 'x; - end else - bram_rdata <= bram[bram_addr]; - end - - - always_ff @(posedge clk or negedge rst_n) - if (~rst_n) begin - axi_valid <= 0; - bram_read <= 0; - bram_ready <= 0; - bram_write <= 0; - end else begin - axi_valid <= ~select_bram | (axi_valid & ~axi_ready); - bram_read <= mem_la_read & select_bram; - bram_write <= bram_write_next; - bram_ready <= bram_read | bram_write_next; - end - -endmodule |
