edalize
edalize copied to clipboard
Add Project XRay backend currently supporting Kintex7
This PR adds support to Project XRay supporting Xilinx series 7 FPGAs. Currently I'm testing with Kintex 7 and a QMTech board.
The work is based on https://github.com/kintex-chatter/xc7k325t-blinky-nextpnr and is in draft (although working) state.
~The backend has hard-coded paths for the databases. This is still required to be able to use Docker container flow. We need to improve this.~ Managed to fix the environment variables. Works on Docker but needs testing for locally installed tools.
The supporting files to run this are at https://gist.github.com/carlosedp/a7b4386b41ffdf60873c05eeae7155ec. There is the edalize launcher script with some changes due to how quotes are handled which I plan to send a PR too.
There is also a Dockerfile to build the toolchain container image and the databases. @umarcor once it's in a more stable and/or upstream state, we can integrate to hdlc repo.
The idea is to open this for discussion.
@carlosedp note that the "backend" is nextpnr in this case (VTR is supported as well). Project XRay is the "architecture documentation/database", equivalent to IceStorm, Project Trellis or Project Nexus. See:
- https://github.com/hdl/containers/blob/main/debian-bullseye/nextpnr.dockerfile
- https://github.com/hdl/containers/blob/main/.github/workflows/nextpnr.yml
- https://github.com/hdl/containers/blob/main/debian-bullseye/prjtrellis.dockerfile
- https://github.com/hdl/containers/blob/main/.github/workflows/prjtrellis.yml
Ah yes, my idea here is to create the Project Trellis equivalent for XRay where Yosys backend is used by default but since nextpnr-xilinx is kinda different from the standard nextpnr, I decided now to keep it in the xray file instead of "plugging" the nextpnr backend.
Also the build and databases is a bit different so I created the Dockerfile myself. I believe it's still early since I used forked versions from @hansfbaier that did the amazing work starting this.