关于最近项目数字前端FLOW的一些总结

1.插入scan链需要注意scan_clk/scan_en/scan_in/scan_out/scan_cmpsen的定义
其中scan_clk/scan_en/scan_in/scan_out需要复用4个PIN;
scan_cmpsen可以省一个内部在scan_mode下切成1也可以
2.scan_mode寄存器,复位信号不能被scan_mode切换
3.进入scan模式后,scan_mode寄存器锁死,此时芯片没有function功能,必须断电复位
4.切scan模式后,需要主要时钟和复位的切换,时钟都切到scan_clk;复位都切为释放复位
5.切scan模式,注意数模接口一版切为默认值;但是有特殊要求的,特别是GPIO控制信号,不能把复用scan控制信号的GPIO切走了,一般需要和模拟实际人员商量
6.若设计中存在时钟互采样(如高频采低频),切scan的时候由于时钟均切到scan_clk,此时会出现scan_clk采样自己的情况,所以在scan模式下需要将输入D端的时钟信号切到任意一个寄存器输出信号即可。

7.DC综合阶段,由于读入的是模拟模块,例如:模拟顶层、GPIO模型等都是假的,数字自己生成的。所以若有scan链插入需要,则需要在自己生成的GPIO或者模拟顶层LIB里面,定义接口逻辑(用综合库lib的语言定义);再将LIB转化成db.再进行综合插入scan.
定义接口逻辑这句话理解就是,比如顶层PIN 名字叫SCL,复用scan_in的输入PIN,该PIN是GPIO;该PIN inout端口是P,输出是I;就在lib里面描述出 I = IE ? P : 1’bz;这一关系,表示该PIN复用为SCAN的逻辑关系

8.综合完成后,需要认真查看报告

9.进行formality比对时,若出现长时间比对不出结果的情况。很可能时工具对某些逻辑进行了深度优化。此时,可设置formality timeout时间,timeout后会通过命令吐出难比对的逻辑;
通过在DC脚本里,对该逻辑部分设置 set_verification_priority - high [get_designs {xxxxx}]
重新综合比对;若还是不行只能更换低版本工具

10.scan模式复用的scan_out PIN输出频率必须和模拟确认能达到10M(根据scan clk约束定)
11.scan链每条链cell数越少,对于有的设计可能PR前scan 覆盖率很高,PR后覆盖率异常降低;DC综合时可通过默认设置压缩比10%,来控制 set_scan_compression_configuration -minimum_compression 10
12. ECO时,对于存在scan的设计,若要对寄存器设计进行逻辑改动,要注意对应工具插入的寄存器的门控时钟使能信号是否同步改动
13. ECO对于时钟切换的增加,为免把scan 链打断,一般切换完时钟后,会用scan_mode再切一下,保证scan mode时把新增逻辑引入scan链导致scan 链断开;但引入的mux可能会导致时序紧张,所以一版会在scan逻辑之前把时钟切好,这样切换完时钟后不需要新增mux去切一次时钟
14. 带scan设计的ECO时,需要先跑一次Formality生成生成一版svf文件。再把svf文件里的guide_scan_input关键字的相关设置注释掉,然后formality时重新吃改完之后的svf文件,再重新跑一版formality,之后每次的ECO改动比对,都必须吃这个svf文件;这样可确保若涉及到scan相关输入PIN的function 功能改动,所得到的比对结果才是可靠的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值