第二章:Linux基础与EDA环境搭建
说实话,很多刚入行的朋友问我:“EDA工具到底难不难装?”我的回答永远是——先搞定Linux,再说别的。我见过太多人,VCS装了三周还没跑通第一个仿真,最后发现是环境变量写错了。这一章,咱们就把这些基础打扎实。
2.1 Linux常用命令:你每天都会用的三把刀
做芯片设计,说白了就是跟Linux打交道。Windows?嗯,基本用不上。我自己的工作站上,一开就是几个月不关机。下面这三个命令,是我每天用几十次的。
2.1.1 vim——编辑器中的瑞士军刀
你想想看,写RTL代码、改脚本、看log,哪个离得开编辑器?vim就是那个陪你最久的伙伴。
基本操作(记住这些就够了):
i—— 进入插入模式,开始写代码Esc—— 退出插入模式,回到命令模式:wq—— 保存并退出:q!—— 不保存强制退出(遇到改坏了的情况)/关键词—— 搜索,按n跳到下一个
我的小习惯:在.vimrc里加上 set number 和 syntax on。这样行号有了,代码也高亮了。调试的时候找错误行号,一眼就能定位。
我曾经有一次,半夜三点改一个时序约束文件,手一抖把整个模块的代码删了。还好vim有撤销功能——u键按了十几下,全回来了。从那以后,我每次改重要文件前都会先备份。
2.1.2 grep——大海捞针的神器
项目做到后期,代码量几十万行。你想找一个信号定义在哪?用grep。
# 在当前目录所有.v文件中搜索"clk"(递归搜索子目录)
grep -rn "clk" *.v
# 忽略大小写搜索
grep -rni "reset" *.v
# 显示匹配行前后各5行(看上下文)
grep -rn -B5 -A5 "error" *.log
我个人习惯把grep和find配合着用。先find找到文件,再grep搜内容。效率翻倍。
2.1.3 find——找文件,别靠记忆力
项目目录结构一深,光靠ls翻来翻去太慢了。find就是你的文件雷达。
# 找所有.v文件
find . -name "*.v"
# 找最近7天修改过的文件
find . -name "*.v" -mtime -7
# 找大于100MB的文件(看看谁占空间)
find . -size +100M
注意:find默认递归搜索所有子目录。如果你的项目有几十万个文件,建议加上 -maxdepth 3 限制搜索深度,不然会卡很久。我吃过这个亏。
2.2 虚拟机安装:给你的EDA工具安个家
做EDA开发,Linux是标配。但很多公司会给新人配Windows笔记本。怎么办?装虚拟机。
我个人推荐用VMware Workstation或者VirtualBox。前者收费但稳定,后者免费但功能也够用。
安装步骤(简化版):
- 下载CentOS 7或Ubuntu 20.04的ISO镜像
- 新建虚拟机,分配4核CPU、8GB内存、100GB硬盘(最低配置)
- 安装时选择“开发工具”组,把gcc、make这些装上
- 装完记得装VMware Tools,不然屏幕分辨率调不了
避坑指南:我曾经给虚拟机只分了2GB内存,结果VCS一跑就卡死。后来发现EDA工具都是内存大户。建议至少8GB,16GB更舒服。
2.3 EDA工具环境变量配置:让系统找到你的工具
工具装好了,但终端输入 vcs 却提示“command not found”?别慌,环境变量没配好。
说白了,环境变量就是告诉系统:“我的工具放在这个路径下,你去那里找。”
2.3.1 核心环境变量
| 变量名 | 作用 | 示例值 |
|---|---|---|
VCS_HOME |
VCS安装根目录 | /tools/synopsys/vcs/O-2018.09 |
VERDI_HOME |
Verdi安装根目录 | /tools/synopsys/verdi/Verdi3_L-2016.06 |
DC_HOME |
DC安装根目录 | /tools/synopsys/dc/K-2019.03 |
PATH |
可执行文件搜索路径 | $VCS_HOME/bin:$VERDI_HOME/bin:$DC_HOME/bin:$PATH |
LM_LICENSE_FILE |
license服务器地址 | 27000@license-server |
2.3.2 配置示例(.bashrc文件)
# 在 ~/.bashrc 末尾添加以下内容
# VCS
export VCS_HOME=/tools/synopsys/vcs/O-2018.09
export PATH=$VCS_HOME/bin:$PATH
# Verdi
export VERDI_HOME=/tools/synopsys/verdi/Verdi3_L-2016.06
export PATH=$VERDI_HOME/bin:$PATH
# DC
export DC_HOME=/tools/synopsys/dc/K-2019.03
export PATH=$DC_HOME/bin:$PATH
# License
export LM_LICENSE_FILE=27000@license-server
# 生效配置
source ~/.bashrc
重要提醒:环境变量配置完一定要 source ~/.bashrc 或者重新登录终端。我见过有人配完直接关终端,再打开发现没生效,跑来问我是不是系统坏了……
2.4 本章知识体系
下面这张图,是我自己总结的Linux与EDA环境搭建的核心逻辑。你看一遍,心里就有谱了。
嗯,这一章的内容就这些。Linux命令是每天都要用的,虚拟机是环境基础,环境变量是连接工具和系统的桥梁。这三样搞定了,后面装VCS、跑仿真就是水到渠成的事。
一句话总结:别急着跑代码,先把Linux玩熟。我见过太多人,工具装好了,结果连个文件都找不到,那才叫尴尬。