Unsupported sensitivity of arrayed variables
We have some code that is in a generate loop trying to connect up some modules in what is basically a ring network. We are hitting an "Unsupported" error:
Unsupported: Can't detect changes on arrayed variable (probably with UNOPTFLAT warning suppressed
I wrote a simple test to just aggravate the Error without the generate, it is attached. I know we could work around it by not using arrayed wires but due to some non-technical reasons that isn't really an acceptable option.
Any guidance you could provide as to the difficulty of adding support for this would be appreciated. I was thinking of something along the lines of treating all unpacked dimensions as individual variable instances but haven't looked at the code to see if this would be easy to do.
#1 Updated by Wilson Snyder over 2 years ago
- Status changed from New to Assigned
I think unpacking dimensions would be the easiest way to work around this. Of course if the user ever had a non-constant index (after constant propagation) this wouldn't work, but most cases I've seen don't.
This would best be in V3Gate or something similar, so it would work across port boundaries.
This has unfortunately been on the wish list for a while, as it's both a good chunk of work and not something that has bothered my designs yet. If you're willing to start tackling it I'll provide tips.