當設(shè)計存在多個時鐘時,根據(jù)時鐘的相位和頻率關(guān)系,分為同步時鐘和異步時鐘,這兩類要分別討論其約束
1、同步時鐘
考慮分頻器產(chǎn)生的各個時鐘,它們來源于同一個晶振,受主時鐘調(diào)配。如下圖所示,由3GHz的時鐘進行9、6、4、3分頻產(chǎn)生clka,clkc,clkd,clke。
為了約束我們設(shè)計的邏輯N,X和S,需要給出clkc的周期、邏輯N的外部延時,邏輯S的外部延時。
對于邏輯N而言,由clka產(chǎn)生數(shù)據(jù),clkc采樣數(shù)據(jù),在它們周期的最小公倍數(shù)內(nèi),最嚴格的時序是3ns產(chǎn)生數(shù)據(jù),在4ns采樣。只要保證最嚴格的情形下,電路正常工作,其他時候都沒問題
當我們寫時序約束時,只需要創(chuàng)建時鐘,其中clka為虛擬時鐘,然后set_input_delay通過-clock指定產(chǎn)生數(shù)據(jù)的時鐘,給出clka產(chǎn)生的數(shù)據(jù)延時(觸發(fā)器+組合邏輯)
可見,寫約束還是更簡單,計算由時序分析工具處理。我們要提供產(chǎn)生數(shù)據(jù)的時鐘和數(shù)據(jù)延時即可
對于輸出數(shù)據(jù),可以驅(qū)動多個單元。如下圖所示,clkc的輸出OUT1會經(jīng)過組合邏輯被clkd和clke采樣。設(shè)置約束,同樣創(chuàng)建外部的虛擬時鐘,然后set_output_delay,指定采樣時鐘和外部延時。另外,增加-add_delay選項避免被覆蓋,表示讓時序工具計算兩條約束,選擇更嚴格的進行分析
在DC中,所有時鐘都是同步的,即create_clock并不能創(chuàng)建異步時鐘,異步電路靜態(tài)時序分析不適合。
2、異步時鐘
考慮不同時鐘源的電路,由于每個時鐘源獨立工作,它們諸如延遲、轉(zhuǎn)換時間等不一定一致,時鐘之間的相位不固定,表現(xiàn)出異步電路。
異步電路要減少亞穩(wěn)態(tài)產(chǎn)生,是設(shè)計者負責亞穩(wěn)態(tài)處理,別指望工具幫助處理。我們需要在每個時鐘域內(nèi)約束路徑,然后告訴工具不要檢查跨時鐘域路徑。(否則工具會努力讓該路徑滿足要求,導致浪費時間)
下圖中,clka驅(qū)動的數(shù)據(jù)被clkb采樣。很顯然,兩個不同時鐘的觸發(fā)器之間的路徑都要告訴工具不要檢查。
DC中,使用set_false_path告訴工具不要在指定的路徑分析
通過-from指定路徑起點,可以是clock、port、pin和cell,clock作為起點,所有和該clock有關(guān)的路徑都會被影響。通過-to指定路徑終點,類似于from。
約束如下,使用-from clock能夠簡化,不用將路徑一一列舉。
-
時鐘
+關(guān)注
關(guān)注
11文章
1747瀏覽量
131835 -
異步時鐘
+關(guān)注
關(guān)注
0文章
17瀏覽量
9428 -
同步時鐘
+關(guān)注
關(guān)注
0文章
50瀏覽量
3293
發(fā)布評論請先 登錄
相關(guān)推薦
FPGA的IO口時序約束分析
FPGA主時鐘約束詳解 Vivado添加時序約束方法
![FPGA主<b class='flag-5'>時鐘</b><b class='flag-5'>約束</b>詳解 Vivado添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>方法](https://file1.elecfans.com/web2/M00/89/44/wKgZomR-_LyAXydsAAC63BOnXvo730.jpg)
FPGA時序約束之衍生時鐘約束和時鐘分組約束
FPGA開發(fā)之時序約束(周期約束)
如何使用時序約束向?qū)?/a>
![如何使用<b class='flag-5'>時序</b><b class='flag-5'>約束</b>向?qū)? /> </a>
</div> <div id=](https://file.elecfans.com/web1/M00/71/62/pIYBAFv1NTuAW3o8AAAtJrf6ToU492.jpg)
FPGA設(shè)計之時序約束
![FPGA設(shè)計之<b class='flag-5'>時序</b><b class='flag-5'>約束</b>](https://file.elecfans.com/web2/M00/36/85/poYBAGIz7-yAStU8AACt9jp9dvk929.png)
評論