當(dāng)設(shè)計(jì)存在多個(gè)時(shí)鐘時(shí),根據(jù)時(shí)鐘的相位和頻率關(guān)系,分為同步時(shí)鐘和異步時(shí)鐘,這兩類要分別討論其約束
1、同步時(shí)鐘
考慮分頻器產(chǎn)生的各個(gè)時(shí)鐘,它們來(lái)源于同一個(gè)晶振,受主時(shí)鐘調(diào)配。如下圖所示,由3GHz的時(shí)鐘進(jìn)行9、6、4、3分頻產(chǎn)生clka,clkc,clkd,clke。
為了約束我們?cè)O(shè)計(jì)的邏輯N,X和S,需要給出clkc的周期、邏輯N的外部延時(shí),邏輯S的外部延時(shí)。
對(duì)于邏輯N而言,由clka產(chǎn)生數(shù)據(jù),clkc采樣數(shù)據(jù),在它們周期的最小公倍數(shù)內(nèi),最嚴(yán)格的時(shí)序是3ns產(chǎn)生數(shù)據(jù),在4ns采樣。只要保證最嚴(yán)格的情形下,電路正常工作,其他時(shí)候都沒(méi)問(wèn)題
當(dāng)我們寫時(shí)序約束時(shí),只需要?jiǎng)?chuàng)建時(shí)鐘,其中clka為虛擬時(shí)鐘,然后set_input_delay通過(guò)-clock指定產(chǎn)生數(shù)據(jù)的時(shí)鐘,給出clka產(chǎn)生的數(shù)據(jù)延時(shí)(觸發(fā)器+組合邏輯)
可見(jiàn),寫約束還是更簡(jiǎn)單,計(jì)算由時(shí)序分析工具處理。我們要提供產(chǎn)生數(shù)據(jù)的時(shí)鐘和數(shù)據(jù)延時(shí)即可
對(duì)于輸出數(shù)據(jù),可以驅(qū)動(dòng)多個(gè)單元。如下圖所示,clkc的輸出OUT1會(huì)經(jīng)過(guò)組合邏輯被clkd和clke采樣。設(shè)置約束,同樣創(chuàng)建外部的虛擬時(shí)鐘,然后set_output_delay,指定采樣時(shí)鐘和外部延時(shí)。另外,增加-add_delay選項(xiàng)避免被覆蓋,表示讓時(shí)序工具計(jì)算兩條約束,選擇更嚴(yán)格的進(jìn)行分析
在DC中,所有時(shí)鐘都是同步的,即create_clock并不能創(chuàng)建異步時(shí)鐘,異步電路靜態(tài)時(shí)序分析不適合。
2、異步時(shí)鐘
考慮不同時(shí)鐘源的電路,由于每個(gè)時(shí)鐘源獨(dú)立工作,它們諸如延遲、轉(zhuǎn)換時(shí)間等不一定一致,時(shí)鐘之間的相位不固定,表現(xiàn)出異步電路。
異步電路要減少亞穩(wěn)態(tài)產(chǎn)生,是設(shè)計(jì)者負(fù)責(zé)亞穩(wěn)態(tài)處理,別指望工具幫助處理。我們需要在每個(gè)時(shí)鐘域內(nèi)約束路徑,然后告訴工具不要檢查跨時(shí)鐘域路徑。(否則工具會(huì)努力讓該路徑滿足要求,導(dǎo)致浪費(fèi)時(shí)間)
下圖中,clka驅(qū)動(dòng)的數(shù)據(jù)被clkb采樣。很顯然,兩個(gè)不同時(shí)鐘的觸發(fā)器之間的路徑都要告訴工具不要檢查。
DC中,使用set_false_path告訴工具不要在指定的路徑分析
通過(guò)-from指定路徑起點(diǎn),可以是clock、port、pin和cell,clock作為起點(diǎn),所有和該clock有關(guān)的路徑都會(huì)被影響。通過(guò)-to指定路徑終點(diǎn),類似于from。
約束如下,使用-from clock能夠簡(jiǎn)化,不用將路徑一一列舉。
-
時(shí)鐘
+關(guān)注
關(guān)注
10文章
1714瀏覽量
131277 -
異步時(shí)鐘
+關(guān)注
關(guān)注
0文章
17瀏覽量
9399 -
同步時(shí)鐘
+關(guān)注
關(guān)注
0文章
44瀏覽量
3213
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論