高手經驗 乙個新手的verilog學習經驗

2021-06-07 23:20:08 字數 1481 閱讀 4309

我學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,都是只對部分功能熟悉而已...