Skip to content

Support for Quartus-supported boards - #9

Open
mchitre wants to merge 2 commits into
masterfrom
feat/quartus-boards
Open

mchitre wants to merge 2 commits into
masterfrom
feat/quartus-boards

Conversation

@mchitre

@mchitre mchitre commented Oct 5, 2026

Copy link
Copy Markdown
Member

Summary

  • QSF(board) writes the Quartus settings file and SDC(board) the timing constraints, from the same declarations as LPF. Quartus(board) writes a whole workspace with build.sh and a Makefile whose load and flash targets use openFPGALoader.
  • The device prefix picks the vendor, and each emitter refuses the other vendor's part. I/O standards are spelt for Quartus, a string passes through, and a weak pull-down is refused since these parts have none. A board-wide I/O standard also becomes the device default.
  • The app writes .qsf and .sdc beside the Verilog for such a board and accepts --emit Quartus. The yosys depth estimate knows the Intel families.
  • Manual: boards, compiling, timing, black box, emitters and reference chapters; rendered docs/.

Checks

  • Pkg.test() green with iverilog, including new test/quartus.jl and command-line checks.
  • A blinky for the MAX 10 10M08S evaluation kit compiles in Quartus Prime 25.1 with no errors and no I/O warnings; timing closes at 50 MHz. Loading on the board awaits the USB Blaster.

QSF writes the Quartus settings file and SDC the timing constraints, from the
same board and design declarations as LPF; Quartus writes a whole workspace
with build.sh and a Makefile whose load and flash targets use openFPGALoader,
since Quartus's own programmer runs only where Quartus does. The device prefix
picks the vendor, and each emitter refuses the other vendor's part. A
board-wide I/O standard also becomes the device default, because Quartus
otherwise supplies the banks no port lands in at 2.5 V and the configuration
pins end up across two voltages. The app writes .qsf and .sdc beside the
Verilog for such a board and accepts --emit Quartus. The yosys depth estimate
knows the Intel families.

Checked by compiling a blinky for the MAX 10 10M08S evaluation kit in Quartus
Prime 25.1: no errors, no I/O warnings, timing closed at 50 MHz. Loading on the
board awaits the cable.
@mchitre mchitre changed the title Boards on parts Quartus builds for Support for Quartus-supported boards Oct 5, 2026
@mchitre mchitre self-assigned this Oct 5, 2026
@codecov

codecov Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 16 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.63%. Comparing base (7b983cb) to head (bef4503).

Files with missing lines Patch % Lines
src/app.jl 0.00% 10 Missing ⚠️
src/emitters/formats.jl 73.33% 4 Missing ⚠️
src/emitters/qsf.jl 96.96% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
+ Coverage   88.42%   88.63%   +0.21%     
==========================================
  Files          41       43       +2     
  Lines        6524     6672     +148     
==========================================
+ Hits         5769     5914     +145     
- Misses        755      758       +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

The board binding, constraint file and Diamond workspace tests were spread over
runtests.jl, soc.jl and timing.jl, each beside the design it used, while the
Quartus side arrived in one file. Both tool chains now have a file of their own,
named for the tool as the emitters are. The tests move unchanged, except that
the check that the rate units are not exported no longer depends on running
before `using QuartzHDL.Units`.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant