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