我知道,我對與電子有關(guān)的所有事情都很著迷,但不論從哪個(gè)角度看,今天的現(xiàn)場可編程門陣列(FPGA),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個(gè)智能時(shí)代,在這個(gè)領(lǐng)域,想擁有一技之長的你還沒有關(guān)注FPGA,那么世界將拋棄你,時(shí)代將拋棄你。
學(xué)習(xí)FPGA,總結(jié)如下:
看邏輯,建模型。
只有在腦海中建立了一個(gè)個(gè)邏輯模型,理解FPGA內(nèi)部邏輯結(jié)構(gòu)實(shí)現(xiàn)的基礎(chǔ),才能明白為什么寫Verilog和寫C整體思路是不一樣的,才能理解順序執(zhí)行語言和并行執(zhí)行語言的設(shè)計(jì)方法上的差異。在看到一段簡單邏輯的時(shí)候應(yīng)該想到是什么樣的功能電路。
用數(shù)學(xué)思維來簡化設(shè)計(jì)邏輯。
學(xué)習(xí)FPGA不僅邏輯思維很重要,好的數(shù)學(xué)思維也能讓你的設(shè)計(jì)化繁為簡,所以,看見高數(shù)就頭疼的同學(xué)需要重視一下這門課。舉個(gè)簡單的例子,比如有兩個(gè)32bit的數(shù)據(jù)X[31:0]與Y[31:0]相乘。當(dāng)然,無論Altera還是Xilinx都有現(xiàn)成的乘法器IP核可以調(diào)用,這也是最簡單的方法,但是兩個(gè)32bit的乘法器將耗費(fèi)大量的資源。那么有沒有節(jié)省資源,又不太復(fù)雜的方式來實(shí)現(xiàn)呢?我們可以稍做修改:
將X[31:0]拆成兩部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],則X1左移16位后與X2相加可以得到X;同樣將Y[31:0]拆成兩部分Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],則Y1左移16位后與Y2相加可以得到Y(jié);則X與Y的相乘可以轉(zhuǎn)化為X1和X2 分別與Y1和Y2相乘,這樣一個(gè)32bit*32bit的乘法運(yùn)算轉(zhuǎn)換成了四個(gè)16bit*16bit的乘法運(yùn)算和三個(gè)32bit的加法運(yùn)算。轉(zhuǎn)換后的占用資源將會(huì)減少很多,有興趣的讀者,不妨綜合一下看看,看看兩者差多少。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21803瀏覽量
606439 -
邏輯
+關(guān)注
關(guān)注
2文章
833瀏覽量
29517 -
模型
+關(guān)注
關(guān)注
1文章
3347瀏覽量
49277
原文標(biāo)題:建立模型,化簡邏輯
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
再談如何學(xué)習(xí)FPGA
【 很好的FPGA入門教材 】《 HELLO FPGA 》系列書籍免費(fèi)下載
怎么學(xué)習(xí)FPGA,為什么要學(xué)習(xí)FPGA,FPGA是什么,FPGA以后的發(fā)展前景
初學(xué)者如何去學(xué)習(xí)FPGA才能提高自己的競爭力呢?
為什么要學(xué)習(xí)FPGA?如何學(xué)習(xí)FPGA?
如何學(xué)習(xí)FPGA?學(xué)習(xí)FPGA的五大忌有哪些?
如何學(xué)習(xí)FPGA學(xué)習(xí)FPGA的詳細(xì)經(jīng)驗(yàn)有哪些階段
FPGA在深度學(xué)習(xí)領(lǐng)域的應(yīng)用
FPGA學(xué)習(xí)要面對什么問題
Altera FPGA CPLD學(xué)習(xí)筆記
![Altera <b class='flag-5'>FPGA</b> CPLD<b class='flag-5'>學(xué)習(xí)</b>筆記](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論