• 沒有找到結果。

省面積及速度之Modulo 2n+1餘數加法器之研究與實作

N/A
N/A
Protected

Academic year: 2021

Share "省面積及速度之Modulo 2n+1餘數加法器之研究與實作"

Copied!
51
0
0

加載中.... (立即查看全文)

全文

(1)國立屏東商業技術學院 資訊工程研究所 碩士論文. 省面積及速度之 Modulo 2n+1 餘數加法器 之研究與實作 Research and Implementation of Area/Delay-Efficient Modulo 2n+1 Adders. 指導教授:莊作彬 研 究 生:邱敬捷. 博士. 中華民國一○○年七月.

(2) 摘要 在這篇論文中,我們提出三個新的低面積 Modulo 2n+1 加法器,其中一個方法 以修正架構為目的,所提出的修正的 CCS diminished-one modulo 2n+1 加法器,而 另外兩個方法以符合 Weighted modulo 2n+1 加法器設計的低面積轉換器與低面積 Diminsihed-one 加法器為目標,所提出的低面積轉換器之 Weighted modulo 2n+1 加法器與組合式 Parallel-prefix 架構之 Weighted modulo 2n+1 加法器。 修正的 CCS diminished-one modulo 2n+1 加法器是我們將先前方法中的錯誤做 修正,提出新的公式與架構。我們依原法方的設計概念所設計的修正架構,不論是 複雜度或是計算功能都與原架構類似,但我們所提出的修正架構能以更少的電路完 成。 在低面積轉換器之 Weighted modulo 2n+1 加法器的研究中,我們導出新的權重 修正公式,將轉換器中造成延遲與面積增加之電路分離出來,提出一個新的低面積 轉換器以及電路極小的固定面積修正架構,降低轉換器的電路面積與延遲,提升 Weighted modulo 2n+1 加法器的效能。 在組合式 Parallel-prefix 架構之 Weighted modulo 2n+1 加法器的研究中,我們以 CCS 架構為基礎,設計出符合 Weighted 架構的可分割低面積 Diminished-one 加法 器,能依照 PPCU 的分割位元,以各種 CCS 架構組成 Diminished-one 加法器,減少 Parallel-prefix 與 End-around carry 架構中 carry node 的使用。比較先前的方法,我們 所提出架構的 ADP 最高能節省 49%,能有效的減少 Weighted modulo 2n+1 加法器 的電路成本。. I.

(3) Abstract In this paper, we have proposed three novel low-area modulo 2n+1 adders. One corrected CCS diminished-one modulo 2n+1 adder, and the other two methods was designed to conform to weighted modulo 2n+1 adder design. These two weighted modulo adders are the low-area traslator and low-area diminished-one adder by partitioned parallel-prefix computation. In the corrected CCS research, we proposed a improved equation and structure to correct the incorrect resoult of the conventional CCS diminished-one modulo 2n+1 adder. We fallowed the general idea of the original method to design the corrected structure that have similar complexity and computation function but smaller area. In low-area translator research of weighted adder, we saperated the circuit that created delay and area from translator and proposed a improved low-area translator and a tiny corrected circuit to increase the efficiency of the translator. In partitioned parallel-prefix computation rearch, we designed a reconfigurable diminished-one adder that is based on CCS architecture. This weighted adder can be composed of CCS units according to the partitioned bits of PPCU to reduce the carry nodes of the parallel-prefix and end-around carry. Compared the previus methods, we find that our methods offer a saving of area-delay product up to 49% over the existing methods.. II.

(4) 目錄 第一章 緒論........................................................................................................................ 1 1.1 研究背景 ··············································································································· 1 1.2 研究動機與目的 ··································································································· 2 1.3 研究範圍 ··············································································································· 2 1.4 餘數系統的架構與原理 ······················································································· 3 1.4.1 轉換器················································································································ 4 1.4.2 餘數運算 ············································································································ 6 1.4.3 CRT ···················································································································· 7 第二章 文獻探討................................................................................................................ 9 2.1 Diminished-one與weighted modulo 2n+1 架構之基礎 ········································· 9 2.2 VLSI design of Diminished-one modulo 2n + 1 adder using circular carry selection[15] ········································································································ 10 2.3 A unifying approach for weighted and diminished-1 modulo 2n +1 addition[16] 13 2.4 On the use of diminished-1 adders for weighted modulo 2n +1 arithmetic components[17] ··································································································· 15 第三章 Corrections on ‘VLSI design of diminished-one modulo 2n + 1 adder using circular carry selection’[18] ............................................................................................. 18 3.1 Circular carry selection公式的修正與架構的設計············································· 18 3.2 比較與分析 ········································································································ 21 第四章 Improved area-efficient weighted modulo 2n+1 adders design with simple correction schemes[19]...................................................................................................... 22 4.1 Weighted modulo 2n+1 加法之公式推導與證明··············································· 22. III.

(5) 4.2 Weighted modulo 2n +1 加法器之架構設計······················································ 25 4.3 比較與分析 ········································································································· 27 第五章 Efficient Weighted Modulo 2n+1 Adders by Partitioned Parallel-Prefix Computation and Enhanced Circular Carry Generation[20]....................................... 30 5.1 架構的選擇與替換 ···························································································· 30 5.2 公式的結合與推導 ···························································································· 31 5.3 架構設計 ············································································································ 32 5.4 m×r組合分析 ······································································································ 33 5.5 比較與分析 ········································································································ 36 第六章 結論...................................................................................................................... 41. IV.

(6) 圖目錄 圖 1.1 餘數系統架構圖 ······································································································ 3 圖 1.2 {2n+1, 2n, 2n-1}餘數加法器 ····················································································· 5 圖 1.3 {2n+1, 2n, 2n-1}RNS converter ················································································· 5 圖 1.4 {2n+1+1, 2n+1, 2n, 2n-1}餘數系統內部架構分支 ····················································· 6 圖 2.1 Diminished-one modulo 2n+1 adder與Weighted modulo 2n+1 adder基本架構 ·· 10 圖 2.2 (1×4)-bit CCS架構與(m×r)-bit的CCS架構 ··························································· 12 圖 2.3 Unified Weighted and Diminished-one Addition架構與細部邏輯電路················· 14 圖 2.4 Weighted Diminished-one 2n + 1 加法器與 sn邏輯運算電路······························ 16 圖 3.1 修正的(1×4)-bit CCS架構 ····················································································· 20 圖 3.2 修正的(m×r)-bit CCS架構 ····················································································· 21 圖 4.1 Weighted module 2n+1 addition with correction Schemes 架構與細部邏輯電路· 26 圖 4.2 Diminished-one與correction架構與節點邏輯電路 ··············································· 27 圖 5.1 組合式PPCU與ECCG之Weighted modulo 2n+1 加法器架構與細部架構 ··········· 33 圖 5.2 2X4 PPCU 架構與 4X2 PPCU架構 ········································································ 34 圖 5.3 The percentages of savings for the number of carry nodes produced by our method over [19] (a) 8-bit case (b) 16-bit case (c) 32-bit case, and (d) 64-bit case. ··············· 36 圖 5. 4 The percentage of savings for power-delay product (PDP) produced by our method with [16] and [19] (a) 8-bit case (b) 16-bit case (c) 32-bit case, and (d) 64-bit case. (SK: Sklansky-style, BK: Brent-Kung-style)·········································· 40. V.

(7) 表目錄 表 4.1 Truth Table for Generating y'n-1, u'n-1 and FIX························································· 24 表 4.2 Delay/Area Comparisons for Various Translation Stages········································ 28 表 4.3 Delay/Area Synthesis Results for Various Modulo 2n+1 Adders (Units: um2) [Sklansky-Style Parallel-Prefix Structure Based Diminished-1 Adder] ····················· 29 表 4.4 Delay/Area Synthesis Results for Various Modulo 2n+1 Adders (Units: um2) [Brent-Kung-Style Parallel-Prefix Structure Based Diminished-1 Adder] ················· 29 表 4.5 Power Consumptions for Various Modulo 2n+1 Adders (@200 MHz, Units: μw) [BK: Brent-Kung-Style, SK: Sklansky-Style]···························································· 29. 表 5.1 The hardware and time complexities of proposed design and the methods of [19] using Sklansky style ·································································································· 35 表 5.2 The hardware and time complexities of proposed design and the methods of [19] using Brent-Kung style.····························································································· 35 表 5.3 Area/time synthesis results of our method and [16, 19]: (a) 8-bit case, (b) 16-bit case, (c) 32-bit case, and (d) 64-bit case. ··································································· 37 表 5.4 Area-delay product (ADP) savings for our method vs. [16] and [19]: (a) 8-bit case (b) 16-bit case , (c) 32-bit case, and (d) 64-bit case. ·················································· 38 表 5.5 Power consumptions for our methods vs. [16] and [19].········································· 39. VI.

(8) 第一章 緒論 1.1 研究背景 餘數系統(Residue Number System) [1]主要以中國餘數定理以及德國數學家高 斯提出的同餘(Modular Arithmetic)兩種理論做為基礎,所實現的一種餘數運算系 統。在電腦二進制的運算系統中,除了一般的二進位運算外,還有各種基底(radix) 的運算系統,例如十進位系統與餘數系統,一個餘數系統會有多個基底,而基底的 選擇,由於餘數以及電腦 2 進位的特性,一般使用接近 2n 的值,例如{2n-1, 2n, 2n +1}、{2n-1, 2n, 2n +1, 22n +1}[2]與{2n-1, 2n, 2n +1, 2n+1 +1}都是常見的模數 (Moduli)。其中 2n+1 是最常見的基底之一,也是本篇論文主要研究的方向,Modulo 2n+1 加法器的運算與架構相較於其他的餘數模數困難得多,近年有許多的研究提 出提升其效能的方法。這些不同基底的運算系統在特定的數學運算中特別的突出, 因此在二進制的系統中,常會配合不同基底的運算系統,提升運算效能。 各種基底系統有不同的表示法(Representation),在電腦系統中雖使用的是二進 制,但會因為表示法的不同,一個數值,在不同的表示法下可能有著不同的二進位 樣貌,例如十進位系統就以 Binary-Coded Decimal(BCD)來表示一個十進位的數值。 餘數系統的數值表示會因本身基底不同產生不同的表示數值,經由選擇的基底做為 模數進行餘數的運算,可以將一個巨大的整數透過一組模數,轉變成一組非常小的 整數來表示,因此一個數值在餘數系統中會以一組數值來表示。在一般二進位的運 算中,不論加法或是乘法等運算,在計算的過程中,每一級的運算都必需等待前一 級的進位值(Carry),因此當計算的數值愈大,等待進位的傳遞所需要的時間愈多, 但在餘數系統中,數值都以一組較小的數值來表示,在各種的運算中利用同餘的特 性,將一組數值同時做運算,這樣的平行運算加法、減法與乘法能夠很有效的提升 運算的效率。 現今,由於餘數系統的無進位傳遞(carry-free)特性,以及能平行運算的能力,. 1.

(9) 許多領域都廣泛的使用到餘數系統,例如數位訊號處理(DSP)、FIR filters 與通訊裝 置[3-10]。. 1.2 研究動機與目的 在這篇論文中,我們以餘數系統中的 Modulo 2n+1 加法器算術單元做為主要的 研究,由於在整個餘數系統中,常以 Modulo 2n+1 做為基底,在各種運算中,又以 加法做為各種架構的基礎,但 Modulo 2n+1 加法器不論計算速度或硬體面積都比餘 數系統中其它的基底來的大,因此可以說,只要能夠提升 Modulo 2n+1 加法器就能 提升整個餘數系統的運算速度,增加餘數系統的效率。 在現今的文獻中,不乏各種針對 Modulo 2n+1 加法器的研究[11-17],其目的都 是為了提升速度或是減少硬體成本,在我們的研究裡,以這些方法做為基礎,提出 新的方法及架構,更進一步的減少硬體成本以及提升運算速度。我們的研究成果, 將能套用在使用 Modulo 2n+1 基底的餘數系統中,並能有效的提升餘數系統的運算 速度、減少硬體面積。. 1.3 研究範圍 在這篇論文中,我們以餘數系統中的 Modulo 2n+1 加法器算術單元做為主要的 研究,Modulo 2n+1 加法器的研究大致分成兩類,分別是 Diminished-one 表示法 [11-15]與 Weighted [16-17]。由於在早期的研究中,無法在 2 進位系統中以簡單的電 路做到 Modulo 2n+1 加法器的計算,因此就有學者提出了 Diminished-one 表示法, 利用表示法本身的特性,能夠以簡單的架構做到 Modulo 2n+1 加法器的計算,但其 缺點是計算時,需將 2 進位表示法轉換成 Diminished-one 表示法,為此還需要增加 轉換的架構;為了能夠減少轉換的時間以及所需要的硬體,後來的學者就提出了 Weighted 架構,Weighted 架構的運作是以修正 2 進位表示法的輸入值,進一步改變 輸出結果,讓 Diminished-one 架構能直接用在 2 進位系統中。而不同的 Weighted 方. 2.

(10) 法所使用方式不同,但都會用改變權重的公式以及對應的硬體,來改變輸入的值, 省去表示法轉換的計算過程,直接在 2 進位表示法下運算,其優點在於,其輸出的 結果不用像 Diminished-one 表示法般還要將值轉換回 2 進位表示法,能夠直接得到 正確的結果。 為了能全面的了解與研究 Modulo 2n+1 加法器,因此我們對 Diminished-one 以 及 Weighted 這兩種法都做研究,並且在這兩種方法中,都提出更有效的方法以及架 構。. 1.4 餘數系統的架構與原理 由前面的敘述我們知道,餘數系統是一套有著獨立數字表示法以及運算的計算 系統,並且有著高結合性、平行運算以及無進位傳遞的優點。一個餘數系統包含了 三個架構,分別是轉換器、餘數運算(例如餘數加法或減法)以及 CRT(中國剩餘定 理),如圖 1.1 是一個有餘數加法及乘法的餘數系統。. RNS processing A B. RNS Arithmetic RNS adder. RNS converter. Sum(A,B) CRT. RNS multiplier. Product (A,B). 圖 1.1 餘數系統架構圖. 公式(1.1)是餘數系統的表示方程式,也是將一般數值轉換到餘數系統的公式, X = ( x1 , x2 , K xn )RNS( m ,m ,Km 1. 2. n. ). (1.1). 公式的 X 代表的是一個整數,在一般在算術系統中是以二進位來表示,一般人在看. 3.

(11) 時,為了方便辨識,也可以以十進位來表示,而在餘數系統中,數字是以一組數值 來表示的; {m1, m2, m3, …mn}是一組 n 個固定整數,當作 X 的模數,也就是這個餘 數系統所用的基底,這 n 個值都為互質(這樣能讓每個數值轉換到餘數系統中都有唯 一對應的一組數值),假設 M 為所有的 m 相乘後的積,X 則是一個 0~M-1 的隨意整 數,同時也是餘數系統所能表示的範圍,也就是說,一個餘數系統所能運算以及表 示的範圍是由本身的基底所決定的,而當我們在表示餘數系統時會以 RNS{m1, m2, m3, …mn}來表示這個餘數系統所用的基底;{x1, x2, x3, …xn}是一組 n 個整數,是用 來表示二進制系統的數值,也就是 X 在餘數系統中的所表示的數值,他的計算方式 是將 X mod mi 得到 xi,因此 X 在一個餘數系統 RNS{m1, m2, m3, …mn}都會對應到唯 一一組數值{x1, x2, x3, …xn}。. 1.4.1 轉換器 轉換器的功能是為了使餘數系統能計算二進制系統的數值,而將二進位值轉換 為餘數系統所使用的數字表示法,當二進制的值輸入到轉換器後,轉換器會依照餘 數系統的基底來進行轉換,而使用的轉換公式與架構會隨著餘數系統的基底而改變。 在這裡我們列出最常用到的三個基底{2n-1, 2n, 2n+1}的轉換公式,我們假設 A 為一個任意的二進位數值而 A=ai, ai-1, ai-2, … a0,modulo 2n 的轉換公式則為公式 (1.2),由於二進位的特性,當我們將一個二進位的數值 A 模一個 2 次方的數值 2n 時,不需要計算,只需取 A 的 0~n-1 位元的值就為結果;modulo 2n-1 與 modulo 2n+1 的轉換公式分別為公式(1.3)與(1.4),其中 A div 2n 的計算,由於二進位的特性,也就 等於是 ai, ai-1, ai-2, … an,也不需計算就能得到。 A mod 2n = an-1, an-2, … a0. (1.2). A mod (2n - 1) = (A mod 2n + A div 2n) mod (2n - 1). (1.3). 4.

(12) A mod (2n + 1) = (A mod 2n - A div 2n) mod (2n + 1). (1.4). 所以基底為{2n-1, 2n, 2n+1}的轉換器架構設計,只需用簡單的加法與減法就能 做到,圖 1.2 是基底為{2n+1, 2n, 2n-1}的餘數加法器架構,由圖 1.2 可以看到,轉換 器與餘數加法器間,依照各個基底所轉換與傳遞的數值,圖 1.3 為餘數轉換器的架 構,其中 2n+1 與 2n-1 這兩個輸出值要是仍然大於 2n+1 與 2n-1 就需再進行一次計算, 直到數值小於 2n+1 與 2n-1。. A 2n +1 , B 2n +1. S 2n +1. A 2 n , B 2n. S 2n. S 2n −1. A 2n −1 , B 2n −1. 圖 1.2 {2n+1, 2n, 2n-1}餘數加法器. A 2n +1. A 2n −1. 圖1.3 {2n+1, 2n, 2n-1}RNS converter. 5. A 2n.

(13) 1.4.2 餘數運算 餘數運算為餘數系統的計算核心,一般會有餘數加法器、餘數減法器與餘數乘 法器,主要負責將轉換器傳遞過來的值分別進行餘數加法、減法或是乘法的運算, 這幾個餘數運算架構,都包含了各個種對應基底的餘數運算,例如在圖 1.4 的餘數 系統中所用的餘數乘法器,就包含了 modulo 2n+1+1、 2n+1、2n 與 2n-1 四種基底的 乘法器。 X. RNS multiplier Modulo 2n+1+1 RNS processing Modulo 2n+1. RNS adder. Y. Modulo partial-product generator PPn-1. PP0. Modulo carry-save adder Modulo 2n. PC. RNS multiplier. PS Modulo 2n-1 adder. n. Modulo 2 -1. P. 圖 1.4 {2n+1+1, 2n+1, 2n, 2n-1}餘數系統內部架構分支. 在餘數運算中,使用的是同餘的特性,如公式(1.5)與(1.6)所表示的餘數加法與 餘數乘法,而當我們將 X 與 P 轉換為餘數系統的表示法後(也就是公式(1.1)的模式) 就能得到公式(1.7)與(1.8),這兩個公式就代表了餘數系統中所有的基底以及餘數的 運算。 X=A±B mod M. (1.5). P=A.B mod M. (1.6). xi=ai±bi mod mi. (1.7). 6.

(14) pi=ai.bi mod mi. (1.8). 例如,我們能經由公式(1.7)與(1.8),來得到常用的餘數系統{2n+1, 2n, 2n-1}所使 用的餘數加減法與乘法公式,也就是公式(1.9)與(1.10)。 從公式(1.7)與(1.8)中可以得知,當餘數系統的兩個集合運算時(也就是 ai 跟 bi), 每一個底基值都是平行運算的,這樣的平行運算方式,使得餘數系統在與一般的二 進位運算系統比較時,有著非常接近的硬體面積,卻能有更快速度的原因。 (A ± B) mod 2n±1 = (A mod (2n±1) ± B mod (2n±1)) mod 2n (A.B) mod 2n±1 = (A mod (2n±1).B mod (2n±1)) mod 2n. (1.9). (1.10). 餘數加法器的架構設計,在二到五章會有詳細的描述,餘數乘法器的設計,則 是以 CSA(carry save adder)架構與一個相同基底的餘數加法器組合而成如圖 1.4 中的 modulo 2n-1 乘法器。. 1.4.3 CRT 當兩個數值在餘數系統中完成運算後,必須將餘數表示法的值轉換回二進制表 示法,而 CRT 主要的功能是將餘數系統中所使用的數值表示法轉換為二進制表示 法。CRT 的公式是由餘數系統的表示式(也就是公式(1.1))所用的變數來表示的,公 式(1.1)分別表示著二進制數值(等號左式)與餘數系統的表示數值(等號右式),在 1.4.1 節中我們討論的是如何將等號左式轉為右式,而 CRT 的功能剛好相反,公式(1.11) 為 CRT 的轉換公式。 X = x1a1m2 m3 + x2 a2 m1m3 + x3 a3 m1m2. (1.11). m1m2 m3. 在公式(1.11)中有三個未知變數 a1、a2 與 a3 必須計算才能得到 X,這三個變數. 7.

(15) 的計算為公式(1.12),而公式(1.12)的計算方式,是將數值從 1 開始遞增帶入 ai,直 到找到符合等式的數值為止,並且從公式可以得知,當餘數系統的基底改變時,ai 的值就會隨著改變,因此只要使用相同的基底,ai 的值就會相同。. a1m2 m3 m = 1 1. a2 m1m3 m = 1 2. a3m1m2 m3 = 1. (1.12). CRT 架構的設計會因為餘數系統基底的不同而有變化,但從公式(1.11)中可以 發現,其架構主要還是以乘法、加法以及位移組成。由於餘數系統的設計,mi 的值 是預先就決定好的,因此為 mi 固定的值,而 ai 也可以事先求得,因此只有 xi 的部分 是會改變的,這使的一個使用三個基底的 CRT 架構,只需要三個乘法器以及兩個加 法器就能做到。. 8.

(16) 第二章 文獻探討 2.1 Diminished-one 與 weighted modulo 2n+1 架構之基礎 運算 X mod 2n+1 最直接的方法,從公式(1.5)知道可以用除法以 X 除 2n+1 得到餘 數,或是從公式(1.4)得知能以連續的減法將 X 減掉 2n+1 直到 X 小於 2n+1 為止來得 到餘數,但從數位邏輯電路來看,一個除法器需要很大的硬體成本,而用減法器則 需要額外的電路來判斷 X 是否小於 2n+1。為了能以簡單的架構運算 modulo 2n+1 加 法器,就有學者提出 Diminished-one 表示法,實做出了 modulo 2n+1 加法器。 公式(2.1)是 Diminished-one 加法器主要的公式,大多數研究 Diminished-one 的 學者都是以此公式為基礎來推導出新的方程式以及新的架構。 S * = S − 1 2n +1 = A + B − 1 2n +1 = A* + B*. 2n. + c n −1. (2.1). 其中 A 與 B 的範圍為 0 到 2n,A*=A-1=a*n-1…a*0,B*=B-1=b*n-1…b*0,cn −1 是 A*+B* 的 carry out。由公式來可以看出,計算 A+B mod 2n+1 時,必需先將 A 跟 B 轉成 A* 與 B*,才以 A*與 B*,輸入到 Diminished-one 的 Modulo 2n+1 加法器計算出 S*, 最後在將 S*轉回 S 輸出到 2 進位系統。對應到 A* + B*. 2n. + c n −1 的架構可以用任一種. 的 parallel-prefix computation unit (PPCU)與 end-around carry (EAC)完成如圖 2.1(a), 而這也是組成 Diminished-one modulo 2n+1 adder 的基本架構。PPCU 的功能在於將 輸入的 A*跟 B*做相加得到每個 bit 的 ci 跟 si 也就是 carry 跟 sum,而 EAC 會將 carry 最高的 bit 也就是 cn-1 做反向後當作 carry in 相加來得到 S*。 為了能省去使用 Diminished-one 表示法的轉換,有學者提出了 Weighted modulo 2n+1 加法器,由於 Weighted 加法是將輸入值做修正來改正 Diminished-one 在輸出 時的誤差,因此 Weighted 較沒有固定的公式,但通常會以 2 進位輸入值加上特定 修正值,或是以輸入值 A 跟 B 本身不同的 bit 當作權重值來修正 A 跟 B,這兩種類 型來做研究。由 Weighted 公式的特性,可以對應出其架構的流程如圖 2.1(b),將輸. 9.

