端口
端口是模塊與外界交互的接口,對外部環(huán)境而言,模塊內(nèi)部是不可見的,對模塊的調(diào)用只能通過端口連接進(jìn)行
端口基本語法約定如下:
端口必須被聲明
端口聲明不可重復(fù)
端口聲明既可在端口列表內(nèi)也可在列表外
模塊間的數(shù)據(jù)只能通過端口進(jìn)行
端口聲明
根據(jù)端口的方向,端口類型有3種:輸入(input)、輸出(output)和雙向端口(inout)
- input 和 output 只能是
wire
型 - output 既可以是
wire
也可以是reg
- 需要保存數(shù)值時,用
reg
- 不需要保存數(shù)值時,用
wire
- 需要保存數(shù)值時,用
reg
類型是用于保存數(shù)值的,而輸入端只能反映與其相連的外部信號的變化,并不能保存這些信號的值
端口連接規(guī)則
對于inpu
和output
我是這樣理解的,內(nèi)部是reg
外部就應(yīng)該是wire
就比如input
這一端,外部是reg
,內(nèi)部是wire
,在這個一端,已經(jīng)有一個reg
類型可以用來保存數(shù)據(jù),不需要用到兩個reg
來保存數(shù)值
端口連接方式
端口連接的方式有兩種:按位置連接 和 按名稱連接
- 按位置連接
調(diào)用模塊的端口名必須與被調(diào)用模塊端口列表中的位置保持一致//調(diào)用模塊 module name(……); //端口定義 //端口描述 /*a, b, c, d分別對用調(diào)用模塊 中的in1, in2, sel, dout*/ mux u1(a, b, c, d); endmodule //調(diào)用模塊 module mux (in1, in2, sel, dout); //端口定義 //端口描述 //邏輯描述 endmodule
- 按名稱連接
格式為:模塊名 模塊實例化名 (.被調(diào)用模塊端口名(調(diào)用模塊端口名));
其中,模塊實例化名
是自己隨意定的一個名字,方便記憶就好//調(diào)用模塊 module name(……); //端口定義 //端口描述 //模塊調(diào)用,也叫實例化 //對應(yīng)方式和上一個相同 mux u1(.in1(a), .in2(b), .sel(c), .dout(d)); endmodule //被調(diào)用模塊 module mux(in1, in2, sel, dout); //端口定義 //端口描述 //邏輯描述 endmodule
-
Verilog設(shè)計
+關(guān)注
關(guān)注
0文章
20瀏覽量
6501 -
verilog接口
+關(guān)注
關(guān)注
0文章
2瀏覽量
4487
發(fā)布評論請先 登錄
相關(guān)推薦
評論