服務熱線
0755-83044319
發布時間:2024-07-24作者來源:薩科微瀏覽:1177
1. 硬件描述語言——Verilog + VHDL
首先,要掌握數字電路原理。學習數字電路原理是邁出的[敏感詞]步。在掌握數字電路原理之前,必須先了解基礎知識。然后,你可以選擇學習Verilog或者VHDL。如果你已經掌握了C語言基礎,建議選擇VHDL。因為Verilog與C語言相似度較高,容易混淆,最終會發現自己花費了很多時間去區分這兩種語言,而不是學習如何使用它們。當然,你也可以選擇Verilog,畢竟Verilog的應用比較廣泛。
接下來,找到一個示例來復制代碼。復制代碼的目的是熟悉語法規則和編譯器。然后模仿編寫,并最終在不閱讀書籍的情況下編寫代碼。編譯代碼后,打開RTL圖表,看看出了什么樣的電路。
HDL是一種硬件描述語言,突出了硬件作為特點,所以要以數字電路的思維來思考HDL,而不是使用C或其他高級語言。
2. 獨立完成小型和中型數字電路設計
現在,你可以設計一些數字電路,比如電子吉他、交通信號燈、DDS等。在這個階段,你要做的只是根據規范要求或時序圖,在HDL中設計電路以實現它。你需要一個開發板,在掌握HDL之前不需要購買開發板。你不用每次編譯通過都下載代碼,我們使用ModelSim仿真。如果仿真不能通過,那就沒有必要下載。在這里首先掌握簡單的測試臺就可以了。
3、掌握設計方法和設計原則
到這里你會發現,你的電路雖然是正確的,但會提示很多警告。這時候,你需要學會同步設計原則,優化電路,無論是優先速度還是優先面積,時鐘樹應該如何設計,如何同步兩個異頻時鐘等等。學會加快編譯、靜態時序分析、嵌入式邏輯分析器是必須的。如果有不理解的地方可以暫時跳過,因為這部分也需要足夠的練習,才能有更深的理解。
4、學會提高開發效率
因為Quartus和ISE編輯器功能較弱,影響了開發效率。因此建議使用Sublime文本編輯器中的代碼片段功能,減少重復工作。ModelSim也是一種常見的仿真工具,學習TCL/TK編寫自己的DO文件使仿真自動化。你可能會手動備份你的代碼,但專業人士使用版本控制器,所以掌握GIT以提高效率是很重要的。文件比較工具Beyond Compare也是一種比較常見的工具。此外,你還可以使用System Verilog代替測試臺,這樣會更加高效。如果你正在做IC驗證,你必須掌握System Verilog和驗證方法論(UVM)。
掌握了TCL/TK之后,你可以學習虛擬JTAG(ISE也有類似的工具),制作自己的調試工具。另外,如果有時間,[敏感詞]學習一些Python腳本,這樣可以一勞永逸。
5、加強理論基礎
此時,你已經可以使用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涉及這么多知識,你可以選擇一個感興趣的方向,但工作可能會涉及到幾個方向的知識,所以理論學得越多越好。
6、學會使用MATLAB仿真
在設計FPGA算法時,多少會用到MATLAB,也可以起到輔助FPGA視覺算法硬件化,比如CRC的系數矩陣、數字濾波器系數、各種表格和文本處理等。此外,MATLAB還可以用于調試HDL,通過將MATLAB的計算結果與HDL逐步計算進行對比,你可以知道哪里出了問題。
7、充分練習
此時你至少已經閱讀了芯片手冊幾次(可以在官方網站上找到),然后可以為自己的方向做一定數量的練習(期間保持良好的代碼風格,增加組件示例語句的可讀性,繪制流程圖/時序圖,編寫文檔的習慣)。
例如:通信類可以做調制和解調算法,儀器類可以做總線分析儀等。但這些算法在書中只給出了一個公式、框圖,實際的差距很大,你甚至可能覺得書寫得很膚淺。實際上,當你達到這個階段時,你已經達到了專業水平,自由地了解一些前沿技術,這將有助于你的職業規劃。
8、圖像處理
1、Photoshop。花一兩周時間學習PS,對圖像處理有一個大致的了解,了解各種圖片格式、直方圖、色調、通道、濾鏡、拼接等基本概念,并能夠使用它。這部分是零基礎的,目的是讓你對圖像處理有一種感性的理解,而不是一堆公式推導出來的。
2、基于MATLAB或OpenCV的圖像處理。在這個階段,只要學習簡單的調用函數即可,暫時不必深究實現的細節。
3、圖像處理的基本理論。這部分理論需要較高的數學基礎,包括復變函數、線性代數、信號與系統、數字信號處理等基礎知識,如果基礎不好,建議先補足基礎再來。無法理解理論的也可以暫時放下,也許學習后自然就能有所啟發。
4、基于FPGA的圖像處理。將前面學到的理論應用到FPGA上,如果你已經達到了第七階段的水平,你將很容易獨立完成圖像算法的設計(圖像處理離不開接口,要求在第五階段以上)。
5、深入學習數學。要想在算法上達到更高的水平,必須需要更多的數學知識,所以這里建議學習實分析、廣義分析、小波分析等。
9、電子學的終點是模擬電子
現在,你對FPGA內部的東西已經不難了,但是FPGA輸出的信號卻無法控制。這時候就必須學好模擬電子。例如:電路分析、模擬電子學、高頻電子電路、PCB設計、EMC、SI、PI等,可以設計一塊帶有兩片DDR3的FPGA開發板,即使通關。
10、學習是個堅持的過程
能達到這個水平,說明你已經很不錯了,但是還有許多事情要學,因為FPGA經常需要與CPU交互,也就是說,你必須與軟件工程師溝通,所以你也必須懂一些軟件知識。例如,ARM(Xilinx ZYNQ和Altera的SOC會使用ARM硬核)。總之,學習是個長期堅持的事情。正因為技術無止境,所以FPGA工程師幾乎沒有年齡上的職業危機。所以,加油吧!
免責聲明:本文采摘自“大印藍海科技”公眾號,本文僅代表作者個人觀點,不代表薩科微及行業觀點,只為轉載與分享,支持保護知識產權,轉載請注明原出處及作者,如有侵權請聯系我們刪除。
友情鏈接:站點地圖 薩科微官方微博 立創商城-薩科微專賣 金航標官網 金航標英文站
Copyright ?2015-2024 深圳薩科微半導體有限公司 版權所有 粵ICP備20017602號-1