標(biāo)題: [原創(chuàng)]新手如何學(xué)習(xí)FPGA [打印本頁(yè)]

作者: srvee    時(shí)間: 2011-8-26 14:28
標(biāo)題: [原創(chuàng)]新手如何學(xué)習(xí)FPGA

  現(xiàn)在很多FPGA工程師,沒(méi)找到合適,我覺(jué)得很多人從開(kāi)始的時(shí)候就誤入歧途了,對(duì)新手學(xué)習(xí)FPGA設(shè)計(jì)我也說(shuō)一點(diǎn)看法吧。我認(rèn)為要從基礎(chǔ)開(kāi)始做,基礎(chǔ)牢,才有成為高手的可能。

  我覺(jué)得FPGA學(xué)習(xí)有以下幾步必須要走:

  第一步:學(xué)習(xí)了解FPGA結(jié)構(gòu),F(xiàn)PGA到底是什么東西,芯片里面有什么,不要開(kāi)始就拿個(gè)開(kāi)發(fā)板照著別人的東西去編程。很多開(kāi)發(fā)板的程序?qū)懙暮軤,我也做過(guò)一段時(shí)間的開(kāi)發(fā)板設(shè)計(jì),我覺(jué)得很大程度上,開(kāi)發(fā)板在誤人子弟。不過(guò)原廠提供的正品開(kāi)發(fā)板,代碼很優(yōu)秀的,可以借鑒。只有了解了FPGA內(nèi)部的結(jié)構(gòu)才能明白為什么寫(xiě)Verilog和寫(xiě)C整體思路是不一樣的。

  第二步:掌握FPGA設(shè)計(jì)的流程。了解每一步在做什么,為什么要那么做。很多人都是不就是那幾步嗎,有什么奇怪的?呵呵,我想至少有一半以上的人不知道synthesize和traslate的區(qū)別吧。

  了解了FPGA的結(jié)構(gòu)和設(shè)計(jì)流程才有可能知道怎么去優(yōu)化設(shè)計(jì),提高速度,減少資源,不要急躁,不要去在為選擇什么語(yǔ)言和選擇哪個(gè)公司的芯片上下功夫。語(yǔ)言只是一個(gè)表達(dá)的方式,重要的是你的思維,沒(méi)有一個(gè)好的指導(dǎo)思想,語(yǔ)言用得再好,不過(guò)是個(gè)懂語(yǔ)言的人。

  第三步:開(kāi)始學(xué)習(xí)代碼了。我建議要學(xué)代碼的人都去Altera或Xilinx的網(wǎng)站上下原廠工程師的代碼學(xué)習(xí)。不要一開(kāi)始就走入誤區(qū)。

  第四步:template很重要。能不能高效利用FPGA資源,一是了解fpga結(jié)構(gòu),二是了解欲實(shí)現(xiàn)的邏輯功能和基本機(jī)構(gòu),三是使用正確的模板。FPGA內(nèi)部器件種類(lèi)相對(duì)較單一,用好模板,你的邏輯才能被高效的綜合成FPGA擅長(zhǎng)表達(dá)的結(jié)構(gòu):)

  做FPGA主要是要有電路的思想,作為初學(xué)者,往往對(duì)器件可能不是熟悉,那么應(yīng)該對(duì)于數(shù)字電路的知識(shí)很熟悉吧,F(xiàn)PGA中是由觸發(fā)器和查找表以及互聯(lián)線等基本結(jié)構(gòu)組成的,其實(shí)在我們?cè)诖a里面能夠看到的就是與非門(mén)以及觸發(fā)器,不要把verilog和c語(yǔ)言等同起來(lái),根本就是不同的東西,沒(méi)有什么可比性,在寫(xiě)一句程序的時(shí)候應(yīng)該想到出來(lái)的是一個(gè)什么樣的電路,計(jì)數(shù)器 選擇器 三態(tài)門(mén)等等,理解時(shí)序,邏輯是一拍一拍的東西,在設(shè)計(jì)初期想的不是很清楚的時(shí)候可以畫(huà)畫(huà)時(shí)序圖,這樣思路會(huì)更加的清晰,還有就是仿真很重要,不要寫(xiě)完程序就去往FPGA中去加載,首先要仿真,尤其是對(duì)比較大型一點(diǎn)的程序,想像自己是在做asic,是沒(méi)有二次機(jī)會(huì)的,所以一定要把仿真做好,還有很多新手對(duì)于語(yǔ)言的學(xué)習(xí)不知道選vhdl好還是verilog好,個(gè)人偏好verilog,當(dāng)然不是說(shuō)vhdl不好,反正寫(xiě)出來(lái)的都是電路,那當(dāng)然就不要在語(yǔ)言的語(yǔ)法上面花太多的功夫了,verilog 言簡(jiǎn)意賅assign always case if else 掌握這些幾乎可以寫(xiě)出90%的電路了,上面是我對(duì)FPGA學(xué)習(xí)的一些愚見(jiàn),希望對(duì)大家有所幫助。

  本文來(lái)自: 賽微電子網(wǎng)-電子工程師社區(qū) 原文地址:http://www.srvee.com/embed/apply/jdjsFPGAxxbz_58977.html

[此貼子已經(jīng)被作者于2011-8-30 16:35:24編輯過(guò)]





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1