第二章:环境搭建与启动——Linux环境准备、License配置、工具安装路径设置、启动DC/Yosys的常用命令

好,咱们正式开始动手了。

这一章,说白了就是“把家伙事儿支棱起来”。很多新手一上来就急着写代码,结果环境没配好,折腾半天连工具都起不来。我见过太多这样的案例了。所以,咱们先把地基打牢。

2.1 Linux环境准备——别小看这一步

DC和Yosys,都是跑在Linux上的。我个人习惯用CentOS 7或者Ubuntu 20.04。为什么?因为这两款系统的glibc版本比较新,兼容性好。

你需要确认几样东西:

  • 操作系统版本:用 cat /etc/os-release 看一眼。
  • 磁盘空间:DC安装包大概5-8GB,Yosys小很多,几百MB。但项目跑起来,临时文件会很大。我建议至少留50GB。
  • 内存:8GB起步,16GB更稳。你想想看,综合一个百万门的模块,内存不够直接卡死。
  • Shell环境:bash或者tcsh都行。我个人偏爱bash,因为脚本好写。

重要: 确保你的Linux安装了以下基础包:

sudo yum install -y gcc g++ make flex bison tcl tk
# 如果是Ubuntu
sudo apt-get install -y build-essential tcl-dev tk-dev

嗯,这里要注意。Yosys是开源的,编译时需要flex和bison。我当年第一次装Yosys,忘了装bison,编译报错折腾了一下午。后来学乖了,先把依赖全装上。

2.2 License配置——绕不开的坎

DC是商业工具,必须要有License。Yosys不需要,但如果你用它的商业版(比如Synopsys的某些插件),那也得配。

License配置,说白了就是告诉工具:“我有权限用你”。

步骤很简单:

  1. 把License文件放到一个固定目录,比如 /opt/synopsys/license.dat
  2. 设置环境变量 SNPSLMD_LICENSE_FILE

我的小技巧: 把License配置写到 .bashrc 里,这样每次登录自动生效。

export SNPSLMD_LICENSE_FILE=27000@license-server
# 或者直接指向文件
export SNPSLMD_LICENSE_FILE=/opt/synopsys/license.dat

我曾经遇到过一个问题:License文件路径写对了,但工具就是报“License check failed”。后来发现是端口被防火墙挡住了。你想想看,工具去连License服务器,端口不通,当然报错。所以,记得检查防火墙。

警告: 不要用root用户跑DC!用普通用户,否则权限问题会让你怀疑人生。

2.3 工具安装路径设置——路径对了,事半功倍

DC和Yosys安装好后,需要把它们的bin目录加到 PATH 里。

我个人习惯这样组织目录:

工具 安装路径 bin目录
DC /opt/synopsys/dc_2023 /opt/synopsys/dc_2023/bin
Yosys /opt/yosys /opt/yosys/bin

然后在 .bashrc 里加上:

export DC_HOME=/opt/synopsys/dc_2023
export YOSYS_HOME=/opt/yosys
export PATH=$DC_HOME/bin:$YOSYS_HOME/bin:$PATH

为什么要把DC的路径放前面?因为有时候系统里可能有其他版本的dc,放前面可以优先找到我们想要的。这是个小细节,但能省很多麻烦。

2.4 启动DC/Yosys的常用命令——终于可以跑起来了

环境配好了,咱们试试能不能启动。

启动DC

在终端输入:

dc_shell

如果一切正常,你会看到DC的欢迎信息,然后进入 dc_shell> 提示符。

如果你想用图形界面(虽然我很少用),可以输入:

design_vision

提示: 我个人习惯用 dc_shell -f script.tcl 来跑脚本。这样批量处理,效率高。图形界面太慢了,你想想看,点来点去,哪有写脚本快?

启动Yosys

Yosys更简单:

yosys

你会看到类似这样的提示:

 /----------------------------------------------------------------------------\
 |  yosys -- Yosys Open SYnthesis Suite                                       |
 |  Copyright (C) 2012 - 2023  Claire Xenia Wolf <claire@yosyshq.com>         |
 \----------------------------------------------------------------------------/
 Yosys 0.33 (git sha1 1234567, gcc 9.3.0 -fPIC -Os)
 
 yosys>

嗯,看到这个提示符,就说明Yosys已经准备好了。

常用启动参数

我整理了一个表格,方便你查阅:

工具 命令 说明
DC dc_shell 启动命令行模式
DC dc_shell -f run.tcl 执行Tcl脚本
DC design_vision 启动图形界面
Yosys yosys 启动交互模式
Yosys yosys -s run.ys 执行Yosys脚本
Yosys yosys -c run.tcl 执行Tcl脚本(Yosys也支持Tcl)

核心要点: 启动工具只是第一步。真正重要的是,你能不能在脚本里把工具调教好。下一章,咱们就来讲讲怎么写第一个综合脚本。

好了,环境搭建就到这里。你按照这个步骤走,应该不会出大问题。如果卡住了,回头看看是不是哪一步漏了。我曾经因为少装了一个libstdc++库,DC启动就报错,查了半天才发现。所以,耐心点,一步步来。

下一章,咱们开始写第一个综合脚本。到时候,你会觉得前面的辛苦都是值得的。