scan chain
1.定义:
满足可测试性设计(DFT),将设计中所有的触发器连接到一条或者若干条链上,称为scan chain。将一个复杂的时序电路转换为简单的组合电路进行测试。这一步是在逻辑综合(DC)中实现.
当SE=1时,电路进入scan状态,当SI=0时,电路工作在normal状态。
2.为什么进行scan chain reordering:
在DC综合阶段,工具没有寄存器的物理位置信息,按照字母顺序做scan chain的插入,连接方式并不是最优的。
在ICC中place是基于time和congestion driven,所以原来寄存器在scan chain 中是前后级关系,在ICC中可能离得比较远,导致寄存器SI端走线很乱,加重design中的congestion issue问题。
3.如何做reordering
首先在逻辑综合阶段,写出scandef,其次在ICC中读入对应的scandef
import_def scan.def
在place_optimize和post_cts_opt命令进行reordering scan chain。
做了reordering scan chain之后,相邻的寄存器连线很近,会导致hold违例较多,因此在place阶段重排序之后,务必在cts_opt阶段继续做进一步优化。
4.Scan.def 的结构
若case中已经有scan chain,可以通过下面命令直接输出scan.def和top.v文件
export_def -scan scan.def
export_verilog top.v
5.完整Scan.def 的结构