Make CheckWidths accept zero-width UIntLiterals
Fixes #508
Release notes: Zero-width literals with value zero are now allowed.
This change seems to lead to a zero-width Vec issue in the Chisel tests. Looking into it
(Well I think this one combined with the one where Chisel emits zero width UInts)
@colinschmidt Can you confirm this works?
Here's the Chisel branch, looking in to the Chisel test failure: https://github.com/ucb-bar/chisel3/tree/one-entry-enum
Thanks @jackkoenig I'll test with that branch and this firrtl branch
Hmm I got a bunch of these errors:
======== Starting Transform CheckWidths$ ========
[error] (run-main-0) firrtl.passes.PassExceptions:
[error] firrtl.passes.CheckWidths$TailWidthException: @[Decoupled.scala 221:40:[email protected]]: [module FinishQueue] Parameter 1 in tail operator is larger than input width 1.
[error] firrtl.passes.CheckWidths$TailWidthException: @[Decoupled.scala 221:40:[email protected]]: [module FinishQueue_1] Parameter 1 in tail operator is larger than input width 1.
[error] firrtl.passes.CheckWidths$TailWidthException: @[Decoupled.scala 221:40:[email protected]]: [module FinishQueue_2] Parameter 1 in tail operator is larger than input width 1.
[error] firrtl.passes.CheckWidths$TailWidthException: @[Decoupled.scala 221:40:[email protected]]: [module Queue_16] Parameter 1 in tail operator is larger than input width 1.
[error] firrtl.passes.CheckWidths$TailWidthException: @[Decoupled.scala 221:40:[email protected]]: [module Queue_17] Parameter 1 in tail operator is larger than input width 1.
[error] firrtl.passes.CheckWidths$TailWidthException: @[Decoupled.scala 221:40:[email protected]]: [module Queue_127] Parameter 1 in tail operator is larger than input width 1.
It seems like there might be some hidden zero-width wire problems in Firrtl, perhaps we should just patch Chisel by not emitting zero-width for 1-entry Enums and at least fix THAT problem
I added a testcase that currently fails so that a fix for it (and possibly other issues) can accompany this change.
Any updates on this? Is this dated?
No updates, I think it's a lingering problem
All tests (FIRRTL) currently pass. I'm running regression tests with the rest of the BIG6.
I rebased and cleaned up. The previously failing Vec test works now; should we consider merging this now @jackkoenig?