diff options
Diffstat (limited to 'rtl/gfx')
| -rw-r--r-- | rtl/gfx/gfx_fp_inv.sv | 33 | ||||
| -rw-r--r-- | rtl/gfx/gfx_perspective.sv | 69 | ||||
| -rw-r--r-- | rtl/gfx/gfx_perspective_flow.sv | 50 |
3 files changed, 0 insertions, 152 deletions
diff --git a/rtl/gfx/gfx_fp_inv.sv b/rtl/gfx/gfx_fp_inv.sv deleted file mode 100644 index 33f7bf8..0000000 --- a/rtl/gfx/gfx_fp_inv.sv +++ /dev/null @@ -1,33 +0,0 @@ -`include "gfx/gfx_defs.sv" - -module gfx_fp_inv -( - input logic clk, - - input fp a, - input logic stall, - - output fp q -); - -`ifndef VERILATOR - ip_fp_inv ip_inv - ( - .en(!stall), - .areset(0), - .* - ); -`else - fp a_pop; - - assign q = $c("taller::fp_inv(", a_pop, ")"); - - gfx_pipes #(.WIDTH($bits(a)), .DEPTH(`FP_INV_STAGES)) a_pipes - ( - .in(a), - .out(a_pop), - .* - ); -`endif - -endmodule diff --git a/rtl/gfx/gfx_perspective.sv b/rtl/gfx/gfx_perspective.sv deleted file mode 100644 index 6af1724..0000000 --- a/rtl/gfx/gfx_perspective.sv +++ /dev/null @@ -1,69 +0,0 @@ -`include "gfx/gfx_defs.sv" - -module gfx_perspective -( - input logic clk, - - input attr4 clip_attr, - input logic stall, - in_start, - out_start, - - output attr4 ndc_attr, - output fp w_inv -); - - fp selected_w_inv, next_w_inv, vertex_w_inv, w_inv_pipes[`FP_MUL_STAGES]; - vec4 in_pipes[`FP_INV_STAGES], div_q; - - assign w_inv = w_inv_pipes[`FP_MUL_STAGES - 1]; - assign selected_w_inv = in_start ? next_w_inv : vertex_w_inv; - - gfx_fp_inv inv - ( - .a(clip_attr.w), - .q(next_w_inv), - .* - ); - - genvar i; - generate - for (i = 0; i < `FLOATS_PER_VEC; ++i) begin: divs - gfx_fp_mul div - ( - .a(in_pipes[`FP_INV_STAGES - 1][i]), - .b(selected_w_inv), - .q(div_q[i]), - .* - ); - end - - for (i = 1; i < `FP_INV_STAGES; ++i) begin: in - always_ff @(posedge clk) - if (!stall) - in_pipes[i] <= in_pipes[i - 1]; - end - - for (i = 1; i < `FP_MUL_STAGES; ++i) begin: out - always_ff @(posedge clk) - if (!stall) - w_inv_pipes[i] <= w_inv_pipes[i - 1]; - end - endgenerate - - always_comb begin - ndc_attr = div_q; - if (out_start) - ndc_attr.w = `FP_UNIT; - end - - always_ff @(posedge clk) - if (!stall) begin - if (in_start) - vertex_w_inv <= next_w_inv; - - in_pipes[0] <= clip_attr; - w_inv_pipes[0] <= selected_w_inv; - end - -endmodule diff --git a/rtl/gfx/gfx_perspective_flow.sv b/rtl/gfx/gfx_perspective_flow.sv deleted file mode 100644 index e94f584..0000000 --- a/rtl/gfx/gfx_perspective_flow.sv +++ /dev/null @@ -1,50 +0,0 @@ -`include "gfx/gfx_defs.sv" - -module gfx_perspective_flow -( - input logic clk, - rst_n, - - input logic vertex_start, - output logic stall, - in_start, - out_start, - - input logic in_valid, - out_ready, - - output logic in_ready, - out_valid - stall -); - - localparam STAGES = `FP_INV_STAGES + `FP_MUL_STAGES; - - logic[STAGES - 1:0] start_pipes; - - assign in_start = start_pipes[`FP_INV_STAGES - 1]; - assign out_start = start_pipes[STAGES - 1]; - - gfx_pipeline_flow #(.STAGES(STAGES)) flow - ( - .* - ); - - always_ff @(posedge clk or negedge rst_n) - if (!rst_n) - start_pipes[0] <= 0; - else if (!stall) - start_pipes[0] <= in_valid && vertex_start; - - genvar i; - generate - for (i = 1; i < STAGES; ++i) begin: pipeline - always_ff @(posedge clk or negedge rst_n) - if (!rst_n) - start_pipes[i] <= 0; - else if (!stall) - start_pipes[i] <= start_pipes[i - 1]; - end - endgenerate - -endmodule |
