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 me—perhaps 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 LSE—and becoming indoctrinated in Lattice’s world—but, 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.
synplify pro: 137: [: unexpected operator bash sh redhat ubuntu
…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…
root@xps13:~# cd /usr/local/diamond/3.10_x64/synpbase
root@xps13:/usr/local/diamond/3.10_x64/synpbase# for file in grep -lRsI "/bin/sh" *; do sed -i -e 's/#!\/bin\/sh/#!\/bin\/bash/g' $file; done
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 crap—I’ll take Synopsys’s proprietary crap over lattices’ any day 🙂
root@xps13:~# dpkg -i diamond-3-10-sp3-x64_3.10-145_amd64.deb Selecting previously unselected package diamond-3-10-sp3-x64. (Reading database … 239294 files and directories currently installed.) Preparing to unpack diamond-3-10-sp3-x64_3.10-145_amd64.deb … Installing Diamond 3.10 SP 3… Unpacking diamond-3-10-sp3-x64 (3.10-145) … Setting up diamond-3-10-sp3-x64 (3.10-145) … /var/lib/dpkg/info/diamond-3-10-sp3-x64.postinst: /usr/local/diamond/3.10_x64/sp/cp_pack: /bin/csh: bad interpreter: No such file or directory Processing triggers for libc-bin (2.27-3ubuntu1) …
fail. …so install csh and try again:
root@xps13:~# apt install csh Reading package lists… Done Building dependency tree Reading state information… Done The following NEW packages will be installed: csh 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 243 kB of archives. After this operation, 358 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 csh amd64 20110502-3 [243 kB] Fetched 243 kB in 1s (405 kB/s) Selecting previously unselected package csh. (Reading database … 248012 files and directories currently installed.) Preparing to unpack …/csh_20110502-3_amd64.deb … Unpacking csh (20110502-3) … Processing triggers for man-db (2.8.3-2ubuntu0.1) … Setting up csh (20110502-3) … update-alternatives: using /bin/bsd-csh to provide /bin/csh (csh) in auto mode
root@xps13:~# dpkg -i diamond-3-10-sp3-x64_3.10-145_amd64.deb (Reading database … 248021 files and directories currently installed.) Preparing to unpack diamond-3-10-sp3-x64_3.10-145_amd64.deb … Uninstalling Diamond 3.10 SP 3… Installing Diamond 3.10 SP 3… Unpacking diamond-3-10-sp3-x64 (3.10-145) over (3.10-145) … Setting up diamond-3-10-sp3-x64 (3.10-145) … Processing triggers for libc-bin (2.27-3ubuntu1) …
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.