fpga學習了一個多月了,但是感覺還是沒有入門,遇到verilog程序中的信號,就不怎麼理解?怎麼學習呢


不是很明白你說的不怎麼理解是個什麼狀況。

我曾經接觸交流的新手碰到最大的誤區是把verilog代碼當做了程序,把電路設計當成了編程。

寫verilog時首先要做到心中有電路,你不是coder也不是programer,你是電路設計師。

比較抽象,希望能幫到你。


畫波形啦。fpga是數字電路,數字電路就是一堆0,1跳變的電平。把輸入信號按時間軸畫出來,再把需要的輸出電平變化按時間軸畫出來,然後考慮怎麼用與,非,或三種操作把輸入電平轉換成輸出電平就好了嘛。搞定以後,再簡化表達式,用語言描述出來。習慣以後,就可以直接語言描述啦


你學的不是FPGA你學的是數字集成電路設計(主要是前端),永遠要想著你設計的是電路,當你寫了一段Verilog並能夠在腦中想出對應的電路以及可以反過來的時候,你就有感覺了。剩下就是天賦了,正常人怎麼也要一兩年吧。


玩了6年FPGA了,我才敢說「熟悉」。你才1個月,不急,慢慢來。Take it easy.


我懷疑樓主是沒有經歷過學習數字邏輯這門課程或者沒有深入學習這個課程。從這條路徑出來寫代碼自然可以理解信號的含義。因為你是在設計電路。

另外,如果本身先學會了MCU編程,然後從編程再轉頭來使用erilog設計邏輯,那非常可能出現把verilog 當成C來弄了。尤其不能理解wire和reg的本質含義。

再者,如果本來就是計算機軟體專業背景的人,回頭學硬體開發設計,那使用verilog就更痛苦啦。沒辦法,基因不同。需要多花點時間做基因改造。

個人認為最好的辦法是:把數字邏輯設計教材從頭到尾看一遍。真的搞懂了之後在來學Verilog。

BTW, FPGA跟verilog本質上好像沒有什麼關係。


Verilog是硬體描述語言。

所謂描述,是指先有了電路圖,然後再用硬體描述將電路圖描述成計算機軟體能夠理解的形式。

在用FPGA時,首先要設計出電路圖,通過verilog描述出來,將綜合後的verilog程序下到fpga中


上面那個講的心中有電路對於剛入門的人來說是非常困難的。多看看書上的例子,然後在quartus或ISE裡面看看綜合出來的RTL是什麼樣的,為什麼是這個樣子,這樣才能慢慢理解。我也是菜鳥希望能跟大家多交流多學習。


先多看看別人的常式,看看別人的講解視頻。多看看別人是怎麼個思路,是怎麼把思路轉化成實現的。慢慢就會了,不要著急。


前前後後斷斷續續做過 6 年的 FPGA,不懂的東西越來越多。


LS基本上說完了

首先FPGA是電路,腦子裡面可以想像出一幅從左到右的電路圖(別的方向也可以)

其次要有時鐘周期的概念,每一個周期,結合上面那個想像圖,電流從左到右流過,完成運算。

(當然這個想像並不精確,很多事情一個周期做不完的,但是這樣想像有助於掌握大概的情況)


沒項目做的話,買個開發板,跑幾個例子就行了,對著代碼,波形看看就行了。


去看看至芯科技的視頻


評論里看到一個說玩了六年才熟悉fpga,感覺我的前途路漫漫其修遠兮!並行程序塊簡直要發瘋的,尤其幾千行程序,第一個語句的使能控制信號由最後一句控制,然後發現整個程序都理解錯了。


1.多看一些例子,搞清楚每個模塊描述的功能;

2.多動手寫幾行代碼,然後模擬看看結果;

3.多想一想verilog描述的這些模塊,最終應該是個什麼樣的電路結構;

4.多百度...

最快上手的辦法就是找個項目跟著做一做,比干看教材管用


推薦閱讀:

初學西班牙語,零起步,買什麼書比較好?
如何評論史鐵生?
工科讀博士真的那麼可怕嗎?
在很貴的本子上第一次寫東西是什麼感覺?
西語專四即將到來,對學習西語開始感到煩悶,找不到途徑和方法去增加應有知識,怎麼辦?

TAG:學習 | 現場可編輯邏輯門陣列FPGA |