blob: 7e1fbc4bf882e27e7a70337aa052130104739f7e [file] [log] [blame]
From 228a299a755d3147d1862c7f8fb26d216ff915c0 Mon Sep 17 00:00:00 2001
From: Alex Van Damme <atv@google.com>
Date: Mon, 14 Apr 2025 11:16:57 -0700
Subject: [PATCH] Fix max_num_lanes issue in DC
---
src/fpnew_pkg.sv | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/fpnew_pkg.sv b/src/fpnew_pkg.sv
index 7addc3e..12eec6b 100644
--- a/src/fpnew_pkg.sv
+++ b/src/fpnew_pkg.sv
@@ -393,7 +393,19 @@ package fpnew_pkg;
// Returns the maximum number of lanes in the FPU according to width, format config and vectors
function automatic int unsigned max_num_lanes(int unsigned width, fmt_logic_t cfg, logic vec);
- return vec ? width / min_fp_width(cfg) : 1; // if no vectors, only one lane
+ // return vec ? width / min_fp_width(cfg) : 1; // if no vectors, only one lane
+ if (vec) begin
+ automatic int unsigned res = max_fp_width(cfg);
+ for (int unsigned i = 0; i < NUM_FP_FORMATS; i++) begin
+ if (cfg[i]) begin
+ automatic int unsigned format_width = FP_ENCODINGS[i].exp_bits + FP_ENCODINGS[i].man_bits + 1;
+ res = unsigned'(minimum(res, format_width));
+ end
+ end
+ return width / res;
+ end else begin
+ return 1;
+ end
endfunction
// Returns a mask of active FP formats that are present in lane lane_no of a multiformat slice
--
2.49.0.604.gff1f9ca942-goog