【轉載】如何學習FPGA

2021-03-02 摸魚範式

你可能發現你綜合出來的電路儘管沒錯,但有很多警告。這個時候,你得學會同步設計原則、優化電路,是速度優先還是面積優先,時鐘樹應該怎樣設計,怎樣同步兩個異頻時鐘等等。推薦的教材是《FPGA權威指南[26]》、《Altera FPGA/CPLD設計》第二版的基礎篇[27]和高級篇[28]兩本。學會加快編譯速度(增量式編譯、LogicLock),靜態時序分析[29](timequest[30]),嵌入式邏輯分析儀(signaltap[31])就算是通關了。如果有不懂的地方可以暫時跳過,因為這部分還需要足量的實踐,才能有較深刻的理解。

現在你發現,原來FPGA會涉及到那麼多知識,你可以選一個感興趣的方向,但是工作中很有可能用到其中幾個方向的知識,所以理論還是學得越多越好。如果你要更上一層,數學和英語是不可避免的。

現在FPGA內部的事情是難不到你的,但是信號出了FPGA,你就沒法控制了。這個時候必須學好模電。比如:電路分析、模擬電子技術、高頻電子線路、PCB設計、EMC、SI、PI等等,能設計出一塊帶兩片DDR3的FPGA開發板,就算通關了。具體的學習路線可以參考本博客的《如何學習硬體設計——理論篇[86]》和《如何學習硬體設計——實踐篇[87]》。

