找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8322|回復(fù): 25
打印 上一主題 下一主題
收起左側(cè)

FPGA學(xué)習(xí)及設(shè)計(jì)中的注意事項(xiàng)

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 18 黑幣 回復(fù)本帖可獲得 1 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:69352 發(fā)表于 2014-12-20 14:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1.基礎(chǔ)問(wèn)題
  FPGA的基礎(chǔ)就是數(shù)字電路和HDL語(yǔ)言,想學(xué)好FPGA的人,建議床頭都有一本數(shù)字電路的書(shū),不管是哪個(gè)版本的,這個(gè)是基礎(chǔ),多了解也有助于形成硬件設(shè)計(jì)的思想。 在語(yǔ)言方面,建議初學(xué)者學(xué)習(xí)Verilog語(yǔ)言,VHDL語(yǔ)言語(yǔ)法規(guī)范嚴(yán)格,調(diào)試起來(lái)很慢,Verilog語(yǔ)言容易上手,而且,一般大型企業(yè)都是用Verilog語(yǔ)言。
  2.EDA工具問(wèn)題
  熟悉幾個(gè)常用的就可以的,開(kāi)發(fā)環(huán)境QuartusII ,或ISE 就可以了,這兩個(gè)基本是相通的,會(huì)了哪一個(gè),另外的那個(gè)也就很Easy了。功能仿真建議使用Modelsim ,如果你是做芯片的,就可以學(xué)學(xué)別的仿真工具,做FPGA的,Modelsim就足夠了。綜合工具一般用Synplify,初學(xué)先不用太關(guān)心這個(gè),用Quartus綜合就OK了。
  3.硬件設(shè)計(jì)思想問(wèn)題
  對(duì)于初學(xué)者,特別是從軟件轉(zhuǎn)過(guò)來(lái)的,設(shè)計(jì)的程序既費(fèi)資源又速度慢,而且很有可能綜合不了,這就要求我們熟悉一些固定模塊的寫法,可綜合的模塊很多書(shū)上都有,語(yǔ)言介紹上都有,不要想當(dāng)然的用軟件的思想去寫硬件。
  4.學(xué)習(xí)習(xí)慣問(wèn)題
  FPGA學(xué)習(xí)要多練習(xí),多仿真,signaltapII是很好的工具,可以看到每個(gè)信號(hào)的真實(shí)值,建議初學(xué)者一定要自己多動(dòng)手,光看書(shū)是沒(méi)用的。 關(guān)于英文文檔問(wèn)題,如果要學(xué)會(huì)Quartus II的所有功能,只要看它的handbook就可以了,很詳細(xì),對(duì)于IT行業(yè)的人,大部分知識(shí)來(lái)源都是英文文檔,一定要耐心看,會(huì)從中收獲很多的。
  5.算法問(wèn)題
  做FPGA的工程師,最后一般都是專攻算法了,這些基礎(chǔ)知識(shí)都是順手捏來(lái)的,如果你沒(méi)有做好搞理論的準(zhǔn)備,學(xué)FPGA始終只能停留在初級(jí)階段上。 對(duì)于初學(xué)者,數(shù)字信號(hào)處理是基礎(chǔ),應(yīng)該好好理解,往更深的方向,不用什么都學(xué),根據(jù)你以后從事的方向,比如說(shuō)通信、圖像處理,雷達(dá)、聲納、導(dǎo)航定位等。

  不管你是一名邏輯設(shè)計(jì)師、硬件工程師或系統(tǒng)工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復(fù)雜系統(tǒng)中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號(hào)完整性和其他的一些關(guān)鍵設(shè)計(jì)問(wèn)題。不過(guò),你不必獨(dú)自面對(duì)這些挑戰(zhàn),因?yàn)樵诋?dāng)前業(yè)內(nèi)領(lǐng)先的FPGA公司里工作的應(yīng)用工程師每天都會(huì)面對(duì)這些問(wèn)題,而且他們已經(jīng)提出了一些將令你的設(shè)計(jì)工作變得更輕松的設(shè)計(jì)指導(dǎo)原則和解決方案


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:61484 發(fā)表于 2015-4-14 22:20 | 只看該作者

回帖獎(jiǎng)勵(lì) +1 黑幣

學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

板凳
ID:87432 發(fā)表于 2015-8-1 23:58 | 只看該作者

回帖獎(jiǎng)勵(lì) +1 黑幣

good 大同小異
回復(fù)

使用道具 舉報(bào)

地板
ID:358187 發(fā)表于 2018-7-5 08:38 | 只看該作者
加油;
回復(fù)

使用道具 舉報(bào)

5#
ID:366599 發(fā)表于 2018-7-6 23:30 | 只看該作者
剛接觸,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

6#
ID:43336 發(fā)表于 2018-11-8 14:59 | 只看該作者
好文章 值得一看
回復(fù)

使用道具 舉報(bào)

7#
ID:411940 發(fā)表于 2018-11-13 16:49 | 只看該作者
感謝樓主分享,很好的教程
回復(fù)

使用道具 舉報(bào)

8#
ID:425251 發(fā)表于 2018-11-14 07:41 | 只看該作者
這第五點(diǎn),說(shuō)起來(lái)是很深層次的意思,有沒(méi)有什么指引類的書(shū)。
回復(fù)

使用道具 舉報(bào)

9#
ID:472634 發(fā)表于 2019-6-21 16:43 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

10#
ID:452731 發(fā)表于 2019-7-8 12:40 | 只看該作者
這個(gè)建議倒是不錯(cuò),值得我們還沒(méi)入門的小白參考
回復(fù)

使用道具 舉報(bào)

11#
ID:541246 發(fā)表于 2019-9-5 21:55 | 只看該作者
從stm32轉(zhuǎn)學(xué)FPGA,加油
回復(fù)

使用道具 舉報(bào)

12#
ID:425084 發(fā)表于 2019-9-27 16:43 | 只看該作者
我現(xiàn)在都是畫電路的,感覺(jué)畫電路比Verilog難
回復(fù)

使用道具 舉報(bào)

13#
ID:845573 發(fā)表于 2020-11-18 20:44 | 只看該作者
師傅領(lǐng)進(jìn)門修行靠個(gè)人
回復(fù)

使用道具 舉報(bào)

14#
ID:571541 發(fā)表于 2020-11-24 16:36 | 只看該作者
多謝樓主分享經(jīng)驗(yàn)!
回復(fù)

使用道具 舉報(bào)

15#
ID:491589 發(fā)表于 2021-12-25 17:47 | 只看該作者
樓主說(shuō)得到位,需要注意這幾個(gè)方面的區(qū)別。
回復(fù)

使用道具 舉報(bào)

16#
ID:294886 發(fā)表于 2022-1-5 15:24 | 只看該作者
謝謝分享,為什么都是作者可見(jiàn)?
回復(fù)

使用道具 舉報(bào)

17#
ID:474981 發(fā)表于 2022-12-7 11:31 | 只看該作者
所以FPGA學(xué)習(xí)就是數(shù)電、verilog。然后不斷的看別人代碼,然后寫代碼是嗎?
回復(fù)

使用道具 舉報(bào)

18#
ID:1057191 發(fā)表于 2023-1-22 20:53 | 只看該作者
我也很想學(xué)習(xí)FPGA,但是太小白了,學(xué)著痛苦
回復(fù)

使用道具 舉報(bào)

19#
ID:878801 發(fā)表于 2023-2-1 16:27 | 只看該作者
FPGA學(xué)習(xí)中,謝謝
回復(fù)

使用道具 舉報(bào)

20#
ID:1064792 發(fā)表于 2023-3-1 16:01 | 只看該作者
通過(guò)實(shí)際的例子更能加快學(xué)習(xí)進(jìn)度
回復(fù)

使用道具 舉報(bào)

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

接下來(lái),首先找本實(shí)例抄代碼。抄代碼的意義在于熟悉語(yǔ)法規(guī)則和編譯器(又叫綜合器),常用的集成開(kāi)發(fā)環(huán)境有:Intel的Quartus、Xilinx的ISE和Vivado、Design Compiler 、Synopsys的VCS、Linux下的iverilog、Lattice的Diamond、Microchip的Libero、Synplify pro,然后再模仿著寫,最后不看書(shū)也能寫出來(lái)。編譯完代碼,就打開(kāi)RTL圖,看一下綜合出來(lái)是什么樣的電路。

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

此外,你手上必須準(zhǔn)備Verilog或者VHDL的官方文檔,《verilog_IEEE官方標(biāo)準(zhǔn)手冊(cè)-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些語(yǔ)法問(wèn)題的時(shí)候能查一下。
二、獨(dú)立完成中小規(guī)模的數(shù)字電路設(shè)計(jì)。

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

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

因?yàn)镼uartus和ISE的編輯器功能太弱,影響了開(kāi)發(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è)比較常用的工具,Git也有比較功能。此外,你也可以使用System Verilog來(lái)替代testbench,這樣效率會(huì)更高一些。如果你是做IC驗(yàn)證的,就必須掌握System Verilog和驗(yàn)證方法學(xué)(UVM)。推薦的教材是《Writing Testbenches using SystemVerilog》、《The UVM Primer》、《System Verilog1800-2012語(yǔ)法手冊(cè)》。

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

使用道具 舉報(bào)

22#
ID:773324 發(fā)表于 2023-4-20 23:16 | 只看該作者
加油學(xué)吧
回復(fù)

使用道具 舉報(bào)

23#
ID:1073340 發(fā)表于 2023-4-22 10:46 | 只看該作者
可以參考數(shù)字系統(tǒng)設(shè)計(jì)與VerilogHDL這本書(shū)進(jìn)行學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

24#
ID:930401 發(fā)表于 2024-9-11 09:41 | 只看該作者
受益匪淺
回復(fù)

使用道具 舉報(bào)

25#
ID:1136867 發(fā)表于 2024-11-19 20:44 | 只看該作者
樓主說(shuō)的很好哇,就我個(gè)人而言,如果要快速上手,先掌握組合邏輯門和狀態(tài)機(jī)就可以寫一些簡(jiǎn)單的程序了。我個(gè)人用的是Xilinx的vivado,硬件平臺(tái)用的是basys3。個(gè)人感覺(jué)硬件設(shè)計(jì)(模塊)自上而下,軟件設(shè)計(jì)自下而上。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表