diff options
Diffstat (limited to 'platform/wavelet3d/gfx_float_lane.sv')
| -rw-r--r-- | platform/wavelet3d/gfx_float_lane.sv | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/platform/wavelet3d/gfx_float_lane.sv b/platform/wavelet3d/gfx_float_lane.sv deleted file mode 100644 index f7b3ba1..0000000 --- a/platform/wavelet3d/gfx_float_lane.sv +++ /dev/null @@ -1,53 +0,0 @@ -module gfx_float_lane -( - input logic clk, - - input gfx::float a, - b, - - output gfx::float q -); - - import gfx::*; - - logic slow_fmul; - float_round q_fmul; - float_special a_special, b_special; - - function float_special front_flags(float in); - front_flags.val = in; - front_flags.exp_max = &in.exp; - front_flags.exp_min = ~|in.exp; - front_flags.mant_zero = ~|in.mant; - endfunction - - function logic is_special(float_special in); - is_special = in.exp_max | (in.exp_min & ~in.mant_zero); - endfunction - - gfx_fadd_lane fmul - ( - .clk(clk), - .a(a_special), - .b(b_special), - .q(q_fmul), - .slow_in(slow_fmul) - ); - - gfx_round_lane round - ( - .clk(clk), - .in(q_fmul), - .out(q) - ); - - always_comb begin - slow_fmul = is_special(a_special) | is_special(b_special); - end - - always_ff @(posedge clk) begin - a_special <= front_flags(a); - b_special <= front_flags(b); - end - -endmodule |
