diff options
| author | Jack Koenig | 2021-07-08 17:07:24 -0700 |
|---|---|---|
| committer | GitHub | 2021-07-08 17:07:24 -0700 |
| commit | 4b7b771eeced366345779a75987ce552558a1c7e (patch) | |
| tree | 99c993f64123fcb176218c2fecb3fb8cd8923ed5 /src/test | |
| parent | 16c0b53e04f3a78ddaaa382936cd660523a57199 (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/test')
| -rw-r--r-- | src/test/scala/chiselTests/ResetSpec.scala | 20 |
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 { |
