在ubuntu上搭建IC數模混合環境
僅以這篇博客來紀念一下當年因搭環境而掉的頭髮
文章目錄
裝的環境是cadence全家桶.所以有
標題2:在ubuntu18上搭建IC數模混合環境
因爲我用的發行版是ubuntu18,但是這方法是一模一樣的,因爲我再ubuntu16上也裝過一次.
標題3:在ubuntu18上安裝cadence ic617
其實就是圍繞着cadence ic617來安裝的…
對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=$PATH:<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了
選擇~/Preferences/Directories
這裏主要修改的是安裝路徑,比如我是安裝在自己用戶目錄下的,Install Directory就寫(select好一點其實)
/home/username/cadence
然後點ok就完事了
接下來就是簡單的安裝了:
- 選擇Local directory/Media install/(那個光盤的圖標)
- 輸入安裝包的路徑,建議先裝INCISIVE(如果只裝模擬環境的,直接裝ic617就行了,不用安裝INCISIVE141)
- 確認軟件名稱版本
- 點擊安裝全選(建議所有都是,反正裝多不吃虧,裝少可能吃苦頭)
- 確定路徑
- 點start,衝鴨(因爲我已經裝好了,所以就沒放這個圖了)
- 進入組件配置時間
這裏的坑很多,但是有一個比較粗暴的處理方法
除了oa的路徑設置選n之外,其他回車就行
當然,你最好還是看看他要你配置啥玩意…
關於這個可以看看這位大神的博客
-
對於數模混合環境來說
在安裝完INCISIVE141之後,再安裝ic617的時候會有一個配置:
這樣就可以實現連接ic617和INCISIVE,如果先安裝ic617的時候這裏直接退出就行了,後面再回來用IScape來reconfigure就行 -
同樣的方法繼續安裝其他的軟件就行
patch
- 解壓patch文件到~/cadence下面(其實你解壓到哪裏都一樣)
- 在此目錄下打開終端
##提權
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
- 點browse,找到pdk下面的cds.lib
- 點ok,看到他檢索出來的庫
- 然後點ok,稍微等一下如果看見類似的message,就ok了
已知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