一、DFF的類型介紹
寄存器默認(rèn)值,也叫復(fù)位值,是當(dāng)reset或者set有效時(shí)寄存器輸出的值。對(duì)于一個(gè)DFF來(lái)說(shuō),如下圖,當(dāng)reset為0時(shí),Q輸出0;當(dāng)set為0時(shí),Q輸出為1(外部使用時(shí)保證reset與set不同時(shí)為0)。
(圖一)
也就是說(shuō),當(dāng)需要復(fù)位值為1時(shí),把set拉低;當(dāng)需要復(fù)位值為0時(shí),把reset拉低,如下圖。一般來(lái)說(shuō)寄存器的默認(rèn)值不是1就是0,所以接死掉的reset和set pin就可以省掉。
(圖二)
因此,stdcell庫(kù)里的dff可以分成以下幾種:
DFFSR,同時(shí)帶set和reset pin
DFFR,只帶reset pin
DFFS,只帶set pin
另外,QN是Q的取反,很多時(shí)候只需要用到其中的一個(gè),所以QN也不一定有。總結(jié)成下表:
帶QN | 不帶QN |
DFFSRN | DFFSR |
DFFRN | DFFR |
DFFSN | DFFS |
(表一)
二、修改默認(rèn)值的方法
方法一:如果DFF同時(shí)帶RN和SN,交換RN和SN的連線
這種方法最簡(jiǎn)單,premask和postmask eco都適用。但一般自動(dòng)綜合工具是不會(huì)同時(shí)用同時(shí)帶RN和SN的DFF的,因?yàn)檫@樣面積不是最優(yōu)。所以需要在綜合階段人為強(qiáng)制讓綜合工具只用同時(shí)帶RN和SN的DFF,如果面積不是瓶頸的情況下。
方法二:如果只帶RN或者SN,換DFF類型(Premask ECO)
在Premask ECO時(shí),我們完全可以像重新綜合的網(wǎng)表一樣直接換DFF類型。這種方法對(duì)于premask eco非常友好,不需要增加邏輯單元,也不會(huì)惡化時(shí)序。
方法三:如果只帶RN或者SN,互換DFF(Postmask ECO)
在Postmask ECO時(shí),我們沒(méi)辦法隨意替換DFF類型。因?yàn)镈FF的個(gè)數(shù)和類型是固定的,這時(shí)只能修改金屬層。
如果修改默認(rèn)值的兩個(gè)dff,一個(gè)需要“0變1”,另一個(gè)需要“1變0”,且這兩個(gè)dff物理位置很近,那么可以互換這兩個(gè)dff的連線。如果是同一個(gè)時(shí)鐘域、復(fù)位域,那么就只需要交換D、RN(SN)、Q/QN這三組pin。
這個(gè)方法除了上面提到的限制,還有如果“0變1”和“1變0”的dff個(gè)數(shù)不相等,那么就無(wú)法完全交換成功。
方法四:如果只帶RN或者SN,D和Q端插inverter(Postmask ECO)
這是一種普遍適用的方法,只需要在D和Q端各插一個(gè)inverter。如果帶QN,又可以省一個(gè)inverter。如下圖,通過(guò)反相器可以等價(jià)變換只帶RN或SN的DFF。
(圖三)
(圖四)
這種替換方法操作簡(jiǎn)單,易實(shí)現(xiàn),不會(huì)帶來(lái)連線擁擠,利于DRC收斂。因?yàn)椴恍枰薷臅r(shí)鐘pin,不會(huì)動(dòng)到時(shí)鐘樹(shù),只需要數(shù)據(jù)通路插入一個(gè)inverter,所以對(duì)時(shí)序影響也非常小。
但這個(gè)方法也會(huì)帶來(lái)一個(gè)問(wèn)題,就是在做LEC(邏輯等價(jià)性檢查)時(shí),需要讓工具開(kāi)啟phase inversion的檢測(cè),不然會(huì)報(bào)很多虛假non equal。
三、使用GOF來(lái)自動(dòng)修改寄存器的默認(rèn)值
方法二:換DFF類型(Premask ECO)
set_top("digital_top");run_lec;fix_design();run_lec();report_eco;
GOF默認(rèn)就是用換DFF類型的方法,所以自動(dòng)ECO腳本比較簡(jiǎn)潔,讀進(jìn)library和design后,先run_lec確認(rèn)待eco的點(diǎn)是否正確,接下來(lái)做ECO,做完后再運(yùn)行一次run_lec確認(rèn)是否eco成功。
方法四:D和Q端插inverter(Postmask ECO)
set_top("digital_top");set_flop_default_eco(1);run_lec;fix_design();set_top("digital_top");set_mapping_method("-phase");run_lec();report_eco;
與方法二相比,需要設(shè)置修改寄存器的方式后,再做ECO。做完ECO后需要設(shè)置phase inversion,讓工具自動(dòng)檢測(cè)phase inversion的keypoint,以防虛假的non equal。
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5325瀏覽量
120052 -
dff
+關(guān)注
關(guān)注
0文章
26瀏覽量
3400
原文標(biāo)題:談?wù)勑薷募拇嫫髂J(rèn)值的幾種方法和實(shí)現(xiàn)
文章出處:【微信號(hào):ExASIC,微信公眾號(hào):ExASIC】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論