|
本(běn)节(jié)的(de)文(wén)檔編号(hào):001100000061
需要(yào)看(kàn)对(duì)應(yìng)的(de)視頻,請點(diǎn)擊視頻編号(hào):001100000058
1、本(běn)节(jié)主(zhǔ)要(yào)進(jìn)行組合邏輯的(de)介紹,包(bāo)括:程序語(yǔ)句(jù)(assign語(yǔ)句(jù)、always語(yǔ)句(jù)),數字(zì)進(jìn)制(二(èr)進(jìn)制、不(bù)定(dìng)态、高(gāo)阻态),算數運算符(加、減、乘、除運算符),邏輯運算符(邏輯與(yǔ)、或(huò)、非(fēi)運算符),按位邏輯運算符(單目按位與(yǔ)、或(huò)、非(fēi)運算符,双(shuāng)目按位與(yǔ)、或(huò)、异(yì)或(huò)運算符),關(guān)系(xì)運算符,移位運算符(左(zuǒ)移、右(yòu)移運算符),条(tiáo)件(jiàn)運算符(三(sān)目運算符、if語(yǔ)句(jù)、case語(yǔ)句(jù)、選擇語(yǔ)句(jù)等),拼接運算符;
5.3 算術(shù)運算符
算術(shù)運算符包(bāo)括加法“+”、減法“-”、乘法“*”、除法“/”和(hé)求餘“%”, 其中(zhōng)常用(yòng)的(de)算術(shù)運算符主(zhǔ)要(yào)有(yǒu):加法“+”,減法“-”和(hé)乘法“*”。 注意(yì),常用(yòng)的(de)運算中(zhōng)不(bù)包(bāo)括除法和(hé)求餘運算符,这(zhè)是(shì)由(yóu)于(yú)除法和(hé)求餘不(bù)是(shì)簡單的(de)門(mén)邏輯搭建起来(lái)的(de), 其所(suǒ)对(duì)應(yìng)的(de)硬(yìng)件(jiàn)電(diàn)路(lù)比較大。 加減是(shì)最(zuì)簡單的(de)運算,而(ér)乘法可(kě)以(yǐ)拆解(jiě)成(chéng)多(duō)个(gè)加法運算,因(yīn)此(cǐ)加減法、乘法所(suǒ)对(duì)應(yìng)的(de)電(diàn)路(lù)都比較小。 而(ér)除法就(jiù)不(bù)同(tóng)了(le),同(tóng)学们(men)可(kě)以(yǐ)回(huí)想(xiǎng)一(yī)下(xià)除法的(de)步驟,其涉及(jí)到(dào)多(duō)次(cì)乘法、移位、加減法, 所(suǒ)以(yǐ)除法对(duì)應(yìng)的(de)電(diàn)路(lù)是(shì)複雜的(de), 这(zhè)也(yě)同(tóng)时(shí)要(yào)求設計(jì)师(shī)在(zài)進(jìn)行Verilog設計(jì)时(shí)要(yào)慎用(yòng)除法。
5.3.1加法運算符
首先(xiān)学習加法運算符,在(zài)Verilog代(dài)碼中(zhōng)可(kě)以(yǐ)直(zhí)接使用(yòng)符号(hào)“+”:
其電(diàn)路(lù)示意(yì)图(tú)如(rú)下(xià)所(suǒ)示:
綜合器可(kě)以(yǐ)識别加法運算符并将其轉(zhuǎn)成(chéng)如(rú)上(shàng)图(tú)所(suǒ)示的(de)電(diàn)路(lù)。二(èr)進(jìn)制的(de)加法運算和(hé)十(shí)進(jìn)制的(de)加法相似, 十(shí)進(jìn)制是(shì)逢十(shí)進(jìn)一(yī),而(ér)二(èr)進(jìn)制是(shì)逢二(èr)進(jìn)一(yī)。
二(èr)進(jìn)制加法的(de)基本(běn)運算如(rú)下(xià):
0 + 0 = 0;
0 + 1 = 1;
1 + 0 = 1;
1 + 1 = 10;
两(liǎng)位的(de)二(èr)進(jìn)制加法
11 + 1 = 100;
11 + 11 = 110;
…
5.3.2減法運算符 減法運算符,在(zài)Verilog代(dài)碼中(zhōng)可(kě)以(yǐ)直(zhí)接使用(yòng)符号(hào)“-”:
其電(diàn)路(lù)示意(yì)图(tú)如(rú)下(xià)所(suǒ)示:
綜合器可(kě)以(yǐ)識别減法運算符并将其直(zhí)接轉(zhuǎn)成(chéng)上(shàng)图(tú)所(suǒ)示的(de)電(diàn)路(lù)。
二(èr)進(jìn)制的(de)減法運算和(hé)十(shí)進(jìn)制的(de)減法運算是(shì)相似的(de),也(yě)有(yǒu)借(jiè)位的(de)概念。十(shí)進(jìn)制是(shì)借(jiè)一(yī)當十(shí),二(èr)進(jìn)制則是(shì)借(jiè)一(yī)當二(èr)。
1位減法基本(běn)運算如(rú)下(xià):
0 - 0 = 0;
0 - 1 = 1,同(tóng)时(shí)需要(yào)借(jiè)位;
1 - 0 = 1;
1 - 1 = 0 ;
5.3.3乘法運算符 乘法運算符,在(zài)Verilog代(dài)碼中(zhōng)可(kě)以(yǐ)直(zhí)接使用(yòng)符号(hào)“*”:
其電(diàn)路(lù)示意(yì)图(tú)如(rú)下(xià)所(suǒ)示:
綜合器可(kě)以(yǐ)識别乘法運算符,将其直(zhí)接轉(zhuǎn)成(chéng)上(shàng)图(tú)所(suǒ)示的(de)電(diàn)路(lù)。二(èr)進(jìn)制的(de)乘法運算和(hé)十(shí)進(jìn)制的(de)乘法運算是(shì)相似的(de), 其計(jì)算过(guò)程是(shì)相同(tóng)的(de)。
1位乘法基本(běn)運算如(rú)下(xià):
0 * 0 = 0;
0 * 1 = 0;
1 * 0 = 0;
1 * 1 = 1;
多(duō)位數之間(jiān)相乘,與(yǔ)十(shí)進(jìn)制計(jì)算过(guò)程也(yě)是(shì)相同(tóng)的(de)。
例如(rú)2’b11* 3’b101的(de)計(jì)算过(guò)程如(rú)下(xià):
除法運算符,可(kě)以(yǐ)在(zài)Verilog代(dài)碼中(zhōng)直(zhí)接使用(yòng)符号(hào)“/”,而(ér)求餘運算符是(shì)“%”:
除法的(de)電(diàn)路(lù)示意(yì)图(tú)如(rú)下(xià)所(suǒ)示:
求餘的(de)電(diàn)路(lù)示意(yì)图(tú)如(rú)下(xià)所(suǒ)示:
綜合器可(kě)以(yǐ)識别除法運算符和(hé)求餘運算符,但是(shì)这(zhè)两(liǎng)種(zhǒng)運算符包(bāo)括大量(liàng)的(de)乘法、加法和(hé)減法操作, 所(suǒ)以(yǐ)在(zài)FPGA里(lǐ)除法器的(de)電(diàn)路(lù)是(shì)非(fēi)常大的(de), 綜合器可(kě)能(néng)无法直(zhí)接轉(zhuǎn)成(chéng)上(shàng)图(tú)所(suǒ)示的(de)電(diàn)路(lù)。 有(yǒu)读(dú)者(zhě)可(kě)能(néng)会(huì)有(yǒu)疑問(wèn):为(wèi)什麼(me)除法和(hé)求餘会(huì)占用(yòng)大量(liàng)的(de)資源呢? 可(kě)以(yǐ)来(lái)分(fēn)析一(yī)下(xià)十(shí)進(jìn)制除法和(hé)求餘的(de)过(guò)程,以(yǐ)122除以(yǐ)11为(wèi)例。
在(zài)做上(shàng)面(miàn)運算的(de)过(guò)程中(zhōng)涉及(jí)到(dào)多(duō)次(cì)的(de)移位、乘法、減法等運算。 也(yě)就(jiù)是(shì)说(shuō)進(jìn)行一(yī)次(cì)除法運算使用(yòng)到(dào)了(le)多(duō)个(gè)乘法器、減法器,需要(yào)比較大的(de)硬(yìng)件(jiàn)資源, 二(èr)進(jìn)制運算也(yě)是(shì)同(tóng)樣(yàng)的(de)道(dào)理。 所(suǒ)以(yǐ),在(zài)設計(jì)代(dài)碼中(zhōng),一(yī)般不(bù)使用(yòng)除法和(hé)求餘。在(zài)算法中(zhōng)会(huì)想(xiǎng)各(gè)種(zhǒng)辦(bàn)法来(lái)避免除法和(hé)求餘操作。 因(yīn)此(cǐ)在(zài)數字(zì)信(xìn)号(hào)处理、通(tòng)信(xìn)、图(tú)像处理中(zhōng)会(huì)發(fà)現(xiàn)有(yǒu)大量(liàng)的(de)乘法、加減法等,卻很少(shǎo)看(kàn)到(dào)除法和(hé)求餘運算。 但在(zài)仿真(zhēn)测試中(zhōng)是(shì)可(kě)以(yǐ)使用(yòng)除法和(hé)求餘的(de), 因(yīn)为(wèi)其只(zhī)是(shì)用(yòng)于(yú)仿真(zhēn)测試而(ér)不(bù)用(yòng)綜合成(chéng)電(diàn)路(lù),自(zì)然也(yě)就(jiù)不(bù)需要(yào)關(guān)心(xīn)占用(yòng)多(duō)少(shǎo)資源了(le)。
相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=12 |








