"); //-->
今天着重分析下扫描单元替换(scan replacement)的内容。所谓scan replacement,顾名思意就是在设计中用扫描单元替代非扫描单元。如果设计是以RTL形式给出的,则在RTL综合成门级网表的过程中自动插入扫描单元。如果设计是以门级网表给出来的,则专门做一次扫描替换。
流程:1.选择扫描链的策略---> 2.test DRC检查---> 3.带扫描链的综合
在做扫描链之前,还需要考虑下面问题:
1 .根据目前设计的格式,选择插入扫描链的流程。
如果是RTL或者未优化的门级设计,则采用test-ready Compile,如果是优化的门级设计,采用constraint-optimized 插入方式。test-ready Compile包括逻辑优化和扫描链插入。采用的命令就是 compile -scan。优点就是流程简单,能够得到更好时序和面积。注意test-ready Compile只是将单元替代,并没有将扫描单元连接起来。
2.找出扫描替代的障碍。
障碍有很多种啊,比如本身工艺库就不提供扫描单元,或者某些寄存器找不到相对应的扫描单元,或者设计本身有dont_touch属性或者scan_element属性为false等等。
(set_scan_element truefalse [get_cells ADA])
扫描链类型本身有带mux的寄存器,LSSD,clocked SD。具体选择那一个要考虑到工艺库和本身的设计,一般采用带mux的寄存器。有两种方式来设置扫描链的类型,一种就是设计 test_default_scan_style变量。设置的方法跟tcl设置变量的方法一样,默认的是multiplexed_flip_flop。另一种设置的方式是set_scan_configuration -style来设置。
(tips:如何查看typical库中是否有扫描单元呢。
get_pins typical/*/* -filter "signal_type==test_scan_in")
在插入扫描链的过程中,可以指定扫描单元。使用的命令是set_scan_register_type。选项有- exact和-type,如果使用了exact选项,则在后面的优化过程中(compile -increment)仍然会保留只使用type列表中的扫描单元。(注意DC命令中类似的命令就是set_register_type)。
下面说说constraint-optimized的扫描链插入流程。包括插入扫描链,根据约束优化扫描逻辑,修正DRC错误。对于这种流程,输入可以是优化后的门级网表,可以不包含扫描单元,也可以包含扫描单元。这里需要用到的命令有:
set_drc_configuration
preview_dft.
这些命令以后再深入学习把。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
硅生命周期管理对芯片架构的现实影响
光纤制导导弹关键技术
新颖红外遥控开关电原理图
这个AI能在石头剪刀布上打败你:储层计算芯片提供快速且低功耗的预测
美国计划自1970年代以来最大规模的核能项目
CP900编程器使用指南 V1.0
跪求mpc8540的bsp
Numonyx相变存储器介绍
意法半导体STM8L低能耗系列MCU技术演示
CP932编程器使用指南
电网级的泡泡电池很快就会普及
环境能源管理器处理两种能量收集源
可遥控负载保护器
报警电子狗
通用红外遥控开关
宣城立讯入选IPC QML验证制造商名录,树立汽车电子可靠性新标杆
我们现在知道火星上的时钟会快得多
国外军用飞艇装备技术发展
CP900编程器软件 V1.0
求交换tau sdl suite?
CP932编程器使用指南 (英)
急问Tornado问题
诚聘
我们会在看到通用人工智能时认出它吗?
虚拟同步机可以帮助稳定电网
CP932编程软件 (英)
QQ组\"嵌入式系统开发\"聊聊贴贴[20050322]
国外巡飞弹技术发展
人体红外热释报警器
2026内存危机:手机电脑涨价,竟因AI抢走了所有芯片?