Ubuntu is by many accounts the most popular and the easiest to use Linux distribution for the desktop. Unfortunately for Linux enthusiasts, Cadence tends to follow the EDA Industry OS Roadmap when selecting operating systems to support.
I would guess that it's a fairly common problem that users don't want to use one of the two primary Linux platforms, Red Hat Enterprise Linux (RHEL) or SUSE Linux Enterprise (SLES). Most of the time it's because these are not easily available. From time-to-time questions appear on the internal Incisive AE e-mail traffic about clone distributions like CentOS. There are also community options like Fedora and openSUSE that are similar to the "official" EDA operating systems. Personally, I have used openSUSE quite a bit in the past.
Verification engineers probably work on remote machines a fair amount of the time using tools like VNC (I also use TightVNC) and NoMachine NX, but working on the desktop is also a popular use model for many tasks. If you are going to work on a Linux desktop or laptop it seems to make sense to want to try the most popular desktop distribution, Ubuntu.
Today, I have a few tips for running Incisive on Ubuntu. I recently gave it a shot by downloading the Ubuntu 9.10 CD .iso file to my computer. First, I installed VirtualBox to host a Ubuntu Virtual Machine. The Ubuntu installation is very easy since VirtualBox can install directly from the .iso file; there is no need to actually burn a CD-ROM. Ubuntu is also nice because 1 CD takes care of everything and it's very easy to add software later (as we will see). If you have questions on the details of using VirtualBox please feel free to post questions, I'm not going to include all the details here. It probably took about an hour to download and install.
After the Ubuntu installation was complete I went to downloads.cadence.com to get InstallScape, the Cadence software installation tool. I won't document all the details, but it was no trouble to extract InstallScape using:
% uncompress < ~/Downloads/IScape03.71-s001lnx86.t.Z | tar xvf -
and then running it using:
% iscape/bin/iscape.sh
I installed INCISIV92 as normal. It actually takes a lot longer to install Incisive than Ubuntu so I let it download over night. When the installation ended and I got to the "configuration" step errors had occurred. Some of the shell scripts had failed. Here's the screen shot:
The first reason the configuration fails is because Ubuntu does not use bash for /bin/sh but instead uses a different shell called dash. The reason for it seems to be mostly about boot speed. Booting fast is good, but Incisive uses a lot of shell scripts which are not compatible with dash. A little reading shows dash is a POSIX compatible shell and while the creators of Ubuntu regret that your scripts might not be POSIX compatible, they feel the solution should be to fix the scripts. Well, I cannot fix all the Cadence scripts (maybe somebody reading this can) so I just avoided the issue altogether by putting /bin/sh back to bash instead of dash as shown in the screen shot below. I guess I have a slower boot time now.
There is more reason why the configuration fails. There are some scripts using /bin/csh. C-shell is not installed by default on Ubuntu, but it can be easily added using
% sudo apt-get install csh
Now the configuration runs fine. Here is the result:
I added a few lines to my .bashrc to setup my PATH and I was ready to give it a try.
I didn't find any issues at all with the ncsim part of Incisive on Ubuntu, everything worked as expected.
A few trials with Specman revealed that specman uses /bin/ksh. This was easily remedied by:
% sudo apt-get install ksh
I also found specman uses /bin/basename which is located at /usr/bin/basename on Ubuntu. Since there are multiple files relying on /bin/basename I decided to not try to edit them but instead make a link to take care of it by going to /bin and doing:
% sudo ln -s /usr/bin/basename basename
The same is true for /bin/sort, on Ubuntu it's located in /usr/bin/sort
% sudo ln -s /usr/bin/sort sort
Here is a screen shot of running the ISX example that is included with Incisive, for those that want to run it use:
% `sn_which.sh ex_gsa_oc_soc_lib`/demo.sh
In conclusion, just because Incisive is not supported on Ubuntu doesn't mean that it doesn't work. I didn't test everything nor do I claim that Ubuntu is a fully tested and supported platform by Cadence (because it's not), but I have shown that Incisive does work on Ubuntu, the most popular desktop Linux distribution. If only I could just do
% sudo apt-get install incisive
Oh well, maybe someday.
Probably the worst thing about Ubuntu is the color scheme clash with the Cadence Red scheme. I think my next step is to change the theme so it doesn't hurt my eyes so much. This unsightly mix is probably one of the primary reasons why Ubuntu is rumored to be changing the default colors to something based on gray as the default color scheme.
Jason Andrews