高建衛(wèi)
(北京外企徳科人力資源服務(wù)上海有限公司 上海 200335)
在數(shù)子電路設(shè)計(jì)中,高性能加法器是現(xiàn)代微處理器中的重要部件,是實(shí)時(shí)圖象處理和數(shù)字信號處理的核心,同時(shí)也是微處理器中數(shù)據(jù)處理的關(guān)鍵路徑,而且完成一次操作的周期影響微處理器得主頻,因此人們對提高加法器的性能進(jìn)行了大量的研究。
超前進(jìn)位加法單元首先進(jìn)行進(jìn)位為零和進(jìn)位為一的加法運(yùn)算,由于加法運(yùn)算是并行進(jìn)行的運(yùn)算速度相當(dāng)快,硬件電路原理圖分別為:加法單元,二選一,多路選擇器[1]。如圖1所示。
圖1 加法運(yùn)算硬件原理圖Fig.1 Adder schematic
圖1 中A,B為輸入數(shù)據(jù),CIN為進(jìn)位輸入,CIN1,CIN2分別為兩加法單元產(chǎn)生的進(jìn)位,SUM1和SUM2分別為兩加法單元產(chǎn)生的和,SUM為兩數(shù)最后之和,COUT為最后進(jìn)位5[2]。
對于32位加法運(yùn)算從原理上說,首先將其加法單元進(jìn)行分組[3],也就是說把n位(一般n≥16)分成若干組不一定就是平均分組,因?yàn)槠骄纸M以后,每一組加法單元都相同,電路運(yùn)算花費(fèi)時(shí)間相同,因而產(chǎn)生的選擇進(jìn)位信號的時(shí)間也相同,所以每一組加法單元的進(jìn)位輸出和最后和的輸出都通過前一級的進(jìn)位信號選擇產(chǎn)生延時(shí)比較長。根據(jù)以上所述本文采用一種新的分組算法,也就是差額分組算法。首先將32位(作為例子,這里僅介紹32位,本設(shè)計(jì)可推廣至2k位,K≥4,K∈N)進(jìn)行差額分組,分別分為5位,6位,7位,8位,6位,形成階梯形狀運(yùn)算單元,因?yàn)椴捎眠@種階梯分組算法可以減少進(jìn)位選擇時(shí)間。例如:在運(yùn)算的二組6位相加的同時(shí),第一組5位也在進(jìn)行相加,當(dāng)?shù)诙M運(yùn)算完成時(shí),第一組運(yùn)算結(jié)果和進(jìn)位也以完成,通過第一組產(chǎn)生的進(jìn)位選擇第二組的運(yùn)算結(jié)果和進(jìn)位信號。以此類推可以得到第三,四,五組運(yùn)算結(jié)果和最后進(jìn)位結(jié)果。在運(yùn)算32為加法時(shí),其實(shí)與8位加法運(yùn)算時(shí)間相當(dāng)。
圖2是超前進(jìn)位(CLK)加法器的結(jié)構(gòu)框架(作為例子,這里僅介紹4位CLA,本設(shè)計(jì)可推廣至k位CLA,K≥2,K∈N)。圖中,PG模塊分別計(jì)算各組的進(jìn)位傳送函數(shù)(P)進(jìn)位生成函數(shù)(G)得在值,與以往的超前進(jìn)位算法相比版圖容易實(shí)現(xiàn),因?yàn)橐酝某斑M(jìn)位算法計(jì)算各組的進(jìn)位傳送函數(shù)(P)和進(jìn)位生成函數(shù)(G)用異或門和與門。
圖2 超前進(jìn)位加法器結(jié)構(gòu)圖Fig.2 Advanced carry selected adder
而本設(shè)計(jì)所用的超前進(jìn)位算法計(jì)算各組的進(jìn)位傳送函數(shù)(P)和進(jìn)位生成函數(shù)(G)用與非門和或非門。如圖3所示即
圖3 帶進(jìn)位生成函數(shù)的運(yùn)算Fig.3 Operation with carry function
邏輯仿真是設(shè)計(jì)校驗(yàn)的重要步驟。利用ACTIVE HDL軟件可直接提供這一功能。在ACIVE HDL中可以進(jìn)行邏輯仿真和由SYNPILCITY提供綜合后仿真,以及加入器件和線延時(shí)的時(shí)序仿真[4]。第一,在OPTION中選擇上層模塊,然后進(jìn)行功能仿真。首先,用鼠標(biāo)右擊輸入信號,彈出對話框選擇STIMULATORS,可以加入任何想要的信號。第二,同樣在SYNTHESIS的OPTION中選擇上層模塊和所需的器件(這里我們選用XILINX SPARTAN2提供的25200PQ208),然后進(jìn)行綜合后仿真。在此過程中我們可以通過SYNPLIFY進(jìn)行電路優(yōu)化,然后例如上面所述的相同的方法得到波形圖。這時(shí)的波形圖是已經(jīng)加了器件延時(shí)后的結(jié)果。第三是在XILINX IMPLEMENTATIN中進(jìn)行布局布線的時(shí)序仿真。在仿真前可以在OPTION中加入相應(yīng)的約束條件,使其提高運(yùn)行頻率,圖4即為仿真結(jié)果,這個(gè)仿真基本上與FPGA的仿真相接近,F(xiàn)PGA是近年來發(fā)展迅速的大規(guī)??删幊虒S眉呻娐?,它在它在電路設(shè)計(jì)中的應(yīng)用使設(shè)計(jì)的電子產(chǎn)品達(dá)到小型化和集成化,大大縮短了設(shè)計(jì)周期,減少了設(shè)計(jì)費(fèi)用,降低了設(shè)計(jì)風(fēng)險(xiǎn)。FPGA器件必將成為電子系統(tǒng)設(shè)計(jì)的重要手段,具有極其廣闊的發(fā)展前景。
圖4 仿真結(jié)果Fig.4 Simulation results
設(shè)計(jì)校驗(yàn)完成之后,利用ACTIVE HDL軟件系統(tǒng)自動(dòng)處理和生成目標(biāo)文件(BIT文件),且可經(jīng)一定方式(主動(dòng)模式或被動(dòng)模式)把目標(biāo)文件配置于XILINX SPARTAN2芯片中,從而完成編程工作。
這里采用被動(dòng)串行方式(PS)進(jìn)行配置。專用下載電纜的一端與微型機(jī)USB口相連,另一端連至目標(biāo)系統(tǒng)PCB板的配置插座,經(jīng)一定的控制方式,把計(jì)算機(jī)內(nèi)存中的目標(biāo)文件配置于PCB板上的XILINX SPARTAN2芯片中[6]。
綜上所述,這種選擇進(jìn)位加法器運(yùn)行速度相當(dāng)快,已經(jīng)通過FPGA[7-8]驗(yàn)證,可以運(yùn)行40—50兆的頻率,如果制成芯片速度應(yīng)比在FPGA上運(yùn)行的更快,因?yàn)榘鎴D的布局布線比FPGA更加合理,基本上滿足實(shí)際工程需要。
[1]RABAEY J M.數(shù)字集成電路設(shè)計(jì)透視[M].2版.北京:清華大學(xué)出版社,1999.
[2]Mittal M,Salama C A T.DPTL 4-6 carry looks head adder[J].IEEE J.of Solid State circuits,1992,27(11):1644-1684.
[3]于敦山.沈緒榜.32位定/浮點(diǎn)乘法器設(shè)計(jì)[J].半導(dǎo)體學(xué)報(bào),2001(1):91-95.YU Dun-shan,CHEN Xu-bang.Design of a 32-Bit CMOSFix floating point multiplier[J].Chinese Journal of Semiconductors,2001(1):91-95.
[4]張亮.數(shù)字電路設(shè)計(jì)與Verilog HDL[M].北京:人民郵電出版社,2000.
[5]Agrawal V D.A tutorial on built-in self-test[J].part 1:principles.IEEE Design&Test of Computers,1993(2):73-82.
[6]Configuration and Readback of the Spartan-II and Spartan-IIE FPGA Families[M].Xilinx Company,2008.
[7]周建,祝連慶,張蔭民.基于FPGA的脈沖光纖激光器功率控制系統(tǒng)設(shè)計(jì)[J].電子科技,2012,25(12):52-55.ZHOU Jian,ZHU Lian-qing,ZHANG Yin-min.Design of pulse fiber laser power control system based on FPGA[J].Electronic Science and Technology,2012,25(12):52-55.
[8]歐亞軍,陳杰.基于FPGA的頻率特性測試儀的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(6):113-115.OU Ya-jun,CHEN Jie.Design of Frequency Characteristic Instrument Based on FPGA[J].Modern Electronics Technique,2011,34(6):113-115.