舉例:與非門
與非門的Verilog 描述如下圖所示,源程序文件的后綴為.v。
Verilog語言的基本描述單元是模塊,也就是module??梢钥吹矫恳粋€功能模塊都是以module開始,endmodule結(jié)束的。一個.v文件可以同時包含多個這樣的模塊。但是,我們建議大家一個.v文件只包含一個模塊,這樣便于程序的管理、調(diào)試以及復(fù)用。
在模塊聲明中還包含這個模塊的名稱,以及端口列表,模塊就是通過這些端口與其他功能模塊進行通信的。我們可以將模塊看作一個具有特定功能的電路或集成芯片,端口就相當(dāng)于這個電路的引腳。
這個與非門模塊包含了abc三個端口,那么這些端口哪些是輸入,哪些是輸出呢,我們需要對其進行聲明。并且還要聲明這些端口的類型,最常用的就是wire和reg兩種類型,其中wire是默認類型,可以省略。后續(xù)我們會詳細講解,這里不多做介紹。接下來就是模塊的主體部分“邏輯功能描述”,這里使用的是組合邏輯常用assign連續(xù)賦值語句。
舉例:D觸發(fā)器
再來看一個簡單的上升沿d觸發(fā)器的例子,如下圖所示。
D觸發(fā)器是時序電路的基本組成單元??梢钥吹侥K聲明和剛才的格式略有不同(兩種格式均可),但整個模塊仍然是以module開始,endmodule結(jié)束的。module后面是模塊名,這里模塊名后面的括號中將端口聲明和端口類型聲明放在了一起,這是vivado自動生成的格式。
這里的clk和d_i是輸入信號,沒有指明類型,則默認為wire型。q_o是一個reg類型的輸出端口。接下來就是邏輯功能描述,這里采用了時序邏輯主要使用的always語句。
兩種端口聲明格式
下面是與非門模塊的兩種描述格式。
總結(jié)
- 一個Verilog HDL模塊是以module開始,endmodule結(jié)束的。
- module后面是模塊名,是所設(shè)計電路的標(biāo)識符。
- 模塊名后面的括號中是模塊的端口名,使用逗號隔開,最后一個端口后面沒有標(biāo)點符號。
- 端口及其類型聲明:端口還需要定義是輸入還是輸出,以及端口信號的類型是wire型還是reg型,這些都可以放在端口名后面的括號中一起聲明。此外,在模塊中所使用的一些內(nèi)部信號和數(shù)據(jù)對象也要進行數(shù)據(jù)類型聲明。
一般使用assign賦值的信號聲明為wire型,在always或initial語句中賦值的信號聲明為reg型。還可以使用參數(shù)來定義常量,增加程序的可讀性。Verilog的數(shù)據(jù)類型有很多,但80%的情況只用到這三種。
- 模塊的主體用于描述模塊的邏輯功能。常用的有:① assign連續(xù)賦值語句,多用于描述組合電路。② always語句可以描述時序邏輯也可以描述組合邏輯。③ 還可以通過實例化已有的模塊的方式來建立新的模塊,像搭積木一樣快速搭建一個系統(tǒng)。
-
D觸發(fā)器
+關(guān)注
關(guān)注
3文章
164瀏覽量
48175 -
時序邏輯電路
+關(guān)注
關(guān)注
2文章
94瀏覽量
16634 -
Module
+關(guān)注
關(guān)注
0文章
70瀏覽量
12994 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17295 -
Verilog語言
+關(guān)注
關(guān)注
0文章
113瀏覽量
8341
發(fā)布評論請先 登錄
相關(guān)推薦
Verilog HDL語言是什么
Verilog-HDL實踐與應(yīng)用系統(tǒng)設(shè)計

Verilog HDL程序基本結(jié)構(gòu)與程序入門
Verilog HDL語言實現(xiàn)時序邏輯電路
Verilog HDL電路設(shè)計指導(dǎo)書—華為

Verilog HDL入門教程
Verilog HDL入門教程之Verilog HDL數(shù)字系統(tǒng)設(shè)計教程

Verilog HDL入門教程

評論