Electrical – How to use an FPGA on your own PCB

fpgapcb

I have been playing alot with FPGAs (or so I thought). I have always been dealing with different evaluation boards etc. which is very handy; you plug in the USB cable, use the development tool and the ”upload bitstream” but how do I use a single FPGA-chip and implement it on a PCB.

I know there are different FPGAs out there; some become permanent once you configured them, others loose their architecture when you cut the power, and some keep the structure even when power is off.

So lets say I want to make a control unit for a display. It is working on the evaluation board with all its IOs. So how do I go from here to actually buy a single fpga chip, put it on a pcb or similar. How do I program the chip when there is no nice toolkit or USB-port waiting for me.

Best Answer

It's the same story as with normal micro-controllers. FPGAs as well have a JTAG programming interface and the manufacturers offer the appropriate programmers.

The difference to the normal development boards is, that they usually have a already built-in programmer, as you noticed (the USB interface). So you can either replicate that programmer on your PCB, what's expensive and makes your design complex so usually it's not recommendable or you place a header that fits the programmer.

Whether the image is volatile or not depends on how you program the chip. Most of the chips have a configurable bootloader that either gets the image from the internal or from an external flash, these are the persistent variants or the FPGA waits for a programming sequence. This can be the operator programming it or you can have another chip on your board that does that, so these are the volatile options. That of course only applies to the re-programmable chips.

You find programming information in the FPGA's User Guide