summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/gfx_shader.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-05-04 23:58:08 -0600
committerAlejandro Soto <alejandro@34project.org>2024-05-05 14:19:15 -0600
commit4fdcb079663eccc71ed2c120f8279d6c364de9fd (patch)
tree1df076513ef031fa2a2f55d280e2edd09748cdd5 /platform/wavelet3d/gfx_shader.sv
parenta7d92072c0bdc3a3e1c99de64f353e932846bc2a (diff)
platform/wavelet3d: implement shader writeback
Diffstat (limited to 'platform/wavelet3d/gfx_shader.sv')
-rw-r--r--platform/wavelet3d/gfx_shader.sv19
1 files changed, 17 insertions, 2 deletions
diff --git a/platform/wavelet3d/gfx_shader.sv b/platform/wavelet3d/gfx_shader.sv
index f8432c9..322ffb5 100644
--- a/platform/wavelet3d/gfx_shader.sv
+++ b/platform/wavelet3d/gfx_shader.sv
@@ -10,7 +10,7 @@ import gfx_shader_schedif_pkg::*;
gfx_axil.s sched
);
- axi4lite_intf #(.ADDR_WIDTH(4)) regblock();
+ axi4lite_intf #(.ADDR_WIDTH(GFX_SHADER_SCHEDIF_MIN_ADDR_WIDTH)) regblock();
gfx_axil2regblock axil2regblock
(
@@ -23,6 +23,20 @@ import gfx_shader_schedif_pkg::*;
gfx_front_back front_back();
gfx_regfile_io regfile();
+ gfx_shader_setup setup();
+
+ assign schedif_in.SETUP_CTRL.GPR_DONE.hwset = setup.sched.set_done.gpr;
+ assign schedif_in.SETUP_CTRL.MASK_DONE.hwset = setup.sched.set_done.mask;
+ assign schedif_in.SETUP_CTRL.SUBMIT_DONE.hwset = setup.sched.set_done.submit;
+
+ assign setup.sched.write.pc = schedif_out.SETUP_SUBMIT.PC.value;
+ assign setup.sched.write.gpr = schedif_out.SETUP_CTRL.XGPR.value;
+ assign setup.sched.write.mask = schedif_out.SETUP_MASK.MASK.value;
+ assign setup.sched.write.group = schedif_out.SETUP_CTRL.GROUP.value;
+ assign setup.sched.write.pc_set = schedif_out.SETUP_SUBMIT.PC.swmod;
+ assign setup.sched.write.gpr_set = schedif_out.SETUP_GPR.VALUE.swmod;
+ assign setup.sched.write.mask_set = schedif_out.SETUP_MASK.MASK.swmod;
+ assign setup.sched.write.gpr_value = schedif_out.SETUP_GPR.VALUE.value;
gfx_shader_front frontend
(
@@ -40,6 +54,7 @@ import gfx_shader_schedif_pkg::*;
.clk,
.rst_n,
.back(front_back.back),
+ .setup(setup.core),
.reg_wb(regfile.wb),
.read_data(regfile.ab)
);
@@ -47,7 +62,7 @@ import gfx_shader_schedif_pkg::*;
gfx_shader_regs regs
(
.clk,
- .io(regfile)
+ .io(regfile.regs)
);
gfx_shader_schedif schedif