我學verilog
語言進行
fpga
設計也就半年時間,很多的東西就是在
edacn
上學到的,現在想說說自己對使用
verilog
進行fpga
設計的一些體會,我水平不高,主要是為新手朋友們介紹自己的一點經驗少走點彎路。
1、verilog
語言學習verilog
最重要的不是語法,「因為
10%的語法就能完成
90%的工作」,
verilog語言常用語言就是
always@()
,if~else
,case
,assign
這幾個了,不用去專研繁雜的語法,有些問題等你碰到了查查書就好了。
這裡推薦夏雨聞老師的《verilog
數字系統設計教程》,一本很適合新手的好書。
2、硬體原則
雖然verilog
語言很象
c語言,但它和
c語言還是有本質的區別的,因為
verilog
進行的是硬體設計,你寫出來的東西是實實在在電路,所以要有數位電路的知識是肯定的。
數位電路就是由時序電路(觸發器)和組合邏輯電路(各種邏輯門)構成的,用verilog
寫的程式在
fpga
實現就是觸發器和邏輯門,所以最重要的就是
「你對你寫的語言生成的電路心中有數」,
做到這一點你就不會有寫出來的程式不能綜合的麻煩,電路的冗餘邏輯肯定也是最少的。還要注意一點就是verilog
程式是並行的,不是象
c那樣是順序執行的,這是因為
fpga
硬體可配置,可形成不同的任務單元同時工作;而微控制器這種基於通用目的,硬體結構也固定了,它處理任務只能一件一件順序的進行。
3、同步原則
在進行fpga
設計的時候,同步原則應該是最重要的原則之一了,因為非同步電路的不可控性,很可能有毛刺產生,而在晶元內部的任何一點毛刺都會一級一級的傳遞下去,最終影響系統的穩定性。
同步原則用一句話來總結就是「
不要試圖產生自己的時鐘」,
最好乙個設計或者乙個模組只使用同乙個時鐘,這樣所有的觸發器都在同乙個時鐘沿跳變,當然最穩定了,系統也能跑到很高的速度。
乙個小技巧就是多使用觸發器的使能端和取沿電路。
4、養成好的**習慣
很多的細節,比如縮排、命名、引數化、組合邏輯和時序邏輯分離、注釋等等,也就是大家說的**風格。
這個其實很重要,最好在一開始就養成好的習慣,這樣會為你以後的工作節省很多時間,也會大大提高工作的質量。不注意這個將很吃很多的苦頭 ,
細節決定成敗啊。
5、工具
工具永遠就是工具,最重要的是學會怎麼使用它,不用去研究它,用的多了自然就熟練了,遇到那個問題了自然就會去找到問題的答案,不用開始就抱著工具的手冊狂看,問問別人很簡單的。
上面說的主要是為新手準備的,以後有機會再和大家交流,也請大鳥指點指點,希望大家一起進步!
乙個新手程式設計師的專案經驗
剛開始進入公司是在3 月份,做的乙份工作是 directfb 的移植,前後花了乙個月的時間。就是做這個專案的時候我知道了在學校和社會的不同了,很簡單的乙個例子。移植成功後,在跑測試用例的時候發現有幾個測試用例執行不成功。這要是在學校誰還會管他呢,但是在公司的做法是去看 找出為什麼會出現這個錯誤。di...
乙個新手程式設計師的專案經驗
剛開始進入公司是在3月份,做的乙份工作是directfb的移植,前後花了乙個月的時間。就是做這個專案的時候我知道了在學校和社會的不同了,很簡單的乙個例子。移植成功後,在跑測試用例的時候發現有幾個測試用例執行不成功。這要是在學校誰還會管他呢,但是在公司的做法是去看 找出為什麼會出現這個錯誤。direc...
乙個PS高手的體會
這是乙個ps高手的體會,希望能對大家有所啟迪。1.不要看到別人的作品第一句話就說 給個教程吧!你應該想這個是怎麼做出來的。當你自己想出來,再對照別人的教程的時候,你就知道自己和別人的思路的差異 2.初學者請不要看太多太多的書那會誤人子弟的 先找本系統的學,很多人用了很久ps,都是只對部分功能熟悉而已...