在ubuntu上搭建IC数模混合环境(0)
仅以这篇博客来纪念一下当年因搭环境而掉的头发
装的环境是cadence全家桶.
[toc]
对linux新手的一些搭环境常识补充
尽信书不如无书
有一些教程其实作者的linux基础是很差的比如我,所以不要尽信教程!!!
没有基础的劝退
其实如果搭环境没有linux基础,没有对linux文件系统的有最基本的认识,没有对linux包管理,用户组,文件属性有一点了解的话.其实我建议还是现在虚拟机上学学吧,不然很容易心态爆炸,还会失去对linux的热情.
特别是这个数模混合环境,加上安装包总共63.5G,个人PC的话一般不是双系统不会预留这么多空间,如果在虚拟机上跑的话也是极其浪费空间.如果遇坑的话重来太浪费时间了...
当然,这篇博客也适用于只搭建模拟ic设计环境,总共空间大概20G,虚拟机大概可以接受,双系统美滋滋,ic617比ic5141还是有很多比较便利的功能的
像我这样把windows卸掉的话就无所谓了,但是真的新手的话建议虚拟机,项目组的话可以用我搭好(现在还没)的服务器来进行设计,不建议双系统搞这个,弄不好连电脑就炸了
更改所有配置之前,先做备份!
cp xxx.rc xxx.rc.bk
gedit xxx.rc
特别是,有关于系统的设置的,比如说在/etc里面的所有文件(其他配置文件也一定要备份)
回车前看看提示
虽然可能提示是英文的,也大概看一下他在写什么,千万不要无脑回车,不要傻乎乎地别人把你linux内核卸载了都不知道.
rm -rf /* ##比如说这个
chmod 777 * ##还有这个
看任何教程留意发行版,版本号和几位的系统
如果教程和你在用的版本号不匹配,一定要万分警醒,你可以参考,但一定不要尽信!
比方说ubuntu的包管理工具是apt,centos的包管理工具是yum.如果你要安装一个软件,你用ubuntu,别人用centos,恰好别人要安装个依赖包:
sudo yum install libstdc艹
##这时你用ubuntu的话会报错:
->Command 'yum' not found, but can be installed with:
->sudo apt install yum
##如果这个时候,你真的在命令行下敲下了:
sudo apt install yum
##那...就准备天天报错吧...
还有一个就是有一些包是需要下32位的,因为默认是下载64位的,所以这个时候命令就要改成:
sudo apt-get install libabcd:i386
尊重linux的用户组概念.
不得不肯定,一开始直接用root暴力安装一些东西确实很舒服,但是,我建议这样的话,你可以尝试在自己的虚拟机上这样做,反正迟早会炸的.当然了,安装在服务器上的另当别论,这里只是说对一般用户的平时用的软件的一些小建议.
所以本文是在个人用户heweibao下安装的
理解环境变量的概念
在linux下面,每个用户在他的主目录下面针对每一个命令解释器(通常都是bash啦),都会有一个环境配置文件叫做.bashrc是个隐藏文件,环境配置文件可以做一下的一些事:
- 配置特定变量名称的路径(比如打开认证服务器)
export LM_LICENSE_FILE=./CADENCE_HOME/license/license.dat
## . 是当前目录, .. 是上一级目录
- 配置$PATH,使终端能识别到特定的命令
##记得包含原有的PATH变量
PATH=$PAHT:<PATH 1>:<PATH 2>:<PATH 3>:--------:< PATH n >
export PATH
- 别名一些命令组合(算是个小脚本吧)
alias helloss = sslocal -c /home/heweibao/snap/shadowsocks/config.json &
这个一般用来准备运行程序前所需的环境
临时加载环境变量可以:
. .bashrc
##也可以
source .bashrc
很多人一开始玩linux玩炸的一个原因就是,有一些教程很喜欢动不动就直接更改对所有用户都有效的环境变量配置文件:
/etc/environment
/etc/profile
/etc/bash.bashrc
还不做备份那种.
所以一般建议先自己写一个环境变量配置文件,在终端临时加载一下(临时加载之后仅在该终端生效),先看看有没有达到想要的效果,再看看有没有损坏系统环境配置,最后再加入用户的环境配置文件里面.
如果出错要干啥
这个比较考验个人的linux基础,但是上面的几点是处理问题的基本原则.
主要注意一下看报错信息是最重要的,不要因为很多时候是英语就原地爆炸,相信我,不少的报错都是自己的linux基础不好而导致的,还有就是对教程的过分依赖而导致的真正的玄学部分还是不少的
这里说一个小例子吧,比方说他提示你**缺少了某个依赖包 libXp5.so.6 **
一般流程是这样的:
1. sudo apt-get install libXp5
##如果提示没有
2. google : where is libXp5(或者直接贴关键报错信息)
##如果提示包已被废弃
3. 进https://packages.ubuntu.com(或是其他源)直接下下来
4. 丢进一个/usr/lib 并创建一个软连接
当然了,每一步都可能有不一样的方案去更好地解决,比方说包的版本过高啊,bilibala一堆问题,这得靠积累了.甚至我还试过直接改cadence_ic的源码(为了让他默认首选仿真器是hspice而不是spectre ) 当然后面我才知道可以直接设置
cadence各种软件的安装
EDA版本说明
先说明一下我的EDA版本
cadence ic 617 //模拟ic环境设计
INCISIV141 //数字ic设计
MMSIM15 //混合仿真
因为用的软件全是14年以后的,所以,千万不要都装上IC617了,还装一个IUS9.2用来做数字块设计,在环境变量配置中也只有14年之后的软件..
-
这里因为主要针对实验室的人方便用和为了规避一些规则.不提供软件包和破解文件(当然我会给出外链,有找不到的包也可以私信我)
-
用的环境配置的eetop一个大神写的一个bashrc,可以自动连接起cadence家族里面的各个组件(当然要去适配自己的电脑)
-
用的license也是eetop一个大神理解了license之后写出来的破解文件,用了他的license可以一个license破解所有cadence软件的所有feature,并且加其他的feature也十分方便.
-
用的patch也是eetop一个大神所说的"测试证明是最佳的patch"
-
下载见参考资料.
安装
提前说明:
- 所有的安装配置操作,使用绝对路径(还不要带中文,以防万一)
- 如果想用用户组安装的话,尽量运行命令时避免用sudo(依赖包安装什么的除外)
这个安装异常的简单,因为cadence专门写了一个InstallScape来辅助安装,在此之前你要做的是
##解决依赖问题
sudo apt-get install ksh ##安装ksh的shell
sudo apt-get install csh ##安装csh的shell
sudo apt-get install openjdk-8-jre openjdk-8-jdk ##安装openjdk jre等
sudo apt-get install xterm ##安装xterm终端模拟器
sudo apt-get install libncursesw5-dev ##安装libncursesw动态链接库
sudo apt-get install libxtst6:i386
sudo apt-get install libxi6:i386
##依赖关系是从别人的博客照过来的(可能有错,所以自己执生啦),openjdk一般有安装的,应该不用专门再去搞
##基本操作
mkdir ~/cadence
mkdir ~/cadence/IScape
##把你下的Scape123456789lnx86.t.Z丢进~/cadence/IScape
mv xxxxxx/xxxx/xxx/Scape123456789lnx86.t.Z ~/cadence/IScape
chmod 755 Scape123456789lnx86.t.Z
##解压
zcat IScape04.23-s010lnx86.t.Z | tar -xvf-
##进入IScape
cd ~/cadence/IScape/iscape/bin
sh iscape.sh 或者 ./iscape.sh
毫无意外就可以进入InstallScape了
init选择~/Preferences/Directories
这里主要修改的是安装路径,比如我是安装在自己用户目录下的,Install Directory就写(select好一点其实)
/home/username/cadence
然后点ok就完事了
接下来就是简单的安装了:
-
选择Local directory/Media install/(那个光盘的图标)
3 - 输入安装包的路径,建议先装INCISIVE(如果只装模拟环境的,直接装ic617就行了,不用安装INCISIVE141)
-
确认软件名称版本
4 - 点击安装全选(建议所有都是,反正装多不吃亏,装少可能吃苦头)
-
确定路径
5 - 点start,冲鸭(因为我已经装好了,所以就没放这个图了)
- 进入组件配置时间
这里的坑很多,但是有一个比较粗暴的处理方法
除了oa的路径设置选n之外,其他回车就行
当然,你最好还是看看他要你配置啥玩意...
关于这个可以看看这位大神的博客
-
对于数模混合环境来说
在安装完INCISIVE141之后,再安装ic617的时候会有一个配置:
888
999
这样就可以实现连接ic617和INCISIVE,如果先安装ic617的时候这里直接退出就行了,后面再回来用IScape来reconfigure就行
-
同样的方法继续安装其他的软件就行
patch
-
解压patch文件到~/cadence下面(其实你解压到哪里都一样)
6 - 在此目录下打开终端
##提权
chmod 777 cadence.pat cadence_patch.sh sfk
##一个一个patch(一个一个来!)
./cadence_patch.sh /home/heweibao/cadence/IC617
./cadence_patch.sh /home/heweibao/cadence/INCISIVE141
./cadence_patch.sh /home/heweibao/cadence/MMSIM151
##如果出现少量的error和warning是可以接受的,提示有一些文件不存在也是可以接受的,重点的一定要看见有changed
license
- mkdir ~/cadence/license
- 切到window下(如果是纯ubuntu环境的话可以装个virtual box,然后装一个window7的虚拟机)
- 用大神的软件生成license.dat ,然后放回~/cadence/license/license.dat里面
注意:
生成license时需要两个东西,1是主机名 2是网卡号,可以在终端下这样来查:
##获取主机名
hostname
##获取网卡号
ifconfig
找到网卡的ether那里的一串数字,把冒号去掉就ok了
配置环境变量文件
我的建议是,新建一个Project_cadence文件夹,然后把写好的环境配置文件放进去,每次启动cadence的时候去那里新建一个终端,加载环境变量,再启动cadence.
如果想快捷启动的话可以自己写一个脚本(其实我已经写好了,后面会给出)
下面提到的calibre是用来画模拟版图的,这篇教程没涉及,但是改了就对了
- 下载大神的那个环境变量配置模板
- 主要更改这几个东西:
- @48行: export CADHOME=/home/heweibao/cadence (就换到安装路径)
- @104行:export CDS_LIC_FILE=$CDS/license/license.dat
- @183行:删除LM_LICENSE_FILE这个环境变量,因为会和hspice冲撞,而且cadence不需要
- @357行:export CALIBRE_HOME=/home/heweibao/calibre/aoi_cal_2015.2_36.27(calibre的安装目录)
- @387行:export MGC_CALIBRE_SCHEMATIC_SERVER=hostname:9199(更换主机名)
- @388行:export MGC_CALIBRE_LAYOUT_SERVER=hostname:9189
- 将所有INCISIVE142替换成INCISIVE141
- 完成之后搜索一下opt,看一下有没有漏改一下路径
写脚本快速启动
毕竟总是用临时加载环境变量虽然习惯好,但是这一点都不酷,而且很烦
这里给个小源码,抛砖引玉一波
先在终端: gedit hellocadence 然后输入
#!/bin/bash
echo "hello cadence"
export cadence_home=/home/heweibao/Project_cadence
cd $cadence_home
source $cadence_home/.bashrc
virtuoso &
最后在终端
chmod 755 hellocadence
cp /home/heweibao/Project_cadence/hellocadence /usr/bin/hellocadence
差不多是这样,如果懂一点shell,自己diy一下再加点什么都行.
然后就可以愉快地在终端输入: hellocadence 进入了
写桌面快捷方式
...没错,我确实是懒出天际了,这里也给出源码给大家参考一下:
先在终端: gedit cadence.desktop 然后输入
[Desktop Entry]
Comment=cadence_ic
Comment[zh_CN]=脱发必备
Exec=/home/heweibao/Project_cadence/hellocadence
GenericName=cadence_ic
GenericName[zh_CN]=cadence_ic617
Name=cadence_ic
Name[zh_CN]=cadence_ic617
StartupNotify=false
Terminal=false
Type=Application
Icon=/home/heweibao/misc/selfbin/pic_icon/logo-cadence-newsroom.png
最后在终端
chmod 755 cadence.desktop
然后就可以愉快地双击打开:
哈哈哈
转换工艺库
cdb2oa
因为IC5141用的工艺库是cdb格式的,而IC617用的工艺库是oa格式的,所以在导入之前我们需要转换一下库的格式.
-
tools下选Conversion toolbox
-
然后点CDB to OpenAccess Translator
image -
点browse,找到pdk下面的cds.lib
-
点ok,看到他检索出来的库
image -
然后点ok,稍微等一下如果看见类似的message,就ok了
finish
已知bug修复
libXp.so.6.2.0
启动ams混合信号仿真界面时会提示
缺失libXp.so.6.2.0
这个包是没有办法用apt去直接下载的,不用尝试说下载libXp5什么的了.
因为这个包的安全问题,被各大发行版在更新的时候废弃掉了,所以我们要去debian(或者ubuntu)的旧包下载的地方下下来然后丢进/usr/lib
搜索地址
因为它提示的是libXp.so.6.2.0,下下来的是libXp.so.6,所以在放进/usr/lib之前要这样做:
##提权
chmod 755 libXp.so.6
##复制
cp libXp.so.6 libXp.so.6.2.0
后面听说matlab也有一些功能受到这个bug的影响,所以移的时候我把两个都一进去了
为了舒服起见,我下了一个64位(amd64)版本的放在/usr/lib和/usr/lib64.下了一个32位(i386)的放在了/usr/lib32那里,总之bug被解决了,然后我并不知道哪一个在起作用(无所谓啦)
结语
如果说我的word基础是在校会的时候写东西培训出来的,那么,我的linux基础,就肯定是搭环境搭出来的.
如果大家有什么问题的话,可以评论提问(项目组的私聊问就行了).如果问题过多我再多开一篇博客说明吧.
参考资料
bashrc文件,内容看一下也行,重点是里面的百度云地址
license文件,内容看一下也行,重点是里面的百度云地址
patch文件,内容看一下也行,重点是里面的百度云地址
一步步教你用Ubuntu 16.04安装Cadence IC617
Cadence IC617设计环境安装全过程
IC617+MMSIM+calibre
INCISIV14.1
网友评论