From 63fc4c60a01e990858e36c3199867f3eaac481d5 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 5 May 2024 20:50:27 -0600 Subject: rtl/gfx: refactor gfx_top out of platform top --- platform/wavelet3d/w3d_top.sv | 60 ++++------------------------------- rtl/gfx/gfx_top.sv | 73 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 54 deletions(-) create mode 100644 rtl/gfx/gfx_top.sv diff --git a/platform/wavelet3d/w3d_top.sv b/platform/wavelet3d/w3d_top.sv index a125107..ec19fd2 100644 --- a/platform/wavelet3d/w3d_top.sv +++ b/platform/wavelet3d/w3d_top.sv @@ -41,12 +41,8 @@ import gfx::*; output word raster_tdata ); - logic srst_n; - gfx_wb fpint_wb(); - if_axib insn_mem(); - if_axil bootrom_axi(), debug_axi(), sched_axi(), shader_0_axi(); - if_pkts geometry(), coverage(); + if_pkts coverage(), geometry(); gfx_regfile_io fpint_io(); assign q = fpint_wb.rx.lanes; @@ -87,13 +83,6 @@ 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_shader_fpint fpint ( .clk, @@ -106,55 +95,18 @@ import gfx::*; .read_data(fpint_io.ab) ); - gfx_sched sched - ( - .clk, - .rst_n, - .srst_n, - .irq(0), - .axim(sched_axi.m) - ); - - gfx_bootrom bootrom - ( - .clk, - .rst_n, - .axis(bootrom_axi.s) - ); - - gfx_sim_debug debug - ( - .clk, - .rst_n, - .axis(debug_axi.s) - ); - - gfx_shader shader_0 + gfx_raster raster ( .clk, .rst_n, - .sched(shader_0_axi.s), - .insn_mem(insn_mem.m) - ); - - gfx_xbar_sched xbar - ( - .clk, - .srst_n, - - .sched(sched_axi.s), - - .debug(debug_axi.m), - .bootrom(bootrom_axi.m), - .shader_0(shader_0_axi.m) + .geometry(geometry.rx), + .coverage(coverage.tx) ); - gfx_raster raster + gfx_top gfx ( .clk, - .rst_n, - .geometry(geometry.rx), - .coverage(coverage.tx) + .rst_n ); endmodule diff --git a/rtl/gfx/gfx_top.sv b/rtl/gfx/gfx_top.sv new file mode 100644 index 0000000..853468d --- /dev/null +++ b/rtl/gfx/gfx_top.sv @@ -0,0 +1,73 @@ +module gfx_top +import gfx::*; +( + input logic clk, + rst_n +); + + logic srst_n; + + if_axib insn_mem(); + if_axil bootrom_axi(), debug_axi(), sched_axi(), shader_0_axi(); + + gfx_rst_sync rst_sync + ( + .clk, + .rst_n, + .srst_n + ); + + gfx_sched sched + ( + .clk, + .rst_n, + .srst_n, + .irq(0), + .axim(sched_axi.m) + ); + + gfx_bootrom bootrom + ( + .clk, + .rst_n, + .axis(bootrom_axi.s) + ); + + gfx_sim_debug debug + ( + .clk, + .rst_n, + .axis(debug_axi.s) + ); + + gfx_shader shader_0 + ( + .clk, + .rst_n, + .sched(shader_0_axi.s), + .insn_mem(insn_mem.m) + ); + + gfx_xbar_sched xbar + ( + .clk, + .srst_n, + + .sched(sched_axi.s), + + .debug(debug_axi.m), + .bootrom(bootrom_axi.m), + .shader_0(shader_0_axi.m) + ); + + /*TODO + gfx_raster raster + ( + .clk, + .rst_n, + .geometry(TODO), + .coverage(TODO) + ); + */ + +endmodule -- cgit v1.2.3