Cheapest entry point for learning to program an FPGA? - Page 1
Forum section: electronics / beginners

author: YurkshireLad
author_rank: Frequent Contributor
timestamp: March 26, 2021, 05:28:03 pm
content: As the title says, what's the cheapest entry point for learning to program an FPGA? I've seen some dev boards, but they're too pricy for me (C$100+?), as I'm a complete beginner and this is just a hobby. Cheers.

author: rstofer
author_rank: Super Contributor
timestamp: March 26, 2021, 05:42:37 pm
content: You can get started without a board, just use any of the simulators. You could install Xilinx Vivado and have the entire production toolchain to play with including simulation.Why not go to NandLand and look at the tutorials and the GO board ($65).https://www.nandland.com/I have no idea how complicated importing to Canada might be...This topic comes up fairly often, a search might find something...A really cheap board is the Lattice IceStick40 ($49)https://www.latticesemi.com/icestickhttps://www.digikey.com/en/products/detail/lattice-semiconductor-corporation/ICE40HX1K-STICK-EVN/4289604This is the device of choice for the tutorials at VHDLwhiz.com. The author spends a LOT of time working on testbenches and simulation. VERY good tutorials and the 'for pay' projects are very good.The board I like is completely out of the question the 100T variant is $265 and more logic is better:https://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum/I like having the gadgets on the board.A board that is only slightly out of your range is still a very nice board with lots of gadgets ($149):https://store.digilentinc.com/basys-3-artix-7-fpga-beginner-board-recommended-for-introductory-users/I would also consider the 35T variant of this board ($89)https://store.digilentinc.com/boards-and-components/system-boards/fpga-boards/

author: YurkshireLad
author_rank: Frequent Contributor
timestamp: March 26, 2021, 05:43:36 pm
content: Thanks, I'll have a look at simulators for sure.

author: rstofer
author_rank: Super Contributor
timestamp: March 26, 2021, 05:46:34 pm
content: You might want to start over at VHDLwhiz.com and install ModelSim. It's a fairly lightweight way to play if a board is out in the future. The author also uses the Lattice toolchain for synthesis and deployment to the IceStick.In fact, there is a tutorial on how to install the tools (IIRC)

author: YurkshireLad
author_rank: Frequent Contributor
timestamp: March 26, 2021, 06:19:33 pm
content: Thanks, I'll check out that site.

author: JohnnyMalaria
author_rank: Super Contributor
timestamp: March 26, 2021, 07:46:28 pm
content: Quote from: rstofer on March 26, 2021, 05:46:34 pmI recently signed up for the VHDLwhiz course - it really is excellent. I've learned so much in a couple of weeks that it has helped me tremendously with a project I'm doing. I even learned a lot of new tricks for VS Code.Regarding the tools, his instructions sadly are no longer accurate since the suppliers of the various tools have changed their rules and procedures.Ignore everything he says about installing Modelsim from Intel. I did that first and it was a pain in the neck. Then I installed the Lattice software which includes another version of Modelsim, too. So, I didn't need the Intel version after all.

author: admiralk
author_rank: Regular Contributor
timestamp: March 26, 2021, 10:26:04 pm
content: Quote from: rstofer on March 26, 2021, 05:42:37 pmIf you do not want to spend time piecing together and learning the tool chain, this is about your only option for a free, ready to use, environment.

author: JohnnyMalaria
author_rank: Super Contributor
timestamp: March 26, 2021, 11:45:17 pm
content: Quote from: admiralk on March 26, 2021, 10:26:04 pmShould you sign up for a VHDLwhiz course, I would recommend use the tools he suggests. I have an Arty Z7 for a project I'm developing and so have the many gigabytes of Xilinx software installed. However, using the Lattice software (with Modelsim) and VS Code makes it very easy to follow along with the course even if you choose not to build the LED device (for one of the courses).

author: YurkshireLad
author_rank: Frequent Contributor
timestamp: March 27, 2021, 12:11:16 am
content: By Lattice Software, do you mean this -https://www.latticesemi.com/Products/DesignSoftwareAndIP/ProgrammingAndConfigurationSw/Programmer

author: rstofer
author_rank: Super Contributor
timestamp: March 27, 2021, 12:20:15 am
content: Quote from: YurkshireLad on March 27, 2021, 12:11:16 amNo, to work with a physical device, you need the Diamond programming software and the IceCube code development software. If you are just going to use the IceStick, you may not need Diamond.VHDLwhiz will give you help on setting up ModelSim for the simulator. ADD: this process may be obsolete... ModelSim is fast but I prefer to work in the Vivado world.This applies only if you are going for one of the low end Lattice boards like the IceStick. You can just install Xilinx Vivado and everything is in one place.The way he uses VScode (editor) with two open windows allows you to have the testbench code in one window and the VHDL code in another, side by side. This is extremely useful, especially with 27" monitors.Lock in a device and then worry about the toolchain.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: March 27, 2021, 05:25:37 pm
content: About hardware...A simple search like below brings up several PCB's. Some barebone with FPGA + breakout connectors, others with 7-segment displays, VGA connectors and other stuff.PCB's starting from around EUR25 both with Xilinx or Altera hardware.https://www.aliexpress.com/wholesale?catId=0&SearchText=fpga%2Bstarter%2BkitYou can also search Hackaday. Lots of projects & ideas, some fit for beginners.Some time ago there was an article about second hand ZYNQ boards, which are apparently not usable anymore for crypto mining.https://hackaday.com/blog/?s=fpgaBut before deciding on hardware, software is probably at least as important. Is Open Source important to you? Which hardware is compatible with it? Maybe support a Kickstarter or Crowdsupply project that comes with both hardware and software instead of just looking at the cheapest price of the hardware you can get.FPGA's are complicated devices, and Open Source is not very strong in this segment yet. So if you find this important, there is a good opportunity to show some support.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: March 27, 2021, 05:28:49 pm
content: Just remembered that Olimex has some affordable FPGA hardware.Olimex is also pretty strong in the Open Source part.A lot of the Linux boards they make for example come with complete schematics and PCB project (available on github). Older projets are (mostly?) in Eagle, some of the newer are done in KiCad, such as the Olinuxino A64.

