9 ms·
FPGA dev board that's cheap, simple and supported by OSS toolchain
- funkaster 6y agoI was looking for a cheap (< $30) board to start playing with FPGAs and found this one. It's a good improvement over the v2 that had some signal issues[0]. The examples also include a RISC-V core. [0]: https://tinyvision.ai/blogs/processing-at-the-edge/ground-trampolines-and-phase-locked-loops https://tinyvision.ai/blogs/processing-at-the-edge/ground-tr...
- deleted 6y ago[deleted]
- osamagirl69 6y agoI love the emphasis on breaking out all of the GPIO pins, it is incredible today how many dev boards either leave pins as not connected or hard wire them (no jumper to disable) to some onboad peripheral. Looking at you stm32 discovery boards...
- the__alchemist 6y agoThe Discovery boards are a bit of a minefield over which pins you're allowed to use. It can cause surprising problems if you don't check the dev board manual's pin table, or don't know how to interpret it. Additionally, you need to plug the jumpers into the bottom of the board; it looks like you can use the top, but the jumpers tend to fall out! The nucelo ones are even weirder. The pins aren't labeled on the board, and they're in a weird layout, with some male and others female.
- fpgaminer 6y ago> It can cause surprising problems if you don't check the dev board manual's pin table Nah, you got it all wrong. You need to pull up the devboard's Pinout, User Guide, and Overview documents. Sometimes cross reference those to the devboard's schematic for the trickier pins. Alongside the specific User Guide and Programming manuals for the MCU on the board. Plus the MCU's guides don't typically cover stuff that's common to all MCUs in a particular Cortex family, so you need to pull up the Cortex documentation. And then, finally, the errata documents. Typically speaking you'll need to cross reference across all of those documents, all at once, and several places _within_ each document ... all at once. That's assuming you're using one of the more common pins. If you've decided to dabble with any of the more exotic functionalities you'll want to pull up one or several Application documents, as the former pile of documentation is unlikely to accurately describe the necessary "voodoo" to get things working. (I kinda wish this comment was a joke ... but it's not. The STM line of chips are truly wonderful machines but ... golly are they a pain to develop on. There's a reason most people just use Arduino to plaster over this stuff.) EDIT: Oh and make sure you don't confuse the labeling of the pins on the board, with the label of the pins on the pinout, with the label of the pins on the schematic, with the label of the pins in the registers, with the label of the pins in the various HAL libraries... EDIT2: Geez, how could I forgot the most crucial thing: you of course have to modulate all of these by which specific package of the chip you're actually working with. No sense spending half an hour of your life wadding through all of this documentation only to get to the dev board pinout to find that pin is only available on the largest package and the dev board only came with the 2nd to largest package... (and also doesn't include that one peripheral you were planning to use because ... reasons).
- the__alchemist 6y agoThose issues transcend the discovery board. It's frustrating how much the Reference Manuals leave to the imagination. A lot of the peripherals are similar or identical across families. Some have subtle differences, and some have large ones. I haven't found a shortcut - seems you really need to bring up parallel reference manuals. For example, the RTC periph is the same on most STM32 devices. Clocks vary significantly between families, as expected, but at their core, are just different combos of multipliers and internal oscillators, which you can break out by comparing clock trees. Things like I2C vary wildly between families, and sometimes within families.
- duskwuff 6y ago> For example, the RTC periph is the same on most STM32 devices. There's actually two major versions of the RTC peripheral. :) The v1 RTC counts in seconds, v2 has explicit date/time fields. A lot of other STM32 peripherals can be seen as "versioned" in similar ways. There's a lot of different combinations of those peripherals on different parts, but there's usually only two or three major revisions present of each peripheral across the entire product line, and they tend to follow a pretty consistent timeline. (That is, a newer part will usually use the newest version of each peripheral at the time it was designed, rather than using a mixture of old and new peripherals.)
- cerplum 6y agoOne potential shortcut is if you install their CubeMX and take a look in it's data files there are XML files for each distinct peripheral. So there'll be something like RTC_v1.0.xml and RTC_v2.0.xml. Someone uploaded an old copy of them [1] if you just want a quick look. Then there's also device & device family xml files that link to the various peripherals they have [2]. There's probably no guarantees but in my experience if two devices link to the same version xml file their peripheral registers at least will be identical. Quirks and silicon bugs, you are on your own of course... but then the ref manual doesn't help with that either! [1] https://github.com/esden/stm32cube-database/tree/master/db/mcu/IP https://github.com/esden/stm32cube-database/tree/master/db/m... [2] https://github.com/esden/stm32cube-database/tree/master/db/mcu https://github.com/esden/stm32cube-database/tree/master/db/m...
- phendrenad2 6y agoIt's amazing how many dev boards with 300 GPIOs on the chip give you... 50 (especially looking at you, Xilinx!). At least give me a tiny little header that I can use if I'm determined enough. Signed, Someone who needs 200+ pins in a current design and doesn't want to make their own board from scratch.
- the__alchemist 6y agoHow does this compare to alternatives for learning FPGA? What's the significance of the duino suffix? When would you choose FPGA over something like an STM32? From what an internet search leads to, they can be faster / do more things in parallel for the price. And you can add capabilities (More timers? More op amps?) with firmware updates. Is this at the core of when you'd choose one? I've no experience with FPGA, but would like to learn. This is listed as "no longer available for sale". Which dev board do you recommend? Thank you.
- bsder 6y ago> When would you choose FPGA over something like an STM32? The answer is "almost never". Qualifications below. Learn the Cortex-M4 ecosystem first. You can do a remarkable amount of stuff by abusing microcontroller systems in weird ways. The tools for dealing with microcontrollers are MUCH better than the FPGA ecosystem tools (which suck--and that's on a good day). If you need an FPGA, generally you know it. The first sign is: "There's no way to do this with my microcontroller." That step is generally followed by: "Is there a different microcontroller that could do this?" followed by asking the old greybeard "Is there really no way to do this on a microcontroller?" And finally, "Crud, this can't be done on a microcontroller"--at that point you can consider an FPGA. As someone who has been dealing with this for mumble too many years, I've been slowly migrating functionality of my clients away from their FPGAs and into the microcontrollers more and more. It's just way easier on too many fronts--and they don't have to learn Verilog/VHDL. The FPGAs will never go away, but they will have the minimum functionality we can get away with. > I've no experience with FPGA, but would like to learn. I'm likely to get some static for this, but get an actual supported dev board and not an open-source hacker board. I would recommend something like this that has an academic version: https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=218&No=1230 https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=... Use the manufacturer tools (which, in this instance, are free) as using an "open-source toolchain" is NOT for beginners. Once you understand FPGA's a bit more thoroughly, then you can take the leap to the open source stuff.
- snvzz 6y ago>Use the manufacturer tools (which, in this instance, are free) as using an "open-source toolchain" is NOT for beginners. As someone who learned the ropes with the open toolchain, I have to strongly disagree. It's perfectly feasible, and from what I've seen (videos and such), the closed toolchains are way messier and do not provide much in terms of tools unless you pay for time-limited licenses. No thanks.
- MasterScrat 6y agoHere's the board I still have from my student years. I'm curious how it compares to modern alternatives? I haven't kept up with that field at all: https://core.ac.uk/download/pdf/147963601.pdf https://core.ac.uk/download/pdf/147963601.pdf
- flatiron 6y agoTake a look at the de10 nano. Crazy good board for the price. No OSS tool chain though.
- mhh__ 6y agoTo flesh this out, the de10 is a cyclone V board, so you actually end up with an ARM core/s to play with as well. Lattice has a line called PolarFire which combines a fairly big FPGA and a RISC-V core, but they're very expensive, so I doubt I'll have my hands on one for a while. If I ever luck into the big money, I know for sure I'm going to bankrupt myself buying toys like https://www.xilinx.com/products/silicon-devices/soc/rfsoc.html https://www.xilinx.com/products/silicon-devices/soc/rfsoc.ht...
- noncoml 6y agoI had fun playing with the Lattice ICE40 Ultra Plus Breakout board. I wouldn't call it expensive (~$60) and it's pretty simple. The toolchain by Lattice however is not the best
- colejohnson66 6y agonMigen supports the Lattice ICE40. However, instead of writing you Verilog/VHDL, you write Python that generates the Verilog.
- mtve 6y agonMigen still requires toolchains, perhaps you mean that iCE40 is just supported by Yosys+nextpnr?
- colejohnson66 6y agoI’m assuming one would use nMigen with Yosys instead of Lattice’s bloated toolchain. That wasn’t clear.
- snvzz 6y agoiCE40 and/or ecp5, with yosys+nextpnr, is absolutely the way to go.
- snvzz 6y agoThere's plenty of such boards these days. I generally recommend the iCESugar and the ULX3S, for iCE40 (UP5K) and ECP5 respectively. I own both boards, and a few more I don't feel like recommending.
- vrangan 6y agoI'm the author of the blog . Not trying to promote myself but since you posted, the v3 of the board is available on the tinyvision.ai and tindie stores. I discontinued v2 as it was a terrible design that I couldn't stand behind. There are many reasons to learn about fpga's. Yes micros have their place as well and are very capable and cheap like the Nxp RT series.
- alfiedotwtf 6y agoWhat's the best place to start learning about FPGAs? I've been wanting to dip my toes in, but not sure where to begin.
- victor82 6y agoIf you are already familiar with Python I could recommend start with this tutorial: https://github.com/RobertBaruch/nmigen-tutorial https://github.com/RobertBaruch/nmigen-tutorial
- vrangan 6y agoAlso, icestudio (https://icestudio.io/ https://icestudio.io/) is a gentle way to get introduced with minimal knowledge to the verilog side of things. As others have posted, the learning curve for HW can be steep and development tools tend to be in the dark ages as compared to those for SW development. eg. you will spend a lot of time hitting your head on a wall with debugging HW if you arent careful to follow a process of linting and simulating your design well before going to HW. nMigen is highly recommended.
- alfiedotwtf 6y agoExcellent. Thanks to you both!
- dancek 6y agoWhile it's not about FPGAs, I got started by working through https://www.nand2tetris.org/ https://www.nand2tetris.org/ . After that I bought an UPduino v2 and started hacking. Of course working on a fantasy CPU and a real FPGA are completely different, but the mindset of how hardware works vs. how software works is very valuable.
- mhh__ 6y agoFPGA Thread: Bluespec SystemVerilog is now completely open source, very nice HDL although quite opinionated. https://github.com/B-Lang-org/bsc https://github.com/B-Lang-org/bsc it's Haskell underneath (https://xkcd.com/356/ https://xkcd.com/356/)
- qwerty456127 6y agoHow about an FPGA dev board that's cheap, simple (or not really), supported by OSS toolchain and can emulate a RISC-V SoC with performance sufficient to run a fully-functional Linux desktop? I once stumbled upon an article where somebody FPGA-ed (with a much bigger board, I don't insist it has to be this small and simple) a RISC-V system to make a "RISC-V PC" and I'm thinking about getting an FPGA to explore that since then.
- tieze 6y agoNot extremely cheap, but the ULX3S fits the bill. It's got the inputs and outputs and all.
- qwerty456127 6y agoThanks!
- MobiusHorizons 6y agoIt has only 32meg of ram though, so that would likely limit you to terminal linux.
- ncmncm 6y agoCrowd Supply has quite a selection of often astonishingly cheap FPGA prototype boards supported by all Free toolchains. The mother lode of cheap, capable FPGAs seems to be supply chains for makers of TVs.
- KMag 6y agoIs the reason for this that smart TVs need to be able to add real-time video codecs (actually, just the decoders) on a shorter lead time than is possible with ASICs? TVs generally strike me as things where economies of scale make FPGAs look less attractive. Though, I clearly don't know much about the industry.
- ncmncm 6y ago
- mrlonglong 6y agoCould this board be useful for playing with RISCV?
- mhh__ 6y agoShould have enough LUTs to play with, although not much to spare if you built a core for work rather than play
- funkaster 6y agoyes. Even one of the examples is a RISC-V core. However, your expectation should be around a RISC core that can be used as a microcontroller rather than a RISC CPU for running linux.
- inamberclad 6y agoJust bought one of these a few days ago, I've been meaning to put a RISC-V core on it.
- xnzakg 6y agoReally neat. I've been looking for something like this to try out open source FPGA development tools, just wish it came with a usb-c port instead of micro.
- webgoat 6y agoNot to snipe this post or anything, but you can get a Xilinx zynq 7000/7010 on Aliexpress for ~$20 right now (likely old bitcoin mining boards being tossed).
- sgt 6y ago$50 shipping...
- mciancia 6y agoMaybe depends on where you are, but I got this board with shipping to Europe for ~14USD a few weeks ago
- dancek 6y agoMore info: https://hackaday.com/2020/12/10/a-xilinx-zynq-linux-fpga-board-for-under-20-the-windfall-of-decommissioned-crypto-mining/ https://hackaday.com/2020/12/10/a-xilinx-zynq-linux-fpga-boa... Exciting times!
- DoingIsLearning 6y agoClearly you haven't had the pleasure of completing any production grade projects using 'Xilinx Vivado', or for an even richer experience they're repackaged Eclipse 'Xilinx SDK'. I really hope yosys matures and is adopted in large numbers in industry, to become a de-facto gcc equivalent for FPGA compilation. Decoupling FPGA designs from the half-baked tools that vendors push out would be real progress.
- gdamjan1 6y agoThere's also this FPGA board and I think you can order it already: https://ulx3s.github.io/ https://ulx3s.github.io/ The ULX3S FPGA board has the Lattice ECP5 FPGA, and an ESP32 that connects to wifi and can reprogram the FPGA.
- Iv 6y agoIt is interesting that the github does not mention that this FPGA chip is optimized for ML inference. Or is sold as such at least: https://www.latticesemi.com/en/Products/FPGAandCPLD/iCE40UltraPlus https://www.latticesemi.com/en/Products/FPGAandCPLD/iCE40Ult... I am not versed enough in FPGA to know if this is just a marketing rebranding of common features (apparently a focus on LUTs and add-and-multiply operations) or if it is an actual edge. Though, if that thing can do pattern recognition in images and draws 10 mA max, that's an interesting package for $24