Synopsys EDA Tools 安装

简述


本文介绍了在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系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值