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