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

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

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

FPGA初學(xué)者的入門之道

汽車玩家 ? 來源: FPGA技術(shù)聯(lián)盟 ? 作者:默宸 ? 2020-03-15 17:25 ? 次閱讀

前言

很多FPGA初學(xué)者,都會懷疑學(xué)習(xí)FPGA有沒有前途,發(fā)展前景怎么樣,到底該怎樣學(xué)習(xí)FPGA???各種迷茫,導(dǎo)致無法踏踏實(shí)實(shí)、全身心投入FPGA學(xué)習(xí)與開發(fā)工作中。下面請看看一個死磕FPGA 15年的大神給大家的肺腑之言,相信看完之后的你不在徘徊、不再猶豫、能夠勇往直前。

作為一個從事了15年FPGA行業(yè)的大齡工程師。期間接也觸過一些項目管理和技術(shù)支持之類的工作,但總覺得自己更適合死磕技術(shù)。在FPGA的領(lǐng)域找到未來的指引?!?/p>

做FPGA不只是寫寫代碼

“FPGA作為數(shù)字系統(tǒng)的主角兒,經(jīng)過近20年的突飛猛進(jìn)發(fā)展,大家都明白這個領(lǐng)域的工程師對經(jīng)驗(yàn)是非??粗氐?,屬于典型的入門簡單,若要精深就很難,做FPGA開發(fā)不只是會寫寫verilog和VHDL代碼這么簡單,而是要設(shè)計芯片,如果按照芯片的設(shè)計要求,才能提高自身的能力?!?/p>

硬件開發(fā)語言是用來設(shè)計芯片的,而數(shù)字芯片也就是0/1的翻轉(zhuǎn),HDL能夠逐漸映射出一個個與非門、觸發(fā)器、存儲器,以及他們之間的時序關(guān)系,時時刻刻考慮怎樣設(shè)計才能保證面積小、延遲低。功能做對了還要考慮時序優(yōu)化,即使功能設(shè)計的再完美,代碼寫的再簡潔,設(shè)計的時候沒有考慮時序,一切都是花架子、空擺設(shè)?!?/p>

FPGA是數(shù)字系統(tǒng)的主角

“FPGA逐漸從粘合邏輯轉(zhuǎn)變?yōu)橄到y(tǒng)級角色。開始的時候主要用于做接口、做通信,也就是偏向硬件。如此,最基本的接口協(xié)議便很重要,不懂接口協(xié)議FPGA就是孤家寡人,沒有數(shù)據(jù)的交互,什么都干不了,故一個成熟的FPGA工程師不是熟悉FPGA就好?!?/p>

后來,F(xiàn)PGA開始逐漸用來做做算法、做控制,如果要用FPGA做算法,還需要學(xué)習(xí)更高級的語言做仿真和驗(yàn)證,更重要的是要把算法映射到FPGA的硬件資源或者外設(shè),并基于速度、面積和功能做平衡,做優(yōu)化。還是挺有挑戰(zhàn)呢。

現(xiàn)在,隨著人工智能、機(jī)器視覺的崛起,F(xiàn)PGA更加偏向系統(tǒng)級設(shè)計,有了軟件算法的異構(gòu),能夠替代GPUCPU”.

所以,已經(jīng)在路上的不用回頭,也許你面前溝溝坎坎很難走,甚至有一堵墻遮光蔽日,但是,前途是絕對光明的。

01、FPGA入門之道

對于新手學(xué)習(xí)FPGA設(shè)計,要從基礎(chǔ)開始做,基礎(chǔ)牢,才有成為高手的可能。

以下幾步是初學(xué)者必須要踏實(shí)走過的:

step 1:

了解FPGA結(jié)構(gòu),F(xiàn)PGA到底是什么東西,芯片里面有什么,不要開始就拿個開發(fā)板照著別人的東西去編程。只有了解了FPGA內(nèi)部的結(jié)構(gòu)才能明白為什么寫Verilog和寫C整體思路是不一樣的。

step2:

了解了FPGA的結(jié)構(gòu)和設(shè)計流程才有可能知道怎么去優(yōu)化設(shè)計,提高速度,減少資源,不要急躁,不要再為選擇什么語言和選擇哪個公司的芯片上下功夫。語言只是一種表達(dá)的方式,重要的是你的思維模式,沒有好的指導(dǎo)思想,語言用得再好,不過是個懂語言的人。

step3:

開始學(xué)習(xí)代碼了。一定要系統(tǒng)的,由淺入深的去學(xué)習(xí)FPGA。

step4:

template很重要。能不能高效利用fpga資源,一是了解fpga結(jié)構(gòu),二是了解欲實(shí)現(xiàn)的邏輯功能和基本機(jī)構(gòu),三是使用正確的模板。FPGA內(nèi)部器件種類相對較單一,用好模板,你的邏輯才能被高效的綜合成FPGA擅長表達(dá)的結(jié)構(gòu)。

