4 ms·
So I was recently thinking of playing around with an FPGA for shits and grins. Try out embedded console emulation and try some basic development stuff and so o
by paulmd 4y ago
So I was recently thinking of playing around with an FPGA for shits and grins. Try out embedded console emulation and try some basic development stuff and so on. I'm not super terribly concerned about maximum efficiency/recent node, but a decent number of logic cells would be preferable and ideally a decent output (DP 1.2 or HDMI 2.0), and ethernet might be a plus (but that one is negotiable). Does anyone have any recommendations for a decent dev board? Used/ebay is fine, would like to keep it to maybe a couple hundred bucks, or at least like, under $500.
My understanding is all FPGA toolchains are a nightmare, and I'm guessing I may have to pirate the software, no chance of me affording a $10k-a-seat license for a toy that probably won't go any farther than a couple nights of tinkering.
- gadiyar 4y agoI have a couple of the ULX3S boards with a Lattice ECP5 FPGA and would highly recommend them. They also support a fully open source tool chain and have a great community. https://www.crowdsupply.com/radiona/ulx3s https://www.crowdsupply.com/radiona/ulx3s
- kevin_thibedeau 4y agoThe Xilinx webpack is free for hobbyist level devices. You can implement a lot before you hit its resource limits. Also, in the past (don't know about now) you could get a version of Modelsim with the Altera Quartus toolchain. It could be used with Xilinx simulation libraries as well, although that technically is a license violation.
- willis936 4y agoIf you've been tinkering with console emulation then you may have heard of MiSTer, which runs on a DE10-Nano (Intel Cyclone V-based board by TerasIC). It has 110K LEs and costs $225. Resellers are out of stock but I bought two directly from terasIC last month and they shipped within a week.
- hakfoo 4y agoI feel like there's probably some market for something even smaller than today's FPGAs. I'm picturing situations where you might use a handful of 74xx components to perform a task, but start getting bogged down by factors like "I can't fit 15 chips on my breadboard and even if I did, I'd probably mess up the wiring accidentally". A full "software at runtime" microcontroller solution introduces its own nuances (having to load and initialize, potential timing factors), even if the price is right. A still-in-production commercial-grade FPGA means replacing $10 of parts with $100, so it's not really hobbyist-friendly, and may be wildly overkill for the task. I guess maybe the PAL/GAL ecosystem is sort of what I'm envisioning, but it seems like a dead-end of obscure tools and parts labelled "not suggested for new designs". Or maybe there's a yet-to-be-tapped market for a small-scale hobbyist FPGA that's priced accordingly.
- stn8188 4y agoThis is the perfect use case for the Lattice MachXO3 and similar parts. The software doesn't require a licence for the low end parts, and they are cheap and simple to use.
- kragen 4y agoIn between the dead PAL/GAL ecosystem and today's FPGAs, you have CPLDs. A 32-macrocell 15-nanosecond ATF1502ASV will run you US$2.42 from Digi-Key https://www.digikey.com/en/products/detail/microchip-technology/ATF1502ASV-15JU44/1008571 https://www.digikey.com/en/products/detail/microchip-technol... and a 64-macrocell 10-nanosecond 3.3-volt M4A3-64 will run you US$6.90 https://www.digikey.com/en/products/detail/lattice-semiconductor-corporation/M4A3-64-32-10VNC48/3457383 https://www.digikey.com/en/products/detail/lattice-semicondu.... You can replace a heck of a lot of 74xx components with a 64-macrocell CPLD, the software tooling for CPLDs is significantly less antiquated than the PAL/GAL tooling, and the designs are as open as the PAL/GAL designs. The thing is, though, if you can stomach a BGA, a 640-LUT iCE40UL640 FPGA is only US$2.80 via Digi-Key https://www.digikey.com/en/products/detail/lattice-semiconductor-corporation/ICE40UL640-SWG16ITR1K/5130904 https://www.digikey.com/en/products/detail/lattice-semicondu..., so it's hard to justify using a CPLD instead in a new design. Maybe easier since the shortage crisis. But that's a "still-in-production commercial-grade† FPGA" and it's US$2.80 in parts, not US$100. A reel of 1000 is US$2340. Is this the small-scale hobbyist FPGA you're looking for? I think you can fit two or three RISC-V controllers on it with SeRV, and it includes 56 kbits (7 KiBytes?) of EBRAM. (Disclaimer: I don't actually know any of this stuff, I'm just repeating things I've read without really understanding them.) ______ † I'm not sure what you mean by "commercial-grade"? I mean it's not a university research project? Lattice is a commercial company and sells the iCE40UL640 as a commercial product.
- gaudat 4y agoCommerical grade refers to the temperature range the component is tested to work. Amusingly it is the lowest grade where you can get industrial grade, military grade or even space grade components. I tried to work with those lattice parts once but they were so tiny (0.3 or 0.4mm pitch bga) basically undoable by cheap Chinese hobbyist board houses.
- fargle 4y agoIf you haven't done FPGA work before, you certainly want to start with something small and cheap - it will keep you busy for a long time learning a completely different type of development process. Lattice ECP5 is popular with hackers because there is a reasonably well supported open-source tool chain via Yosys. As tempting as an open-source toolchain is, it is NOT friendly for beginners. You can also use the Lattice Diamond software which includes ModelSim for free (it needs a license, but you can get it by registering for free). If you go that route, I really like the Orange Crab dev board https://1bitsquared.com/products/orangecrab https://1bitsquared.com/products/orangecrab. That being said, I really would recommend Xilinx for a beginner. The reason is that the toolchain is the least nightmare-ish and they have by far the best documentation and tutorials. Vivado is also free and contains a good synthesis tool and simulator as well as everything else you need. These are going to be much friendlier to the beginner. Good boards might be: $249 Zybo-Z7 https://digilent.com/shop/zybo-z7-zynq-7000-arm-fpga-soc-development-board/ https://digilent.com/shop/zybo-z7-zynq-7000-arm-fpga-soc-dev... or $129 Cora-Z7 https://digilent.com/shop/cora-z7-zynq-7000-single-core-and-dual-core-options-for-arm-fpga-soc-development/ https://digilent.com/shop/cora-z7-zynq-7000-single-core-and-.... Both of these also contain a pretty good dual core ARM9, but if you don't want to mess with the software for the ARM, you can still use the FPGA fabric as a plain FPGA. All of the boards above contain USB based JTAG programmer and require no extra tools for debug and loading. > My understanding is all FPGA toolchains are a nightmare, and I'm guessing I may have to pirate the software, no chance of me affording a $10k-a-seat license Well, FPGA design is different than software. For small and medium-size parts, all the vendors have free or very cheap development tools now. All EDA software is very complex and less standardized than software tools. A lot of that is unavoidable. So certainly the toolchains are extremely challenging to learn. The quality of documentation ranges from pretty good (Xilinx) to useless (Microsemi) with most clustered around bad-to-useless. The tools also crash and misbehave in ways you'd never expect visual studio or GCC to do. But again, some of that is because it's comparably a niche market and because of poor vendor support. But a lot more of it is due to the very different and very complicated job the tools are doing, so try not to get overly frustrated - hardware is several layers deeper than software.
- Taniwha 4y agoI've been looking for a cheap FPGA dev kit to teach classes with - pref something in the $20 range - I just got one of these to play with, haven't had time to do anything with it yet https://www.seeedstudio.com/Tang-Nano-9k-FPGA-board-Gowin-GW1NR-9-FPGA-8640-LUT4-6480-flip-flops-p-5381.html https://www.seeedstudio.com/Tang-Nano-9k-FPGA-board-Gowin-GW...
- avalys 4y agohttps://digilent.com/shop/all-products/ https://digilent.com/shop/all-products/ These guys target the education market and most of their boards are compatible with the free version of the Xilinx toolchain. The boards have a modular expansion connector and they sell lots of compatible expansion modules for different I/O mechanisms, both electrical and human (lights, buttons, displays, etc.) This one checks your boxes: https://digilent.com/shop/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum/ https://digilent.com/shop/nexys-a7-fpga-trainer-board-recomm... I bought an earlier version of this product 15 years ago in college...now I feel old.
- kragen 4y agoMy iCE40UP5K-B-EVN devboard is still in its box; I still haven't run so much as "blink" on it. So I can't recommend it from experience, exactly. But it does have some advantages: 1. It's cheap. Digi-Key lists it for US$62.40. But they're out of stock: https://www.digikey.com/en/products/detail/lattice-semiconductor-corporation/ICE40UP5K-B-EVN/6596291 https://www.digikey.com/en/products/detail/lattice-semicondu.... They were in stock when I ordered a few months ago. 2. It's in stock despite the shortage. Or it was, anyway. Maybe a different distributor has them in stock. 3. It's fully supported by free software (APIO, yosys, nextpnr, etc.) and there are tutorials for getting things to run on it without getting contaminated by licenses. 4. Although it's still really small as FPGAs go, the iCE40UP5K is the largest FPGA that is fully supported by free software: 5280 logic blocks (one 4-LUT, one D flip-flop, and some carry propagation logic per block), 120 kbits of EBRAM, 1024 kbits of SPRAM, and 8 16×16 multipliers. According to the datasheet, it's not super fast, 25–150 MHz for a lot of designs, and the multipliers in particular are 50 MHz; configured for extremely basic functions like a 16-bit decoder you can get pin-to-pin performance of under 20 ns. This seems like plenty of power for emulating a Super Nintendo or something, but not an XBox. The SeRV implementation of RISC-V fits into I think 200 iCE40 4-LUTs. The UPduino is another cheap devboard featuring the iCE40UP5K. Astoundingly, someone has gotten HDMI output out of an iCE40 with a relatively simple level shifter to handle the translation to current-mode logic and the iCE40's DDR outputs to get 250MHz output: https://hackaday.io/page/5702-dvi-hdmi-pmod-for-an-ice40-fpga https://hackaday.io/page/5702-dvi-hdmi-pmod-for-an-ice40-fpg... Presumably, though, you'd be better off with a beefier FPGA for which HDMI isn't such a stretch. I'm thinking that probably even if you had the US$12000 for a Virtex-7 devboard and a Vivado license to synthesize designs for it, you might be better off starting with smaller designs anyway, because in a couple nights of tinkering you won't be able to get anything working that the iCE40 can't do.
- duskwuff 4y ago> Presumably, though, you'd be better off with a beefier FPGA for which HDMI isn't such a stretch. Another option is an external HDMI serializer. You send it a parallel video signal, similar to what you'd send to a VGA DAC, and it handles all the details of turning that into HDMI. Here's one on a breakout board: https://1bitsquared.com/products/pmod-digital-video-interface https://1bitsquared.com/products/pmod-digital-video-interfac...
- xodjmk 4y agoXilinx/AMD basically provide their toolchain for free for most devices. You only have to pay when you are trying to design using the largest highest performance devices.
- tails4e 4y agoToolchains are free for swr devices, including simulation, synthesis, debug, etc. No. Need for 10k licenses
- DoingIsLearning 4y agoBut they're right that the tolchain is still a nightmare though!
- tails4e 4y agoAs a hardware engineer I think the vivado toolchain is brilliant, and way way better than the toolchians I have to put up with in ASIC design. The sad fact is low level HW design is very difficult, and making tooling help simplify this immensely hard. I don't know of a FPGA/ASIC toolchain that is better, do you? Compared to SW toolchians im sure it appears horrendous, but custom HW requires logic synthesis, clocking, timing, simulation, debug, with cross probing back to the source code at any point in the flow. Layering an SDK on top of this for embedded SW. It even has tools to help create hardware from C (HLS). Nothing else for HW I've seen is this well integrated or powerful. And it's for free. Sure people rag on it, but appreciation for the magnitude of what it is providing is difficult for those coming from a SW background
- gchadwick 4y agoWhat exactly are you aiming to build? DP/HDMI output and Ethernet aren't exactly beginner topics in FPGA (though you may be able to cobble something together using pre-existing components). The Nexsys Video would give you what you need: https://digilent.com/shop/nexys-video-artix-7-fpga-trainer-board-for-multimedia-applications/ https://digilent.com/shop/nexys-video-artix-7-fpga-trainer-b... (though out of stock) The DE10-Nano gives you both HDMI (though not 2.0) and Ethernet: https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046 https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=.... There's some availability, apparently buying direct from Terasic is the best option (though often more expensive as shipping is pricey and you pay import duties). It's also what the MiSTer project uses https://github.com/MiSTer-devel/Main_MiSTer/wiki https://github.com/MiSTer-devel/Main_MiSTer/wiki so is what you need if you want to play with console emulation. FPGA toolchains are indeed a nightmare but both Xilinx and Intel have freely available versions. They tend to be limited in the devices they support but the free versions of Vivado (Xilinx) and Quartus (Intel) both support the FPGAs in the boards I mentioned above.
- deleted 4y ago[deleted]
- rkangel 4y agoThis "directory" might be of help. A year or two out of date now though: https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards