Skip to content
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

ECP5: Replicate OE FF for each output bit #578

Merged
merged 1 commit into from Jan 23, 2021
Merged

ECP5: Replicate OE FF for each output bit #578

merged 1 commit into from Jan 23, 2021

Conversation

adamgreig
Copy link
Contributor

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:

ERROR: Failed to pack flipflop 'pin_adc_0__db.U$$32' with 'syn_useioff' set into IOLOGIC.

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.

nextpnr can only pack OE FFs into IOLOGIC when there's one OFS1P3DX per
output, rather than one shared instance.
@codecov
Copy link

codecov bot commented Jan 14, 2021

Codecov Report

Merging #578 (6ea992c) into master (3a4b61c) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #578   +/-   ##
=======================================
  Coverage   81.50%   81.50%           
=======================================
  Files          49       49           
  Lines        6461     6461           
  Branches     1287     1287           
=======================================
  Hits         5266     5266           
  Misses       1008     1008           
  Partials      187      187           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3a4b61c...6ea992c. Read the comment docs.

@whitequark whitequark merged commit 6ce2b21 into amaranth-lang:master Jan 23, 2021
@adamgreig adamgreig deleted the ecp5-pack-oe branch January 23, 2021 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants