當PR工具導入scanchain的scandef,用于reorder,但是報錯說scan chain里面的cell在db數據庫里面沒有?難道是scandef和網表版本對不上?
SCAN DFF的網表對用如下,熟悉DC、DFT(SCAN部分)、PR的同學應該很快就發現問題所在。
重新吐出網表后,PR工具正常讀取scandef
scan def的語法我們先回顧一下。以一個異步FIFO設計的PR版圖來看scan chain,一目了然:
通常使用DEF文件來定義掃描連,一般稱為scan def,以下圖異步FIFO的scan DEF語句來說明:
1)SCANCHAINS SCANCHAINS 3 ;表示stub chain的數量為3。
為什么有個stubchain?
注意,scandef里面的stub chain個數與設計中的實際scan chain個數不一定相同。
如上圖,因異步FIFO讀寫時鐘之間的scan chain用LOCKUP隔斷,C1被分成C1_SG1、C1_SG2,即一條實際的scan chain在scandef中被拆分成兩條stub chain。該類stub chain的名字(在scandef文件中以 “-”開頭的參數)中會有SG標志字符:
2)+ START stub chain的開始標志。注意,+ START/+ STOP可以是scan I/O ports, codec logic gates, lockup latches, reconfiguration MUXs, or buffer/inverter pins。
比如:LOCKUP的Q端作為+START:
內部寄存器(如retiming flipflop例化了非scan cell的DFF):
+ START U_TOP/RETIMING_FLOP Q 外部管腳使用以下格式:
+ START PIN winc
3)+ STOP stub chain的結束標志,如異步FIFO網表中LOCKUP插入后:
+ STOP LOCKUP D ;
內部寄存器(如retiming flipflop例化了非scan cell的DFF):
+ STOPU_TOP/RETIMING_FLOP D 或者內部MUX:
4)+FLOATING 表示一條stub chain中可以reorder/partition的scan cell。
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終點。
6)+ PARTITION 表示有相同PARTITION名的stub chain可以進行重新劃分(repartition),如:
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。
審核編輯:劉清
-
寄存器
+關注
關注
31文章
5336瀏覽量
120230 -
DFT
+關注
關注
2文章
231瀏覽量
22712 -
FIFO芯片
+關注
關注
0文章
10瀏覽量
8803 -
Mux
+關注
關注
0文章
38瀏覽量
23372 -
Scan
+關注
關注
0文章
12瀏覽量
3540
原文標題:debug這個問題,貫通了DC、DFT、P&R
文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論