加法(addition)是計算機中最基本的運算。

Slides:



Advertisements
Similar presentations
計算機程式語言實習課.
Advertisements

改革 让教育回归原点 乐陵市实验小学 李升勇.
數位邏輯設計與實習 Ch02基本邏輯閘與布林代數.
第二章 语音 第六节 音变 轻 声1.
數位邏輯與實習 曾建勳 Week 2.
數位邏輯設計與實習 ch04 組合邏輯電路設計.
主題五 CPU Learning Lab.
題目:十六對一多工器 姓名:李國豪 學號:B
基本程式範例.
國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 霹靂燈 2018年11月7日 8051 單晶片實習---E0902霹靂燈.
計算機概論 第六章 數位邏輯 陳維魁/陳邦治 旗標出版社.
(Combinational Circuit)
數位邏輯設計與實習 Ch05序向邏輯電路.
正反器 一、循序邏輯電路 二、動作情形:用時序(timing),其次輸出( )是由外界輸入與( )所共同決定。
二、相關知識 於數位系統中之邏輯電路依運作的方式不同可區分為:組合邏輯(combinational logic)及序向邏輯(sequential logic)兩部分。組合邏輯通常都是由一些基本邏輯閘(AND、OR、NOT……)所組成的,它的輸出是由當時的輸入組合所決定的,與過去的輸入狀況無關。
二、相關知識 數位電路中最常見的邏輯運算大致可分為下列四大類型:
邏輯設計 老師:羅峻旗 助教:楊斯竣.
邏輯 Logic ATS電子部製作.
2-3 基本數位邏輯處理※.
A 簡易運算放大器電路 反相放大器(inverting amplifier) Virtual ground虛擬接地 2 1 R2 I O
使用VHDL設計—4位元加法器 通訊一甲 B 楊穎穆.
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
使用VHDL設計—4位元位移器 通訊一甲 B 楊穎穆.
數位邏輯設計與實習 Ch06 計數器與暫存器設計.
SQL Stored Procedure SQL 預存程序.
數位邏輯與實習 Week 7 邏輯閘層次的最小化 曾建勳.
計 算 機 概 論 Chapter 04 閘與電路.
數位電路的優點 電子電路有數位(digital)電路與類比(analog)電路兩大類,而數位電路較類比電路有以下的優點:
第十七章 數位邏輯簡介 計算機概論編輯小組.
二、相關知識 1. 比較器 比較器是一種組合邏輯電路,它可以用來執行一個數值大於、等於、或小於另一個值。 (1) 位元比較器
數位邏輯 第2章數字系統 2-1數目系統 2-2數目系統的互換 2-3二進制有號數的加減運算 2-4文數字碼與同位偵錯碼.
第 8 章 Combinational Logic Applications
數位邏輯與實習 Week 6 邏輯閘層次的最小化 曾建勳.
使用VHDL設計-多工器/解多工器 通訊一甲 B 楊穎穆.
Chap3 Linked List 鏈結串列.
基本電學 資訊科杜文淵老師.
Introduction to C Programming
Definition of Trace Function
使用VHDL設計 七段顯示器 通訊工程系 一年甲班 姓名 : 蘇建宇 學號 : B
第8章 順序邏輯應用實驗 8-1 計數器 8-2 跑馬燈 8-3 紅綠燈.
小學四年級數學科 8.最大公因數.
大綱:加減法的化簡 乘除法的化簡 去括號法則 蘇奕君 台灣數位學習科技股份有限公司
挑戰C++程式語言 ──第8章 進一步談字元與字串
數位邏輯設計與實習 Ch08實驗室實習.
MicroSim pspice.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
交流電路(R-L) R-L Series Circuits ATS電子部製作.
自停式向下計數器 通訊一甲 B 楊穎穆.
邏輯設計 老師:羅峻旗 助教:楊斯竣.
電子學實驗(三) --非反相運算放大器電路
程式移植.
第九章 布林代數與邏輯設計.
H5P 互動式教材 ─算術測驗 (Arithmetic Quiz)─
一、簡介 電腦硬體設計:純硬體電路(hardware)及韌體電 路(firmware)兩種方式。
例題 1. 多項式的排列 1-2 多項式及其加減法 將多項式 按下列方式排列: (1) 降冪排列:______________________ (2) 升冪排列:______________________ 排列 降冪:次數由高至低 升冪;次數由低至高.
1-1 二元一次式運算.
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
數位邏輯 第2章數字系統 2-1數目系統 2-2數目系統的互換 2-3二進制有號數的加減運算 2-4文數字碼與同位偵錯碼.
10328: Coin Toss ★★★☆☆ 題組:Problem Set Archive with Online Judge
可變式計數器 通訊一甲 B 楊穎穆.
Parasitics Extraction (PEX) 與 postsimulation(posim)
資料表示方法 資料儲存單位.
邏輯 Logic ATS電子部製作.
1-4 和角公式與差角公式 差角公式與和角公式 1 倍角公式 2 半角公式 和角公式與差角公式 page.1/23.
實習八 邏輯閘的應用 工作項目一 無穩態多諧振盪器的應用 電線接線圖 電子電路實習 P.26.
4-1 變數與函數 第4章 一次函數及其圖形.
一、 OP-Amp 放大器原理 反相放大電路 圖一.
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
11621 : Small Factors ★★☆☆☆ 題組:Problem Set Archive with Online Judge
Presentation transcript:

