From bffc8b9e851af88128f1c683e67634ebde25c14b Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 24 May 2018 11:46:32 -0700 Subject: Fix UIntToOH for output widths larger than 2^(input width) (#823) * Add test for UIntToOH * Pad UIntToOH inputs to support oversized output widthds * Optimize Bits.pad in case of known widths * Add missing import and fix test in OneHotMuxSpec --- src/test/scala/chiselTests/OneHotMuxSpec.scala | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/scala/chiselTests/OneHotMuxSpec.scala b/src/test/scala/chiselTests/OneHotMuxSpec.scala index 9495703d..e12d7913 100644 --- a/src/test/scala/chiselTests/OneHotMuxSpec.scala +++ b/src/test/scala/chiselTests/OneHotMuxSpec.scala @@ -5,7 +5,7 @@ package chiselTests import Chisel.testers.BasicTester import chisel3._ import chisel3.experimental.FixedPoint -import chisel3.util.Mux1H +import chisel3.util.{Mux1H, UIntToOH} import org.scalatest._ //scalastyle:off magic.number @@ -40,6 +40,9 @@ class OneHotMuxSpec extends FreeSpec with Matchers with ChiselRunners { assertTesterPasses(new DifferentBundleOneHotTester) } } + "UIntToOH with output width greater than 2^(input width)" in { + assertTesterPasses(new UIntToOHTester) + } } class SimpleOneHotTester extends BasicTester { @@ -283,4 +286,11 @@ class DifferentBundleOneHotTester extends BasicTester { stop() } +class UIntToOHTester extends BasicTester { + val out = UIntToOH(1.U, 3) + + require(out.getWidth == 3) + assert(out === 2.U) + stop() +} -- cgit v1.2.3