(17) 入的 A 跟 B 值做修正,得到修正後的值 Y 跟 U,這修正後的值經由 Diminished-one 的運算,能直接等到 S 的結果。. Diminished-one representation A * + B * +1 2n +1 = A * + B * + cout. Parallel-prefix. 2n. Y + U + 1 2n +1 = Y + U + cout. Diminishedone adder. Inverted endaround carry S* Binary representation. 2n. S. S. (a). (b). 圖 2.1 Diminished-one modulo 2n+1 adder 與 Weighted modulo 2n+1 adder 基本架構. 2.2 VLSI design of Diminished-one modulo 2n + 1 adder using circular carry selection[15] 這篇論文是用他們所提出的 Circular carry selection (CCS)對 Diminished-one 方程 式與架構做改良。他們以 carry look ahead (CLA)與 MUX 作為 carry 跟 sum 的運算以 及結果的選擇,取代一般 Diminished-one 架構中的 PPCU 與 EAC 架構。一個 n-bit CCS 架構,可以用各種位元大小不同的區塊組成,每個區塊的運算互不影響,之間無需 等待進位的傳遞。同時計算 carry in 為 1 與 0 的架構設計,節省了 carry 的等待,而 且只需增加少許的硬體成本。 假設 A 跟 B 的範圍為 0 到 2n,A*=A-1=a*n-1…a*0,B*=B-1=b*n-1…b*0,g*=a*i. b*i,p*=a*i♁b*i,並表示成以下公式: cn −1 = g n*−1 + ∑ j = 0. n−2. (∏. n −1 k = j +1. ). pk* g *j. (2.2). 10.

(18) (. si* = gi*−1 + ∑ j =0 i−2. (∏. i −1 k = j +1. ). ). pk* g *j + cn −1 ∏ k = 0 pk* ⊕ pi* i −1. (2.3). 公式(2.3)為 CLA 方程式,將公式中的 cn −1,分別以 0 跟 1 代入,可以得到以下公 式: i − 2 ⎛ i −1 ⎧ ⎛⎛ ⎞ i −1 ⎞ ⎞ ⎪ si*,1 = ⎜ ⎜ g i*−1 + ∑ ⎜ ∏ pk* ⎟ g *j ⎟ ⊕ pi* ⎟ + ∏ pk* ⊕ pi* , if c n -1 = 0 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎪⎪ j = 0 ⎝ k = j +1 ⎠ ⎠ ⎝⎝ ⎠ k =0 si* = ⎨ i − 2 ⎛ i −1 ⎞ *⎞ ⎪ * ⎛ * * * if c n -1 = 1 ⎪ si ,0 = ⎜⎜ g i −1 + ∑ ⎜⎜ ∏ pk ⎟⎟ g j ⎟⎟ ⊕ pi , j = 0 ⎝ k = j +1 ⎠ ⎠ ⎝ ⎩⎪. (2.4). 公式(2.4)是由 CLA 架構與 MUX 架構組成,如圖 2.2(a)表示。 假設 n=m×r,n 為 bit 數,A*t=a*(t+1)r-1…a*tr+1a*tr,B*t=b*(t+1)r-1…b*tr+1b*tr,t 從 0 到 m-1。S*t=s*(t+1)r-1…s*tr+1s*tr= A*t+ B*t+k*t-1,k*t-1 為 carry out。因此 n-bit 的架構 會拆成 m 個 r-bit 組成的架構,並在 k*t-1=0 時 sums S*t,0=S*t,在 k*t-1=1 時 sums S*t,1=S*t。在 k*t-1 的計算部份,當 t=0 時 k*-1=cn-1,當 t 從 1 到 m-1 時 k*t-1 用以下公 式表示: t −1 t − 2 ⎛ t −1 ⎞ * * kt −1 = Gt −1 + ∑ ⎜ ∏ Pl* ⎟G*j + c n −1 ∏ Pt* j = 0 ⎝⎜ t = j +1 ⎟⎠ t =0 ⎧ ⎞ t −1 t − 2 ⎛ t −1 ⎪k * =Gt*−1 + ∑ ⎜ ∏ Pl* ⎟G*j + ∏ Pt* , if cn −1 = 0 1,1 t − ⎪ j = 0 ⎜⎝ t = j +1 ⎟⎠ t =0 ⎪ =⎨ ⎞ ⎪ t − 2 ⎛ t −1 ⎪ kt*−1,0 =Gt*−1 + ∑ ⎜ ∏ Pl* ⎟G*j , if cn −1 =1 ⎜ t = j +1 ⎟ ⎪ 0 j = ⎝ ⎠ ⎩ *. (2.5) *. 公式(2.5)是由 CCG 架構運算,其中 Gt = g tr + ( r − 1) + *. Pt =. ∏. tr + ( r − 1) k = tr. ∑. tr + ( r − 2 ) j = tr. (∏. tr + ( r − 1) k = j +1. *. ). *. pk g j ,. *. pk 。並用 P*t 與 G*t 將 carry-out 設為以下公式,並由 CCG 架構運算:. (2.6) 圖 2.2(b)為完整的 CCS 架構,由 m 個 r-bit 的 DS-CLA 與 MUX 組成,MUX 的 選擇是由每個 DS-CLA 的 G*與 P*經由 CCG 架構運算得到 carry-out 來做決定。. 11.

(19) (a). (b) 圖 2.2 (1×4)-bit CCS 架構與(m×r)-bit 的 CCS 架構. 相較於一般 parallel-prefix 架構,這篇論文的架構組合的方式多,較於複雜,每. 12.

(20) 種組合的速度與硬體大小都不同,所用的硬體電路也不同於一般的 Diminished-one modulo 2n + 1 adder 架構,是一種新型態的架構,具有進一步發展的潛力。 我們發現這篇論文有二項可進行的研究。 第一項是,這個方法的公式在我們的推導後發現有誤,造成某些數值的計算結 果錯誤,因此我們對此方法做研究並修正,在修正的過程中,找出能更進一步提升 此架構效能的方法。第二項可進行的研究是,在這篇論文中並沒有提到哪種組合的 架構能得到最快的運算速度或是最小的硬體面積,所以我們組合的方面著手進行研 究,了解各種組合與架構速度與硬體面積的關係,以及速度與面積變動的原因,提 出新的架構,加快運算的速度,減少硬體的面積,並能依照硬體面積或是速度來選 擇所想要的架構組合方式。這兩項研究的內容與成果,分別寫在第三章與第五章中。. 2.3 A unifying approach for weighted and diminished-1 modulo 2n +1 addition[16] 這是個 Weighted modulo 2n + 1 加法器,在這篇論文中,他們針對轉換器做改 良,他們提出一種新的 Diminished-one 公式,以不同的權重改變了原有的公式,修 正了 Diminished-one 計算的結果。他們將原來的 Diminished-one 公式經過複雜的推 導得新的表示公式,而這公式能以很簡單的對應架構完成。經由這個公式,權重值 的修正,轉換器輸出的修正值可以直接以任意一種 Diminished-one 加法器計算。 假設 A 跟 B 為兩個(n+1)位元的輸入,而 A 跟 B 的值為 0 到 2n ,並且 A=anan-1…a0=an×2n+An ,B=bnbn-1…b0 =bn×2n+Bn,An 跟 Bn 為 2 個 n-bit 的數,以下 為他們所定義的公式: A + B 2n +1 = An + Bn + D + 1 2n +1 + 1. 2n +1. = Y + U + 1 2n +1. (2.7). 公式(2.7)中 D = 2n − 4 + 2c n +1 + s n ,D 計算後等同於 1111...c n +1 s n 的 2 進位值, D 的 第 1 個 位 元 cn+1= an•bn , 第 0 個 位 元 sn=an⊕bn , Y 跟 U 的 值 分 別 為 及 U = un −1un − 2 ...u0 的兩個單位向量,Y 跟 U 計算的值為 carry Y=y y ... y y n − 2 n − 3 0 n −1. 13.

