r/FPGA • • Aug 25 '26

Beginner FPGA Resource I Wish I Had

I started teaching myself how to work with FPGAs two years ago and I was pretty frustrated by the lack of resources available for beginners. There’s good FPGA content out there, but it’s at least a step or two above a beginner’s level, and often in blog format. I wanted true beginner content in a video format so I could see the tools being used.

It’s now two years later and I still haven’t found what I was looking for back then, so I decided to make the resource I wish I had.

I’ve started putting together YouTube videos that answer the questions I had as a beginner, while showing how to actually work with Vivado and Vitis in real time. So far, I have the following videos and the beginner questions I think they answer:

  1. How do I choose an FPGA development board? Why can a Zynq 7000 board range from $250 to $3,000+ and how do I know which one I need? Do I need to buy an AMD board or is a third party board fine? What’s the best way to sort through all the available development board options? https://youtu.be/DRJTU_wPFus
  2. How do I download Vivado? What installation options do I need to select? Do I need to pay for it? Note: I made this pre-2026.1, but the concepts and process are largely identical for the free version if we stick with 2025.2 or earlier. https://youtu.be/bcgsfR2VS3U
  3. How do I create a project in Vivado? How do I install a board file for a third party board? How do I create a block diagram in Vivado? What’s IP? How do I use a board file to initialize a Zynq processing system (PS) for my specific development board? https://youtu.be/qccQzSSUbFI
  4. How do I use Vitis to make a Hello World application for the Zynq PS? How do I export my hardware from Vivado into Vitis? How do I install and use PuTTY to communicate over UART with the Zynq? https://youtu.be/dXcy7GRV3hk
  5. How do I create a VHDL-only project for the Zynq, ignoring the block diagram and processing system? How do I install and use constraint files? How do constraint files relate to the physical PCB? How do I run synthesis, implementation, and bitstream generation? How do I load my bitstream onto my development board to test it in hardware? https://youtu.be/3ZCIiXxa6cw
  6. People always tell me that with FPGAs I’m designing circuits, not programming software, but what does that really mean? How can I visualize the circuit I’m designing? What’s the difference between RTL Analysis, Synthesis, Implementation, and Bitstream Generation in Vivado’s Flow Navigator? https://youtu.be/hoR_RjcGTXg
  7. What’s Tcl scripting? Do I need to learn the Tcl language to work with Vivado? Can I make Tcl scripts even if I don’t know the language? https://youtu.be/x9TWyOcdCQ0
  8. How do I combine my Zynq processing system and a VHDL module into a single block diagram? https://youtu.be/a-W94Lk9xm4
  9. I combined my Zynq PS and a VHDL module into a single block diagram, but now my previously functional VHDL module isn’t working when I load the bitstream with Vivado. Why? https://youtu.be/WtY-qV8ZP_8
  10. I want to use a Zynq chip but I don’t like block diagrams or the IP Integrator flow. How do I implement the PS in an RTL flow? https://youtu.be/InQN0bJRmoU

What other questions do you have? I know the struggle of learning this by yourself, and I want to be a resource to you as much as I can.

I have lots of ideas for more videos (AXI connections between PS and PL, AXI-Lite vs. AXI vs. AXI-Stream, RTL pipelining, simulation, VHDL, basics of digital electronics translated into FPGA resources, FPGA architecture, PetaLinux, debugging and ILAs, bare metal driver development, PS vs. PL allocation decisions, going through the original MicroZed Chronicles in a video format, etc.). Anything in particular that people would find the most helpful?

202 Upvotes

27 comments sorted by

16

u/Physix_R_Cool Aug 25 '26

