ubuntu18.04安装cadence virtuoso

原创
2020/02/14 22:47
阅读数 7.5W

最近需要做一些集成电路设计相关的工作,研究了一下,还挺复杂。不过千里之行,始于足下,再复杂的东西也是一步步由简单的东西构建而成的。根据工作需要 ,安装了全定制集成电路设计软件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。

展开阅读全文
加载中
点击加入讨论🔥(88) 发布并加入讨论🔥
打赏
88 评论
7 收藏
4
分享
返回顶部
顶部