debug这个问题,贯通了DC、DFT、P&R

描述

当PR工具导入scanchain的scandef,用于reorder,但是报错说scan chain里面的cell在db数据库里面没有?难道是scandef和网表版本对不上?

Scan

Scan

SCAN DFF的网表对用如下,熟悉DC、DFT(SCAN部分)、PR的同学应该很快就发现问题所在。

Scan

重新吐出网表后,PR工具正常读取scandef

Scan

scan def的语法我们先回顾一下。以一个异步FIFO设计的PR版图来看scan chain,一目了然:

Scan

通常使用DEF文件来定义扫描连,一般称为scan def,以下图异步FIFO的scan DEF语句来说明:

Scan

1) SCANCHAINS    SCANCHAINS 3 ;表示stub chain的数量为3。    

为什么有个stub chain?    

注意,scandef里面的stub chain个数与设计中的实际scan chain个数不一定相同。  

 如上图,因异步FIFO读写时钟之间的scan chain用LOCKUP隔断,C1被分成C1_SG1、C1_SG2,即一条实际的scan chain在scandef中被拆分成两条stub chain。该类stub chain的名字(在scandef文件中以 “-”开头的参数)中会有SG标志字符:

 Scan

2) + START stub chain的开始标志。注意,+ START/+ STOP可以是scan I/O ports, codec logic gates, lockup latches, reconfiguration MUXs, or buffer/inverter pins。    

比如:LOCKUP的Q端作为+ START:

Scan

内部寄存器(如retiming flipflop例化了非scan cell的DFF):   

+ START  U_TOP/RETIMING_FLOP Q    外部管脚使用以下格式:    

+ START PIN winc

Scan

 3) + STOP stub chain的结束标志,如异步FIFO网表中LOCKUP插入后:    

 + STOP LOCKUP D ;

Scan

内部寄存器(如retiming flipflop例化了非scan cell的DFF):    

+ STOP U_TOP/RETIMING_FLOP D   或者内部MUX:

Scan

  4)+ FLOATING 表示一条stub chain中可以reorder/partition的scan cell。

Scan

  5) + ORDERED 表示一条stub chain中不可以重排序,上图可以看出,异步FIFO同步器synchronizer两个打拍寄存器就是ORDERED。 为什么不能reorder呢,有如下三个原因:

shift registers;

用命令set_scan_path -ordered_elements定义的scan segments;

buffers or inverters between scan cells;

也就是说:+ ORDERED 表示需要放在一起的单元,如下图中out_reg_4与u_buf就是ORDERED单元,用方框圈出 scan chain终点。

Scan

Scan

6)+ PARTITION 表示有相同PARTITION名的stub chain可以进行重新划分(repartition),如:

Scan

  7) + BITS The BITS attribute表示的是a scan element that represent multiple scan bits. This allows complex scan cells, such as DFT-inserted cores, to be represented in abstract form. 通常说的一个scan cell扫描单元就是指的1bit scan cell。  





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分