加法(addition)是計算機中最基本的運算。 4.1 計算機的加法 加法(addition)是計算機中最基本的運算。 減法(subtraction)、乘法(multiplication)或除法(division),都可以利用加法運算來完成。 實現加法的硬體電路稱為加法器(adder),是計算機算術的最基本元件。 進位是加法運算中最需要考量的因素之一,所有處理加法的電路,其設計重心都是放在如何解決進位的問題。

4.2 漣波進位加法器(RCA) 單一位元的加法器 由單位元全加器組成的漣波進位加法器 漣波進位加法器的時間延遲

4.2.1 單一位元的加法器 半加器(half adder,HA) : 考慮兩個輸入位元相加之總和與進位值。 1個邏輯閘的時間延遲即可完成。 4.2.1 單一位元的加法器 半加器(half adder,HA) : 考慮兩個輸入位元相加之總和與進位值。 1個邏輯閘的時間延遲即可完成。 單位元半加器的真值表與電路圖

原始全加器之和與進位邏輯式所繪出之電路圖 4.2.1 單一位元的加法器 全加器(full adder,FA): 考慮2個輸入位元。 考慮前一位數完成加法運算後所產生的進位值。 需要經過3個邏輯閘的延遲時間。 原始全加器之和與進位邏輯式所繪出之電路圖

4.2.1 單一位元的加法器 全加器(full adder,FA): 可將全加器所得到的邏輯式子進一步化簡,可產生簡化邏輯電路。 4.2.1 單一位元的加法器 全加器(full adder,FA): 可將全加器所得到的邏輯式子進一步化簡,可產生簡化邏輯電路。 簡化後電路完成一次運算只需2個邏輯閘的時間。 加法器中的最基本單位。 簡化之單位元全加器之電路

4.2 漣波進位加法器(RCA) 單一位元的加法器 由單位元全加器組成的漣波進位加法器 漣波進位加法器的時間延遲

循序加法器(sequential adder): 4.2.2 由單位元全加器組成的漣波進位加法器 循序加法器(sequential adder): 從最低位數(又稱least significant sit,或簡稱LSB)往最高位數(又稱most significant bit,或簡稱MSB)一個位數接一個位數輸入並完成加法的設計。 每次只牽涉到3個輸入位元及2個輸出位元,有多少位數,就必須做多少次運算。 只需利用一個全加器與一個1位元的進位暫存器便可完成。 完成n位元數加法需要3n個邏輯閘延遲的時間。

循序加法器(sequential adder): 4.2.2 由單位元全加器組成的漣波進位加法器 循序加法器(sequential adder): 時脈 a輸入端 b輸入端 y (carry-in) s (sum) Y (carry-out) 1 0(預設) 2 3 4 循序加法器電路與運算過程實例

平行加法器(parallel adder): 4.2.2 由單位元全加器組成的漣波進位加法器 平行加法器(parallel adder): 又稱漣波進位加法器(Ripple Carry Adder,RCA)。 計算兩個n位元數的相加結果,則需同時輸入兩數共2n個位元。 每一位元的加法均需利用一個全加器來完成,所以n個位元的加法需要用到n個全加器。

平行加法器(parallel adder): 4.2.2 由單位元全加器組成的漣波進位加法器 平行加法器(parallel adder): n 個位元的平行RCA加法器結構:

4.2 漣波進位加法器(RCA) 單一位元的加法器 由單位元全加器組成的漣波進位加法器 漣波進位加法器的時間延遲

4.2.3 漣波進位加法器的時間延遲 考量n位元的RCA: 1個邏輯閘的延遲時間完成所有成對之xi與yi的AND與XOR兩個運算。 4.2.3 漣波進位加法器的時間延遲 考量n位元的RCA: 1個邏輯閘的延遲時間完成所有成對之xi與yi的AND與XOR兩個運算。 再使用 2個邏輯閘的時間來算出進位輸出(Carry-out),並傳給較高一位。 平行漣波加法器電路的總延遲應為2n+1個邏輯閘的延遲時間。

4.3 進位前瞻加法器(CLA) 進位產生條件的分析 預先算出進位的加法器設計

4.3.1 進位產生條件的分析 進位與和的運算: 對負責第i位數的全加器FAi而言,其運算產生的總和值Si與進位值Ci+1的布林代數式為: 4.3.1 進位產生條件的分析 進位與和的運算: 對負責第i位數的全加器FAi而言,其運算產生的總和值Si與進位值Ci+1的布林代數式為: 每個位元的進位值(Ci+1)都必須由較低一位元的進位值(Ci)來決定。 RCA加法器產生延遲的主要關鍵。

4.3.1 進位產生條件的分析 進位產生與進位傳遞: 進位產生值(generate,Gi) 進位傳遞值(propagate,Pi)

4.3.1 進位產生條件的分析 進位產生與進位傳遞: 將Gi與Pi代入原始全加器的Ci+1與Si布林代數式,則可改寫為:

4.3.1 進位產生條件的分析 進位產生與進位傳遞: 使利用疊代技巧解開遞迴關係,即可達成進位前瞻的目的:

4.3.1 進位產生條件的分析 G跟P值的定義很抽象,不過其實只要發揮點想像力,把它想像成在玩推骨牌遊戲,把進位當成是骨牌倒下,就不難知道其中的奧妙之處:

4.3.1 進位產生條件的分析 進位產生(G):假使第i位數兩個輸入位元的值都是1(Gi=AiBi=1),那麼此處一定會產生(generate)進位;這就如同我們直接從這個地方把骨牌向前推倒一樣,而且緊鄰在它前方(第i+1位)只要有骨牌就會被它推倒。 進位傳遞(P)假使兩個輸入位元中剛好有一個為1(Pi=AiBi=1),那麼只要進位輸入值也是1,就能產生進位輸出;就像放了一張骨牌在這個位子上一樣,當後面的骨牌倒過來,自己就會被往前推倒!

4.3 進位前瞻加法器(CLA) 進位產生條件的分析 預先算出進位的加法器設計

4.3.2 預先算出進位的加法器設計 各單獨位元的CLA部分全加電路: 部分全加器(partially full adder,PFA) 4.3.2 預先算出進位的加法器設計 各單獨位元的CLA部分全加電路: 部分全加器(partially full adder,PFA) 可計算每一單獨位元「和」Si的局部全加器。 部分全加器電路

4.3.2 預先算出進位的加法器設計 單位長度的進位前瞻加法器: 4.3.2 預先算出進位的加法器設計 單位長度的進位前瞻加法器: 將所有位元的部分全加器電路與進位前瞻邏輯電路組合,即可構成完整的進位前瞻加法器。 4位元進位前瞻加法器電路

4.3.2 預先算出進位的加法器設計 CLA的延遲分析: 1個邏輯閘延遲後就能產生所有的Gi和Pi。 2個邏輯閘延遲後即可得到所有的Ci。 4.3.2 預先算出進位的加法器設計 CLA的延遲分析: 1個邏輯閘延遲後就能產生所有的Gi和Pi。 2個邏輯閘延遲後即可得到所有的Ci。 1個邏輯閘延遲後就能得到所有的Si。 每個進位前瞻加法器的總延遲固定為4個邏輯閘延遲時間,而與它的長度(位元數)無關。

4.4 區塊漣波進位加法器(BRCA) CLA加法器: 優點: 缺點: 改善RCA 加法器進位延遲問題。 提高了進位電路的複雜度。 進位前瞻邏輯電路卻會隨著全加器位元數的提高而越來越急遽地升高。 無法針對所需要的任意位元數設計一個完整的CLA加法器。

(Carry-Select Adder,CSA) 4.4 區塊漣波進位加法器(BRCA) 區塊漣波結構 區塊漣波加法器的延遲分析 用空間換取時間 - 進位選擇加法器 (Carry-Select Adder,CSA)

區塊漣波進位加法器(block ripple carry adder,BRCA): 4.4.1 區塊漣波結構 區塊漣波進位加法器(block ripple carry adder,BRCA): 將固定位元的基本CLA加法區塊以漣波進位的方式串接起來。 區塊漣波進位加法器電路

(Carry-Select Adder,CSA) 4.4 區塊漣波進位加法器(BRCA) 區塊漣波結構 區塊漣波加法器的延遲分析 用空間換取時間 - 進位選擇加法器 (Carry-Select Adder,CSA)

