summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/gfx_top.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-05-03 12:01:36 -0600
committerAlejandro Soto <alejandro@34project.org>2024-05-03 12:01:36 -0600
commitd6dcfc10f26056485cb260af93027047a6aa8d30 (patch)
tree358a7e69c13fe51f7348bba893c2489db9b022fc /platform/wavelet3d/gfx_top.sv
parent405c0287c80c34b0e9dfb9d9326b86d12433b4c4 (diff)
platform/wavelet3d: implement sched domain crossbar
Diffstat (limited to 'platform/wavelet3d/gfx_top.sv')
-rw-r--r--platform/wavelet3d/gfx_top.sv40
1 files changed, 32 insertions, 8 deletions
diff --git a/platform/wavelet3d/gfx_top.sv b/platform/wavelet3d/gfx_top.sv
index b6538d7..8f453a0 100644
--- a/platform/wavelet3d/gfx_top.sv
+++ b/platform/wavelet3d/gfx_top.sv
@@ -41,13 +41,13 @@ import gfx::*;
output word raster_tdata
);
+ logic srst_n;
+
gfx_wb fpint_wb();
gfx_axib insn_mem();
- gfx_axil sched_axi();
gfx_pkts geometry(), coverage();
gfx_regfile_io fpint_io();
-
- axi4lite_intf #(.ADDR_WIDTH(4)) core_sched();
+ gfx_axil bootrom_axi(), sched_axi(), shader_0_axi();
assign q = fpint_wb.rx.lanes;
assign out_valid = fpint_wb.rx.valid;
@@ -87,6 +87,13 @@ import gfx::*;
assign fpint_io.regs.a = a;
assign fpint_io.regs.b = b;
+ gfx_rst_sync rst_sync
+ (
+ .clk,
+ .rst_n,
+ .srst_n
+ );
+
gfx_fpint fpint
(
.clk,
@@ -102,24 +109,41 @@ import gfx::*;
(
.clk,
.rst_n,
+ .srst_n,
.irq(0),
.axim(sched_axi.m)
);
- gfx_raster raster
+ gfx_bootrom bootrom
(
.clk,
.rst_n,
- .geometry(geometry.rx),
- .coverage(coverage.tx)
+ .axis(bootrom_axi.s)
);
- gfx_shader shader
+ gfx_shader shader_0
(
.clk,
.rst_n,
- .sched(core_sched.slave),
+ .sched(shader_0_axi.s),
.insn_mem(insn_mem.m)
);
+ gfx_xbar_sched xbar
+ (
+ .clk,
+ .srst_n,
+ .sched(sched_axi.s),
+ .bootrom(bootrom_axi.m),
+ .shader_0(shader_0_axi.m)
+ );
+
+ gfx_raster raster
+ (
+ .clk,
+ .rst_n,
+ .geometry(geometry.rx),
+ .coverage(coverage.tx)
+ );
+
endmodule