|
需要(yào)看(kàn)对(duì)應(yìng)的(de)視頻,請點(diǎn)擊視頻編号(hào): 001100000055
1、本(běn)視頻主(zhǔ)要(yào)说(shuō)明(míng),在(zài)數字(zì)電(diàn)路(lù)中(zhōng),一(yī)切(qiè)都将用(yòng)二(èr)進(jìn)制来(lái)定(dìng)義,即0,1。主(zhǔ)要(yào)介紹了(le)如(rú)何用(yòng)二(èr)進(jìn)制表(biǎo)示高(gāo)低電(diàn)平、負數、小數、邏輯運算等 2、这(zhè)是(shì)ALTERA和(hé)VIVADO視頻 5.2.2 二(èr)進(jìn)制是(shì)基礎 在(zài)數字(zì)電(diàn)路(lù)中(zhōng)如(rú)果(guǒ)芯片(piàn)A給(gěi)芯片(piàn)B傳遞數據(jù),例如(rú)傳遞0或(huò)者(zhě)1信(xìn)息,可(kě)以(yǐ)将芯片(piàn)A和(hé)芯片(piàn)B通(tòng)过(guò)一(yī)个(gè)管(guǎn)脚進(jìn)行相連(lián), 然後(hòu)由(yóu)芯片(piàn)A控制該管(guǎn)脚輸出(chū)为(wèi)高(gāo)電(diàn)平或(huò)者(zhě)低電(diàn)平,通(tòng)过(guò)高(gāo)低電(diàn)平来(lái)表(biǎo)示0和(hé)1。 芯片(piàn)B檢测到(dào)該管(guǎn)脚为(wèi)低電(diàn)平时(shí),表(biǎo)示收(shōu)到(dào)0,芯片(piàn)B檢测到(dào)該管(guǎn)脚为(wèi)高(gāo)電(diàn)平时(shí),表(biǎo)示收(shōu)到(dào)1。
反(fǎn)之,如(rú)果(guǒ)用(yòng)低電(diàn)平表(biǎo)示收(shōu)到(dào)1,用(yòng)高(gāo)電(diàn)平表(biǎo)示收(shōu)到(dào)0可(kě)不(bù)可(kě)以(yǐ)呢?當然可(kě)以(yǐ),只(zhī)要(yào)芯片(piàn)A和(hé)芯片(piàn)B事(shì)先(xiān)協定(dìng), 芯片(piàn)A要(yào)發(fà)數字(zì)1时(shí)会(huì)将該管(guǎn)脚置为(wèi)低電(diàn)平。芯片(piàn)B檢测到(dào)該管(guǎn)脚为(wèi)低電(diàn)平,表(biǎo)示收(shōu)到(dào)了(le)數字(zì)1,通(tòng)信(xìn)完成(chéng)。
一(yī)个(gè)管(guǎn)脚擁有(yǒu)高(gāo)低電(diàn)平两(liǎng)種(zhǒng)狀态,可(kě)以(yǐ)分(fēn)别表(biǎo)示數字(zì)0和(hé)1的(de)两(liǎng)種(zhǒng)情(qíng)況。 如(rú)果(guǒ)芯片(piàn)A要(yào)發(fà)數字(zì)0、1、2、3給(gěi)芯片(piàn)B又要(yào)如(rú)何操作呢? 可(kě)以(yǐ)讓芯片(piàn)A和(hé)芯片(piàn)B連(lián)接两(liǎng)根(gēn)管(guǎn)脚,即两(liǎng)条(tiáo)線(xiàn):a和(hé)b。當两(liǎng)条(tiáo)線(xiàn)都为(wèi)低電(diàn)平时(shí), 表(biǎo)示發(fà)送數字(zì)0;當a为(wèi)高(gāo)電(diàn)平b为(wèi)低電(diàn)平时(shí), 表(biǎo)示發(fà)送數字(zì)1;當a为(wèi)低電(diàn)平b为(wèi)高(gāo)電(diàn)平时(shí),表(biǎo)示發(fà)送數字(zì)2;當两(liǎng)条(tiáo)線(xiàn)都是(shì)高(gāo)電(diàn)平时(shí),表(biǎo)示發(fà)送數字(zì)3。
按照同(tóng)樣(yàng)的(de)道(dào)理,芯片(piàn)A要(yào)發(fà)送數據(jù)4,5,6,7給(gěi)芯片(piàn)B时(shí),只(zhī)要(yào)再添加一(yī)条(tiáo)線(xiàn)就(jiù)可(kě)以(yǐ)了(le)。 三(sān)根(gēn)線(xiàn)一(yī)共(gòng)有(yǒu)8種(zhǒng)狀态,可(kě)以(yǐ)表(biǎo)示8个(gè)數字(zì)。綜上(shàng)所(suǒ)述,線(xiàn)的(de)不(bù)同(tóng)電(diàn)平狀态可(kě)以(yǐ)表(biǎo)示不(bù)同(tóng)的(de)含義, 有(yǒu)多(duō)少(shǎo)種(zhǒng)不(bù)同(tóng)狀态就(jiù)可(kě)以(yǐ)表(biǎo)示多(duō)少(shǎo)个(gè)數字(zì)。 下(xià)面(miàn)来(lái)思(sī)考一(yī)下(xià)如(rú)果(guǒ)芯片(piàn)A要(yào)發(fà)送+1,-1,0,+2等數字(zì)給(gěi)芯片(piàn)B,这(zhè)里(lǐ)的(de)正(zhèng)負又該如(rú)何表(biǎo)示呢?參考前(qián)面(miàn)的(de)思(sī)路(lù), 線(xiàn)的(de)高(gāo)低電(diàn)平表(biǎo)示的(de)含義是(shì)由(yóu)芯片(piàn)双(shuāng)方(fāng)向(xiàng)事(shì)先(xiān)約定(dìng)好(hǎo)的(de),既然如(rú)此(cǐ)則可(kě)以(yǐ)單用(yòng)一(yī)根(gēn)線(xiàn)来(lái)表(biǎo)示符号(hào), 例如(rú)低電(diàn)平表(biǎo)示正(zhèng)數,高(gāo)電(diàn)平表(biǎo)示負數。
上(shàng)图(tú)所(suǒ)示的(de)三(sān)根(gēn)線(xiàn)中(zhōng)用(yòng)線(xiàn)c表(biǎo)示正(zhèng)負,其中(zhōng)0表(biǎo)示正(zhèng)數,1表(biǎo)示負數。用(yòng)線(xiàn)a和(hé)線(xiàn)b表(biǎo)示數值, 以(yǐ)3’b111为(wèi)例,其可(kě)以(yǐ)解(jiě)釋为(wèi)十(shí)進(jìn)制數7,也(yě)可(kě)以(yǐ)解(jiě)釋为(wèi)有(yǒu)符号(hào)數原碼“-3”, 也(yě)可(kě)以(yǐ)解(jiě)釋为(wèi)有(yǒu)符号(hào)數補碼“-1”,如(rú)何解(jiě)釋取(qǔ)決于(yú)工程师(shī)对(duì)二(èr)進(jìn)制數的(de)定(dìng)義。 只(zhī)要(yào)該定(dìng)義不(bù)影響到(dào)電(diàn)路(lù)之間(jiān)的(de)通(tòng)信(xìn)就(jiù)不(bù)会(huì)發(fà)生(shēng)問(wèn)題(tí)。因(yīn)此(cǐ)數字(zì)中(zhōng)的(de)“0”和(hé)“1”不(bù)僅可(kě)以(yǐ)表(biǎo)示字(zì)面(miàn)上(shàng)的(de)數值含義, 也(yě)可(kě)以(yǐ)表(biǎo)示其他(tā)意(yì)義,如(rú)正(zhèng)負符号(hào)等。同(tóng)樣(yàng)的(de)道(dào)理, 在(zài)數字(zì)電(diàn)路(lù)中(zhōng)二(èr)進(jìn)制數是(shì)八(bā)進(jìn)制、十(shí)進(jìn)制、十(shí)六(liù)進(jìn)制、有(yǒu)符号(hào)數、无符号(hào)數、小數等其他(tā)數制的(de)根(gēn)本(běn)。在(zài)FPGA設計(jì)中(zhōng), 不(bù)清(qīng)楚小數、有(yǒu)符号(hào)數的(de)計(jì)算方(fāng)法的(de)最(zuì)根(gēn)本(běn)原因(yīn)是(shì)不(bù)清(qīng)楚这(zhè)些數據(jù)所(suǒ)对(duì)應(yìng)的(de)二(èr)進(jìn)制值, 只(zhī)要(yào)理解(jiě)了(le)对(duì)應(yìng)的(de)二(èr)進(jìn)制值,很多(duō)問(wèn)題(tí)都可(kě)以(yǐ)解(jiě)決。 下(xià)面(miàn)通(tòng)过(guò)例子讓同(tóng)学们(men)更(gèng)好(hǎo)的(de)理解(jiě)这(zhè)一(yī)概念,很多(duō)初学者(zhě)經(jīng)常問(wèn),FPGA中(zhōng)如(rú)何实現(xiàn)小數計(jì)算呢?以(yǐ)“0.5+0.25”为(wèi)例, 衆所(suǒ)周知0.5+0.25的(de)結果(guǒ)为(wèi)0.75,可(kě)以(yǐ)考慮0.5、0.25和(hé)0.75用(yòng)二(èr)進(jìn)制該如(rú)何表(biǎo)示? 具體(tǐ)表(biǎo)示方(fāng)法取(qǔ)決于(yú)工程师(shī)的(de)做法,因(yīn)为(wèi)这(zhè)種(zhǒng)表(biǎo)示方(fāng)法有(yǒu)很多(duō)種(zhǒng),例如(rú)定(dìng)點(diǎn)小數,浮點(diǎn)小數, 甚至(zhì)如(rú)前(qián)面(miàn)所(suǒ)讨論,用(yòng)幾(jǐ)根(gēn)線(xiàn)自(zì)行来(lái)定(dìng)義,只(zhī)要(yào)能(néng)正(zhèng)常通(tòng)信(xìn),那(nà)就(jiù)沒(méi)有(yǒu)問(wèn)題(tí)。 假設某工程师(shī)用(yòng)三(sān)根(gēn)線(xiàn)自(zì)行定(dìng)義了(le)二(èr)進(jìn)制值所(suǒ)表(biǎo)示的(de)小數值,如(rú)下(xià)表(biǎo)所(suǒ)示。
表(biǎo)1.3- 3自(zì)定(dìng)義二(èr)進(jìn)制數值表(biǎo)
为(wèi)了(le)说(shuō)明(míng)二(èr)進(jìn)制值的(de)意(yì)義是(shì)可(kě)以(yǐ)随便定(dìng)義的(de),笔(bǐ)者(zhě)特(tè)意(yì)将數字(zì)順序打(dǎ)亂。 當然,有(yǒu)读(dú)者(zhě)可(kě)能(néng)说(shuō)为(wèi)什麼(me)只(zhī)有(yǒu)这(zhè)幾(jǐ)種(zhǒng)小數呢?这(zhè)是(shì)因(yīn)为(wèi)假定(dìng)中(zhōng)的(de)系(xì)統就(jiù)只(zhī)有(yǒu)这(zhè)幾(jǐ)種(zhǒng)數字(zì), 如(rú)果(guǒ)想(xiǎng)表(biǎo)示更(gèng)多(duō)數字(zì)增加線(xiàn)的(de)數量(liàng)就(jiù)可(kě)以(yǐ)了(le)。 完成(chéng)上(shàng)面(miàn)定(dìng)義之後(hòu),要(yào)实現(xiàn)“0.5+0.25”就(jiù)很容易了(le),其实就(jiù)是(shì)3’b001和(hé)3’b100“相加”, 期(qī)望得到(dào)3’b010。但是(shì)在(zài)該表(biǎo)中(zhōng)直(zhí)接使用(yòng)3’b001 + 3’b100,結果(guǒ)为(wèi)“101”, 这(zhè)不(bù)是(shì)想(xiǎng)要(yào)的(de)結果(guǒ),此(cǐ)时(shí)可(kě)以(yǐ)将代(dài)碼写为(wèi):
當然,这(zhè)只(zhī)是(shì)其中(zhōng)一(yī)種(zhǒng)写法,只(zhī)要(yào)能(néng)实現(xiàn)所(suǒ)对(duì)應(yìng)的(de)功能(néng)且結果(guǒ)正(zhèng)确,任意(yì)写法都可(kě)以(yǐ)。
有(yǒu)读(dú)者(zhě)可(kě)能(néng)会(huì)有(yǒu)疑問(wèn),0.1+0.8應(yìng)該为(wèi)0.9,但上(shàng)面(miàn)的(de)表(biǎo)格中(zhōng)并沒(méi)有(yǒu)0.9的(de)表(biǎo)示。 这(zhè)其实是(shì)設計(jì)者(zhě)定(dìng)義的(de)这(zhè)个(gè)表(biǎo)格有(yǒu)缺陷,或(huò)者(zhě)設計(jì)者(zhě)認为(wèi)不(bù)会(huì)出(chū)現(xiàn)这(zhè)一(yī)情(qíng)況。 笔(bǐ)者(zhě)此(cǐ)处要(yào)表(biǎo)达(dá)的(de)是(shì):只(zhī)要(yào)定(dìng)義好(hǎo)对(duì)應(yìng)的(de)二(èr)進(jìn)制數,很多(duō)功能(néng)都是(shì)很容易設計(jì)的(de)。
當然,实際的(de)工程中(zhōng)通(tòng)常会(huì)遵守約定(dìng)成(chéng)俗的(de)做法,沒(méi)必要(yào)另(lìng)辟蹊徑。
例如(rú),下(xià)表(biǎo)是(shì)常用(yòng)的(de)定(dìng)點(diǎn)小數的(de)定(dìng)義:
表(biǎo)1.3- 4常用(yòng)定(dìng)點(diǎn)小數定(dìng)義
此(cǐ)时(shí)如(rú)果(guǒ)要(yào)实現(xiàn)0+0.5=0.5,也(yě)就(jiù)是(shì)3’b000和(hé)3’b100相加,期(qī)望能(néng)得到(dào)3’b100。 可(kě)以(yǐ)發(fà)現(xiàn)直(zhí)接用(yòng)二(èr)進(jìn)制3’b000+3’b100就(jiù)能(néng)得到(dào)3’b100。 同(tóng)樣(yàng)地(dì),要(yào)实現(xiàn)0.125+0.75=0.8725,也(yě)就(jiù)是(shì)3’b001和(hé)3’b110相加,期(qī)望能(néng)得到(dào)3’b111。 可(kě)以(yǐ)發(fà)現(xiàn)直(zhí)接用(yòng)二(èr)進(jìn)制3’b001+3’b110就(jiù)能(néng)得到(dào)3’b111。
如(rú)果(guǒ)要(yào)实現(xiàn)0.5+0.75=1.25这(zhè)一(yī)計(jì)算,可(kě)以(yǐ)看(kàn)出(chū)此(cǐ)时(shí)1.25已經(jīng)超出(chū)了(le)表(biǎo)示範圍, 可(kě)以(yǐ)通(tòng)过(guò)增加信(xìn)号(hào)位宽(kuān)或(huò)只(zhī)表(biǎo)示小數位的(de)做法解(jiě)決这(zhè)一(yī)問(wèn)題(tí)。如(rú)果(guǒ)只(zhī)是(shì)表(biǎo)示小數位則結果(guǒ)就(jiù)是(shì)0.25, 即3’b100和(hé)3’b110相加,期(qī)望得到(dào)3’b010。不(bù)難發(fà)現(xiàn)3’b100 + 3’b110 = 4’b1010,用(yòng)3位表(biǎo)示就(jiù)是(shì)3’b010, 也(yě)就(jiù)是(shì)0.25。綜上(shàng)所(suǒ)述可(kě)以(yǐ)看(kàn)出(chū),定(dìng)點(diǎn)小數的(de)計(jì)算并不(bù)複雜,
定(dìng)義好(hǎo)定(dìng)點(diǎn)小數與(yǔ)二(èr)進(jìn)制值之間(jiān)的(de)關(guān)系(xì)後(hòu)直(zhí)接進(jìn)行計(jì)算即可(kě)。 相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=9
|








