干货丨FPGA零基础学习,入门必看!
看到不少同學后臺進行提問:FPGA如何入門?怎么學習?其實對于新人來說,FPGA的學習需要了解的東西還是非常多,下面IC修真院就帶大家一起來了解一下吧。
FPGA簡介
FPGA普遍用于實現數字電路模塊,用戶可對FPGA內部的邏輯模塊和I/O模塊重新配置,以實現用戶的需求。它還具有靜態可重復編程和動態在系統重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改。可以毫不夸張的講,FPGA能完成任何數字器件的功能,下至簡單的74電路,上至高性能CPU,都可以用FPGA來實現。
FPGA是給誰用的?
很多學校是為給學微電子專業或者集成電路設計專業的學生用的,其實這不過是很多學校受資金限制,買不起專業的集成電路設計工具而用FPGA工具替代而已。其實FPGA是給設計電子系統的工程師使用的。
這些工程師通常是使用已有的芯片搭配在一起完成一個電子設備,如基站、機頂盒、視頻監控設備等。當現有芯片無法滿足系統的需求時,就需要用FPGA來快速的定義一個能用的芯片。
FPGA里面無法就是一些“真值表”、觸發器、各種連線以及一些硬件資源,電子系統工程師使用FPGA進行設計時無非就是考慮如何將這些以后資源組合起來實現一定的邏輯功能而已,而不必像IC設計工程師那樣一直要關注到最后芯片是不是能夠被制造出來。
本質上和利用現有芯片組合成不同的電子系統沒有區別,只是需要關注更底層的資源而已。
要想把FPGA用起來還是簡單的,因為無非就是那些資源,在理解了前面兩點再搞個實驗板,跑跑實驗,做點簡單的東西是可以的。
而真正要把FPGA用好,那光懂點FPGA知識就遠遠不夠了。因為最終要讓FPGA里面的資源如何組合,實現何種功能才能滿足系統的需要,那就需要懂得更多更廣泛的知識。
FPGA入門須知:
觀念認識:從事FPGA開發,不是寫代碼,是電路設計,數字電路設計,只不過不像你在protel里畫原理圖,做layout,它需要你用語言把你的電路描述出來,然后根據根據你的描述生成相應的電路,這里描述的方式就體現你的技術水平了,請明白,verilog或者VHDL都是hardware description laugahge。
2.理論儲備:請把你的數字電路書拿出來,理解寄存器,狀態機,時序方程。
3.請熟讀xilinx或者altera的一款FPGA的手冊,了解他的接口,固件組成(PLL,BlockRAM,DCM,SERDES等),資源分布,建議用xilinx的FPGA Eidter軟件打開一個芯片的版圖,你就會發現FPGA本質就是一系列資源的堆疊,你要做的事情就是怎么利用這么硬件資源做出你要的東西。
4.請理解組合邏輯和時序邏輯,針對2種邏輯信號延遲的組成,計算,也就是時序分許問題。
5.動手能力,寫代碼,多寫代碼,多調試,你遇到的問題多了,解決的多了,所有的問題都不是問題了。要善于總結。
6.對流行的接口,技術的原理要理解,比如SPI,I2C,USB,DDR1/2/3,PCIE,流行的高速接口LVDS,LVPECL,SSTL等。
學習FPGA需要掌握的理論基礎
學會使用FPGA,但是還有很多事情做不了(比如,FIR濾波器、PID算法、OFDM等),因為理論沒學好。
1、信號處理——信號與系統、數字信號處理、數字圖像處理、現代數字信號處理、盲信號處理、自適應濾波器原理、雷達信號處理
2、接口應用——如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太網接口)、SATA、光纖、DisplayPort
3、無線通信——信號與系統、數字信號處理、通信原理、移動通信基礎、隨機過程、信息論與編碼
4、CPU設計——計算機組成原理、單片機、計算機體系結構、編譯原理
5、儀器儀表——模擬電子技術、高頻電子線路、電子測量技術、智能儀器原理及應用
6、控制系統——自動控制原理、現代控制理論、過程控制工程、模糊控制器理論與應用
7、壓縮、編碼、加密——數論、抽象代數、現代編碼技術、信息論與編碼、數據壓縮導論、應用密碼學、音頻信息處理技術、數字視頻編碼技術原理
FPGA會涉及到很多知識,你可以選一個感興趣的方向,但是工作中很有可能用到其中幾個方向的知識,所以理論還是學得越多越好。如果你要更上一層,數學和英語是不可避免的。
好書推薦
Intel FPGA數字信號處理 系統設計權威指南
本書從硬件描述語言、Simulink環境下的模型構建和Intel FPGA高級綜合工具下的C/C 程序設計三個不同的角度,本書從硬件描述語言、模型設計和高級綜合HLS三個角度對使用Intel公司現場可編程門陣列器件構建數字信號處理系統的方法進行了詳細的介紹。
計算機視覺技術
本書旨在建立計算機視覺技術的基礎知識體系,為讀者進入人工智能視覺領域奠定基礎。本書適合作為中職、高職高專及應用型本科人工智能通識課的教材,也可作為人工智能的普及讀物供廣大讀者自學或參考。
云計算機基礎與openstack
本書以實踐為宗旨,采用自動部署工具帶領讀者一步一步構建企業云平臺,同時還分享了OpenStack的最佳實踐方法,幫助讀者深入了解企業級私有化云平臺的優勢和特點。本書內容豐富,注重系統性、實踐性和可操作性,對每個技術點都有相應的操作示例,便于讀者快速掌握要點。
Verilog HDL設計實例手冊
本書以Intel的FPGA芯片為目標器件,以Quartus Prime、Platform Designer(PD)、Nios II-Eclipse為軟件工具,以Verilog HDL為設計語言,選擇C4_MB“口袋實驗板”為目標板,通過精選設計案例,詮釋用FPGA實現數字系統設計的思路與方法。
人工智能數據處理
《人工智能數據處理》一書從基礎實用內容開始,并輔以編程基礎知識和綜合案例,關注數據的采集、數據預處理、數據的可視化、數據的標注,以及大數據的相關應用等大數據的處理知識。其中,既包括文本或數值相關數據的處理,也包括對圖片這樣的非結構化數據的梳理。
需要學習資料的同學,可以私信留下正確的聯系方式,老師會主動聯系你發送學習資料!學習之路上,IC修真院與你同行。
總結
以上是生活随笔為你收集整理的干货丨FPGA零基础学习,入门必看!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Solidworks、Proe、Creo
- 下一篇: CC1101和CC1310的参数配置的问