做fpga主要是要有電路的思想,作為初學(xué)者,往往對器件可能不是熟悉,但對于數(shù)字電路的知識應(yīng)該很熟悉,fpga中是由觸發(fā)器和查找表以及互聯(lián)線等基本結(jié)構(gòu)組成的,其實(shí)我們在代碼里面能夠看到的就是與非門以及觸發(fā)器,切記不要把verilog和c語言等同起來,沒有什么可比性,根本就是不同的東西,在寫一句FPGA程序的時候應(yīng)該想到出來的是一個什么樣的電路,計數(shù)器,選擇器 ,三態(tài)門等等,理解時序,邏輯是一拍一拍的東西,如果在設(shè)計初期想的不是很清楚,可以先畫畫時序圖,這樣思路會更加的清晰。

仿真很重要,不要寫完程序就去往fpga中去加載,首先要仿真,尤其是對較大型的程序,想像自己是在做asic,是沒有第二次機(jī)會的,所以一定要把仿真做好。

很多新手對于語言的學(xué)習(xí)不知道選vhdl好還是verilog好,個人偏好verilog,當(dāng)然不是說vhdl不好,反正寫出來的都是電路,那當(dāng)然就不要在語言的語法上面花太多的功夫了,verilog 言簡意賅assign always case if else 掌握這些幾乎可以寫出90%的電路了。

02、FPGA設(shè)計者需修煉的5項基本功

成為一名說得過去的FPGA設(shè)計者,需要練好5項基本功:仿真、綜合、時序分析、調(diào)試、驗(yàn)證。練好這5項基本功,與用好相應(yīng)的EDA工具是同一過程,對應(yīng)關(guān)系如下:

仿真:Modelsim, Quartus II(Simulator Tool) riple,ISim

綜合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner),ISE,Vivado

時序:Quartus II (TimeQuest Timing Analyzer, Technology Map Viewer, Chip Planner),ISE,Vivado

調(diào)試:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor),Chipscope

驗(yàn)證:Modelsim, Quartus II(Test Bench Template Writer)

掌握HDL語言雖然不是FPGA設(shè)計的全部,但是HDL語言對FPGA設(shè)計的影響貫穿于整個FPGA設(shè)計流程中,與FPGA設(shè)計的5項基本功是相輔相成的。對于FPGA設(shè)計者來說,用好“HDL語言的可綜合子集”可以完成FPGA設(shè)計50%的工作——設(shè)計編碼。用好“HDL語言的驗(yàn)證子集”,可以完成FPGA設(shè)計另外50%的工作——調(diào)試驗(yàn)證。

練好仿真、綜合、時序分析這3項基本功,對于學(xué)習(xí)“HDL語言的可綜合子集”有如下幫助:

通過仿真,可以觀察HDL語言在FPGA中的邏輯行為。

通過綜合,可以觀察HDL語言在FPGA中的物理實(shí)現(xiàn)形式。

通過時序分析,可以分析HDL語言在FPGA中的物理實(shí)現(xiàn)特性。

搭建驗(yàn)證環(huán)境,通過仿真的手段可以檢驗(yàn)FPGA設(shè)計的正確性。

全面的仿真驗(yàn)證可以減少FPGA硬件調(diào)試的工作量。

把硬件調(diào)試與仿真驗(yàn)證方法結(jié)合起來,用調(diào)試解決仿真未驗(yàn)證的問題,用仿真保證已經(jīng)解決的問題不在調(diào)試中再現(xiàn),可以建立一個回歸驗(yàn)證流程,有助于FPGA設(shè)計項目的維護(hù)。

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

    關(guān)注

    1625

    文章

    21628

    瀏覽量

    601252
