作者前言:我學習FPGA是因為公司需要,同時自己也想接觸這方面的知識,在大規(guī)模、高速信號領域還是有一定的優(yōu)勢,總而言之出于共贏的想法吧。自學的話,因為我是會跟著項目學習的,所以就是用到哪部分再去補充哪部分的知識。我的思路是先把基礎的語法熟悉,數(shù)電和信號處理的知識再扎實一下,同時了解下FPGA代碼的規(guī)范寫法,至于開發(fā)工具的話就先大體了解下流程操作,應用的時候再逐漸熟悉。然后在實踐中提高實際設計的能力。
可能有些是在校自學的,那么我覺得手頭寬裕的可以買塊開發(fā)板來練習效果會更直觀,不寬裕的話找學校從事這方面的老師去當個助理,或者在外實習,都是可行的步驟。另外就是堅持(自古以來說的容易做的難)。
從零開始大戰(zhàn)FPGA——第一天(盲人摸象)
之前一直接觸ARM,單片機多一些,大多是裸機開發(fā),由于公司需要FPGA這塊的工作,只好硬著頭皮去學。哎,真是什么都是被逼出來的,我的興趣本來是想走偏軟一點的方向的,現(xiàn)在看來,又遠了一步啦,只好有時間了再慢慢學習。打算把每天學習的內(nèi)容記下來,希望一方面能鞭策自己,另一方面也是將來可以回顧下當初走的路。
由于是個人學習記錄,難免有錯誤之處,望各位看到的親們可以指正、共勉!
FPGA第一天:
首先,知道了什么叫FPGA(不要鄙視我,雖然我本科時也有集電路和cpld這些課,但純粹是混過來的,老師名字都不知道),F(xiàn)PGA就是現(xiàn)場可編程門陣列,在我的理解看來就是FPGA里面有非常多的邏輯單元,幾十幾百萬門,然后以編程的手段讓這些邏輯單元組成各種各樣的電路,實現(xiàn)指定的功能。
了解了FPGA的基本概念后就開始看 Verilog了,(Verilog跟C語言有點像,看起來比較容易,在亞洲用的比較多,也比較靈活。VHDL語法更嚴謹,美國軍方開發(fā)的,不好入門,但是可以自定義類型等等,不是很熟悉,在歐洲美洲用的多些?不太確定)公司是做軍品的,后期可能需要學習VHDL想想頭都大。
抱著書,看了一整天,看完了語法部分,了解了基本數(shù)據(jù)類型,運算符,語法等等。有以下幾點感觸:
Verilog本質(zhì)還是硬件操作。C語言是順序進行的,Verilog是并行的,這點很重要!
Verilog的精髓感覺是模塊化思想(廢話,其實所有語言都是模塊化...)
wire型變量和reg變量這兩個區(qū)分比較糾結(jié),現(xiàn)在是記住了,但是并沒有理解透(太理論了,需要在實踐中區(qū)分?。?/span>
initial,assign,always,這幾個也有點繞哈哈。
然后看了ISE這個軟件的使用(用的片子是Xilinx的多些),一句話,比較繁瑣,功能強勁。。。
說說這個軟件的流程吧,看了好久才理解的,首先設計大體框架,然后代碼編寫,然后代碼編仿真,然后仿真,仿真完以后把編好的代碼整成一張網(wǎng)表,然后用這張網(wǎng)表映射到FPGA的電路上去,然會就會神奇的由代碼變成了硬件電路(好偉大啊是吧),然后就是各種約束規(guī)則,布線布局。再然后就是再仿真,這個仿真是真實反映實際電路的,再再然后就可以把代碼下載到片子啦。
這是我自己的理解和總結(jié),人家官方給每個步驟起了個好聽的名字:什么設計文檔、仿真、綜合、實現(xiàn)、布局布線、仿真、下載,很繞口,反正了解這個軟件怎么用就行了,我這只是剛剛接觸,根本沒有仔細了解其功能,待日后發(fā)掘之!
好吧,今天的FPGA就看了這么多,效率不是很高,關鍵是手頭還有其他任務,是關于IC卡的,13.56Mhz的數(shù)據(jù)收發(fā),頭疼,芯片手冊看半天也沒看懂,明天繼續(xù),歡迎大牛們提出寶貴的學習建議,歡迎小牛們指正錯誤之處,歡迎大伙共勉!
評論