Formality流程

🔈声明:
🔑未经作者允许,禁止转载
🚩推荐一个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作用屏蔽。




最后给大家安利一个好网站:
  Verilog的学习还是要多以练习为主,想要练习Verilog的同学,推荐可以去nowcoder看看,他们现在的题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享一站式求职学习网站,最最最重要的里面的资源全部免费




  • 21
    点赞
  • 185
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值