1

I'm starting a project and would like to utilize an FPGA with a hard processor.

I'm looking at the zynq-7000 and the cyclone V SoC although I'm open to suggestions. My background is predominately developing in C/C++/asm for microcontrollers with no experience in FPGA’s. Most of my experience is using open source tooling (gcc toolchain, make, cmake, gdb/openocd, vim as an editor) with a handful of jtag debuggers for flashing/debugging.

Doing some research it seems like I'd become married to either Xilinx tools (Xilinx SDK / Vivado) or Intel tools (Quartus II).

For the arm side, I was wondering if anyone could provide any guidance on how to continue using the same tooling with which I’m familiar (i.e. not proprietary tools). For the Xilinx board, I found this which I think approaches what I’d like: https://github.com/3ap/zybo-z7-baremetal although I’m still a little iffy on some of the implementation details. For the Cyclone V I can’t find anything similar but maybe I’m not looking in the right place.

Furthermore, a lot of the examples I’ve found for using open source tooling for both the zynq-7000 and the cyclone V seem to assume that embedded linux is already running on the target which isn’t required for what I want to do. Instead I’d like to run Freertos.

I’ve found:

How to build a Xilinx SDK with Freertos: https://www.freertos.org/RTOS-Xilinx-SDK-BSP.html

How to build for the Zynq-7000: https://www.freertos.org/RTOS-Xilinx-Zynq.html

How to build for the Cyclone V SoC: https://www.freertos.org/RTOS_Altera_SoC_ARM_Cortex-A9.html

All of which involve using some sort of proprietary tooling, although in the case of the Cyclone V I’m pretty sure I can get around using Arm Development Studio.

I’d like to avoid using eclipse or the Xilinx sdk; same for Quartus and Arm Development studio.

The more I’ve looked it seems like for the FPGA side I’m stuck using their tooling which I can come to terms with although I’ve found a few things like xc3sprog http://xc3sprog.sourceforge.net/ which seems to supports some Xilinx hardware although it's pretty old.

Any guidance is much appreciated. Thanks.

2 Answers2

1

I highly recommend you use the proprietary tools of Xilinx SDK for Zync and IntelFPGA tools for Cyclone 5. Most of the tools have a basic free license you can use. For the setup of SOCs (ARM core + FPGA), you will need to generate a preloader, bootloader and (OS kernel + rootfilesystem) if using Linux, as well as the FPGA hardware file (.rbf). IntelFPGA proprietary tools allow the generation of these files. Quartus allows you to generate the hardware for the FPGA and Intel® SoC FPGA Embedded Development Suite has several useful tools integrated to configure the hard processor core. here is a useful link for a complete tutorial of SoC-FPGA development with the Altera-intel toolchain: Atlas-SoC board preloader troubleshooting

snus74
  • 421
  • 3
  • 9
1

Answering only the FPGA half of the question

FPGA vendors are notorious for their insistence on keeping all tooling for their FPGA's proprietary. The only open source tools available are built on reverse engineering efforts.

The only possibility for you that I am aware of is Project SymbiFlow which is targeting 7 Series Xilinx FPGA's. I don't know if that project yet has the ability to do FPGA/Hardprocessor communication, but I know that they are targeting the Zynq 7000 and have example projects for the Zybo Z7 dev board.

Heiko
  • 21
  • 4