在Linux下有很多spice的仿真软件, 我之前用过ngspice, 也还在折腾。 cadence也是一个比较优秀的软件,主要是有Linux版本支持,我于是又来了。
windows之所以那么好用,给人一种无所不能的感觉, 不是因为软件多, 而是因为破解软件多, 安装又方便, 真香~~
先做一个自我介绍,我目前安装的系统信息如下:
$ lsb_release -a
LSB Version: core-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
正常安装Linux版本的cadence可以按照一下的教程按照:
Linux下载 安装cadenceIC617
我走了一遍上面的博客,总的来说还是比较顺利,下面来填坑:
./virtuoso[114]: /cadence/IC617/bin/cds_plat: not found [No such file or directory]
./virtuoso[123]: /cadence/IC617/tools/bin/cds_plat: not found [No such file or directory]
virtuoso: ERROR: Cannot find a proper cds_plat in the hierarchy.
virtuoso: ERROR: Cannot identify the current platform.
virtuoso: Check your installation.
我ls了下这两个文件,都在呀,为啥说找不到, 这错误邪门了,没有去看代码,日常百度了下:
找到论坛上http://bbs.eetop.cn/thread-397865-1-1.html, 说你没有安装 tcsh和ksh吧,是有这么回事儿,于是在ubuntu下安装一个:
sudo apt install tcsh ksh
恩恩,这个错误解决了
3. 报错说sysname报错
WARNING: HOST <WG> DOES NOT APPEAR TO BE A CADENCE SUPPORTED LINUX CONFIGURATION.
For More Info, Please Run '/tools.lnx86/bin/checkSysConf' <productId>.
virtuoso: ERROR: The command /cadence/IC617/share/oa/bin/sysname returned an error status:
unknown
virtuoso: INFO: Note that OpenAccess (OA) requires running the Configure phase.
virtuoso: See the "OpenAccess Installation and Configuration Guide" before
virtuoso: you complete the configuration step. This manual is included with
virtuoso: the Cadence product documentation.
说sysname返回了一个错误,我看了下sysname是一个sh脚本,只要不是二进制就简单,你报错,我来debug就行了。
check_linux() {
sysnames=$sysname
version=`uname -r`
machine=`uname -m`
if [ -f "/etc/redhat-release" ]
then
longVersion=`cat /etc/redhat-release`
elif [ -f "/etc/SuSE-release" ]
then
longVersion=`cat /etc/SuSE-release`
elif [ -f "/etc/os-release" ]
then
longVersion=`grep PRETTY_NAME /etc/os-release | sed -e 's/.*"\(.*\)"/\1/'`
else
longVersion="UNKNOWN Linux"
fi
case $machine in
ia64 )
sysname="linux_rhas21_ia64$compiler"; sysnames="$sysname $sysnames";;
*86 | *86_64 )
case $version in
2.4.* )
# RHEL 2, RHEL 3
compiler="_gcc411"
sysname="linux_rhel30$compiler"; sysnames="$sysname $sysnames";;
2.6.[0-9]-* )
# RHEL 4, SLES 9
compiler="_gcc44x"
sysname="linux_rhel40$compiler"; sysnames="$sysname $sysnames";;
2.6.*)
# RHEL 5, RHEL 6, SLES 10, SLES 11, SLES 11 SP1
if [ "$OA_COMPILER" = "" ] ; then
compiler="_gcc48x";
fi
sysname="linux_rhel50$compiler"; sysnames="$sysname $sysnames";;
3.*)
# RHEL 7, SLES 11 SP2, SLES 12, Ubuntu 14
if [ "$OA_COMPILER" = "" ] ; then
compiler="_gcc48x";
fi
sysname="linux_rhel50$compiler"; sysnames="$sysname $sysnames";;
* )
check_global;;
esac;;
*)
check_global;;
esac
}
看到在做linux发行版检查的时候,没得我们的ubuntu的系统,作为主流系统,居然没有被支持,我就不想说这个脚本了, 我都装好了,叫你运行你就运行,你还做个啥检查,于是我直接将代码中所有exit返回不是零的改为0。有人说我太暴力了,于是让你们解气的连锁错误来了:
WARNING: HOST <WG> DOES NOT APPEAR TO BE A CADENCE SUPPORTED LINUX CONFIGURATION.
For More Info, Please Run '/tools.lnx86/bin/checkSysConf' <productId>.
virtuoso: ERROR: The OA2.2 library directory (/cadence/IC617/share/oa/lib/unknown_64/opt) does not seem to exist.
virtuoso: INFO: Note that OpenAccess (OA) requires running the Configure phase.
virtuoso: See the "OpenAccess Installation and Configuration Guide" before
virtuoso: you complete the configuration step. This manual is included with
virtuoso: the Cadence product documentation.
说没有找到这个文件或者目录, 我跟着这个目录看了下:
$ ls /cadence/IC617/share/oa/lib
linux_rhel50_gcc48x_32 linux_rhel50_gcc48x_64
因为我的系统是64为的,哪里要找unknown_64,
如果正常,实际上估计是要找linux_rhel50_gcc48x_64。
明显坑我呀, 没得Linux ubuntu版本的目录怎么玩, 哈哈,下面就是Linux神器的地方了, 所有Linux发行版本, 其实二进制上面都是一样的(也就是内核一样)。于是我直接:
$ ln -s /cadence/IC617/share/oa/lib/linux_rhel50_gcc48x_64 unkown_64
恩恩,这个问题总算告一段落。看到了梦寐以求的运行界面:
唉,并没有开心的玩耍, 报的那个cds.lib警告阻碍了一切,昨天折腾了一下午,并没有找到切入点,只知道是哪里报错,但是不知道为啥报错。为啥会找不到cds.lib,哪里应该有一个cds.lib。
哈哈,我感觉以后我的博客就弄一个填坑笔记, 当然,有的坑填不平,欢迎大家留言交流。