13 ms·
UPDuino: a $9.99 FPGA
- nategri 8y agoThis is pretty great. I have been wanting to get into FPGA programming so it's nice to know how low the "basement" price is for the essential equipment. Can anyone else recommend any other cheap entry level boards?
- tonysdg 8y agoPretty much anything from Digilent. I've got an old Spartan6 board that has a boatload of horsepower. If you want to get fancy, look at the Zedboard family -- FPGA wrapped around ARM cores.
- LeifCarrotson 8y agoI also recommend Digilent, but they are not bargain basement. They're education targeted, often focused on the lab, rather than non-hobbyist R&D boards, but not $10.
- TomVDB 8y agoMy standard to-go-to FPGA is an Cyclone II EP2C5T144 development board. On a good day, you can find them for less than $5 on eBay. You'll need a USB blaster to program them, which adds another $10 or so. They are small, but they are still large enough to add a little CPU with a little RAM, plenty of hardware multipliers etc.
- Posibyte 8y agoI always recommend the DE0-Nano. It's getting a little old, but it's basically all right there, open for use. I'm a fan of the Arrow DECA which has a complete assortment of neat odds and ends. Lastly Digilent's Arty and CMOD series are awesome depending on what you need. I know this makes a few assumptions on what you mean by "Cheap", but I find sub $200 for FPGA boards to be pretty affordable when compared to the gamut.
- mindcrime 8y agoWell... "cheap" is relative, but the Ice40 boards from Lattice are reasonably priced IMO. And more to the point, there is a complete Open Source toolchain available for programming them. That's a big plus in my book. https://www.digikey.com/product-detail/en/lattice-semiconductor-corporation/ICE40HX1K-BLINK-EVN/220-1581-ND/3198285?WT.srch=1&gclid=CjwKCAjw2rjcBRBuEiwAheKeL51nPsAZYnQzABO_zqPDi41lUmoAotLUmXXonT3TN060A4svOc-hZhoCfNIQAvD_BwE https://www.digikey.com/product-detail/en/lattice-semiconduc... http://www.clifford.at/icestorm/ http://www.clifford.at/icestorm/
- edwintorok 8y agoThere is a large list here (including this one): https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards The ICE40 chips are the ones supported by the open source icestorm toolchain.
- spitfire 8y agoCan this run a RISC-V core? It would be very nice to bring the cost of experimentation in CPU cores down to something easily accessible to even students. In the same way that RPI brought computing and hardware interfacing down to basically anyone who can afford a cup of coffee.
- bri3d 8y agoYes, it can: https://github.com/grahamedgecombe/icicle https://github.com/grahamedgecombe/icicle
- eigenloss 8y agohttps://github.com/cliffordwolf/picorv32 https://github.com/cliffordwolf/picorv32
- baobrien 8y agoAlso written by the same guy who did a large chunk of the open source synthesis toolchain for the FPGA mentioned above.
- geokon 8y agoJust announced is another project that's doing just that https://www.cnx-software.com/2018/09/04/licheetang-anlogic-eg4s20-fpga-board-targets-risc-v-development/ https://www.cnx-software.com/2018/09/04/licheetang-anlogic-e...
- TomVDB 8y agoWord of warning: my UPDuino v2 (these have a USB connector so you don't need a separate programmer) worked, but it heats up a lot immediately. I suspect a short circuit somewhere due to bad soldering. Requests to have it replaced were never answered.
- FredFS456 8y agoAt $10 shipped I'd just get a new one. I don't think there's any reasonable expectation of support here.
- TheAceOfHearts 8y agoMost companies will replace a faulty device with a new one or fix it if it's broken due to manufacturing issues. Maybe the price should be increased a bit to allow for further testing. If you have an issue the solution shouldn't be to throw it away and buy a new one, that's incredibly wasteful and it encourages bad behavior by the manufacturer.
- isoprophlex 8y agoHow does one go about developing on an FPGA (i'm an absolute noob familiar only with Arduinos and ESPs) Are there any go-to IDEs that everyone uses? Resources/tutorials towards a `blinkenlights 101` project that are especially useful? Edit: thank you all for the very excellent answers! I'm going to lose so much productivity over this!
- bri3d 8y agoHere's a decent getting-started: https://medium.com/@luke_73359/getting-started-with-icestorm-verilog-on-the-ice40hx1k-fpga-cbc71ad3947d https://medium.com/@luke_73359/getting-started-with-icestorm... There isn't really a go-to IDE that everyone uses. Each vendor have a proprietary IDE and they're all very bad. Lattice FPGAs have an open-source toolchain, but it's all command-line tools so you're left to build your own workflow of choice.
- furi 8y agoYou can write Verilog or VHDL (the two main hardware description languages used to design circuits) in any text editor you choose and verify the basic functional correctness (verifying that it implements the logical behavior you want) in a simulator like Icarus Verilog. However to verify the behavior on the FPGA and actually program it into the device you'll usually need some vendor specific tools, for Xilinx (what I'm familiar with) you'll need a software package called Vivado. It provides information on whether or not the timing you've requested is possible, whether any part of the chip will get too hot, whether the design actually fits in the limited resources of the FPGA, as well as implementing, optimizing and outputting the design to the FPGA. Lattice has an open source toolchain available at least for some of their devices, for Xilinx there are efforts to produce a reverse engineered toolchain but I don't know how functional they are, there are free (but not libre) versions of Vivado as well but you'll need to fill out US export paperwork and it doesn't support all Xilinx FPGAs unless you pay. I don't know what the story is with Altera.
- ChuckMcM 8y agoThe equivalent tooling for FPGA programming is starting with a high level hardware description (typically Verilog or VHDL) then - synthesis -- this converts the text description from HDL into gates (fun fact you can write valid HDL which cannot be synthesized into hardware) - place & route -- this takes what is essentially a schematic from the first step and assigns it to resources within the FPGA. This is also where you specify which pins on the FPGA you want to be connected to the schematic outputs. - timing closure and simulation -- This is the process where the FPGA place and route core is trying to either make your design fit in as few gates as possible or run as fast as possible (these choices often conflict so you have to prioritize one over the other) - bitstream generation -- This is where an often encrypted stream of bits are generated such that if they are fed into the FPGA they will set all the internal switches etc to realize the design you've put together. - programming/flashing -- most systems use JTAG to do this. When I started doing FPGA designs the hardest part for me was to break the notion of "software" when I was writing VHDL. You have to keep your head in the 'one clock' every variable gets to change exactly once in this block.
- chrisallick 8y ago"On board quality - I paid a High School/College kid in Sri Lanka to do the board; I will give him your feedback." the most beautiful thing i'll read today.
- faitswulff 8y agoAt once very cool and potentially very sad to me. Sad to think that skilled engineers are being underpaid because they lost the geographic birthplace lottery.
- Drdrdrq 8y agoOn the other hand relatively low amount of money makes this person wealthy. It's not just absolute amount that matters, it's where you spend it too. (saying as someone who is not from US, and wouldn't trade)
- tracker1 8y agoThat was my first thought as well... I've worked with a handful of extremely skilled developers/engineers over the years in China, Russia and India that would be impossible to pay for at U.S. prices, but able to offer very competitive money for where they are located. On the flip side, I've also had more very bad experiences with outsourcing overseas and communication barriers. Cultural differences are often underestimated, and without dedicated oversight/management things can go off the rails pretty badly. It really depends on a lot of variables. I have mixed feelings about globalization myself, living in a higher paying country for the work I do. But I don't fault anyone for offering or taking a good wage for one's circumstances. I just wish it worked a bit better for the consumer in some protective markets (medications mostly, but others too).
- zerr 8y agoNo, it's a quality of life that matters.
- mlevental 8y agoeither they're getting underpaid or you're getting overpaid. pick one.
- crankylinuxuser 8y agoIm interested in low cost FPGAs, like around the $5 range. My goal is to make a closed loop stepper microcontroller. Ive never did FPGA design. what's good resources to start reading to get caught up with the basics? Figure I should ask those more in the know.. :)
- 01100011 8y agoStart with digital logic fundamentals(not, or, and, xor, xnor gates, flip-flops(d, jk, etc). It helps to know some analog theory so you understand propagation delay and such. Then you'll probably want to learn a language like Verilog or VHDL. From my experience, most people like Verilog and VHDL is mostly used in the defense industry. You could probably skip right to Verilog/VHDL, but I really suggest having a background in digital logic. FWIW, I'm just an embedded software guy. I came from an EE background but it's been a long time since I've played with programmable logic.
- sigstoat 8y agoif practicality is a concern at all, then you can get stm32's for about that which will have significantly more power than you'll be able to cram into a $5 FPGA, and the development environment will actually be pleasant. (or just buy them, there's at least one on crowd supply, another was on kickstarter in the last couple years, etc)
- stefanpie 8y agoI wanted to get into FPGA programming recently after feeling confident mastering my microcontroller skills and discovered that complex programmable logic devices (CPDLs) can be a stepping stone to full on FPGA prototyping. They somewhat of a similar high-level functional design and there are some nice guides online to get started on some projects.
- bopbop 8y agoIs this powerful enough to run a NES? As in, can it run a 2mhz 6502 chip with some extra space for the sound chip, etc?
- moftz 8y agoYou can synthesize a 6502 on an FPGA just fine and can probably do it on this specific chip. There is a project I've seen (https://danstrother.com/fpga-nes/ https://danstrother.com/fpga-nes/) where someone did synthesize the 6502 along with the rest of the hardware on a Spartan 3 which does have more resources available to it. Looking at the utilization report in the comments on that page, it would be too much for this little Lattice chip. There are other FPGA development cards out there similar in size that would work better for your idea. You would be better off getting a larger development card for designing and then moving to some custom PCB that fit only the components you need at the size you want.
- danbruc 8y agoThe FPGA seems to be a ICE40UP5K which has 5280 logic elements each configurable to any Boolean function of up to four inputs plus a flip-flop to store the result. Wikipedia gives two numbers for the transistor count of the 6502 namely 3,510 and 4,237 but both are smaller than the number of logic elements so fitting a 6502 should be easily possible. The FPGA has an integrated 48 MHz clock so a 2 MHz designs also seems quite achievable. I can not tell whether the remaining logic elements, the memory, and the I/O blocks are sufficient to build everything else because I know essentially nothing about the NES. It seems at least not wildly implausible to me but memory might become an issue because there is only about one megabit on the FPGA.
- q3k 8y agoRemember that you also to implement need memory (the UP5K actually does have quite a bit of SPRAM, though), a memory controller, a ROM, the NES PPU (which was mixed signal) and that comparing transistors to LUT/DFFs is not really a fair comparison (as transistor based logic is not immediately always convertible to RTL logic, and that high-density FPGA designs are much more tougher to route while meeting timing). Finally, the UP5K is actually fairly slow (when it comes to routing timing) compared to the iCE40 HX/LP, and especially compared to other, more modern FPGAs. The iCE40 routing in general also tends to be underwhelming at high density designs.
- yazan94 8y agoCan someone explain why someone would choose an FPGA over a standard microprocessor? What advantages could this UPDuino have over an Arduino? Also, how do ASIC's figure into this comparison? My understanding is that microprocessors excel at executing logic using an onboard general-purpose ALU sequentially and quickly. On the other hand, an FPGA excels at doing a specified task as the hardware (gates) are programmed/hooked up in a certain way to execute that one task. ASIC's are processors that are designed from the factory to execute a specific task (kind of like pre-programmed, non-reprogrammable FPGA's). Can someone please fill in the gaps please? I have a general idea, but I'm not sure I understand all the differences correctly.
- pulse7 8y agoChoosing FPGA = learning, how to be independent from ASICs, which have more and more "hidden security parts" like Intel ME, AMD PSP, ARM TrustZone...
- SahAssar 8y agoCPU's like the ones that include Intel ME, AMD PSP or ARM TrustZone are not embedded in ASIC's. A ASIC is meant to perform a single task well, if you need or if there even could ever be a usecase for a OS or processor like those examples then by definition it isn't an ASIC anymore.
- TomVDB 8y agoFor hobby projects? Multiple reasons: - because writing RTL is fun, while writing C code is boring. :-) - because it's probably not possible to outputs VGA with your standard microprocessor. You can create a dinky 3-bit VGA output with very little hardware. - because I may want to DMA data from an external sensor and feed it straight into a DSP for processing, and only use the CPU to deal with the post-processed result. Think multi-channel audio etc. - because anything that requires fast real-time is probably not possible with the standard microprocessor. But mostly because writing RTL is fun.
- makapuf 8y ago
- pulse7 8y agoAlmost the same FPGA (Lattice Semiconductor FPGA ICE5LP4K) has been found in the iPhone 7: https://web.archive.org/web/20160916230725/http://www.chipworks.com/about-chipworks/overview/blog/apple-iphone-7-teardown https://web.archive.org/web/20160916230725/http://www.chipwo...
- bayesian_horse 8y agoMy complaint about this new breed of maker-level FPGA boards is that the information on shipping is a bit sketchy. I believe most ship from the US (I think one didn't even tell where from) and that often leads to hazzles with customs etc. which I would prefer to know beforehand...
- bayesian_horse 8y agoA critical advantage of these new FPGA boards is not only are they at the same price point like Arduino clones and many other common maker components, but they are also small enough to be useful as permanent component in a project. With earlier FPGA Learning boards, the designers tried to cram a ton of stuff into them, usually a gazillion pins, leds, input devices and connectors. You can't easily put that on a Raspberry Pi or Arduino.
- funkaster 8y agoThere's a v2[0] of the same board that includes a USB<->SPI to make it even easier to program. [0]: http://gnarlygrey.atspace.cc/development-platform.html#upduino http://gnarlygrey.atspace.cc/development-platform.html#updui...
- sowbug 8y agoThank you for linking to at least one page on the company site. The https://tinyletter.com/ https://tinyletter.com/ article links to it only very obscurely around an image. There are many normal links in the article, so I assume the failure to link clearly to the product under discussion was just an oversight.
- syntaxing 8y agoAll these new affordable FPGA are getting really tempting to learn more about them. I've been debating for a while to get the TinyFPGA BX board from Sparkfun. Though I don't have a specific application yet. Are FPGA used in robotics often? Or is the response time so low (relatively) that it makes more sense to stick with a uC? Side note, this might seem like stupid question, but can anyone explain what APIO[1] is (which TinyFPGA uses)? I'm kind of confused what it's used for. [1] https://github.com/FPGAwars/apio https://github.com/FPGAwars/apio
- bayesian_horse 8y agoDecoding rotary encoders is a common task, and very hard to do with Microcontrollers at either high event rates or multiple instances. Maybe even turning a brushless motor with an encoder into a servo motor. My main idea for using FPGAs would be talking to a couple of i2c/spi sensors and reducing the data rates. Some sensors only have one or two possible i2c addresses, some require multiple requests to get a limited amount of data, reducing the polling frequency.
- gh02t 8y agoAs someone who just started getting into it, it's kinda hard to come up with an application until you have one and know how to use it a bit. I bought an icestick not knowing what I was going to do with it, but now I have quite a few ideas. They can be useful in robotics, as glue logic, for sensor fusion or for very precise real-time applications. apio is a command line tool that automates installing the toolchain for your FPGA and running it. It just simplifies things, you don't have to use it if you'd rather call the individual tools for synthesis, P&R, simulation etc. It'd be reasonable to think of it as akin to a very smart Makefile combined with an automatic package manager, specialized to FPGAs (it's based on PlatformIO). It's nice when you're still kind of getting oriented, because you don't need to know how to set up and invoke the different tools... just call `apio build` or `apio simulate`.
- syntaxing 8y agoDid you know Verilog or VHDL beforehand? I'm super interested in doing sensor fusion (or even just basic sensoring like a UKF). But it seems so overwhelming (compared to a uC like Arduino or ESP8266), I don't even know where to start. Do you have any tips or tutorials that you recommend? Thank you for the explanation for APIO! Do you use it often? Or are there alternatives that people use when they get to a certain level (Like Atom/VScode --> vim)?
- lichenwarp 8y agothis thread might be dead now but can someone please explain why an FPGA is such a big deal, I always see them mentioned but just don't have an idea of what they can be made into? Can anyone give project ideas of why it would be better to use on FPGA? (not sarcasm, I'm genuinely curious)