在邏輯設(shè)計中選擇狀態(tài)機的類型
在邏輯設(shè)計中,經(jīng)常用到二進制(S1=001、S2=010、S3=011及S4=100等)、枚舉(S1=100,S2=110、S3=101及S4=111等)和One-Hot(S1=00000001、S2=00000010及S3=00000100等)等類型狀態(tài)機。二進制和枚舉包含了許多組合反饋邏輯,以實現(xiàn)當(dāng)前狀態(tài)到下一個狀態(tài)的膨‘轉(zhuǎn)。由于資源利用率高,因此比較適合CPLD的邏輯設(shè)計;而One ̄Hot計數(shù)器由于始終只有一位變化,組合反饋資源少,具有最高的速度和較強的抗干擾性能。因此在叩GA設(shè)計中,基本上選擇這種狀態(tài)機類型,以提高設(shè)計的工作速度。
(1)Clock Uncertainty
在ISE的timing report中經(jīng)常會看到Clock Uncertainty這個參數(shù),大部分情況下,我們對這個參數(shù)不敏感.因為這個參數(shù)的值邐常較小,不會很大地影響時序。但是在一些時序很緊張的場合,如邏輯跑在200M以上時,這個參數(shù)就不得不關(guān)心了.clock Unrtajnty包括輸入時鐘抖動、DCM、PLL jiter 和phase error,system jitter即系統(tǒng)引入的jitter。如果發(fā)現(xiàn)這個參數(shù)己經(jīng)大剄影響速度的話 則要檢查是否?!饕詼p少輸入時鐘抖動 去掉DCM,以及走命可以減小DCM、PLL抖動和phase eeror。
(2)Hold time error
有時在邏輯內(nèi)郜會碰到hold fime er的問題,大部分情況這個問題都是囚為clockskew大于data path delay造成的.即以上分析的兩個寄存器的時鐘端的時鐘存在較大相位偏差,且因為數(shù)據(jù)路徑的延時較小 所以造成了這個問題.解決澗題一般從時鐘的角度出發(fā) 觀察為什么clock skew大,通常便用個全局時鐘線時,clmk skew都會比較小所以出現(xiàn)這個問題是因為我們的時鐘沒有使用全局時時鐘線所致,很少情況也會因為數(shù)據(jù)路徑的延時很小造成'這時通過在數(shù)據(jù)通路上插入兩級反向器來解決。
綜上所述,提高邏輯的工作速度的辦法有很多,以上只是列出一些常見的問題,在遇到問題時一定要冷靜分析關(guān)鍵路徑,找到解決方案。
來源:ks990次