简介
由于目前网上大部分是使用CentOS或RedHat安装Innovus的教程,即使是Ubuntu,也是Ubuntu20或更高的版本,我在使用Ubuntu18安装Innovus2021过程中碰到一些网上教程没提到的问题,因此记录一下,分享给大家。
教程仅供学习,商用请支持正版。
参考教程
https://blog.csdn.net/qq_44447544/article/details/122698979
https://zhuanlan.zhihu.com/p/659144314
系统环境
Ubuntu 18.04.6 LTS 64位
Linux内核:5.4.0-150-generic
所需文件
- Base_INNOVUS21.10.000_lnx86_*of3.tar为Innovus2021的安装包(这里不提供,有需要的可以网上找)
- license_innovus.dat为Innovus运行所需license文件(这里不提供,有需要的可以网上找)
- Xbin.tgz中包含了一些库文件,可以在以下网站下载
http://ftp.xfree86.org/pub/XFree86/4.8.0/binaries/Linux-x86_64-glibc23/ - ocad.tar.gz包含破解工具,可以在以下网站下载
https://bbs.eetop.cn/thread-896342-1-1.html
安装过程
安装依赖
sudo apt-get -y install openjdk-11-jdk
sudo apt-get install ksh
sudo apt-get install csh
sudo apt-get install xterm
sudo add-apt-repository ppa:linuxuprising/libpng12
sudo apt update
sudo apt install libpng12-0
sudo apt install libjpeg62
sudo apt install libncurses5
解压Innovus安装包
tar -xvf Base_INNOVUS21.10.000_lnx86_1of3.tar
tar -xvf Base_INNOVUS21.10.000_lnx86_2of3.tar
tar -xvf Base_INNOVUS21.10.000_lnx86_3of3.tar
注意:这里Innovus2021的三个安装包不是分卷压缩,需要对每个包都分别做解包
三个包都解包完成后会得到一个安装包:INNOVUS21.10.000_lnx86.Base
解压所需工具包
tar -xzvf Xbin.tgz -C Xbin
tar -xzvf ocad.tar.gz -C /tools/Cadence/
Innovus安装完成后会用到这些工具包
使用InstallScape安装Innovus
-
打开IScape
cd /tools/Cadence/IScape/IScape04.23-s010lnx86/iscape.04.23-s010/bin/ sh iscape.sh
-
点击”Browse“定位到Innovus安装包的位置
-
点击“Continue”
-
勾选INNOVUS,点击“Next”
-
勾选PINNOVUS,PINNOVUS下面的全选上,选择安装目录,点击“Start”,开始安装
-
等待Installing进度条和Configuring进度条完成
-
进度条完成后,会弹出这个窗口,输入回车
-
第二个输入“n”,等待窗口倒计时关闭,或直接Enter关闭
-
安装完成,点击“Done”
-
点击“Exit”,退出IScape
使用Ocad工具破解Innovus
sudo /tools/Cadence/ocad/bin/./1patch -ecc /tools/Cadence/INNOVUS211/
等待破解完成…
破解完成:
Licence
将license文件复制到/tools/Cadence/license/下
cp license_innovus.dat /tools/Cadence/license/
配置环境变量
编辑home下面的.bashrc,其中xxx需要替换为你的虚拟机的用户名
gedit /home/xxx/.bashrc
增加以下内容:
#--------------------Cadence----------------------------------
#####Set Cadence Directory
export Cadence_Dir=/tools/Cadence
#####XCELIUM
export INCISIVDIR=$Cadence_Dir/XCELIUM1803
#####INNOVUS
export LM_LICENSE_FILE=$Cadence_Dir/license/license_innovus.dat
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INNOVUSDIR/tools.lnx86/lib
export INNOVUSDIR=$Cadence_Dir/INNOVUS211
export PATH="$PATH:$INNOVUSDIR/bin"
export PATH="$PATH:$INCISIVDIR/tools.lnx86/bin"
export PATH="$PATH:$INCISIVDIR/tools.lnx86/dfII/bin"
(XCELIUM为之前安装好的,可以网上搜索安装教程)
激活环境变量:
source /home/xxx/.bashrc
启动Innovus2021
-
在终端输入“innovus”,启动软件,报错1:
解决办法sudo apt-get install libxm4
-
在终端输入“innovus”,启动软件,报错2:
解决办法:
从刚刚准备好的Xbin文件中搜索找到libXp.so.6库文件,并复制到/usr/lib/sudo cp Xbin/lib64/libXp.so.6 /usr/lib/
-
在终端输入“innovus”,启动软件,报错3:
解决办法:sudo apt-get install libgfortran3
-
在终端输入“innovus”,启动软件,报错4:
解决办法:
在终端输入:LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' LIBGL_DRI3_DISABLE=1 innovus
-
在终端输入“innovus”,启动软件,报错5:
这是因为Ubuntu18自带的库文件的版本太低造成的解决办法:
sudo cp /tools/Cadence/INNOVUS211/tools.lnx86/lib/64bit/libstdc++.so.6.0.28 /usr/lib/x86_64-linux-gnu/ cd /usr/lib/x86_64-linux-gnu/ sudo mv libstdc++.so.6 libstdc++.so.6.bak sudo ln -s libstdc++.so.6.0.28 libstdc++.so.6
-
在终端输入“LD_PRELOAD=‘/usr/lib/x86_64-linux-gnu/libstdc++.so.6’ LIBGL_DRI3_DISABLE=1 innovus”,启动软件,能打开GUI界面,但终端还是有报错,报错6:
这是因为没有在环境变量中指定oa路径
解决办法:
可以在home下面的.bashrc中增加以下内容:export OA_HOME=$INNOVUSDIR/oa_v22.60.052
但是我在Virtuoso的环境变量中已经指定了OA_HOME,为了避免Virtuoso和Innovus的冲突,我选择在终端启动innovus的时候指定OA_HOME,即在终端输入:
LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' LIBGL_DRI3_DISABLE=1 OA_HOME=$INNOVUSDIR/oa_v22.60.052 innovus
启动成功:
-
修改Innovus系统检测文件,避免后面因为系统兼容问题导致其他Bug
在终端输入uname -r 获取系统内核信息
修改innovus目录的oa下面的sysname文件gedit /tools/Cadence/INNOVUS211/oa_v22.60.052/bin/sysname
在图中位置添加一段:
5.*) # Ubuntu18 sysname=`whichCompiler $linuxName` sysnames="$sysname `whichCompiler $otherName` $sysnames";;
同理,若系统内核为6.4.0,则将添加内容前面的5.) 改为 6.) -
每次在终端输入
LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' LIBGL_DRI3_DISABLE=1 OA_HOME=$INNOVUSDIR/oa_v22.60.052 innovus
这么一长串太费事了,因此可以在.bashrc中用alias替换掉,在home下面的.bashrc中添加以下内容:alias innovus="LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' LIBGL_DRI3_DISABLE=1 OA_HOME=$INNOVUSDIR/oa_v22.60.052 innovus"
-
直接在终端输入“innovus”,启动成功
跑个lab验证一下
在eetop上找个innovus的lab,在innovus2021上运行,成功跑完,结果如下:
大功告成!!!
总结
.bashrc的所有相应环境变量如下:
#--------------------Cadence----------------------------------
#####Set Cadence Directory
export Cadence_Dir=/tools/Cadence
#####XCELIUM
export INCISIVDIR=$Cadence_Dir/XCELIUM1803
#####INNOVUS
export LM_LICENSE_FILE=$Cadence_Dir/license/license_innovus.dat
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INNOVUSDIR/tools.lnx86/lib
export INNOVUSDIR=$Cadence_Dir/INNOVUS211
export PATH="$PATH:$INNOVUSDIR/bin"
export PATH="$PATH:$INCISIVDIR/tools.lnx86/bin"
export PATH="$PATH:$INCISIVDIR/tools.lnx86/dfII/bin"
alias innovus="LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' LIBGL_DRI3_DISABLE=1 OA_HOME=$INNOVUSDIR/oa_v22.60.052 innovus"