我學(xué)verilog語(yǔ)言進(jìn)行FPGA設計也就半年時(shí)間,很多的東西就是在網(wǎng)上學(xué)到的,現在想說(shuō)說(shuō)自己對使用verilog進(jìn)行FPGA設計的一些體會(huì ),我水平不高,主要是為新手朋友們介紹自己的一點(diǎn)經(jīng)驗少走點(diǎn)彎路。 1、verilog語(yǔ)言 學(xué)習verilog最重要的不是語(yǔ)法,“因為10%的語(yǔ)法就能完成90%的工作”,verilog語(yǔ)言常用語(yǔ)言就是always@(),if~else,case,assign這幾個(gè)了,不用去專(zhuān)研繁雜的語(yǔ)法,有些問(wèn)題等你碰到了查查書(shū)就好了。這里推薦夏雨聞老師的《verilog數字系統設計教程》,一本很適合新手的好書(shū)。 2、硬件原則 雖然verilog語(yǔ)言很象c語(yǔ)言,但它和c語(yǔ)言還是有本質(zhì)的區別的,因為verilog進(jìn)行的是硬件設計,你寫(xiě)出來(lái)的東西是實(shí)實(shí)在在電路,所以要有數字電路的知識是肯定的。數字電路就是由時(shí)序電路(觸發(fā)器)和組合邏輯電路(各種邏輯門(mén))構成的,用verilog寫(xiě)的程序在FPGA實(shí)現就是觸發(fā)器和邏輯門(mén),所以最重要的就是“你對你寫(xiě)的語(yǔ)言生成的電路心中有數”,做到這一點(diǎn)你就不會(huì )有寫(xiě)出來(lái)的程序不能綜合的麻煩,電路的冗余邏輯肯定也是最少的。還要注意一點(diǎn)就是verilog程序是并行的,不是象c那樣是順序執行的,這是因為fpga硬件可配置,可形成不同的任務(wù)單元同時(shí)工作;而單片機這種基于通用目的,硬件結構也固定了,它處理任務(wù)只能一件一件順序的進(jìn)行。 3、同步原則 在進(jìn)行FPGA設計的時(shí)候,同步原則應該是最重要的原則之一了,因為異步電路的不可控性,很可能有毛刺產(chǎn)生,而在芯片內部的任何一點(diǎn)毛刺都會(huì )一級一級的傳遞下去,最終影響系統的穩定性。同步原則用一句話(huà)來(lái)總結就是“不要試圖產(chǎn)生自己的時(shí)鐘”,最好一個(gè)設計或者一個(gè)模塊只使用同一個(gè)時(shí)鐘,這樣所有的觸發(fā)器都在同一個(gè)時(shí)鐘沿跳變,當然最穩定了,系統也能跑到很高的速度。一個(gè)小技巧就是多使用觸發(fā)器的使能端和取沿電路。 4、養成好的代碼習慣 很多的細節,比如縮進(jìn)、命名、參數化、組合邏輯和時(shí)序邏輯分離、注釋等等,也就是大家說(shuō)的代碼風(fēng)格。這個(gè)其實(shí)很重要,最好在一開(kāi)始就養成好的習慣,這樣會(huì )為你以后的工作節省很多時(shí)間,也會(huì )大大提高工作的質(zhì)量。不注意這個(gè)將很吃很多的苦頭 ,細節決定成敗啊。 5、工具 工具永遠就是工具,最重要的是學(xué)會(huì )怎么使用它,不用去研究它,用的多了自然就熟練了,遇到那個(gè)問(wèn)題了自然就會(huì )去找到問(wèn)題的答案,不用開(kāi)始就抱著(zhù)工具的手冊狂看,問(wèn)問(wèn)別人很簡(jiǎn)單的。 宋工企鵝號:35--24-65--90-88 Tel/WX:173--17--95--19--08 以下課程可免費試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。 想學(xué)習的你和我聯(lián)系預約就可以免費聽(tīng)課了 |