summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJack Koenig2021-07-08 17:07:24 -0700
committerGitHub2021-07-08 17:07:24 -0700
commit4b7b771eeced366345779a75987ce552558a1c7e (patch)
tree99c993f64123fcb176218c2fecb3fb8cd8923ed5 /src
parent16c0b53e04f3a78ddaaa382936cd660523a57199 (diff)
Make it legal for concrete resets to drive abstract reset (#2018)
This has been legal in FIRRTL since v1.2.3 (when reset inference started using a unification-style algorithm) but was never exposed in the Chisel API. Also delete the overridden connects in AsyncReset and ResetType which just duplicate logic from MonoConnect.
Diffstat (limited to 'src')
-rw-r--r--src/test/scala/chiselTests/ResetSpec.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/ResetSpec.scala b/src/test/scala/chiselTests/ResetSpec.scala
index 0e535964..7a5d444d 100644
--- a/src/test/scala/chiselTests/ResetSpec.scala
+++ b/src/test/scala/chiselTests/ResetSpec.scala
@@ -44,6 +44,26 @@ class ResetSpec extends ChiselFlatSpec with Utils {
ChiselStage.elaborate(new AbstractResetDontCareModule)
}
+ it should "be able to drive Bool" in {
+ ChiselStage.emitVerilog(new RawModule {
+ val in = IO(Input(Bool()))
+ val out = IO(Output(Bool()))
+ val w = Wire(Reset())
+ w := in
+ out := w
+ })
+ }
+
+ it should "be able to drive AsyncReset" in {
+ ChiselStage.emitVerilog(new RawModule {
+ val in = IO(Input(AsyncReset()))
+ val out = IO(Output(AsyncReset()))
+ val w = Wire(Reset())
+ w := in
+ out := w
+ })
+ }
+
it should "allow writing modules that are reset agnostic" in {
val sync = compile(new Module {
val io = IO(new Bundle {