點(diǎn)擊上方藍(lán)字關(guān)注我們
FPGA設(shè)計規(guī)范
1.設(shè)計必須文檔化。要將設(shè)計思路,詳細(xì)實現(xiàn)等寫入文檔,然后經(jīng)過嚴(yán)格評審?fù)ㄟ^后才能進(jìn)行下一步的工作。這樣做乍看起來很花時間,但是從整個項目過程來看,要比一上來就寫代碼要節(jié)約時間,且這種做法可以使項目處于可控、可實現(xiàn)的狀態(tài)。
2.代碼規(guī)范。
如果在另一個設(shè)計中的時鐘是40ns,復(fù)位周期不變,我們只需對CLK_PERIOD進(jìn)行重新例化就行了,從而使得代碼更加易于重用。b.信號命名要規(guī)范化。
1) 信號名一律小寫,參數(shù)用大寫。
2) 對于低電平有效的信號結(jié)尾要用_n標(biāo)記,如rst_n。
3) 端口信號排列要統(tǒng)一,一個信號只占一行,按輸入輸出及從哪個模塊來到哪個模塊去的關(guān)系排列,這樣在后期仿真驗證找錯時后 方便很多。
4) 一個模塊盡量只用一個時鐘,這里的一個模塊是指一個module或者是一個entity。在多時鐘域的設(shè)計中涉及到跨時鐘域的設(shè)計中有專門一個模塊做時鐘域的隔離。這樣做可以讓綜合器綜合出更優(yōu)的結(jié)果。
5) 盡量在底層模塊上做邏輯,在高層盡量做例化,頂層模塊只能做例化,禁止出現(xiàn)任何膠連邏輯(glue logic),哪怕僅僅是對某個信號取反。理由同上。
6) 在FPGA的設(shè)計上禁止用純組合邏輯產(chǎn)生latch,帶D觸發(fā)器的latch的是允許的,比如配置寄存器就是這種類型。
7) 一般來說,進(jìn)入FPGA的信號必須先同步,以提高系統(tǒng)工作頻率(板級)。
8) 所有模塊的輸出都要寄存器化,以提高工作頻率,這對設(shè)計做到時序收斂也是極有好處的。
9) 除非是低功耗設(shè)計,不然不要用門控時鐘--這會增加設(shè)計的不穩(wěn)定性,在要用到門控時鐘的地方,也要將門控信號用時鐘的下降沿 打一拍再輸出與時鐘相與。
10)禁止用計數(shù)器分頻后的信號做其它模塊的時鐘,而要用改成時鐘使能的方式,否則這種時鐘滿天飛的方式對設(shè)計的可靠性極為不利,也大大增加了靜態(tài)時序分析的復(fù)雜性。如FPGA的輸入時鐘是25M的,現(xiàn)在系統(tǒng)內(nèi)部要通過RS232與PC通信,要以rs232_1xclk的速率發(fā)送數(shù)據(jù)。
FPGA設(shè)計中的注意事項
1.基礎(chǔ)問題
FPGA的基礎(chǔ)就是數(shù)字電路和HDL語言,想學(xué)好FPGA的人,建議床頭都有一本數(shù)字電路的書,不管是哪個版本的,這個是基礎(chǔ),多了解也有助于形成硬件設(shè)計的思想。在語言方面,建議初學(xué)者學(xué)習(xí)Verilog語言,VHDL語言語法規(guī)范嚴(yán)格,調(diào)試起來很慢,Verilog語言容易上手,而且,一般大型企業(yè)都是用Verilog語言。
2.EDA工具問題
熟悉幾個常用的就可以的,開發(fā)環(huán)境QuartusII ,或ISE 就可以了,這兩個基本是相通的,會了哪一個,另外的那個也就很Easy了。功能仿真建議使用Modelsim ,如果你是做芯片的,就可以學(xué)學(xué)別的仿真工具,做FPGA的,Modelsim就足夠了。綜合工具一般用Synplify,初學(xué)先不用太關(guān)心這個,用Quartus綜合就OK了。
3.硬件設(shè)計思想問題
對于初學(xué)者,特別是從軟件轉(zhuǎn)過來的,設(shè)計的程序既費(fèi)資源又速度慢,而且很有可能綜合不了,這就要求我們熟悉一些固定模塊的寫法,可綜合的模塊很多書上都有,語言介紹上都有,不要想當(dāng)然的用軟件的思想去寫硬件。詳細(xì)資料:edu118.com
4.學(xué)習(xí)習(xí)慣問題
FPGA學(xué)習(xí)要多練習(xí),多仿真,signaltapII是很好的工具,可以看到每個信號的真實值,建議初學(xué)者一定要自己多動手,光看書是沒用的。關(guān)于英文文檔問題,如果要學(xué)會Quartus II的所有功能,只要看它的handbook就可以了,很詳細(xì),對于IT行業(yè)的人,大部分知識都是英文文檔,一定要耐心看,會從中收獲很多的。
5.算法問題
做FPGA的工程師,一般都是專攻算法了,這些基礎(chǔ)知識都是順手捏來的,如果你沒有做好搞理論的準(zhǔn)備,學(xué)FPGA始終只能停留在初級階段上。對于初學(xué)者,數(shù)字信號處理是基礎(chǔ),應(yīng)該好好理解,往更深的方向,不用什么都學(xué),根據(jù)你以后從事的方向,比如說通信、圖像處理,雷達(dá)、聲納、導(dǎo)航定位等。
不管你是一名邏輯設(shè)計師、硬件工程師或系統(tǒng)工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復(fù)雜系統(tǒng)中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號完整性和其他的一些關(guān)鍵設(shè)計問題。不過,你不必獨(dú)自面對這些挑戰(zhàn),因為在當(dāng)前業(yè)內(nèi)的FPGA公司里工作的應(yīng)用工程師每天都會面對這些問題,而且他們已經(jīng)提出了一些將令你的設(shè)計工作變得更輕松的設(shè)計指導(dǎo)原則和解決方案.
FPGA設(shè)計的主要應(yīng)用
1、電路設(shè)計
連接邏輯,控制邏輯是FPGA早期發(fā)揮作用比較大的領(lǐng)域也是FPGA應(yīng)用的基石。事實上在電路設(shè)計 中應(yīng)用FPGA的難度還是比較大的這要求開發(fā)者要具備相應(yīng)的硬件知識(電路知識)和軟件應(yīng)用能力(開發(fā)工具)這方面的人才總是緊缺的,往往都從事新技術(shù), 新產(chǎn)品的開發(fā)成功的產(chǎn)品將變成市場主流基礎(chǔ)產(chǎn)品供產(chǎn)品設(shè)計者應(yīng)用在不遠(yuǎn)的將來,通用和專用IP的設(shè)計將成為一個熱門行業(yè)!搞電路設(shè)計的前提是必須要具備一 定的硬件知識。在這個層面,干重于學(xué),當(dāng)然,快速入門是很重要的,越好的位子越不等人電路開發(fā)是黃金飯碗。
2、產(chǎn)品設(shè)計
把相對成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域如通訊,視頻,信息處理等等開發(fā)出滿足行業(yè)需要并能被行業(yè)客戶 接受的產(chǎn)品這方面主要是FPGA技術(shù)和技術(shù)的結(jié)合問題,另外還有就是與客戶的界面問題產(chǎn)品設(shè)計還包括工具類產(chǎn)品及民用產(chǎn)品,前者重點(diǎn)在性能, 后者對價格敏感產(chǎn)品設(shè)計以實現(xiàn)產(chǎn)品功能為主要目的,F(xiàn)PGA技術(shù)是一個實現(xiàn)手段在這個領(lǐng)域,F(xiàn)PGA因為具備接口,控制,功能IP,內(nèi)嵌CPU等特點(diǎn)有條 件實現(xiàn)一個構(gòu)造簡單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計將是FPGA技術(shù)應(yīng)用廣大的市場,具有極大的爆發(fā)性的需求空間產(chǎn)品設(shè)計對技術(shù)人員的要求比較 高,路途也比較漫長不過現(xiàn)在整個行業(yè)正處在組建“首發(fā)團(tuán)隊”的狀態(tài),只要加入,前途光明產(chǎn)品設(shè)計是一種職業(yè)發(fā)展方向定位,不是簡單的愛好就能做到的!產(chǎn)品 設(shè)計領(lǐng)域會造就大量的企業(yè)和企業(yè)家,是一個發(fā)展熱點(diǎn)和機(jī)遇。
3、系統(tǒng)級
系統(tǒng)級的應(yīng)用是FPGA與傳統(tǒng)的計算機(jī)技術(shù)結(jié)合,實現(xiàn)一種FPGA版的計算機(jī)系統(tǒng),實現(xiàn)一個基本環(huán)境,在這個平臺上跑LINUX等系統(tǒng),這個系統(tǒng)也就支持各種標(biāo)準(zhǔn)外設(shè)和功能接口(如圖象接口)了這對于快速構(gòu)成FPGA大型系統(tǒng)來講是很有幫助的。這種“山寨”味很濃的系統(tǒng)早期優(yōu)勢不一定很明顯,類似ARM系統(tǒng)的境況但若能慢慢發(fā)揮出FPGA的優(yōu)勢,逐漸實現(xiàn)一些特色系統(tǒng)也是一種發(fā)展方向。若在系統(tǒng)級應(yīng)用中,開發(fā)人員不具備系統(tǒng)的擴(kuò)充開發(fā)能力,只是搞搞編程是沒什么意義的,當(dāng)然設(shè)備驅(qū)動程序的開發(fā)是另一種情況,搞系統(tǒng)級應(yīng)用看似起點(diǎn)高,但不具備深層開發(fā)能力,很可能會變成愛好者,就如很多人會做網(wǎng)頁但不能稱做會編程。類似以上是幾點(diǎn)個人觀點(diǎn),希望能幫助想學(xué)FPGA但很茫然無措的人理一理思路。這是一個不錯的行業(yè),有很好的個人成功機(jī)會。但也肯定是一個競爭很激烈的行業(yè),關(guān)鍵看的就是速度和深度當(dāng)然還有市場適應(yīng)能力。
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點(diǎn)個在看你最好看
原文標(biāo)題:詳解FPGA的設(shè)計規(guī)范與應(yīng)用
文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21794瀏覽量
605109
原文標(biāo)題:詳解FPGA的設(shè)計規(guī)范與應(yīng)用
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論