build(Makefile): clone icsprout55 during initialization
使用开源EDA工具进行ASIC综合, 时序分析和功耗分析, 用于了解前端RTL设计的PPA并快速迭代. 用到的开源EDA工具包括:
开源综合器Yosys
iEDA团队自研的开源EDA工具集, 这些工具会被编译成一个二进制文件iEDA, 本项目中用到的子工具包括
iEDA
根据iEDA团队的介绍, iSTA有以下优势
iSTA的一些参考资源:
iEDA团队的完整工作可参考以下文章
目前支持开源PDK icsprout55, 具体可在安装依赖(见下文)后阅读icsprout55的README
安装yosys, 版本要求不低于0.48. 建议从这个链接下载相应的工具包. 解压缩后, 将path-to-oss-cad-suite/bin加入到环境变量PATH中, 即可调用工具包中的yosys.
path-to-oss-cad-suite/bin
PATH
安装其他依赖并下载组件:
apt install libunwind-dev liblzma-dev # iEDA的依赖库 # or yum install libunwind liblzma make init # 下载预编译的iEDA和icsprout55工艺库
完成后, 测试iEDA能否运行:
echo exit | ./bin/iEDA -v # 若运行成功, 终端将输出iEDA的版本号
若依赖库版本不一致, 或使用其他架构(如ARM), 建议自行构建iEDA:
git submodule update --init --recursive cd iEDA vim README.md # 请参考iEDA项目的README中的操作进行构建
项目包含一个样例设计GCD, 可通过以下命令进行综合, 并评估其在icsprout55工艺上的时序表现.
make sta
运行后, 可在result/gcd-500MHz/目录下查看评估结果. 部分文件说明如下:
result/gcd-500MHz/
gcd.netlist.v
gcd.netlist.v.sim
synth_stat.txt
synth_check.txt
yosys.log
gcd.rpt
gcd.cap
gcd.fanout
gcd.trans
gcd_hold.skew
gcd_setup.skew
gcd.pwr
gcd_instance.pwr
gcd_instance.csv
sta.log
有两种操作方式:
make -C /path/to/this_repo sta \ DESIGN=mydesign SDC_FILE=/path/to/my.sdc \ CLK_FREQ_MHZ=100 CLK_PORT_NAME=clk O=/path/to/pwd \ RTL_FILES="/path/to/mydesign.v /path/to/xxx.v ..."
Makefile
注意:
RTL_FILES
DESIGN
如果在运行时遇到bug, 可在issue中报告问题, 并提供如下信息:
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
yosys-sta
使用开源EDA工具进行ASIC综合, 时序分析和功耗分析, 用于了解前端RTL设计的PPA并快速迭代. 用到的开源EDA工具包括:
开源综合器Yosys
iEDA团队自研的开源EDA工具集, 这些工具会被编译成一个二进制文件
iEDA, 本项目中用到的子工具包括根据iEDA团队的介绍, iSTA有以下优势
iSTA的一些参考资源:
iEDA团队的完整工作可参考以下文章
目前支持开源PDK icsprout55, 具体可在安装依赖(见下文)后阅读icsprout55的README
安装依赖
安装yosys, 版本要求不低于0.48. 建议从这个链接下载相应的工具包. 解压缩后, 将
path-to-oss-cad-suite/bin加入到环境变量PATH中, 即可调用工具包中的yosys.安装其他依赖并下载组件:
完成后, 测试iEDA能否运行:
若依赖库版本不一致, 或使用其他架构(如ARM), 建议自行构建iEDA:
评估样例设计
项目包含一个样例设计GCD, 可通过以下命令进行综合, 并评估其在icsprout55工艺上的时序表现.
运行后, 可在
result/gcd-500MHz/目录下查看评估结果. 部分文件说明如下:gcd.netlist.v- Yosys综合的网表文件gcd.netlist.v.sim- Yosys综合的网表文件, 用于网表仿真synth_stat.txt- Yosys综合的面积报告synth_check.txt- Yosys综合的检查报告, 用户需仔细阅读并决定是否需要排除相应警告yosys.log- Yosys综合的完整日志gcd.rpt- iSTA的时序分析报告, 包含WNS, TNS和时序路径gcd.cap- iSTA的电容违例报告gcd.fanout- iSTA的扇出违例报告gcd.trans- iSTA的转换时间违例报告gcd_hold.skew- iSTA的hold模式下时钟偏斜报告gcd_setup.skew- iSTA的setup模式下时钟偏斜报告gcd.pwr- iSTA的总体功耗报告gcd_instance.pwr- iSTA的标准单元级别功耗报告gcd_instance.csv- iSTA的标准单元级别功耗报告, CSV格式sta.log- iSTA的日志评估其他设计
有两种操作方式:
Makefile中修改上述变量, 然后运行make sta注意:
RTL_FILES的文件中必须包含一个名为DESIGN的moduleBug报告
如果在运行时遇到bug, 可在issue中报告问题, 并提供如下信息: