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

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

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

為什么說學(xué)好FPGA,首先要掌握HDL

lPCU_elecfans ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-28 09:09 ? 次閱讀

入門首先要掌握HDL(HDL=verilog+VHDL)

第一句話是:還沒學(xué)數(shù)電的先學(xué)數(shù)電。然后你可以選擇verilog或者VHDL,有C語言基礎(chǔ)的,建議選擇VHDL。因?yàn)関erilog太像C了,很容易混淆,最后你會(huì)發(fā)現(xiàn),你花了大量時(shí)間去區(qū)分這兩種語言,而不是在學(xué)習(xí)如何使用它。當(dāng)然,你思維能轉(zhuǎn)得過來,也可以選verilog,畢竟在國內(nèi)verilog用得比較多。

接下來,首先找本實(shí)例抄代碼。抄代碼的意義在于熟悉語法規(guī)則和編譯器(這里的編譯器是硅編譯器又叫綜合器,常用的編譯器有:Quartus、ISE、Vivado、Design Compiler 、Synopsys的VCS、iverilog、Lattice的Diamond、Microsemi/Actel的Libero、Synplify pro),然后再模仿著寫,最后不看書也能寫出來。編譯完代碼,就打開RTL圖,看一下綜合出來是什么樣的電路。

HDL是硬件描述語言,突出硬件這一特點(diǎn),所以要用數(shù)電的思維去思考HDL,而不是用C語言或者其它高級(jí)語言,如果不能理解這句話的,可以看《什么是硬件以及什么是軟件》。在這一階段,推薦的教材是《Verilog傳奇》、《Verilog HDL高級(jí)數(shù)字設(shè)計(jì)》或者是《用于邏輯綜合的VHDL》。不看書也能寫出個(gè)三段式狀態(tài)機(jī)就可以進(jìn)入下一階段了。

此外,你手上必須準(zhǔn)備Verilog或者VHDL的官方文檔,《verilog_IEEE官方標(biāo)準(zhǔn)手冊-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些語法問題的時(shí)候能查一下。

獨(dú)立完成中小規(guī)模的數(shù)字電路設(shè)計(jì)

現(xiàn)在,你可以設(shè)計(jì)一些數(shù)字電路了,像交通燈、電子琴、DDS等等,推薦的教材是夏老《Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程》(第三版)。在這一階段,你要做到的是:給你一個(gè)指標(biāo)要求或者時(shí)序圖,你能用HDL設(shè)計(jì)電路去實(shí)現(xiàn)它。這里你需要一塊開發(fā)板,可以選Altera的cyclone IV系列,或者Xilinx的Spantan 6。還沒掌握HDL之前千萬不要買開發(fā)板,因?yàn)槟阗I回來也沒用。這里你沒必要每次編譯通過就下載代碼,咱們用modelsim仿真(此外還有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通過那就不用下載了,肯定不行的。在這里先掌握簡單的testbench就可以了。推薦的教材是《WRITING TESTBENCHESFunctional Verification of HDL Models》。

掌握設(shè)計(jì)方法和設(shè)計(jì)原則

你可能發(fā)現(xiàn)你綜合出來的電路盡管沒錯(cuò),但有很多警告。這個(gè)時(shí)候,你得學(xué)會(huì)同步設(shè)計(jì)原則、優(yōu)化電路,是速度優(yōu)先還是面積優(yōu)先,時(shí)鐘樹應(yīng)該怎樣設(shè)計(jì),怎樣同步兩個(gè)異頻時(shí)鐘等等。推薦的教材是《FPGA權(quán)威指南》、《IP核芯志-數(shù)字邏輯設(shè)計(jì)思想》、《Altera FPGA/CPLD設(shè)計(jì)》第二版的基礎(chǔ)篇和高級(jí)篇兩本。學(xué)會(huì)加快編譯速度(增量式編譯、LogicLock),靜態(tài)時(shí)序分析(timequest),嵌入式邏輯分析儀(signaltap)就算是通關(guān)了。如果有不懂的地方可以暫時(shí)跳過,因?yàn)檫@部分還需要足量的實(shí)踐,才能有較深刻的理解。

學(xué)會(huì)提高開發(fā)效率

因?yàn)镼uartus和ISE的編輯器功能太弱,影響了開發(fā)效率。所以建議使用Sublime text編輯器中代碼片段的功能,以減少重復(fù)性勞動(dòng)。Modelsim也是常用的仿真工具,學(xué)會(huì)TCL/TK以編寫適合自己的DO文件,使得仿真變得自動(dòng)化,推薦的教材是《TCL/TK入門經(jīng)典》。你可能會(huì)手動(dòng)備份代碼,但是專業(yè)人士都是用版本控制器的,所以,為了提高工作效率,必須掌握GIT。文件比較器Beyond Compare也是個(gè)比較常用的工具。此外,你也可以使用System Verilog來替代testbench,這樣效率會(huì)更高一些。如果你是做IC驗(yàn)證的,就必須掌握System Verilog和驗(yàn)證方法學(xué)(UVM)。推薦的教材是《Writing Testbenches usingSystemVerilog》、《The UVM Primer》、《System Verilog1800-2012語法手冊》。

掌握了TCL/TK之后,可以學(xué)習(xí)虛擬Jtag(ISE也有類似的工具)制作屬于自己的調(diào)試工具,此外,有時(shí)間的話,最好再學(xué)個(gè)python。腳本,意味著一勞永逸。

增強(qiáng)理論基礎(chǔ)

這個(gè)時(shí)候,你已經(jīng)會(huì)使用FPGA了,但是還有很多事情做不了(比如,F(xiàn)IR濾波器、PID算法、OFDM等),因?yàn)槔碚摏]學(xué)好。我大概地分幾個(gè)方向供大家參考,后面跟的是要掌握的理論課。

1、信號(hào)處理——信號(hào)與系統(tǒng)、數(shù)字信號(hào)處理、數(shù)字圖像處理、現(xiàn)代數(shù)字信號(hào)處理、盲信號(hào)處理、自適應(yīng)濾波器原理、雷達(dá)信號(hào)處理

2、接口應(yīng)用——如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太網(wǎng)接口)、SATA、光纖、DisplayPort

3、無線通信——信號(hào)與系統(tǒng)、數(shù)字信號(hào)處理、通信原理、移動(dòng)通信基礎(chǔ)、隨機(jī)過程、信息論與編碼

4、CPU設(shè)計(jì)——計(jì)算機(jī)組成原理、單片機(jī)、計(jì)算機(jī)體系結(jié)構(gòu)、編譯原理

5、儀器儀表——模擬電子技術(shù)、高頻電子線路、電子測量技術(shù)、智能儀器原理及應(yīng)用

6、控制系統(tǒng)——自動(dòng)控制原理、現(xiàn)代控制理論、過程控制工程、模糊控制器理論與應(yīng)用

7、壓縮、編碼、加密——數(shù)論、抽象代數(shù)、現(xiàn)代編碼技術(shù)、信息論與編碼、數(shù)據(jù)壓縮導(dǎo)論、應(yīng)用密碼學(xué)、音頻信息處理技術(shù)、數(shù)字視頻編碼技術(shù)原理

現(xiàn)在你發(fā)現(xiàn),原來FPGA會(huì)涉及到那么多知識(shí),你可以選一個(gè)感興趣的方向,但是工作中很有可能用到其中幾個(gè)方向的知識(shí),所以理論還是學(xué)得越多越好。如果你要更上一層,數(shù)學(xué)和英語是不可避免的。

學(xué)無止境