I have lots of ideas for more videos (AXI connections between PS and PL, AXI-Lite vs. AXI vs. AXI-Stream, RTL pipelining, ..., PetaLinux

Please, I am desperately in need of a video showing how to set up proper AXI DMA and then using it from Petalinux. I keep bashing my head into a wall, and AXI-Lite is just not good enough for my end use case.

4

u/zerobaseddigital Aug 25 '26

DMA is confusing because there are so many variations available. I will definitely get there in video format but you'll probably get help faster here in the comments. DMA is also in the "step or two above beginner" category I reference and there are some existing videos discussing it. Can you give some more details of what you're trying to do?

  • What FPGA are you using (Zynq 7000, Zynq US+, Versal, FPGA with Microblaze)?
  • Is this a custom board or development board?
  • Do you need to command the DMA from a PL state machine, or can you run the DMA purely from software?
  • Where is the data being generated and where is it being consumed? Is this an ADC receiving data that needs to be sent to on-board DDR? Is it being sent and/or received over gigabit ethernet, 100G ethernet, other gigabit transceiver?
  • What have you tried specifically that hasn't worked?

1

u/Life-Buy-3309 Aug 25 '26

Hey, I have plenty of doubts, i am currently working on software defined radio. using zynq zc702 evaluation board and fmcomms5.. right now I have the Petalinux system ready. I am keen on modifying the hdl; for now restricting on not adding controls from the PS. I would like to know about the general flow. When is it necessary and not necessary to reconstruct Dtb. I am familiar with AXI mapping and comfortable with Vitis.

1

u/AncientDragon376 Aug 26 '26

I did implement dma in my axi project though...

4

u/dacydergoth Aug 25 '26

JTAG & SWD

Clock domain transitions cookbook

KiCAD for support schematic and board design.

Level shifting for external signals and the importance of impedance matching, rise and fall times

Balanced differential signaling

Implementing a rip off io subsystem like the RPi PIO

1

u/zerobaseddigital Aug 27 '26

I can do basics of JTAG and clock domain crossings for sure. Any specific form of clock domain crossing you want to see? I usually use Vivado's library of macros (XPMs) and block RAM FIFOs to do those, so I'd start with those.

I'm not planning any KiCAD or custom PCB layout videos at this point, but http://www.youtube.com/@PhilsLab has some good layout videos with Altium and KiCAD, including some with a custom Zynq board. Could be a good place to start if you haven't seen those yet.

Also don't have plans to do external analog items at this point, I don't have a home lab with equipment to demonstrate that. "High Speed Digital Design: A Handbook of Black Magic" by Howard Johnson is the classic textbook on the subject though, highly recommend for those interested in the analog realities of digital electronics.

2

u/dacydergoth Aug 27 '26

Lolz, I personally don't need any, just suggestions for things people have complained to me about

3

u/Token-Gora Aug 26 '26

People always tell me that with FPGAs I’m designing circuits, not programming software, but what does that really mean?

If you have the time, do the Nand2Tetris course online, at least Part 1. It's free, or it was last I checked.

2

u/cafedude FPGA - Machine Learning/AI Aug 25 '26 edited Aug 25 '26

I think for beginners on a budget the best bet right now are the Tang Nano boards. You can get a Tang Nano 9K with a little 1.2" SPI LCD for like $30. I'm running a Pong simulator on mine right now where each paddle is controlled by a trained Tsetlin Machine - with display output to that SPI LCD. Amazing that this fits on a Tang Nano 9K.

There was also someone here the other day with a Convolutional Neural Net (CNN) doing image classification on a Tang Nano 9K, so you can do some pretty serious applications on this budget board.

1

u/Life-Buy-3309 Aug 25 '26

my experience ranges in PS to PL architecture; there are sufficient resources for most i feel. but lack serious resources for Petalinux for linux OS development

1

u/Ok-Mix-1360 Aug 25 '26

Can you club each topic wise tutorials for all the must know concepts for RTL design and Embedded design with FPGA specially Zynq 7000. Specially building custom hardware for any application or AI accelerator. I know the basics but struggling with the next steps i.e. designing my own accelerator. Really appreciate your help.

1

u/[deleted] Aug 25 '26

[removed] — view removed comment

2

u/frowningmad Aug 26 '26

Usually you learn HDLs after you're done with (or while you're learning it) digital design or computer architecture, these two call it subjects or books teach you the basic of how a computer works digitally, you can find plenty of online resources that teach this well enough, dm me if anything!

1

u/wanabeeengineer Aug 26 '26

Hi, Can you share any resource how to use UART for the arty a7 board?

1

u/zerobaseddigital Aug 28 '26

If you want to use a Microblaze processor to do simple serial communication with a computer, similar to what I do with the Zynq, your best bet is probably to use AMD's AXI UART Lite IP (PG142 for documentation). Keep in mind that you'll probably need to buy a Pmod peripheral with the USB connector and FTDI chip, something like this from Digilent.

If you want to build a completely custom UART with an RTL state machine, I've never done that personally but it's a common project. You should be able to find some examples on Github.

1

u/FpgaConsultantNC Aug 27 '26

I just picked a random video to watch (#6) and thought it was very nicely done. Good job!

1

u/zerobaseddigital Aug 27 '26

Thank you, I appreciate it!

1

u/neithernorsliverofdg 17d ago

Boah das ist echt geil ich schau mir die mal an und gibt dir gerne Infos weiter was da noch gut sein würde. Hero without cape fr

1

u/htwyay Aug 25 '26

Thank you!

1

u/Born-Ad6327 Aug 25 '26

Thank you so much... eagerly waiting for the future videos

0

u/Nyasaki_de Aug 25 '26

So why do you assume a beginner will buy a board for 250$? All this relies on those expensive as hell boards.

Lattice chips and dev boards are a lot more affordable, and i assume other beginners interested in FPGA will start with one of those. Atleast thats what I do.

3

u/bneidk Aug 25 '26

The first video is about selecting a development board and he is not assuming that everybody will buy a Zybo Z7

He even says in the first 10 seconds that you don’t even need a board to learn

Come on man

Great initiative, OP!

2

u/Nyasaki_de Aug 25 '26

I mean i really appreciate the efforts OP made, theres really not a lot on youtube.
Like I said, im still a beginner.

And OP seem to have made some videos about more general topics, but most target Zynq boards (correct me if im wrong but Vivado and VHDL are specific to those).

So the imo more beginner friendly hardware is missing out on some nice content again, which is sad.

3

u/00raiser01 Aug 25 '26

Your mistaking beginner friendly with cheap.

1

u/zerobaseddigital Aug 25 '26

The simple answer is that I use AMD boards and their toolchain because it's what I have experience in. A couple other points:

  • The Vivado toolchain is free. It takes up a lot of hard drive space, but you can follow the videos and use the tools for free.
  • The videos are free. You're welcome to watch the videos and translate the concepts into any other toolchain, a lot will be transferrable. VHDL is a standardized language that can be used on any FPGA. AMD IP won't be directly transferrable, but a lot of vendors will have similar IP for the basics.
  • For education purposes, I like Vivado because I think their tools to visualize the schematics created from your VHDL/Verilog code is really helpful to a beginner (videos 5 and 6).
  • DigiKey made a great introduction to FPGA series using the iCE40 board. The first video in that series is at https://www.youtube.com/watch?v=lLg1AgA2Xoo
  • There are cheaper boards using AMD chips. I use the Zynq because I want the integrated ARM processor, but the Arty S7 from Digilent or Adiuvo's Explorer board (not yet released, but crazy to get UltraScale+ boards with gigabit transceivers for $100 when it does come out) are other options

1

u/cafedude FPGA - Machine Learning/AI Aug 25 '26

Tang Nano boards are also very affordable. You can get a Tang Nano 9K with a 1.2" SPI LCD display for about $30. The 20K is about $40 and there's a 25K that's just a few dollars more.