简述
本文介绍了在Ubuntu22.04系统上安装Synopsys系列EDA工具(VCS2016、Verdi2016等)的方法与解决方案。由于工具对Linux内核版本和GCC版本的兼容性要求(SpyGlass2016仅支持Linux kernel3,VCS需要GCC4.8),作者提供了两种解决方案:1)使用Docker创建Ubuntu16.04容器环境;2)添加Ubuntu16.04软件源直接安装GCC4.8。文中详细说明了如何修改standard-environment.sh和perl文件来适配高版本内核,并给出了具体的Docker配置步骤和源修改方法。
一.直接使用Ubuntu16.04系统
参考优快云博主「WeelCJ」的原创文章,链接如下
原文链接:https://blog.youkuaiyun.com/qq_33589780/article/details/108720685
本人使用的是Ubuntu22.04,由于Linux内核的不同以及一些工具链不适配,我将介绍我遇到的问题及解决方案,为使用Ubuntu16.04以上版本的人提供建议
二.使用Ubuntu22.04系统(理论适用于Ubuntu16.04以上任何系统)
1.由于Spyglass 2016 只支持linux kernel version 3,而Ubuntu22.04的版本是linux kernel version 6,可以通过修改standard-environment.sh 和 perl 两个文件来解决问题,博主「WeelCJ」只给出了Ubuntu16.04 linux kernel version 4解决方案
standard-environment.sh改成添加以下内容
Linux-4*)
if [ X"$switch32bit" = "Xyes" ]; then
echo "Linux2"
elif [ X"$switch64bit" = "Xyes" ]; then
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
echo "Linux4"
else
echo "Linux2"
fi
else
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
if [ X"$defExeOn64Bit" = "X32" ]; then
echo "Linux2"
else
echo "Linux4"
fi
else
echo "Linux2"
fi
fi
;;
Linux-5*)
if [ X"$switch32bit" = "Xyes" ]; then
echo "Linux2"
elif [ X"$switch64bit" = "Xyes" ]; then
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
echo "Linux4"
else
echo "Linux2"
fi
else
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
if [ X"$defExeOn64Bit" = "X32" ]; then
echo "Linux2"
else
echo "Linux4"
fi
else
echo "Linux2"
fi
fi
;;
Linux-6*)
if [ X"$switch32bit" = "Xyes" ]; then
echo "Linux2"
elif [ X"$switch64bit" = "Xyes" ]; then
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
echo "Linux4"
else
echo "Linux2"
fi
else
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
if [ X"$defExeOn64Bit" = "X32" ]; then
echo "Linux2"
else
echo "Linux4"
fi
else
echo "Linux2"
fi
fi
;;
perl
改成添加以上内容
Linux-4*) ##now we have Linux-64 bit also
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
species=Linux4
else
species=Linux2
fi
;;
Linux-5*) ##now we have Linux-64 bit also
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
species=Linux4
else
species=Linux2
fi
;;
Linux-6*) ##now we have Linux-64 bit also
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
species=Linux4
else
species=Linux2
fi
;;
2.vcs工具链只支持GCC4.8和G++4.8,使用Ubuntu16.04以上版本工具链会编译失败,并且Ubuntu22.04默认软件源没有GCC4.8和G++4.8,不能直接下载小编这里提供两个解决方法
第一种方法
使用docker
docker安装
# 更新软件包索引
sudo apt update
# 安装Docker
sudo apt install docker.io
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
# 将当前用户添加到docker组(避免每次使用sudo)
sudo usermod -aG docker $USER
# 重新登录或执行以下命令使组更改生效
newgrp docker
拉取Ubuntu 16.04镜像并创建容器
# 拉取Ubuntu 16.04镜像
docker pull ubuntu:16.04
# 创建并运行容器,挂载您的项目目录
# 请将 /home/liu/project/IC/1 替换为实际项目路径
docker run -it --name gcc48-env -v /home/liu/project/IC/1:/workspace ubuntu:16.04 /bin/bash
在容器内安装GCC/G++ 4.8
# 更新软件源(在容器内执行)
apt update
# 安装g++-4.8和必要的工具
apt install -y g++-4.8 gcc-4.8
# 验证安装
g++ --version
gcc --version
docker启动与进入命令
# 启动已停止的容器
docker start gcc48-container
# 进入运行中的容器
docker exec -it gcc48-container /bin/bash
然后按照使用Ubuntu16.04系统方式下载相关工具链
第二种方法
添加Ubuntu16.04源
编辑sources.list
sudo vim /etc/apt/sources.list
deb https://mirrors.aliyun.com/ubuntu/ xenial main universe
会出现公钥缺失警告,执行下列命令
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
最后执行以下命令安装工具链
sudo apt install gcc-4.8
sudo apt install g++-4.8
编译器切换管理参考
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
sudo update-alternatives --config g++

EDA工具链安装同样参考直接使用Ubuntu16.04系统
4750

被折叠的 条评论
为什么被折叠?



