Formality流程
- 前言
- 一、formality是什么?
- 二、使用步骤
- 0.打开formality的gui界面
- 1.导入svf文件
- 2.读入verilog文件
- 3.读入网表文件
- 4.setup
- 5.match and verify
- 6.注意事项
🔈声明:
🔑未经作者允许,禁止转载
🚩推荐一个IC、FPGA新手入门的好网站:👉快 点 击 学 习 吧
前言
由于项目后期需要完成一个rtl和网表之间的形式验证,需要用synopsys的formality来完成,由于第一次接触,也摸索了将近三天才能上手使用,记录一下整个flow的过程
一、formality是什么?
formality是S家的形式验证的工具,形式验证故名思意是完成一个表面逻辑的验证,通过导入rtl代码和DC综合后的门级网表,验证前后逻辑是否一致,是否DC将部分逻辑消除了。
二、使用步骤
0.打开formality的gui界面
只需要在终端输入formality就可以打开gui界面了
1.导入svf文件
svf文件是DC综合过程中产生的文件,用来记录DC对网表产生的一些变化,防止后续的rtl和门级网表对应不上的问题。
2.读入verilog文件
第二步就是读入rtl级代码了,但是此处需要注意两点
- 一.是否用到了IP,如果用到了IP,那么不需要在read design files 中将verilog代码读入,而是在后续的read DB libraries 中读入IP的db文件即可。
- 二.是否在design中直接用到了工艺库中的module,如果用到了需要在options中设置。 具体如下图
- 首先在options中的variables的designware root directroy中选择DC安装的路径。
- 然后在VCS style options选项卡中的library file中选择应用的工艺库的.v文件,并add
- 最后在set top design中选择顶层module进行set top,成功后ref上会出现绿色小勾。
3.读入网表文件
在impl栏中同样也是读入design 和 db ,只不过这里要读的是网表的design和db,
和步骤二类似,如果调用了pdks的设计,也要在options中设置,而db读入过程中除了要读入IP的db,还要读入pdks的db。最后设置set top,成功后同样会出现绿色小勾
4.setup
setup好像是为了带有扫描链和DFT的设计准备的,本人暂时还没用过
5.match and verify
全部设置完就可以,mathc and verify了,如果通过的话会提示verify succeed。如果失败的话会具体提示哪些部分验证不上。比如
6.注意事项
这里有一个很重要的点,DC 的set_svf一定要放在脚本最前面,否则有些改变不会记录下来,我就是因为这个原因有两个FF一直unmatch,还以为是latcg的问题,其实
set verification_clock_gate_edge_analysis true
这条语句可以将DC生成的latcg作用屏蔽。