Skip to content

Commit 79f75e0

Browse files
author
Stefan Mach
committed
🔖 Release 0.6.2
2 parents 4a241d4 + c73f7ff commit 79f75e0

File tree

6 files changed

+33
-4
lines changed

6 files changed

+33
-4
lines changed

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Multiple integer formats with arbitrary number of bits (as source or destionatio
3030
- Conversions between FP formats and integers (signed & unsigned) and vice versa
3131
- Classification
3232

33-
Multi-format FMA operations (i.e. multiplication in one format, accumulation in another) are optionally supported.
33+
Multi-format FMA operations (i.e. multiplication in one format, accumulation in another) are optionally supported.
3434

3535
Optionally, *packed-SIMD* versions of all the above operations can be generated for formats narrower than the FPU datapath width.
3636
E.g.: Support for double-precision (64bit) operations and two simultaneous single-precision (32bit) operations.
@@ -137,3 +137,11 @@ Furthermore, this repository tries to adhere to [SemVer](https://semver.org/), a
137137
## Licensing
138138

139139
FPnew is released under the *SolderPad Hardware License*, which is a permissive license based on Apache 2.0. Please refer to the [license file](LICENSE) for further information.
140+
141+
## Acknowledgement
142+
143+
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 732631.
144+
145+
For further information, visit [oprecomp.eu](http://oprecomp.eu).
146+
147+
![OPRECOMP](docs/fig/oprecomp_logo_inline1.png)

docs/CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,15 @@ Versions of the IP in the same major relase are "pin-compatible" with each other
1414
### Changed
1515
### Fixed
1616

17+
## [0.6.2] - 2020-06-02
18+
19+
### Changed
20+
- Number of pipeline registers in multi-format units is the maximum of all contained formats instead of the first format marked `MERGED`
21+
22+
### Fixed
23+
- Typo in changelog
24+
- Missing type cast breaking simulation in VCS [(#24)](https://github.com/pulp-platform/fpnew/issues/24)
25+
1726

1827
## [0.6.1] - 2019-07-10
1928

@@ -34,7 +43,7 @@ Versions of the IP in the same major relase are "pin-compatible" with each other
3443
- Various linter warnings
3544
- Documentation to reflect on updated pipeline distribution order
3645
- [fpu_div_sqrt_mvp] Bumped to fix linter warnings
37-
- [Bender] Fixed dependencies for Bender [(#14)](https://github.com/pulp-platform/fpnew/pull/15)
46+
- [Bender] Fixed dependencies for Bender [(#15)](https://github.com/pulp-platform/fpnew/pull/15)
3847

3948
### Removed
4049
- Currently unused modules: `fpnew_pipe*`, `fpnew_{f2i,f2f,i2f}_cast`

docs/fig/oprecomp_logo_inline1.png

33.7 KB
Loading

src/fpnew_cast_multi.sv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ module fpnew_cast_multi #(
441441
// Handle FP over-/underflows
442442
end else begin
443443
// Overflow or infinities (for proper rounding)
444-
if ((destination_exp_q >= 2**fpnew_pkg::exp_bits(dst_fmt_q2)-1) ||
444+
if ((destination_exp_q >= signed'(2**fpnew_pkg::exp_bits(dst_fmt_q2))-1) ||
445445
(~src_is_int_q && info_q.is_inf)) begin
446446
final_exp = unsigned'(2**fpnew_pkg::exp_bits(dst_fmt_q2)-2); // largest normal value
447447
preshift_mant = '1; // largest normal value and RS bits set

src/fpnew_opgroup_block.sv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ module fpnew_opgroup_block #(
153153
if (fpnew_pkg::any_enabled_multi(FmtUnitTypes, FpFmtMask)) begin : gen_merged_slice
154154

155155
localparam FMT = fpnew_pkg::get_first_enabled_multi(FmtUnitTypes, FpFmtMask);
156+
localparam REG = fpnew_pkg::get_num_regs_multi(FmtPipeRegs, FmtUnitTypes, FpFmtMask);
156157

157158
logic in_valid;
158159

@@ -164,7 +165,7 @@ module fpnew_opgroup_block #(
164165
.FpFmtConfig ( FpFmtMask ),
165166
.IntFmtConfig ( IntFmtMask ),
166167
.EnableVectors ( EnableVectors ),
167-
.NumPipeRegs ( FmtPipeRegs[FMT] ),
168+
.NumPipeRegs ( REG ),
168169
.PipeConfig ( PipeConfig ),
169170
.TagType ( TagType )
170171
) i_multifmt_slice (

src/fpnew_pkg.sv

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,4 +470,15 @@ package fpnew_pkg;
470470
return fp_format_e'(0);
471471
endfunction
472472

473+
// Returns the largest number of regs that is active and is set as MERGED
474+
function automatic int unsigned get_num_regs_multi(fmt_unsigned_t regs,
475+
fmt_unit_types_t types,
476+
fmt_logic_t cfg);
477+
automatic int unsigned res = 0;
478+
for (int unsigned i = 0; i < NUM_FP_FORMATS; i++) begin
479+
if (cfg[i] && types[i] == MERGED) res = maximum(res, regs[i]);
480+
end
481+
return res;
482+
endfunction
483+
473484
endpackage

0 commit comments

Comments
 (0)