Skip to content

Commit 9bbd99c

Browse files
author
Andrea Belano
committed
[treewide] Only use top-level parametrization
1 parent 9c5fa28 commit 9bbd99c

20 files changed

+303
-1018
lines changed

Bender.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,6 @@ sources:
4949
- rtl/redmule_mux.sv
5050
- rtl/redmule_inst_decoder.sv
5151

52-
- target: redmule_test_hwpe
53-
files:
54-
- rtl/redmule_wrap.sv
55-
56-
- target: redmule_complex
57-
files:
58-
- rtl/redmule_inst_decoder.sv
59-
- rtl/redmule_complex.sv
60-
- rtl/redmule_complex_wrap.sv
61-
6252
- target: any(redmule_test_complex, redmule_test_hwpe)
6353
files:
6454
- target/sim/src/tb_dummy_memory.sv

rtl/redmule_castin.sv

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55
// Yvan Tortorella <[email protected]>
66
//
77

8-
import fpnew_pkg::*;
9-
import hci_package::*;
10-
import redmule_pkg::*;
11-
12-
module redmule_castin #(
13-
parameter fpnew_pkg::fmt_logic_t FpFmtConfig = FpFmtConfig,
14-
parameter fpnew_pkg::ifmt_logic_t IntFmtConfig = IntFmtConfig,
15-
parameter fpnew_pkg::fp_format_e DstFormat = FPFORMAT,
16-
parameter fpnew_pkg::operation_e Operation = CAST_OP,
8+
module redmule_castin
9+
import fpnew_pkg::*;
10+
import hci_package::*;
11+
import redmule_pkg::*;
12+
#(
13+
parameter fpnew_pkg::fmt_logic_t FpFmtConfig = 6'b001101,
14+
parameter fpnew_pkg::ifmt_logic_t IntFmtConfig = 4'b1000,
15+
parameter fpnew_pkg::fp_format_e DstFormat = FP16,
16+
parameter fpnew_pkg::operation_e Operation = F2F,
17+
parameter int unsigned DataW = MaxDataW,
1718
parameter logic Pipe = 1'b0 ,
1819
localparam int unsigned BW = hci_package::DEFAULT_BW ,
19-
localparam int unsigned OW = ADDR_W ,
2020
localparam int unsigned UW = hci_package::DEFAULT_UW ,
2121
localparam int unsigned WIDTH = fpnew_pkg::maximum(fpnew_pkg::max_fp_width(FpFmtConfig),
2222
fpnew_pkg::max_int_width(IntFmtConfig))
@@ -25,23 +25,25 @@ module redmule_castin #(
2525
input logic rst_ni ,
2626
input logic clear_i ,
2727
input logic cast_i ,
28-
input logic [DATA_W-1:0] src_i ,
28+
input logic [DataW-1:0] src_i ,
2929
input fpnew_pkg::fp_format_e src_fmt_i,
30-
output logic [DATA_W-1:0] dst_o
30+
output logic [DataW-1:0] dst_o
3131
);
3232

33-
localparam int unsigned NUM_CAST = DATA_W/BITW;
33+
localparam int unsigned NUM_CAST = DataW/fp_width(DstFormat);
3434
localparam int unsigned NARRBITW = fpnew_pkg::fp_width(fpnew_pkg::FP8);
3535
// localparam int unsigned ZEROBITS = WIDTH - NARRBITW;
36-
localparam int unsigned ZEROBITS = MIN_FMT;
36+
localparam int unsigned ZEROBITS = fpnew_pkg::min_fp_width(FpFmtConfig);
37+
localparam int unsigned MIN_FMT = fpnew_pkg::min_fp_width(FpFmtConfig);
3738
localparam fpnew_pkg::int_format_e INT_SRC = fpnew_pkg::INT8;
39+
localparam int unsigned DW_RATIO = fp_width(DstFormat)/min_fp_width(FpFmtConfig);
3840

39-
logic [DATA_W-1:0] src_int;
41+
logic [DataW-1:0] src_int;
4042