(21) 跟 sum 並由 An、Bn 與 D 使用 Carry-save adder 架構計算得到。由於 D 從 22 到 2n-1 位 元都為 1,因此可以將架構做化簡,只需用 OR 跟 XNOR 來計算每個位元的 carry 跟 sum 如圖 2.3(c)。第 0 位元與第 1 位元的架構在圖 2.3(b),整體架構在圖 2.3(a)。. (a). (b) 圖 2.3 Unified Weighted and Diminished-one Addition 架構與細部邏輯電路. 在我們的研究中發現,由於以 A 跟 B 的第 n 個位元做為修正值,在轉換器的 第 0 與 1 位元的 FA 需計算額外的輸入值,產生無法簡化的問題,這使得轉換器無 法以統一的架構完成,造成第 0 與第 1 位元的最長路徑的增加,降低了運算的速度。 因此,我們以此架構做為研究,目的是為了把整個轉換器的架構統一,為此我們將 公式重新組合,把造成架構不一致的電路分離出來,提出一種新的轉換架構,而研. 14.

(22) 究的內容與成果在第四章中會詳細的提到。. 2.4 On the use of diminished-1 adders for weighted modulo 2n +1 arithmetic components[17] 這篇論文所提出關於 Weighted modulo 2n + 1 加法器的研究,也是對轉換架構做 改良的方法。改良的方式,是對 Diminished-one 2n + 1 加法器公式增加修正值,這 個修正值的增加,會使的 Diminished-one 2n + 1 加法器所計算出的結果為 S 而非 S*。 公式(2.8)為基本的 Modulo 2n + 1 加法器公式, ⎧ A + B − (2n + 1), if A + B ≥ 2n + 1 A + B 2n +1 = ⎨ otherwise. ⎩ A + B,. (2.8). 而由公式(2.8)可以推導為公式(2.9)。 ⎧( A + B − 1) − 2n , if A + B ≥ 2n A + B 2n +1 = ⎨ ⎩( A + B − 1) + 1, otherwise.. (2.9). 由於餘數架構的關係,在運算上會 modulo 2n,因此實際上並不需要計算-2n, 可以直接將公式(2.9)的 2n 去掉,並假設 A+B-1=A '+B '得到公式(2.10)。 A + B 2n +1. 2n. ⎧( A' + B'), if A + B ≥ 2n =⎨ ⎩( A' + B') + 1, otherwise.. (2.10). 接著,將公式(2.10)看成,當 A '+B '小於 2n 時,也就是 carry 為 0 時,做加 1 的 動作,就能將公式改寫成公式(2.11)。 A + B 2n +1. 2n. = A' + B' 2n + cout. (2.11). 由於只有當 A+B=2n 時,sn 才會為 1,因此只要將所有的 propagation 做 AND, 就 能 得 到 sn , 圖 2.4 是 此 方 法 的 整 體 架 構 , 由 一 個 修 正 的 轉 換 器 與 任 一 種 Diminished-one 加法器架構完成 Weighted Diminished-one 2n + 1 加法器。. 15.

(23) an-1 bn-1. an-2 bn-2. …. a3 b3. a2 b2. a1 b1. a0 b0. Translator to A' and B' such that A'+B'=A+B-1 a'n-1 b'n-1. a'n-2 b'n-2. …. a'3 b'3. a'2 b'2. a'1 b'1. a'0 b'0. Diminished-1 Adder. sn. sn-1. sn-2. …. s3. s2. s1. s0. (a). (b) 圖 2.4 Weighted Diminished-one 2n + 1 加法器與 sn 邏輯運算電路. 這篇論文將 Diminished-one modulo 2n + 1 加法器公式重新組合,減少了表示法 轉變的步驟,而轉換器也以統一的架構完成,在速度上與面積都有很好的提升。但 由於這個方法為了對應 Diminished-one 2n + 1 加法器的輸入格式,因此在設計上, 他們的輸入值 A 跟 B 的範圍只有 0 到 2n-1,相較與其他 Weighted 或是 Diminished-one 方法 0 到 2n 的範圍少了 1 個 bit。由於 Modulo 2n + 1 加法器的輸出範圍都為 0 到 2n,. 16.

(24) 如果輸入只有 0 到 2n-1,這或許會造成 Weighted modulo 2n + 1 加法器無法在餘數系 統中進行連續的計算。 由於大多的 Weighted modulo 2n + 1 加法器轉換器都無法做到統一的架構,因此 這篇論文就成為我們重要的研究之一,目的是了解為何能以統一的架構完成轉換 器,並且解決輸入範圍不足的原因。研究內容與成果我們提出在第四章中。. 17.

(25) 第三章 Corrections on ‘VLSI design of diminished-one modulo 2n + 1 adder using circular carry selection’[18] 3.1 Circular carry selection 公式的修正與架構的設計 在第二章的 2.2 所介紹的文獻[15]中提到,我們發現論文[15]所提出的公式與架 構,在某些數值的計算中會出現錯誤的結果,因此在這節中,我們會以詳細的公式 推導,找出問題所在,並且提出新的公式與架構,修正原先架構所出現的錯誤。 我們在實做出[15]所提出的架構並驗證結果時,代入所有可能的輸入值,發現 並非所有的結果都為正確定,因此我們將有問題的情況都列出,發現只有當 cn-1=1 時,輸出的結果才正確,而當 cn-1=0,輸出結果通常會少 1 或完全錯誤。 由於架構的設計與公式是互相關聯的,因此我們將論文[15]中所提出的公式都 代入數值測試,發現公式(2.4)的驗證結果也出現跟架構相同的錯誤,也就是當 cn-1=0 時,結果就會發生錯誤。例如我們假設 n=4、A=6、B=3,A*=5=01012、B*=2=00102, carry propagation p*與 carry generation g*別分為 p*=0111 與 g*=0000,將數值帶入公 式(2.4)會得到以下計算:. * s3,1 = ( g 2* + p2* g1* + p2* p1* g 0* ) ⊕ p3* + ( p2* p1* p0* ⊕ p3* ) = 0 + 1 = 1 * s2,1 = ( g1* + p1* g 0* ) ⊕ p2* + ( p1* p0* ⊕ p2* ) = 1 + 0 = 1 * s1,1 = ( g 0* ⊕ p1* ) + ( p0* ⊕ p1* ) = 1 + 0 = 1 * s0,1 = p0* = 1. s* = 1111. 然而正確的公式計算應該為 S* = A* + B* + cn−1 =(5+2+1)mod(16)=8=10002,因此可 2n. 以證明公式(2.4)與 Diminished-one modulo 2n+1 加法是不相等的。由於公式(2.4)是以 cn-1 來做運算結果的選擇,所以可以確定在 cn-1=0 的部分公式是有問題的,而公式(2.4) 是由公式(2.3)將原來的一個公式分成兩個,並以 cn-1 選擇,而我們在驗證公式時, 公式(2.3)是無誤的,因此可以確定錯誤是從公式(2.3)推導至(2.4)時發生的。為了找. 18.

(26) 出原因,我們嘗試推導出他們將公式(2.3)推導至(2.4)之間的可能公式。 我們認為他們在進行公式(2.3)的推導時,將♁pi* 的運算以分配律(Distributive law)的運算方式,讓 pi*對式子中的值做 XOR 的運算得到公式(3.1), i −1 i − 2 ⎛ i −1 ⎛⎛ ⎞ ⎛ ⎞ ⎞ ⎞ si* = ⎜ ⎜ gi*−1 + ∑ ⎜ ∏ pk* ⎟ g *j ⎟ ⊕ pi* ⎟ + ⎜ cn −1 ∏ pk* ⊕ pi* ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ j = 0 ⎝ ⎠ k = j + k = 1 0 ⎝ ⎠ ⎠ ⎝⎝ ⎠. (3.1). 接著再導出 cn-1=0 與 1 的公式將(3.1)推導為公式(2.4),但實際上,XOR 是沒有分配 律的運算方式,假設 X=1、Y=0、Z=1,而(X+Y)⊕Z=0 但是(X⊕Z)+(Y⊕Z)=1,因此可 以證明公式(2.3)是沒辦法等於公式(2.4)的。 在了解公式的問題後,我們以正確的公式(2.3)為基礎,並以原架構使用多功器 的理念為目標,重新推導公式。為了符合多功器的設計,我們將公式(2.3)分別以 cn-1=0 與 cn-1=1 代入,得到以下修正的公式: i −1 i − 2 ⎛ i −1 ⎧ ⎛ ⎞ ⎞ ⎪ si*,1 = ⎜ gi*−1 + ∑ ⎜⎜ ∏ pk* ⎟⎟ g *j + ∏ pk* ⎟ ⊕ pi* , ⎜ ⎟ ⎪ j = 0 ⎝ k = j +1 k =0 ⎠ ⎝ ⎠ si* = ⎨ i 1 − i 2 − ⎛ ⎞ *⎞ ⎪ * ⎛ * * * ⎪ si ,0 = ⎜⎜ gi −1 + ∑ ⎜⎜ ∏ pk ⎟⎟ g j ⎟⎟ ⊕ pi , j = 0 ⎝ k = j +1 ⎠ ⎠ ⎝ ⎩. if c n -1 = 0. (3.2) if cn -1 = 1. 為了驗證修正的公式(3.2)是否正確,我們將相同的數值代入,假設 n=4、A=6、 B=3,A*=5=01012、B*=2=00102,carry propagation p*與 carry generation g*別分為 p*=0111 與 g*=0000,將數值帶入修正後的公式(3.2)會得到以下計算: * s3,1 = ( g 2* + p2* g1* + p2* p1* g 0* + p2* p1* p0* ) ⊕ p3* = 1 ⊕ 0 = 1 * s2,1 = ( g1* + p1* g 0* + p1* p0* ) ⊕ p2* = 1 ⊕ 1 = 0 * s1,1 = ( g 0* + p0* ) ⊕ p1* = 1 ⊕ 1 = 0 * s0,1 = p0* = 0. s* = 1000 由計算的結果我們可以證明,公式(2.3) 與修正的公式(3.2)是相等的,而且公式 (3.2)也符合原架構的設計理念,同樣使用多功器架構。 我們以公式(3.2)以及原架構做為設計基礎,設計出對應至正確公式的架構,圖. 19.

(27) 3.1 可以看到我們所修改的部分。修正後完整的 CCS 架構在圖 3.2 可以看到。相較 於原架構,我們減少並修正 pi*做 XOR 運算的位置,並且簡化了第一個 bit 的設計以 NOT 取代了 OR 的運算。架構修正後,新的架構速度比原架構更快,硬體面積也比 原架構更小。. b3*a3*. b2*a2*. b1*a1*. b0*a0*. p0* p1*. p2*. c3 p2*. p3*. s 2*. s 3*. p1*. s1*. 圖 3.1 修正的(1×4)-bit CCS 架構. 20. s 0*.

(28) {G0* P0* } * * 1 1. {G P } {Gm* −1 Pm*−1 }. k m* − 2. k 0* k−*1. Bm* −1 Am* −1. S m* −1,1. B1* A1*. S m* −1, 0. S1*,1. S1*, 0. P1*. Pm*−1. S m* −1. S1*. B 0* A0*. S 0*,1. S 0*, 0. P0*. S 0*. 圖 3.2 修正的(m×r)-bit CCS 架構. 3.2 比較與分析 我們將論文[15]所提出的公式與架構做修正,改善了原先錯誤的部分,與原架 構相比,我們在運算選擇的部分減少了 n+1 個 XOR 的使用,簡化了第 1 個 bit 的設 計以 NOT 取代了 OR。由於修正後的架構與原架構並沒有非常大的差異,因此保留 了能以 n×m 組合架構的特色,且我們所提出架構的硬體面積,由於 XOR 使用的減 少,也比原架構更小。. 21.

(29) 第四章 Improved area-efficient weighted modulo 2n+1 adders design with simple correction schemes[19] 在這個章節所提出的方法為 Weighted modulo 2n+1 加法器,研究的方向以轉換 器為主,以轉換器來修正輸入值 A 跟 B,減少 Diminished-one 表示法的轉換,而這 個方法能使用任何一種 Diminished-one modulo 2n+1 加法器做為基礎架構。在第二章 的 2.3 與 2.4 我們分別介紹了[16]與[17]兩種不同的 Weighted modulo 2n+1 加法器, 兩者互相比較會得知,[16]的轉換器構無法固定統一,因此在面積與速度都比[17] 來的大,但由於[17]所提出的方法,輸入範圍只能從 0 到 2n-1,這會使用輸入與輸 出的範圍不同,如果在餘數系統中,可能就無法連續的進行運算,因此我們在這章 節中,提出一種新的轉換器架構。我們所提出的方法,將[16]與[17]的轉換器設計以 及 modulo 2n+1 加法公式做為基礎公式,改變公式的權重,目的是要設計出輸入範 圍為 0 到 2n-1 的轉換器,讓 Weighted modulo 2n+1 加法器能有相同的輸入與輸入範 圍,並且減少轉換器的硬體面積與計算速度。. 4.1 Weighted modulo 2n+1 加法之公式推導與證明 從 2.3 的研究中,我們可以發現公式(2.7)中的變數 D 為轉換器的修正值,它會 將原先的輸入值 A 跟 B 做修正。從 2.3 中我們得知 D 等於 1111...c n +1 s n ,由於除了 第 0 與第 1 位元的值不同外,其它位元的修正值都固定為 1,而這個部分也造成轉 換器無法使用統一架構。為了能將轉換器以統一的架構設計,我們就必需將非固定 的數值分離出來。 我們假設 A 與 B 的範圍為 0 到 2n,A=anan-1…a0,B=bnbn-1…b0,並將數值代入 基本的 Modulo 2n + 1 加法器公式中就能得到公式(4.1),. (. ). ⎧⎪ A+B - 2n +1 , A+B 2n +1 = ⎨ ⎪⎩ A+B,. if(A+B )>2n. (4.1). otherwise. 而公式(4.1)可以推導成公式(4.2)。. 22.

(30) A+B 2n +1 2n. (. ). ⎧ A+B- 2n +1 n , if(A+B)>2n ⎪ 2 =⎨ n n ⎪⎩ A+B − (2 +1) 2n + (2 +1) 2n , otherwise. (4.2). 公式(4.2)中的 2n + 1 n =1,因此公式(4.2)也等於公式(4.3)。 2. A+B 2n +1 2n. (. ). ⎧ A+B- 2n +1 n , if(A+B)>2n ⎪ 2 =⎨ A+B − (2n +1) n + 1, otherwise ⎩⎪ 2. (4.3). 由公式(4.3)我們可以發現 Weighted modulo 2n+1 加法公式可以推導成減去(2n+1) 的運算,也就是加上一個 011…111 的修正值,接著只要將 A、B 以及修正值-(2n+1) 的運算結果經由 Diminished-one 加法器運算,就能得到最後的計算結果 S。 為了能將公式(4.3)應用在 Diminished-one 加法器中,我們必需將 A、B 以及修正 值-(2n+1)三個數值轉換成 2 個數值,才能符合 Diminished-one 加法器的 2 個輸入值。 假設轉換後的值為 Y'與 U',我們讓 Y'與 U'等於 A、B 與-(2n+1)三個數相加後的 carry 跟 sum,Y ' = y 'n−2 y 'n−3 ... y '0 y 'n−1 ,U ' = u 'n −1 u 'n − 2 ...u '0 ,為了能將公式(4.3)推導為 Y'與 U', 我們將公式(4.3)展開與推導:. (. )2. A + B − 2n + 1 n−2. (. n. ). = ∑ 2i × ( ai + bi ) + 2n−1 × ( 2an + 2bn + an−1 + bn−1 ) + 011...11 123 i =0. n−2. n bits 2n. (. ). = ∑ 2i × ( ai + bi + 1) + 2n −1 × ( 2an + 2bn + an−1 + bn−1 + 1) i =0. n−2. ( (. = ∑ 2i × 2 yi' + ui' i =0. ) ) + 2n−1 × ( 2an + 2bn + an−1 + bn−1 + 1). 2n. 2n. 展開公式中的 i 為 0 到 n-2,y'i 與 u'i 可以分別展開成 ai ∨ bi 與 ai ⊕ bi ( ∨ 為 OR 的邏輯 運算)。但由這展開公式可以發現,Y'與 U'為 n 位元,但我們還未把 y'n-1 與 u'n-1 這兩 個值導出來,因為 y'n-1 與 u'n-1 代表著 carry 與 sum,而 y'n-1 與 u'n-1 並不足以完整的表 示 2an+2bn+an-1+bn-1+1 所算出的 carry 與 sum 的結果。為能完整的表示所有的情況,. 23.