4.4.2 區塊漣波加法器的延遲分析 延遲分析: 一開始所有位元會產生1個共通邏輯閘延遲(產生Gi與Pi)。 4.4.2 區塊漣波加法器的延遲分析 延遲分析: 一開始所有位元會產生1個共通邏輯閘延遲(產生Gi與Pi)。 每個CLA加法區塊的進位運算產生2個邏輯閘延遲 。 代表最高位的CLA加法區塊完成進位運算後,還需要再多1個邏輯閘延遲來計算最高幾個位數的和。

4.4.2 區塊漣波加法器的延遲分析 漣波進位加法器電路的總延遲公式: d:漣波進位加法器延遲 m:CLA加法區塊位元 n:加法運算位元

(Carry-Select Adder,CSA) 4.4 區塊漣波進位加法器(BRCA) 區塊漣波結構 區塊漣波加法器的延遲分析 用空間換取時間 - 進位選擇加法器 (Carry-Select Adder,CSA)

4.4.3 用空間換取時間 - 進位選擇加法器(Carry-Select Adder,CSA) 進位選擇加法器: 總延遲降為 。 進位選擇加法器電路,圖中每一對CLA區塊下方的小三角形就是多工器,它們會根據區塊的進位輸入值來選擇其中一個區塊所產生的輸出值。

改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析 4.5 多層結構的快速加法器設計 改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析

4.5.1 改變思維的設計觀念 - 平行處理 平行處理: 以加法器的設計來說,當我們擁有效能極佳的4位元CLA加法器單元之後,假使要組成更高位數的加法器,例如16位元的加法器,那麼除了直接串接成具有4個4位元CLA加法器的區塊漣波進位加法器之外,也可以利用進位產生(generate)與傳遞(propagate)觀念,以更快的方法先完成所有CLA進位輸入的計算,然後再讓4個CLA同時開始計算最後的和。

改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析 4.5 多層結構的快速加法器設計 改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析

4.5.2 實現雙層結構的加法器 二維組合的觀念: 利用二維實現16位元的快速加法器。 雙層的進位前瞻加法器電路

4.5.2 實現雙層結構的加法器 進位前瞻的計算方法: 4個CLA分別為: 其進位輸入分別為: 其進位輸出則分別為: 4.5.2 實現雙層結構的加法器 進位前瞻的計算方法: 4個CLA分別為: CLA0、CLA1、CLA2、CLA3 其進位輸入分別為: C0、C4、C8、C12 其進位輸出則分別為: C4、C8、C12、C16

4.5.2 實現雙層結構的加法器 進位前瞻的計算方法:

4.5.2 實現雙層結構的加法器 進位前瞻的計算方法:

4.5.2 實現雙層結構的加法器 雙層加法器的運作流程: 步驟一:A、B兩數各16位元輸入後,各位數先分別計算Gi與Pi。 4.5.2 實現雙層結構的加法器 雙層加法器的運作流程: 步驟一:A、B兩數各16位元輸入後,各位數先分別計算Gi與Pi。 步驟二:各位元之 與 (i= 0~15)傳入4個第一級進位前瞻邏輯電路,然後分別計算出 與 (j= 0~3)。 步驟三:4組 與 I傳入第二級進位前瞻邏輯電路後,配合C0的輸入,計算出C4、C8、C12、C16。

4.5.2 實現雙層結構的加法器 步驟四:C0、C4、C8、C12分別輸入4個第一級進位前瞻邏輯電路,配合所有的Gi與Pi(i = 0~15),得到所有的Ci(i = 0~15)。 步驟五:所有Ci(i = 0~15)傳回最上層的部分全加器,計算出最終的和S。

改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析 4.5 多層結構的快速加法器設計 改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析

4.5.3 快速加法器的再延伸 - 三層的結構 三層的64位元加法器: 三層的進位前瞻加法器電路

運作流程: 4.5.3 快速加法器的再延伸 - 三層的結構 步驟一:A、B兩數所有位元輸入後,各位數先分別計算Gi與Pi。 4.5.3 快速加法器的再延伸 - 三層的結構 運作流程: 步驟一:A、B兩數所有位元輸入後,各位數先分別計算Gi與Pi。 步驟二:各位數之Gi與Pi(i= 0~63)傳入16個第一級進位前瞻邏輯電路,然後分別計算 與 (j= 0~15)。 步驟三:16組 與 傳入4個第二級進位前瞻邏輯電路後,分別計算出 與 (k= 0~3)。

4.5.3 快速加法器的再延伸 - 三層的結構 步驟四:4組 與 傳入第三級進位前瞻邏輯電路後,配合C0的輸入,計算出C16、C32、C48、C64。 步驟五:C0、C16、C32、C48分別輸入4個第二級進位前瞻邏輯電路,配合所有的 與 ,得到所有的C4j(j = 0~15)。

4.5.3 快速加法器的再延伸 - 三層的結構 步驟六:C4j(j = 0~15)分別輸入16個第一級進位前瞻邏輯電路,配合所有的Gi與Pi,得到所有的Ci(i = 0~63)。 步驟七:所有Ci(i = 0~63)傳回最上層的64個部分全加器,計算出最終的和S。

改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析 4.5 多層結構的快速加法器設計 改變思維的設計觀念 - 平行處理 實現雙層結構的加法器 快速加法器的再延伸 - 三層的結構 快速加法器的效能分析

4.5.4 快速加法器的效能分析 16位元快速加法器效能分析: 項次 運算內容 所需邏輯閘延遲 步驟一 計算Gi與Pi 1 步驟二 4.5.4 快速加法器的效能分析 16位元快速加法器效能分析: 項次 運算內容 所需邏輯閘延遲 步驟一 計算Gi與Pi 1 步驟二 計算GjI與PjI 2 步驟三 計算出C4、C8、C12、C16 步驟四 計算所有位元的Ci 步驟五 計算出最終的和S 總 和 完成16位元的加法 8

4.5.4 快速加法器的效能分析 64位元快速加法器效能分析: 項次 運算內容 所需邏輯閘延遲 步驟一 計算Gi與Pi 1 步驟二 4.5.4 快速加法器的效能分析 64位元快速加法器效能分析: 項次 運算內容 所需邏輯閘延遲 步驟一 計算Gi與Pi 1 步驟二 計算GjI與PjI 2 步驟三 計算GkII與PkII 步驟四 計算出C16、C32、C48、C64 步驟五 計算出所有的C4j,j = 0~15 步驟六 計算所有位元的Ci 步驟七 計算出最終的和S 總 和 完成64位元的加法 12

4.6 減法與加減法器設計 線路共用與加減法的選擇 溢位的處理

4.6.1 線路共用與加減法的選擇 加/減法器: 減法器整合到加法器中的設計。 原理: 4.6.1 線路共用與加減法的選擇 加/減法器: 減法器整合到加法器中的設計。 原理: 對於任一加法運算,如A+B,可視為加法運算A+B+0;而對於任一減法運算A-B,則可視為有號數A+(B)的加法運算,若將(B)用二補數表示為(~B)+1,則減法運算AB 便可視為加法運算A+(~B)+1。

4.6.1 線路共用與加減法的選擇 加/減法器電路:

4.6 減法與加減法器設計 線路共用與加減法的選擇 溢位的處理

4.6.2 溢位的處理 加減法器溢位現象的檢測規則: 在加減法過程中,若符號位元(一般即最高位元)的進位輸入值等於符號位元的進位輸出值,則沒有溢位現象的發生;若符號位元的進位輸入值不等於符號位元的進位輸出值,則溢位現象便會發生。 通常加減法器可能發生溢位的情況有以下四種:正+正、負+負、正-負、負-正。

加減法器溢位現象的檢測可利用XOR邏輯閘來完成。 4.6.2 溢位的處理 加減法器溢位現象的檢測可利用XOR邏輯閘來完成。 Cin:符號位元的進位輸入值。 Cout:進位輸出值。 Cin Cout Cin XOR Cout 1

4.6.2 溢位的處理 具有溢位檢測的加減法器電路:

4.7 二進制編碼十進位(BCD)加法器 二進制編碼十進位(BCD)表示法: 用二進位形式編碼十進位數目的每個位數。 十進制數字與所對應的二元編碼

4.7 二進制編碼十進位(BCD)加法器 二進制編碼十進位加法的問題 : 兩個二進制編碼十進位數字的加法結構是較複雜的,事實上每個位數的和可能超過9,在這個情形下,數字修正動作是必須要做的。

4.7 二進制編碼十進位(BCD)加法器 加法問題的解決辦法: 需要修正動作的兩種情形: 兩個四位元數總和超過,但是沒有進位現象產生。 兩個四位元數總和超過15,以致有進位現象產生。

4.7 二進制編碼十進位(BCD)加法器 加法問題的解決辦法: 數字修正原則: 如果 ,則 且 進位為 0; 如果 ,則 且 進位為 1;

4.7 二進制編碼十進位(BCD)加法器 建構單位數BCD加法器: 單位數BCD加法器的區塊圖

4.7 二進制編碼十進位(BCD)加法器 建構單位數BCD加法器: 一位數二進制編碼十進位加法器電路