Skip to content

Commit fac233d

Browse files
committed
Refactor. Remove unnecessary static shift in I2P
1 parent be22ede commit fac233d

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

src/main/scala/ItoPConverter.scala

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,17 @@ class ItoPConverterCore(val totalBits: Int, val es: Int, intWidth: Int) extends
2222

2323
val intVal = Mux(result.sign, ~io.integer + 1.U, io.integer)
2424

25-
val zeroCountMappings = Array.range(0, intWidth).reverse.map(index => {
26-
!(intVal(index) === 0.U) -> (intWidth - (index + 1)).U
27-
})
28-
29-
val zeroCount = MuxCase(0.U, zeroCountMappings)
25+
val zeroCount = countLeadingZeros(intVal)
3026
val shiftedIntVal = intVal << zeroCount
3127

3228
result.exponent :=
3329
Cat(0.U, (intWidth - 1).U - zeroCount).asSInt()
3430

3531
result.fraction := {
3632
if(narrowConv)
37-
shiftedIntVal(intWidth - 1, 0) >> (intWidth - maxFractionBitsWithHiddenBit)
33+
shiftedIntVal(intWidth - 1, intWidth - maxFractionBitsWithHiddenBit)
3834
else
39-
shiftedIntVal(intWidth - 1, 0) << (maxFractionBitsWithHiddenBit - intWidth)
35+
Cat(shiftedIntVal(intWidth - 1, 0), 0.U((maxFractionBitsWithHiddenBit - intWidth).W))
4036
}
4137

4238
io.trailingBits := {

0 commit comments

Comments
 (0)