《電子技術(shù)應用》
您所在的位置:首頁 > EDA與制造 > 設計應用 > 改進溢出判斷電路的設計與仿真研究
改進溢出判斷電路的設計與仿真研究
來源:電子技術(shù)應用2012年第5期
王 穎1,王瑞春2
1.深圳信息職業(yè)技術(shù)學院 電子與信息學院,廣東 深圳518055; 2.深圳信息職業(yè)技術(shù)學院 基礎部,廣東 深圳518055
摘要: 傳統(tǒng)數(shù)字芯片電路中,固定字長有符號數(shù)的加法或減法運算的溢出判斷需要等到加法/減法運算結(jié)束之后才能進行。以四位有符號數(shù)加法/減法運算溢出判斷邏輯為例提出一種改進的設計方式,能夠在加法/減法運算結(jié)束之前對操作數(shù)進行判斷,從而決定是否有溢出現(xiàn)象的發(fā)生。仿真發(fā)現(xiàn),改進后的電路無論在規(guī)模上還是在運算速度上都有很大改善。
關(guān)鍵詞: 改進 溢出判斷 電路設計 仿真
中圖分類號: TP302.1
文獻標識碼: A
文章編號: 0258-7998(2012)05-0049-03
Research on design and simulation of an improved overflow judgment circuit
Wang Ying1,Wang Ruichun2
1.School of Electronic and Telecom Technology ,Shenzhen Institute of Information Technology,Shenzhen 518055,China; 2.Department of Basic Research, Shenzhen Institute of Information Technology,Shenzhen 518055,China
Abstract: In the typical overflow judgment circuit , the existence of overflow can not be judged until the operation is end. In this paper, an improved design is put forward. The improved design is based on the addition or subtraction of four-bit signed data. This improved circuit can judge the existence of overflow by view the operator before the end of the operation. The improved circuit is found better in the scale and delay time by simulation.
Key words : improvement;over-flow judgment;circuit design;simulation

    溢出現(xiàn)象的判斷是固定字長有符號加法運算中必須要進行的操作,傳統(tǒng)溢出現(xiàn)象的判斷要等到加法運算結(jié)果產(chǎn)生以后才能進行,本文電路設計能夠在加法運算開始之前通過對操作數(shù)的判斷而進行溢出預判,從而減少了整個加法/減法運算的時間。

    溢出現(xiàn)象有可能出現(xiàn)在有符號數(shù)的加法或減法運算中,在進行固定字長的有符號數(shù)加法或減法運算時,如果出現(xiàn)以下四種情況:正數(shù)與正數(shù)相加得到負數(shù)、正數(shù)減負數(shù)得到負數(shù)、負數(shù)減正數(shù)得到正數(shù)、負數(shù)加負數(shù)得到正數(shù),則認為有溢出現(xiàn)象產(chǎn)生。
1 傳統(tǒng)溢出判斷電路的設計[1]
    傳統(tǒng)溢出判斷電路的設計是建立在加法或減法運算已經(jīng)產(chǎn)生結(jié)果的基礎上,如果用Overflag表示當前的運算方式,當Overflag取值為“1”時表示的是進行有符號數(shù)的加法或減法運算,當Overflag取值為“0”時表示的是進行無符號數(shù)的加法或減法運算。用Adder表示當前的運算方式是加法或者減法運算。當Adder取值為“1”時表示進行加法運算,當Adder取值為“0”時表示進行減法運算。用A[3]、B[3]和R[3]分別表示兩個操作數(shù)和加減法運算結(jié)果的最高位即符號位。用Overflow表示溢出結(jié)果,如果Overflow取值為“1”則表示產(chǎn)生了溢出;如果Overflow取值為“0”則表示沒有產(chǎn)生溢出。如果利用Carry-Lookahead Adder[2]算法來產(chǎn)生R[3],則結(jié)合對溢出產(chǎn)生條件的分析,可以得到溢出判斷電路圖如圖1所示。

2 具有預判功能的改進溢出判斷電路的設計
    具有預判功能的溢出判斷電路設計的原理是將Carry-Lookahead Adder[2]的算法與傳統(tǒng)溢出邏輯判斷邏輯算法相結(jié)合。如果將可能產(chǎn)生溢出的四種運算都轉(zhuǎn)換為加法運算,則在有可能產(chǎn)生溢出的四種運算情況下只要數(shù)值位向符號位產(chǎn)生進位或者符號位本身相加產(chǎn)生進位就可以判斷有溢出產(chǎn)生。因此在電路實現(xiàn)上需要有兩部分功能塊,一部分是判斷當前的運算是否為可能產(chǎn)生溢出的四種運算,將這部分功能塊稱為初步判斷功能塊;另一部分是判斷數(shù)值位的最高位有無向符號位產(chǎn)生進位或符號位本身相加有無進位產(chǎn)生,將這部分功能塊稱為進位判斷功能塊。最后需要將兩部分功能塊結(jié)合在一起成為完整的溢出預判電路。

2.2 進位判斷功能塊[2]
    在對溢出現(xiàn)象進行分析的過程中發(fā)現(xiàn),可能產(chǎn)生溢出的四種情況的運算最后都可以轉(zhuǎn)換為加法運算,具體分析如下:
    正數(shù)與正數(shù)相加,原本就是加法運算,所以毋須進行轉(zhuǎn)換。
    正數(shù)減負數(shù)相當于正數(shù)與同負數(shù)有相同絕對取值的正數(shù)進行相加。即只要將被減數(shù)轉(zhuǎn)換成與其本身有相同絕對取值的正數(shù)即可。
    負數(shù)減正數(shù)相當于負數(shù)與同正數(shù)有相同絕對取值的負數(shù)進行相加。即只要將被減數(shù)轉(zhuǎn)換成與其本身有相同絕對取值的負數(shù)即可。
    負數(shù)加負數(shù)本身就是加法運算,毋須進行轉(zhuǎn)換。
    假設A為加法或減法運算中的第一個操作數(shù)(被加數(shù)或被減數(shù)),B為第二個操作數(shù)(加數(shù)或減數(shù)),由以上分析可以發(fā)現(xiàn),A不需要做任何變換,而B要根據(jù)需要進行變換,變換后的數(shù)字用D進行表示。對B進行變換的算法為:首先判斷條件“A[3]=0且B[3]=1且Adder=0”或“A[3]=1且B[3]=0且Adder=0”是否成立,如果條件成立,則D的值等于對B做減1運算后再取反的數(shù)值,否則D=B。
    操作數(shù)B做了變換后,A與B的運算就轉(zhuǎn)換成A與D的加法運算,運算結(jié)果用R表示。通過前面的分析可以發(fā)現(xiàn)在可能產(chǎn)生溢出的四種運算情況下(即:正數(shù)與正數(shù)相加、負數(shù)與負數(shù)相加、正數(shù)與負數(shù)相減、負數(shù)與正數(shù)相減),只要A與D的加法運算的結(jié)果中符號位的符號與操作數(shù)符號相反就標志著產(chǎn)生了溢出。用Ci+1表示第i位向第i+1位產(chǎn)生的進位,則C3=1或C4=1且C3 和C4不能同時為1時標志著溢出的產(chǎn)生。
    通過對Carry-Lookahead Adder[2-3]的分析可以發(fā)現(xiàn)進位的產(chǎn)生不必等到加法運算結(jié)束,即:
  
    完整的電路圖如圖3所示。

    通過比較圖3與圖1的電路結(jié)構(gòu)發(fā)現(xiàn),改進的溢出判斷邏輯電路圖在結(jié)構(gòu)上要精簡許多。
2.4 邏輯驗證
    電路的功能驗證利用TSPICE實現(xiàn),仿真得到的波形如圖4所示。在仿真波形圖中,從上至下信號名依次為Overflag,Adder,A[3],A[2],A[1],A[0],B[3],B[2],B[1],B[0]和Overflow。通過分析仿真波形圖中輸入的A、B、Adder、Overflag共17組驗證數(shù)據(jù)與輸出信號Overflow的關(guān)系可以證明該電路能夠正確判斷溢出的產(chǎn)生情況。

 

 

2.5 延時比較
    Adder到Overflow的路徑為溢出判斷電路的關(guān)鍵路徑,通過仿真工具TSPICE分別計算兩種電路結(jié)構(gòu)中關(guān)鍵路徑的延時,在相同的仿真條件下,改進溢出判斷電路中從Adder到Overflow的延時為11.697 ns,傳統(tǒng)溢出判斷電路中從Adder到Overflow的延時為12.232 ns。 
    本文在傳統(tǒng)溢出判斷電路的基礎上,提出一種改進的電路結(jié)構(gòu),在這種改進結(jié)構(gòu)中,不必等到加減法運算結(jié)果的產(chǎn)生就能預先判斷有無溢出現(xiàn)象的發(fā)生。通過仿真發(fā)現(xiàn),這種結(jié)構(gòu)在能夠?qū)崿F(xiàn)所需的邏輯功能的基礎上減少了電路規(guī)模,并減少了傳輸延遲。
參考文獻
[1] 王穎.數(shù)字芯片溢出邏輯電路的設計與仿真研究[J].微計算機信息,2010,02(26):160-163.
[2] OMONDI A R.Computer arithematic systems-algorithms, architecture and implementation[M].Prentice-Hall,1994.
[3] PARHAMI B.Computer arithmetic-algorithms and hardware designs[M].Oxford University Press,2000.
[4] 劉杰,易茂祥.6加數(shù)并行加法器及擴展接口的研究[J].微電子學與計算機,2009,12(12):27-30.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。