Outline for a design cycle for FPGA? - Page 1
Forum section: electronics / general

author: gauravmp
author_rank: Regular Contributor
timestamp: May 23, 2016, 08:37:16 pm
content: Hi,I've worked on FPGA development boards before. For these, the Constraints files and corresponding necessary files were given with the dev board. Now, I'm planning on starting work from scratch on an FPGA, i.e, incorporate it in my pcb design with a microcontroller. Could someone outline a design cycle for coding the FPGA? I'm more so looking for pointers and a direction for my design as presently I'm at crossroads.Any help would be appreciated.Thanks.

author: rstofer
author_rank: Super Contributor
timestamp: May 23, 2016, 09:17:38 pm
content: There are some people here who can actually help, I can not. I wouldn't dream of designing a PCB for an FPGA, particularly if it used a BGA package. More complicated yet would be interfacing to DDR memory and getting the trace lengths correct. I concede! I am not the guy to do this...So, what would I do? Well, I might go over to ztex.de and buy something like the 2.01 board. I would then design a daughter card that contained my peripherals and just plug the FPGA board into a pair of headers.Clearly, my approach won't work for commercial projects but I don't build those. BTW, the 2.01 board has a very fast FPGA->USB->PC interface.I used this approach when I added a couple of USB serial ports and a compact flash drive to a Z80 board and I did it again when I wanted to use an MBED to receive SPI and send TCP. In the latter case, the daughter card contains just a 6 pin PMOD header and a magjack. A trivial PCB but it saved me a BUNCH of work.Actually, I did it one other time when I was messing around with an LPC2106 (ARM7) board and I wanted to play MP3s grabbed from an NFS server. I just plugged an LPC2106 'STAMP' style board into a daughter board with a TCP/IP 'STAMP' style board and a CODEC. Pretty trivial.Considering how complex the contraints file has gotten under Vivado, I will always yield to someone else to create it. Mine came from Digilent for the Arty and Basys 3 boards.

author: gauravmp
author_rank: Regular Contributor
timestamp: May 23, 2016, 09:22:42 pm
content: Quote from: rstofer on May 23, 2016, 09:17:38 pmWOW!!! Thanks a lot for this website!!! The reason I wanted to make my own PCB was because I am constrained by size. This website might help a lot. In any case, if someone could still give me an outline for an own design, I would be very very grateful to them.Thanks

author: nctnico
author_rank: Super Contributor
timestamp: May 23, 2016, 09:29:17 pm
content: I'd start with the schematics from a development board and go from there. At least the power supplies and voltages will be right. Using FPGA in a design is like using any component: go over the datasheet step by step and connect each pin only after you really understand what it does and how it should be connected.The constraints file isn't that hard. It basically says which net connects to which physical pin and what the timing relation is. You'll need at least 3 timing constraints: the input clock, the input pins to internal flipflops (often forgotten!) and the output flipflops to output pins (also often forgotten!). On you own PCB I'd start with an FPGA in a TQFP package so you can solder it by yourself.

author: 6thimage
author_rank: Regular Contributor
timestamp: May 23, 2016, 09:57:13 pm
content: You are normally a lot better off using an off the shelf board (opal kelly do some nice ones, but they are quite expensive), as designing your own FPGA board can take a lot of time.If you do go down the designing your own board route, dev boards are the best resource you can find. And also be wary of weird features of an FPGA - unlike a lot of microcontrollers, FPGAs have I/O banks which run off the same voltage reference, essentially you can't put all your I/O in a single bank if they use very different I/O standards.If you can afford to, develop the design on a development board to begin with, then you'll be able to know how big the FPGA has to be (and what packages it comes in) and what clocks and I/Os are needed. When you have everything working, design your own board, but leaving enough room for future changes.

author: captbill
author_rank: Contributor
timestamp: May 24, 2016, 01:54:34 am
content: Here is another option: work directly from a proven/existing opensourced design:http://www.saanlima.com/store/All the Eagle files are there :http://www.saanlima.com/pepino/index.php?title=Welcome_to_PepinoYou will need Eaglecad Pro if you want to add anything. This is an awesome design by a true FPGA guru.