能到這個境界,說明你已經很厲害了,但是還有很多東西要學的,因為FPGA常常要跟CPU交互,也就是說你得經常跟軟體工程師交流,所以也得懂點軟體方面的知識。比如ARM(Xilinx的ZYNQ和Altera的SOC會用到ARM的硬核,請參考本博客的《如何學習嵌入式軟體[88]》)、DSP[89]、Linux、安卓[90]、上位機(QT[91]、C#、JAVA)都可以學一下,反正學無止境的。

[1]

數電: http://bbs.eetop.cn/thread-157244-1-1.html

[2]

Quartus: http://blog.csdn.net/k331922164/article/details/46275247

[3]

ISE: http://bbs.eetop.cn/thread-451518-1-1.html

[4]

Vivado: http://bbs.eetop.cn/thread-598057-1-1.html

[5]

Design Compiler: http://bbs.eetop.cn/thread-558981-1-1.html

[6]

Synopsys: http://www.synopsys.com/Tools/Implementation/FPGAImplementation/Pages/default.aspx

[7]

VCS: http://bbs.eetop.cn/thread-412008-1-1.html

[8]

Lattice: http://www.latticesemi.com/Products.aspx

[9]

Diamond: http://blog.csdn.net/k331922164/article/details/51379364

[10]

Microchip: https://www.microchip.com/design-centers/fpgas-and-plds

[11]

Libero: https://www.microsemi.com/product-directory/design-resources/1751-libero-ide#downloads

[12]

Synplify pro: http://bbs.eetop.cn/thread-578576-1-1.html

[13]

什麼是硬體以及什麼是軟體: http://blog.csdn.net/k331922164/article/details/46730523

[14]

Verilog HDL高級數字設計: http://bbs.eetop.cn/thread-281674-1-1.html

[15]

用於邏輯綜合的VHDL: http://search.dangdang.com/?key=%20%D3%C3%D3%DA%C2%DF%BC%AD%D7%DB%BA%CF%B5%C4VHDL&act=input

[16]

verilog_IEEE官方標準手冊-2005_IEEE_P1364: http://bbs.eetop.cn/thread-556080-1-1.html

[17]

IEEE Standard VHDL Language_2008: http://bbs.eetop.cn/thread-436703-1-1.html

[18]

Verilog HDL應用程式設計實例精講: http://bbs.eetop.cn/viewthread.php?tid=587313

[19]

Altera: https://www.altera.com/support/literature/lit-index.smartphone.html

[20]

Xilinx: http://china.xilinx.com/support.html

[21]

modelsim仿真: http://blog.csdn.net/k331922164/article/details/47988847

[22]

QuestaSim: http://bbs.eetop.cn/thread-452999-1-1.html

[23]

NC verilog: http://bbs.eetop.cn/thread-471086-1-1.html

[24]

Verdi: http://wenku.baidu.com/link?url=1cMQfcz0XQVXzvk2bOj_hLCfy6EAZR8KmlmRl-7pMnq-BCz8bLzYhfmQXcV9aqxVO0EB9rfV0X1nXgEpUUmUOQFv682BHIUB8HFUwOGfNoO

[25]

WRITING TESTBENCHES Functional Verification of HDL Models: http://bbs.eetop.cn/thread-413725-1-1.html

[26]

FPGA權威指南: http://bbs.eetop.cn/thread-335134-1-1.html

[27]

基礎篇: http://bbs.eetop.cn/thread-236729-1-1.html?tid=236729&extra=page%3D1&page=1

[28]

高級篇: http://bbs.eetop.cn/thread-429297-1-1.html

[29]

時序分析: http://blog.csdn.net/k331922164/article/details/48687161

[30]

timequest: http://wenku.baidu.com/link?url=f55u1aL6d5XKysDuD4keltciKNk46aUXn39IF0hINNjaTqHxOeh34PfZDkudvU3JuI1RuwT9DPsow_kRFe9qhWYZbG7uWVo-AoAAylvlLP3

[31]

signaltap: http://blog.csdn.net/k331922164/article/details/47623501

[32]

Sublime text編輯器: http://blog.csdn.net/k331922164/article/details/48092291

[33]

DO文件: http://blog.csdn.net/k331922164/article/details/50001035

[34]

TCL/TK入門經典: http://www.jb51.net/books/304937.html

[35]

Git: https://www.runoob.com/git/git-tutorial.html

[36]

Beyond Compare: http://www.beyondcompare.cc/xiazai.html

[37]

System Verilog: http://bbs.eetop.cn/thread-387263-1-4.html

[38]

Writing Testbenches using SystemVerilog: http://bbs.eetop.cn/thread-587167-1-1.html

[39]

The UVM Primer: http://bbs.eetop.cn/thread-479340-1-1.html

[40]

System Verilog1800-2012語法手冊: http://bbs.eetop.cn/thread-387263-1-1.html

[41]

虛擬Jtag: http://blog.csdn.net/k331922164/article/details/52093292

[42]

PID算法: http://blog.csdn.net/k331922164/article/details/51146507

[43]

信號與系統: https://blog.csdn.net/k331922164/article/details/55006763

[44]

多採樣率信號處理: http://product.dangdang.com/20495314.html

[45]

UART: http://blog.csdn.net/k331922164/article/details/51429544

[46]

SPI: https://wenku.baidu.com/view/1d162f7187c24028915fc3da.html?from=search

[47]

IIC: https://wenku.baidu.com/view/8f9df95f804d2b160b4ec0b3.html?from=search

[48]

USB: http://blog.csdn.net/k331922164/article/details/53349360

[49]

CAN: https://wenku.baidu.com/view/f6cf8081d4d8d15abe234ecb.html

[50]

PCIE: http://bbs.eetop.cn/thread-600329-1-1.html

[51]

Rapid IO: http://www.rapidio.org/

[52]

DDR: https://wenku.baidu.com/view/c1609388d4d8d15abe234e6f.html

[53]

TCP/IP: http://www.jb51.net/books/66960.html

[54]

SPI4.2: https://wenku.baidu.com/view/8093e3edf8c75fbfc77db296.html

[55]

SATA: http://bbs.eetop.cn/thread-594135-1-1.html

[56]

DisplayPort: http://bbs.eetop.cn/thread-315534-1-1.html

[57]

單片機: http://blog.csdn.net/k331922164/article/details/44681093

[58]

RISC-V: https://riscv.org/risc-v-cores/

[59]

H.265: http://bbs.eetop.cn/thread-599982-1-1.html

[60]

CRC: http://blog.csdn.net/k331922164/article/details/51648707

[61]

MATLAB寶典: http://www.jb51.net/books/104042.html

[62]

數字濾波器的MATLAB與FPGA實現: http://search.dangdang.com/?key=%CA%FD%D7%D6%C2%CB%B2%A8%C6%F7%B5%C4MATLAB%D3%EBFPGA%CA%B5%CF%D6&act=input

[63]

官網: https://www.altera.com/support/literature/lit-index.html

[64]

代碼風格: http://blog.csdn.net/k331922164/article/details/52166038

[65]

增加元件例化語句的可讀性: http://blog.csdn.net/k331922164?viewmode=list

[66]

流程圖/時序圖: http://blog.csdn.net/k331922164/article/details/50541541

[67]

撰寫文檔: http://blog.csdn.net/k331922164/article/details/50539863

[68]

知網: http://www.cnki.net/

[69]

百度文庫: http://wenku.baidu.com/

[70]

EETOP論壇: http://bbs.eetop.cn/

[71]

opencores: http://opencores.org/projects

[72]

ChinaAET: http://blog.chinaaet.com/

[73]

SCI-HUB: http://tool.yovisun.com/scihub/

[74]

標準網: http://www.biaozhuns.com/

[75]

標準分享網: http://www.bzfxw.com/

[76]

Photoshop CS6完全自學教程: http://www.jb51.net/books/100972.html

[77]

數字圖像處理matlab版: http://bbs.eetop.cn/thread-305112-1-1.html

[78]

學習OpenCV: http://www.jb51.net/books/86684.html

[79]

數字圖像處理: http://bbs.eetop.cn/thread-252932-1-1.html

[80]

Verilog讀取bmp圖片: https://blog.csdn.net/k331922164/article/details/108655028

[81]

基於FPGA的嵌入式圖像處理系統設計: https://www.amazon.cn/dp/B00BPXFUVK/ref=wl_it_dp_o_pd_nS_ttl?_encoding=UTF8&colid=1KD25DEC6Q598&coliid=I1BCWMH1TX87Q5

[82]

基於FPGA的數字圖像處理原理及應用: http://product.dangdang.com/24171633.html#preface

[83]

實分析: http://blog.csdn.net/k331922164/article/details/52842206

[84]

泛涵分析: http://product.dangdang.com/23598130.html

[85]

小波分析: http://wenku.baidu.com/link?url=sIxDcV7Aju1bNj0eqZj1-1zJrs0P1ZCg558bXfyO5NDNo6oRWz5QHl3fcAoe41yxi_oH9k0DuPy_7qznsF7QLEMNUh8ELJR-cFuzpZavrve

[86]

如何學習硬體設計——理論篇: http://blog.csdn.net/k331922164/article/details/45102489

[87]

如何學習硬體設計——實踐篇: http://blog.csdn.net/k331922164/article/details/46844339

[88]

如何學習嵌入式軟體: http://blog.csdn.net/k331922164/article/details/50629131

[89]

DSP: http://blog.csdn.net/k331922164/article/details/78734859

[90]

安卓: https://blog.csdn.net/k331922164/article/details/103204387

[91]

QT: http://blog.csdn.net/k331922164/article/details/52729675

[92]

微電子教學視頻--Silicon Run等: https://blog.csdn.net/k331922164/article/details/85047746

相關焦點

  • (轉載)如何學習FPGA
    因為verilog太像C了,很容易混淆,最後你會發現,你花了大量時間去區分這兩種語言,而不是在學習如何使用它。當然,你思維能轉得過來,也可以選verilog,畢竟在國內verilog用得比較多。       接下來,首先找本實例抄代碼。
  • 畢業生FPGA小白真實敘述
    一、本人經歷從去年到現在接觸fpga可以說是滿一整年了,從去年的培訓學習fpga到現在的工作中使用fpga有更大的體會。記得去年大三實習的時候,由於實習提前結束,學校沒課和加之馬上要畢業了,感覺自己要學習一門本領或者技能,在畢業後的日子能有一份不錯穩定的工作,班裡的同學開始考慮畢業後的出路。自己也考慮今後出路。
  • 3G系統中AGC的FPGA設計實現
    agc在系統中的位置如圖1虛線框所示:    3 agc系統的fpga實現    根據agc所實現的功能  ,在fpga中將agc模塊分為如下幾個部分來實現:  3.1 數據幹路模塊    從RSP接口來10位二進位補碼數據I1和Q1,與求指數模塊傳送來的預放大增益
  • FPGA是什麼
    如何實現快速的時序收斂、降低功耗和成本、優化時鐘管理並降低FPGA與PCB並行設計的複雜性等問題,一直是採用FPGA的系統設計工程師需要考慮的關鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發展,系統設計工程師在從這些優異性能獲益的同時,不得不面對由於FPGA前所未有的性能和能力水平而帶來的新的設計挑戰。
  • 通過點燈的邏輯體驗FPGA的編程流程以及Verilog語法基礎
    學習FPGA也不例外,不要小瞧這隻小小的LED,它能在你學習的路上帶給你光明,引導一個門外漢跨進可編程邏輯世界的大門!作為「寒假在家一起練」的第二次直播講座,我們今天就基於1個LED做了1個多小時的分享,從創建第一個FPGA項目、寫下第一句Verilog代碼,到調用FPGA的IP Cores,體驗了FPGA的設計流程以及Verilog的基本語法規範。
  • Altera啟動全球 SoC FPGA開發者論壇
    在ASDF提供的環境中,系統架構師、硬體工程師、軟體開發人員和固件工程師一起協作,討論概念和遇到的難題,學習最新的技術,了解Altera及其合作夥伴提供的SoC FPGA新產品。本文引用地址:http://www.eepw.com.cn/article/280214.htm
  • 基於Modelsim FLI接口的FPGA仿真技術
    圖 2 語言測試程序對 VHDL 設計的協同仿真結構圖 fpga相關文章:fpga是什麼
  • 零基礎學FPGA(四)Verilog語法基基礎基礎(中)
    我們接著上篇文章繼續學習,上次提到了兩種賦值語句,讓我們接著往下學。 fpga
  • 基於FPGA的任意分頻器設計
    fpga相關文章:fpga是什麼 分頻器相關文章:分頻器原理 塵埃粒子計數器相關文章
  • 高雲半導體FPGA系列面世 為國產FPGA注入活力
    fpga相關文章:fpga是什麼
  • 基於CORDIC 2FSK調製器的FPGA設計
    fpga相關文章:fpga是什麼
  • 零基礎入門FPGA,如何學習?
    不了解FPGA內部結構,就不能明白最終代碼如何變到FPGA裡面去的,也就無法深入的了解如何能夠充分運用FPGA。現在的FPGA,不單單是有前面講的那三塊,還有很多專用的硬體功能單元,如何利用好這些單元實現複雜的邏輯電路設計,是從菜鳥邁向高手的路上必須要克服的障礙。而這一切,還是必須先從了解FPGA內部邏輯及其工作原理做起。
  • 基於FPGA的m序列信號發生器設計
    因此,深入學習研究m序列具有重要的實際意義。  1 m序列信號發生器的組成  基於FPGA的m序列信號發生器硬體結構極其簡單,僅需兩個獨立按鍵(一個是復位按鍵與另一個控制數據率切換按鍵)、一個48 MHz的用於提供系統時鐘有源晶振、系統電源、一塊配置晶片、幾個簡單的電阻與電容即可實現。
  • 美高森美推出高集成度IGLOO2拓寬FPGA產品組合
    fpga相關文章:>fpga是什麼
  • 如何在 FPGA 上實現雙線性插值的計算?
    作者 | 殷慶瑜責編 | 胡巍巍本文主要討論了如何在FPGA上實現雙線性插值的計算。Interp和Resize是Yolo_v2,Yolo_v3和Faster R-CNN等目標檢測網絡的關鍵層。主要的作用是使得圖片的放大和縮小過程變得更為平滑。
  • 基於FPGA的RS232行列式矩陣鍵盤接口設計
    fpga相關文章:fpga是什麼 電子鎮流器相關文章:電子鎮流器工作原理
  • 利用FPGA和分解器數字轉換器簡化角度測量
    fpga相關文章:fpga是什麼 塵埃粒子計數器相關文章:塵埃粒子計數器原理
  • 零基礎學FPGA(五)Verilog語法基基礎基礎(下)
    fpga相關文章:fpga是什麼
  • 零基礎學FPGA(十五)Testbenth 很重要,前仿真全過程筆記(上篇)
    fpga相關文章:fpga是什麼
  • 基於FPGA的實時中值濾波器硬體實現
    濾波器相關文章:濾波器原理 fpga相關文章:fpga是什麼 濾波器相關文章:濾波器原理