你的位置:首頁 > RF/微波 > 正文

設(shè)計必備:不得不知的FPGA設(shè)計經(jīng)驗

發(fā)布時間:2014-02-11 責任編輯:sherryyu

【導(dǎo)讀】在FPGA的不同設(shè)計領(lǐng)域中,設(shè)計者的特征也會有些不同。A領(lǐng)域出色的你不一定在B領(lǐng)域能如魚得水。這里分享給大家一位FPGA設(shè)計工程師在自己的職業(yè)生涯中總結(jié)的一些經(jīng)驗,希望能對IC設(shè)計的新手有一定的幫助,能使得大家少走一些彎路!

這里談?wù)勔恍┙?jīng)驗和大家分享,希望能對IC設(shè)計的新手有一定的幫助,能使得他們能少走一些彎路!

在IC工業(yè)中有許多不同的領(lǐng)域,IC設(shè)計者的特征也會有些不同。在A領(lǐng)域的一個好的IC設(shè)計者也許會花很長時間去熟悉B領(lǐng)域的知識。在我們職業(yè)生涯的開始,我們應(yīng)該問我們自己一些問題,我們想要成為怎樣的IC設(shè)計者?消費?PC外圍?通信?微處理器或DSP?等等。

必知的FPGA設(shè)計經(jīng)驗

IC設(shè)計的基本規(guī)則和流程是一樣的,無論啥樣的都會加到其中。HDL,F(xiàn)PGA和軟件等是幫助我們理解芯片的最好工具。IC的靈魂是知識。因此我們遇到的第一個挑戰(zhàn)將是獲得設(shè)計的相關(guān)信息,然后理解信息并應(yīng)用它。

但是有些信息不是免費的,我們需要加入一些協(xié)會或從如IEEE/ISO等那些組織購買一些文檔。設(shè)計者應(yīng)該有很強的背景知識來很快的理解他們,甚至能改進存在的標準或。一個好的設(shè)計者應(yīng)該應(yīng)該有足夠的設(shè)計技能和工具應(yīng)用知識并且不斷的積累他們。

例如:

8口以太網(wǎng)轉(zhuǎn)換HUB控制器

需要知識:IEEE802.3標準,包括10MHZ以太網(wǎng)和100MHZ快速以太網(wǎng)。

相關(guān)領(lǐng)域:異步傳輸模式(ATM),IEEE802.11無限局域網(wǎng),IEEE1394,USB等。

HDL,計算機仿真和只能解決ASIC設(shè)計流程的數(shù)字部分。如果在IC中有任何模擬部分,他將依賴模擬設(shè)計者或從另外的廠家購買。甚至一些純數(shù)字部分也能從另外一些廠家購買以加速上市時間。那些不是被我們設(shè)計的部分稱為IP,包括HDL代碼,網(wǎng)表,硬核。對于我們設(shè)計的技術(shù)取決于硬核。一些IP是非常貴的,如在USB2.0中的PHY。一些小的公司沒有足夠的人力和軟件資源來完成有些工作,甚至他們不能在缺貨期預(yù)定足夠的晶原,因此涉及服務(wù)公司取代了他們的工作。但并不是每個IP都滿足我們的需要,有時我們需要在購買后作一些修改。我們要在設(shè)計前決定所要用到的IPs。

在設(shè)計開始,設(shè)計者必須理解所有相關(guān)的標準、規(guī)范和算法。但是有許多方法來應(yīng)用這些規(guī)范和算法。最好的結(jié)構(gòu)是快速和最小芯片尺寸的結(jié)合。不幸的是,快速的需求常常和最小芯片尺寸的需求是對立的。因此,在HDL編碼工作前規(guī)劃一個最優(yōu)的結(jié)構(gòu)也是一個重要的問題。
[page]

例如:

1:除法器

除數(shù)被固定。最快的方法是查表,但是這個方法需要大的內(nèi)存。我們可以可以從被除數(shù)中不斷的減去除數(shù)直到新的被除數(shù)比除數(shù)小。它會花更多的時間但用最少的硬件。還有許多的方法來構(gòu)建除法器,每種方法都有他自己的優(yōu)點和缺點。

2:圖像處理的動態(tài)評估器

從前一個圖片中發(fā)現(xiàn)最相似的8×8模塊,在整個電影剪輯中。最基本的有全搜索和三步搜索的方法。許多的論文已經(jīng)討論過優(yōu)化硬件復(fù)雜度和速度的結(jié)構(gòu),這里我不再祥解釋。

一個好的設(shè)計者應(yīng)該要被實際經(jīng)驗培訓(xùn)和不斷的。我們要在每個設(shè)計工作中非常小心和耐心。因為一個NRE將會消耗大量的金錢和數(shù)周的時間,如果他不小心犯錯,設(shè)計者將會對金錢和計劃失敗負責。經(jīng)驗和小心也許是來完成一個成功的設(shè)計項目最好的方法。

以下條款是一些對一個穩(wěn)步的和成功的設(shè)計的建議:(可能有些朋友也指出了其中的部分,我這里只作簡要說明,可能稍有不同)

命名風格:

  1、不要用關(guān)鍵字做信號名;

  2、不要在中用VERILOG關(guān)鍵字做信號名;

  3、命名信號用含義;

  4、命名I/O口用盡量短的名字;

  5、不要把信號用高和低的情況混合命名;

  6、信號的第一個字母必須是A-Z是一個規(guī)則;

  7、使模塊名、實例名和文件名相同。

編碼風格:記住,一個好的代碼是其他人可以很容易閱讀和理解的。

    1、盡可能多的增加說明語句;

  2、在一個設(shè)計中固定編碼格式和統(tǒng)一所有的模塊,根從項目領(lǐng)導(dǎo)者定義的格式;

  3、把全部設(shè)計分成適合數(shù)量的不同的模塊或?qū)嶓w;

  4、在一個always/process中的所有信號必須相關(guān);

  5、不要用關(guān)鍵字或一些經(jīng)常被用來安全綜合的語法;

  6、不要用復(fù)雜邏輯;

  7、在一個if語句中的所有條件必須相關(guān);
[page]

設(shè)計風格

  1、強烈建議用同步設(shè)計;

  2、在設(shè)計時總是記住時序問題;

  3、在一個設(shè)計開始就要考慮到地電平或高電平復(fù)位、同步或異步復(fù)位、上升沿或下降沿觸發(fā)等問題,在所有模塊中都要遵守它;

  4、在不同的情況下用if和case;

  5、在鎖存一個信號或總線時要小心;

  6、確信所有寄存器的輸出信號能夠被復(fù)位/置位;

  7、永遠不要再寫入之前讀取任何內(nèi)部存儲器(如SRAM);

  8、從一個時鐘到另一個不同的時鐘傳輸數(shù)據(jù)時用數(shù)據(jù)緩沖,他工作像一個雙時鐘FIFO;

  9、在VHDL中二維數(shù)組可以使用,它是非常有用的。在VERILOG中他僅僅可以使用在測試模塊中,不能被綜合;

  10、遵守register-inregister-out規(guī)則;

  11、像synopsys的DC的綜合工具是非常穩(wěn)定的,任何bugs都不會從綜合工具中產(chǎn)生;

  12、確保FPGA版本與ASIC的版本盡可能的相似,特別是SRAM類型,若版本一致是最理想的;

       13、在嵌入式存儲器中使用BIST;

  14、虛單元和一些修正電路是必需的;

  15、一些簡單的測試電路也是需要的,經(jīng)常在一個芯片中有許多測試模塊;

  16、除非低功耗不要用門控時鐘;

  17、不要依靠腳本來保證設(shè)計。但是在腳本中的一些好的約束能夠起到更好的性能(例如前向加法器);

  18、如果時間充裕,通過時鐘做一個多鎖存器來取代用MUX;

  19、不要用內(nèi)部tri-state,ASIC需要總線保持器來處理內(nèi)部tri-state;

  20、在toplevel中作padinsertion;

  21、選擇pad時要小心(如上拉能力,施密特觸發(fā)器,5伏耐壓等);

  22、小心由時鐘偏差引起的問題;

  23、不要試著產(chǎn)生半周期信號;

  24、如果有很多函數(shù)要修正,請一個一個地作,修正一個函數(shù)檢查一個函數(shù);

  25、在一個計算等式中排列每個信號的位數(shù)是一個好習慣,即使綜合工具能做;

  26、不要使用HDL提供的除法器;

  27、削減不必要的時鐘。它會在設(shè)計和布局中引起很多麻煩,大多數(shù)FPGA有1-4個專門的時鐘通道;

以上是大家在設(shè)計中最好遵守的要點,它可以使你的設(shè)計更好。

相關(guān)閱讀:

菜鳥必看!學習FPGA常見的四大誤區(qū)
http://www.mycolemanpowermate.com/gptech-art/80021601

實例分析:如何快速找到并解決隔離FPGA設(shè)計中的問題
http://www.mycolemanpowermate.com/gptech-art/80021720
實用技術(shù):利用FPGA技術(shù)設(shè)計設(shè)計步進電機系統(tǒng)
http://www.mycolemanpowermate.com/power-art/80022131

要采購工具么,點這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
壓控振蕩器 壓力傳感器 壓力開關(guān) 壓敏電阻 揚聲器 遙控開關(guān) 醫(yī)療電子 醫(yī)用成像 移動電源 音頻IC 音頻SoC 音頻變壓器 引線電感 語音控制 元件符號 元器件選型 云電視 云計算 云母電容 真空三極管 振蕩器 振蕩線圈 振動器 振動設(shè)備 震動馬達 整流變壓器 整流二極管 整流濾波 直流電機 智能抄表
?

關(guān)閉

?

關(guān)閉