Closed suarezvictor closed 2 years ago
Interesting! What version of nextpnr did you use? I didn't notice the "upstream" version (https://github.com/yosyshq/nextpnr) advertising Xilinx support, did I miss anything? @gatecat
I'm packaging nextpnr for Fedora, and would love nothing more than to update to a version that has xilinx support :)
I use this version:
$ nextpnr-xilinx --version
nextpnr-xilinx -- Next Generation Place and Route (Version cd8b15db)
I was following this installation tutorial: https://github.com/BrunoLevy/learn-fpga/blob/master/FemtoRV/TUTORIALS/toolchain_arty.md
And made some tweaks: https://github.com/BrunoLevy/learn-fpga/issues/54
Thanks @suarezvictor, very interesting. As we did with Symbiflow, we could use the Arty as the experimental board for it and add required tweaks to it if needed. (Once the tweaks are not longer required we could extend support to other boards). Would you mind doing a PR with your work? I could look at avoiding the manual changes you had to do. Having this in place will be a good way to enable users to test it and make fast progress all together.
Yes I'll be quite glad to prepare the PR and join efforts
See PR here, with cleanups: https://github.com/enjoy-digital/litex/pull/1180
RapidWright can be an option to this toolchain too, as used in the following example: https://github.com/gatecat/nextpnr-xilinx/blob/xilinx-upstream/xilinx/examples/blinky/blinky.sh
We can now close this since https://github.com/enjoy-digital/litex/pull/1180 has been merged. Thanks @suarezvictor.
Done synthesis with yosys+nextpnr on a Xilinx Artix-7 FPGA (no vivado, no symbiflow). Tested with a FemtoRV CPU at 50MHz. It still requires manual removal of unised FD primitives intances in the generated verilog (the ones giving a warning in Vivado[1]), and some small tweaking on the soc generating script posted below.
command used:
./digilent_arty_basic.py --cpu-type=femtorv --build --toolchain=yosys+nextpnr
Here's the makefile generator
and the SoC generator I used for testing
[1] The involved flip-flops are these: