Verilog設(shè)計(jì)中的一些避免犯錯(cuò)的小技巧_第1頁
Verilog設(shè)計(jì)中的一些避免犯錯(cuò)的小技巧_第2頁
Verilog設(shè)計(jì)中的一些避免犯錯(cuò)的小技巧_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Verilog設(shè)計(jì)中的一些避免犯錯(cuò)的小技巧這是一個(gè)在設(shè)計(jì)中常犯的錯(cuò)誤列表,這些錯(cuò)誤常使得你的設(shè)計(jì)不可靠或速度較慢,為了提高你的設(shè)計(jì)性能和提高速度的可靠性你必須確定你的設(shè)計(jì)通過所有的這些檢查??煽啃?/p>

為時(shí)鐘信號(hào)選用全局時(shí)鐘緩沖器BUFG

不選用全局時(shí)鐘緩沖器的時(shí)鐘將會(huì)引入偏差。只用一個(gè)時(shí)鐘沿來寄存數(shù)據(jù)

使用時(shí)鐘的兩個(gè)沿是不可靠的因?yàn)闀r(shí)鐘的某沿或者兩個(gè)沿會(huì)漂移;如果時(shí)鐘有漂移而且你只使用了時(shí)鐘的一個(gè)沿你就降低了時(shí)鐘邊沿漂移的風(fēng)險(xiǎn)。

這個(gè)問題可以這樣來解決就是允許CLKDLL自動(dòng)糾正時(shí)鐘的占空比以達(dá)百分之五十的占空比否則強(qiáng)烈建議你只使用一個(gè)時(shí)鐘沿除了用CLKDLL或DCM產(chǎn)生的時(shí)鐘外不要在內(nèi)部產(chǎn)生時(shí)鐘.

這包括產(chǎn)生門控時(shí)鐘和分頻時(shí)鐘

作為替代可以建立時(shí)鐘使能或使用CLKDLL或DCM來產(chǎn)生不同的時(shí)鐘信號(hào)。

對(duì)于一個(gè)純同步設(shè)計(jì)建議你在任何可能的情況下只使用一個(gè)時(shí)鐘不要在內(nèi)部產(chǎn)生異步的控制信號(hào)例如復(fù)位信號(hào)或者置位信號(hào)

內(nèi)部產(chǎn)生的異步控制信號(hào)會(huì)產(chǎn)生毛刺

作為替代可以產(chǎn)生一個(gè)同步的復(fù)位/置位信號(hào)這個(gè)信號(hào)的譯碼要比需要作用的時(shí)刻提前一個(gè)時(shí)鐘周期不要使用沒有相位關(guān)系的多個(gè)時(shí)鐘

你也許并不總能避免這個(gè)條件在這些情況下確定你已使用了適當(dāng)?shù)耐诫娐穪砜缭綍r(shí)鐘域不要使用沒有相位關(guān)系的多個(gè)時(shí)鐘

再次你也許并不總能避免這個(gè)條件相反許多設(shè)計(jì)都需要這樣在這些情況下確定你已適當(dāng)?shù)丶s束了跨越時(shí)鐘域的路徑不要使用內(nèi)部鎖存器

內(nèi)部鎖存器會(huì)混淆時(shí)序而且常常會(huì)引入另外的時(shí)鐘信號(hào)

內(nèi)部鎖存器在透明門打開時(shí)可以被看成是組合邏輯但在門被鎖存時(shí)可以被看成是同步元件這將會(huì)混淆時(shí)序分析

內(nèi)部鎖存器常常會(huì)引入門控時(shí)鐘門控時(shí)鐘會(huì)產(chǎn)生毛刺使得設(shè)計(jì)變得不可靠性能

邏輯級(jí)的時(shí)延不要超過時(shí)序預(yù)算的百分之五十

每個(gè)路徑邏輯級(jí)時(shí)延可以在邏輯級(jí)時(shí)序報(bào)告或布局后時(shí)序報(bào)告中找到詳細(xì)分析了每個(gè)路徑之后時(shí)序分析器將生成每個(gè)路徑時(shí)延的統(tǒng)計(jì)量檢查一下總共的邏輯級(jí)時(shí)延超過了你的時(shí)序預(yù)算的百分之五十嗎?IOB寄存器

IOB寄存器提供了最快的時(shí)鐘到輸出和輸入到時(shí)鐘的時(shí)延

首先有一些限制對(duì)于輸入寄存器在從管腳到寄存器間不能有組合邏輯存在對(duì)于輸出寄存器在寄存器和管腳之間也不能有組合邏輯存在對(duì)于三態(tài)輸出在IOB中的所有的寄存器必須使用同一個(gè)時(shí)鐘信號(hào)和復(fù)位信號(hào)而且IOB三態(tài)寄存器必須低電平有效才能放到IOB中三態(tài)緩沖器低電平有效所以在寄存器和三態(tài)緩沖器之間不需要一個(gè)反相器

你必須使軟件能夠選用IOB寄存器你可以設(shè)置全局實(shí)現(xiàn)選項(xiàng)為輸入輸出或輸入輸出選擇IOB寄存器缺省值為關(guān)(off)。

你也可在綜合工具或在用戶約束文件UCF中設(shè)定使得能夠使用IOB寄存器句法為:INSTIOB=TRUE;對(duì)于關(guān)鍵的輸出選擇快速轉(zhuǎn)換速率

可以為L(zhǎng)VCMOS和LVTTL電平選擇轉(zhuǎn)換速率快速的轉(zhuǎn)換速率會(huì)降低輸出時(shí)延但會(huì)增加地彈所以你必須在仔細(xì)考慮的基礎(chǔ)之上選擇快速轉(zhuǎn)換速率流水邏輯

如果你的設(shè)計(jì)允許增加延遲對(duì)組合邏輯采用流水操作可以提高性能

在Xilinx的FPGA中有大量的寄存器對(duì)每一個(gè)四輸入函數(shù)發(fā)生器有一個(gè)對(duì)應(yīng)的寄存器在犧牲延遲的情況下利用這些寄存器來增加數(shù)據(jù)吞吐量為四輸入的查找表結(jié)構(gòu)進(jìn)行代碼優(yōu)化

記住每一個(gè)查找表可以建立一個(gè)四輸入的組合邏輯函數(shù)如果你需要更大的功能記住實(shí)現(xiàn)該功能所需的查找表的數(shù)目使用Case語句而不是if-then-else語句

復(fù)雜的if-then-else語句通常會(huì)生成優(yōu)先級(jí)譯碼邏輯這將會(huì)增加這些路徑上的組合時(shí)延

用來產(chǎn)生復(fù)雜邏輯的Case語句通常會(huì)生成不會(huì)有太多時(shí)延的并行邏輯對(duì)于Verilog用戶可以使用編譯向?qū)ynopsysparallel_case使用一個(gè)或多個(gè)核生成器塊

核生成器塊針對(duì)Xilinx的結(jié)構(gòu)進(jìn)行了優(yōu)化許多塊都可以允許用戶配置包括大小寬度和流水延遲

查看你設(shè)計(jì)中的關(guān)鍵路徑你是否可以在核生成器中產(chǎn)生一個(gè)核來提高鍵路徑性能使有限狀態(tài)機(jī)FSM保持在層次中的自己所在的那一級(jí)

為了允許綜合工具完全優(yōu)化你的FSM它必須在它自己的塊中優(yōu)化如果不是這樣的話這將使得綜合工具將FSM邏輯和它周圍的邏輯一起優(yōu)化

FSM不能包括任何的算術(shù)邏輯數(shù)據(jù)通路邏輯或者其它與狀態(tài)機(jī)不相關(guān)的組合邏輯使用兩個(gè)進(jìn)程或always塊的有限狀態(tài)機(jī)

下一個(gè)狀態(tài)和輸出譯碼邏輯必須放在獨(dú)立的進(jìn)程或always塊中這將不允許綜合工具在輸出和下一個(gè)狀態(tài)譯碼邏輯之間共享資源使用一位有效編碼有限狀態(tài)機(jī)FSM

一位有效編碼通常會(huì)在富含寄存器的FPGA中提供最高性能的狀態(tài)機(jī)為每一個(gè)葉級(jí)leaf-level塊提供寄存輸出

葉級(jí)塊是可以推論邏輯的塊而結(jié)構(gòu)級(jí)(structural-level)的塊僅例化較底層的塊這樣就建立了層次

如果葉級(jí)塊被鎖存輸出則可使綜合工具保留層次這可使分析這些代碼的靜態(tài)時(shí)序變得比較容易

對(duì)邊界進(jìn)行寄存可以使得各個(gè)塊之間有確定的時(shí)序關(guān)系利用有適當(dāng)管腳定位約束的數(shù)據(jù)流

Xilinx器件中的數(shù)據(jù)流是在水平方向上的這里部分的原因是進(jìn)位鏈?zhǔn)窃诖怪狈较蛏系牧硗膺€有其它的原因三態(tài)緩沖線在水平方向上排列塊之間也有水平方向上的直接連接

為了利用數(shù)據(jù)流地址和數(shù)據(jù)管腳必須放在芯片的左側(cè)或右側(cè)同時(shí)注意因?yàn)檫M(jìn)位鏈?zhǔn)亲韵露系乃詫⒆畹臀环旁谧钕旅婵刂菩盘?hào)放在芯片的上部和下部不同的計(jì)數(shù)器風(fēng)格

二進(jìn)制計(jì)數(shù)器是非常慢的如果你的二進(jìn)制計(jì)數(shù)器是關(guān)鍵路徑可以考慮使用不同的風(fēng)格的計(jì)數(shù)器LFSRPre-scalar或Johnson設(shè)計(jì)是層次化的被分成不同的功能塊和技術(shù)塊

設(shè)計(jì)必須被劃分成不同的功能塊首先是較頂層的功能塊然后是較底層的塊你也應(yīng)該包括特定技術(shù)的塊

設(shè)計(jì)層次化必須使得設(shè)計(jì)更可讀更易調(diào)試更易復(fù)用復(fù)制的高扇出網(wǎng)絡(luò)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論