From 081a8a3ba8bfe036f31da53f9c041a2caa30fce2 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 5 May 2024 17:34:22 -0600 Subject: rtl/legacy_gfx: rename gfx -> legacy_gfx --- rtl/legacy_gfx/gfx_sp_combiner.sv | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 rtl/legacy_gfx/gfx_sp_combiner.sv (limited to 'rtl/legacy_gfx/gfx_sp_combiner.sv') diff --git a/rtl/legacy_gfx/gfx_sp_combiner.sv b/rtl/legacy_gfx/gfx_sp_combiner.sv new file mode 100644 index 0000000..900af00 --- /dev/null +++ b/rtl/legacy_gfx/gfx_sp_combiner.sv @@ -0,0 +1,63 @@ +`include "gfx/gfx_defs.sv" + +module gfx_sp_combiner +( + input logic clk, + rst_n, + + input mat4 a, + b, + input insn_deco deco, + input logic in_valid, + output logic in_ready, + + input logic wb_ready, + output logic wb_valid, + output wb_op wb +); + + wb_op wb_out; + logic mul_ready, mul_valid, fifo_ready, fifo_valid, skid_ready, out_stall; + + assign in_ready = mul_ready && fifo_ready; + + gfx_mat_mat mul + ( + .q(wb_out.data), + .in_ready(mul_ready), + .in_valid(in_valid && fifo_ready), + .out_ready(skid_ready && fifo_valid), + .out_valid(mul_valid), + .* + ); + + gfx_fifo #(.WIDTH($bits(vreg_num)), .DEPTH(`GFX_SP_COMBINER_FIFO_DEPTH)) depth + ( + .in(deco.dst), + .out(wb_out.dst), + .in_ready(fifo_ready), + .in_valid(in_valid && mul_ready), + .out_ready(skid_ready && mul_valid), + .out_valid(fifo_valid), + .* + ); + + gfx_skid_flow out_flow + ( + .stall(out_stall), + .in_ready(skid_ready), + .in_valid(fifo_valid && mul_valid), + .out_ready(wb_ready), + .out_valid(wb_valid), + .* + ); + + gfx_skid_buf #(.WIDTH($bits(wb))) out_skid + ( + .in(wb_out), + .out(wb), + .stall(out_stall), + .* + ); + +endmodule -- cgit v1.2.3