0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何學(xué)習(xí)FPGA?FPGA學(xué)習(xí)必備的基礎(chǔ)知識(shí)

jf_pJlTbmA9 ? 2023-10-27 17:43 ? 次閱讀

FPGA已成為現(xiàn)今的技術(shù)熱點(diǎn)之一,無論學(xué)生還是工程師都希望跨進(jìn)FPGA的大門。網(wǎng)絡(luò)上各種開發(fā)板、培訓(xùn)班更是多如牛毛,仿佛在告訴你不懂FPGA你就OUT啦。那么我們要玩轉(zhuǎn)FPGA必須具備哪些基礎(chǔ)知識(shí)呢?下面我們慢慢道來。

(一) 要了解什么是FPGA

既然要玩轉(zhuǎn)FPGA,那我們首先最重要的當(dāng)然是要了解什么FPGA。FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列??吹骄幊虄蓚€(gè)字碼農(nóng)就笑了,不就是編程嘛,那可是我們的強(qiáng)項(xiàng)。且慢,此編程非彼編程。一定要把FPGA的編程和軟件編程區(qū)分開來。軟件的編程,處理器會(huì)逐條的把語言翻譯成各種控制信號(hào),去控制內(nèi)部電路完成一個(gè)個(gè)運(yùn)算或操作。那么FPGA的編程是怎么實(shí)現(xiàn)的呢?無論Altera家還是Xlinix家的FPGA,叫法有什么差異,基本單元都相似,都是由真值表和D觸發(fā)器構(gòu)成。改變真值表的值就改變了邏輯功能,再通過和D觸發(fā)器組合來實(shí)現(xiàn)任何時(shí)序邏輯。所以我們對(duì)FPGA的編程,實(shí)際上就是去修改這些真值表和連接關(guān)系,使他們組成一張專門的真值表,去實(shí)現(xiàn)特定的功能。這和軟件編程一步步運(yùn)行程序有本質(zhì)的區(qū)別。要想玩轉(zhuǎn)FPGA,就必須理解FPGA內(nèi)部的工作原理,學(xué)習(xí)如何利用這些單元實(shí)現(xiàn)復(fù)雜的邏輯設(shè)計(jì)。

(二) 正確理解HDL語言

HDL(Hardware Description Language),硬件描述語言。通過名稱我們能看出來,HDL語言是一種“描述”語言,這一點(diǎn)和C語言是有本質(zhì)區(qū)別的。正確理解描述的含義,對(duì)學(xué)好HDL語言很有幫助。HDL語言只是用文本的方式把硬件電路描述出來。我們?cè)陂喿xHDL程序的時(shí)候,在腦子里應(yīng)該能反映出一個(gè)完整的硬件電路結(jié)構(gòu)。從另一方面說,我們?cè)诰帉慔DL語言之前,就已經(jīng)對(duì)要實(shí)現(xiàn)的電路有清晰的概念。所以HDL語言只是一個(gè)描述我們頭腦中具體電路的工具,玩轉(zhuǎn)FPGA的根本不是語言而是邏輯電路設(shè)計(jì)。不要再糾結(jié)于我應(yīng)該學(xué)習(xí)VHDL還是Verilog,那種語言更好學(xué)這些問題。如果把學(xué)習(xí)FPGA的重點(diǎn)放在學(xué)習(xí)語言上,死記硬背一些語法,那自然是抓錯(cuò)了重點(diǎn)。語言在日常使用中會(huì)越用越熟練,不需要花很長(zhǎng)的專門時(shí)間去學(xué)習(xí)。當(dāng)然一本好的參考資料可以隨時(shí)方便查詢會(huì)是很有幫助的。

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

說到底,F(xiàn)PGA就是一堆數(shù)字邏輯組合在一起實(shí)現(xiàn)特定功能而已。所以數(shù)字電路基礎(chǔ)知識(shí)是根本。如果你連觸發(fā)器,組合電路,時(shí)序電路,競(jìng)爭(zhēng),毛刺等等基本概念還莫能兩可不清不楚的話,那玩轉(zhuǎn)FPGA只能是癡人說夢(mèng)的幻想了。我們必須要好好的學(xué)好數(shù)字電路基礎(chǔ)這門課,基本的數(shù)字電路爛熟于心。把這些基礎(chǔ)打牢固,再往更深的方向發(fā)展。什么時(shí)候能夠從抽象的算法中提煉算法的結(jié)構(gòu),再分解成具體的模塊并通過硬件電路實(shí)現(xiàn)出來,這時(shí)候就算從菜鳥級(jí)別步入老鳥級(jí)別了。

(四) 硬件設(shè)計(jì)思想

這一點(diǎn)應(yīng)該說是重中之重。學(xué)習(xí)FPGA,一定要有硬件設(shè)計(jì)思想。在軟件編程的時(shí)候,比如1秒鐘能實(shí)現(xiàn)5次乘法運(yùn)算,那系統(tǒng)要求1秒鐘實(shí)現(xiàn)50次乘法運(yùn)算怎么辦,我們會(huì)盡可能的優(yōu)化代碼,讓代碼更簡(jiǎn)潔更高效,或者提高系統(tǒng)主頻,讓系統(tǒng)跑的更快。但是在FPGA里面我們不是這種思維方式。在FPGA里實(shí)現(xiàn)一個(gè)乘法器不夠用,那我就實(shí)現(xiàn)兩個(gè)實(shí)現(xiàn)三個(gè)去滿足系統(tǒng)要求;我可以進(jìn)行流水線設(shè)計(jì);串行運(yùn)行方式不夠快了,我可以先串并轉(zhuǎn)換,再并行的做處理……只要FPGA的資源夠用,我可以充分利用資源去滿足系統(tǒng)要求。因?yàn)樵谖沂掷锏木褪且欢延布Y源,我要做的是把他們組合成一個(gè)好用的電路。評(píng)價(jià)硬件描述語言寫的好壞的標(biāo)準(zhǔn)和其他軟件編程語言的標(biāo)準(zhǔn)是完全不同的。因此一定要摒棄軟件編程的一些固有思路,學(xué)會(huì)用硬件的方式去解決問題。時(shí)刻提醒自己正在設(shè)計(jì)的是一個(gè)電路,而不是一行行空洞的代碼。這是很多做軟件編程的人很難跨過的坎。FPGA學(xué)了很久還在糾結(jié)到底是用if_else語句好呢還是用case語句好?而不能透過這些語句表面看到他們所具體代表的電路。只有建立了硬件設(shè)計(jì)思想,才有更深入學(xué)習(xí)FPGA的可能。

