-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Queue.irrevocable #1134
Comments
Could you please post your full Chisel3 module or a more complete representative Chisel3 example so that we can better help you? |
This is my code.
It is compiled successfully, But when elaborating design, reporting following error "'chisel3.core.UInt@79' must be a Chisel type, not hardware". |
@245950258 Thank you for the catch - there does indeed appear to be a bug in Chisel. I've gotten a fix going in #1136 to fix it. |
It is my pleasure. |
(leaving issue open for tracking) |
I write the following codes in Chisel2. And it generates verilog fine.
val io = new Bundle { val in = Flipped(Decoupled(UInt(w.W))) } val x = Queue.irrevocable(io.in, 4)
But when I try to convert this to chisel3, it reports "must be a Chisel type, not hardware".
I find that the problem is due to https://github.com/freechipsproject/chisel3/blob/master/src/main/scala/chisel3/util/Decoupled.scala.
private val genType = (DataMirror.internal.isSynthesizable(gen), chisel3.internal.Builder.currentModule) match { case (true, Some(module: MultiIOModule)) if !module.compileOptions.declaredTypeMustBeUnbound => chiselTypeOf(gen) case _ => gen }
If I change "!module.compileOptions.declaredTypeMustBeUnbound => chiselTypeOf(gen)" to “module.compileOptions.declaredTypeMustBeUnbound => chiselTypeOf(gen)”, I can get verilog without error.
The text was updated successfully, but these errors were encountered: