summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_raster.sv
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/gfx/gfx_raster.sv')
-rw-r--r--rtl/gfx/gfx_raster.sv131
1 files changed, 0 insertions, 131 deletions
diff --git a/rtl/gfx/gfx_raster.sv b/rtl/gfx/gfx_raster.sv
deleted file mode 100644
index cb03744..0000000
--- a/rtl/gfx/gfx_raster.sv
+++ /dev/null
@@ -1,131 +0,0 @@
-`include "gfx/gfx_defs.sv"
-
-module gfx_raster
-(
- input logic clk,
- rst_n,
-
- input raster_xyzw vertex_a,
- vertex_b,
- vertex_c,
- input logic in_valid,
- output logic in_ready,
-
- output frag_xy_lanes fragments,
- output bary_lanes barys,
- output fixed_tri ws,
- input logic out_ready,
- output paint_lanes out_valid
-);
-
- //TODO: Es exactamente el mismo asunto que offsets
- assign ws[0] = vertex_a.zw.w;
- assign ws[1] = vertex_b.zw.w;
- assign ws[2] = vertex_c.zw.w;
-
- logic setup_stall, setup_valid;
-
- gfx_pipeline_flow #(.STAGES(`GFX_SETUP_STAGES)) setup_flow
- (
- .stall(setup_stall),
- .out_ready(coarse_ready),
- .out_valid(setup_valid),
- .*
- );
-
- fixed_tri coarse_x_offsets, coarse_y_offsets, coarse_test_offsets, edge_refs;
- raster_xy pos_ref;
- coarse_dim span_x, span_y;
- raster_offsets_tri offsets;
-
- gfx_setup setup
- (
- .stall(setup_stall),
- .vertex_a(vertex_a.xy),
- .vertex_b(vertex_b.xy),
- .vertex_c(vertex_c.xy),
- .*
- );
-
- logic coarse_ready, coarse_valid;
- fixed_tri coarse_corners;
- raster_xy coarse_pos;
- raster_offsets_tri fine_offsets;
-
- gfx_raster_coarse coarse
- (
- .in_valid(setup_valid),
- .in_ready(coarse_ready),
- .out_ready(fine_ready),
- .out_valid(coarse_valid),
- .pos(coarse_pos),
- .corners(coarse_corners),
- .*
- );
-
- logic fine_ready, fine_stall, fine_valid;
-
- always_comb
- for (integer i = 0; i < `GFX_FINE_LANES; ++i)
- out_valid[i] = fine_valid && skid_paint_ij[i];
-
- gfx_pipeline_flow #(.STAGES(`GFX_FINE_STAGES)) fine_flow
- (
- .stall(fine_stall),
- .in_ready(fine_ready),
- .in_valid(coarse_valid),
- .out_ready(out_ready || !(|skid_paint_ij)),
- .out_valid(fine_valid),
- .*
- );
-
- frag_xy fragment_ij[`GFX_RASTER_SIZE][`GFX_RASTER_SIZE];
- fixed_tri barys_ij[`GFX_RASTER_SIZE][`GFX_RASTER_SIZE];
- logic[`GFX_FINE_LANES - 1:0] paint_ij, skid_paint_ij;
-
- gfx_skid_buf #(.WIDTH(`GFX_FINE_LANES)) skid_paint
- (
- .in(paint_ij),
- .out(skid_paint_ij),
- .stall(fine_stall),
- .*
- );
-
- genvar i, j;
- generate
- for (i = 0; i < `GFX_RASTER_SIZE; ++i) begin: fine_x
- for (j = 0; j < `GFX_RASTER_SIZE; ++j) begin: fine_y
- gfx_raster_fine #(.X(i), .Y(j)) fine
- (
- .stall(fine_stall),
-
- .pos(coarse_pos),
- .corners(coarse_corners),
- .offsets(fine_offsets),
-
- .barys(barys_ij[i][j]),
- .paint(paint_ij[j * `GFX_RASTER_SIZE + i]),
- .fragment(fragment_ij[i][j]),
- .*
- );
-
- gfx_skid_buf #(.WIDTH($bits(frag_xy))) skid_fragment
- (
- .in(fragment_ij[i][j]),
- .out(fragments[j * `GFX_RASTER_SIZE + i]),
- .stall(fine_stall),
- .*
- );
-
- gfx_skid_buf #(.WIDTH($bits(fixed_tri))) skid_barys
- (
- .in(barys_ij[i][j]),
- .out(barys[j * `GFX_RASTER_SIZE + i]),
- .stall(fine_stall),
- .*
- );
- end
- end
- endgenerate
-
-endmodule