summaryrefslogtreecommitdiff
path: root/platform/wavelet3d/gfx_float_lane.sv
diff options
context:
space:
mode:
Diffstat (limited to 'platform/wavelet3d/gfx_float_lane.sv')
-rw-r--r--platform/wavelet3d/gfx_float_lane.sv53
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