41-
assign src_int[DATA_W-DW_CUT-1:0] = src_i[DATA_W-DW_CUT-1:0];
42-
assign src_int[DATA_W-1:DATA_W-DW_CUT] = '0;
43+
assign src_int[DataW/DW_RATIO-1:0] = src_i[DataW/DW_RATIO-1:0];
44+
assign src_int[DataW-1:DataW/DW_RATIO] = '0;
4345

44-
logic [DATA_W-1:0] dst_int;
46+
logic [DataW-1:0] dst_int;
4547
logic [NUM_CAST-1:0][WIDTH-1:0] result ,
4648
operand;
4749

rtl/redmule_castout.sv

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@
55
// Yvan Tortorella <[email protected]>
66
//
77

8-
import fpnew_pkg::*;
9-
import hci_package::*;
10-
import redmule_pkg::*;
118

12-
module redmule_castout #(
13-
parameter fpnew_pkg::fmt_logic_t FpFmtConfig = FpFmtConfig,
14-
parameter fpnew_pkg::ifmt_logic_t IntFmtConfig = IntFmtConfig,
15-
parameter fpnew_pkg::fp_format_e SrcFormat = FPFORMAT,
16-
parameter fpnew_pkg::operation_e Operation = CAST_OP,
9+
module redmule_castout
10+
import fpnew_pkg::*;
11+
import hci_package::*;
12+
import redmule_pkg::*;
13+
#(
14+
parameter fpnew_pkg::fmt_logic_t FpFmtConfig = 6'b001101,
15+
parameter fpnew_pkg::ifmt_logic_t IntFmtConfig = 4'b1000,
16+
parameter fpnew_pkg::fp_format_e SrcFormat = FP16,
17+
parameter fpnew_pkg::operation_e Operation = F2F,
1718
parameter logic Pipe = 1'b0 ,
19+
parameter int unsigned DataW = 0,
1820
localparam int unsigned BW = hci_package::DEFAULT_BW ,
19-
localparam int unsigned OW = ADDR_W ,
2021
localparam int unsigned UW = hci_package::DEFAULT_UW ,
2122
localparam int unsigned WIDTH = fpnew_pkg::maximum(fpnew_pkg::max_fp_width(FpFmtConfig),
2223
fpnew_pkg::max_int_width(IntFmtConfig))
@@ -25,18 +26,20 @@ module redmule_castout #(
2526
input logic rst_ni ,
2627
input logic clear_i ,
2728
input logic cast_i ,
28-
input logic [DATA_W-1:0] src_i ,
29+
input logic [DataW-1:0] src_i ,
2930
input fpnew_pkg::fp_format_e dst_fmt_i,
30-
output logic [DATA_W-1:0] dst_o
31+
output logic [DataW-1:0] dst_o
3132
);
3233

33-
localparam int unsigned NUM_CAST = DATA_W/BITW;
34+
localparam int unsigned NUM_CAST = DataW/fp_width(SrcFormat);
3435
localparam int unsigned NARRBITW = fpnew_pkg::fp_width(fpnew_pkg::FP8);
3536
// localparam int unsigned ZEROBITS = WIDTH - NARRBITW;
36-
localparam int unsigned ZEROBITS = MIN_FMT;
37+
localparam int unsigned ZEROBITS = fpnew_pkg::min_fp_width(FpFmtConfig);
38+
localparam int unsigned MIN_FMT = fpnew_pkg::min_fp_width(FpFmtConfig);
3739
localparam fpnew_pkg::int_format_e INT_SRC = fpnew_pkg::INT8;
40+
localparam int unsigned DW_RATIO = fp_width(SrcFormat)/min_fp_width(FpFmtConfig);
3841

39-
logic [DATA_W-1:0] dst_int,
42+
logic [DataW-1:0] dst_int,
4043
res;
4144
logic [NUM_CAST-1:0][WIDTH-1:0] result ,
4245
operand;
@@ -83,7 +86,7 @@ generate
8386

8487
endgenerate
8588

86-
assign dst_int = {{DATA_W-DW_CUT{1'b0}}, res[DATA_W-DW_CUT-1:0]};
89+
assign dst_int = {{DataW/DW_RATIO{1'b0}}, res[DataW/DW_RATIO-1:0]};
8790

8891
assign dst_o = cast_i ? dst_int : src_i;
8992

0 commit comments

Comments
 (0)