Skip to content

OSCPU/yosys-sta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yosys-sta

使用开源EDA工具进行ASIC综合和时序分析, 用于了解前端RTL设计的时序情况并快速迭代. 用到的开源EDA工具包括:

安装依赖

apt install -y yosys libunwind-dev libyaml-cpp-dev libgomp1 libtcl8.6 # iEDA的依赖库
# or
yum install -y yosys libunwind yaml-cpp libgomp tcl

make init

评估样例设计

项目包含一个样例设计GCD, 可通过以下命令进行综合, 并评估其在nangate45工艺上的时序表现.

make sta

运行后, 可在result/gcd-500MHz/目录下查看评估结果. 部分文件说明如下:

  • gcd.netlist.syn.v - Yosys综合的网表文件
  • synth_stat.txt - Yosys综合的面积报告
  • synth_check.txt - Yosys综合的检查报告, 用户需仔细阅读并决定是否需要排除相应警告
  • yosys.log - Yosys综合的完整日志
  • gcd.netlist.fixed.v - iNO优化扇出后的网表文件
  • fix-fanout.log - iNO优化扇出的日志
  • gcd.rpt - iSTA的时序分析报告, 包含WNS, TNS和时序路径
  • gcd.cap - iSTA的电容违例报告
  • gcd.fanout - iSTA的扇出违例报告
  • gcd.trans - iSTA的转换时间违例报告
  • gcd_hold.skew - iSTA的hold模式下时钟偏斜报告
  • gcd_setup.skew - iSTA的setup模式下时钟偏斜报告
  • sta.log - iSTA的日志

评估其他设计

有两种操作方式:

  1. 命令行传参方式, 在命令行中指定其他设计的信息
    make sta DESIGN=mydesign SDC_FILE=/path/to/my.sdc RTL_FILES="/path/to/mydesign.v /path/to/xxx.v ..." CLK_FREQ_MHZ=100
  2. 修改变量方式, 在Makefile中修改上述变量, 然后运行make sta

注意:

  • RTL_FILES的文件中必须包含一个名为DESIGN的module
  • sdc文件中的时钟端口名称需要与设计文件保持一致, 具体内容可参考样例设计GCD中的相应文件

Bug报告

如果在运行时遇到bug, 可在issue中报告问题, 并提供如下信息:

  1. 相应的RTL设计
  2. sdc文件
  3. yosys生成的网表文件
  4. iEDA的版本号, 可通过命令echo exit | ./bin/iEDA -v获取