Verilog HDL基礎知識6之語法結構
雖然 Verilog 硬件描述語言有很完整的語法結構和系統,這些語法結構的應用給設計描述帶來很多方便。但是 Verilog是描述硬件電路的,它是建立在硬件電路的基礎上的。有些語法結構是不能與實際硬件電路對應起來的,比如 for 循環,它是不能映射成實際的硬件電路的,因此,Verilog 硬件描述語言分為可綜合和不可綜合語言。下面我們就來簡單的介紹一下可綜合與不可綜合。
本文引用地址:http://www.ex-cimer.com/article/202402/455549.htm(1) 所謂可綜合,就是我們編寫的Verilog代碼能夠被綜合器轉化為相應的電路結構。因此,我們常用可綜合語句來描述數字硬件電路。
(2) 所謂不可綜合,就是我們編寫的 Verilog 代碼無法綜合生成實際的電路。因此,不可綜合語句一般我們在描述數字硬件電路時是用不到的,不過,我們可以用它來仿真、驗證我們描述的數字硬件電路
Verilog的關鍵字
由于我們是將 Verilog 用于描述數字硬件電路,所以我們只需要掌握可以被綜合器綜合的那部分關鍵字就可以了。下面我們列出了常用的可綜合關鍵字,如下。
首先我們介紹的是 module 和 endmodule,它們是成對使用的,模塊是 Verilog 設計中基本功能塊,一個最簡單的模塊是由模塊命名、端口列表兩個部分組成。整個模塊是由 module 開頭,endmodule 結尾,module 后面緊跟著的是模塊名,每個模塊都有它自己的名字。
input、output和 inout 用于端口定義,wire 和 reg 是用來聲明數據類型,parameter 是用來聲明參數類型,always 是過程賦值語句,assing 是連續賦值語句。
if 和 else 成對使用,是條件判斷語句,和 C語言中的 if 和 else 是一樣的功能,begin 和 end 也是成對使用,相當于 C 語言中的大括號。
case、endcase 和 default 成對使用,是一個多分支條件語句,和 C 語言中的 switch 一樣的功能。
posedege、negedge 和 or 這三個關鍵字是和 always 關鍵字聯合使用的,posedge 是上升沿觸發,negedge 是下降沿觸發,posedge or negedge 是既有上升沿又有下降沿。在Verilog中,注意關鍵字使用小寫。
Verilog的基本程序框架
Verilog 是一種用于數字邏輯電路設計的語言,我們以數字電路中最簡單的與門為例,來作為入門學習的第一個程序。與門的 Verilog 代碼如下。
module yumen
(
a, b, c
);
input a;
input b;
output c;
assign c = a & b;
endmodule
下面我們就來簡單的介紹一下這個代碼,在這個代碼中,a 和 b 是與門的輸入,c 是與門的輸出,也就是說,該代碼實現了一個 2 輸入的與門電路。這里我們需要說明的是,大家不必過分去苛求細節的語法,只要著眼于基本程序框架就行。通過上面的程序我們給大家總結如下:
1.Verilog HDL 程序是由模塊構成的,每個模塊的內容都是嵌在 module 和 endmodule兩個語句之間。
2.每個模塊要進行端口定義,并說明輸入輸出口,然后對模塊的功能進行行為邏輯描述。
3.Verilog HDL 程序的書寫格式自由,一行可以寫幾個語句,一個語句也可以分寫多行。
4.除了 endmodule 語句外,每個語句和數據定義的最后必須有分號。
評論