summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/gfx_top.sv
blob: 9f7e45292ac4e152406adf8361a75d7c2f020b4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
module gfx_top
(
	input  logic     clk,
	                 rst_n,

	input  gfx::word a[gfx::SHADER_LANES],
	                 b[gfx::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,

	output logic     out_valid,
	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
	(
		.*
	);

	gfx_sched sched
	(
		.clk,
		.rst_n,
		.irq(0),
		.axim(sched_axi.m)
	);

	gfx_raster raster
	(
		.clk,
		.rst_n,
		.geometry(coverage.rx),
		.coverage(coverage.tx)
	);

endmodule