首先,需要說明電路中常用的兩個概念–組合邏輯電路和時序邏輯電路;
組合邏輯電路的輸出僅與輸入有關,當輸入發生變化時,輸出幾乎立刻發生變化;
時序邏輯電路的輸出不僅與當前輸入有關,還與電路過去的狀態有關,具有一定的記憶能力,通常由乙個時鐘驅動;
加法器是乙個簡單的運算部件;
加法器的結構由簡單到複雜分別為:半加器→全加器→8位加法器→32位加法器;
現在,通過labview按從簡單到複雜來構造乙個32位的加法器;
本篇主要構造半加器與全加器;
半加器的真值表如下圖所示,其中ia、ib為輸入;os為和,ocarry為進製輸出;
iaib
osocarry00
0001
1010
1011
01邏輯表示式為:
os=ia⊕ib;其中⊕為異或運算子;
ocarry=ia·ib;
labview的程式框圖為:
注:上圖兩個運算子為:
前面板的運算結果有:
表示ia為0,ib為1,則os為1,oc為0;
將該半加器做成乙個子函式,記為halfadd,輸入為ia、ib,輸出為os、oc;
全加器與半加器的主要區別是全加器多了乙個輸入icarry,代表低位進製;
全加器的真值表如下圖所示,其中ia、ib為輸入,icarry為進製;os為和,ocarry為本級進製;
iaib
icarry
osocarry00
0000
0110
0101
0011
0110
0101
0101
1100
1111
11用邏輯表示式表示為:
os=(ia⊕ib)⊕icarry;該表示式稱為和表示式;
ocarry=ia·ib+(ia⊕ib)·icarry;
其中可將ia·ib記為g,稱為本地進製函式,將ia⊕ib記為p,稱為進製傳遞函式;
ia⊕ib為半加器的os,ia·ib為半加器的ocarry;
labview的程式框圖為:
圖中的兩個自定義函式即為半加器函式;
其前面板的結果有:
表示當ia、icarry為1,ib為0時,os=0、ocarry=1;
也可將該全加器做成乙個子函式,即為fulladd,輸入為ia、ib和icarry,輸出為os、ocarry;
現在,通過labview的邏輯運算子完成了半加器與全加器的構建,後續的8位加法器,16位加法器等都是以全加器為基礎構建而成;
另外說明,labview是一種g語言,是一種積木式的很好玩的語言,適合直觀的構建計算機系統部件,與hdl中的網表類似,但比那個好玩,故選擇用labview來進行計算機組成實驗;
後續的內容有組成乙個最簡單的計算機,在其上覆蓋乙個多道作業系統;並完成乙個類c編譯器;如果能堅持完成上述幾個「小目標」,完成部分tcp/ip協議棧;
由於能力有限,該系列文章是主要是用於對自己學習的總結以及以後的複習,其中有許多的觀點可能有錯,望大牛指正,不勝感激!!!
也希望有共同愛好的同學一起學習;
Labview設計計算機 加法器 3
首先複習一下全加器的3個輸出和兩個輸入之間的關係 3個輸出 ia ib分別為1位資料位,icarry為1位的低位進製 2個輸出 os為1位的結果值,ocarry為1位的本級進製 關係運算為 os ia ib icarry ocarry ia ib ia ib icarry 可見,每乙個全加器的運算中...
重學計算機組成原理(十二) 加法器
下面這些閘電路的標識,你需要非常熟悉,後續的電路都是由這些閘電路組合起來的。這些基本的閘電路,是我們計算機硬體端的最基本的 積木 包含十億級別電晶體的現代cpu,都是由這樣乙個乙個的閘電路組合而成的。基礎閘電路 2個8 位 bit 數的與 或 非邏輯運算 連續擺放8個開關,代表乙個8位數 這樣的兩組...
組建一台計算機1 硬體1 單位加法器
前言 放假有一周的時間,到家也有四五天的時間了,這幾天把 code 好好的看了一遍。儘管之前也有草草翻過,但是把時候我就曾告訴自己,無論如何都是要把書中的這些東西都實現一遍的。於是說幹就幹,這幾天基本上就在搞這些東西了。這些學習成果要感謝餘富帥給我傳的軟體以及一些推薦。1.小學代數相關知識 2.初中...