scan chain的原理和实现——6.scan architecture

set_scan_configuration

此命令用于指定扫描属性,例如: 扫描方式、扫描链数或扫描链长度、处理多个时钟、lock-up、扫描链中省略的寄存器。

set_scan_configuration -style multiplexed_flip_flop I lssd l clocked_scan | aux_clock _lssd l combinational l none

            -clock_mixing no_mix l mix_edges l mix_clocks l mix_clocks_not_edges  指定扫描综合是否将在同一链上建立具有不同时钟域的扫描链,在同一链上混合时钟域通常需要在域交叉处插入锁存锁存器。

            -chain_count integer_or_default*    指定要构建的扫描链数。 默认情况下,给定时钟混合约束  

            -max_length integer_or_default*    insert_dft会在不超过指定长度的情况下构建扫描链

            -exact_length integer_or_default*     insert_dft构建, 尽可能扫描具有指定长度的链

            -create_dedicated_scan_ports true l false   寻找直接驱动输出端口的触发器,将此触发器放在扫描链的尾端。

            -internal_clocks  none l single | multi

               -test_mode   <mode_name>       在一个insert_dft任务中可以支持多种扫描配置,其中每个扫描配置都具有唯一的test_mode名称  

            -exclude_elements  <element_list>  扫描链中应排除的元素列表

           -add_lockup true l false    跨越不同的时钟域时加入latch

           -insert_terminal_lockup true l false  如果为true,则insert_dft在扫描链的末尾插入lock-up,如果不是multiplexed_flip_flop,则忽略

           -lockup_type latch l flip_flop    指定是使用latch还是将FF用作lock-up synchronization

使用lock-up latch

lock-up latch(或flip-flops)用于允许扫描链跨越时钟域,它们减轻了两个时钟域之间的偏斜,以确保在扫描链上可靠地转移数据。

 插入lock-up latch规则

+edge(上升沿)   -edge(下降沿)

+edge to +edge ——Lock-up Latch OK

-edge to -edge ——Lock-up Latch OK

+edge to -edge ——不会在DFTC中发生

-edge to +edge ——无需添加lock-up latch,如果添加了会有潜在的hold time问题


-edge to -edge triggered devicesLock-up Latch OK
+edge to +edge triggered devices
Will never happen by default in DFTC since it willalways order later triggered devices earlier in thechain
-edge to +edge triggered devices口No Lock-up Latch needed
Potential hold time issue if added

原文地址:https://www.cnblogs.com/yilia-er/p/14192775.html