The surge of interest appears to have killed Lattice Semi's website. Anyway, this is a fancy breakout board for a tiny BGA device: ice40UL1K. Available in single quantities from Digikey for under $2.
I feel like its about time Lattice got some attention. Their development environment is way nicer for enthusiasts and it's usually pretty easy to use their stuff in projects. Xilinx by comparison only has free IDE support for some mid range SOCs (Zynq-7000) which tend to cost a lot on their own and the IDE is a living nightmare to use.
can anyone recommend a good FPGA development kit to get started? I'm ultimately interested in SDR (dsp) and possibly finance applications, and would like to get familiar with the dev tools as I work on some hobby projects.
The most restrictive thing about this to me is the pinout. Only 6 I/Os really limits the applications in terms of SerDes / parallel-to-serial applications as well as in terms of configurable pinout, which is (IMO) where small programmable logic really shines. In my experience microcontrollers are cheaper and easier for pretty much any kind of the simple serial/processing stuff you could handle with such a small logic device.
In my opinion 1K LUTs is fine for a lot of cool applications - I built an ((E)EP)ROM / RAM simulator out of an iCEBlink40HX1K board to use in programming and reversing old ECUs. It works great and is vastly superior to the old school method of doing this (hardware dual port SRAM) since the pinout is configurable on the fly.
I was just wondering how many logic gates it takes to get to certain milestones. Is there a table somewhere saying feature vs. logic gate count? You seem knowledgeable, and the last FPGA I played with was a cyclone II.
I remember the first PLD I used had 32 macrocells (in about 1991/1992). I could just about fit a single, simple state machine on it for talking to the VME bus.
I had not seen that device before, but I am going to buy some now.
The use case is for applications that require complex logic but do not require the overhead of a full-blown microprocessor. I could use this bugger in place of an MSP430 in the automatic pool leveller and barbecue temperature control devices I am (eventually) building.
1K LUTs with 5 I/O's, My thought was an RGB LED controller with an i2c bus but that is already available in hard logic. You could probably do the motor sequencing bit for a motor controller in it, doing i2c for reading the position sensors. But mostly I run up against pin limitations. I'd like it to have 12 I/Os rather than 5 presumably Lattice provides that too. Then its a replacement for the CoolRunner CPLDs.
> The only gotcha is that the FPGA onchip memory is OTP, so it should either be loaded by external CPU over SPI, or from external SPI Flash, in both cases the SPI pins are user defined IO after bootstrap. Or then fixed configuration is burned into OTP.
Basically, while it -may- retail for $5 you will need an external CPU or flash for it to work. This sounds like a heavily restrictive limitation. I'd rather pay for a $8 FPGA module with actual persistent memory.
I think almost every FPGA is like that -- I think ones that have internal flash (like the Spartan-3AN) are still SRAM based and just have a flash chip in the package as well.
The only flash based programmable logic from Xilinx/Altera are CPLDs as far as I remember.
External SPI flash is pretty cheap even at low quantity (~$0.50 at qty 1 for 2Mbit, going down to the $0.30 range for low thousands)
With the small limitations of this, it is mostly a novelty--what makes it interesting is that most FPGA's are much more expensive than $5. So that's cool. Maybe you could implement a SPI slave to I2C transceiver or something like that -- something not so easy to do, but useful for a design. And yes, with only the OTP memory, the external EEPROM makes it more expensive. So at the end of the day, why not just buy a cheap micro for $0.75 with built-in flash, multiple blocks to do cool stuff, and if you are dead set on doing some FPGA type stuff, Cypress Semi has some psoc devices that have built-in logic blocks that are similar to FPGA macrocells.
no need for crystal, 10khz and 48mhz internal oscillator, and I do have some solution for the OTP use. Its a dowside, but it still amazing pastard. And yes AVR core fits nicely, I have done, and will port the old code from ice65 to iceultra. Yes volume pricing is below 1USD, and YES I have done commercial products with microcontroller with wholesale below 3 usd.. cheers Antti
It's worth noting that for a lot of applications (anything with UART for instance) you still want to use a crystal. Almost all of the micros on the market have an RC on die but it's usually better to just pop a crystal on the board. The PLL supports it, though you'll lose a couple precious pins.
I have done AVR in ICE65 but I do not recall the max clock I was able to achive. Internal clock is 48MHz, with some speed tweaking I guess a 4 clock-per instruction AVR core could work. But the beauty is that you can implement part of the "code" in real hardware.. or add custom instruction, or roll your own cpu..
5USD is doable ball-park figure. Doable price even if using our own in-house manufacturing in Germany. Volume production in Asia can be way below of course.
ice40UL1K is a $1.60 for a single bga unit on digikey. Probably well under a dollar wholesale. Add in a few cents for a crystal, some capacitors, pin headers, a vreg, and the pcb, probably costs $1-2 to produce.
I should mention that someone capable of doing hobby level bga work could easily make their own at around $30 through a pcb batching service. In terms of electronic complexity, it looks pretty trivial.
Instead of 30?
No, it typically costs a lot to do one-off pcbs. Even through a batching service (where you share a large panel with other people), they'll still usually make you pay for a few of them.
Also, all of the components are going to cost way more if you just want to buy one of each. Headers are tenths of a cent per pin but from digikey you'll probably have to buy a strip for a dollar or so. Likewise with crystals, vregs and caps.
In general you can't really do bga with osh park without fudging their specs significantly. Some have been able to do it but you tend to end up with peeling traces. Also, don't forget shipping on all the bits and pieces.
PCB confirmed the "DIPSY easysolder PCB" deliver on 20th july, this is special downgraded version of the PCB, 2 layers, drill 0.15, trace space 50 micron..
No, this is targeted towards consumer, mobile devices. For cryptographic use you want small process, high bin, typically extremely large and expensive chips. The thing has integrated LED drivers, it's about as far from what you want for that application as you can get.
Combine it with C.H.I.P. [1] and you have a $14 supercomputer.
The generic CPU could download over the air update (WiFi) and reprogram, take care of user interface etc while the FPGA can do the low-power, high throughput tasks (voice processing, video, image etc).
What's the target for a device like this? It doesn't seem powerful enough to replace a Cortex M4 for example - is it just if you want really really low power use?
If you use an FPGA like a CPU, its a waste of the FPGA.
This FPGA will likely be used for implementing the variety of protocols in the embedded world. Imagine that you want to attach a Raspberry Pi camera to an arbitrary Cortex-M4... and the M4 doesn't support the interface.
Instead of bit-banging the interface, you simply program the FPGA to handle that for you, and to trigger an interrupt whenever a full frame of data arrives. The spare CPU cycles are then used for sleep or maybe something else.
Tiny fpgas are sometimes used just to add a bit of glue logic next to a MCU. Or even just as reconfigurable routing for future-proofing a board. I've seen them as small as 600 logic blocks, which certainly isn't enough to do anything remotely advanced - but they're getting real cheap these days :)
I definitely seen them used in that manner... but at only 8 pins (two of which are probably power), its hard for me to imagine good future-proofing in only 6-pins.
I guess 28-pin CPLDs are already made though (Atmel ATF750C). But I really don't see how a 6-pin FPGA can be used for routing / future proofing.
all IC pins are available, 5 normal I/Os arranged as DIP8, the "LED IO" also usable as input or opendrain output are in the innner rows where you can solder 6 pins down, or socket "up", so all 10 I/O are available.
Roll-your-own IO. Wouldn't work with this particular device, but for example budget oscilloscopes have an FPGA for the processor to operate the sensing system.
Implementing something you could buy off-the-shelf on an FPGA is almost always a fools' errand.
Well here is an example I wrote for a cheap Altera Cyclone board: an I2C bus monitor. It converts I2C into text and sends it out an RS232 serial port. You can then record all all the text in an emacs shell window for long term monitoring.
Small programmable logic chips in the form of FPGAs or CLPDs (Complex Programmable Logic Devices) seem to be fairly popular in lowish-volume flashcart designs for old video game consoles as well.
Ask HN as an aside: What would be a good platform for learning how to use FPGA's, that's hobbyist priced? This would be for someone who is already experienced with electronics, microcontrollers, programming, etc.
its maybe not direct replacement of MCU, but more like addon on, customized peripheral that handles things that are too fast for software, examples could be: PWM input, i2c PWM controller, barcode emulation controller, nonstandard interface that need precise timing where software bitbang would eat too much cpu time.. etc.
https://github.com/cseed/arachne-pnr
http://www.clifford.at/icestorm/