4、Linux环境搭建:安装Ubuntu/CentOS、配置开发环境、安装必要的依赖库

好,咱们进入正题。

做芯片功耗仿真,Linux环境是绕不开的。说实话,我见过不少新手在Windows上折腾EDA工具,最后都崩溃了。不是说不行,而是兼容性问题太多,浪费时间。我个人习惯,直接上Linux,省心。

4.1 选哪个发行版?Ubuntu还是CentOS?

这个问题,几乎每期课都有人问。我的建议很直接:

  • 个人学习、实验:选Ubuntu。社区活跃,软件源新,遇到问题好搜答案。我刚开始学的时候用的就是Ubuntu 16.04,一直用到20.04。
  • 公司项目、生产环境:选CentOS/RHEL。稳定,生命周期长。很多EDA厂商官方支持的就是RHEL系。我在某大厂做项目时,服务器清一色CentOS 7.9。

你想想看,如果你只是搭环境练手,Ubuntu的apt-get装东西多快。但如果你要对接公司的IT标准,那CentOS更靠谱。

我的小建议: 如果你拿不准,先装Ubuntu 20.04 LTS。这个版本很成熟,功耗仿真常用的工具链都支持得很好。

4.2 安装Ubuntu 20.04 LTS(以虚拟机为例)

嗯,这里要注意。我假设你是在Windows上用VMware Workstation或者VirtualBox来装。物理机安装步骤类似,只是分区时要小心别把硬盘搞没了。

步骤其实很简单:

  1. 下载ISO镜像。去官网或者国内镜像站(比如清华、阿里云)下,速度快很多。
  2. 创建虚拟机。内存建议给8GB以上,硬盘至少60GB。功耗仿真工具和库文件很占空间。
  3. 安装过程选「最小安装」,别装那些办公软件、游戏,浪费资源。
  4. 分区时,我习惯这样分:
    • /boot:1GB
    • /:40GB
    • /home:剩余全部
    • swap:16GB(如果你内存大,可以不要)
避坑指南: 我曾经在分区时忘了给/home单独分,结果后来装工具把根目录塞满了,系统直接卡死。所以,/home一定要单独分,而且给大点。

4.3 配置开发环境

系统装好了,第一件事不是装EDA工具,而是把基础环境配好。这步做不好,后面各种报错会让你怀疑人生。

4.3.1 更新软件源

先换源,不然下载速度慢得你想砸电脑。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y

4.3.2 安装基础开发工具

这些是编译器和基础库,很多EDA工具依赖它们。说白了,就是盖房子的脚手架。

sudo apt install -y build-essential cmake git vim
sudo apt install -y gcc g++ gfortran
sudo apt install -y make autoconf automake

我个人习惯,装完这些后先重启一下,确保内核和驱动都加载正常。

4.3.3 配置Python环境

功耗仿真里,Python脚本是少不了的。比如写个脚本批量跑仿真、解析功耗报告。

sudo apt install -y python3 python3-pip python3-venv
sudo pip3 install --upgrade pip
pip3 install numpy scipy matplotlib pandas
我的经验: 别用系统自带的Python 2了,早该淘汰了。我见过有人用Python 2写脚本,结果调新库时各种不兼容,改代码改到崩溃。

4.4 安装必要的依赖库

这部分是重点。芯片功耗仿真工具(比如PrimePower、RedHawk)对系统库有严格要求。缺一个库,工具就启动不了。

4.4.1 32位库支持

很多EDA工具还是32位的,所以必须开启多架构支持。

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y libc6:i386 libncurses5:i386 libstdc++6:i386

为什么会这样?因为EDA工具的历史包袱重,很多老代码还在用32位编译。你不装这些,工具直接报「cannot execute binary file」。

4.4.2 图形界面相关库

功耗仿真工具通常有GUI界面,需要这些库。

sudo apt install -y libx11-dev libxext-dev libxtst-dev
sudo apt install -y libmotif-dev libxmu-dev
sudo apt install -y libgl1-mesa-glx libglu1-mesa

嗯,这里要注意。如果你用的是CentOS,包名会不一样,比如motif在CentOS里叫openmotif

4.4.3 网络与许可管理库

EDA工具通常需要license server,所以网络库必须装。

sudo apt install -y libssl-dev libcurl4-openssl-dev
sudo apt install -y lsb-core lsb-release

我在项目中遇到过,有次装完工具死活连不上license,查了半天发现是lsb-core没装,导致license daemon启动失败。这种坑,踩过一次就记住了。

4.4.4 其他常用库

这些是锦上添花的,但建议都装上。

sudo apt install -y tcl tk expect
sudo apt install -y flex bison
sudo apt install -y libreadline-dev libncurses-dev

4.5 验证环境是否就绪

装完别急着走,验证一下。写个简单的C程序编译运行,看看gcc能不能用。再跑个Python脚本,看看numpy能不能导入。

# 测试gcc
echo '#include <stdio.h>' > test.c
echo 'int main() { printf("Hello, EDA!\n"); return 0; }' >> test.c
gcc test.c -o test
./test

# 测试Python
python3 -c "import numpy; print('NumPy version:', numpy.__version__)"

如果都能正常输出,恭喜你,环境搭好了。

总结一下: Linux环境搭建是基本功,别嫌麻烦。我见过太多人急着装工具,结果环境没配好,折腾两天发现是缺了个lib。磨刀不误砍柴工,这步走稳了,后面就顺了。

好,下一章我们开始装真正的功耗仿真工具。到时候你会感谢今天认真配环境的自己。