From 405c0287c80c34b0e9dfb9d9326b86d12433b4c4 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Thu, 2 May 2024 21:03:05 -0600 Subject: platform/wavelet3d: implement shader cores This commit contains over a month of intermittent work (I don't have enough free time to do this the right way) --- platform/wavelet3d/gfx_shader.sv | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 platform/wavelet3d/gfx_shader.sv (limited to 'platform/wavelet3d/gfx_shader.sv') diff --git a/platform/wavelet3d/gfx_shader.sv b/platform/wavelet3d/gfx_shader.sv new file mode 100644 index 0000000..3be6ed4 --- /dev/null +++ b/platform/wavelet3d/gfx_shader.sv @@ -0,0 +1,54 @@ +module gfx_shader +import gfx::*; +import gfx_shader_schedif_pkg::*; +( + input logic clk, + rst_n, + + gfx_axib.m insn_mem, + + axi4lite_intf.slave sched +); + + gfx_shader_schedif__in_t schedif_in; + gfx_shader_schedif__out_t schedif_out; + + gfx_front_back front_back(); + gfx_regfile_io regfile(); + + gfx_shader_front frontend + ( + .clk, + .rst_n, + .front(front_back.front), + .reg_bind(regfile.bind_), + .reg_read(regfile.read), + .fetch_mem(insn_mem), + .icache_flush(schedif_out.CORE.IFLUSH.value) + ); + + gfx_shader_back backend + ( + .clk, + .rst_n, + .back(front_back.back), + .reg_wb(regfile.wb), + .read_data(regfile.ab) + ); + + gfx_shader_regs regs + ( + .clk, + .io(regfile) + ); + + gfx_shader_schedif schedif + ( + .clk, + .arst_n(rst_n), + .s_axil(sched), + .hwif_in(schedif_in), + .hwif_out(schedif_out) + ); + +endmodule -- cgit v1.2.3