(31) 我們找出所有可能的輸入值,並發現,由於輸入值 A 與 B 的範圍為 0 到 2n,因此 an 與 an-1 不會有同時為 1 的情況出現,bn 與 bn-1 也相同,這表示 2an+2bn+an-1+bn-1+1 的最大值為 5(當 an=bn=1 時),需以 3 個位元來表示所有的情況,因此我們增加了一 個位元 FIX,當 FIX 為 1 時就表示了無法完整表示的情況發生。增加的 FIX 與 y'n-1 跟 u'n-1 兩個位元配合就能完整的表示出 2an+2bn+an-1+bn-1+1 的 carry 與 sum。表 4.1 是我們將所有可能的輸入值以及結果所列出的真值表。因為輸入的範圍的關係,不 是所有組合的值都會出現,這表示我們可以將這部分的真值表做化簡,因此在表 4.1 中的╳為 don’t care,有*的表示無法完整表示的狀況,而這情況發生時,FIX 就會 為 1。 表 4.1 Truth Table for Generating y'n-1, u'n-1 and FIX [*: conditions when an. bn. 0. 0. 0. 0. 0. 0. an-1 bn-1. y 'n −1 =2]. u 'n −1. y 'n −1. FIX. 0. 1. 0. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 1 ╳. 1 ╳. 0 ╳. 0. 1. 1. 0. 0. 1. 1. 1. 0 ╳. 1* ╳. 1 ╳. 1. 0. 0. 0. 1. 1. 0. 1. 0. 0. 1. 1. 0. 1. 0. 0 ╳. 1* ╳. 1 ╳. 1. 0. 1. 1. ╳. ╳. ╳. 1. 1. 0. 0. 1. 1. 0. 1. 1 ╳. 1* ╳. 1 ╳. 1. 1. 1. 0. ╳. ╳. ╳. 1. 1. 1. 1. ╳. ╳. ╳. 經由表 4.1 的整理,我們將公式化簡,就能分別得到 y 'n−1 = (an ∨ bn ∨ an−1 ∨ bn−1 ) ,. 24.

(32) u 'n −1 = an −1 ⊕ bn −1. 與 FIX = anbn ∨ bn an−1 ∨ anbn−1,並且將 FIX、Y'與 U'帶入公式(4.3)的展開. 式中得到公式(4.4)。. (. )2. A+B 2n +1 2n = A+B- 2n +1. n. = Y'+U ' 2n +cout ∨ FIX. (4.4). 由公式(4.4)可以清楚地看到,我們將 A 與 B 兩個輸入值與修正值 2n+1 做修正, 而分離出的 FIX 則為修正值,用來修正超出表示的情況。以下兩個範例別分將 FIX 為 1 與為 0 帶到公式(4.4)中進行驗證。 Example 1: suppose n=4, A=810=010002 and B=310=000112, respectively. Step 1: (A+B)-(2n+1)=> Y’=01102, U’=01002, FIX=0. Step 2: Y’+U’=10102, cout=0, => Y '+ U '+ cout ∨ FIX = 10112 = 8 + 3 17 = 1110.. Example 2: suppose n=4, A=1610=100002 and B=1210=011002, respectively. Step 1: (A+B)-(2n+1)=> Y’=10002, U’=00112, FIX=1. Step 2: Y’+U’=10112, cout=0, => Y '+ U '+ cout ∨ FIX = 10112 = 16 + 12 17 = 1110.. 4.2 Weighted modulo 2n +1 加法器之架構設計 圖 4.1 是我們對應公式(4.4)以及真值表所設計的轉換器、Diminished-one 以及修 正架構,其中圖 4.1(a)是我們所提出的 Weighted modulo 2n+1 加法器架構。從公式(4.4) 得知,轉換器計算 A+B -(2n+1)並且得到 Y'與 U',其中因-(2n+1)是一個 011…11 的固 定數值,因此能將轉換器中的 FA 電路簡化為 FA+,如圖 4.1(b),而 y'n-1 與 u'n-1 則以. 25.

(33) 真值表簡化出的公式,以 FAF 架構計算得到,如圖 4.1(c)。而 FIX 則是由修正架構 來計算得到,用於修正部分的輸出結果,由於 FIX 的計算從轉換器中分離出來,因 此 FIX 的計算電路與轉換器是各別的平行運算,其架構如圖 4.1(d)所示。. (a). y 'n −1 u 'n −1. y 'n−2 u 'n−2. y '0 u '0. (b). (c). (d). 圖 4.1 Weighted module 2n+1 addition with correction Schemes 架構與細部邏輯電路. 26.

(34) 圖 4.2 是我們依公式(4.4)所設計的 Diminished-one 加法器與修正架構。由圖 4.2(a) 可以看到,我們以 FIX 修正 PPCU 所計算出的 carry out,將 EAC 的輸入值改變,將 計算結果修正。 a8 b8 a7 b7. u'7 y'6 u'6 y'5 u'5 y'4 u'4 y'3 u'3 y'2 u'2 y'1 u'1 y'0 u'0 y '7. Parallelprefix. correction. FIX. cout. s8. Endaround carry. s7. s6. s5. s4. s3. s2. s1. s0. (a). (b) 圖 4.2 Diminished-one 與 correction 架構與節點邏輯電路. 4.3 比較與分析 在這章我們所提出的研究中,我們將 modulo 2n+1 加法公式進一步推導,得到新 的 Weighted modulo 2n+1 加法公式,並設計出一個額外的修正架構來計算權重值, 將部份權重值的計算從轉換器中移除,減少轉換器的最長路徑。這額外的修正架構. 27.

(35) 有兩項主要優點, (1) 修正架構的硬體成本極小,而且不論在幾位元都是相同的架構,不會隨著位 元數加大而成長; (2) 因 FIX 的計算從轉換器中被推導分離出來,能減少轉換器運算的時間,而且 修正架構能與轉換器平行運算。. 表 4.2 列出我們、[16]與[17]三種方法的轉換器以邏輯閘做的比較,從表中我們 可以得知我們的速度與面積較[16]來的好,而計算的範圍也比[17]來的好。. 表4.2 Delay/Area Comparisons for Various Translation Stages [16]. [17]. Proposed. Delay (Unit: gate delays). 2.5. 1.5. 2. Area (Units: gate counts). 2.5n+8.5. 2.5n+0.5. 2.5n+2.5. Ranges of A and B. {0,2n}. {0,2n-1}. {0,2n}. 為了了解電路面積與速度,我們將[16]與[17]以及這章節所提出的方法,別分以 8、16 以及 32 位元的架構實作出,並以 0.13μm TSMC CMOS technology 製程進行 模擬。為了客觀的進行數據分析,我們分別以 Sklansky 以及 Brent-Kung 兩種 Parallel-prefix 架構進行實作與模擬,表 4.3 與 4.4 為電路面積模擬數據,表 4.5 為功 率模擬數據。 由數據結果我們可以得知,在相同的輸入範圍下,我們所提出的方法在面積上 確實優於[16],在功率消耗上,我們提出的方法甚至優於輸入位元較小的[17],因此 我們提出的公式與架構,確實有更好的表現。. 28.

(36) 表 4.3 Delay/Area Synthesis Results for Various Modulo 2n+1 Adders (Units: um2) [Sklansky-Style Parallel-Prefix Structure Based Diminished-1 Adder] n. [16]. [17]. Proposed. 8 (delay=0.7 ns). 1967.3. 1717.8. 1780.6. 16 (delay=0.75 ns). 4852.9. 4299.5. 4757.8. 32 (delay=0.9 ns). 9018.3. 8427.6. 8851.9. 表 4.4 Delay/Area Synthesis Results for Various Modulo 2n+1 Adders (Units: um2) [Brent-Kung-Style Parallel-Prefix Structure Based Diminished-1 Adder] n. [16]. [17]. Proposed. 8 (delay=1.5 ns). 903.0. 695.9. 823.2. 16 (delay=1.2 ns). 3647.7. 3060.4. 3564.5. 32 (delay=1.4 ns). 8264.6. 7865.7. 8103.3. 表 4.5 Power Consumptions for Various Modulo 2n+1 Adders (@200 MHz, Units: μw) [BK: Brent-Kung-Style, SK: Sklansky-Style] [16]. n. [17]. Proposed. BK. SK. BK. SK. BK. SK. 8. 63.2. 65.77. 61.83. 63.96. 61.3. 60.1. 16. 118.3. 126.0. 119.8. 121.9 112.8. 119.8. 32. 254.3. 251.6. 253.4. 251.3 231.9. 231.2. 29.

(37) 第五章 Efficient Weighted Modulo 2n+1 Adders by Partitioned Parallel-Prefix Computation and Enhanced Circular Carry Generation[20] 在大多的 Weighted modulo 2n+1 加法器研究中,如第二章的 2.3 與 2.4 以及第 四章,都以轉換器做為主要的研究,較少以 Weighted modulo 2n+1 加法器中的 Diminished-one 架構做為研究內容。但實事上,在 Weighted modulo 2n+1 加法器中, 仍以 Diminished-one 架構佔據絕大部分的計算,若能設計出符合 Weighted modulo 2n+1 加法器的低面積 Diminished-one 架構,將能有效的減少整個 Weighted modulo 2n+1 加法器的電路成本。 因此我們在這章所提出的方法,以設計出符合 Weighted modulo 2n+1 加法器的 低面積 Diminished-one 架構做為研究目標,並以我們在前兩章所提出的方法做為架 構的基礎。最初的設計,我們以第四章的轉換器作為新架構的轉換器基礎,並以第 三章的 CCS 架構,做為新架構的 Diminished-one 加法器,延續 CCS 架構的研究, 設計出新的 Weighted modulo 2n+1 加法器。. 5.1 架構的選擇與替換 在前幾章的研究中得知,CCS 主要以三個架構組成,分別是 DS-CLA(用於計算 A+B 的 carry 與 sum)、CCG(用於計算每個位元的 carry out)以及多功器(用 carry out 選擇 A+B 的結果)。從公式的推導我們得知公式(2.3)等於(3.2),因此 CCS 架構中的 多功器功能相當於 Diminished-one 餘數加法器中的 EAC 加法器。我們比較多功器與 EAC 加法器就能發現,EAC 不論是計算速度或是面積都比多功器來的小,因此我們 將以公式(2.3)做為 Diminished-one 公式,將 CCS 架構中的多功器改以 EAC 架構取 代,減少硬體成本。而 CCS 中的 DS-CLA 我們選擇以 PPCU 來實作,因為 PPCU 在硬體面積有多種方法可以選擇,比起一般的 CLA 架構,能節省更多的硬體成本。. 30.

(38) 因 DS-CLA 與多功器的替換,CCS 架構中計算 carry out 的 CCG 將同樣的被以 PPCU 與 EAC 所取代,我們稱之為 Enhanced CCG(ECCG)。. 5.2 公式的結合與推導 由於我們將原為 Diminished-one 加法器的 CCS 架構用於 Weighted modulo 2n+1 加法器中,因此我們必需將 CCS 公式與 Weighted 的修正公式整合,得到符合 Weighted modulo 2n+1 加法的 CCS 公式。由於多功器架構已替換成 EAC,我們將公 式(2.4)的選擇去除,修改為公式(5.1),其中 G*、P*與 cn-1 分別展開為公式(5.2)、(5.3) 與(5.4),t 為 0 到 m-1,n=m×r。而公式(5.2)與(5.3)中的 g=y'i-1.u'i,p=y'i-1♁u'i,Y'= y'n-2…y'0 y'n-1,U'=u'n-1…u'0,Y'與 U'是經由公式(4.4)得到。 kt −1 =. t −1 t − 2 ⎛ t −1 ⎞ Gt*−1 + ∑ ⎜ ∏ Pl* ⎟ G*j + cn −1 ∏ Pt* ⎜ ⎟ j = 0 ⎝ t = j +1 t =0 ⎠. Gt* = gtr + ( r −1) + ∑ j =tr. tr + ( r − 2). Pt* = ∏ k =tr. tr + ( r −1). (∏. tr + ( r −1) k = j +1. (5.1). ). (5.2). pk g j. (5.3). pk. m − 2 ⎛ m −1 ⎞ cn −1 = Gm* −1 + ∑ ⎜ ∏ Pl* ⎟ G*j ⎜ ⎟ j = 0 ⎝ l = j +1 ⎠. (5.4). 在第四章我們提到,由 Weighted 架構的轉換器所分離出的修正值 FIX,會修正 每一個位元的 carry out,因此我們將 Weighted 架構的修正值 FIX 加入公式(5.1)中得 到公式(5.5),讓 FIX 修正每個位元的 carry out。 kt −1 =. t −1 t − 2 ⎛ t −1 ⎞ Gt*−1 + ∑ ⎜ ∏ Pl* ⎟ G*j + cn −1 + FIX ∏ Pt* ⎜ ⎟ j = 0 ⎝ t = j +1 t =0 ⎠. (5.5). 接著將公式(5.5)代入公式(2.3)中得公式(5.6)與(5.7),其中 i=0…n-1,S=sn…s0, S 為 A+B modulo 2n+1 的計算結果。 ⎧ if (i )mod(r)=0 ⎪k⎢⎣i / r ⎥⎦ −1 ⊕ pi , si = ⎨ ⎪⎩ Gi + Pi • k⎢⎣i / r ⎥⎦ −1 ⊕ pi , otherwise. (5.6). sn = FIX pn −1. (5.7). (. ). 31.

數據

圖 2.2 (1×4)-bit CCS 架構與(m×r)-bit 的 CCS 架構
圖 2.3 Unified Weighted and Diminished-one Addition 架構與細部邏輯電路
表 4.1 Truth Table for Generating y' n-1 , u' n-1  and FIX    [*: conditions when  y ' n − 1 =2]  a n   b n   a n-1 b n-1 u ' n − 1 y ' n − 1 FIX 0 0  0  0  1  0  0  0 0  0  1  0  1  0  0 0  1  0  0  1  0  0 0  1  1  1  1  0  0 1  0  0  1  1  0  0 1  0  1
圖 4.2 是我們依公式(4.4)所設計的 Diminished-one 加法器與修正架構。由圖 4.2(a) 可以看到,我們以 FIX 修正 PPCU 所計算出的 carry out,將 EAC 的輸入值改變,將 計算結果修正。  s 0s1s2s3s4s5s6s7s8 Parallel-prefixEnd-around carrycorrectiona7b7a8b8FIXu'0u'1y'0u'2y'1u'3y'2u'4y'3u'5y'4u'6y'5u'7y'6y'7cout  (a)  (b)  圖 4
+7

參考文獻

相關文件

在於是否在「知道」與「能做」之外,還 能「識」。而識的媒介與深度,仍然以實

本書立足中華文化大背景,較為深入系統地分析研究了回族傳統法文化的形成基礎、發展歷

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

其硬體架構如圖 9.3 所示。本實驗最主要的目的是要將之前學長所做的 GPS/INS 整合 部分中的加速儀用

本研究所開發的 XML-base ECG Management System 架構及流程 如圖 1-3 所示。ECG 的來源是地區醫院所收集的 SCP-ECG 檔案,解 碼後取得內含資訊及各導程原始電位數據,經過 XML-based

在與 WINS 有關的研究之中,除了研發感測器硬體這個領域之外,其它的領域均需要

為完成上述研究目的,本文將於第二章依序說明 IPTV 的介紹與現況,以及詳述 e-SERVAUAL

成功的完成本研究之自動化鋼筋混凝土結構設計前置處理程 式 AutoRC 的開發,讓使用者透過 AutoRC