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.
All the bitstream generation tests currently used in CI depend on f4pga-examples.
We use the Flow JSON files in
.github/*_test.json
, but the HDL sources are coming from f4pga-examples.That was done to get an initial working CI to start using and testing f4pga.
This PR adds minimal HDL sources to this repository, so that tests can be done regardless of f4pga-examples.
Eventually, the flow JSON files from
.github
should be moved to f4pga-examples, and the tests in this repo should be replaced with the local sources.Moreover, although SymbiFlow's initial scope was Verilog, it was widened to include other HDLs, such as System Verilog (through Surelog) or VHDL (through GHDL) (SymbiFlow/symbiflow-website#59). There is interest in the community with regard to using SV and/or VHDL to generate bitstreams or for ASICs (#292, The-OpenROAD-Project/OpenLane#292...).
This PR shows how the F4PGA ecosystem allows generating bitstreams for Xilinx's 7 Series devices using VHDL sources. In the future, we should also add local SV and SV+Verilog+VHDL tests. There are some SV examples in f4pga-examples, but AFAIAA there is no SV+Verilog+VHDL example in the ecosystem.
Since there is no Conda package for GHDL yet (hdl/conda-eda#171), and f4pga.flows does not support it, a two-step approach is used in this PR. First, a container is used to convert the VHDL design to Verilog. Then, the F4PGA Action is used to generate the bitstream.