時(shí)序約束出現(xiàn)時(shí)序違例(Slack為負(fù)數(shù)),如何處理?
答:
一. 首先指出一個(gè)誤區(qū):當(dāng)約束出現(xiàn)錯(cuò)誤時(shí),想當(dāng)然地認(rèn)為是“時(shí)序約束做得不對(duì)”,所以應(yīng)該怎么去改“時(shí)序約束”,從而讓這些錯(cuò)誤消失,這是一個(gè)錯(cuò)誤的觀念。
二. 時(shí)序約束的作用:在于檢查“設(shè)計(jì)是否滿足時(shí)序要求”,它是用來(lái)審視自己設(shè)計(jì)的,很多情況是,要改設(shè)計(jì)代碼來(lái)滿足時(shí)序要求。
三. 當(dāng)時(shí)序約束提示有錯(cuò)誤時(shí),應(yīng)該閱讀“時(shí)序報(bào)告”,從報(bào)告中分析時(shí)序路徑(數(shù)據(jù)到達(dá)時(shí)間、時(shí)鐘到達(dá)時(shí)間和數(shù)據(jù)要求時(shí)間等),根據(jù)報(bào)告分析錯(cuò)誤的原因,并根據(jù)原因來(lái)實(shí)行不同的方法。
以建立時(shí)間違例,說(shuō)明具體方法如下:
1. 時(shí)序報(bào)告中,找到提示錯(cuò)誤的路徑,即目的寄存器,以及源寄存器。注意,這是兩個(gè)寄存器的點(diǎn)。
2. 首先判斷,源寄存器的時(shí)鐘,與目的寄存器的時(shí)鐘,是否相同。如果不同,可以認(rèn)為是異步時(shí)序,見步驟3;如果是相同,則看步驟4。
3. 如果是異步電路,那么處理方法如下:
A. 確認(rèn)做了異步處理。對(duì)于數(shù)據(jù),則是通過(guò)異步FIFO來(lái)做異步處理;如果是控制信號(hào),則要經(jīng)過(guò)打兩拍來(lái)處理。
B. 確認(rèn)做了異步處理后,仍然會(huì)報(bào)“時(shí)序違例”的。這個(gè)時(shí)候,可以該路徑設(shè)置成set false path,不用再檢查。
4. 同步電路下,具體處理如下:
A. 查看兩個(gè)寄存器點(diǎn)之間,經(jīng)過(guò)了多少加法器、乘法器、除法器等。
B. 對(duì)于除法器,要特別留意,一般是1個(gè)時(shí)鐘計(jì)算不完的。那么可以 a.想辦法不用除法;b. 通過(guò)使能信號(hào)控制獲取除法器結(jié)果的時(shí)間。
C. 對(duì)于乘法器和加法器,或者其他組合電路較多的。想辦法分隔成流水線來(lái)實(shí)現(xiàn)??梢詤⒖糓DY 流水線的內(nèi)容。
5. 如果是IP核的違例,檢查是否時(shí)鐘不滿足IP核的要求。如果沒問(wèn)題,就不用管。
6. 如果是ILA等在線調(diào)試工具路線的違例,則一般不用處理。
7. 如果是線延時(shí)太長(zhǎng)的,可以嘗試打一拍處理。即A->B的線太長(zhǎng),可以打一拍,變成A->C->B,這樣線延時(shí)就小了。
審核編輯:湯梓紅
-
fifo
+關(guān)注
關(guān)注
3文章
400瀏覽量
44745 -
加法器
+關(guān)注
關(guān)注
6文章
183瀏覽量
30709 -
時(shí)序約束
+關(guān)注
關(guān)注
1文章
118瀏覽量
13658
發(fā)布評(píng)論請(qǐng)先 登錄
VIVADO時(shí)序約束及STA基礎(chǔ)
時(shí)序分析總結(jié)(以SDRAM時(shí)序約束為例)
ISE 時(shí)序約束
出現(xiàn)時(shí)序違例的原因及解決辦法
時(shí)序約束與時(shí)序分析 ppt教程
時(shí)序約束用戶指南
FPGA中的時(shí)序約束設(shè)計(jì)

深入了解時(shí)序約束以及如何利用時(shí)序約束實(shí)現(xiàn)FPGA 設(shè)計(jì)的最優(yōu)結(jié)果

時(shí)序約束的四大步驟的具體介紹

時(shí)序約束的步驟分析

Vivado時(shí)序案例分析之解脈沖寬度違例

評(píng)論