ECP5: Replicate OE FF for each output bit #578
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My design has a SDR 16-bit bidirectional I/O, and currently nmigen emits a single OFS1P3DX instance for the OE signal, and its output is used for all 16 BB instances. nextpnr then complains:
The problem seems to be having one instance of OFS1P3DX, which yosys marks syn_useioff, but it can't be packed because it's needed in 16 places. This PR updates
lattice_ecp5.py
to generate n OFS1P3DX for the OE (well, T) signal instead, which nextpnr does then pack into IOLOGIC successfully. I've also tried this with DDR OE outputs which were also packed successfully, so I removed that comment too.Happy to hear if you'd rather make a wider OE signal and use the normal
get_oreg
with it instead, or anything like that.