author: RoGeorge
author_rank: Super Contributor
timestamp: March 27, 2021, 05:44:20 pm
content: Cheapest entry point would be zero.You don't need the hardware to learn. Download either Xilinx Vivado or Quartus, for weather you prefer Xilinx or Altera (they are roughly the same thing, a set of tools to write FPGA schematics, both Vivado and Quartus can work for free, you don't need any payed licenses to learn) andstart doing your ownschematics.Remember, for a FPGAyou do not write a program, you do aschematicinside the FPGA!!!Again, VHDL or Verilog is not to write programs, it's to write SHCEMATIC DIAGRAMS for digital circuits.Not "software", schematics.In FPGA you first simulate (simulators included), then at last you upload the bitstream containing the schematics you just designed (remember, a schematic, NOT a program) in the FPGA. And that's it. Simulation is key in FPGA design.I know you will insist to see some LED turning on, and asking for the cheapest FPGA board, $15 is OK if you are from the rest of the world, $5 (or less if you are from China), search EBAZ board on Aliexpress and buy one. for $15 you'll get a Zynq FPGA with 2 ARM cores inside and a few thousands of logic elements to play with. Can even run Linux. A few already bought that particular board, yet you don't need a board at all to learn FPGA.https://www.eevblog.com/forum/fpga/ebaz4205-(zynq-7000-based-development-board)/

author: gnuarm
author_rank: Super Contributor
timestamp: March 27, 2021, 07:49:22 pm
content: Quote from: RoGeorge on March 27, 2021, 05:44:20 pmThis is absolutely true. Starting out with hardware is the hard way to go in my opinion. Start with learning the tools, hard enough by itself, learn how to code and simulate. Then worry with the many details of getting it into hardware and tested.If you want the absolute cheapest hardware this is the lowest priced FPGA I've found.https://www.aliexpress.com/item/4000366030520.htmlQuoteThat's a bit overstated. The main issue is that you are describing the actions of the various pieces of hardware you want synthesized. Thinking of sequential actions like an MCU program is not going to be effective, or will use excess resources. So imagine the hardware that would implement your function and describe that.QuoteAnd the key to simulation is writing an effective test bench. I have been working on a project with other volunteers some of who are not well experienced. One is working on an SPI master interface and wrote the test bench as a series of waveforms rather than describing how the SPI slave operates. Don't write waveforms unless that is appropriate.QuoteWow! That is an amazing price for a Zynq board with RAM etc. Not very low power though. $12 + $5 shipping. Amazing!

author: admiralk
author_rank: Regular Contributor
timestamp: March 28, 2021, 09:57:18 pm
content: Quote from: JohnnyMalaria on March 26, 2021, 11:45:17 pmActually I might have been mistaken, I think it was CPLDs where the problems came in. It was basically a choice between Xilinx ISE, $500+ subscriptions, or a bunch of separate tools. Personally I prefer an all in one solution, so that when I stop using it for some time and come back I do not have to figure out how everything fit together.

author: james_s
author_rank: Super Contributor
timestamp: March 28, 2021, 11:48:19 pm
content: The cheapest I'm aware of are the EP2C5T144C8 mini dev boards that are widely available from Chinese sellers, under $15 each, they're an old part now but still powerful enough to fit an entire functional 8 bit computer with video.While it's true that you can learn HDL purely in simulation, personally I find that to be very boring after the first 10 minutes or so. I need to have real hardware in my hands to stay engaged.

author: bgm370
author_rank: Contributor
timestamp: March 29, 2021, 03:03:01 am
content: I got this onehttps://tinyvision.ai/products/upduino-v3-0Cheap and supported by the open source toolchain (IceStorm) and tools likehttps://icestudio.io

author: gnuarm
author_rank: Super Contributor
timestamp: March 29, 2021, 03:43:15 am
content: I don't think I mentioned that the FPGA board in the link I posted has a connector for an LCD display. Buying the board with a display they cost about the same or less than many other FPGA boards. If you are just getting started, this is a nice low cost unit. I'm working with Gowin devices now.Here's one for a bit more money, still near the bottom in price with a 20,000 LUT FPGA, but from Anlogic. I don't know much about them or how easy it is to use their tools. They have a RISC-V core that runs on this chip.https://www.aliexpress.com/item/33059450256.html

author: james_s
author_rank: Super Contributor
timestamp: March 29, 2021, 04:56:20 am
content: Something to keep in mind if it hasn't been covered already is that with whatever device you choose, you are married to the toolchain provided by that manufacture. That is, unless you are a serious masochist and want to try to go with an open source toolchain. Xilinx and Altera (Intel) are the two big players with Lattice coming in third, anything else is uncharted territory, especially for a hobbyist. You might start by looking at the toolchains, personally I find I overall prefer Altera Quartus, it's quite old now but so are the things I'm using FPGAs to reproduce.

author: gnuarm
author_rank: Super Contributor
timestamp: March 29, 2021, 05:03:55 am
content: When you say dependent on the tool chain provided, that really only applies to the synthesis. I am using the Lattice tools for simulation because that is all am familiar with at this point. Then I synthesize the code with the Gowin tools. I haven't had much problem as yet.