五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

四個步驟玩轉(zhuǎn)FPGA

2023-01-09 06:58 作者:明德?lián)P易老師  | 我要投稿

要想玩轉(zhuǎn)FPGA,按這4個步驟來

FPGA 作為一種高新技術(shù),由于其結(jié)構(gòu)的特殊性,可以重復(fù)編程,開發(fā)周期較短,越來越受到電子愛好者的青睞,其應(yīng)用已經(jīng)逐漸普及到了各行各業(yè)。因此,越來越多的學(xué)生或工程師都希望跨進FPGA的大門掌握這門技術(shù)。網(wǎng)絡(luò)上各種開發(fā)板、培訓(xùn)班更是多如牛毛,仿佛在告訴你不懂FPGA你就OUT啦。那么我們要玩轉(zhuǎn)FPGA必須具備哪些基礎(chǔ)知識呢?如何學(xué)習(xí)FPGA呢?下面我們慢慢道來。

??(一) 要了解什么是FPGA


既然要玩轉(zhuǎn)FPGA,那我們首先最重要的當(dāng)然是要了解什么FPGA。FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列??吹骄幊虄蓚€字碼農(nóng)就笑了,不就是編程嘛,那可是我們的強項。且慢,此編程非彼編程。一定要把FPGA的編程和軟件編 程區(qū)分開來。

軟件的編程,處理器會 逐條的把語言翻譯成各種控制信號,去控制內(nèi)部電路完成一個個運算或操作。那么FPGA的編程是怎么實現(xiàn)的呢?無論Altera家還是Xlinix家的 FPGA,叫法有什么差異,基本單元都相似,都是由真值表和D觸發(fā)器構(gòu)成。改變真值表的值就改變了邏輯功能,再通過和D觸發(fā)器組合來實現(xiàn)任何時序邏輯。

所以我們對FPGA的編程,實際上就是去修改這些真值表和連接關(guān)系,使他們組成一張專門的真值表,去實現(xiàn)特定的功能。這和軟件編程一步步運行程序有本質(zhì)的區(qū) 別。要想玩轉(zhuǎn)FPGA,就必須理解FPGA內(nèi)部的工作原理,學(xué)習(xí)如何利用這些單元實現(xiàn)復(fù)雜的邏輯設(shè)計。

??(二) 正確理解HDL語言


HDL(Hardware Descripti on Language),硬件描述語言。通過名稱我們能看出來,HDL語言是一種“描述”語言,這一點和C語言是有本質(zhì)區(qū)別的。正確理解描述的含義,對學(xué)好 HDL語言很有幫助。HDL語言只是用文本的方式把硬件電路描述出來。我們在閱讀HDL程序的時候,在腦子里應(yīng)該能反映出一個完整的硬件電路結(jié)構(gòu)。

從另一 方面說,我們在編寫HDL語言之前,就已經(jīng)對要實現(xiàn)的電路有清晰的概念。所以HDL語言只是一個描述我們頭腦中具體電路的工具,玩轉(zhuǎn)FPGA的根本不是語 言而是邏輯電路設(shè)計。不要再糾結(jié)于我應(yīng)該學(xué)習(xí)VHDL還是Verilog,那種語言更好學(xué)這些問題。如果把學(xué)習(xí)FPGA的重點放在學(xué)習(xí)語言上,死記硬背一 些語法,那自然是抓錯了重點。

語言在日常使用中會越用越熟練,不需要花很長的專門時間去學(xué)習(xí)。當(dāng)然一本好的參考資料可以隨時方便查詢會是很有幫助的。

??(三) 數(shù)字電路基礎(chǔ)


說到底,F(xiàn)PGA就是一堆數(shù)字邏輯組合在一起實現(xiàn)特定功能而已。所以數(shù)字電路基礎(chǔ)知識是根本。如果你連觸發(fā)器,組合電路,時序電路,競爭,毛刺等等基本概念 還莫能兩可不清不楚的話,那玩轉(zhuǎn)FPGA只能是癡人說夢的幻想了。我們必須要好好的學(xué)好數(shù)字電路基礎(chǔ)這門課,基本的數(shù)字電路爛熟于心。

把這些基礎(chǔ)打牢固, 再往更深的方向發(fā)展。什么時候能夠從抽象的算法中提煉算法的結(jié)構(gòu),再分解成具體的模塊并通過硬件電路實現(xiàn)出來,這時候就算從菜鳥級別步入老鳥級別了。

??(四) 硬件設(shè)計思想


這一點應(yīng)該說是重中之重。學(xué)習(xí)FPGA,一定要有硬件設(shè)計思想。在軟件編程的時候,比如1秒鐘能實現(xiàn)5次乘法運算,那系統(tǒng)要求1秒鐘實現(xiàn)50次乘法運算怎么 辦,我們會盡可能的優(yōu)化代碼,讓代碼更簡潔更高效,或者提高系統(tǒng)主頻,讓系統(tǒng)跑的更快。但是在FPGA里面我們不是這種思維方式。

在FPGA里實現(xiàn)一個乘 法器不夠用,那我就實現(xiàn)兩個實現(xiàn)三個去滿足系統(tǒng)要求;我可以進行流水線設(shè)計;串行運行方式不夠快了,我可以先串并轉(zhuǎn)換,再并行的做處理……只要FPGA的 資源夠用,我可以充分利用資源去滿足系統(tǒng)要求。因為在我手里的就是一堆硬件資源,我要做的是把他們組合成一個好用的電路。

評價硬件描述語言寫的好壞的標(biāo)準(zhǔn) 和其他軟件編程語言的標(biāo)準(zhǔn)是完全不同的。因此一定要摒棄軟件編程的一些固有思路,學(xué)會用硬件的方式去解決問題。時刻提醒自己正在設(shè)計的是一個電路,而不是 一行行空洞的代碼。這是很多做軟件編程的人很難跨過的坎。

FPGA學(xué)了很久還在糾結(jié)到底是用IF_else語句好呢還是用case語句好?而不能透過這些 語句表面看到他們所具體代表的電路。只有建立了硬件設(shè)計思想,才有更深入學(xué)習(xí)FPGA的可能。


明德?lián)P最近制作了FPGA知識點分享,歡迎進來學(xué)習(xí)交流


四個步驟玩轉(zhuǎn)FPGA的評論 (共 條)

分享到微博請遵守國家法律
永善县| 塔河县| 永德县| 利辛县| 宜君县| 江孜县| 习水县| 桃源县| 合作市| 伊宁县| 梁平县| 邓州市| 响水县| 贵溪市| 咸宁市| 莆田市| 大渡口区| 清徐县| 河南省| 公主岭市| 怀宁县| 寿宁县| 建宁县| 海原县| 油尖旺区| 钦州市| 监利县| 肃宁县| 正安县| 同仁县| 宝山区| 抚顺市| 日照市| 通河县| 天祝| 湘潭市| 江门市| 微山县| 临潭县| 邵阳市| 托克托县|