在(zài)Verilog中(zhōng),wire永遠(yuǎn)是(shì)wire,就(jiù)是(shì)相當于(yú)一(yī)条(tiáo)連(lián)線(xiàn),用(yòng)来(lái)連(lián)接電(diàn)路(lù),不(bù)能(néng)存儲數據(jù),无驅動(dòng)能(néng)力,是(shì)組合邏輯;并且只(zhī)能(néng)在(zài)assign左(zuǒ)側賦值,不(bù)能(néng)在(zài)always @ 中(zhōng)賦值。
reg可(kě)以(yǐ)綜合成(chéng)register,latch,甚至(zhì)是(shì)wire(當其只(zhī)是(shì)中(zhōng)間(jiān)變(biàn)量(liàng)的(de)时(shí)候),能(néng)存儲數據(jù),有(yǒu)驅動(dòng)能(néng)力,可(kě)以(yǐ)用(yòng)于(yú)組合邏輯或(huò)者(zhě)时(shí)序邏輯;在(zài)always @模块(kuài)表(biǎo)达(dá)式左(zuǒ)側被(bèi)賦值。
掌握了(le)基本(běn)原理,并不(bù)代(dài)表(biǎo)我(wǒ)们(men)可(kě)以(yǐ)快(kuài)速的(de)判斷信(xìn)号(hào)類(lèi)型。我(wǒ)们(men)在(zài)实際設計(jì)中(zhōng),并不(bù)需要(yào)考慮这(zhè)麼(me)多(duō),对(duì)于(yú)信(xìn)号(hào)類(lèi)型的(de)定(dìng)義,明(míng)德揚有(yǒu)一(yī)个(gè)小技巧,按照这(zhè)个(gè)技巧使用(yòng),就(jiù)不(bù)会(huì)出(chū)錯。即“用(yòng)always实現(xiàn)的(de)是(shì)reg型,其它(tā)都是(shì)wire型”。
我(wǒ)们(men)舉幾(jǐ)个(gè)例子来(lái)使用(yòng)一(yī)下(xià)此(cǐ)技巧。
案(àn)例一(yī):
下(xià)面(miàn)代(dài)碼可(kě)以(yǐ)看(kàn)出(chū)是(shì)由(yóu)always模块(kuài)引導的(de),因(yīn)此(cǐ)屬于(yú)reg類(lèi)型:
案(àn)例二(èr):
下(xià)面(miàn)代(dài)碼不(bù)是(shì)由(yóu)always模块(kuài)引導的(de),因(yīn)此(cǐ)屬于(yú)wire類(lèi)型:

案(àn)例三(sān):
下(xià)面(miàn)代(dài)碼是(shì)由(yóu)always模块(kuài)引導的(de),因(yīn)此(cǐ)屬于(yú)reg類(lèi)型:


案(àn)例五(wǔ):
在(zài)测試文(wén)件(jiàn)中(zhōng),凡是(shì)initial模块(kuài)引導的(de)信(xìn)号(hào)都是(shì)reg類(lèi)型,因(yīn)此(cǐ)下(xià)面(miàn)代(dài)碼屬于(yú)reg類(lèi)型:

1、功能(néng)文(wén)件(jiàn):由(yóu)本(běn)模块(kuài)産生(shēng),并且用(yòng)always産生(shēng)的(de)信(xìn)号(hào),就(jiù)定(dìng)義成(chéng)reg
2、测試文(wén)件(jiàn):由(yóu)初始化(huà)産生(shēng)(一(yī)般是(shì)对(duì)测模块(kuài)的(de)輸入(rù))的(de)信(xìn)号(hào),就(jiù)定(dìng)義成(chéng)reg
3、除了(le)以(yǐ)上(shàng)两(liǎng)種(zhǒng)情(qíng)況,就(jiù)定(dìng)義成(chéng)wire型















