新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Verilog HDL基礎(chǔ)知識6之語法結(jié)構(gòu)

Verilog HDL基礎(chǔ)知識6之語法結(jié)構(gòu)

作者: 時間:2024-02-21 來源:電子森林 收藏

雖然 Verilog 硬件描述語言有很完整的和系統(tǒng),這些的應(yīng)用給設(shè)計描述帶來很多方便。但是 Verilog是描述硬件電路的,它是建立在硬件電路的基礎(chǔ)上的。有些是不能與實際硬件電路對應(yīng)起來的,比如 for 循環(huán),它是不能映射成實際的硬件電路的,因此,Verilog 硬件描述語言分為可綜合和不可綜合語言。下面我們就來簡單的介紹一下可綜合與不可綜合。

本文引用地址:http://2s4d.com/article/202402/455549.htm

(1) 所謂可綜合,就是我們編寫的Verilog代碼能夠被綜合器轉(zhuǎn)化為相應(yīng)的電路結(jié)構(gòu)。因此,我們常用可綜合語句來描述數(shù)字硬件電路。

(2) 所謂不可綜合,就是我們編寫的 Verilog 代碼無法綜合生成實際的電路。因此,不可綜合語句一般我們在描述數(shù)字硬件電路時是用不到的,不過,我們可以用它來仿真、驗證我們描述的數(shù)字硬件電路

Verilog的關(guān)鍵字

由于我們是將 Verilog 用于描述數(shù)字硬件電路,所以我們只需要掌握可以被綜合器綜合的那部分關(guān)鍵字就可以了。下面我們列出了常用的可綜合關(guān)鍵字,如下。

首先我們介紹的是 module 和 endmodule,它們是成對使用的,模塊是 Verilog 設(shè)計中基本功能塊,一個最簡單的模塊是由模塊命名、端口列表兩個部分組成。整個模塊是由 module 開頭,endmodule 結(jié)尾,module 后面緊跟著的是模塊名,每個模塊都有它自己的名字。

input、output和 inout 用于端口定義,wire 和 reg 是用來聲明數(shù)據(jù)類型,parameter 是用來聲明參數(shù)類型,always 是過程賦值語句,assing 是連續(xù)賦值語句。

if 和 else 成對使用,是條件判斷語句,和 C語言中的 if 和 else 是一樣的功能,begin 和 end 也是成對使用,相當于 C 語言中的大括號。

case、endcase 和 default 成對使用,是一個多分支條件語句,和 C 語言中的 switch 一樣的功能。

posedege、negedge 和 or 這三個關(guān)鍵字是和 always 關(guān)鍵字聯(lián)合使用的,posedge 是上升沿觸發(fā),negedge 是下降沿觸發(fā),posedge or negedge 是既有上升沿又有下降沿。在Verilog中,注意關(guān)鍵字使用小寫。

Verilog的基本程序框架

Verilog 是一種用于數(shù)字邏輯電路設(shè)計的語言,我們以數(shù)字電路中最簡單的與門為例,來作為入門學習的第一個程序。與門的 Verilog 代碼如下。

  module yumen  
 (
     a, b, c  
  );   
     input  a;
 input  b;
 output c;   
 assign c = a & b;   
 endmodule

下面我們就來簡單的介紹一下這個代碼,在這個代碼中,a 和 b 是與門的輸入,c 是與門的輸出,也就是說,該代碼實現(xiàn)了一個 2 輸入的與門電路。這里我們需要說明的是,大家不必過分去苛求細節(jié)的語法,只要著眼于基本程序框架就行。通過上面的程序我們給大家總結(jié)如下:

1.Verilog HDL 程序是由模塊構(gòu)成的,每個模塊的內(nèi)容都是嵌在 module 和 endmodule兩個語句之間。

2.每個模塊要進行端口定義,并說明輸入輸出口,然后對模塊的功能進行行為邏輯描述。

3.Verilog HDL 程序的書寫格式自由,一行可以寫幾個語句,一個語句也可以分寫多行。

4.除了 endmodule 語句外,每個語句和數(shù)據(jù)定義的最后必須有分號。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