From 4fdcb079663eccc71ed2c120f8279d6c364de9fd Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sat, 4 May 2024 23:58:08 -0600 Subject: platform/wavelet3d: implement shader writeback --- platform/wavelet3d/gfx_shader.sv | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'platform/wavelet3d/gfx_shader.sv') 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 -- cgit v1.2.3