From 8edca94f94dac5e8b9a6a8793e88a7782d351401 Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Mon, 2 Dec 2019 16:06:16 -0800 Subject: Fix asTypeOf for Clock (#1258) --- chiselFrontend/src/main/scala/chisel3/Clock.scala | 2 +- src/test/scala/chiselTests/AsTypeOfTester.scala | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/chiselFrontend/src/main/scala/chisel3/Clock.scala b/chiselFrontend/src/main/scala/chisel3/Clock.scala index 7e530cdf..87674e7b 100644 --- a/chiselFrontend/src/main/scala/chisel3/Clock.scala +++ b/chiselFrontend/src/main/scala/chisel3/Clock.scala @@ -33,6 +33,6 @@ sealed class Clock(private[chisel3] val width: Width = Width(1)) extends Element override def do_asUInt(implicit sourceInfo: SourceInfo, connectCompileOptions: CompileOptions): UInt = pushOp(DefPrim(sourceInfo, UInt(this.width), AsUIntOp, ref)) // scalastyle:ignore line.size.limit private[chisel3] override def connectFromBits(that: Bits)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Unit = { - this := that + this := that.asBool.asClock } } diff --git a/src/test/scala/chiselTests/AsTypeOfTester.scala b/src/test/scala/chiselTests/AsTypeOfTester.scala index 7861f51b..30643f55 100644 --- a/src/test/scala/chiselTests/AsTypeOfTester.scala +++ b/src/test/scala/chiselTests/AsTypeOfTester.scala @@ -70,6 +70,17 @@ class ResetAsTypeOfBoolTester extends BasicTester { stop() } +class AsTypeOfClockTester extends BasicTester { + class MyBundle extends Bundle { + val x = UInt(4.W) + val y = Clock() + } + assert(true.B.asTypeOf(Clock()).asUInt.asBool === true.B) + + assert(0x1f.U.asTypeOf(new MyBundle).asUInt === 0x1f.U) + stop() +} + class AsChiselEnumTester extends BasicTester { object MyEnum extends ChiselEnum { val foo, bar = Value @@ -137,4 +148,8 @@ class AsTypeOfSpec extends ChiselFlatSpec { it should "work for casting to and from ChiselEnums" in { assertTesterPasses(new AsChiselEnumTester) } + + it should "work for casting to and from Clock" in { + assertTesterPasses(new AsTypeOfClockTester) + } } -- cgit v1.2.3