edalize icon indicating copy to clipboard operation
edalize copied to clipboard

Add Project XRay backend currently supporting Kintex7

Open carlosedp opened this issue 2 years ago • 2 comments

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 avatar Feb 14 '22 18:02 carlosedp

@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

umarcor avatar Feb 15 '22 23:02 umarcor

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.

carlosedp avatar Feb 17 '22 14:02 carlosedp