FPGA complete Noob in search of advice - Page 1
Forum section: electronics / general

author: gregallenwarner
author_rank: Regular Contributor
timestamp: October 07, 2013, 03:26:38 pm
content: Hi,I'm new to this forum, and I've been desiring to get into FPGA work for some time, but I know nothing about it. I know the basic theory of what an FPGA is and how it works, but I have no practical knowledge of how to get started. I was hoping to hear the advice and suggestions from the community here of what I need to get started. Preferably for as cheap as possible! (Free software available maybe??) I'd like to know what people think of their particular brand or development board. I'd also like to know what I'd have to do to then transfer that to a finished product. I'm familiar with PCB design and fabrication.I am pretty well versed in microcontrollers, specifically the MSP430 and AVR varieties, if that makes any difference, but my knowledge pretty much ends there. I'd like to use the FPGA's to design higher speed devices, such as LED matrix controllers. I'd also like the option of learning to use CPLD's to simplify some of my TTL projects. Any advice?Thanks for the tips.-Greg W.

author: Buga
author_rank: Newbie
timestamp: October 07, 2013, 07:30:21 pm
content: Greg the easiest way to get started would be to get a working dev board.That also requires learning a hardware description language, which is exactly what it says, a language that describes the hardware you'd want to synthesize on an FPGA. The two languages for this are VHDL and Verilog. Both tools from Xilinx and Altera support either language, and there's a bunch available on both. Programming in an HDL is quite different from programming a microcontroller, as instead of giving commands to the microcontroller (called Imperative programming) you are instead describing data flow (called Data Flow programming). This is a different ideology, and it requires a deeper understanding of the hardware. Generally all FPGA programming involves actually thinking out a "physical" hardware circuit that you would then write code to describe, and the tool would compile it so that the FPGA can then simulate the functionality of the real hardware.I would recommend something similar to anAltera DE1, which is quite powerful and a great introductory piece commonly used in universities to introduce someone to an FPGA. It has a nice amount of peripherals, and is easy to get up and running.Once you have a dev board like that, and experience with how it gets the FPGA running, then you can think about trying to layout your own FPGA design. They can be complicated to get up and running, and generally aren't going to be hand solderable as they come in Ball Grid Array packages and the like.Good luck!

author: Valueduser
author_rank: Contributor
timestamp: October 07, 2013, 08:25:27 pm
content: I can second Buga's recommendation of the DE-1 board. If you don't have any experience with digital design, you may want to hold off on an fpga and try some basic stuff with 7400 series ttl chips. You can buy grab bags of them for around $20. Having a good foundation of digital design principles will help lessen the learning curve of writing HDL for an fpga. A cool free resource is available here:http://www.nand2tetris.org/This will help to acquaint you with the basics of logic design and using an HDL.

author: AndyC_772
author_rank: Super Contributor
timestamp: October 07, 2013, 08:39:57 pm
content: Get one of these:http://www.ebay.co.uk/itm/Altera-CycloneII-EP2C5T144-FPGA-Board-Altera-USB-Blaster-JTAG-programmer-/251176641749?pt=UK_Computing_Other_Computing_Networking&hash=item3a7b4b64d5... and download yourself a copy of Quartus, which is completely free. Start by creating a new project and learning how to blink an LED using VHDL, and go from there. You might find a scope or logic analyser with plenty of channels useful once you have a few active pins that need monitoring.

author: SAI_Peregrinus
author_rank: Contributor
timestamp: October 07, 2013, 09:14:06 pm
content: http://www.fpga4fun.com/has some projects and tutorials that are good for beginners. They sell some boards on their shop site (http://www.KNJN.com) but a DE1 is probably a better idea. It's more general, and will be easier to use. Once you want your boards to stay inside your projects the breakout boards knjn sells start to become more useful.

author: gregallenwarner
author_rank: Regular Contributor
timestamp: October 07, 2013, 09:51:14 pm
content: Thanks, guys, for the advice.It seems the DE-1 has a lot of love here, so I'll consider that. However, it's a bit much for what I'm wanting at the moment. AndyC_772's suggestion was a much lower cost, but minimalist approach. What would you DE-1 users say to his suggestion as an alternative? Pros? Cons?I've studied VHDL briefly, but I've never put any of my learnings into practice. It's why I really want to find a suitable device to get started. I'm already pretty adept at 7400 logic, and I probably have somewhere on the order of a couple hundred various chips laying around from all my projects. That's the other reason why I've been wanting to graduate to FPGA programming--to shrinkify the size of some of my projects.Again, I appreciate the advice.

author: Valueduser
author_rank: Contributor
timestamp: October 07, 2013, 10:09:24 pm
content: There's also a bunch of good lower cost solutions using xilinx chips. I don't have much experience with them but I have heard good things about digilent's dev boards. There is also the papillio one, that uses a xilinx chip on an arduino form factor board. What kind of applications are you looking to do with an fpga? If you're looking to actually embed them into projects, getting something like AndyC_722 mentioned might not be a bad idea. once you have the altera USB Blaster, you could program a variety of chips depending on your application.

