diff options
| author | Richard Lin | 2019-04-26 17:07:41 -0700 |
|---|---|---|
| committer | GitHub | 2019-04-26 17:07:41 -0700 |
| commit | c1ab9e7afd5072c11d879db913e1b553c7fe0dbe (patch) | |
| tree | 6e9dce17e2e9556dac48d461b224c6dddf934f0c /src/test/scala/chiselTests/LiteralExtractorSpec.scala | |
| parent | 5e4c3be862bf53ad34315e635d89816729550c01 (diff) | |
Bundle literals implementation (#1057)
Diffstat (limited to 'src/test/scala/chiselTests/LiteralExtractorSpec.scala')
| -rw-r--r-- | src/test/scala/chiselTests/LiteralExtractorSpec.scala | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/src/test/scala/chiselTests/LiteralExtractorSpec.scala b/src/test/scala/chiselTests/LiteralExtractorSpec.scala index 25979488..c2d84831 100644 --- a/src/test/scala/chiselTests/LiteralExtractorSpec.scala +++ b/src/test/scala/chiselTests/LiteralExtractorSpec.scala @@ -5,6 +5,7 @@ package chiselTests import chisel3._ import chisel3.core.FixedPoint import chisel3.experimental.RawModule +import chisel3.experimental.BundleLiterals._ import chisel3.testers.BasicTester import org.scalatest._ @@ -61,20 +62,10 @@ class LiteralExtractorSpec extends ChiselFlatSpec { class InsideBundle extends Bundle { val x = SInt(8.W) val y = FixedPoint(8.W, 4.BP) - - import chisel3.core.BundleLitBinding - def Lit(aVal: SInt, bVal: FixedPoint): InsideBundle = { // scalastyle:ignore method.name - val clone = cloneType - clone.selfBind(BundleLitBinding(Map( - clone.x -> litArgOfBits(aVal), - clone.y -> litArgOfBits(bVal) - ))) - clone - } } class LitInsideOutsideTester(outsideLiteral: InsideBundle) extends BasicTester { - val insideLiteral = (new InsideBundle).Lit(7.S, 6.125.F(4.BP)) + val insideLiteral = (new InsideBundle).Lit(_.x -> 7.S, _.y -> 6.125.F(4.BP)) // the following errors with "assertion failed" @@ -92,7 +83,7 @@ class LiteralExtractorSpec extends ChiselFlatSpec { stop() } - val outsideLiteral = (new InsideBundle).Lit(7.S, 6.125.F(4.BP)) + val outsideLiteral = (new InsideBundle).Lit(_.x -> 7.S, _.y -> 6.125.F(4.BP)) assertTesterPasses{ new LitInsideOutsideTester(outsideLiteral) } } @@ -102,21 +93,8 @@ class LiteralExtractorSpec extends ChiselFlatSpec { class MyBundle extends Bundle { val a = UInt(8.W) val b = Bool() - - // Bundle literal constructor code, which will be auto-generated using macro annotations in - // the future. - import chisel3.core.BundleLitBinding - import chisel3.internal.firrtl.{ULit, Width} - def Lit(aVal: UInt, bVal: Bool): MyBundle = { // scalastyle:ignore method.name - val clone = cloneType - clone.selfBind(BundleLitBinding(Map( - clone.a -> litArgOfBits(aVal), - clone.b -> litArgOfBits(bVal) - ))) - clone - } } - val myBundleLiteral = (new MyBundle).Lit(42.U, true.B) + val myBundleLiteral = (new MyBundle).Lit(_.a -> 42.U, _.b -> true.B) assert(myBundleLiteral.a.litValue == 42) assert(myBundleLiteral.b.litValue == 1) assert(myBundleLiteral.b.litToBoolean == true) |
