verilog語言是什么
Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。
Verilog HDL是目前應(yīng)用最為廣泛的硬件描述語言.Verilog HDL可以用來進行各種層次的邏輯設(shè)計,也可以進行數(shù)字系統(tǒng)的邏輯綜合,仿真驗證和時序分析等。Verilog HDL適合算法級,寄存器級,邏輯級,門級和版圖級等各個層次的設(shè)計和描述。
Verilog HDL進行設(shè)計最大的優(yōu)點是其工藝無關(guān)性.這使得工程師在功能設(shè)計,邏輯驗證階段可以不必過多考慮門級及工藝實現(xiàn)的具體細節(jié),只需根據(jù)系統(tǒng)設(shè)計的要求施加不同的約束條件,即可設(shè)計出實際電路。
Verilog HDL是一種硬件描述語言(hardware description language),為了制作數(shù)字電路而用來描述ASICs和FPGA的設(shè)計之用。Verilog 的設(shè)計者想要以 C 編程語言為基礎(chǔ)設(shè)計一種語言,可以使工程師比較容易學(xué)習(xí)。
verilog語言基本語句有哪些
1、賦值語句:
(1)非阻塞賦值方式, 如 b《=a ;
特點:塊結(jié)束后才完成操作,b的值不是立刻改變的。
(2)阻塞賦值方式, 如 b = a ;
特點:賦值語句執(zhí)行完后,塊才結(jié)束,b的值是立刻改變的。
2、塊語句
(1)順序塊
顧明思議,就是順序執(zhí)行,這與C語言的順序結(jié)構(gòu)特性一樣。
格式如下:
語句1到n是順序執(zhí)行的,也可給塊命名,只需在begin后面加上“:塊名”即可。當(dāng)加給塊命名后,才可以在塊內(nèi)定義局部變量,和塊被其他語句調(diào)用,如disable語句。
(2)并行塊
同樣,從表面意思可知道,塊內(nèi)語句是并行進行的,也就是同時進行的。
當(dāng)執(zhí)行完所有語句或一個disable語句執(zhí)行時,程序跳出并行塊。
并行塊的結(jié)構(gòu)和順序塊的結(jié)構(gòu)一樣,只需將關(guān)鍵字換成fork…join
注意:begin 、 end 、 fork 、 join 后面都沒有封號“;”。
3、條件語句
(1) if 語句
這里 if 語句與C語言沒有什么不同,只需注意,在C語言里,用大括號的地方,在Verilog里都用begin…end 。
(2)case 語句
這個與C語言不同了,在Verilog里,沒有switch,只有case ,示例如下:
這里也不需要break , 每當(dāng)執(zhí)行完一個case 分項后的語句,則跳出該case語句,終止case語句的執(zhí)行。
另外,Verilog還提供了casex和casez兩個語句,他們?nèi)咧g有一定的區(qū)別。
在用case 語句時,要求case括號中的值必須與分項中的值完全相等才執(zhí)行,即滿足“===”全等于的關(guān)系。
在用casex語句時,將高阻值z和不定值x 都視為不關(guān)心的值,即不比較其所在位的值,只需其他位滿足全等于的關(guān)系即可。
在用casez語句時,不考慮高阻值的z比較過程,只考慮x 、0、1三個值。
注意:if語句和case語句都只能用于always語句內(nèi)部,如果要在always語句之外應(yīng)用條件語句,可用三目運算符 ? :如下:
assign data = ( sel ) ? a : b ;
4、循環(huán)語句
(1)for 語句 和 while 語句,這與C語言語法一樣。不解釋
(2)forever語句
forever循環(huán)常用于產(chǎn)生周期性的波形,用來作為仿真測試信號。它與always語句不同之處在于它不能獨立寫在程序中,而必須寫在initial塊中。
(3)repeat語句
verilog語言詞匯大全
Verilog的主要應(yīng)用
1、ASIC和FPGA工程師編寫可綜合的RTL代碼
2、 高抽象級系統(tǒng)仿真進行系統(tǒng)結(jié)構(gòu)開發(fā)
3、測試工程師用于編寫各種層次的測試程序
4、用于ASIC和FPGA單元或更高層次的模塊的模型開發(fā)
如何學(xué)習(xí)verilog語言
如果搞FPGA開發(fā)verilog必然要精通。如果沒有數(shù)字電路基礎(chǔ)的話建議首先學(xué)一些基本的數(shù)字電路知識。
然后看書,《Verilog HDL數(shù)字設(shè)計與綜合》,一定注意只要看能夠綜合的代碼,那些不能綜合的東西可以一帶而過。
實踐!實踐!實踐!光看書絕對學(xué)不會。如果你有開發(fā)板當(dāng)然好,如果沒有至少也要寫程序仿真。當(dāng)時我學(xué)的時候買了個幾千塊的開發(fā)板。這個東西不練絕對學(xué)不會。
總之,先看書,把基本的數(shù)電搞懂。然后最好學(xué)一點練一點。一個很有用的方法,就是對著書或者自己想一些代碼,然后看看編出的電路是什么樣子的。
FPGA和C語言等軟件語言相比,非常難以調(diào)試。一定要保證學(xué)的扎實些。
verilog是硬件描述語言,歸根結(jié)底你設(shè)計的是電路,而不是軟件,不能那C語言等軟件語言硬套。
學(xué)習(xí)verilog語言的注意事項
1、不使用初始化語句;
2、不使用延時語句;
3、不使用循環(huán)次數(shù)不確定的語句,如:forever,while等;
4、盡量采用同步方式設(shè)計電路;
5、盡量采用行為語句完成設(shè)計;
6、always過程塊描述組合邏輯,應(yīng)在敏感信號表中列出所有的輸入信號;
7、所有的內(nèi)部寄存器都應(yīng)該可以被復(fù)位;
8、用戶自定義原件(UDP元件)是不能被綜合的。
-
Verilog
+關(guān)注
關(guān)注
29文章
1366瀏覽量
112137 -
Verilog語言
+關(guān)注
關(guān)注
0文章
113瀏覽量
8536
發(fā)布評論請先 登錄
評論