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