summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/gfx_top.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-03-15 21:57:34 -0600
committerAlejandro Soto <alejandro@34project.org>2024-03-15 21:57:34 -0600
commitf1270a246570eacc093c836337dc55546aabd399 (patch)
treea76af6972b4aeff883bea74045ee1a2bf947bdac /platform/wavelet3d/gfx_top.sv
parenteb49b6d871825eaea4e93d47a4368df368b7101a (diff)
platform/wavelet3d: implement rasterizer
Diffstat (limited to 'platform/wavelet3d/gfx_top.sv')
-rw-r--r--platform/wavelet3d/gfx_top.sv31
1 files changed, 30 insertions, 1 deletions
diff --git a/platform/wavelet3d/gfx_top.sv b/platform/wavelet3d/gfx_top.sv
index 77126b9..9f7e452 100644
--- a/platform/wavelet3d/gfx_top.sv
+++ b/platform/wavelet3d/gfx_top.sv
@@ -27,10 +27,31 @@ module gfx_top
encode_enable,
output logic out_valid,
- output gfx::word q[gfx::SHADER_LANES]
+ output gfx::word q[gfx::SHADER_LANES],
+
+ input gfx::word geom_tdata,
+ input logic geom_tlast,
+ geom_tvalid,
+ output logic geom_tready,
+
+ input logic raster_tready,
+ output logic raster_tlast,
+ raster_tvalid,
+ output gfx::word raster_tdata
);
gfx_axil sched_axi();
+ gfx_pkts geometry(), coverage();
+
+ assign geometry.tdata = geom_tdata;
+ assign geometry.tlast = geom_tlast;
+ assign geometry.tvalid = geom_tvalid;
+ assign geom_tready = geometry.tready;
+
+ assign raster_tdata = coverage.tdata;
+ assign raster_tlast = coverage.tlast;
+ assign raster_tvalid = coverage.tvalid;
+ assign coverage.tready = raster_tready;
gfx_fpint fpint
(
@@ -45,4 +66,12 @@ module gfx_top
.axim(sched_axi.m)
);
+ gfx_raster raster
+ (
+ .clk,
+ .rst_n,
+ .geometry(coverage.rx),
+ .coverage(coverage.tx)
+ );
+
endmodule