在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度解讀硬件加法器、觸發器、鎖存器

Q4MP_gh_c472c21 ? 來源:科巖成果 ? 作者:科巖成果 ? 2021-05-28 11:18 ? 次閱讀

我們都知道,「通電」代表「真」,用邏輯1表示;「不通電」代表「假」,用邏輯0表示?!概c門」電路是用晶體管搭建的,符號長這樣:

003b11ba-bf0b-11eb-9e57-12bb97331649.jpg

A與B的通斷,可以決定Y點是否通電。

我們還為A、B與Y之間的關系畫了一張表(真值表):

0048c2ec-bf0b-11eb-9e57-12bb97331649.png

接著我們設計出了簡單的「或門」「非門」,用它們可以搭建各式各樣其他的門電路。

這篇文章講一下,怎么利用基礎門電路進行加法計算。

二進制加法

我已經忘了是什么時候學的加法了,應該是小學吧,先學10以內的,再學100以內的,然后不管多大的數都可以隨便加了,算式很簡單,就是逢10進1。

下面這個式子是一個萬以內的加法:

00544ce8-bf0b-11eb-9e57-12bb97331649.jpg

相應的,二進制就是逢2進1,下面這個式子是2個8位二進制數的加法計算:

005d3be6-bf0b-11eb-9e57-12bb97331649.jpg

半加器

8位二進制數還太復雜,我們先來看看1位二進制數怎么計算的,一共有以下4種情況:

0069df22-bf0b-11eb-9e57-12bb97331649.png

觀察一下就能發現2個規律。

第一個規律,只考慮加法,不考慮進位時,加數與和之間的關系如下:

0073b592-bf0b-11eb-9e57-12bb97331649.png

相同為0,不同為1。這個關系和「異或門」是相同的:

007cc682-bf0b-11eb-9e57-12bb97331649.png

異或門我們之前沒有聊到過,電路圖長這樣:

008698b0-bf0b-11eb-9e57-12bb97331649.png

第二個規律是,如果只考慮進位,不考慮加法,加數與進位之間的關系如下:

008ed1c4-bf0b-11eb-9e57-12bb97331649.png

只有全1時,才為1。發現了嗎,這和本文開頭與門的真值表是一樣的。

2個一位二進制數相加將產生一個加法位和一個進位位,加法位輸入與輸出的關系跟與門是一樣的,進位位跟異或門相同。

所以,可以像這樣把兩個門電路連起來,計算2個二進制數(A和B)的和:

0096bc7c-bf0b-11eb-9e57-12bb97331649.png

我們稱這個電路為「半加器」,因為它只能計算2個一位二進制數的加法,沒有辦法將前面加法可能產生的進位納入下一次計算中,如果有進位則實際上是需要3個加數參與計算。

用門電路畫太復雜,可以封裝起來這樣表示半加器:

00a0aebc-bf0b-11eb-9e57-12bb97331649.png

全加器

怎樣計算3個加數的二進制加法呢?需要將2個半加器和一個或門如圖連接起來:

00ac33cc-bf0b-11eb-9e57-12bb97331649.png

左邊能看到它有3個輸入,右邊依舊是1位加和輸出,1位進位輸出。

2個數的加和與上一次的進位相加,得出的加和作為3個數最終的加和;2個數相加或3個數相加的進位作為3個數加和最終的進位位。

用文字描述有點不好理解,把這個電路圖全部輸入和輸出情況都展示出來,畫一個表就明白了:

00bf7572-bf0b-11eb-9e57-12bb97331649.png

很明顯,這個表就是2個一位二進制數帶進位的全部狀態。

每次做加法時畫2個半加器和一個或門很麻煩,我們用下面這個圖示把它們封裝起來,這個能計算3位二進制數加法的電路就稱為「全加器」。

00ccafbc-bf0b-11eb-9e57-12bb97331649.png

加法器

現在回到開頭那個二進制加法:

00d76542-bf0b-11eb-9e57-12bb97331649.png

它有8個二進制位,到目前為止我們還只能計算2個一位二進制數,最多再增加一個進位的加法,我們最終的目標當然是2個8位、16位乃至32位數的加法。

其實,非常簡單,用8個全加器一塊算!

把8個全加器每個進位輸出作為下一個的進位輸入,首尾相連就可以啦!

00dfc67e-bf0b-11eb-9e57-12bb97331649.png

每次這樣畫太麻煩,可以封裝成一個框圖:

00e82756-bf0b-11eb-9e57-12bb97331649.png

大箭頭代表8個輸入/輸出端,有8個獨立的信號

一旦我們擁有了8位二進制加法器,把它們級聯起來,很容易就能得到一個16位或32位的加法器啦。

00f281b0-bf0b-11eb-9e57-12bb97331649.jpg

加法計算是計算機的基本運算,其實,計算機唯一的工作就是做加法計算。不論是減法、乘法、除法、在線支付、火箭升空還是AI下棋,都是利用加法實現的。

把加減乘除和邏輯運算等運算單元集成起來,就組成了CPU中的基本計算單元:ALU(算術邏輯單元Arithmetic and Logic Unit)。

用加法器計算2個數的加法其實就是用硬件方式實現了一個加法計算器,輸入A和輸入B的高低電平決定了輸出S和CO的高低電平。

這樣的電路同一時刻只能表示一種狀態,只要改變了A、B中任意一位,輸出就會有所變化。

現在我們想計算更多二進制數的加法,比如5個數A、B、C、D、E的加法(先不考慮進位)。

步驟應該是這樣:首先把A、B作為輸入,得出一個輸出S1,我們要記下來S1的值,然后把S1和C作為輸入,得出S2.。。。以此類推,要記下很多個數,然后再用加法器計算。

5個數都已經很麻煩了,如果要計算更多個數該怎么辦?能不能把每次計算完的結果存起來,下次繼續使用呢?

我們的需求

00fc2a58-bf0b-11eb-9e57-12bb97331649.png

這個加法器有個特點,就是兩個加數A和B的值決定著加和S的值。

這個值是實時決定的,也就是說,A、B中只要有一個數據位發生了改變(0變1或1變0),加和就一定、立即發生改變。

我們如果想用這個加法器算「累加和」將會很麻煩,比如5個數A、B、C、D、E的加法。

首先把A、B作為輸入,得出一個輸出S1,我們要記下來S1的值,然后把S1和C作為輸入,得出S2.。。。以此類推,要記下很多個數,然后再用加法器計算。

工程師怎么會做這種無腦循環的工作呢,得想辦法交給計算機寄幾做。

好像只要做一個什么器件連在這個加法器的輸出上,這個新器件能夠保存加法器輸出的和,并將算好的和再作為一個參數輸入,傳遞給加法器就可以了。

0107211a-bf0b-11eb-9e57-12bb97331649.png

注意這個新器件,首先它支持輸入和輸出;其次它能「保存」當前的值;最后,有一個類似「開關」的引腳決定它是否保持當前的值。

「保存」是什么意思?其實很好理解,就是不論輸入的數據位怎么變化,輸出都不變。

不考慮8個數據位,先只搭建一個這樣具有「保存」功能的門電路,能保存一個bit就ok。

或非門點燈

科巖已經點燈無數,這次依然從點燈開始,用或非門試一下。

「或非門」的真值關系如下表,記住輸入只要有1,輸出一定為0就可以了。

0119469c-bf0b-11eb-9e57-12bb97331649.jpg

或非門的符號:

012a22f0-bf0b-11eb-9e57-12bb97331649.jpg

按照下面這個電路把兩個或非門與一個小燈泡連起來,如圖:

仔細觀察,能發現我把右邊或非門的輸出直接作為輸入連接到左邊或非門上,這會產生什么神奇的現象呢?

013595e0-bf0b-11eb-9e57-12bb97331649.png

如上圖,最開始,左邊或非門的輸入都是0,輸出為1;右邊或非門輸入一個是0,一個是1,輸出0,燈泡是不亮的。

0149a5da-bf0b-11eb-9e57-12bb97331649.png

現在把開關S1連通,連通瞬間,左邊或非門輸出0,右邊或非門輸出1,燈泡被點亮,然后右邊或非門輸出的1給到左邊或非門,2個輸入都是1,它的輸出為0保持不變,燈泡點亮不變。

接著我們把開關S1斷開,如下圖神奇的事情發生了,燈泡依然保持點亮狀態!因為左邊或非門仍有一個輸入是1。

015313fe-bf0b-11eb-9e57-12bb97331649.png

如果把S2閉合會怎樣呢?燈泡馬上熄滅了。

015e51ce-bf0b-11eb-9e57-12bb97331649.png

這時再打開S2,電路回到最初的狀態,燈泡還是熄滅狀態。

可以總結規律了:

?導通S1,燈泡點亮,不論我們怎么控制S1,燈泡都是亮的

?導通S2,燈泡熄滅,不論我們怎么控制S2,燈泡都是亮的

這不就達到我們想要的「保存」功能了嘛,不論輸入的數據位怎么變化,輸出都不變。

觸發器(Flip-Flop)

像上面把兩個或非門連起來,能夠穩定保存電路狀態的電路被稱為「觸發器」。

016b6ed6-bf0b-11eb-9e57-12bb97331649.png

Flip-Flop的意思是「翻轉」,中文翻譯比較奇怪,我們通常理解的觸發器是Trigger,不過沒關系,其實就是個名稱而已。

上面這個觸發器叫做R-S觸發器,它有2個輸入端S(Set)和R(Reset),2個輸出端Q和~Q(實在打不出Q上面的橫線o(╥﹏╥)o)。

當S為1時,輸出Q為1,~Q為0;當R為1時,輸出Q為0,~Q為1;當S和R都為0時,輸出Q和~Q保持不變;當S和R都為1時是一個不正確的狀態,我們不使用這個狀態。

不是特別繞吧?畫個表:

0174c332-bf0b-11eb-9e57-12bb97331649.png

R-S觸發器最大特點就是它能記住2個輸入端的狀態。想要記住上一次的狀態時,把2個輸入端都置0就可以了。

每次畫2個或非門太麻煩,封裝一下:

01847e6c-bf0b-11eb-9e57-12bb97331649.png

有了觸發器,計算機除了算些加減乘除、與或非邏輯運算,開始具備了存儲功能,我覺得觸發器真是一個神奇的存在,把平平無奇的門電路連起來竟然就賦予了計算機「記憶」。

計算機中寄存器(Register)、內存(RAM)最最基礎的組成單元就是觸發器。

理解了觸發器的工作原理,也就理解了內存的工作原理。

「觸發器」的電路實現,最后畫出了一個R-S觸發器的框圖,它有2個輸入端,2個輸出端:

01847e6c-bf0b-11eb-9e57-12bb97331649.png

R-S觸發器最大特點就是它能記住2個輸入端的狀態。想要記住上一次的狀態時,把2個輸入端都置0就可以了。

0194698a-bf0b-11eb-9e57-12bb97331649.png

還記得上篇文章中我們提出的那個需求嗎,做一個什么器件連在加法器的輸出上,這個器件能夠保存加法器輸出的8位數的和,并將算好的和再作為一個參數輸入傳遞給加法器,從而實現一個累加器。

0107211a-bf0b-11eb-9e57-12bb97331649.png

R-S觸發器只能記住1位數據的狀態,怎樣能記住8位呢,這篇就來講講。

D觸發器

1個R-S觸發器能存1位數據,所以需要8個R-S觸發器;1個R-S觸發器,有2個輸入端2個輸出端,8個就是16個輸入端,16個輸出端。

而我們需要的是一個8輸入、8輸出的器件,我們得想辦法簡化R-S觸發器。

觀察一下R-S觸發器,雖然有2個數據輸入端和2個數據輸出端,但實際上它只能保存1種狀態,即保存1個bit數據位,因為Q和Q`的狀態一定是相反的。

要保存數據時,需要把2個數據輸入端都置成低電平。

這有點麻煩,因為要同時控制兩個端;又有點浪費,明明只能存一位數據卻用了2根線;還有點耦合,因為數據輸入端也有控制作用,同時也是控制端,沒區分開。

能不能把數據和控制分開,并且輸入和輸出只用一個數據端?

我們試著增加一個具有控制功能的「保持位」,它能決定電路當前的狀態是否被「記住」。

當「保持位」為1時,數據輸入的值就會被電路記住,當保持位為0時,數據輸入位的任何值都不會影響電路的狀態。

先畫一下這個理想電路的真值表:

01a764c2-bf0b-11eb-9e57-12bb97331649.png

試著用R-S觸發器搭建和這個表對應的電路:

01b00c12-bf0b-11eb-9e57-12bb97331649.png

這個電路實現了我們要的保持位的效果,保持為為1時,電路狀態與R-S觸發器相同;保持位置0時,相當于S和R為0,電路保存當前狀態。

可這樣又增加了一條線,能不能用一根線替換掉S和R這兩根輸入端呢?可以注意到,R與S的狀態是相反的,所以很簡單,用一個非門就可以了。

01bb4e42-bf0b-11eb-9e57-12bb97331649.png

如上圖,當保持位為1時,輸出Q端與數據端相同;當保持位為0時,數據端怎么改變都不會影響電路狀態,即電路會記住保持位最后一次置1時數據端的值,是不是很簡潔很舒服。

上面這個電路被稱為電平觸發的D(Data)型觸發器。

鎖存器

通常,保持位需要不斷的在0和1之間有規律的按一定頻率變化,這就像鐘表一樣,滴答滴答,永不知疲倦。所以我們給保持位換一個稱呼:時鐘(clock)。

01d7002e-bf0b-11eb-9e57-12bb97331649.png

這樣用時鐘控制的D觸發器也稱作「鎖存器」,因為存儲進去的數據就好像被鎖住了一樣。

把8個鎖存器的時鐘端接在一起,引出輸入端D和輸出端Q,就構成了一個8位的鎖存器:

01e1b686-bf0b-11eb-9e57-12bb97331649.png

這個鎖存器可以一次保存一個字節(8位數),把這個框圖封裝一下:

01f5cd7e-bf0b-11eb-9e57-12bb97331649.png

這個8位鎖存器就是我們需要的那個新器件啦,把它和8位加法器相連,就能得到一個累加器:

020416d6-bf0b-11eb-9e57-12bb97331649.png

模擬一下它的運轉過程。

最開始,輸入A為0,鎖存器中8個輸出端數據也均為0,即輸入B為0。

把輸入A設為1,由于輸入B為0,此時加法器輸出與A相同。

這時把鎖存器的時鐘置1,鎖存器電路狀態改變,輸出的值和加法器相同;再把時鐘置0,鎖存器保存加法器的結果,此時加法器的輸出不會影響鎖存器。

鎖存器同時會把加和作為加法器的輸入B傳遞給加法器,把A的值換成2,加法器會計算A和B的加和,鎖存器時鐘置1后置0,再保存加和,如此循環,就可以計算輸入A的累加和了。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7243

    瀏覽量

    91049
  • 加法器
    +關注

    關注

    6

    文章

    183

    瀏覽量

    30616
  • 鎖存器
    +關注

    關注

    8

    文章

    922

    瀏覽量

    42134
  • 觸發器
    +關注

    關注

    14

    文章

    2032

    瀏覽量

    61892

原文標題:一文了解硬件加法器、觸發器、鎖存器

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    D的基本實現

    在Verilog HDL中實現(Latch)通常涉及對硬件描述語言的基本理解,特別是關于信號如何根據控制信號的變化而保持或更新其值。
    的頭像 發表于 08-30 10:45 ?1547次閱讀

    加法器是時序邏輯電路嗎

    加法器不是時序邏輯電路 ,而是組合邏輯電路的一種。時序邏輯電路和組合邏輯電路的主要區別在于它們如何處理輸出信號。 組合邏輯電路的輸出僅依賴于當前的輸入信號,而不依賴于電路之前的狀態或輸入歷史。這
    的頭像 發表于 08-28 11:05 ?1295次閱讀

    門控rs觸發器的區別是什么

    門控RS觸發器是數字電路中常見的兩種存儲元件,它們在功能和結構上存在一些區別。 定義和功能 門控RS
    的頭像 發表于 08-28 10:22 ?1095次閱讀

    觸發器的狀態圖是一樣的嗎?為什么?

    觸發器的狀態圖并不完全相同 ,這主要是由于它們的工作原理和觸發機制存在差異。
    的頭像 發表于 08-28 10:20 ?556次閱讀

    怎么用jk觸發器變成t觸發器

    將JK觸發器變成T觸發器,主要涉及到對JK觸發器的輸入端口進行適當的連接和配置,以實現T觸發器的邏輯功能。以下是將JK觸發器轉換為T
    的頭像 發表于 08-28 09:41 ?4496次閱讀

    d觸發器和d的區別是什么

    D觸發器和D是數字電路中常用的兩種存儲元件,它們在功能和應用上有一定的區別。 定義和功能 D觸發器(Data Flip-Flop)是一
    的頭像 發表于 08-28 09:34 ?2624次閱讀

    sr和rs觸發器一樣嗎

    SR和RS觸發器在數字電路領域都扮演著重要的角色,但它們在操作方式、功能特性以及應用場景上存在著顯著的差異。 一、定義與基本結構 SR
    的頭像 發表于 08-28 09:31 ?2323次閱讀

    的結構組成及工作原理

    的結構組成 通常由以下幾個基本部分組成: 觸發器(Flip-Flop) :觸發器
    的頭像 發表于 08-28 09:09 ?1534次閱讀

    主從觸發器是一種能防止什么現象的觸發器

    主從觸發器,也被稱為主從同步觸發器或主從觸發器,是一種在數字電路設計中廣泛使用的
    的頭像 發表于 08-11 09:18 ?1033次閱讀

    電路通過什么觸發

    的電路,它可以在沒有時鐘信號的情況下保持輸出狀態不變。通常由一個或多個觸發器(Flip-Flop)組成,觸發器
    的頭像 發表于 07-23 11:31 ?872次閱讀

    觸發器的主要區別是什么

    觸發器是數字電路中的基本組件,它們在實現數字邏輯功能中起著至關重要的作用。雖然它們在功能上有很多相似之處,但它們之間還是存在一些主要區別的。本文將探討
    的頭像 發表于 07-23 10:24 ?2175次閱讀

    原態和新態的定義

    (Latch)是一種存儲單元,用于存儲一位二進制信息。在數字電路中,是一種基本的存儲
    的頭像 發表于 07-23 10:21 ?1082次閱讀

    sr觸發器的邏輯功能區別

    在數字電路中,觸發器是兩種非常重要的存儲元件,它們在邏輯功能上有著明顯的區別。
    的頭像 發表于 07-23 10:19 ?1158次閱讀

    工作時是什么觸發方式

    (Latch)是一種存儲電路,用于存儲一位二進制信息。在數字電路設計中非常常見,它可
    的頭像 發表于 07-23 10:17 ?842次閱讀

    GS8522加法器電路迷之短路

    嘗試只焊第一級的運放和周圍電阻,現象相同。電路仿真使用OPA2140代替GS8522時仿真測試結果正常。 對此我不明白的是,此電路的功能為加法器,第一級由兩個電壓跟隨組成(使用芯片GS8522
    發表于 07-05 16:39
    主站蜘蛛池模板: 99久久免费中文字幕精品 | 久操视频免费观看 | 添人人躁日日躁夜夜躁夜夜揉 | 色天天躁夜夜躁天干天干 | 国产叼嘿网站免费观看不用充会员 | 夜夜欢视频 | 午夜小视频在线 | 操你啦网站 | 中文字幕在线一区 | 国产gav成人免费播放视频 | 99热这里只有精品一区二区三区 | avtt加勒比手机版天堂网 | 成人午夜免费视频毛片 | 少妇被按摩 | 国产免费播放 | 欧美三级中文字幕hd | 日本人zzzwww色视频 | 欧美高清一区 | 手机在线电影你懂的 | 热久久国产 | 爽死你个放荡粗暴小淫视频 | 国卡一卡二卡三免费网站 | 国产成人精品亚洲 | 国产成人影院 | 一级毛片视屏 | 久久精品综合 | 欧美色视频日本 | 欧美黄色片在线播放 | 老师下面好湿好紧好滑好想要 | 午夜性视频播放免费视频 | 狠狠干2021| 国产精欧美一区二区三区 | 奇米色影院 | 免费午夜不卡毛片 | 手机在线看片你懂的 | 奇米影视777狠狠狠888不卡 | 久久va| 国产日本久久久久久久久婷婷 | 综合欧美亚洲 | 五月综合激情视频在线观看 | 视频在线观看一区二区 |