• 0

Is PYNQ board good to start learning FPGA?


Hello FPGA community,

I am a beginner without prior knowledge of either FPGA or Python. I understand the advantage of PYNQ as an excellent way for rapid prototyping without requiring much knowledge about FPGA - Python API abstraction makes the process resemble microcontroller programming.
However, I would like to learn FPGA in a traditional way with well-established toolchain and workflow used in industry (Verilog, Vivado, Xilinx’s WebPACK…etc).
So leaning Python, Jupyter, notebook…etc is not a priority at the moment.
Will a PYNQ board (e.g. Z1) be a good starting point? and if it is, are there any tutorials or material to get me started besides the official PYNQ toolchain and workflow?

Your input will be much appreciated.

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0
2 hours ago, Foss_enth said:

I understand the advantage of PYNQ as an excellent way for rapid prototyping without requiring much knowledge about FPGA - Python API abstraction makes the process resemble microcontroller programming.

I agree and couldn't have said it better, excluding the reference to excellence. The problem with this approach is that it stunts your growth as a programmable logic designer. It's also a walled garden that you will find frustrating to get out of once your project dreams outgrow the free IP and layers of user interaction.

An opinion to consider.

I'm not a believer is quick and easy. Learn FPGA development as it should be learned; as digital design. Sooner or later you will need to anyway.

First, assuming that you are coming from a software development background, you need to grasp the basic differences between an HDL like Verilog or VHDL for programmable logic synthesis and a traditional software language... or even an HDL for simulation. For this approach you'll want a basic FPGA platform with basic IO hardware. The ARTY A7 is a fine choice as it has a UART, 100 Mbps Ethernet, DDR etc... the basic stuff you will want to play with.  The De0 Nano is also nice as it has an easier to use SDRAM, but lacks the UART and Ethernet. You can always use a TTL USB UART cable or breakout board for UART connectivity.

A requirement is the ability to use the traditional JTAG configuration methods like the Vivado Hardware Manager or Quartus Programmer/SignalTap. If it's hard to configure your FPGA without using those means, then this is a problem.

To get started a few LED outputs, button and switch inputs, a good code editor and a good simulator is all you need. You'll write your VHDL entities, and testbenches. Then you'll simulate  the designs. Then you can try out design on hardware. Until you are comfortable and competent writing and verifying basic designs in the HDL of your choice ( I recommend starting off with Verilog even though my HDL of preference is VHDL ), avoid soft processors and all of the related vendor IP. The extra software development will just get in your way and make everything more complicated.  DO use the clocking and clock memory IP with native interfaces.

After you are feeling competent you will be ready to choose a hardware platform with specific hardware supporting particular projects; also you might be ready to jump into using a device with an embedded hard processor like the ZYNQ.

Tip: Basic FPGA logic design and development doesn't require vendor IP, except perhaps at the toplevel entity of a hierarchical design where you might need a clock rate other than the ones supplied as external clock module inputs to the device. Quartus provides a version of ModelSim for free. The Vivado simulator really isn't set up to encourage good verification habits. Also, Vivado has never gotten around to allowing you to easily view memory in simulation; something that ISE ISIM did. As long as you can avoid FPGA device specific feature references in you code modules/entities you can use ModelSim regardless of what vendor you want to target your design to. I frequently use ModelSim for low level HDL simulation for all vendors FPGA based platforms.


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now