author: gregallenwarner
author_rank: Regular Contributor
timestamp: October 07, 2013, 10:43:24 pm
content: So, with the USB Blaster from Altera, I could do ICP with the FPGA chips in my finished product? I think that's definitely something I want to be able to do.Some of my ideas for wanting to learn this:--Controlling RGB LED matrices (My goal is to build a fully double-buffered PWM RGB matrix driver with "graphics card" like interface and drawing functions)--Simplifying my already existing and planned 7400 logic projects (I do a lot of stuff with an old 80's era computer, building expansion devices and interfaces for it. I've basically converted it into an 80's era Arduino.)--Eventually I'd like to reproduce the aforementioned 80's era computer on an FPGA, if possible. I've studied the full schematics of that computer, which was build with a lot of 7400 chips, and a handful of TI special purpose chips, all of which I've studied the datasheets for.

author: fagiano
author_rank: Regular Contributor
timestamp: October 08, 2013, 04:54:03 pm
content: I recently started with FPGAs, I bought one ofthison ebay with aXilinx programmer.They come with a cd containing schematics of everything and examples both in VHDL and Verilog and projects that work with the free Xilinx ISE.I like it so much I also bought the Altera "core board" that works on the same "motherboard" and extensions boards.If you just need the bare FPGA the "core" boards work fine on their own.ciaoAlberto

author: gregallenwarner
author_rank: Regular Contributor
timestamp: October 08, 2013, 04:59:54 pm
content: Thanks for all the feedback, guys. I ended up buying a used DE1 from another member here on the forums, since that particular model seemed to be a favorite here. I'll post more about it once I've received it in the mail and had a chance to play with it. I certainly appreciate all the advice and suggestions. Thanks!

author: idiotsecant
author_rank: Newbie
timestamp: October 09, 2013, 12:18:56 am
content: This might sound like a dumb question, but in what sort of application would an FPGA be preferable to a regular old micro? I hear about FPGAs, ASICs, etc and I don't really have a firm idea of the differences, outside of very broad stroke architectures.

author: MrAureliusR
author_rank: Unknown
timestamp: October 09, 2013, 04:55:20 am
content: Edit:I just noticed that someone above posted a similar link. Anyway I'll still post a review if anyone is interested.../EditI too have wanted to dive into the world of FPGAs. I was wondering if CPLDs or GALs/PALs would be a good place to start, but I said @#$% that!! I want to go for the big daddy right away!Anyway, I've been keeping an eye out on eBay for good starter kits, and man, this one just seems unbeatable:http://www.ebay.ca/itm/XILINX-XC3S500E-Spartan-3E-FPGA-Development-Board-LCD1602-LCD12864-12-Kits-/251192875961?pt=LH_DefaultDomain_0&hash=item3a7c431bb9&_uhb=1For about $92 CDN ($89 USD) you get a Xilinx Spartan-3E dev board with 13 different accessory boards! Two different (big) LCDs, VGA/PS2 board, UART -> USB board, FRAM board, A/D D/A board, 7seg display board, it goes on and on! I mean yes, its obviously made in China and probably not the best board of all time. But the value seems unbeatable. I will probably purchase this package in the next few weeks (if funds are available) and I will write a review here if anyone is interested.Does anyone have a suggestion re VHDL vs Verilog? Which do you prefer? I'm not going to ask "which is easier" because there is no real answer to questions like that. I'd just like to hear the pros and cons from those who actually use them. I've heard more about Verilog and I get the feeling it's a bit more widespread... also, Altera VS Xilinx would also be good to hear, pros and cons obviously, not "which one is better?".I've also seen that Atmel makes FPGAs, has anyone used one/are they any good?Thanks guys.

author: Crazy Ape
author_rank: Regular Contributor
timestamp: October 09, 2013, 05:25:51 am
content: Quote from: MrAureliusR on October 09, 2013, 04:55:20 amVHDL/Verilog: Ultimately, you should at least try to learn both, I find VHDL very simple to work with, yet Verilog does my head in, though the scenario is reversed for a lot of people.Don't worry to much about manufacturer at this point, you can basically do the same things with any of the manufacturers FPGAs (of similar spec). One thing to be aware of, and it catches a few people out, is the naming conventions used for the capacity of the device. A 500,000 Gate Xilinx Spartan III for instance, is actually somewhat smaller than a 22,000 Logic Element Altera Cyclone IV.There are a couple other interest boards floating about at the moment.FPGA: Altera Cyclone IV - EP4CE10F17C8NMCU: ST-Micro Cortex M3 at 72Mhz - STM32F103VET6RAM: 64MBGet a US $25 store coupon so effectively bringing the price down to $65 USD.http://www.aliexpress.com/item/Free-Shipping-1pc-iCore2-ARM-FPGA-dual-core-board-stm32-development-board-cyclone4/1246213404.htmThis one is also interesting, but the one I linked above kills it in every respect.http://www.aliexpress.com/item/Icore-fpga-arm-dual-core-plate-stm32-cyclone4-fpga-development-board/1136511122.html

author: Neilm
author_rank: Super Contributor
timestamp: October 09, 2013, 06:04:51 pm
content: Quote from: idiotsecant on October 09, 2013, 12:18:56 amYou would tend to use FPGAs rather than micros if you wanted either glue logic or something that requires simple computation that needs to be done quickly. For example, I have used FPGAs to generate the PWM signals driving an H-bridge which produced an accurate sinewave of changing amplitude. The same device also ran the acquisition of data from an 8 channel ADC. Both of these functions could have been done by a micro, but as I wanted all to happen at the same time and both were reasonably time critical I used an FPGA.