在verilog中,所有的端口隱含地聲明wire類型;如果輸出類型的端口需要保存數值,則必須將其顯式地聲明為reg數據類型。
不能將input和inout類型的端口聲明為reg數據類型,因為reg類型的變量是用於保存數值的,而輸入端口只反映與其相連的外部信號的變化。
在verilog中,有兩種端口聲明風格:
3.端口連接規則
端口連接規則 將一個端口看成由相互鏈接的兩個部分組成,一部分位於模塊內部,另一部分位於模塊外部。當在一個模塊中調用(實例引用)另一個模塊時,端口之間的連接必須遵守一些規則。
1、輸入端口:從模塊內部來講,輸入端口必須為線網數據類型,從模塊外部來看,輸入端口可以連接到線網或者reg數據類型的變量。
2、 輸出端口:從模塊內部來講,輸出端口可以是線網或者reg數據類型,從模塊外部來看,輸出必須連接到線網類型的變量(顯式,隱式),而不能連接到reg類型的變量。
3、輸入/輸出端口(必須為wire) 從模塊內部來講,輸入/輸出端口必須為線網數據類型;從模塊外部來看,輸入/輸出端口也必須連接到線網類型的變量。