《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > FPGA教學(xué)——FPGA 時序約束之如何查看時序錯誤

FPGA教學(xué)——FPGA 時序約束之如何查看時序錯誤

2022-08-10
來源:FPGA設(shè)計論壇
關(guān)鍵詞: FPGA 時序約束 時序錯誤

  1,、時序錯誤的影響

  一個設(shè)計的時序報告中,design run 時序有紅色,裕量(slack)為負(fù)數(shù)時,,表示時序約束出現(xiàn)違例,,雖然個別違例不代表你的工程就有致命的問題,,但是這是一個風(fēng)險(時序報告是按照工藝,、電壓以及溫度的上下限給出的結(jié)果)。當(dāng)違例數(shù)較多,,也就意味著設(shè)計在實際環(huán)境中出現(xiàn)問題的概率也會越大,。

  時間裕量包括建立時間裕量和保持時間裕量(setup slack和hold slack)。從字面上理解,,所謂“裕量”即富余的,、多出的。什么意思呢,?即保持最低要求的建立時間或保持時間所多出的時間,,那么“裕量”越多,意味著時序約束越寬松,。

  2,、如何查看具體錯誤的時序路徑

 微信截圖_20220810143756.png

  上述錯誤的時序,雙擊可以看到詳細(xì)的時鐘路徑和數(shù)據(jù)路徑,,右鍵可以看到具體代碼中的原理圖,。個人比較喜歡先查看原理圖可以很直觀的看到到底是哪一塊的代碼錯了。

  在調(diào)試的過程中發(fā)現(xiàn),,基本上時序錯誤都是代碼的錯誤,,比如沒有跨時鐘操作(跨時鐘需要打兩拍,跨時鐘一些信號前后初始化不一致),;數(shù)據(jù)路徑過長(主要是針對位寬較大的數(shù)據(jù),,路徑又長,。解決辦法是在該路徑上添加寄存器)。出現(xiàn)時序錯誤,,先從代碼邏輯上找問題,,代碼邏輯排查完了,在考慮時序怎么約束,。

  3,、clock  interaction

  時序錯誤還可以通過下圖查看,以前特別愛用里面的指令  set false  path  和 set  clock  groups,。自從意識到大部分的時序錯誤都是邏輯錯誤導(dǎo)致以后,,基本沒用到這兩句話。有一次盲目的使用set false  path 指令,,沒有對 set false  path 的用法有深刻理解,,  導(dǎo)致代碼邏輯不正常后,就更不會輕易用這些優(yōu)化指令了,。

  擴(kuò)展:

  1)set_false_path

  設(shè)置偽路徑后,,不再對特殊路徑進(jìn)行時序分析。特殊路徑如測試邏輯,、添加同步電路后的跨時鐘域路徑等,。在兩個時鐘域之間應(yīng)該相互設(shè)置為set_false:(注意:只是不對特殊路徑進(jìn)行時序分析,而不是只要出現(xiàn)錯誤就能用這句話)

  set_false_path -from [get_clocks clk_a] -to [get_clocks clk_b]

  set_false_path -from [get_clocks clk_b] -to [get_clocks clk_a]

  2)set_clock_groups :添加完以后事這樣的

  set_clock_groups -asynchronous -group clk_a -group clk_b  clk_a和clk_b是異步時鐘

  設(shè)置異步時鐘

  微信圖片_20220810143811.png



 更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

微信圖片_20210517164139.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]