-
1 # FPGA三板斧
-
2 # 技術閒聊
根據提問者的描述,已經做了3年的硬體設計,想拓展提升自己,尋找出路。對FPGA比較感興趣,但是公司沒有這樣的平臺,該如何自學呢?
有3年的硬體設計經驗,有一定的硬體基礎,學習FPGA相對來說還是比較容易的,下面談談本人的觀點。
隨著科技發展,對硬體的處理能力要求越來越高,FPGA在在眾多處理器當中有絕對的優勢,FPGA是非常好的一個並行處理平臺,只要邏輯資源允許,可以構建n個處理模組,n個軟核。FPGA是一個高度整合晶片,很多模組整合到FPGA晶片上,比如DSP處理單元、片內RAM、高速收發器、微處理器、乙太網等。提升自己,學習FPAG還是非常有前途的。
硬體描述語言學習FPGA,要先學它的程式語言——硬體描述語言,有VHDL和Verilog,個人建議學習Verilog,Verilog語言和C語言比較相似,對於有C語言基礎的人來說比較容易入門,而且目前市場上使用Verilog語言的人較多。程式語言就不多說了,自己購買教材,或者網上下載電子書、影片教程學習。
開發工具比如Altera公司的的開發工具:quartus,Xilinx公司的開發工具:Vivado、ISE等,FPGA主流的兩大公司就是Altera和Xilinx,佔據了市場90%左右的份額,熟悉掌握使用這兩家公司的開發工具以及相關晶片即可。
下圖為quartus開發工具設計的原理圖以及程式。
always語句,下圖為下降沿觸發,當wr有效,且CS=0時,將data資料寫入outport。
動手實踐這是最關鍵的,剛看書是沒多大用處的,一定要購買FPGA開發板學習,對於初學者來說,最好不要買最小系統板,要購買那種外設較多的開發板,例子較全。
把開發板的大部分例程都練習遍之後,你已經入門了,只有多做專案才能快速成長。
-
3 # 徐君93794277
FPGA的核心是數位電路設計,VERILOG語法雖然和C語言類似,但是,程式設計思想是完全不一樣的,這個對初學者是比較痛苦的。
FPGA除錯,對工具的依賴性比較強。
FPGA設計的另一個大的方向就是驗證,FPGA邏輯驗證也是非常專業的,在大專案中,驗證的工作量也是非常大的,而且驗證所要掌握的語言和工具更多,比如Systemverilog等
還有就是大專案中,FPGA單個用例模擬時間可能會以小時來計算,對前期設計質量要求還是比較高的
所以我們有個預設的說法,培養一個合格的FPGA工程師要一年時間!是指從大學畢業進公司後的培養時間!
-
4 # ICer世界
我只是小蝦,我來分享我的觀點。
硬體設計三年,想轉FPGA,我先按題主的問題來吧。具體的前面都基本覆蓋了,我補充幾點:
1. 三年經驗可以考慮從系統應用入手。三年的硬體經驗帶給你的優勢是比單純的FPGA設計人員更瞭解系統應用,就FPGA本身而言,也是一顆晶片加外圍電路構成的不同應用,而你個人在應用方面應該更有優勢。FPGA內部的設計也有interface相關的,處理相關的,從資料通路上而言,也是從外圍IO進去再從IO出來,你把FPGA單純的看做板上的一顆晶片的時候,這顆晶片所要承載的功能就是後面你要在FPGA裡需要設計的,這樣你對設計的需求理解無疑是很深刻的。我個人認為這是最好的一個切入點。
2. 各種語言和工具的學習。這個不贅述了,verilog也好vhdl也好,掌握一門語言;vivado也好,synplify也好,學會相關的工具。
3. 認真學習FPGA的原理和對應晶片的datasheet。前面的語言和工具都是基於FPGA來進行設計開發使用的,想要知道自己的設計是否能被FPGA實現,工具能否按自己的constraint run出正確的結果,需要深刻理解FPGA的原理,還有所要使用的FPGA晶片的datasheet。
4. 買個開發辦,自己除錯。再多的理論也需要實踐,FPGA的問題千奇百怪,第2點和第3點的學習都是為了實踐打基礎,經驗還得在不斷的debug過程中累計。
-
5 # 胡小瞌
按照這個流程走,如果,基礎好的,幸運的話,經過3-5個月,你可能就是該領域一個初級選手了;6-12個月,你就可以自己獨立的學習補充該領域的知識了;1-2年,你就會對該技術有深刻理解,開始嘗試講該技術應用在不用的領域;3-4年,你就可以靠該技術馳騁公司;第4年之後,你就該考慮是不是該轉行了(嘖嘖嘖~~)。
所以,我們學習fpga的時候,先要明確,現在自己想幹嘛,想要一個什麼樣的結果。你可能回想:“我要成為一個高手,告訴我,高高手”。嘖嘖嘖~,先別想這麼遠,畢竟咱們實現民族復興,社會主義社會,也是分階段來的嘛。按照,流行說法,先給自己定個小目標,”學習使用fpga設計一個流水燈”。好,接下來,就要去做準備工作了,磨刀不誤砍柴工嘛。準備工作主要是哪些呢,小書這裡主要就以最常用的xilinx公司的zynq系列fpga介紹幾種:(1)準備好開發版;(2)開發所需要的軟體準備好;(3)開發所需要的資料準備好;前兩項,大家一般都已經完成,主要是第三步,怎麼去找資料,畢竟面對滿滿學海,當你一頭扎進去後,若是沒有目標,可能會迷失了方向。這時,大家最先想到的是就是百度了,好,百度搜索一下,怎麼學習fpga,那麼搜尋到的答案很可能就是:“最好的資料當然就是官網上的設計文件了”,於是,你開心的開啟官網,輸入:??“等等,我該輸入啥,這裡英文該咋搜”。
當我們需要去設計一個自己不熟悉的功能的時候,從頭開始設計可以說是費時費力不討好的,這時如果有一個前人做好的相關功能設計,哪怕不是完全一樣功能,但是,對於我們自己工程的開發都是有很重要的啟發作用的,站在巨人的肩上,往往可以事倍功倍。因此借來下,小書就介紹一些做fpga開發,或者是做網際網路相關開發,找資料的地方。
(1)Github;Github是一個開原始碼託管中心,這裡面可以說是彙集了全球的開原始碼(不是說是最全,但是一定是最廣)。
(2)淘寶;不要以為,淘寶就是用來買吃買穿的地方,淘寶也是一個很好的我們開發獲取第一手資料的地方。(敢於開店鋪,出售自己技術的人一定是有兩把刷子的人),在淘寶上,經常有很多店家為了推廣自己的產品,給客戶提供免費的開源測試程式碼,這些程式碼是經過金錢檢驗過的質量還是有保障的。
(3)軟體本身;一個軟體不僅是用來設計開發的,也是用來學習相關例程的。軟體一般會對每一種ip核提供一系列設計例程,這些例程是學習掌握該ip核的最基礎資料。
(4)百度;這裡的百度是泛指透過百度搜索到的一系列資料,包括csdn等一些開源資料中心。這些程式碼質量不一定能夠保證,我們參考這程式碼時主要學習其中的設計思路,不要求例程完全正確。
學習過程就像一篇文章,是一個總分總的結構。
一開始是總體概述(這時我們需要找到自己需要的參考資料);
然後是分點概述(我們在希望將參考資料內容化為自己的內容的時候,發現必須弄懂參考資料中沒一個小知識點,才可以在上面修改出自己想要的結果);
最後又是一個總體的總結概述(我們掌握了參考資料的各個小點,重新排列組合出自己想要的結果,搭建出自己想要的工程)。
-
6 # 渣男半導體成長混合
學習FPGA最重要的是買一塊好板子,從這塊板子由淺到深的開始學習。
學習FPGA一年多,現在接觸到的板子也不少了,xilinx和altera的都不少,我比較推薦使用的板子是友盛科技的de2-115以及zynq7000,前者是altera的,後者是xilinx的,如果想做關於cnn卷積神經網路的硬體系統,推薦使用zynq7000,適合做影象處理。
不過,一開始自學的話,更推薦使用鋯石科技的板子,淘寶上買就行,資源很多,影片和程式碼講解都很豐富,b站上資源一搜一大把。
當然,硬體描述語言,各種模擬軟體,一些基本的外設,從邏輯語言實現系統到ip核實現系統,都可以逐步學習,慢慢提升。
-
7 # JiXinWang
我是從硬體轉到fpga的,開始只是寫一些簡單的測試程式,後來運氣算是不錯,有獨立做專案的機會。熬了無數的夜,現在感覺硬體轉行,還是弄嵌入式容易些,起碼那東西好上手。
-
8 # 餓狼傳說的FPGA
分如下幾個層次或者階段吧。
1、verilog語言,這個比較簡單,雖然語法很多,但是真正用於綜合的很少很少,花一天時間入門就可以了。
2、常用的設計方案,比較邊沿檢測電路、串並轉換、計數器、fifo、ram、狀態機等等最基本的方案,需要熟練掌握(自己寫程式碼);
3、模擬,上面第二步說的常用設計方案,每一個都搭建一個平臺模擬下,看看自己的設計是否正確;
4、器件,選擇一款器件(如果手頭有板子,就選擇板子上的器件,沒有的話就選擇一個主流的),瞭解FPGA的架構,瞭解LUT、REG、FIFO、RAM等基礎知識。看看第二步的設計方案綜合後,在FPGA內是個什麼樣子?用了什麼資源?
5、如果有板子,那就是上板測試。比如自己寫一個點燈的微專案。
透過上述5個步驟,完成一個微專案後,會增加自己的信心和興趣,後面的過程就是2-5反覆的過程。因為任何一個複雜的設計,最終實現都是第二步中提到的常用設計方案。
-
9 # YOUKNOW你知道
有很多大牌研究所的專家入駐 線上回覆疑難雜症
最重要的是目前是免費!!不要錯過啦 快點關注看看吧!
我做硬體設計三年了,漸漸發現硬體真的不值錢了,在公司裡軟體的地位,待遇都比硬體高,我一直想找出路,但是對軟體不感興趣,所以想走數位電路,從FPGA入手,但公司沒有這種平臺,恐怕要自學了,所以想請教各位該怎麼學?
回覆列表
1、先學習硬體描述語言,Verilog或VHDL,verilog相對簡單,程式設計風格類似C語言,有C基礎的上手快。verilog語法資料網上很多,也可以買本書看看。
2、FPGA的開發工具也是必學,任何一門語言都有自己程式設計環境,FPGA常用開發工具有ISE,vivado,quartus,模擬工具modelsim。
圖1 VIVADO 開發工具
3、買個開發板,有一個FPGA的硬體平臺是必不可少,學有所用。利用開發板熟悉FPGA的開發流程,同時開發板廠家會相應例程,便於學習,上手。
圖2 開發板
4、對於懂硬體的朋友來說,也算有優勢。熟悉硬體也必不可少,有助於底層程式碼除錯。
圖3 FPGA開發流程
5、最後就是參與FPGA專案,在實踐中前行,歷練更快,提高更多。