summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_sp.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-21 14:12:34 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-21 18:03:15 -0600
commit09b1358028ba1d88f7bfd02389c9078eba7afe8b (patch)
tree5d1def83e638d5b05a5cc7f8104b701c561577ef /rtl/gfx/gfx_sp.sv
parenta7d581b4910e4e23fa57f89c0a28669ce5a49d2a (diff)
rtl/gfx: implement SP writeback
Diffstat (limited to 'rtl/gfx/gfx_sp.sv')
-rw-r--r--rtl/gfx/gfx_sp.sv36
1 files changed, 26 insertions, 10 deletions
diff --git a/rtl/gfx/gfx_sp.sv b/rtl/gfx/gfx_sp.sv
index ea3b126..7add2db 100644
--- a/rtl/gfx/gfx_sp.sv
+++ b/rtl/gfx/gfx_sp.sv
@@ -60,43 +60,59 @@ module gfx_sp
.*
);
+ logic shuffler_wb_valid;
+ wb_op shuffler_wb;
+
gfx_sp_shuffler shuffler
(
.a(),
.b(),
- .wb(),
+ .wb(shuffler_wb),
.deco(),
.in_ready(),
.in_valid(0),
- .wb_ready(1),
- .wb_valid(),
+ .wb_ready(shuffler_wb_ready),
+ .wb_valid(shuffler_wb_valid),
.*
);
+ logic combiner_wb_valid;
+ wb_op combiner_wb;
+
gfx_sp_combiner combiner
(
.a(),
.b(),
- .wb(),
+ .wb(combiner_wb),
.deco(),
.in_ready(),
.in_valid(0),
- .wb_ready(1),
- .wb_valid(),
+ .wb_ready(combiner_wb_ready),
+ .wb_valid(combiner_wb_valid),
.*
);
- logic recv_ready;
+ logic recv_ready, stream_wb_valid;
+ wb_op stream_wb;
gfx_sp_stream stream
(
.a(),
- .wb(),
+ .wb(stream_wb),
.deco(),
.in_ready(),
.in_valid(0),
- .wb_ready(1),
- .wb_valid(),
+ .wb_ready(stream_wb_ready),
+ .wb_valid(stream_wb_valid),
+ .*
+ );
+
+ mat4 wr_data;
+ logic combiner_wb_ready, shuffler_wb_ready, stream_wb_ready, wr;
+ vreg_num wr_reg;
+
+ gfx_sp_writeback writeback
+ (
.*
);