收藏 人收藏

    評論

    相關(guān)推薦

    我用的是multisim14.0,因?yàn)槭?b class='flag-5'>初學(xué)者,仿真電路的時候找不到合適的模型,應(yīng)該怎么辦?

    我用的是multisim14.0,因?yàn)槭?b class='flag-5'>初學(xué)者,仿真電路的時候找不到合適的模型,應(yīng)該怎么辦? 比如我電路用的是AO3400的NMOS,但是在multisim14.0軟件自帶的元件庫里面沒找到類似的,開啟電壓是1.5v的nmos,請教大家,應(yīng)該怎么辦?
    發(fā)表于 08-23 10:59

    種草一塊國產(chǎn)FPGA開發(fā)板,不用燒錄器,一根TypeC線即插即用,盤古PGX-MINI 4K開發(fā)板

    分享一塊國產(chǎn)入門FPGA開發(fā)板,不用燒錄器,盤古PGX-MINI 4K開發(fā)板,一根TypeC線即插即用,一鍵式便攜操作,非常適用于初學(xué)者?。?!而且配套的資料和實(shí)驗(yàn)例程很豐富,對于想嘗試國產(chǎn)F
    發(fā)表于 08-01 10:27

    適合初學(xué)者的嵌入式項目有哪些?

    適合初學(xué)者的嵌入式項目有哪些? 嵌入式學(xué)習(xí)是一個實(shí)踐性很強(qiáng)的領(lǐng)域,通過實(shí)際項目可以幫助你鞏固理論知識并提升技能。以下是幾個適合初學(xué)者練手的嵌入式項目,每個項目都涵蓋了從硬件到軟件的不同層面
    發(fā)表于 07-11 10:23

    如何快速入門FPGA

    時鐘管理模塊、嵌入式塊RAM、布線資源等。 學(xué)習(xí)FPGA編程語言: 掌握Verilog HDL(硬件描述語言)。Verilog用于數(shù)字電路的系統(tǒng)設(shè)計,具有簡潔的語法和清晰的仿真語義,非常適合初學(xué)者入門
    發(fā)表于 04-28 09:06

    如何快速入門FPGA?

    時鐘管理模塊、嵌入式塊RAM、布線資源等。 學(xué)習(xí)FPGA編程語言: 掌握Verilog HDL(硬件描述語言)。Verilog用于數(shù)字電路的系統(tǒng)設(shè)計,具有簡潔的語法和清晰的仿真語義,非常適合初學(xué)者入門
    發(fā)表于 04-28 08:54

    想學(xué)國產(chǎn)fpga,有推薦的嗎?

    各位大神,國產(chǎn)fpga那一款比較適合初學(xué)者呢?能推薦一下嗎?
    發(fā)表于 04-27 11:58

    國內(nèi)哪家的FPGA適合初學(xué)者

    如題,想著手學(xué)習(xí)FPGA的話,國內(nèi)哪家的比較好,更適合初學(xué)者學(xué)習(xí)?這方面的經(jīng)驗(yàn),是一點(diǎn)都沒。
    發(fā)表于 04-14 19:17

    FPGA芯片的工作原理和使用

    FPGA(現(xiàn)場可編程門陣列)芯片的使用和工作原理對于初學(xué)者來說,可能是一個相對復(fù)雜但非常有趣的學(xué)習(xí)領(lǐng)域。
    的頭像 發(fā)表于 03-27 14:59 ?821次閱讀

    種草一塊國產(chǎn)FPGA開發(fā)板,不用燒錄器,一根TypeC線即插即用,盤古PGX-MINI 4K開發(fā)板

    分享一塊國產(chǎn)入門FPGA開發(fā)板,不用燒錄器,盤古PGX-MINI 4K開發(fā)板,一根TypeC線即插即用,一鍵式便攜操作,非常適用于初學(xué)者?。?!而且配套的資料和實(shí)驗(yàn)例程很豐富,對于想嘗試國產(chǎn)F
    發(fā)表于 03-04 16:04

    初學(xué)者請問各位大佬

    為什么在89C51單片機(jī)中R1可以提供低地址 在外部擴(kuò)展RAM中不是P0口提供低8位地址P2口提供高8位地址嗎初學(xué)者有些不理解望各位大佬解答一下謝謝
    發(fā)表于 02-23 16:39

    初識FPGA需要關(guān)注的注意事項!

    1.基礎(chǔ)問題 FPGA的基礎(chǔ)就是數(shù)字電路和HDL語言,想學(xué)好FPGA的人,建議床頭都有一本數(shù)字電路的書,不管是哪個版本的,這個是基礎(chǔ),多了解也有助于形成硬件設(shè)計的思想。在語言方面,建議初學(xué)者學(xué)習(xí)
    發(fā)表于 02-22 10:57

    請問初學(xué)者要怎么快速掌握FPGA的學(xué)習(xí)方法?

    對于初學(xué)者 FPGA的編程語言是什么? FPGA芯片的基礎(chǔ)結(jié)構(gòu)也不了解. FPGA開發(fā)工具的名稱和使用方法都不知道. 要學(xué)的很多啊,請問有什么自學(xué)的學(xué)習(xí)方法么?
    發(fā)表于 01-02 23:01

    初學(xué)仿真常見的錯誤

    本推文針對Sentaurus初學(xué)者頻繁遇到的錯誤進(jìn)行簡單整理,具體是包括Sde、Sdevice仿真常見錯誤。
    的頭像 發(fā)表于 12-03 16:24 ?2027次閱讀
    <b class='flag-5'>初學(xué)</b>仿真常見的錯誤

    FPGA入門怎樣選擇合適的板子?

    市面上FPGA芯片占有率較高的是xilinx,其次是altera,這兩家市場占有率之和達(dá)到百分之八十以上, 具體選擇哪家廠商的芯片入門呢?這兩家的開發(fā)環(huán)境也有所不同,哪家的或者說是具體的哪款開發(fā)板適合初學(xué)者由淺入深得學(xué)習(xí)
    發(fā)表于 11-17 16:42

    #FPGA FPGA初學(xué)者的學(xué)習(xí)重點(diǎn)難點(diǎn)#FPGA培訓(xùn),

    fpga
    明德?lián)P助教小易老師
    發(fā)布于 :2023年11月14日 07:12:11