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