問題描述
編譯完某程序后,出現(xiàn)時(shí)序問題。
時(shí)序問題是FPGA中比較難的一個(gè)方面,老實(shí)講,我自己都沒有把握說能百分百掌握。
時(shí)序問題跟代碼風(fēng)格本身、資源使用情況等都有關(guān)系,代碼本身占很大部分,比較復(fù)雜的邏輯由于代碼沒寫好,導(dǎo)致最終出現(xiàn)時(shí)序問題的情況比比皆是,這就需要多積累多練習(xí),后續(xù)我還會(huì)持續(xù)分享時(shí)序方面自己的心得。
今天我要分享的是時(shí)序約束中通配符*的使用。
在編譯完出現(xiàn)時(shí)序問題后,分析時(shí)序報(bào)告,準(zhǔn)備使用set_false_path進(jìn)行約束。
這里要特別注意,set_false_path就是讓vivado不去分析有問題的地方,所以使用set_false_path的地方一定不能影響功能,或者已經(jīng)在程序中處理,但因?yàn)榭?a href="http://ttokpm.com/tags/時(shí)鐘/" target="_blank">時(shí)鐘的原因報(bào)錯(cuò),否則,濫用set_false_path將會(huì)掩蓋真正的時(shí)序問題,使得出問題時(shí)更加難以分析。
解決方法
在用set_false_path約束時(shí),極少用到時(shí)鐘域到時(shí)鐘域,那樣也會(huì)掩蓋時(shí)序問題,一般使用點(diǎn)到點(diǎn)的約束,如:
set_false_path -from [xxx] -to [xxx[2]]
其中xxx[2]中的2就代表了這個(gè)信號(hào)的第二bit,如果經(jīng)過分析,這個(gè)信號(hào)的所有位bit都不影響,則可對(duì)整個(gè)信號(hào)進(jìn)行set_false_path,為簡(jiǎn)化寫法,可以使用通配符*,如:
set_false_path -from [xxx] -to [xxx[*]]
就代表了到這個(gè)信號(hào)的所有位bit都被set_false_path。
總結(jié)
通配符的使用可以簡(jiǎn)化約束代碼。
只要是跟時(shí)序約束相關(guān)的,必須慎之又慎。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21624瀏覽量
601245 -
代碼
+關(guān)注
關(guān)注
30文章
4723瀏覽量
68236 -
時(shí)序約束
+關(guān)注
關(guān)注
1文章
115瀏覽量
13403
原文標(biāo)題:時(shí)序約束中通配符的使用
文章出處:【微信號(hào):FPGA通信小白成長(zhǎng)之路,微信公眾號(hào):FPGA通信小白成長(zhǎng)之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論