summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/w3d_top.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-05-12 13:28:53 -0600
committerAlejandro Soto <alejandro@34project.org>2024-05-12 18:13:02 -0600
commitde49ebb80d1e2ef8283818332a0ac6bf5d70440d (patch)
treefc437474dfe336a43dd4fca9cd31ed150a435868 /platform/wavelet3d/w3d_top.sv
parente581090bb9e7965c463be35544395406f5a5441d (diff)
platform/wavelet3d: implement JTAG TAP bridge in simulation
Diffstat (limited to 'platform/wavelet3d/w3d_top.sv')
-rw-r--r--platform/wavelet3d/w3d_top.sv103
1 files changed, 8 insertions, 95 deletions
diff --git a/platform/wavelet3d/w3d_top.sv b/platform/wavelet3d/w3d_top.sv
index 0875ba2..2b24ec4 100644
--- a/platform/wavelet3d/w3d_top.sv
+++ b/platform/wavelet3d/w3d_top.sv
@@ -1,92 +1,25 @@
module w3d_top
-import gfx::*;
(
input logic clk,
rst_n,
- input word a[SHADER_LANES],
- b[SHADER_LANES],
- input logic in_valid,
- setup_mul_float,
- setup_unit_b,
- mnorm_put_hi,
- mnorm_put_lo,
- mnorm_put_mul,
- mnorm_zero_b,
- mnorm_zero_flags,
- minmax_abs,
- minmax_swap,
- minmax_zero_min,
- minmax_copy_flags,
- shiftr_int_signed,
- addsub_copy_flags,
- addsub_int_operand,
- clz_force_nop,
- shiftl_copy_flags,
- round_copy_flags,
- round_enable,
- encode_enable,
+ input logic jtag_tck,
+ jtag_tms,
+ jtag_tdi,
- output logic out_valid,
- output word q[SHADER_LANES],
-
- input word geom_tdata,
- input logic geom_tlast,
- geom_tvalid,
- output logic geom_tready,
-
- input logic raster_tready,
- output logic raster_tlast,
- raster_tvalid,
- output word raster_tdata
+ output logic jtag_tdo
);
- gfx_wb fpint_wb();
if_tap host_jtag();
if_axib dram(), host_dbus(), host_ibus();
if_axil external_io(), gfx_ctrl();
- if_pkts coverage(), geometry();
- gfx_regfile_io fpint_io();
logic srst_n;
- assign q = fpint_wb.rx.lanes;
- assign out_valid = fpint_wb.rx.valid;
-
- assign geometry.tx.tdata = geom_tdata;
- assign geometry.tx.tlast = geom_tlast;
- assign geometry.tx.tvalid = geom_tvalid;
- assign geom_tready = geometry.tx.tready;
-
- assign raster_tdata = coverage.rx.tdata;
- assign raster_tlast = coverage.rx.tlast;
- assign raster_tvalid = coverage.rx.tvalid;
- assign coverage.rx.tready = raster_tready;
-
- fpint_op op;
- assign op.writeback = 1;
- assign op.setup_mul_float = setup_mul_float;
- assign op.setup_unit_b = setup_unit_b;
- assign op.mnorm_put_hi = mnorm_put_hi;
- assign op.mnorm_put_lo = mnorm_put_lo;
- assign op.mnorm_put_mul = mnorm_put_mul;
- assign op.mnorm_zero_b = mnorm_zero_b;
- assign op.mnorm_zero_flags = mnorm_zero_flags;
- assign op.minmax_abs = minmax_abs;
- assign op.minmax_swap = minmax_swap;
- assign op.minmax_zero_min = minmax_zero_min;
- assign op.minmax_copy_flags = minmax_copy_flags;
- assign op.shiftr_int_signed = shiftr_int_signed;
- assign op.addsub_copy_flags = addsub_copy_flags;
- assign op.addsub_int_operand = addsub_int_operand;
- assign op.clz_force_nop = clz_force_nop;
- assign op.shiftl_copy_flags = shiftl_copy_flags;
- assign op.round_copy_flags = round_copy_flags;
- assign op.round_enable = round_enable;
- assign op.encode_enable = encode_enable;
-
- assign fpint_io.regs.a = a;
- assign fpint_io.regs.b = b;
+ assign jtag_tdo = host_jtag.m.tdo;
+ assign host_jtag.m.tck = jtag_tck;
+ assign host_jtag.m.tms = jtag_tms;
+ assign host_jtag.m.tdi = jtag_tdi;
if_rst_sync rst_sync
(
@@ -95,26 +28,6 @@ import gfx::*;
.srst_n
);
- gfx_shader_fpint fpint
- (
- .clk,
- .rst_n,
- .op,
- .wb(fpint_wb.tx),
- .wave(),
- .abort(0),
- .in_valid,
- .read_data(fpint_io.ab)
- );
-
- gfx_raster raster
- (
- .clk,
- .rst_n,
- .geometry(geometry.rx),
- .coverage(coverage.tx)
- );
-
gfx_top gfx
(
.clk,