我知道,我對(duì)與電子有關(guān)的所有事情都很著迷,但不論從哪個(gè)角度看,今天的現(xiàn)場(chǎng)可編程門陣列(FPGA),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個(gè)智能時(shí)代,在這個(gè)領(lǐng)域,想擁有一技之長(zhǎng)的你還沒有關(guān)注FPGA,那么世界將拋棄你,時(shí)代將拋棄你。
學(xué)習(xí)FPGA,總結(jié)如下:
看邏輯,建模型。
只有在腦海中建立了一個(gè)個(gè)邏輯模型,理解FPGA內(nèi)部邏輯結(jié)構(gòu)實(shí)現(xiàn)的基礎(chǔ),才能明白為什么寫Verilog和寫C整體思路是不一樣的,才能理解順序執(zhí)行語(yǔ)言和并行執(zhí)行語(yǔ)言的設(shè)計(jì)方法上的差異。在看到一段簡(jiǎn)單邏輯的時(shí)候應(yīng)該想到是什么樣的功能電路。
用數(shù)學(xué)思維來(lái)簡(jiǎn)化設(shè)計(jì)邏輯。
學(xué)習(xí)FPGA不僅邏輯思維很重要,好的數(shù)學(xué)思維也能讓你的設(shè)計(jì)化繁為簡(jiǎn),所以,看見高數(shù)就頭疼的同學(xué)需要重視一下這門課。舉個(gè)簡(jiǎn)單的例子,比如有兩個(gè)32bit的數(shù)據(jù)X[31:0]與Y[31:0]相乘。當(dāng)然,無(wú)論Altera還是Xilinx都有現(xiàn)成的乘法器IP核可以調(diào)用,這也是最簡(jiǎn)單的方法,但是兩個(gè)32bit的乘法器將耗費(fèi)大量的資源。那么有沒有節(jié)省資源,又不太復(fù)雜的方式來(lái)實(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文章
21798瀏覽量
606037 -
邏輯
+關(guān)注
關(guān)注
2文章
833瀏覽量
29515 -
模型
+關(guān)注
關(guān)注
1文章
3313瀏覽量
49231
原文標(biāo)題:建立模型,化簡(jiǎn)邏輯
文章出處:【微信號(hào):ALIFPGA,微信公眾號(hào):FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論