FPGA入門簡(jiǎn)單精通難。要想入門,買一塊開發(fā)板跟著例程走一遍,很多人都能在很短的時(shí)間內(nèi)熟悉開發(fā)軟件的操作方法并且點(diǎn)亮開發(fā)板上的LED或者再實(shí)現(xiàn)個(gè)跑馬燈什么的。但是再往后進(jìn)步往往就進(jìn)展很慢。上面提到的這四條是玩轉(zhuǎn)FPGA的基礎(chǔ),只有打好了堅(jiān)實(shí)的基礎(chǔ)后面才能一馬平川。希望每個(gè)學(xué)習(xí)FPGA的人最后都能成為大牛,設(shè)計(jì)出自己的完美電路。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601232
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA加速深度學(xué)習(xí)模型的案例

    FPGA(現(xiàn)場(chǎng)可編程門陣列)加速深度學(xué)習(xí)模型是當(dāng)前硬件加速領(lǐng)域的一個(gè)熱門研究方向。以下是一些FPGA加速深度學(xué)習(xí)模型的案例: 一、基于FPGA
    的頭像 發(fā)表于 10-25 09:22 ?106次閱讀

    FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?

    今天給大俠帶來在FPAG技術(shù)交流群里平時(shí)討論的問題答疑合集(十四),以后還會(huì)多推出本系列,話不多說,上貨。 FPGA技術(shù)交流群目前已有十多個(gè)群,QQ和微信均覆蓋,有需要的大俠可以進(jìn)群,一起交流學(xué)習(xí)
    發(fā)表于 09-27 20:53

    FPGA學(xué)習(xí)重點(diǎn)是什么?

    FPGA學(xué)習(xí)重點(diǎn)是什么?
    發(fā)表于 05-24 07:38

    FPGA學(xué)習(xí)筆記-關(guān)于FPGA資源

    在和別人討教FPGA知識(shí)時(shí),初步得到的有關(guān)FPGA的印象是:通過程序或者其它設(shè)置,把集成在芯片中的各種邏輯電路組合起來使用。就像用CMOS、TTL門電路搭建處理邏輯更復(fù)雜的電路。帶著這個(gè)印象開始
    發(fā)表于 05-22 18:27

    FPGA基礎(chǔ)知識(shí)學(xué)習(xí)

    、導(dǎo)航系統(tǒng)等。這些系統(tǒng)對(duì)實(shí)時(shí)性和可靠性要求極高,FPGA能夠滿足這些需求。 人工智能和深度學(xué)習(xí)FPGA可以用于加速深度學(xué)習(xí)算法的計(jì)算和訓(xùn)練過程,提供高性能和低功耗的解決方案。隨著人
    發(fā)表于 04-29 23:26

    哪有FPGA的verilog編程基礎(chǔ)知識(shí)?

    沒接觸過FPGA開發(fā),那個(gè)verilog編程有什么入門基礎(chǔ)知識(shí)學(xué)習(xí)的?
    發(fā)表于 04-29 23:09

    如何快速入門FPGA

    和編程技巧。 參與FPGA相關(guān)的社區(qū)和論壇,與其他工程師交流學(xué)習(xí)經(jīng)驗(yàn),解決遇到的問題。 通過以上步驟,你可以逐步掌握FPGA基礎(chǔ)知識(shí),并通過實(shí)踐項(xiàng)目不斷提升自己的技能。記住,持續(xù)
    發(fā)表于 04-28 09:06

    如何快速入門FPGA?

    和編程技巧。 參與FPGA相關(guān)的社區(qū)和論壇,與其他工程師交流學(xué)習(xí)經(jīng)驗(yàn),解決遇到的問題。 通過以上步驟,你可以逐步掌握FPGA基礎(chǔ)知識(shí),并通過實(shí)踐項(xiàng)目不斷提升自己的技能。記住,持續(xù)
    發(fā)表于 04-28 08:54

    FPGA學(xué)習(xí)筆記-入門

    大概10年前,大學(xué)同學(xué)建議我學(xué)習(xí)DSP。當(dāng)因?yàn)楣ぷ髅Γ仓皇呛?jiǎn)單學(xué)習(xí)了DSP的一些基礎(chǔ)知識(shí),沒有進(jìn)一步深入學(xué)習(xí)和時(shí)間。結(jié)果現(xiàn)在,好像DSP已經(jīng)不再是主流了,現(xiàn)在有了
    發(fā)表于 04-09 10:55

    FPGA初步學(xué)習(xí)印象

    了。FPGA出現(xiàn)后,也想學(xué)習(xí)學(xué)習(xí)這方面的知識(shí)。抱著先簡(jiǎn)單學(xué)習(xí)下的態(tài)度,在網(wǎng)上找資料看看。感覺FPGA
    發(fā)表于 04-09 09:46

    FPGA學(xué)習(xí)資料分享

    本帖最后由 1653149838.791300 于 2024-3-31 13:24 編輯 FPGA學(xué)習(xí)首先是要熟悉掌握使用硬件描述語言,這方面可以通過書籍或者這方面論壇,這里個(gè)人分享一個(gè)比較好
    發(fā)表于 03-31 13:23

    fpga學(xué)習(xí)需要具備哪些課程

    FPGA(Field Programmable Gate Array)學(xué)習(xí)需要具備一系列的課程知識(shí)和實(shí)踐技能
    的頭像 發(fā)表于 03-14 15:51 ?1094次閱讀

    FPGA基礎(chǔ)知識(shí)介紹

    電子發(fā)燒友網(wǎng)站提供《FPGA基礎(chǔ)知識(shí)介紹.pdf》資料免費(fèi)下載
    發(fā)表于 02-23 09:45 ?29次下載

    學(xué)習(xí)FPGA必須知道的社區(qū)

    學(xué)習(xí)FPGA必須知道的社區(qū)
    的頭像 發(fā)表于 01-03 17:51 ?342次閱讀
    <b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>FPGA</b>必須知道的社區(qū)

    值得多看的FPGA 學(xué)習(xí)路線

    這個(gè)語言做驗(yàn)證 。 FPGA入門學(xué)習(xí)第二部分:基礎(chǔ)知識(shí) 說完了編程語言,我們?cè)賮砜纯慈腴TFPGA的第二部分內(nèi)容:基礎(chǔ)知識(shí)。這里主要有專業(yè)基礎(chǔ)
    發(fā)表于 01-02 23:03