最近需要做一些集成电路设计相关的工作,研究了一下,还挺复杂。不过千里之行,始于足下,再复杂的东西也是一步步由简单的东西构建而成的。根据工作需要 ,安装了全定制集成电路设计软件IC617,下面记录一下过程。
由于virtuoso不支持windows系统,因此先安装了ubuntu18.04系统,并安装好jdk。如果懒得下载oracle jdk的,可以如下直接apt安装openjdk。
sudo apt-get install openjdk-8-jdk openjdk-8-jre
除此以外,还需要安装如下软件包
sudo apt-get install ksh csh xterm libncursesw5-dev libxtst6:i386 libxi6:i386 lib32ncurses5 lib32stdc++6 libstdc++5:i386
由于virtuoso支持的redhat enterprice linux和ubuntu还是有些不同,因此还需要做一些修改才能顺利安装。首先创建如下软链接
sudo ln -s /usr/bin/mawk /bin/awk
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /lib/x86_64-linux-gnu/libncursesw.so.5.9 /lib/libtermcap.so.2
然后在/etc文件夹中新增文件redhat-release,其内容为如下一句话
Red Hat Enterprise Linux release 6.12
这是为了让软件认为自己运行在red hat enterprice linux上。注意在/etc中创建文件需要root权限,因此完成后最好把权限修改为644
sudo chmod 644 /etc/redhat-release
接下来就可以开始安装了。首先下载安装文件,所有安装文件可在如下地址下载
https://pan.baidu.com/s/1Pq_ofvvDoV8u5jz1wZyQIg
提取码为:eern
注意下载后的文件是按安装在虚拟机上准备的,因此有一些文件是没必要的,实际上用得到的只有从03到10。此外,文件的排列顺序也就是实际的安装顺序,在安装前要对所有文件进行解压。因为04的两个压缩包是分卷压缩的,因此解压需要使用如下方法
cat 04.IC06.17.700_Base.zip* > 04.IC06.17.700_Base.zip
unzip 04.IC06.17.700_Base.zip
即先将两个分卷合并,然后再解压,否则可能遇到无法解压的情况。
进入解压后的03.InstallScape,可看到如下压缩文件,
该文件可用如下方法解压
zcat IScape04.23-s010lnx86.t.Z | tar xvf -
解压后得到如下文件
在此目录下执行如下语句即可开始安装。注意网上的帖子均安装在/opt目录下,因此需要root权限创建文件夹并修改权限。此处我直接装在当前用户目录下,故不需要root权限,而且以后的操作也都不再需要root权限。
iscape/bin/iscape.sh
选择IC617解压后所在目录,直接点击continue
选择要安装的程序,点击next
在安装过程中,配置环节会跳出窗口进行配置,可以按如下方式处理
安装完成后,点击done,回到主界面,此时可以点击cancel,重新选择软件包路径,继续安装MMSIM
接下来的安装步骤和之前安装IC617几乎完全一样。
同样在配置时会跳出窗口进行配置
至此安装完成,可如下查看当前系统安装的软件,然后退出iscape。此时,IC617和MMSIM都被安装到用户目录cadence/installs目录下。
接下来安装calibre,可以看到,解压后的calibre是个单独的exe文件。
由于运行该文件会直接把calibre安装在当前目录下,因此在cadence目录下创建一个calibre2015目录,将该exe文件复制或剪切进去。
接下来进入该目录下,运行如下指令
chmod u+x aoi_cal_2015.2_36.27_mib.exe
./aoi_cal_2015.2_36.27_mib.exe
第一句将文件变为可执行,然后第二句直接运行,按如下操作输入,即可完成安装。
如果出现下面的错误提示,mgc_install: not found,说明安装文件解压有问题。
可在如下网址下载install.ixl.zip文件,解压后和安装文件 aoi_cal_2015.2_36.27_mib.exe 放在同一目录下,更改权限为777(chmod 777 install.ixl),然后重新运行安装文件即可。
https://download.csdn.net/download/u014559935/12187860
至此IC617, MMSIM和Calibre2015均安装完成,接下来分别为其安装补丁。先进入07.cadence_patch解压后的文件夹,如下所示
执行如下指令打补丁
chmod u+x cadence.pat cadence_patch.sh sfk
./cadence_patch.sh /home/praise/cadence/installs/IC617
./cadence_patch.sh /home/praise/cadence/installs/MMSIM151
第一句为几个文件增加可执行权限,后面两句分别为IC617和MMSIM打补丁,注意./cadence_patch.sh后面是IC617和MMSIM的安装目录,不同的用户安装目录可能不同,要根据自己的情况修改。另外就是执行完后,可能会显示有几个错误(errors),不用理会,这是由于IC617目录中有链接到系统文件,打补丁时没权限所致,如果看着别扭,可以用sudo执行即可。
为calibre打补丁的过程类似,解压后的文件如下所示
将这几个文件复制到calibre安装目录下(此处为/home/praise/cadence/calibre2015),然后进入该目录执行如下指令对calibre打补丁(注意calibre的补丁必须复制到安装目录下运行,不能像IC617和MMSIM那样在解压后的目录下也可以直接运行)
chmod u+x patch_calibre sfk
./patch_calibre aoi_cal_2015.2_36.27
同样可能出现errors,但此处是由于无法对二进制文件(sfk和之前的安装文件aoi_cal_2015.2_36.27_mib.exe)进行读写所致,同样不用理会。
接下来安装license文件,解压后的cadence_license文件夹如下
直接将其中的license.dat文件复制到IC617 的license目录下即可(此处为/home/praise/cadence/installs/IC617/share/license)
同样的,将解压后的calibre_license目录下license.dat文件复制到calibre的license目录下(此处为/home/praise/cadence/calibre2015/aoi_cal_2015.2_36.7/shared/license),需要注意的是,此时license目录不存在,需要自己建一个。
打开该license.dat文件,将其中的HOSTID=000c294756b0替换为自己的mac地址。ubuntu18.04默认没安装ifconfig工具,可用如下方式查看自己的mac地址
ip address
# 或者
cat /sys/class/net/enp0s3/address
如果使用第二种方法的话,注意enp0s3是对应的网卡,可能每台机器的名字不一样,需根据自己的情况修改。
至此,就算安装完成了,只需要设置一些环境变量即可运行了。但为了不污染系统本来的环境变量,采用脚本的方式来执行。将09.bashrc解压后文件夹中的bashrc文件复制到合适的位置(比如新建一个工程目录project放进去或者放在用户bin目录下),改个名字(此处改为run_virtuoso)。
将该文件改为可执行
chmod u+x run_virtuoso
然后打开文件,修改其中的路径,主要修改的有如下几处(按照自己机器上的路径来设置)
注意上面倒数第二个图中(417,418行)的praise-VirtualBox是主机名,可用hostname命令查看。此外可以看出,该脚本实际上为多个软件设置了环境变量,其中有一些用不到,另外一些虽然将来会用到,但现在暂时先不理会,在后续文章中再处理。
此时,我们可以通过运行run_virtuoso来启动virtuoso,但为了把calibre整合到virtuoso的菜单栏里,还需要用到最后一个压缩文件10.Calibre config.zip。该文件解压后只包含一个文本文件calibre config,截取其中的一段,如下所示,放在新建的文件.cdsinit中,然后将该文件放入新建文件夹project01。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; check CALIBRE_HOME
;
cal_home=getShellEnvVar("CALIBRE_HOME")
if( cal_home==nil then
cal_home=getShellEnvVar("MGC_HOME")
if( cal_home!=nil then
printf("// CALIBRE_HOME environment variable not set; setting it to value of MGC_HOME\n");
)
)
if( cal_home!=nil && isDir(cal_home) && isReadable(cal_home) then
; Load calibre.skl or calibre.4.3.skl, not both!
; Load calibre.skl for Cadence versions 4.4 and greater
load(strcat(cal_home "/lib/calibre.skl"))
;;;;Load calibre.4.3.skl for Cadence version 4.3
;;; load(strcat(cal_home "/lib/calibre.4.3.skl"))
else
; CALIBRE_HOME is not set correctly. Report the problem.
printf("// Calibre Error: Environment variable ")
if( cal_home==nil || cal_home=="" then
printf("CALIBRE_HOME is not set.");
else
if( !isDir(cal_home) then
printf("CALIBRE_HOME does not point to a directory.");
else
if( !isReadable(cal_home) then
printf("CALIBRE_HOME points to an unreadable directory.");
)
)
)
printf(" Calibre Skill Interface not loaded.\n")
; Display a dialog box message about load failure.
hiDisplayAppDBox(
?name 'MGCHOMEErrorDlg
?dboxBanner "Calibre Error"
?dboxText "Calibre Skill Interface not loaded."
?dialogType hicErrorDialog
?dialogStyle 'modal
?buttonLayout 'Close
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
除此以外,还需要删掉calibre文件夹下的失效链接tmp,重新创建一个tmp文件夹
接下来在新建的project01文件夹中运行run_virtuoso,即可启动virtuoso。
来源:oschina
链接:https://my.oschina.net/propagator/blog/3166272