From 081a8a3ba8bfe036f31da53f9c041a2caa30fce2 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 5 May 2024 17:34:22 -0600 Subject: rtl/legacy_gfx: rename gfx -> legacy_gfx --- rtl/legacy_gfx/gfx_setup_edge.sv | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 rtl/legacy_gfx/gfx_setup_edge.sv (limited to 'rtl/legacy_gfx/gfx_setup_edge.sv') diff --git a/rtl/legacy_gfx/gfx_setup_edge.sv b/rtl/legacy_gfx/gfx_setup_edge.sv new file mode 100644 index 0000000..5d69a88 --- /dev/null +++ b/rtl/legacy_gfx/gfx_setup_edge.sv @@ -0,0 +1,53 @@ +`include "gfx/gfx_defs.sv" + +module gfx_setup_edge +( + input logic clk, + + input raster_xy p, + q, + origin, + input logic stall, + + output fixed base, + inc_x, + inc_y +); + + fixed delta_x, delta_y, hold_inc_x, hold_inc_y; + + gfx_pipes #(.WIDTH($bits(inc_x)), .DEPTH(`FIXED_FMA_DOT_STAGES)) inc_x_pipes + ( + .in(hold_inc_x), + .out(inc_x), + .* + ); + + gfx_pipes #(.WIDTH($bits(inc_y)), .DEPTH(`FIXED_FMA_DOT_STAGES)) inc_y_pipes + ( + .in(hold_inc_y), + .out(inc_y), + .* + ); + + gfx_fixed_fma_dot edge_base + ( + .c(0), + .q(base), + .a0(delta_x), + .b0(hold_inc_x), + .a1(delta_y), + .b1(hold_inc_y), + .* + ); + + always_ff @(posedge clk) + if (!stall) begin + delta_x <= origin.x - q.x; + delta_y <= origin.y - q.y; + + hold_inc_x <= p.y - q.y; + hold_inc_y <= q.x - p.x; + end + +endmodule -- cgit v1.2.3