summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gfx_hw.tcl2
-rw-r--r--rtl/gfx/gfx.sv24
-rw-r--r--rtl/gfx/gfx_frag.sv37
-rw-r--r--rtl/gfx/gfx_funnel.sv (renamed from rtl/gfx/gfx_frag_funnel.sv)2
4 files changed, 32 insertions, 33 deletions
diff --git a/gfx_hw.tcl b/gfx_hw.tcl
index ffe9a43..3da6988 100644
--- a/gfx_hw.tcl
+++ b/gfx_hw.tcl
@@ -70,11 +70,11 @@ add_fileset_file gfx_raster_fine.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_raster_fine.
add_fileset_file gfx_raster_coarse.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_raster_coarse.sv
add_fileset_file gfx_clear.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_clear.sv
add_fileset_file gfx_lerp.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_lerp.sv
+add_fileset_file gfx_funnel.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_funnel.sv
add_fileset_file gfx_frag.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_frag.sv
add_fileset_file gfx_frag_addr.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_frag_addr.sv
add_fileset_file gfx_frag_bary.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_frag_bary.sv
add_fileset_file gfx_frag_shade.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_frag_shade.sv
-add_fileset_file gfx_frag_funnel.sv SYSTEM_VERILOG PATH rtl/gfx/gfx_frag_funnel.sv
#
diff --git a/rtl/gfx/gfx.sv b/rtl/gfx/gfx.sv
index adb777f..cf209bf 100644
--- a/rtl/gfx/gfx.sv
+++ b/rtl/gfx/gfx.sv
@@ -52,7 +52,7 @@ module gfx
(
.in_ready(raster_ready),
.in_valid(0), //TODO
- .out_ready(frag_ready),
+ .out_ready(funnel_ready),
.out_valid(raster_valid),
.vertex_a(), //TODO
@@ -72,17 +72,33 @@ module gfx
.*
);
+ logic funnel_ready, funnel_valid;
+ frag_xy funnel_frag;
+ fixed_tri funnel_bary;
+
+ gfx_funnel funnel
+ (
+ .bary(funnel_bary),
+ .frag(funnel_frag),
+ .in_ready(funnel_ready),
+ .in_valid(raster_valid),
+ .out_ready(frag_ready),
+ .out_valid(funnel_valid),
+ .*
+ );
+
logic frag_ready, frag_valid;
frag_paint frag_out;
gfx_frag frag
(
+ .out(frag_out),
+ .bary(funnel_bary),
+ .frag(funnel_frag),
.in_ready(frag_ready),
- .in_valid(raster_valid),
+ .in_valid(funnel_valid),
.out_ready(1), //TODO
.out_valid(frag_valid),
-
- .out(frag_out),
.*
);
diff --git a/rtl/gfx/gfx_frag.sv b/rtl/gfx/gfx_frag.sv
index 94db287..108f99a 100644
--- a/rtl/gfx/gfx_frag.sv
+++ b/rtl/gfx/gfx_frag.sv
@@ -5,10 +5,10 @@ module gfx_frag
input logic clk,
rst_n,
- input frag_xy_lanes fragments,
- input bary_lanes barys,
- input fixed_tri ws,
- input paint_lanes in_valid,
+ input frag_xy frag,
+ input fixed_tri bary,
+ ws,
+ input logic in_valid,
output logic in_ready,
input logic out_ready,
@@ -16,27 +16,11 @@ module gfx_frag
output frag_paint out
);
- logic funnel_valid;
- frag_xy funnel_frag;
- fixed_tri bary;
-
- gfx_frag_funnel funnel
- (
- .frag(funnel_frag),
- .out_ready(frag_ready),
- .out_valid(funnel_valid),
- .*
- );
-
- logic frag_ready, frag_stall;
+ logic stall;
gfx_pipeline_flow #(.STAGES(`GFX_FRAG_STAGES)) addr_flow
(
- .stall(frag_stall),
- .in_ready(frag_ready),
- .in_valid(funnel_valid),
- .out_ready(1),
- .out_valid(),
+ .stall(stall),
.*
);
@@ -44,8 +28,7 @@ module gfx_frag
gfx_frag_addr addr
(
- .frag(funnel_frag),
- .stall(frag_stall),
+ .stall(stall),
.*
);
@@ -55,7 +38,7 @@ module gfx_frag
(
.in(linear),
.out(),
- .stall(frag_stall),
+ .stall(stall),
.*
);
@@ -63,13 +46,13 @@ module gfx_frag
gfx_frag_bary frag_bary
(
- .stall(frag_stall),
+ .stall(stall),
.*
);
gfx_frag_shade shade
(
- .stall(frag_stall),
+ .stall(stall),
.color(),
.argb0(),
.argb1_argb0(),
diff --git a/rtl/gfx/gfx_frag_funnel.sv b/rtl/gfx/gfx_funnel.sv
index 943f582..22fefe3 100644
--- a/rtl/gfx/gfx_frag_funnel.sv
+++ b/rtl/gfx/gfx_funnel.sv
@@ -1,6 +1,6 @@
`include "gfx/gfx_defs.sv"
-module gfx_frag_funnel
+module gfx_funnel
(
input logic clk,
rst_n,