-
Notifications
You must be signed in to change notification settings - Fork 12
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
Need to create integrated FPGA interchange CI #28
Comments
Once SymbiFlow/nextpnr#234 is completed, run those site routing tests should be integrated into this CI as well. |
@litghost I was thinking about taking this issue unless there are some other priorities. I see that we cannot get to the full fpga-interchange diff FASM test with Vivado, but I guess we can get to test whether the circuits get placed and routed, with no bitstream generation, is this correct? One other question regards the CI itself. Given that this is an integration test between different moving parts, I wonder what would be the best approach here. |
Yes, kind of. We can use Vivado to generate a bitstream from the RapidWright DCP. But as you say, until we have a direct FPGA interchange -> FASM generator, there is no way to do the diff fasm test yet. |
In terms of how I think the CI should work, I believe it should have 3 bits:
The CMake files shouldn't care where components are coming from, either because they are on the I think the place to start would be to just create some CMake scripts and add them to |
@litghost I was able to reproduce locally the whole flow after some issues with capnproto versions and python setups. As far as I understand, the generation of the chipdb uses Makefiles and data files present in the python-fpga-interchange project, which is cloned in the nextpnr/fpga_interchange. What I do not completely understand is what the CMake in nextpnr should be provided with in order to generate the chipdb. In other words, should nextpnr be able to reproduce what the RapidWright Makefile does? The fact is that we may need to add the python-fpga-interchange as a submodule, as some [test_data] is present in the python-fpga-interchange repo. Apart from that, I have started to get some CMake infrastructure in place to add the creation of the chipdb and tests targets. |
I think there are different aspects. We need a independent CMake function / set of functions for doing:
That make sense? As more arches come online, the device database won't come directly from RapidWright. |
@litghost with the CI PR merged, can this be closed? |
No? We need to stand up more parts (Zynq 7-series, A7-100, A7-200), and we need to integrate with a runner that can run Vivado. |
Add discussion of the EOS S3 BEL and cell library.
Currently there are CI's for the individual components of the FPGA interchange (P&R: nextpnr, tooling: python-fpga-interchange, schema: fpga-interchange-schema), but there needs to be a CI that tests the integrated flow.
What the CI should do:
nextpnr-fpga_interchange
nextpnr/check_arch_api.py
to verify some specific pathsFuture work:
The text was updated successfully, but these errors were encountered: