日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二进制和电路图

發布時間:2024/3/12 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二进制和电路图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇筆記理解需要的內容:二進制的基本知識,如何用0,1表示二進制的正負,二進制的加減法等等。邏輯運算與或非;了解電路中的串聯,并聯,電阻等概念。

1.晶體管如何控制邏輯運算:

and:類似于電路中的串聯,用兩個晶體管串聯在一起,可以實現“與”的功能。 or:類似于電路中的并聯,這樣其中一個通路,就可以實現通路。即和‘或’的概念一致。 not: 類似短路和電阻的設計,圖中的表就像開關,該支路是沒有電阻的,都是輸出是在有resistor的一端。如果開關閉合,即輸入是1,則電阻端短路,不通過‘電流’,輸出為0;如果輸出為0,則開關斷開,雖然有電阻,但是也會通過,輸出為1。就實現了‘非’的功能。 總的來說,上面這些圖的開關就是晶體管。實現一個‘與’‘或’的功能要兩個晶體管。實現一個‘非’的功能要一個晶體管。

2.設計比較電路

上面我們知道了晶體管,那么實際過程中,計算機都是通過將代碼轉換為機器可以執行的二進制碼,然后機器就允許這些二進制碼就行了。那么我們電腦的電路也是只要設計可以執行二進制碼的電路。我們來簡單看一下幾個簡單的電路。 假設我們要實現一個比較兩個1位數的二進制碼(最簡單的開始),那么我們先畫個表格: a,b束輸入的,電路要實現的輸出是c.只要把輸出是1的內容,通過一個表達式表達出來。(注意這里只能用and和not來寫表達式,后面你就知道為什么)。這里的表達式如下圖所示。“'”表示非,"."表示和,“+”表示或。 因為有很多個輸出為1的需要用or來聯系在一起。所以我們先用and和not就不會亂??幢磉_式,根據表達式我們可以畫出電路圖了。 看這個電路圖,是不是實現了確認兩個1位二進制碼的是否相同的功能。 這里總共用了 2*2(and)+1*2(or)+2*1(not)=8個晶體管 根據這個例子,我們可以總結出從功能設計到畫電路圖總共有以下步驟: 1.建立起對于輸入所有的值,輸出為1的表格 2.用and和not寫出輸出全部為1表達式(sub-expression) 3.用or將所有表達式串在一起(expression) 4.根據表達式畫電路圖。 我們再進階,如果要比較兩個4位二進制的數字是否相同?那么輸入應該是8個數字,a1a2a3a4=b1b2b3b4? 首先我們將比較1位的當作一個小模塊“1-CE(1-bit compare for equality)” 只要把小模塊“1-CE”組合就可以變成"4-CE"(4-bits compare for equality),如下圖所示。 這里總共用了4*8(4個模塊)+3*2=38個晶體管 好講到這里,我們以及實現了代碼里面的比較兩個數值/字符/其他基本元素的大小(因為這些東西都可以化成二進制碼)。那么如何實現加法這種功能?

3.加法電路

首先討論一下二進制中的加減法,我們知道(不知道的話自己回去復習)二進制中的加減法需要額外的一位來表示進位。 我們先來實現以下1位數字的加法(1-bit Adder) 圖中的carry就是進位。同樣的我們先把sub-expression表達出來,但是這里要表達兩次,因為有進位。 ? 再用or的方法加起來。得到如下表達式: d = (a'?b'?c) + (a'?b?c') + (a?b'?c') + (a?b?c) e = (a'?b?c) + (a?b'?c) + (a?b?c') + (a?b?c) 根據表達式畫出圖,如下所示: 這里總共用了16*2(and)+6*2(or)+3*1(not)=47個晶體管 我們繼續進一步,如果要畫4位數的加法的電路圖呢?和上面的方法一樣,我們先將1-bit adder簡化為一個模塊 然后把模塊組合就可以實現4-bits加法。其中上面的0是上一位的進位數,是設置為0的,最下面的進位如果有更多的位數是傳給下個進位數的,這里沒有了就懸空不管。 對于32bits adder則需要輸入64個數字,總共需要的晶體管為47*32=1504個晶體管。 part3.簡化電路圖 一般來講我們得到1bit adder的表格如下圖所示: 換一種方法畫他: 就是將兩個數分開,表格上的束表示輸出的值。這樣畫我們會發現有連續幾個數都是1的位置。說明這個位置的數是和其中一個或兩個對應輸入是無關的,就可以簡化表達式。(這個方法不熟悉可以去了解一下數電里面的內容) 表達式簡化我們就可以根據簡化表達式會出簡化的電路。讀者讀到這里可以自己畫一下這個電路,和前面的比較一下晶體管數是否更少了! 參考: https://cs61a.org/

總結

以上是生活随笔為你收集整理的二进制和电路图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。