Category Archives: FPGA / Verilog / HLS

Dream Source Labs… so you thought Saleae sucked

When you untar the archive and everything’s marked executable, you know you’re in for a hard time. There is nothing easy or convenient about this thing.

Having said that it does work with Sigrok and Sigrok knows a lot of protocols. PulseView (the GUI front end to Sigrok) is okay but for heavy lifting you probably want sigrok-cli.

I just found it difficult to put the firmware (gateware for the FPGA) in the correct place–why don’t these things (Saleae’s the same way) just store the FPGA gateware in flash? Lastly, there are some things I like better about the Saleae’s software.

What, Lattice Diamond has Synopsys?

Uh… yes please.

Okay here’s how to get Synopsys working on Ubuntu. Lattice Diamond (and I suspect Synopsys too), officially, only runs on Red Hat. See my earlier post to work around that. Now most things seem to work for meperhaps I’m being generous; Diamond, like most (all?) IDEs is a POS. Whilst pulling my hair out screwing around with LSE I stumbled across a Lattice tutorial explaining how make sure your using LSEand becoming indoctrinated in Lattice’s worldbut, wait, that would imply one has a choice of Synthesis tools. Hmmm, what’s this reference to SynplifyPro? A quick search later and oh that’s Synopsys, an industry standard, the next best thing to an open source Logic Synthesizer! Oh hell yeah, I’ll be using this! …and then it failed.

…and a few more similar errors. The problem is that Diamond actually runs Synplify via scripts. When a script begins with !#/bin/sh RHEL, through the magic of soft links, actually uses bash whilst Ubuntu uses dash. That’s a problem and here’s the fix…

This will find all the files that contain “#!/bin/sh” and change them to “#!/bin/bash” and voilà! Now I’m not stuck learning Lattices’ proprietary crapI’ll take Synopsys’s proprietary crap over lattices’ any day 🙂

Installing Lattice Diamond on Ubuntu 18.04

Use Alien to convert the rpm to a Debian package:

Use dpkg to install the resulting deb package:

Use alien to convert the service pack(s) to Debian Packages, if you see things like “bad interpreter” then you may need to install things like csh, here is an example below:

fail. …so install csh and try again:

That did it for me, look in /usr/local/diamond. Enjoy! Personally I hate IDEs so I tend to use vi for all but trivial editing sessions but it works.

Persistence (bloody mindedness) Pays Off

Update: Found a better way to do this!

Well, I loaded the Windoze version in to a VM. This was instructive in that Diamond looks almost as bad in Tonka Toy 10 as it does on Linux. So I kept poking at the app and finally found the very unintuitive way to get it to compile. I then poked at the programmer for about an hour and got it to do something other than throw meaningless and useless errors referencing Windows–I got it to flash the MachXOLF Starter Kit. Er… success…? Okay, yeah it works.

Hey Lattice, have you noticed a surge in sales of the ICE40 line?! Ya know the line that the open source community has reversed the bitstream of. People can use IceStorm (really I mean icestorm, arachne, yosys et al) on those FPGAs. Now, I have no doubt that Synopsys, BoolDozer, Cadence etc. have better tools but several thousand per seat is a big barrier to entry. For many of us we hate IDE’s. We are perfectly happy with say vi, or Emacs, or whatever text editor, and a make file. So for most of your product line I have to choose between your crappy IDE or something I can’t afford. But for the ICE40 line I have an additional choice. Here’s a suggestion: How about you concentrate your limited resources on making better FPGAs and leave the development tools and weird lawyer enriching contractual crap behind. Or just keep doing what your doing (and wasting resources), we’ll eventually reverse the rest of your product line and if your still in business (and not part of “communist” China) you’ll be forced to evolve anyway. Hmm Latice, maybe you could lead Xylinx and Altera for once.

Lattice Diamond was Written in Crayon

I have spent about a day trying to coax Lattice Diamond in to programming a Mach OX3. Maybe the Windows version is useable but really Windows, no thanks I’m working here. The upshot is this: if you need anything outside the ice40 series–for which there are open source tools that one can find by searching IceStorm–then it’s time to move on to Xilinx or Altera. Quartus uses a version of Synopsys and, more to the point, it is usable.

Altera Cyclone 4 DE2-115

Ordered this from Taiwan to follow Bruce Land’s ECE5760 FPGA course.

IDE = bad, Synopsys = good

Altera FPGAs are being integrated into newer servers. For now they are accessed via a PCIe lane, I’m wagering they move closer to the CPU and eventually wind up on die.