Anyone used Lattice ICE40 FPGAs ?  - Page 1
Forum section: electronics / general

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 06, 2013, 02:00:03 pm
content: Looking at possible parts for a new FPGA project. Hardware & speeds are pretty simple,and the Lattice Ice40 parts seem worth a look as pretty cheap and appear to be fairly available, although only some parts in non-BGA package.Anyone used them?Any comments on the IceCube software ?I've used Lattice ISPLever and Xilinx ISE before for low-end FPGA stuff - they do the job but rather slow & clunky. Downloading IceCube now to take a look.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 06, 2013, 05:02:56 pm
content: Software looks like it might be nice once you figure out how to do even simple things, but NOT A SINGLE complete example project is supplied, and only 2 sets of simple tutorial files.Can't even figure out create new projects from scratch - won't let you launch the editor til you have files in the project.At least with Xilinx ISE I can create a new pin file, throw some VHDL together and get a useable device file. Just takes forever to compile anything useful.I wonder if FPGA software is ever going to be properly integrated instead of being a bunch of random tools held together with sticky tape?

author: marshallh
author_rank: Unknown
timestamp: April 06, 2013, 07:20:12 pm
content: The ice40 design software is relabeled siliconblue stuff as I recall.I use Altera parts because Quartus is IMO the best thing around and so long as you avoid the .0 versions it doesnt give me much grief.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 06, 2013, 08:19:06 pm
content: Quote from: marshallh on April 06, 2013, 07:20:12 pmWhenever I've looked at Altera, they've been lacking in anything competitive with Xilinx or Lattice at the lowest end, and this is compounded by not being able to use cheap SPI flash devices for configuration.Just did a quick search on Digikey & didn't see anything new in either respect.My FPGA jobs tend to 'only just ' need an FPGA, usually with a small amount of RAM.Compared to Xilinx XC3S50A, which appears to be their cheapest part, The ICE40 looks good, but the QFP100 has no PLL, which is probably a killer for this project - I only need maybe 40 pins, and want to keep it small, but not use BGA as it needs to be a 2 layer PCB.I used Lattice EC3 a while ago as it appeared cheaper than Xilinx, but after getting some 'real' price quotes the difference wasn't that much. Lattice had poorer availability. I found ISPLever subjectively quicker than ISE, but having to renew the free license every 6 months was annoying.I rarely bother with simulation so quick recompile time is a very major factor, and something with a fast compile would be a significant decider. The Icecube stuff looked fairly quick for the fairly trivial example code - about 25 seconds.IceCube doesn't seem to be properly integrated either - "Run all Tools" does NOT run the synthesiser, and there seem to be 2 editors - one within the synth and one in the IceCube GUI - bizarre!As far as I can see there isn't a single key that will do everything from a VHDL file change to generating a bitstream.

author: marshallh
author_rank: Unknown
timestamp: April 06, 2013, 09:17:19 pm
content: Quote from: mikeselectricstuff on April 06, 2013, 08:19:06 pmYes you have a good point there. Altera's cheapest fpgas are the Cyclone 2/3 series right now, EP2C5 runs about $12 in singles and $8 in volume. You can use certain commodity spi flash. EPCS4 = M25P40. Not M25VP40 (learned the hard way..)I will probably grab a ice40 eval board, you got me interested now.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 06, 2013, 09:32:40 pm
content: Quote from: marshallh on April 06, 2013, 09:17:19 pmThe smaller ones look very interesting - there are some under GBP1 at 100x. Unfortunately most of the small cheap ones are bga only, and some 0.4mm BGA to rub salt in the wound....From reading the data, they appear to have basically stripped out a lot of the more complex typical FPGA features like multiple IO types, down to just fabric, memory and in some cases a PLL or two.I just had a quick play to remind myself what ISE was like - creating new designs from nothing is really easy (unlike IceCube2) and compile time is comparable - I think my bad memories of ISE were due to the previous job that had some severe timing constraints and quite a few IP blocks. This is ISE13 - not tried 14.Lattice X02 also looks interesting - will have a go with Lattice Diamond to see how it compares

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 06, 2013, 10:57:20 pm
content: Lattice Diamond appears to be very similar to ISPLever, which also bore a very close resemblence to ISE.Compile time for the same simple VHDL is very close to that for ISE.The thing I hate about ISE is the download includes absolutely everything, most of which is stuff you can't even use on the free webpack version like IP and big devices. Some stuff like EDK can be stripped out after install but a lot of the bloat is device files that it checks on startup.At least Diamond lets you select which device families to install.Not tried ISE 14.x yet.

author: MacAttak
author_rank: Unknown
timestamp: April 07, 2013, 04:17:43 am
content: Don't get your hopes up on the bloat in ISE 14.I have 14.4 WebPack installed and it's sitting at 15+ gigabytes on disk. The download was 6+ GB.

author: mrflibble
author_rank: Super Contributor
timestamp: April 07, 2013, 03:36:52 pm
content: Those ice40hx's in TQFP package look quite interesting. Couldn't find detailed numbers for all the delays I was looking for, but what I could find doesn't look too bad at all.The PLL + VCO specs however... From the "iCE40™ LP/HX Family Data Sheet"Output Clock Frequency (PLLOUT) : 16 - 275 MHzPLL VCO Frequency: unspecifiedAnd then from another datasheet we have: "Up to 533 MHz PLL Output". So which one is it. 533 or 275? It may just be that 275 MHz + "does DDR" + "marketing" == Up To 533 MHz! Mmmh, although the "Up to 533 MHz PLL Output" datasheet does have it listed as PLL output frequency 16 - 533 MHz, so no DDR implied there. Curious.And also ...Quote from: marshallh on April 06, 2013, 09:17:19 pm

author: AndyC_772
author_rank: Super Contributor
timestamp: April 07, 2013, 04:17:50 pm
content: Quote from: mikeselectricstuff on April 06, 2013, 08:19:06 pmYes, you can - they just don't advertise the fact because an EPCS4 is much, much, much more expensive than a generic device of the same capacity, and they'd like to sell more of them.There are compatibility issues, I'm told, to do with the field upgrade mechanism built into the FPGA, but if you just want to program a target board using a download cable and have the FPGA configured from the Flash at power-up, then there's no issue.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 10, 2013, 10:08:40 am
content: Quote from: marshallh on April 06, 2013, 07:20:12 pmAs is the silicon, apparently...

author: mrflibble
author_rank: Super Contributor
timestamp: April 10, 2013, 01:21:45 pm
content: Any chance to play with the tools yet? If so ... good? bad? okay-ish?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 10, 2013, 02:41:02 pm
content: Quote from: mrflibble on April 10, 2013, 01:21:45 pmOnly compiled one of the 2 sample designs. Can't really tell much from that. Creating new projects seems a little non-obvious.These devices not useable for my immediate requirement due to lack of PLL (Unless we go to BGA), so will probably use Xilinx this time. but will play at some point as pricing is very interesting.

author: lgbeno
author_rank: Frequent Contributor
timestamp: April 10, 2013, 03:21:05 pm
content: The altera has loosened up on the spi config stuff. The FAE that I work with says its all good and I know of at least one product in production that is using ithttp://www.spansion.com/Support/Application%20Notes/Configuring_Altera_FPGAs_via_SPI_Flash_AN.pdf

author: lgbeno
author_rank: Frequent Contributor
timestamp: April 10, 2013, 03:22:01 pm
content: Lattice parts look really cool for low end fpga stuff by the way. Kits are affordable too.

author: mrflibble
author_rank: Super Contributor
timestamp: April 10, 2013, 03:41:25 pm
content: Yeah, it's a bummer that the HX1K in VQFP package doesn't have a pll.Otherwise it would have been real neat. On the even lower on of the scale that LP384 in QFN-32 package looks quite interesting. Plonk it on a board with say an stm32 to provide a 100 MHz clock. Not super fast, but enough for a lot of things. Besides, you can always use the negedge as well for some critical bits and get frowned upon.

author: Marco
author_rank: Super Contributor
timestamp: April 11, 2013, 03:25:40 am
content: What's wrong with 144 pin TQFP? The ICE40HX4K comes with 2 PLLs in that package.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 11, 2013, 08:07:39 am
content: Quote from: Marco on April 11, 2013, 03:25:40 amFor this project I only need about 30 I/Os, and don't want to take up more board space than necessary & want to keep to 2 layers. More expensive than a 100 pin Xilinx or other Lattice parts in 100 pin.

author: marshallh
author_rank: Unknown
timestamp: April 14, 2013, 02:22:50 am
content: I blame Mike

author: joelby
author_rank: Frequent Contributor
timestamp: April 16, 2013, 05:23:24 am
content: Cool, the LatticeECP3 kit is very good value for money when it's on special ($99).Would you mind telling us what the deal is with licensing for the software tools? I couldn't figure out if it was perpetual and locked to the board/device, or if it was only for a limited time, after which you had to buy them? Does the license include all of the IP cores (e.g. PCIe)?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 16, 2013, 08:28:03 am
content: Looks like licenses are 1 year, node locked to the PC's MAC. Not looked at IP but the fancier ones tend not to be free IME. No obvious restriction on requesting multiple licenses for different PCs

author: chickenHeadKnob
author_rank: Super Contributor
timestamp: August 23, 2013, 02:16:23 am
content: Hi all, Brutal thread resurrectionBUMPsorrySo what is the verdict now? I found this thread because I was researching the HK4K 144pin, probably for the same reasons as you guys, I want a small scale FPGA which can haz PLL and fast clock delay line taps.Best regards

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 23, 2013, 08:05:56 am
content: Quote from: chickenHeadKnob on August 23, 2013, 02:16:23 amICE40, though cheap seems a little too stripped down, so savings may be eaten by additional external parts. Could be useful step up from CPLDs. The OTP memory is a bummer. I think it has some good features for low power, but I've not had the need to look at that.I really like the Lattice XO2 devices - onboard regulator, flash and oscillator (though not very accurate), and a wide range of sizes through the range. It could REALLY do with a few more lower-end package options in the 48 to 64 pin range though.I'm currently looking at something using the QFN32, but it will be a squeeze - a 640 in a QFN/QFP48 would have been ideal.

author: Marco
author_rank: Super Contributor
timestamp: August 26, 2013, 04:24:05 pm
content: They have a new low cost evaluation kit out BTW.http://latticesemi.com/Home/Products/DevelopmentBoardsAndKits/iCEstick.aspx

author: lorth
author_rank: Contributor
timestamp: September 02, 2013, 06:12:37 am
content: Have you check Microsemi's/Actel FPGAs ? I don't remember now the proASIC3 if they have non BGA, which I think they do, but the igloo do...No need for external programing, low standby power...

author: mrflibble
author_rank: Super Contributor
timestamp: October 25, 2013, 11:23:48 am
content: Quote from: Marco on August 26, 2013, 04:24:05 pmYup, mine just arrived this morning. Thought I'd give it a spin, but no luck getting a license today it would seem.http://www.latticesemi.com/Support/Licensing/DiamondAndiCEcube2SoftwareLicensing/iceCube2.aspxhttp://www.latticesemi.com/Support/Licensing/DiamondAndiCEcube2SoftwareLicensing/DiamondFree.aspxhttp://www.latticesemi.com/Support/Licensing/DiamondAndiCEcube2SoftwareLicensing/Versa.aspxhttp://www.latticesemi.com/Support/Licensing/DiamondAndiCEcube2SoftwareLicensing/DiamondSubscription.aspxAll say three-o-two FU!On a hunch I just tried same as above on https, but no dice either. Tried on several browsers. Not that it would matter with a 302, but what the hell. Wayback machine doesn't point to any recent booboo's either (same urls in august 2013), so I don't get it. Basically it just looks like someone forgot to deploy a few files.Or rights on folder, since this looks like windows monkeys. I would bet $10 on incorrect rights on the DiamondAndiCEcube2SoftwareLicensing folder. Anyone got an internal phone number of whoever does lattice's website?Wait, make that a $25 bet. That would cover for the icestick.Other than that, has anyone recently obtained a license from Lattice?I wonder what is faster, mailing them to fix it so I can get a legit license, or google translating a few chinese sites for a "fix".

author: mrflibble
author_rank: Super Contributor
timestamp: October 25, 2013, 11:37:03 am
content: Well, it's not that folder either.*hands over $25 to other self*

author: mrflibble
author_rank: Super Contributor
timestamp: October 25, 2013, 12:31:25 pm
content: loooool. Okay, so license request page doesn't work. Best tell their support team about it then!Online Technical Support: Click here to create and submit your technical support casehttp://www.latticesemi.com/ocm*urgle!*classic.Oh well, I'll give it another go after the weekend.

author: mrflibble
author_rank: Super Contributor
timestamp: October 30, 2013, 08:32:31 am
content: Quote from: chickenHeadKnob on August 23, 2013, 02:16:23 amWell, for this price level the clocking resources are pretty good. I mean, it's got a PLL. Nuf said.Things like FF toggle rate are a bit low (256 MHz max), but VCO frequency is quite decent (533 MHz max). And quite interestingly they have local clock inversion, which I've not seen before on this type of el cheapo fpga. So on the models with 2 PLL's you could generate 4 staggered clocks (0,90,180,270 degrees) at say 500 MHz which is quite nifty. Then with some clock enables you'd clock the FFs at 250 Mhz.Oh and they have 150 ps step size for the delay adjust. Not super, but again ... for this price level that's damn nice.As for tools, I just spent some time playing around with it. After I told the licence dude/dudette my favorite color and underwear preferences they favored me with a license.Short version:Tools are a bit of a mixed bag, but overall definitely positive.Pending any suckage level updates where applicable.Long version:The icecube2 gui definitely feels a little klunky. Earlier on Mike described it as "a bunch of random tools held together with sticky tape", but he was being generous. They probably started out with the intention of using sticky tape, only to find out they were all out of tape. So they used hot glue for some parts, but then the glue gun went *ffzzzt* and they had to tack the rest together with silly putty and hope for the best. The internal editor ... has no syntax highlighting. Seriously?The workflow is not super, but not as bad as was mentioned earlier. For the icestick board I could just download the kit design files and use the project files. Press the magic BUILD EVERYTHING & STUFF button and off we go. Runs everything, including generating the .bin file. The floorplanner is rather limited. It's just about enough to inspect for correct placement but that's about it. No tcl scripting to quickly select your fav resources + do some highlighting. You can drag & drop to fuck up your placement constraints, but not sure yet if I like it.The BIG WIN for me is that itdoessupport SystemVerilog for synthesis. Yay! Of course the silly putty gui doesn't support it. That would just be too easy. But they do use synplify pro as backend, and you can also run the gui. You can even run the gui at the same time and do a batch run, something that's not always possible with some of the free licenses. So basically the mission is to use icecube to cobble together a project and then get into synplify pro as quickly as possible. At least there you have a decent environment (oh look, syntax highlighting). And as said, the free license comes with sysv support.Integration between synplify & icecube is what you would expect for silly putty. Should youreeeeaaaallylike the icecube gui, you can also enable SystemVerilog for that flow. You'll have to manually edit the project file to change the verilog mode from v2001 to sysv. But basically you'll want to do everything in synplify except for floorplanning. Well, and the pll wizard generator thingy.And of course simulation justhasto be total shit.They use Aldec, which means windows only. No biggie, but it would have been nice if they used modelsim. But oh well, can't complain for a free license. Besides, it looks like modelsim is also possible, but I still have to do the simulation library dance...Anyways, icestick (ICE40HX1K, aka TQFP144 package with 1 PLL) ... only $25 at digikey/mouser. You know you want to!

author: Stonent
author_rank: Super Contributor
timestamp: October 30, 2013, 08:57:47 am
content: Quote from: mrflibble on October 30, 2013, 08:32:31 amI know I want to! That's the problem! I always want to!I can thow it on the stack of $25 eval kits I already have that have never been used except being powered up one time.MSP430 Chronos WatchStellaris LaunchpadTiva C Launchpad (later to find out it was a Stellaris basically)C2000 LaunchpadOther:Atmel SamplesNoritake VFD SampleMSP430 Launchpad (I have used this a few times)On the way now:A couple of ATMega48v QFPsOn the way soon:$20-$25 worth of passives, transistors, op-amps, logic chips from TaydaCurrent:Actually see if my Velleman PIC Programmer that I built worksFinal wiring of my Geiger Counter and BNC InstallationBuild an XR2206 function generator circuit on protoboardHOLY CRAP I had no idea how much many hobby projects I had!

author: mrflibble
author_rank: Super Contributor
timestamp: October 30, 2013, 01:04:19 pm
content: Quote from: Stonent on October 30, 2013, 08:57:47 amI'm sure you're not the only one who has more fun projects than time.QuoteI only recently found out about Tayda, and their interesting pricing. Doh! Did you notice any particularly interesting tidbits while shopping?

author: Stonent
author_rank: Super Contributor
timestamp: October 30, 2013, 07:05:29 pm
content: Quote from: mrflibble on October 30, 2013, 01:04:19 pmThey are apparently quite popular with DIY guitar effects pedal enthusiasts. While doing research on Tayda I found numerous guitar related sites referring people to them. That explains why they have all those foot sized cast aluminum enclosures and knobs that are replicas of ones made by Marshall and other guitar related companies. They also have many more foot activated switches than you would think a site would normally have.I'm beginning to think that my local electronics store uses Tayda as a supplier because they seem to have the same knobs, trimmer pots, and more interesting things that seem too much a coincidence. Tayda sells ST branded 2N3055 transistors for $0.99 and they sell the same ones for $1.49. In fact there seems to be pretty much a 50 cent price differential on nearly every part that they seem to have in common.Tayda is also the first site that I've seen that lets you buy items less than 1 cent each in quantities of 1.They don't have a really good supply of microcontrollers and no programmable logic devices. Their logic chips seem to cover the most popular items.No plastic project boxes though, I really would like some of those. I've been looking for project boxes but don't want to spend 5 to 7 dollars on an enclosure for an adjustable 555 timer circuit that cost me $1 to make.15% Discount Coupon Code : 888444Valid till 2 November 2013 ( 6pm New York time )

author: mrflibble
author_rank: Super Contributor
timestamp: October 31, 2013, 06:06:28 am
content: Quote from: Stonent on October 30, 2013, 07:05:29 pmYeah, I noticed that as well while googling. Apparently stomp boxes are a popular thing.QuoteHeh, I had something similar while buying knobs on ebay. I justknewthose ebay stores were going to be a proxy for some cheaper place. But I couldn't find it so screw it, I will pay a little stupidity tax. At least that way I'll have some rotary encoders with colored knobs, and can get on with the project. And of course a few daysafterthat ebay order I find out about Tayda.Typical.The aluminum enclosures actually look pretty interesting. Maybe not for a $1 project, but a $5 box for a $20 - $50 in parts + pcb project looks quite doable. Well, more than $5 after shipping, but still nice.QuoteYup. And mosfet pricing looked interesting as well. Too bad they don't have any smd caps in the 1uF - 10 uF range, because I could use some.QuoteThanks!And to keep it a bit ON topic as well: I've been playing some more with that icestick + toolchain, and I definitely like it. The icecube software itself is a bit silly, but if you supplement it with synplify then it's quite nice. For example, icecube doesn't even have an RTL view after synthesis.But luckily you can do that in synplify.The pin constraints editor is not exactly great, but once you know it's "features" it's quite usable. What is rather stupid is that you firsthaveto do a synth run before you can assign a pin location. Yeah, as if I don't know where this signal is going right at the moment I am adding it to the top level module. But oh well.

author: denizcan
author_rank: Regular Contributor
timestamp: November 07, 2013, 11:52:09 pm
content: Talking about BGA and cheapness. The following is 1 in stock:http://www.digikey.com/product-search/en?pv1291=757&FV=fff40027%2Cfff80166&k=xilinx&mnonly=0&newproducts=0&ColumnSort=0&page=1&stock=1&quantity=0&ptm=0&fid=0&pageSize=25Anyone want the final one?I'll track it's stock level. And I am really interested to see the project in which this chip is used..

author: jipihorn
author_rank: Contributor
timestamp: December 20, 2014, 04:41:19 pm
content: Hello,I dig up this one, because I got one of these iCE40-HX8K boards and I wonder if anybody could, at last, program them.The Diamond programmer does not recognize the USB port, although it is listed in the device manager (I use Windows 8.1). It's a FDTI chip and it is recognized as a COM port. But, after hours and hours of research, I couldn't use this board.I always have the same message :ERROR - Failed to Open FTDI USB port. Make sure to select the right cable type.And, curiously, it detects two "cables" or "FTDI USB Host chips" whatever that means - I only have one usb cable connected. In any case, none of them works. It's beyond understanding, nothing make sense. I have the impression to have some 80's bag of stuff without any coherence.The software development platform is a pure mess. They ask to install iCECube, Diamond without saying exactly which one is used for. All I can find is that Diamond is used only for programming (using the standalone programmer) and ICECube is the actual development tool. What a mess.Only one sample code (a blinking led) without any documentation. Bus, as I couldn't even program something, it's pretty useless.It'a a pity, I was searching for a small FPGA solution (with tqfp package) and it's absolutely useless.Jerome.

author: Howardlong
author_rank: Super Contributor
timestamp: December 26, 2014, 09:06:52 am
content: This was pretty much my experience a few weeks ago. I thought I'd try out an ICE40 and a MACHXO2 eval board.Firstly they use two different, but similar looking, IDEs/toolchains for some weird reason.Obtaining a license file seemed obvious, but wasn't, I read the docs which said I needed to send an email to request one, how quaint. A couple of days later I had a reply with a URL to do it through a web page.I had to keep swapping license files around to switch betwen the two IDEs. i am sure you can avoid that if you invest time in hacking a combined license file or something, but it's just another reason to lose interest.The documentation only seems to be aimed at getting you to a very limited point, but no more.But the key point as you say appears to be that you can't actually program the device.At the point where it seemed I was going to have shell out $150 for a programmer I lost interest.Is the Diamond programmer the only way of programming these device, or can I use one of the half dozen or so JTAG devices I have accumulated?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 26, 2014, 09:28:14 am
content: Quote from: Howardlong on December 26, 2014, 09:06:52 amCan't comment on the ICE40 stuff but Diamond license generation is automatic - web request, emailed to you immediately.The whole ICE40 was bought from SiliconBlue, hence the seperate devtools.

author: jipihorn
author_rank: Contributor
timestamp: December 26, 2014, 02:35:29 pm
content: Quote from: Howardlong on December 26, 2014, 09:06:52 amHello,Getting licenses was the one of the few task that went well.As far I could tell, it is the way to program these. The iCE40 chips are listed into the available devices with all sorts I2s flash memories (the kit uses a Micron one). This seems to be adequate for the job, but only if a connexion could be done.The only thing I could do was to open a ticket at Lattice. The back and forth mailing has only begun ("have you to tried to turn it off and on again ?"), but at least I could get an answer quickly from Lattice, even for a cheap kit. Perhaps I was unlucky to get a PCB with a fault.But I don't even understand the usb logic and this "double cable" stuff.Jerome

author: Howardlong
author_rank: Super Contributor
timestamp: December 27, 2014, 06:05:16 pm
content: Ok, many thanks for the responses. I hadn't realised that ICE40 was a buy out.The boards I have are:XO2-7000HE breakout boardLCMXO2-1200ZE-P1-EVN LCD I2C Pico boardICE40HX1K-BLINK-EVNBefore I try again, do I need a separate programmer for these to be able to save my own stuff (non volatile) on them, and if so does it have to be the Lattice unit? I could get the demos to run but that was where it seemed to end.Many thanks.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 27, 2014, 06:11:55 pm
content: Quote from: Howardlong on December 27, 2014, 06:05:16 pmThey all have onboard programmers

author: Howardlong
author_rank: Super Contributor
timestamp: December 28, 2014, 07:58:12 am
content: Thanks for confirming Mike, I guess I'll have another shot.Howard

author: Howardlong
author_rank: Super Contributor
timestamp: December 28, 2014, 01:04:53 pm
content: I've spent all morning on this now, with about an hour fruitlessly battling with the FTDI driver which was probably a waste of time now as I don't think that's the problem.I've now tried the Lattice Diamond IDE on three different physical machines, all Windows 8.1, two x64 and one x86.The version of the IDE is 3.3.0.109, with the x64 and x86 machines installed with the respective versions (x64/x86) of Lattice Diamond.Neither of the x64 machines work: the programmer is not properly recognised. The error is the same on both x64 machines, in that the FTDI programmer is detected but the JTAG communication fails. The x86 install howeverdoeswork.On all three machines, the programmer is enumerated and installed in Device Manager as the following:- USB Serial Port (COMx)- USB Composite Device- USB Serial Converter A- USB Serial Converter BThis is the Output pane in the Lattice Diamond IDE on the failing x64 boxes:Code:Lattice VM Drivers detected (HW-DLN-3C (Parallel), HW-USBN-2B (FTDI))Starting: "prj_src add -exclude "C:/myprojects/lattice/xo2picodevelopmentkitsourcecode/Demo_MachXO2_Pico_Environment_Scanning/project/impl1/impl1.xcf""INFO - Scanning USB2 Port FTUSB-0...Programmer device database loadedERROR - Scan Failed - Creating Blank Programmer Project.Starting: "pgr_project save "C:/myprojects/lattice/xo2picodevelopmentkitsourcecode/Demo_MachXO2_Pico_Environment_Scanning/project/impl1/impl1.xcf""ERROR - Failed to Open FTDI USB port. Make sure to select the right cable type.If you have not installed the FTDI Windows USB Driver, follow the instructions in the Programmer Help topic:"Installing/Uninstalling Parallel Port Driver and USB Driver".If you have installed the driver, if you recently plugged in the cable, please wait a few seconds and try again.This will give the operating system time to recognize the cable.Starting: "prj_src enable "C:/myprojects/lattice/xo2picodevelopmentkitsourcecode/Demo_MachXO2_Pico_Environment_Scanning/project/impl1/impl1.xcf""This is the log from the Debug Mode dialogue's Test button:Code:Lattice Semiconductor Corporation.Diamond Programmer Diamond (64-bit) 3.3.0.109 (Database V3.3.0)System Information:-----------------------------------------------------Microsoft(R) Windows(R) 864-bitIntel(R) Core(TM) i7-3820QM CPU @ 2.70GHzError communicating with FTUSB cable.JTAG_InitDevice function: Invalid device handle.Failed to Open FTDI USB port. Make sure to select the right cable type.If you have not installed the FTDI Windows USB Driver, follow the instructions in the Programmer Help topic:"Installing/Uninstalling Parallel Port Driver and USB Driver".If you have installed the driver, if you recently plugged in the cable, please wait a few seconds and try again.This will give the operating system time to recognize the cable.Cable Auto Detection Activated.Current LPT Port Mode: Config(It's recommend that the LPT Port Mode be changed to "SPP" mode by using the Cable and I/O Port Setup->Auto Detect.)No cable detected at 0x378Current LPT Port Mode: Config(It's recommend that the LPT Port Mode be changed to "SPP" mode by using the Cable and I/O Port Setup->Auto Detect.)No cable detected at 0x278Current LPT Port Mode: Config(It's recommend that the LPT Port Mode be changed to "SPP" mode by using the Cable and I/O Port Setup->Auto Detect.)No cable detected at 0x3bcNo Lattice HW-DLN-3C (parallel) cable detected.No Lattice HW-USBN-2A cable detected.Board with FTDI USB Host Chip detected.Error communicating with FTUSB cable.JTAG_InitDevice function: Invalid device handle.Failed to Open FTDI USB port. Make sure to select the right cable type.If you have not installed the FTDI Windows USB Driver, follow the instructions in the Programmer Help topic:"Installing/Uninstalling Parallel Port Driver and USB Driver".If you have installed the driver, if you recently plugged in the cable, please wait a few seconds and try again.This will give the operating system time to recognize the cable.I'm going to try it on a couple of VMs (previous tests were on physical hardware), but right now, judging also from a number of other very similar reports both here on Eevblog and elsewhere I think there may be a more fundamental problem.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 28, 2014, 07:50:47 pm
content: I have had issues when there have been other FTDI devices plugged in. Don;t recall details.Don't bother using the Diamond programmer - use ISPVM - it's typically twice as fast. No idea if it's more or less twitchy than Diamond but I've rarely had any issues with it on XP or Win7

author: Howardlong
author_rank: Super Contributor
timestamp: December 28, 2014, 09:15:53 pm
content: Yes I saw you'd mentioned that earlier, and they were removed, sorry I should have mentioned that.So, among other things today(!) I installed the same software on three virgin OS install VMs: Windows 7 x86, Windows 8.1 x86 and Windows 8.1 x64. Both x86 installs worked. The x64 doesn't.So I'd be interested to know if anyone has the Diamond software running under Windows 8.1 x64.For now though, I guess I'll run it on an x86 VM. Not great, but not a show stopper. All in all a bit rubbish, spent a couple of days on figuring this out, and have yet to write a single line of code.

author: jipihorn
author_rank: Contributor
timestamp: December 29, 2014, 07:54:45 am
content: What a surprise !I have the same kind of error on a WIN8.1 x64 system with my iCE40 card...I just received the last answer from Lattice who think I tried to program via JTAG instead of SPI. Except that I did exactly what they explain me to do and they don't seem to understand that it is a usb connection problem.Sounds like a "dialog of the deaf" (I wonder if this expression is valid).J.

author: Howardlong
author_rank: Super Contributor
timestamp: December 29, 2014, 02:04:31 pm
content: Perhaps interestingly the iCEcube2 programming works on my main Windows 8.1 x64 development system, although I do have enforced device signing switched off (for the avoidance of doubt, the MACHXO2 FTDI based programmers don't work).FWIW, the on-board programmer for the iCEBlink40-HX1K eval board I have is not FTDI, it's an Atmel microcontroller. It enumerates differently on USB in device manager to the MACHXO2 boards I have.For the MACHXO2, I tried the Lattice Diamond IDE on Windows 8 x64, that didn't work either. Looks like there's a problem in at least Windows 8/8.1 with the Lattice Diamond 3.3 x64 version.

author: jipihorn
author_rank: Contributor
timestamp: January 02, 2015, 09:26:27 am
content: I got a new response from lattice about a problem of compatibility of the Diamond 3.3 programmer and windows 8.1.They sent me alink to the previous version(3.2) with only the programmer, not the whole Diamond stuff and it works now.So, no problem with X64 machines as long as you use the 3.2 version, until they fix the last one for windows 8.1.Jerome.

author: Howardlong
author_rank: Super Contributor
timestamp: January 02, 2015, 10:46:26 pm
content: Doh! Another few hours of our lives lost. Thank you for the update and link, appreciated.

author: tmbinc
author_rank: Frequent Contributor
timestamp: January 05, 2015, 08:31:01 pm
content: Yay! Thank you very much!Had the same "JTAG_InitDevice function: Invalid device handle." on the LatticeECP3 Versa, and indeed, programmer 3.2 does work. For reference, it's FTUSB-0 on that board (channel 1 is the serial port connected to the FPGA).

author: Howardlong
author_rank: Super Contributor
timestamp: January 05, 2015, 09:25:43 pm
content: Yes, I can confirm that on Windows 8.1 x64, the standalone 3.2 programmer software works with the MACHXO2 breakout board and the MACHXO2 Pico board, both use integrated FTDI programmers.Sadly, the 3.3 IDE integrated programmer still doesn't work, not sure if it's possible to either integrate the 3.2 programmer with the 3.3 IDE (I did try copying a few DLLs from one to the other but I've since undone that, it was causing more problems than solutions), or if it's possible to get the 3.2 IDE. I have been unable to find archived versions on their website which is unfortunate.Either way, it seems that we can safely conclude that something's regressed in the 3.3 Lattice Diamond IDE for Windows x64 versions. Regretfully, therefore, it's not been a good start for me with Lattice :-(Good work everyone for figuring this out!

author: sporadic
author_rank: Regular Contributor
timestamp: January 07, 2015, 08:11:20 pm
content: I've been wanting to learn FPGAs for some time now, and the price of the iCE40 chips intrigued me. High speed glue for multiplexing a few IO lines is what I'm looking at for my starter project. I've downloaded iCEcube2, but I'm having a very hard time finding any tutorials on the toolset. I've been going through the user's manual getting an example project going, but am having issues figuring out how to start from scratch. Simple newbie things like creating the constraint files. I know I'm lacking some fundamental knowledge, but how do I create these files within the tools itself? Or are they supposed to be created externally and imported?

author: Howardlong
author_rank: Super Contributor
timestamp: January 07, 2015, 11:52:44 pm
content: Agreed, a step-by-step guide just to do a blinky would be nice. Surely it can't be that hard?

author: mc
author_rank: Regular Contributor
timestamp: January 10, 2015, 06:51:11 pm
content: I've not even looked at the ice toolchain, however IMO tutorials and documentation is where Lattice fails.I've got a MachX02 board, and I've pretty much given up with it, as tutorials are minimal (I ended up finding some random one via googling that at least got me flashing a light), and documentation seems to be non-existent.When I get time, I'm going to get either an Altera or Xilinx board, as tutorials for them seem alot more plentiful, then I might venture back to Lattice.

author: sporadic
author_rank: Regular Contributor
timestamp: January 12, 2015, 01:40:23 pm
content: Quote from: mc on January 10, 2015, 06:51:11 pmThis is the route I decided to take. Grabbed an iCEstick on my last Mouser order, but picked up one of those cheap (<$20) Cyclone II dev boards from eBay to get my feet wet.