Wiring pass for bundle produces invalid access to non-reference
See original GitHub issueKindly consider the unit test at the bottom of this report.
The use case is to wire a bundle from module A to module B through parent module T.
I use the off-the-shelf WiringTransform. For this example, I reduced to the wiring pass itself.
Is this feature supported?
Error message
firrtl.passes.CheckChirrtl$InvalidAccessException: : [module T] Invalid access to non-reference.
firrtl.passes.CheckChirrtl$InvalidAccessException: : [module T] Invalid access to non-reference.
Occurs for expression a.auto_0
, RHS of connect stmt in module T.
Annotated output of wiring pass
circuit T :
module A :
input clock : Clock
input reset : UInt<1>
output auto : { [..] }
output auto_0 : { [..] } // NEWLY created only
auto_0 <= auto
module B :
input clock : Clock
input reset : UInt<1>
input pin : { [..] } // PIN added
module T :
input clock : Clock
input reset : UInt<1>
inst a of A
inst b of B
wire auto : { [..] }
auto <= a.auto_0 // <--- **ERROR**
b.pin <= auto
Unit test
"Wire a bundle from A to B" in {
val firrtl = """
circuit T :
module A :
input clock : Clock
input reset : UInt<1>
output auto : { [..] }
module B :
input clock : Clock
input reset : UInt<1>
module T :
input clock : Clock
input reset : UInt<1>
inst a of A
inst b of B
"""
val wi = new WiringInfo(
source = "A",
comp = "auto",
sinks = Set("B"),
pin = "pin",
top = "T"
)
val passes = Seq( new Wiring(Seq(wi)) )
val c = passes.foldLeft(Parser.parse(firrtl)) {
(c: Circuit, p: Pass) => p.run(c)
}
//println(c.serialize)
val compiler = new HighFirrtlCompiler // this will trigger
val writer = new java.io.StringWriter
compiler.compile(CircuitState(c, ChirrtlForm), writer)
}
Issue Analytics
- State:
- Created 6 years ago
- Comments:10 (5 by maintainers)
Top Results From Across the Web
Bundle Your Trip - United Airlines
Bundle offers are customized to your trip and may include a combination of: ... Wi-Fi Day Pass. Bundles are available when you book...
Read more >All other Tokyo fixes - ServiceNow Docs
Next Experience user interface release notes ... The '(is) Dynamic' search source operator produces an incorrect query. AI Search Glide.
Read more >18 Reference Guide to BRM Error Codes - Oracle Help Center
Error Code No. Description
PIN_ERR_BAD_FIRST_READ 6 No longer used.
PIN_ERR_DUP_SUBSTRUCT 17 Information not available.
PIN_ERR_STALE_CONF 29 BRM found outdated values in pin.conf entries.
Read more >CLC Genomics Workbench - QIAGEN Digital Insights
Welcome to CLC Genomics Workbench 22.0.2 --- a software package supporting ... We strongly encourage you to read this user manual in order...
Read more >Variant Effect Predictor - Ensembl
You might also like to read up on the data formats that VEP uses, and the different ways you can access genome data....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Thanks for replies. I will follow up before EOD.
On Tue, Jan 9, 2018, 11:28 AM Adam Izraelevitz notifications@github.com wrote:
Thanks. Sorry for non followup. Was waiting for annotation changes to go in before trying again
On Fri, Mar 9, 2018, 9:37 AM Adam Izraelevitz notifications@github.com wrote: