Electronics > FPGA

FPGA PCB projects - opinion needed



I just got my hands on my first FPGA development board. In the next coming months I will be learning a bit more about it.
I'm more focused on hardware design, but I have a handful of experience writing software for microcontroller based projects (atmel, pic, stm), thus verilog and FPGA software is new to me.

My next step in my PCB design career is to do more high speed related designs. I would like to create a PCB that houses an FPGA with high speed connections. Why an FPGA? Because it is an area that I'm interested in.

As I'm not entirely familiar what can be achieved with an FPGA (even though everyone says ANYTHING, just like to a kid), I would like to hear some opinions on what projects should I build, or even better said, what components/interfaces should I put on a board, where I will have the opportunity to work with a bit more high speed signals.

I have been designing mostly microcontroller boards, so adding a microcontroller to control some other stuff (that I guess the FPGA wouldn't, for some reason) is also an opportunity. For this, immediately the esp32 comes to mind as it has BLE and WiFi.


There will be the 'blinking LED' projects followed by something of scale.  I went to opencores.org and grabbed the T80 project (Z80 MCU) and implemented CP/M by hanging a compact flash on the existing project.

Next up I used the same core to implement PacMan which is based on the Z80.

The next project was a recreation of a complete IBM1130 computer system from the Functional Characteristics manual:


This was the first computer I ever used back in '70.  I just had to have one!

Today, I recommend the LC3 project because it is extensively documented and the VHDL can just about be written from the transition diagram and the hardware block diagram:



There's a newer version LC-3b which has byte addressing as opposed to 16 bit word addressing for the LC-3.

This project is used at universities all over the place and is well understood.  In my incantation, the top level is 1005 lines of code with liberal whitespace.  I think the entire project took just a couple of days after I read and understood the description and the transition diagram.

In the book, they use microcoding whereas I used a more conventional Finite State Machine.  One day I would like to start over with a pure microcode approach.

The cost of the book, even on alibris.com, is insane.  I didn't pay anywhere near that much a few years ago:


I don't know that the book is actually required.  Appendices A & C seem to cover it.


--- Quote from: mrburnzie on December 01, 2022, 11:20:55 am ---As I'm not entirely familiar what can be achieved with an FPGA (even though everyone says ANYTHING, just like to a kid)

--- End quote ---

Think of the trash dumpster out back behind the local "Stop and Rob".  Now picture it full of logic chips.  A hundred thousand flops is a pretty small chip.  I try to use the -100T version of the Artix 7.  This is my favorite board:


Not only can you do anything with an FPGA but you can do it in parallel.  In fact, that's the hardest thing to wrap your head around; every logic element is doing 'something' at every moment in time.  Now all you have to do is get them all headed in the proper direction.

HDMI is a good first go at high speed signals. You don't need gigabit transceivers for 720P or 1080i.

You can even lower the resolution and run the signals at a slower rate if there are problems with signal integrity on the PCB. It will give you a nice visual confirmation of your work. Look at the Pynq Z2 schematic for how they drive TMDS directly from the FPGA. It requires proper source termination.

There are some 5V signals, so you will need a 5V source and level shifters.


[0] Message Index

There was an error while thanking
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod