當前位置:首頁 > 嵌入式培訓(xùn) > FPGA培訓(xùn) > 大神又在談?wù)揻pga 給初學(xué)者建議
大神又在談?wù)揻pga 給初學(xué)者建議
時間:2018-07-19 來源:未知
一、初學(xué)者常見問題
很多初學(xué)者說FPGA入門好麻煩,尤其是原來一些寫過C代碼的同學(xué),覺得FPGA的代碼邏輯性太強,寫起來完全不像C那樣靈活。
我的觀點:
1、FPGA其實入門是非常簡單的,你覺得復(fù)雜,估計是你被帶到糞坑里面去了,自己沒跳出來。
2、C語言有編譯器,會幫你把代碼邏輯給處理好。FPGA寫出來的是電路,是很底層的。如果你像寫C那樣寫FPGA,出發(fā)點就錯了,也不可能會寫好FPGA。
3、FPGA常用的語言有VHDL和verilog,目前外邊百分之九十的公司都是在用verilog,建議你還是用verilog吧。
4、有同學(xué)問,老師,我需要有什么基礎(chǔ)才能學(xué)FPGA嗎?比如模擬電路和數(shù)字電路。 我認為:模擬電路講的東西其實挺復(fù)雜的,我們只需要一些電路的基礎(chǔ)就可以了,和模擬電路沒直接的關(guān)系,比如:一個芯片的供電電壓,芯片操作的電平。二極管的導(dǎo)通和關(guān)斷。 數(shù)字電路,需要知道與 或 非 是什么意思、D觸發(fā)器的概念就行了,其他的,我認為沒必要去深究,和FPGA學(xué)習(xí)沒直接的關(guān)系。
5、FPGA最重要的概念是什么?我認為是時鐘,F(xiàn)PGA所有的信號都是跟著時鐘走的。
6、有沒有推薦的書。目前我沒有什么書可以推薦的,很多學(xué)生研究verilog的語法,買本FPGA的書在那里看,我認為這種學(xué)習(xí)方法非常愚蠢。高校的書多半是沒有使用過FPGA的叫獸在那里瞎寫的, 很多連可綜合不可綜合都跟你說不清楚,把你帶到坑里面,直接淹死你。還有一些為了利益騙人的教授,哎,太復(fù)雜了。 其實FPGA的語法非常簡單,可綜合的非常少,也就是實際你使用的非常少,少的可憐,多半都是不可綜合的。有同學(xué)會問,不可綜合的語法有毛用,好問題,不可綜合的語法是仿真用的。modelsim是最常用的一個仿真工具了。還有vcs等。
7、入門需要學(xué)哪些軟件,其實先學(xué)3種吧。1、ALTERA的Quartus II,2、XILINX的ISE,3、modelsim。(xilinx的vivado也很重要,先別接觸了,不適合初學(xué)者,尤其是ZYNQ系列,是ARM和FPGA的結(jié)合,很多實驗需要ARM的配合) verilog的代碼編輯器常用的是notepad++和UE,也有用vim的。我建議你用Notepad++吧,免費的,百度搜索下,直接就安裝好了。和quartus II、ISE、vivado關(guān)聯(lián)起來非常簡單。后續(xù)會介紹。
再次強調(diào):modelsim是非常重要的,必須熟練應(yīng)用,熟練寫tb文件。
8、FPGA 內(nèi)最重要的IP有哪些? 這個問題比較朦朧,分應(yīng)用吧! FPGA用的最多的是PLL、FIFO,基本我寫的每個項目都在使用。做算法經(jīng)常用到加減乘除的IPCORE,當然還有用FFT的,不過FFT比較復(fù)雜,做出來的消耗資源都比較多。外部的比較重要的是DDR2,進行大數(shù)據(jù)存儲的時候使用。
9、給初學(xué)者30個例子
本博客會連載30個入門的例子。我盡量堅持到最后一刻,希望大家為我加油!
二、聊聊之前的經(jīng)歷吧
FPGA程序?qū)懙奶昧耍?8年畢業(yè)就開始寫,身邊的同事?lián)Q了一波一波又一波,徒弟收了一個一個又一個,軟件更新了一代一代又一代。手上經(jīng)歷過的項目也數(shù)不清了。什么E1、T1、百兆千兆以太網(wǎng)、USB2.0、USB3.0、DDR2、DDR3、CAN、CCD、CMOS、PCIE、ZYNQ。還有簡單的i2c、spi、串口、ADC、DAC音頻等等, 之前做圖像處理的時候,一般FPGA的容量都比較大,有一些算法會集成在里面,尤其是CCD的圖像.采集時序非常復(fù)雜(呵呵,CCD的時序可好玩了)。常用的就是緩存行。CMOS的圖像采集時序就比較簡單了。 后來做其他行業(yè)了,控制類的比較多,ADC采集經(jīng)常用到,一般都是純代碼寫出來的。
三、想要提高需要做的
個人認為:
1、知道自己寫出來的程序,占用資源的評估,是否能綜合出來。
2、如何知道自己的程序能跑多高的頻率。
3、DDR2緩存,一定要會額,這個是加分項,很多項目都是需要的。至少是經(jīng)常碰到的。
4、會對算法進行分解,評估是否能在FPGA里面進行處理,PFGA能否寫出來高效的算法。
5、能跳過去一些坑,比如,復(fù)雜的SPI,一般是用C寫更好一些,F(xiàn)PGA做復(fù)雜的圖像顯示是不擅長的,但是顯示個簡單的圖標還是可以的,呵呵。
6、NIOS II和MICROBLAZE 其實用的不太多,什么情況下必須用呢? 呵呵,肯定是邏輯不好寫的時候呀,比如,復(fù)雜的軟件協(xié)議,網(wǎng)絡(luò)協(xié)議,你用verilog寫一個試試,累死你。但是用C是分分鐘的事情,畢竟C是上層的語言嘛!!
華清遠見90+項目獲批!教育部2021最新協(xié)同育人項目名
華清遠見榮獲2021騰訊教育“年度口碑影響力職業(yè)教育品
華清遠見受邀參加2021年武漢民辦高校信息學(xué)科合作聯(lián)盟
華清遠見協(xié)辦2021年貴州省計算機學(xué)會學(xué)術(shù)年會,共同探
華清遠見受邀出席四川省第十六屆高校計算機學(xué)院院長論
智啟非凡·2022華清遠見課程產(chǎn)品發(fā)布會
華清遠見副總裁再訪阿里云,深度合作未來可期!
華清遠見受邀出席第三屆西部高校計算機學(xué)院院長論壇
華清遠見受邀參加湖南省人工智能學(xué)會2021學(xué)術(shù)年會
再次榮獲兩項軟件著作權(quán)登記證書 華清遠見教研硬實力