能到這個(gè)境界,說明你已經(jīng)很厲害了,但是還有很多東西要學(xué)的,因?yàn)镕PGA常常要跟CPU交互,也就是說你得經(jīng)常跟軟件工程師交流,所以也得懂點(diǎn)軟件方面的知識(shí)。比如ARM(Xilinx的ZYNQ和Altera的SOC會(huì)用到ARM的硬核,請(qǐng)參考本博客的《如何學(xué)習(xí)嵌入式軟件》)、DSP、Linux、安卓、上位機(jī)(QT、C#、JAVA)都可以學(xué)一下,反正學(xué)無止境的。

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

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600735

原文標(biāo)題:教你學(xué)好FPGA,輕松快速實(shí)現(xiàn)工程夢

文章出處:【微信號(hào):elecfans,微信公眾號(hào):電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    學(xué)好FPGA掌握的五項(xiàng)基本功

    明確,才能積極主動(dòng)地參與到工程項(xiàng)目中來。 掌握HDL語言雖然不是FPGA設(shè)計(jì)的全部,但是HDL語言對(duì)FPGA設(shè)計(jì)的影響貫穿于整個(gè)
    發(fā)表于 02-28 14:04

    學(xué)好FPGA,輕松快速實(shí)現(xiàn)工程夢

    1入門首先要掌握HDLHDL=verilog+VHDL)第一句話是:還沒學(xué)數(shù)電的先學(xué)數(shù)電。然后你可以選擇verilog或者VHDL,有C語言基礎(chǔ)的,建議選擇VHDL。因?yàn)関erilo
    發(fā)表于 07-16 16:36

    選對(duì)方法學(xué)習(xí)FPGA,快速實(shí)現(xiàn)你的工程夢

    入門首先要掌握HDLHDL=verilog+VHDL)
    發(fā)表于 05-16 07:00

    教你學(xué)好FPGA,輕松快速實(shí)現(xiàn)工程夢

    `1.入門首先要掌握HDLHDL=verilog+VHDL)第一句話是:還沒學(xué)數(shù)電的先學(xué)數(shù)電。然后你可以選擇verilog或者VHDL,有C語言基礎(chǔ)的,建議選擇VHDL。因?yàn)関eri
    發(fā)表于 07-21 14:45

    學(xué)fpga需要哪些基礎(chǔ)

    學(xué)fpga需要哪些基礎(chǔ),一、入門首先要掌握HDLHDL=verilog+VHDL)。第一句話是:還沒學(xué)數(shù)電的先學(xué)數(shù)電。然后你可以選擇ver
    發(fā)表于 07-16 08:10

    怎樣去學(xué)習(xí)FPGA

    一、入門首先要掌握HDLHDL=verilog+VHDL)。第一句話是:還沒學(xué)數(shù)電的先學(xué)數(shù)電。然后你可以選擇verilog或者...
    發(fā)表于 07-19 06:16

    你能夠出電路板上那些小元件叫做什么,又有什么作用嗎?

    電子技術(shù)、無線電維修及SMT電子制造工藝技術(shù)絕不是一門容易學(xué)好、短時(shí)間內(nèi)就能夠掌握的學(xué)科。這門學(xué)科所涉及的方方面面很多,各方面又相互聯(lián)系,作為初學(xué)者,首先要在整體上了解、初步掌握它。無
    發(fā)表于 07-27 06:48

    數(shù)碼相機(jī)充電電池使用首先要注意的地方

    數(shù)碼相機(jī)充電電池使用首先要注意的地方 1,買來的新電池是否有電呢?分兩種情況,如果是普通的鎳氫電池,買來是沒
    發(fā)表于 11-04 16:41 ?864次閱讀

    學(xué)習(xí)FPGA 首先要知道哪些

    開始了第一個(gè)獨(dú)立項(xiàng)目的研制,FPGA選型當(dāng)然是已經(jīng)固定了,我就圍著這款FPGA給他添油加醋,希望能讓他滿足我所有的設(shè)計(jì)需求,有了原理圖,后來又出了PCB,和ME的人給他設(shè)計(jì)了外殼,裝上了實(shí)驗(yàn)平臺(tái)開始
    發(fā)表于 05-10 13:49 ?4449次閱讀
    學(xué)習(xí)<b class='flag-5'>FPGA</b> <b class='flag-5'>首先要</b>知道哪些

    如何學(xué)好FPGA

    如何學(xué)好FPGA呢,很多人很困惑,多數(shù)停留在基礎(chǔ)位置徘徊,我就這方面問題給大家談幾點(diǎn)自己的看法。 1.基礎(chǔ)問題 FPGA的基礎(chǔ)就是數(shù)字電路和HDL語言,想
    發(fā)表于 02-23 15:09 ?550次閱讀

    使用pwm波形發(fā)生器 首先要掌握以下知識(shí)

    波形發(fā)生器在生活中有諸多應(yīng)用,不過對(duì)于波形發(fā)生器,大家并非均有所了解。此外,波形發(fā)生器種類較多,無法在短時(shí)間內(nèi)全部掌握。本文中,將為大家講解pwm波形發(fā)生器,并著重解釋這款波形發(fā)生器工作原理。
    發(fā)表于 01-28 17:45 ?5075次閱讀
    使用pwm波形發(fā)生器 <b class='flag-5'>首先要</b><b class='flag-5'>掌握</b>以下知識(shí)

    學(xué)習(xí)單片機(jī)編程首先要學(xué)什么

    學(xué)習(xí)單片機(jī)編程,首先要學(xué)習(xí)基本的模擬電路和數(shù)字電路知識(shí)。掌握常用電子器件的工作原理和使用方法。
    的頭像 發(fā)表于 01-05 09:23 ?9955次閱讀
    學(xué)習(xí)單片機(jī)編程<b class='flag-5'>首先要</b>學(xué)什么

    城市交通控制系統(tǒng)發(fā)展 首先要了解這三個(gè)因素

    控制系統(tǒng)發(fā)展至今已經(jīng)有151年了,1980年我們國內(nèi)的研發(fā)剛起步,在經(jīng)歷了跟蹤、引進(jìn)、消化、吸收和創(chuàng)新這一歷程,我們與國外技術(shù)基本處在同一個(gè)水平上。要了解控制系統(tǒng),首先要知道控制系統(tǒng)的這三個(gè)要素。
    的頭像 發(fā)表于 03-11 09:06 ?3084次閱讀

    元器件的布局首先要考慮的一個(gè)因素是什么?

    高速系統(tǒng)中的接地和互連線上的傳輸延遲時(shí)間也是在系統(tǒng)設(shè)計(jì)時(shí)首先要考慮的因素。信號(hào)線上的傳輸時(shí)間對(duì)總的系統(tǒng)速度影響很大,特別是對(duì)高速的ECL電路,雖然集成電路塊本身速度很高,但由于在底板上用普通的互連
    的頭像 發(fā)表于 06-30 11:02 ?3609次閱讀

    PLC編程首先要干什么?

    首先要做的是整理該項(xiàng)目所用到的所有傳感器,執(zhí)行單元,對(duì)著電氣圖紙給這些元器件命名,電氣圖紙上如果有的,基本上按照電氣原理圖所畫的命名,分配用處,搞明白他的作用。和他的使用注意事項(xiàng),最好包括到后來在現(xiàn)場的安裝位置,根據(jù)P&ID圖紙標(biāo)注。
    的頭像 發(fā)表于 06-10 10:28 ?2244次閱讀