⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨


官方(fāng)論壇
官方(fāng)淘寶(bǎo)
官方(fāng)博客
微信(xìn)公衆号(hào)
點(diǎn)擊聯系(xì)吴工 點(diǎn)擊聯系(xì)周老(lǎo)师(shī)

算術(shù)運算符補碼由(yóu)来(lái)

發(fà)布(bù)时(shí)間(jiān):2023-04-13   作者(zhě):admin 浏覽量(liàng):


需要(yào)看(kàn)对(duì)應(yìng)的(de)視頻,請點(diǎn)擊視頻編号(hào):001100000060

1、在(zài)FPGA甚至(zhì)計(jì)算機(jī)系(xì)統中(zhōng),所(suǒ)有(yǒu)數據(jù)的(de)保存方(fāng)式都是(shì)補碼形式的(de),

2、本(běn)視頻主(zhǔ)要(yào)講解(jiě)正(zhèng)數和(hé)負數的(de)補碼計(jì)算以(yǐ)及(jí)在(zài)數據(jù)電(diàn)路(lù)中(zhōng)的(de)处理方(fāng)式。
3、这(zhè)是(shì)ALTERA和(hé)VIVADO視頻



補碼的(de)由(yóu)来(lái)


FPGA实現(xiàn)各(gè)種(zhǒng)算法的(de)时(shí)候,首要(yào)的(de)就(jiù)是(shì)保證運算結果(guǒ)的(de)正(zhèng)确性(xìng),否則一(yī)切(qiè)毫(háo)无意(yì)義。

在(zài)分(fēn)析加加法運算符和(hé)減法運算符的(de)时(shí)候可(kě)以(yǐ)發(fà)現(xiàn)保存結果(guǒ)的(de)信(xìn)号(hào)位宽(kuān)是(shì)否合理对(duì)正(zhèng)确性(xìng)與(yǔ)否有(yǒu)很大的(de)影響。

例如(rú)下(xià)面(miàn)的(de)加法運算:
表(biǎo)1.3- 5加法運算結果(guǒ)
  
運算

十(shí)進(jìn)制

結果(guǒ)
運算
十(shí)進(jìn)制

結果(guǒ)
1位加法運算,1位保存結果(guǒ),不(bù)保存進(jìn)位
1’b0  + 1’b0 = 1’b0
0
1’b1  + 1’b0 = 1’b1
1
1’b0  + 1’b1 = 1’b1
1
1’b1  + 1’b1 = 1’b0
0
1位加法運算,2位保存結果(guǒ),保存進(jìn)位
1’b0  + 1’b0 = 2’b0
0
1’b1  + 1’b0 = 2’b01
1
1’b0  + 1’b1 = 2’b1
1
1’b1  + 1’b1 = 2’b10
2
1位數 + 2位數,2位保存結果(guǒ),不(bù)保存進(jìn)位
1’b0  + 2’b00 = 2’b00
0
1’b1  + 2’b00 = 2’b01
1
1’b0  + 2’b01 = 2’b01
1
1’b1  + 2’b01 = 2’b10
2
1’b0  + 2’b10 = 2’b10
2
1’b1  + 2’b10 = 2’b11
3
1’b0  + 2’b11 = 2’b11
3
1’b1  + 2’b11 = 2’b00
0
1位數 + 2位數,3位保存結果(guǒ),保存進(jìn)位
1’b0  + 2’b00 = 3’b000
0
1’b1  + 2’b00 = 3’b001
1
1’b0  + 2’b01 = 3’b001
1
1’b1  + 2’b01 = 3’b010
2
1’b0  + 2’b10 = 3’b010
2
1’b1  + 2’b10 = 3’b011
3
1’b0  + 2’b11 = 3’b011
3
1’b1  + 2’b11 = 3’b100
4




從上(shàng)表(biǎo)可(kě)以(yǐ)發(fà)現(xiàn),如(rú)果(guǒ)不(bù)保留進(jìn)位,當加法出(chū)現(xiàn)進(jìn)位的(de)时(shí)候計(jì)算的(de)結果(guǒ)是(shì)不(bù)正(zhèng)确的(de),

只(zhī)有(yǒu)保留了(le)進(jìn)位計(jì)算的(de)結果(guǒ)才是(shì)正(zhèng)确的(de)。由(yóu)此(cǐ)可(kě)以(yǐ)得出(chū)一(yī)个(gè)結論:使用(yòng)加法的(de)时(shí)候,为(wèi)了(le)保證結果(guǒ)的(de)正(zhèng)确性(xìng),

必須保存進(jìn)位,也(yě)就(jiù)是(shì)結果(guǒ)要(yào)擴展(zhǎn)位宽(kuān)。

例如(rú)两(liǎng)个(gè)8位的(de)數相加,則結果(guǒ)要(yào)擴展(zhǎn)一(yī)位,将位宽(kuān)設定(dìng)为(wèi)9位。


1
  
2
  
3
  
4
  
5
wire[7:0]  a,b;
  
wire[7:0]  c  ;
  
wire[8:0]  d  ;
  
assign c = a  + b; //結果(guǒ)不(bù)正(zhèng)确
  
assign d = a  + b; //結果(guǒ)正(zhèng)确


接着再来(lái)分(fēn)析一(yī)下(xià)減法運算,如(rú)下(xià)表(biǎo)所(suǒ)示例子:


表(biǎo)1.3- 6減法運算結果(guǒ)


  
運算
  
十(shí)進(jìn)制
  
結果(guǒ)
運算
十(shí)進(jìn)制
  
結果(guǒ)
2位減法運算,2位保存結果(guǒ)
2’b00  - 2’b00 = 2’b00
0
2’b10  - 2’b00 = 2’b10
2
2’b00  - 2’b01 = 2’b11
3
2’b10  - 2’b01 = 2’b01
1
2’b00  - 2’b10 = 2’b10
2
2’b10  - 2’b10 = 2’b00
0
2’b00  - 2’b11 = 2’b01
1
2’b10  - 2’b11 = 2’b11
3
2’b01  - 2’b00 = 2’b01
1
2’b11  - 2’b00 = 2’b11
3
2’b01  - 2’b01 = 2’b00
0
2’b11  - 2’b01 = 2’b10
2
2’b01  - 2’b10 = 2’b11
3
2’b11  - 2’b10 = 2’b01
1
2’b01  - 2’b11 = 2’b10
2
2’b11  - 2’b11 = 2’b00
0


注意(yì)表(biǎo)中(zhōng)和(hé)2’b00-2’b01,結果(guǒ)是(shì)2’b11,对(duì)應(yìng)的(de)十(shí)進(jìn)制值为(wèi)3,但期(qī)望的(de)結果(guǒ)是(shì)“-1”。

同(tóng)樣(yàng)的(de)道(dào)理,2’b01 - 2’b11,結果(guǒ)是(shì)2’b10,对(duì)應(yìng)的(de)十(shí)進(jìn)制值为(wèi)2,而(ér)期(qī)望的(de)結果(guǒ)是(shì)“-2”,

所(suǒ)以(yǐ)上(shàng)面(miàn)的(de)結果(guǒ)是(shì)不(bù)正(zhèng)确的(de)。

當期(qī)望結果(guǒ)中(zhōng)有(yǒu)正(zhèng)負之分(fēn)时(shí),可(kě)以(yǐ)通(tòng)过(guò)增加一(yī)个(gè)符号(hào)位来(lái)區(qū)别結果(guǒ)的(de)正(zhèng)負。業內(nèi)約定(dìng)的(de)表(biǎo)示方(fāng)法为(wèi),

最(zuì)高(gāo)位为(wèi)0时(shí)表(biǎo)示正(zhèng)數,最(zuì)高(gāo)位值为(wèi)1表(biǎo)示負數。符号(hào)位之後(hòu)的(de)數值用(yòng)低2位表(biǎo)示,結果(guǒ)如(rú)下(xià)表(biǎo):



表(biǎo)1.3- 7增加符号(hào)位的(de)減法運算結果(guǒ)


  
運算
  
十(shí)進(jìn)制
  
結果(guǒ)
運算
十(shí)進(jìn)制
  
結果(guǒ)
2位減法運算,3位保存結果(guǒ),其中(zhōng)最(zuì)高(gāo)位是(shì)符号(hào)位
2’b00  - 2’b00 = 3’b000
+0
2’b10  - 2’b00 = 3’b010
+2
2’b00  - 2’b01 = 3’b111
-3
2’b10  - 2’b01 = 3’b001
+1
2’b00  - 2’b10 = 3’b110
-2
2’b10  - 2’b10 = 3’b000
+0
2’b00  - 2’b11 = 3’b101
-1
2’b10  - 2’b11 = 3’b111
-3
2’b01  - 2’b00 = 3’b001
+1
2’b11  - 2’b00 = 3’b011
+3
2’b01  - 2’b01 = 3’b000
+0
2’b11  - 2’b01 = 3’b010
+2
2’b01  - 2’b10 = 3’b111
-3
2’b11  - 2’b10 = 3’b001
+1
2’b01  - 2’b11 = 3’b110
-2
2’b11  - 2’b11 = 3’b000
+0


從上(shàng)表(biǎo)中(zhōng)可(kě)以(yǐ)看(kàn)出(chū)增加符号(hào)位後(hòu)還(huán)是(shì)会(huì)存在(zài)部(bù)分(fēn)運算結果(guǒ)與(yǔ)預期(qī)不(bù)符合的(de)問(wèn)題(tí)。

例如(rú)表(biǎo)中(zhōng)的(de)2’b00-2’b01,結果(guǒ)是(shì)3’b111,对(duì)應(yìng)的(de)十(shí)進(jìn)制值为(wèi)-3,但期(qī)望的(de)結果(guǒ)是(shì)“-1”。

所(suǒ)以(yǐ)上(shàng)面(miàn)的(de)結果(guǒ)仍然是(shì)不(bù)正(zhèng)确的(de)。


現(xiàn)在(zài),重(zhòng)新对(duì)二(èr)進(jìn)制數“000~111”進(jìn)行如(rú)下(xià)轉(zhuǎn)換:
a.       正(zhèng)數:保持(chí)不(bù)變(biàn)
b.      負數:符号(hào)位保持(chí)不(bù)變(biàn),數值取(qǔ)反(fǎn)加1。

也(yě)就(jiù)是(shì)说(shuō),如(rú)果(guǒ)是(shì)正(zhèng)數“+1”,之前(qián)是(shì)用(yòng)“001”表(biǎo)示,現(xiàn)在(zài)仍然是(shì)用(yòng)“001”表(biǎo)示。

如(rú)果(guǒ)是(shì)負數“-1”,之前(qián)是(shì)用(yòng)“101”表(biǎo)示,現(xiàn)在(zài)則是(shì)用(yòng)“111”表(biǎo)示。負數“-3”,

之前(qián)是(shì)用(yòng)“111”表(biǎo)示,現(xiàn)在(zài)則是(shì)用(yòng)“101”表(biǎo)示。这(zhè)種(zhǒng)表(biǎo)示方(fāng)式就(jiù)是(shì)補碼表(biǎo)示方(fāng)式。

改为(wèi)用(yòng)補碼来(lái)表(biǎo)示後(hòu),再来(lái)分(fēn)析下(xià)結果(guǒ):


表(biǎo)1.3- 8補碼表(biǎo)示減法運算結果(guǒ)


  
運算
  
補碼
  
結果(guǒ)
運算
補碼
  
結果(guǒ)
2位減法運算,3位保存結果(guǒ),其中(zhōng)最(zuì)高(gāo)位是(shì)符号(hào)位
2’b00  - 2’b00 = 3’b000
+0
2’b10  - 2’b00 = 3’b010
+2
2’b00  - 2’b01 = 3’b111
-1
2’b10  - 2’b01 = 3’b001
+1
2’b00  - 2’b10 = 3’b110
-2
2’b10  - 2’b10 = 3’b000
+0
2’b00  - 2’b11 = 3’b101
-3
2’b10  - 2’b11 = 3’b111
-1
2’b01  - 2’b00 = 3’b001
+1
2’b11  - 2’b00 = 3’b011
+3
2’b01  - 2’b01 = 3’b000
+0
2’b11  - 2’b01 = 3’b010
+2
2’b01  - 2’b10 = 3’b111
-1
2’b11  - 2’b10 = 3’b001
+1
2’b01  - 2’b11 = 3’b110
-2
2’b11  - 2’b11 = 3’b000
+0


可(kě)以(yǐ)看(kàn)到(dào)上(shàng)表(biǎo)的(de)結果(guǒ)全(quán)部(bù)都是(shì)正(zhèng)确的(de),與(yǔ)預期(qī)全(quán)部(bù)一(yī)致(zhì)。这(zhè)一(yī)过(guò)程虽然完全(quán)沒(méi)有(yǒu)对(duì)代(dài)碼進(jìn)行任何改變(biàn),

但通(tòng)过(guò)更(gèng)改數據(jù)的(de)定(dìng)義就(jiù)实現(xiàn)了(le)正(zhèng)确的(de)結果(guǒ)。


在(zài)之前(qián)的(de)讨論中(zhōng),加數、被(bèi)加數、減數和(hé)被(bèi)減數的(de)運算过(guò)程都沒(méi)有(yǒu)使用(yòng)有(yǒu)符号(hào)數。

現(xiàn)在(zài)使用(yòng)有(yǒu)符号(hào)數的(de)補碼重(zhòng)新对(duì)其進(jìn)行表(biǎo)示。

假設加數、被(bèi)加數、減數和(hé)被(bèi)減數都是(shì)2位(範圍为(wèi)-2~1),考慮到(dào)進(jìn)位和(hé)借(jiè)位原因(yīn),

結果(guǒ)用(yòng)3位来(lái)表(biǎo)示(範圍为(wèi)-4~3)。因(yīn)为(wèi)結果(guǒ)位宽(kuān)變(biàn)为(wèi)3位,所(suǒ)以(yǐ)減數和(hé)被(bèi)減數都擴展(zhǎn)成(chéng)用(yòng)3位表(biǎo)示,

列出(chū)下(xià)表(biǎo):


表(biǎo)1.3- 9補碼表(biǎo)示運算結果(guǒ)


  
十(shí)進(jìn)制運算
  
二(èr)進(jìn)制補碼表(biǎo)示
補碼
  
結果(guǒ)
0-0
3’b000  - 3’b000 = 3’b000
+0
0-1
3’b000  - 3’b001 = 3’b111
-1
0--2
3’b000  - 3’b110 = 3’b010
+2
0--1
3’b000-  3’b111 = 3’b001
+1
1-0
3’b001  - 3’b000 = 3’b001
+1
1-1
3’b001  - 3’b001 = 3’b000
+0
1--2
3’b001  - 3’b110 = 3’b011
+3
1--1
3’b001  - 3’b111 = 3’b010
+2
-2-0
3’b110  - 3’b000 = 3’b110
-2
-2-1
3’b110  - 3’b001 = 3’b101
-3
-2--2
3’b110  - 3’b110 = 3’b000
+0
-2--1
3’b110  - 3’b111 = 3’b111
-1
-1-0
3’b111  - 3’b000 = 3’b111
-1
-1-1
3’b111  - 3’b001 = 3’b110
-2
-1--2
3’b111  - 3’b110 = 3’b001
+1
-1--1
3’b111  - 3’b111 = 3’b000
+0
0+0
3’b000  + 3’b000 = 3’b000
+0
0+1
3’b000  + 3’b001 = 3’b001
+1
0+-2
3’b000  + 3’b110 = 3’b110
-2
0+-1
3’b000  + 3’b111 = 3’b111
-1
1+0
3’b001 + 3’b000 = 3’b001
+1
1+1
3’b001  + 3’b001 = 3’b010
+2
1+-2
3’b001  + 3’b110 = 3’b111
-1
1+-1
3’b001  + 3’b111 = 3’b000
+0
-2+0
3’b110  + 3’b000 = 3’b110
-2
-2+1
3’b110  + 3’b001 = 3’b111
-1
-2+-2
3’b110  + 3’b110 = 3’b100
-4
-2+-1
3’b110  + 3’b111 = 3’b101
-3
-1+0
3’b111  + 3’b000 = 3’b111
-1
-1+1
3’b111  + 3’b001 = 3’b000
+0
-1+-2
3’b111  + 3’b110 = 3’b101
-3
-1+-1
3’b111  + 3’b111 = 3’b110
-2


總(zǒng)結運算步驟如(rú)下(xià):
1. 根(gēn)據(jù)“人(rén)的(de)常識”,預計(jì)結果(guǒ)的(de)最(zuì)大最(zuì)小值,從而(ér)确定(dìng)結果(guǒ)的(de)信(xìn)号(hào)位宽(kuān)。
2. 将加數、減數等數據(jù),位宽(kuān)擴展(zhǎn)成(chéng)結果(guǒ)位宽(kuān)一(yī)致(zhì)。
3. 按二(èr)進(jìn)制加減法進(jìn)行計(jì)算。


通(tòng)过(guò)以(yǐ)上(shàng)方(fāng)式,得到(dào)的(de)就(jiù)是(shì)補碼的(de)結果(guǒ)。事(shì)实上(shàng),在(zài)FPGA甚至(zhì)計(jì)算機(jī)系(xì)統中(zhōng),

所(suǒ)有(yǒu)數據(jù)的(de)保存的(de)方(fāng)式都是(shì)補碼的(de)形式。如(rú)果(guǒ)读(dú)者(zhě)想(xiǎng)要(yào)了(le)解(jiě)更(gèng)多(duō)關(guān)于(yú)補碼的(de)內(nèi)容可(kě)以(yǐ)參閱相關(guān)資料。

相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=14


相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=14



下(xià)一(yī)篇(piān):邏輯運算符
   拓展(zhǎn)閱读(dú)
⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