一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

控制器和處理器離不開(kāi)的加法器

電子森林 ? 來(lái)源:電子森林 ? 作者:蘇老師 ? 2021-09-30 11:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們每個(gè)人從小最先學(xué)的數(shù)學(xué)就是1+1=2,然后就是小九九,因?yàn)檫@是我們長(zhǎng)大以后混世界的最基本的能力,加、減、乘、除是人腦“數(shù)字邏輯”的基礎(chǔ)。作為替代人腦進(jìn)行運(yùn)算的數(shù)字計(jì)算機(jī),無(wú)論是控制器還是處理器,無(wú)論是簡(jiǎn)單的單片機(jī)還是大型的服務(wù)器,以加、減法為基礎(chǔ)的算術(shù)單元自然是最重要的核心部件。

雖然我們對(duì)十進(jìn)制的加減乘除都已經(jīng)熟悉到了本能的地步,如何讓晶體管構(gòu)建的、以二進(jìn)制為基礎(chǔ)的數(shù)字電路來(lái)實(shí)現(xiàn)我們?nèi)祟?lèi)需要的加、減、乘、除?

著名科普專(zhuān)家“冬瓜哥”在其定價(jià)為600元的巨著《大話計(jì)算機(jī)》開(kāi)篇就對(duì)這個(gè)問(wèn)題進(jìn)行了闡述:

十余年的困惑,自然是上升到了常人不可達(dá)的層面才想明白的一些道理,有興趣的同學(xué)可以跟著他的思路繞一繞,蘇老師讀了半個(gè)小時(shí)就已經(jīng)感覺(jué)到腦細(xì)胞嚴(yán)重疲勞。

他切入計(jì)算機(jī)的入口就是加法器,準(zhǔn)確地講就是在我們的數(shù)字電路中一帶而過(guò)的Adder - 半加器、全加器以及超前進(jìn)位加法器(很多教程僅給出了半頁(yè)的篇幅)。冬瓜哥得出的結(jié)論是“CPU內(nèi)部就是個(gè)加法器”??梢?jiàn)它的重要性,也可見(jiàn)我們對(duì)它真的是嚴(yán)重忽略了,就像1+1=2一樣,它重要得實(shí)在太平凡了。

但,它確實(shí)是我們數(shù)字計(jì)算的基礎(chǔ),理解了它才能夠理解整個(gè)的數(shù)字邏輯世界。

我們先通過(guò)硬禾學(xué)堂制作的一個(gè)7分鐘的視頻教程來(lái)看一下加法器最基本的兩個(gè)示例:

第一個(gè)案例 - 1位半加器

380f644c-2153-11ec-82a8-dac502259ad0.jpg

根據(jù)我們?nèi)祟?lèi)在十進(jìn)制領(lǐng)域定義的加法規(guī)則,來(lái)操作2個(gè)1位的數(shù)據(jù)相加,從最基本的門(mén)的功能以及加法的規(guī)則需求,我們得到來(lái)實(shí)現(xiàn)它的電路 - 通過(guò)一個(gè)“異或門(mén)”得到加法以后的1位的結(jié)果,以及通過(guò)一個(gè)“與門(mén)”得到一個(gè)“進(jìn)位”位的值,就像我們十進(jìn)制的加法,如果兩個(gè)數(shù)字相加超過(guò)了一個(gè)“位”(十進(jìn)制的位)能夠表達(dá)的范圍,就要生成一個(gè)進(jìn)位信號(hào)。通過(guò)真值表能夠比較直觀地看出反映2個(gè)輸入位同經(jīng)過(guò)加法操作以后得到的輸出位的關(guān)系。

使用Verilog代碼的1位半加器:

module halfadder ( input a, //第一個(gè)加數(shù)a input b, //第二個(gè)加數(shù)b output sum, //顯示和的led output cout //顯示進(jìn)位的led ); assign sum=a ^ b; //sum=a⊕b assign cout=a & b; //cout=ab endmodule

第二個(gè)案例 - 1位全加器

畢竟2個(gè)1位的數(shù)相加只是基礎(chǔ),太局限,我們擴(kuò)展一下,如果需要有超過(guò)1位的數(shù)字相加,該如何操作?那就需要將“進(jìn)位”的值考慮進(jìn)來(lái),作為一個(gè)輸入,有了進(jìn)位輸入、進(jìn)位輸出的加法器被稱(chēng)之為“全加器”,全了,誰(shuí)都不缺了。

使用Verilog代碼的1位全加器的Verilog代碼:

module adder1 ( input wire a, //輸入的低位進(jìn)位及兩個(gè)加數(shù)cin、a、b input wire b, input wire cin, output wire sum, //輸出的和與進(jìn)位 output wire cout ); wire s1,s2,s3; //定義中間變量 xor (s1,a,b); //調(diào)用基本異或門(mén) xor (sum,s1,cin); nand (s2,a,b); //調(diào)用基本與非門(mén) nand (s3,s1,cin); nand (cout,s2,s3); endmodule

通過(guò)上面的兩段Verilog代碼,可以看出用Verilog這種硬件描述語(yǔ)言的一些特點(diǎn),這個(gè)在后面的文章中會(huì)專(zhuān)門(mén)介紹。

多數(shù)的“數(shù)字電路”教程關(guān)于加法器也基本上點(diǎn)到此為止了。

但上述的基本單元能用來(lái)做啥的?如果不做擴(kuò)展,同學(xué)們很難有進(jìn)一步的理解,因此我建議大家可以自行做一些擴(kuò)展:

支持多位二進(jìn)制數(shù)相加的并行二進(jìn)制加法器

比如2個(gè)4位二進(jìn)制的加法器,它可以由3個(gè)全加器和1個(gè)半加器構(gòu)成,低位的加法進(jìn)位可以作為相鄰高位加法的一個(gè)輸入端,最低位僅用一個(gè)半加器,最高位生成的進(jìn)位信號(hào)作為后續(xù)電路的輸入。

是不是像極了我們的十進(jìn)制加法?原理是一樣的,只是采用的進(jìn)制不同,而二進(jìn)制可以通過(guò)數(shù)字電路的0、1比較容易地實(shí)現(xiàn)。

了解了加法器,減法器也就不難理解,就像我們十進(jìn)制中的加和減的關(guān)系一樣。它的基本規(guī)則:

0 - 0 = 0

0 - 1 = (借)1 1

1 - 0 = 1

1 - 1 = 0

既然多位的全減器也可以用全加器來(lái)實(shí)現(xiàn),是不是可以有一種統(tǒng)一的結(jié)構(gòu)能夠?qū)崿F(xiàn)加、減的功能?畢竟減和加是對(duì)偶的,減法也可以看作是+(-)的操作。

統(tǒng)一結(jié)構(gòu)的并行加、減法

從前面的加減法構(gòu)成可以看出,加法器和減法器都可以用共同的加法器來(lái)實(shí)現(xiàn),如果我們添加一個(gè)控制信號(hào)M,最低位也使用一個(gè)全加器,將這個(gè)M值連接到該全加器的進(jìn)位輸入端,就可以通過(guò)這個(gè)M是0或1來(lái)決定此電路時(shí)加法電路還是減法電路:

M=1的時(shí)候?yàn)闇p法器

M=0的時(shí)候行使加法器的功能。

如果你需要將更多的位數(shù)的二進(jìn)制數(shù)字相加或相減,你可以使用更多個(gè)加法器級(jí)聯(lián)即可得到。細(xì)心和動(dòng)腦的同學(xué)會(huì)發(fā)現(xiàn),如果任何操作需要哪怕一丁點(diǎn)的時(shí)間(有了時(shí)間的概念也就意味著 - 因果之間有了先后,有了“時(shí)延”,我們生存的世界時(shí)間是一個(gè)客觀存在的維度),那么圖中的操作在每個(gè)位上的輸出就會(huì)產(chǎn)生時(shí)間上的差異,最高位的值和進(jìn)位依賴于低位的值和每一位加法操作的時(shí)間(也就是構(gòu)成加法器的門(mén)的響應(yīng)時(shí)間)。就像綠燈亮起,并不是所有等待的車(chē)同時(shí)啟動(dòng)前行,而是從第一輛車(chē)逐級(jí)傳遞過(guò)來(lái)的一樣。

用上述方法構(gòu)建的加法器、減法器,位數(shù)越多,由于電路門(mén)時(shí)延帶來(lái)的計(jì)算結(jié)果會(huì)越慢出現(xiàn),聰明的前輩大神們竟然通過(guò)一系列的邏輯運(yùn)算發(fā)明了“超前進(jìn)位加法器”的結(jié)構(gòu),即便實(shí)際的電路上每個(gè)操作都有先后帶來(lái)的時(shí)延,我們也可以不需要考慮每個(gè)進(jìn)位的逐級(jí)傳遞,而是一次性地根據(jù)各個(gè)輸入端的位上的值直接得出運(yùn)算以后的結(jié)果。

是不是很不可思議?

為啥需要逐級(jí)傳遞的信息可以提前預(yù)知?為什么在布爾表達(dá)式中的一些變量經(jīng)過(guò)邏輯化簡(jiǎn)以后發(fā)現(xiàn)它們只是打醬油的可有可無(wú)?

我們的生活中是否也是如此?每當(dāng)綠燈亮起的時(shí)候所有的車(chē)是否也能同步啟動(dòng)前行?

這些問(wèn)題留給大家思考。

有了加法器、減法器,也就很容易構(gòu)建乘法器 - 重復(fù)多次的加,和除法器 - 重復(fù)多次的減。

因此加法器是構(gòu)成整個(gè)數(shù)字計(jì)算的基礎(chǔ),是最重要的一個(gè)部件,它的設(shè)計(jì)好壞直接影響了處理器/控制器的性能、性價(jià)比等。

比如在電子森林“電路仿真”中的Brent-Kung樹(shù)形加法器就是一種最小化芯片面積和成本的結(jié)構(gòu)。有興趣的同學(xué)可以點(diǎn)擊https://www.eetree.cn/war/circuitjs.html?lang=zh 來(lái)體驗(yàn)一下。

正如前面文章所述,在FPGA沒(méi)有大面積普及應(yīng)用的年代,曾經(jīng)有一系列的中等規(guī)模的集成電路模塊推出,最著名的就是74系列的器件,其中74HC283就是一種4位超前進(jìn)位的全加器器件。很多高??赡苓€在拿它做數(shù)電的實(shí)驗(yàn),

外形長(zhǎng)這樣

內(nèi)部功能這樣

最后,給大家介紹一款國(guó)外公司制作的4位加法器的訓(xùn)練套件

為了方便大家實(shí)驗(yàn),這個(gè)產(chǎn)品中包含了如下的一些器件:

1個(gè)多路選擇器(CD74HC157E)

2個(gè)寄存器 /4個(gè)D觸發(fā)器 (CD74HC173E)

1個(gè)4位全加器 (CD74HC283E)

1個(gè)6通道具有施密特觸發(fā)器輸入的反相器 (CD74HC14E)

1個(gè)4位幅度比較器 (CD74HC85E)

1個(gè)雙4輸入異或門(mén) (CD74HC4002E)

1個(gè)4組 2輸入異或門(mén) (CD74HC86E)

得說(shuō),這個(gè)套件的文檔寫(xiě)得特別的棒,有興趣的老師和同學(xué)可以自己搜一下。

這個(gè)套件用了8顆中等規(guī)模的集成電路,加上很多連線連線。其實(shí)呢,用小腳丫FPGA內(nèi)部的不到1%的資源就能實(shí)現(xiàn),而且只需要寫(xiě)很短的幾行Verilog代碼。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19890

    瀏覽量

    235126
  • 電路圖
    +關(guān)注

    關(guān)注

    10414

    文章

    10738

    瀏覽量

    543064
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7662

    瀏覽量

    90765

原文標(biāo)題:淺談“數(shù)字電路”的學(xué)習(xí)(7)- 一切數(shù)字計(jì)算的核心功能、被教程忽略的加法器

文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    工程機(jī)械控制器如何選型?控制器選型指南 #控制器 #車(chē)載控制器 #整車(chē)控制器 #控制器選型

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年03月14日 10:54:24

    EE-256:使用ADSP-BF561 Blackfin處理器作為T(mén)FT-LCD控制器

    電子發(fā)燒友網(wǎng)站提供《EE-256:使用ADSP-BF561 Blackfin處理器作為T(mén)FT-LCD控制器.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:33 ?1次下載
    EE-256:使用ADSP-BF561 Blackfin<b class='flag-5'>處理器</b>作為T(mén)FT-LCD<b class='flag-5'>控制器</b>

    從零開(kāi)始設(shè)計(jì)RISC-V處理器——單周期處理器的設(shè)計(jì)

    一、CPU如何執(zhí)行指令?CPU包括控制器和數(shù)據(jù)通路,數(shù)據(jù)通路從字面意思理解,就是指處理器中數(shù)據(jù)流通的路徑。不同類(lèi)型的指令的數(shù)據(jù)通路不一樣,具體由控制器產(chǎn)生的控制信號(hào)決定。 下面以一個(gè)簡(jiǎn)
    發(fā)表于 10-12 22:12

    想用一個(gè)同相加法器實(shí)現(xiàn)-1.4v到0變?yōu)?到2.5v左右的輸出,請(qǐng)問(wèn)用什么運(yùn)放比較好?

    我想用一個(gè)同相加法器實(shí)現(xiàn)-1.4v到0變?yōu)?到2.5v左右的輸出,請(qǐng)問(wèn)用什么運(yùn)放比較好。呵呵,后面接跟隨再接ADC
    發(fā)表于 09-25 06:48

    DSP控制器的主要優(yōu)勢(shì)是什么?

    DSP控制器的主要優(yōu)勢(shì): 高速處理能力 : DSP(數(shù)字信號(hào)處理器)專(zhuān)為快速數(shù)學(xué)運(yùn)算設(shè)計(jì),如乘法和加法,這對(duì)于信號(hào)處理至關(guān)重要。 它們通常具
    的頭像 發(fā)表于 09-24 16:21 ?1609次閱讀

    用opa2228制作了一個(gè)同向加法器,可輸出出現(xiàn)了震蕩怎么解決?

    請(qǐng)問(wèn)一下,我用opa2228制作了一個(gè)同向加法器,可輸出出現(xiàn)了震蕩(其中正向輸入的兩個(gè)信號(hào)分別是峰峰值為1.36V頻率4kHZ的正弦波,和5v的直流電平)
    發(fā)表于 09-20 06:58

    LM258反向加法器輸出信號(hào)出現(xiàn)斷點(diǎn)怎么解決?

    LM258反向加法器輸出信號(hào)出現(xiàn)斷點(diǎn)的問(wèn)題,求各位老師解答 電路圖如下: 采用正負(fù)5V供電 輸入輸出如下: 上面是輸出,下面是輸入。輸入兩個(gè)一樣的正弦信號(hào),輸出信號(hào)出現(xiàn)斷點(diǎn)是怎么回事呢? 發(fā)現(xiàn)輸入大信號(hào)出現(xiàn)上述現(xiàn)象,小信號(hào)就沒(méi)有了
    發(fā)表于 09-20 06:49

    用OPA27做同相加法器Vo=Vi1+Vi2時(shí)遇到的疑問(wèn)求解

    用OPA27做同相加法器Vo=Vi1+Vi2的時(shí)候,函數(shù)發(fā)生給Vi1輸入頻率為1kHZ,Vpp=1V的正弦波,而Vi2接地時(shí),沒(méi)有輸出。然后稍作改動(dòng),成了Vo=-(Vi1+Vi2),如下圖所示
    發(fā)表于 09-12 06:31

    實(shí)現(xiàn)兩個(gè)單一頻率正弦波相加的加法器的芯片選取有什么特殊要求嗎?opa2320可以嗎?

    實(shí)現(xiàn)兩個(gè)單一頻率正弦波相加的加法器的芯片選取有什么特殊要求嗎?opa2320可以嗎?
    發(fā)表于 09-11 08:30

    用OPA454做了一個(gè)簡(jiǎn)單的加法器電路,電壓有一個(gè)明顯降低是怎么回事?

    小弟最近碰到一個(gè)問(wèn)題,我用OPA454做了一個(gè)簡(jiǎn)單的加法器電路:運(yùn)放反相端接3V電壓源和一個(gè)10K電阻,正相端接一個(gè)個(gè)幅值為0~3V的正弦波,負(fù)反饋回路上接一個(gè)10K電阻,則輸出Vout=2
    發(fā)表于 08-30 07:00

    加法器是時(shí)序邏輯電路嗎

    加法器不是時(shí)序邏輯電路 ,而是組合邏輯電路的一種。時(shí)序邏輯電路和組合邏輯電路的主要區(qū)別在于它們?nèi)绾?b class='flag-5'>處理輸出信號(hào)。 組合邏輯電路的輸出僅依賴于當(dāng)前的輸入信號(hào),而不依賴于電路之前的狀態(tài)或輸入歷史。這
    的頭像 發(fā)表于 08-28 11:05 ?1462次閱讀

    用單電源運(yùn)放實(shí)現(xiàn)加法器混音左右聲道,輸出經(jīng)功放后有較明顯沙沙聲,怎么解決?

    左右聲道經(jīng)過(guò)加法器混音的原理示意圖如下: 運(yùn)放選擇的是LME49726,5V電源是從DCDC 18V經(jīng)過(guò)78M05后得到的,然后從這個(gè)5V經(jīng)過(guò)一個(gè)1117-2.5得到2.5V電源。 問(wèn)題:經(jīng)過(guò)這個(gè)
    發(fā)表于 08-28 06:13

    嵌入式微控制器與嵌入式微處理器的聯(lián)系

    嵌入式微控制器和嵌入式微處理器在嵌入式系統(tǒng)領(lǐng)域中都扮演著至關(guān)重要的角色,它們之間存在著緊密的聯(lián)系,同時(shí)也各具特色。以下是對(duì)兩者聯(lián)系及特點(diǎn)的詳細(xì)探討。
    的頭像 發(fā)表于 08-22 10:50 ?1346次閱讀

    用OPA2134做加法器的時(shí)候,在2M到4M之間信號(hào)有放大,在4M以后信號(hào)又衰減了,是什么原因?

    請(qǐng)問(wèn)我在用OPA2134這款芯片做加法器的時(shí)候,頻率在2M以前是好的,在2M到4M之間信號(hào)有放大,在4M以后信號(hào)又衰減了,請(qǐng)問(wèn)這是什么原因?
    發(fā)表于 08-22 07:51

    請(qǐng)問(wèn)全差分運(yùn)算放大器能像一般運(yùn)算放大器一樣設(shè)計(jì)加法器嗎?

    全差分運(yùn)算放大器能像一般運(yùn)算放大器一樣設(shè)計(jì)加法器嗎?
    發(fā)表于 08-09 06:26