summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/LiteralExtractorSpec.scala
diff options
context:
space:
mode:
authorRichard Lin2019-04-26 17:07:41 -0700
committerGitHub2019-04-26 17:07:41 -0700
commitc1ab9e7afd5072c11d879db913e1b553c7fe0dbe (patch)
tree6e9dce17e2e9556dac48d461b224c6dddf934f0c /src/test/scala/chiselTests/LiteralExtractorSpec.scala
parent5e4c3be862bf53ad34315e635d89816729550c01 (diff)
Bundle literals implementation (#1057)
Diffstat (limited to 'src/test/scala/chiselTests/LiteralExtractorSpec.scala')
-rw-r--r--src/test/scala/chiselTests/LiteralExtractorSpec.scala30
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)