在verilog中,所有的端口隱含地聲明wire類(lèi)型;如果輸出類(lèi)型的端口需要保存數(shù)值,則必須將其顯式地聲明為reg數(shù)據(jù)類(lèi)型。
不能將input和inout類(lèi)型的端口聲明為reg數(shù)據(jù)類(lèi)型,因?yàn)閞eg類(lèi)型的變量是用于保存數(shù)值的,而輸入端口只反映與其相連的外部信號(hào)的變化。
在verilog中,有兩種端口聲明風(fēng)格:
image
3.端口連接規(guī)則
image
image
端口連接規(guī)則 將一個(gè)端口看成由相互鏈接的兩個(gè)部分組成,一部分位于模塊內(nèi)部,另一部分位于模塊外部。當(dāng)在一個(gè)模塊中調(diào)用(實(shí)例引用)另一個(gè)模塊時(shí),端口之間的連接必須遵守一些規(guī)則。
1、輸入端口:從模塊內(nèi)部來(lái)講,輸入端口必須為線網(wǎng)數(shù)據(jù)類(lèi)型,從模塊外部來(lái)看,輸入端口可以連接到線網(wǎng)或者reg數(shù)據(jù)類(lèi)型的變量。
2、 輸出端口:從模塊內(nèi)部來(lái)講,輸出端口可以是線網(wǎng)或者reg數(shù)據(jù)類(lèi)型,從模塊外部來(lái)看,輸出必須連接到線網(wǎng)類(lèi)型的變量(顯式,隱式),而不能連接到reg類(lèi)型的變量。
3、輸入/輸出端口(必須為wire) 從模塊內(nèi)部來(lái)講,輸入/輸出端口必須為線網(wǎng)數(shù)據(jù)類(lèi)型;從模塊外部來(lái)看,輸入/輸出端口也必須連接到線網(wǎng)類(lèi)型的變量。