16×16位移位相加乘法器設計_第1頁
16×16位移位相加乘法器設計_第2頁
16×16位移位相加乘法器設計_第3頁
16×16位移位相加乘法器設計_第4頁
16×16位移位相加乘法器設計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本科學生畢業論文論文題目:16X16位移位相加乘法器設計學 院: 電子工程學院年 級: 2009級專 業: 集成電路設計與集成系統名:學 號: 20092141指導教師: 曹貝2012年6月13日摘要隨著集成電路設計技術的不斷進步,乘法器的芯片設計實現的研究與應用越來越廣泛,對乘法器進行ASIC芯片設計,具有設計實現過程簡單、所用到的EDA工具完善而且成熟、硬件開銷小、易于在VLSI電路或系統級芯片中集成。通常,數字電路設計的流程對于芯片的實現而言,需要RTL級的HDL描述,并要對各層次的設計進行功能仿真驗證,在驗證電路能按預期設計功能工作后,即可對RTL級的HDL描述進行綜合、優化,形成門級網表。整個設計流程可稱為數字電路的前端設計。本課題基于移位相加算法的研究,設計16位移位相加乘法器,并在功能仿真通過后,將所設計的VerilogRTL級代碼進行綜合,采用Synopsys公司DesignCompilerEDA工具進行電路綜合,獲得16位移位相加乘法器的門級網表與電路實現。關鍵詞數字電路設計;移位相加乘法器;綜合;AbstractAbstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstractabstract^英文摘要內容必須與中文摘要完全對應。英文摘要采用TimesNewRoman小四號字書寫,畢業論文、畢業設計行與行之間、段落和層次標題以及各段落之間均為1.5倍行距。)KeywordsKeywords;keywords;keywords(英文關鍵詞內容必須與中文關鍵詞完全對應。英文關鍵詞采用TimesNewRoman小四號字書寫,畢業論文、畢業設計行與行之間、段落和層次標題以及各段落之間均為1.5倍行距。關鍵詞與關鍵詞之間用“;”隔開)目錄TOC\o"1-5"\h\z\o"CurrentDocument"摘要 1\o"CurrentDocument"Abstract 2\o"CurrentDocument"第一章乘法器研究的背景與意義 4\o"CurrentDocument"乘法器的發展現狀 4\o"CurrentDocument"1.1.1國內乘法器現狀 5\o"CurrentDocument"1.1.2國外乘法器現狀 5\o"CurrentDocument"乘法器概述 5\o"CurrentDocument"乘運算 6\o"CurrentDocument"乘法器結構 7\o"CurrentDocument"乘法器端口定義 8\o"CurrentDocument"第二章移位相加乘法器設計的基本原理 8\o"CurrentDocument"2.1.1移位相加算法 9\o"CurrentDocument"2.1.2乘法器設計原理 10\o"CurrentDocument"移位相加乘法器原理 10\o"CurrentDocument"第三章16x16位移位相加乘法器設計與仿真 12\o"CurrentDocument"16位移位相加乘法器的設計 12\o"CurrentDocument"16位移位相加乘法器Verilog文件設計 12\o"CurrentDocument"16x16位移位相加乘法器Modelsim仿真 14\o"CurrentDocument"16x16位移位相加乘法器經典數組運算結果 15\o"CurrentDocument"16x16位移位相加乘法器一般情況運算結果 17\o"CurrentDocument"第四章16x16位移位相加乘法器Verilog設計綜合 18\o"CurrentDocument"4.1RTL級概念 18\o"CurrentDocument"RTL級綜合結果與分析 20\o"CurrentDocument"16位移位相加乘法器電路圖 22\o"CurrentDocument"結論 26\o"CurrentDocument"參考文獻 27附錄一 28\o"CurrentDocument"致謝 38第一章乘法器研究的背景與意義數字信號處理中需要頻繁進行大數據量的乘法運算。乘法器作為數字信號處理器的重要部件,它的速度直接決定了整個處理器的性能。本課題采用verilogHDL設計了一個16位移位相加乘法器。首先介紹了移位相加乘法器的算法以及比較移位相加乘法器,Booth乘法器,WallaceTree乘法器各自的特點。介紹了本課題在綜合時需用到的DesignCompiler(DC)綜合工具。隨后提出了自己的乘法器設計架構設計了一個16位移位相加乘法器。并用DesignCompiler(DC)進行了優化。所設計的乘法器是16X16位,基于Altera公司的Modelsim平臺上用Verilog_HDL軟件進行功能仿真,驗證了功能正確,達到了預期的目標。微處理器的發展隨著集成電路的迅猛發展而日新月異。在微處理器芯片中乘法器是進行數字信號處理的核心同時也是微處理器中進行數據處理的關鍵部件,它已經是現代計算機必不可少的一部分。乘法器的算法也有很多種,例如移位相加算法、布斯(Booth)算法、華萊士樹(WallaceTree)算法等。其中移位相加算法是乘法器最基礎的算法,其它的算法都是在它的基礎上為了壓縮和優化這種算法延伸出來的算法,目的是提高乘法器的運算速度以及實現更多的乘法器功能。雖然不斷有關于32位、64位乘法器的研究出現,但由于大量的媒體信號處理只需16位運算就能勝任,因此對16位乘法器的研究仍有著相當的應用價值。乘法器的發展現狀過去的十年中,研究者擴展了Booth編碼算法的空間,提高了乘法器的性能;改進了部分積壓縮技術,使乘法器結構更加規則;以傳輸管邏輯、多路選擇器和動態技術為基礎的各種電路實現方法也持續刷新高性能乘法器的實現記錄;與此同時,與物理實現緊密相關的乘法器拓撲結構的研究也碩果累累。但不斷提高的高性能運算需求使得高性能乘法器的設計和實現仍然是當前的熱門話題。國內乘法器現狀乘法器的設計與應用在國內研究領域也取得了很好的成績,1993年中科院聲學研究所應用于18位乘法器,實現工作頻率38MHZ.。隨著應用要求的領域與性能不斷提高,1997年國防科技大學完成應用于數字神經處理的16位乘法器,頻率30MHZ。2001年西安微電子技術中心于敦山實現了32位定/浮點乘法器延時56/76ns。進入新世紀以來,集成電路工藝水平不斷提升,2002年西安交通大學袁壽財實現了0.25um下延時40ns。2003年中科院計算研究所周旭采用0.18um的工藝實現54位浮點乘法器384MHZ。2004年復旦大學武新宇采用0.18um的工藝實現64位乘法器延時2.82ns。2005年上海大學王田采用0.18um的工藝實現32位乘法器延時3.15ns。2007年東南大學王定采用FPGA設計24位乘法器延時18.81ns。乘法器的設計一直是集成電路設計研究領域的一個熱點,也有著廣泛的應用。國外乘法器現狀理論方面乘法器研究上的里程碑應該從BoothAD在1951年提出的Booth編碼方法和Wallace的樹型壓縮開始。隨后出現了Booth2算法、壓縮器(進位保留加法)、延遲平衡樹等各種算法結構。國外乘法器在電路方面的發展同樣迅猛,1995年Ohkubo基于傳輸管邏輯實現了4.4ns54位乘法器,同時提出了新的4:2壓縮單元結構和進位選擇加法器結構。1996年Hanawa實現了4.3nS的54位乘法器,同一年,Makino實現了8.8ns54位冗余二進制編碼乘法器。1997年Inoue提出了符號選擇Booth解碼和改進的4:2壓縮單元結構,實現了4.1ns的54位乘法器。1998年Hagihara基于動態技術和傳輸管邏輯實現了2.7ns的54位乘法器。同年Carlson介紹了6.0ns的64位乘法器實現方法。2001年Itoh實現了一個600MHz的兩級流水線的54位乘法器。2003年Cho基于標準單元庫實現了一個3.25ns的54位乘法器,并提出了改進的進位選擇加法器結構。乘法器概述乘法器在當今數字信號處理以及其他諸多應用領域中起著十分重要的作用。隨著科學技術的發展,許多研究人員已經開始試圖設計一類擁有更高速率和低功耗,布局規律占用面積小,集成度高的乘法器。這樣,就能讓它們更加適用于高速率,低功耗的大規模集成電路的應用當中。通常的乘法計算方法是添加和位移的算法。在并行乘法器當中,相加的部分乘積的數量是主要的參數。它決定了乘法器的性能。為了減少相加的部分乘積的數量,修正的Booth算法是最常用的一類算法。為了實現速度的提高Wallace樹算法可以用來減少序列增加階段的數量。我們進一步結合修正的booth算法和Wallace樹算法,可以看到將它們集成到一塊乘法器上的諸多優勢。但是,隨著并行化的增多,大量的部分乘積和中間求和的增加,會導致運行速度的下降。不規則的結構會增加硅板的面積,并且由于路由復雜而導致中間連接過程的增多繼而導致功耗的增大。另一方面串并行乘法器犧牲了運行速度來獲得更好的性能和功耗。因此,選擇一款并行或串行乘法器實際上取決于它的應用性質。在本文中,我們將介紹乘法算法以及在應用結構方面的速度比較,占用面積,功率和這些情況的組合績效指標。乘運算考慮兩個沒有符號的二進制數X和Y,分別為M位寬和N位寬。為了說明乘法運算,可以用二進制形式來表示X和Y:X二藝X2i Y二刃Y2jiji=0 j=0X,Ye4),1}。于是乘法運算定義如下:ijZ=XxY=M^Z2kkk=0='藝X/]藝Y2+耳藝X匕2,+j'i=0 八j=0 丿i=0Jj=0 丿執行一個乘法運算最簡單的方法是采用一個兩輸入的加法器。對于M和N位寬的輸入,乘法采用一個N位加法器時需要M個周期。這個乘法的移位相加算法把M個部分積(partialproduct)加在一起。每一個部分積是通過將被乘數與乘數的一位相乘(這本質上是一個“與”操作),然后將結果移位到這個乘數的位置得到的。實現乘法的一個更快的辦法是采用類似于手工計算乘法的方法。所有的部分積同時產生并組成一個列陣。運用多操作數相加來計算最終的積。這一方法如圖所示。這一組操作可以直接映射到硬件。所形成的結構稱為陣列乘法器(arraymultiplier),它結合下面三個功能:產生部分積、累加部

分積和最終相加。例如:1101被乘數1101乘數1101部分積00001101110110010101結果二進制乘法的例子1.4乘法器結構乘法器的結構種類很多,在此我只介紹一種乘法器結構供接下來設計移位相加乘法器結構的設計做參考。浮點數包括尾數和指數兩部分,尾數部分進行的是乘法運算,指數部分進行的是加法運算,并依據尾數運算結果進行指數調整。乘池器的結構圖2-1乘法器結構尾數處理部分主要進行尾數擴展和一些數據正負的判斷以及負數的生成,以備在進行Booth編碼的時候使用。部分積的產生采用修正的Booth算法產生6個部分積,然后采用3:2和4:2壓縮器將結構壓縮為兩個,高速相加得到結果。之后通過符號修正、尾數舍入、規格化等操作對指數進行調整即可完成乘法功能。1.5乘法器端口定義通常,根據乘法器的功能計算要求定義乘法器的端口如下:ain:16位乘數輸入bin:16位被乘數輸入clk:工作時鐘輸入res_n:復位信號輸入start:開始位done:結束位yout:乘積輸出第二章移位相加乘法器設計的基本原理移位相加乘法器實現起來比較簡單,它的設計思想就是根據乘數的每一位是否為1進行計算,若為1則將被乘數移位相加。一個乘法器只需要一個移位寄存器和一個加法器就能組成。2.1移位相加乘法器設計基礎.1移位相加算法移位相加算法是乘法器最基礎的算法,下面以一個例子說明移位相加法實現MXN。手動乘法運算舉例:1101XI011110111010000+110110001111計算機實現方案1:部分積左移:1101X10111101+1101100111+0000100111+110110001111計算機實現方案2:部分積之和右移:1101X1011第一次部分積1101部分積之和右移1位+1101第二次部分積100111部分積之和100111部分積之和右移1位+0000第三次部分積100111部分積之和100111部分積之和右移1位+1101第四次部分積10001111部分積之和10001111部分積之和右移1位2.1.2乘法器設計原理乘法器基本工作原理大體分為三個步驟:(1)先將二進制的被乘數與乘數的每一位分別相乘,得到與乘數的位數相同個數的部分積;(2)將得到的部分積按權值錯位相加,進行部分積壓縮;(3)一級加法,通常采用一個超前進位加法器模塊。對乘法器的設計自然集中在各模塊的性能優化上,以達到速度快、面積小的目的。移位相加乘法器原理從手算的經驗可知執行一個乘法運算最簡單的方法就是采用一個兩輸入的加法器,進行部分積的累加,得到最終結果。對于N位的乘數與N位的被乘數的輸入,實現乘法運算需要N個加法器與2N個寄存器,乘法的移位和相加把N個部分積加在一起,部分積是通過被乘數與乘數移位后末位相與操作得到,然后將結果與存放在寄存器中的前次運算得到的結果進行相加,并將結果仍然存放在寄存器中,如此反復。這樣的操作在硬件實現上就是移位相加乘法器。移位相加乘法器的中間結果需要用寄存器保存的。其中時鐘信號可以使用系統時鐘信號。許多加法器結構都是應乘法器設計要求而生,如CPA(carry2propagateadder)、CSA(carry2saveadder)[7]和Wallacetree[8]等。移位相加乘法器優點是占用資源少。在第一個時鐘來的時候,把乘數的最低位與被乘數相與,當第二個時鐘到來時,仍然可以用剛才的與門來進行相與。這樣,即使乘數有多少位,

都是用相同的與門:缺點是運算速度慢,每次時鐘乘數輸入一位,假設乘數有4位,就需要4個時鐘周期才可以把結果輸出?!? 二:*餓乘器部分積產生時鐘加法器乘積寄存器 時鐘加法器乘積寄存器 右移圖3-1移位相加乘法

器第三章16X16位移位相加乘法器設計與仿真16位移位相加乘法器的設計位移和添加乘法器的一般結構如下圖所示,對于32比特的數乘運算,根據乘數最低有效位的數值,被乘數的數值被相加并累積。在每一個時鐘循環周期內,乘數被左移一個比特,并且它的位值被測試,如果位值是0,則只進行一次位移操作。如果位值是1,則被加數被放入累加器中,并且左移一位。當所有乘數的比特值被測試完之后,結果就在累加器當中。累加器最初是N位,相加之后變成2N位,最低有效位包涵了乘數。延遲是N個最大循環周期。16位移位相加乘法器Verilog文件設計完整的16X16位移位相加乘法器的Verilog文件設計和激勵測試文件將會在附件中給出,下面我只對本乘法器的重要部分做下說明。modulemux_16clk,rst_n,start,ain,bin,yout,done);reg[15:0]areg;reg[15:0]breg;reg[31:0]yreg;regdone_r;reg[4:0]i;這部分是我定義了一個時鐘elk,一個復位鍵rst_n,—個開始鍵start,輸入乘數ain,輸入被乘數bin,輸出yout,和結束位done。以及定義了兩個16位寄存器areg,breg,—個32位寄存器yerg,一個1位寄存器done_r,一個5位寄存器i。always@(posedgeelkornegedgerst_n)if(!rst_n)i<=5'd0;elseif(start&&i<5'd17)i<=i+1'b1;elseif(!start)i<=5'd0;always@(posedgeelkornegedgerst_n)if(!rst_n)done_r<=1'd0;elseif(i==5'd16)done_r<=1'b1;elseif(i==5'd17)done_r<=1'b0;assigndone=done_r;這部分主要對開始位start和終止位done的約束。always@(posedgeelkornegedgerst_n)beginif(!rst_n)beginareg<=16'h0000;breg<=16'h0000;yreg<=32'h00000000;endelseif(start)beginif(i==5'd0)beginareg<=ain;breg<=bin;endelseif(i>5'd0&&i<5'd16)beginif(areg[i-1])yreg<={1'b0,yout[30:15]+breg,yreg[14:1]};elseyreg<=yreg>>1;endelseif(i==5'd16&&areg[15])yreg<=yreg[31:16]+breg;end這部分是移位相加乘法器的運算方法。16X16位移位相加乘法器Modelsim仿真Modelsim仿真工具是Model公司開發的,它支持Verilog、VHDL以及他們的混合仿真。它可以將整個程序分步執行,使設計者直接看到他的程序下一步要執行的語句,而且在程序執行的任何步驟任何時刻都可以查看任意變量的當前值,可以在Dataflow窗口查看某一單元或模塊的輸入輸出的連續變化等。比Quartus自帶的仿真器功能強大的多,是目前業界最通用的仿真器之一。在采用Modelsim開始仿真之前我們首先應該搭建一個仿真測試的平臺,即為即將進行的測試文件編寫一個測試激勵(Testbench)。一個測試平臺文件就是一個Verilog模型,可以用來驗證所設計的硬件模型的正確性。測試平臺就是為所測試的元件提供一個測試激勵,仿真結果可以以波形的方式顯示或存儲測試結果到文件中。激勵信號可以直接集成在測試平臺文件中,也可以外部文件加載,在這里我們采用集成在測試平臺中如圖5-1。仿真模擬文件是采用軟件方法模擬一個乘法器,在編寫的時候并不考慮硬件情況所以是不可綜合的。它僅僅用于仿真,在相同的測試激勵下會產生和待測試文件一樣的乘法結果。但由于它采用的是純粹的軟件的仿真并不關心實際硬件,所以我們可以采用直接使用乘法得出結果,從而大大減小它的編寫難度同時能夠保證結果的正確性。如果待測試文件和仿真模擬文件在相同的測試激勵下輸出相同的結果,那么我們就可以認為設計是正確的。同時得益于軟件仿真的高速性我們可以再完成一組仿真比較之后緊接著自動進入下一組,同時自動改變仿真的數據組合,逐步將16位浮點數據的全部組合進行測試,確保在所有情況下的結果都是正確的。仿真測試平臺提供兩個相同的測試激勵分別將值給待測試文件和模擬測試文件,然后得到它們的結構進行比較,如果相同說明我們的設計在功能上是正確的,如果不同說明設計存在問題,驗證測試馬上終止,并給出錯誤位置和激勵信號幫助改正,具體實現代碼見附錄測試代碼部分。16X16位移位相加乘法器經典數組運算結果在數字電路設計流程中,在進行電路綜合前,必須要確保所設計的電路功能的正確性,本課題針對所設計的16*16位移位相加乘法器的verilog設計進行功能仿真,采用的是Mentor公司的仿真器Modelsim,仿真結果如下。

KZ-TKWprla5Z7H+NP?KZ-TKWprla5Z7H+NP?上圖是16位的0X0的功能仿真結果,根據第二節中闡述的二進制乘法的基本原理,對于被乘數與乘數都是16位的運算,可獲得32位二進制,由仿真結果,在運算結果正確的同時,位數也保持著正確。故s-lAIALelIALeLAd-r故s-lAIALelIALeLAd-rt.益總囂匱.f*#zB1X1FhEdkTimCcrtiph弓伽15怯AddWww罰。占La沁誠財曰出>2b亠$弔ev.?me:%口.?t十一丨蜀丨Lg“;斗抽出qI-.-..i-i-rl>iiV爆“*jaljalT?q*■?D>£匸t藥L兀工J7備碼HEIIJI■■11 ModflS.iriAI.TE3STARTEREDITION6SbEdf*e?匚Epi亡Eimuiji亡JddN旳eTg£lj汕該帕do甲HdpCbSQ?歸CbSQ?歸肛餌221州E=咯i5審凸口W亙酹」而■不:SBlBt呼[Bl曲護僧協阮列劇用bWM|9L?JUMI3-*^M^L&_^p_tSLtHl斗.ra?_lt_HtLt?Uc*$E_L&_?tjS哄“*I3-*^M^L&_^p_tSLtHl斗.ra?_lt_HtLt?Uc*$E_L&_?tjS哄“*—止_虹匕8?上P--*1nix_lfi_v^i_ti<yyauI圄平52SWWQKOtws|衛won.la沖 IHm:5^SDraDrila;LWYjoplMe,^|■si:寸吭ttow?93.?nn0X116X16位移位相加乘法器一般情況運算結果[#e]4|$|IX刪型右[#e]4|$|IX刪型右I"?£Xlt<%3r/備3 *!常訊旦気囤息(!/■)!■-「?I;JTnunrl|-機T_啊Jfe叫■強尿—弛心|空嗆3??|塁LW>心腎問I屛如.1 也L0T打pxfaUHrw Hoh:S,5LDmDdli:。:^pci::^|>taw呼MruMkJ _ 嚴L —J-XW? ■:社ev.■M;::咯15冷口血週et++1 ;g戸i勺xnfjii-....i-ip補知土幻r?■■-二JJSl畑ML1odel5ll-iAIRFIASTARTEREDfTIDN65bEdk Cc^npJe劭muUieMd Tg£UpotxnvXdo彈H^p89X33MMoc^lSirnALHHASTARTEREDRION65b%:理:WruMicDMMoc^lSirnALHHASTARTEREDRION65b%:理:WruMicD24945X32580第四章16X16位移位相加乘法器Verilog設計綜合RTL級概念RTL的全稱為寄存器傳輸級(RegisterTransferLevel),它是對芯片設計的一種層次的抽象描述。不同于行為級和門級描述,RTL級的重點是寄存器和其間的邏輯。和行為級相比,RTL級的描述更加規范和嚴格,可以使用工具轉換成門級電路;但比起門級電路,由于抽象層次高,RTL級的描述更清晰,容易理解。在RTL級,設計被抽象為一系列的寄存器,而信號隨著時鐘從一個寄存器傳遞到另一個寄存器,如圖4-1所示。這一模型反映了數字系統的幾個要素、寄存器組成的時序邏輯、寄存器之間的組合邏輯以及關鍵的時鐘信號。雖然還不是具體的電路,但RTL級設計作為描述電路的另一種方法,必須是物理的可實現的。所以,真正的芯片設計應該是從RTL代碼的編寫開始的。具體來說,RTL級設計應該考慮以下因素:可綜合性:RTL級設計完成后的工作就是綜合,因此RTL級設計必須是可綜合的。首先,編寫代碼使用的預言必須是可綜合的。目前,編寫RTL代碼一般使用VHDL或VerilogHDL語言,這兩種語言中,并不是所有的語言成分都是可綜合的,可綜合的子集取決于綜合工具的能力。但IEEE為這兩種語言的綜合分別制定了相應的標準,規定了綜合工具必須支持的最小集合,分別是針對VHDL的IEEE1076.6和針對Verilog的IEEE1364.1.在此基礎上,RTL級設計還應該是“面向綜合”的。因為,即使完全使用可綜合的語言成分,不同的代碼產生的綜合結果也會大不相同。更高的要求是編寫代碼時沖分考慮到綜合的工作,通過靚號的編碼使綜合以及此后的其它實現步驟可以順利地進行,減少反復。可測性:由于測試在芯片設計中的重要性,現在必須在RTL級就開始考慮測試的問題。這雖然不是RTL所必須的,但如果不在RTL編碼時就為測試作出努力,而是把測試完全交給后端,最后的結果可能是根本無法達到要求的故障覆蓋率,而不得不在RTL級進行返工。重用性:RTL級設計時應考慮到的另一個問題就是代碼的可讀性和可移植性,這在大型的設計中尤為重要。今天的百萬門級的設計不可能是每個模塊從頭開始,甚至有可能全部使用IP或現有的模塊,這樣既縮短了設計的時間,也減少了風險。這就要求代碼的編寫者盡可能地完善代碼的重要性。那種幾個月后連自己也看不懂的代碼是絕對不可取的。4.其它的考慮:要實現高質量的RTL級設計還應該考慮到時序收斂、可驗證性、可調試性、芯片面積和功耗等問題??傊?,RTL級設計雖然不是設計的最終結果,但它在很大程度上已經決定了設計的功能和性能。雖然可以通過此后的綜合或者布局布線對設計進行一定程度的優化,但優化結果很依賴于RTL級設計。高質量的RTL設計可以使后端的工作輕松地達到設計目標:相反,質量差的RTL級設計,可能使后端設計困難重重,甚至無法完成,最終不得不回過頭修改RTL級設計。毫不夸張地說。在RTL級設計中的一個改進所產生的作用,往往要比這綜合或后端設計中的一個改進效果大得多。這就要求RTL級的設計者不應依賴于后端的工具解決延時、面積、測試等問題,而是應該將注意力集中到RTL級設計中,從一開始就考慮到綜合,考慮到最終生成的電路。RTL級綜合結果與分析以下是在仿真中得到的對設計面積,運行時間,約束時間的報告。Report:constraint-verbosePOLI^tInezPa匸Eiclock(inputpaitclack)(xiasu日qre:卜0.000.00elDtzknerw口:rlcdalay|ideal}0.000.00inputexrexnaldela.7Q.QQE3--r.lJI[in]0.000.00fTU28/Y(MX?XP}0.100-1Sfairegreg[OJ/D(DFFRHQXL>0.00口■丄右rdacaanimalcime0?IEclockelk(riseedge)0.000-00elDtzknerw口:rlcdalay|ideal}0.000.00alocJi:uncefcaLiiLy?!隹?.20fflT=g_rea[01/OK(DFFE^iaXl}0.20rlibraryholdtime-0.030-1TlJe匚mrequired.匸imedataretired,time0.17dataa-iivnltime-0-18alack(b£ZT)0.02Netsmaxtransition一TransiElonTlrtia4.502.01Slack2■豹IMEI^Ner:nl92maxMpacitanc-e0?1昭一Capac1rance0.0£Slacko.oeIMETt由上述報告能夠看出在電路的約束時間上,要求的時間為0.17s,到達的時間為0.18s,時間裕量0.1s。此乘法器的對大傳輸時間為4.50s,—般的傳輸時間為2.01s,時間裕量為2.49s。最大電容0.16f。一般電容0.08f。電容裕量0.08f。Report:timing-pathfull-delaymax-max_paths10u23D.G3faJd矽S2/A(fl]fmus16DW01add0.00D.23fadd1932/Tui/Y(AJ3D2XL)0.250,IBf呂3d今號32/U8/YfNSJjD^XL)0-120.6Dra.dd_^3_S2/Ulfl/¥(tIAHD3X2}0?12D.72fazid^9S2/UL2/CC(ADDFX2)0.3^1.06fadd4932/U23/CC(CMPR32Xl|i0-331.40f3_S2/U1_4/CC(ADDFHK2>□u241.63fadd19S2/UdL5/DC(ADDFHX2}0.241.B7faddT932/TU亦:■:r;(ADDFHX2)0.222.05fa 今9_32/UZ3/Y(WAND2X2}0-092.29rarid_^3_S2/U3/Y(NAUE3X1)2.31fazid佔S2/ULS/CC(ADDFHX2>0.232.5^f83d馬032/U29/CO(ADDFBX2>0-222.76rm曰3_32/ui_io/co(ADDEHX2f□u222?9且£aad弓9S2/U112/CO(ADDFEX2J0.223.2Dfadd^9 (tfAHD2XL}0-093.30ra哎浬_目9_S2/U24/Y(WHTDQXn>0-123.斗2taJd_15_S2/U1_13/CO(ADDFX2J0.353.76fazid佔S2/UL1-i/CO(ADDFEX2J0.2^^.0Df呂3d今號32/U25/Y(XOR2XL)0-25.25rasd 52/5UM[15](mw<16dwo1adda|□uQO目?25£J196/Y(A0I22XL).IDx"?7-:/Y(NAKD2XP}0.09弓?斗號fyieg_zeg[15]/D(DFFRHQX4>□u00s49r.data,arrivaltzme百?49cloclc:cllc(riseedge)5.口。5.0Dclocknetworkd.ela^|meal)OuQO5.0Dclack■LLnGtEtaincyT?8DyrEa_reo[15]/CE(DFFRPQK^)0K00.BOI1Lbxarywmiptuna-0u30目?5Ddata,requiredtiMe4?5Ddaiimrequire!rime4.5D■lataarrival■cxme一目.聒3lack(METJCLDI由上述報告能夠看出在電路的延時時間上要求延時時間為4.50s。實際到達時間為4.49s,時間裕量為0.01s,符合要求。Report:areaRepcru;areaDesign:inux_16VEraiansC-2009?。百Date:TucD=c1005:39:022313A-AA-AA-A-AA-A-AJfAihJfAA-A-AA-A-AA-AA-A-AA-A-A^AA-A-AA-A-AA-AALUoxazy(s)Usea:alcw(File:/Exsoxt/homeOS/cacbei/1iba/日ynopayj/alaw?db)Efunucez-o±perrs!:tfuirjcezo±nets:EE290tTumjceTofcells:217Numt'ETofrefercnees:30Conii:marionalarea;tlonconjcmatzonalarea:ETrtIntexconnect a:5754.5EB376undefined(NawireleadJDEGifisd)ToralcellareatTotalarea.:10651.049722undetaned由上述報告能夠看出在電路的面積上有68個端口,分別是乘數輸入16個端口,被乘數輸入16個端口,乘積輸出32個端口,開始端口,結束端口,工作時鐘輸入端口,復位信號輸入端口。有290條連線和217個單元組成。組合區域面積為5794.588876立方微米,非組合區域面積為4896.460846立方微米??偣矄卧娣e10691.049722立方微米。16位移位相加乘法器電路圖所謂的DC即DesignCompiler。它是十多年來工業界標準的邏輯綜合工具,也是Synopsys最核心的產品。它使IC設計者在最短的時間內最佳的利用硅片完成設計。它根據設計描述和約束條件并針對特定的工藝庫自動綜合出一個優化的門級電路。它可以接受多種輸入格式,如硬件描述語言、原理圖和網表等,并產生多種性能報告,在縮短設計時間的同時提高設計性能。所以Synopsys公司DesignCompilerEDA工具在綜合時用可以進行RTL級設計綜合,得到門級網表。以下是我通過Synopsys公司DesignCompilerEDA工具在綜合時得到的結果。綜合單元*A^icaiion^Acnorii□esl'gnVlsfon-TapLevfifil -[Hheir-1]比FileEditviewSelectHighlightListHierarchyDesignAttributesSchematicTimingTestPowerWindowHelpUi^Ramujc16LogicialHierarchy勺"f>==Amux_16匚皂IINameIRefNameIcellFalhIDe-ntTauch!-Dadd_ag_52OU6^^logicU6undeFmed!-Oadd_46_S2£>U7**logic_O**U7undefined—1OUL2"logfijO"UL2undefined£>add_49_52MUX_16_DWadd_45_S2□ndefinadOadd4652mux16DW..add46S2undefined£>yr&g_regaDFFRHQK1/r&g_regaDa□ndefinedt>done_r^regDFFRHQXLdone_r_regundefined£>yr&g_reg3DFFRHQK1yreg_regaL3aundefinedOyreg_rega?DFFRHQXLyreg_negaL2aundefinedE>yreg_regaDFFRHQKL/re-g_regaLLaundefinedOyreg^rega.DFFRHQXLyreg_regaL0aundefinmdOyrEg_regsDFFRHQXLyneg_rega?aundefinedOyreg_rega?DFFRHQXLyreg_regaBaundefinedC>yreg_regsDFFRHOX1yneg_rega7aundefinedOyreg_rega?DFFRHQXLyreg_rega6aundefinedOyregregsDFFRHQXL/neg_rega5sundefinedD-yr&g_rega...DFFFLHQXLyr&g_regaiia□ndefinEdOyreg_rEgaDFFRHQXLyn?g_rega3aundefinedI>yr&g_regaDFFRHQKLyreg_rega2aundefinedOyreg_regsDFFRHQXLyn?g_regaiL3undeFmedD-breg_regaDFFRHQK1breg_regaL4aundefined玉 Hier1&Schematic丄mux16Options:Historydesign_vision>Ready□lcaobei<?riguanJhonie/hanieCS工caobei-^tiguan/hcnie/harTieOS|□cacbei^tiguan/hcnie/honieOS| [JflsigiVision-TopLevel.L(n.綜合端口?Asr.wlig4ADion戶口F5fn<sron-ToULe螢-IflMIrxiue:uisrrk一fTi尸%-RJU: 畫1卜」」口i.嚴*1/1KjpcII■J:XLogicalHierarchy|FinName~0youtf301|FinFdlName匕A繪IKIIZD.-S-Inldityjevr館-mqHigh-ightIjsltys-ranzhylcm巴gn^nribuss5?iemmtkl=l.mingJJBa.^pwmFl^.ndDIsHe--pLogdrtwigITWigvHrt--1一Ld」■CBLGb?.喲o.gu3nJ-LhonlJ?=rl:lmeo5-azno」=亙1」binM」Z.Z5U」bin〔巴旦三巴bin〔a§3bin亙ssbinpsbin「LI-binE一ss口一n〔L4」binE一-±,ms邑nEainEznmz.ml」5m-ZZ5U」znEznb?」bin〔已s^3bin亙ssbinpQbin「LIbinphjhinEznEbinE盤亙s邑nEainEschemaiil:"!.muwlB?S.@I00ol.onfLLcELOb?-啥3.guarQ=Fcnl_l?al;EI:七wn?g圭I-.-ril=.-K」2k;-flJl■■!3■上L■^homeos-ftCBLGS-爲d.guanjhome/hclmeos-^oemigl<5ion?TopLe語LL(rm11i—1131-1.=LSct^atk丄raii_l&_tMrth―9d-HeiqcVurn-T甲『idIE-fea^ifc!-|hhMinb?.ZJSl三i? E直gft=0兇憤駅4也申imc吟Q?*jr-iprihMBbi^heniK.P?ha也粉夕血H呷&'tglp zsiggnumup財s-*n?BWgh.WIBGMNi^-Up^TLiHjikikl?K<rix^li.{」|aei?匸■砂ttuiKhTuHCi/^iA屯£i-jiy>'■"^ui?TEELV.d.1lidLfijI.L^bti最終得到的優化后的電路圖結論本文采用自上而下的正向設計方法在仔細分析了移位相加算法和乘法器結構的基礎之上設計了一種16X16位移位相加乘法器,可以實現16位和16位數的乘法運算。通過VerilogHDL語言進行了硬件電路的描述,通過對電路進進行RTL級的設計描述。然后編寫測試激勵程序,用Mentor公司的Modelsim仿真器進行功能仿真,完成了功能驗證。并利用Synopsys公司的DesignCompilerEDA工具,編寫綜合腳本文件,利用所編寫的DC腳本文件把設計的VerilogHDL描述的乘法器綜合成與標準單元庫相關的門級設計,完成了電路的實現。而該電路的功能仿真和驗證都已經正確通過,驗證表明乘法器具有優良的性能。最后得到了電路的門級網表,完成了本課題的設計目的,獲得16位移位相加乘法器的電路。參考文獻雷紹充,邵志標,梁峰.超大規模集成電路測試[M].北京:電子工業出版社,2008:25-32馬慧艷?集成電路微控制器的掃描測試以及內建自測試的研究[D]?天津:天津大學,2007E.J.McCluskeyandS.Bozorgui-Nesbat.DesignforAutonomousTest[J].IEEETrans.Computer,Vol.C-30,No.11,1981,860-875A.KraaasniweskiandS.Pilarkski,CircularSelf-TestPath:aLowCostBISTTechniqueforVLSICircuits[J].IEEETrans.Computer-AidedDesign,Vol,CAD-8,No.11989,46-55⑸姚俊?基于BIST的嵌入式存儲器可測試設計算法研究[D]?哈爾濱:哈爾濱工程大學,2007[6]孟慶.SOC設計中IP核的測試方法與應用[D],浙江:浙江大學,2004⑺于敦山,沈緒榜.32位定/浮點乘法器設計[J].半導體學報,2001,22(1):91-95.王鈿,卓興旺.基于VerilongHDL的數字系統設計應用設計?第二版?北京:國防工業出版社,2007-8JohnF.Wakerly.數字設計原理與實踐(原書第四版).北京:機械工業出版社,2007-5CliffordECummings.SynthesisandScriptingTechniquesforDesigningMulti-AsynchronousClockDesign.SUNG-2001SanJose,CAVotedBestPaper3rdPlace,2001:2-4,16-23夏宇聞.Verilog數字系統設計教程.北京:北京航空航天大學出版社,2003MichaelD.Ciletti.VerilogHDL高級數字設計.北京:電子工業出版社,2005MarkBalch.完整的數字設計.北京:清華大學出版社,2006:75-94MichaelDCiletti.AdvancedDigitalDesignwiththeVerilogHDL[M].影印版.北京:電子工業出版社,2004.115-119唐杉,徐強,王莉薇?數字IC設計[D].北京:機械工業出版社,2001附錄一modulemux_16(clk,rst_n,start,ain,bin,yout,done);inputclk;inputstart;inputrst_n;input[15:0]ain;input[15:0]bin;output[31:0]yout;outputdone;reg[15:0]areg;reg[15:0]breg;reg[31:0]yreg;regdone_r;reg[4:0]i;always@(posedgeclkornegedgerst_n)if(!rst_n)i<=5'd0;elseif(start&&i<5'd17)i<=i+1'b1;elseif(!start)i<=5'd0;always@(posedgeclkornegedgerst_n)if(!rst_n)done_r<=1'd0;elseif(i==5'd16)done_r<=1'b1;elseif(i==5'd17)done_r<=1'b0;assigndone=done_r;always@(posedgeclkornegedgerst_n)beginif(!rst_n)beginareg<=16'h0000;breg<=16'h0000;yreg<=32'h00000000;endelseif(start)beginif(i==5'd0)beginareg<=ain;breg<=bin;endelseif(i>5'd0&&i<5'd16)beginif(areg[i-1])yreg<={1'b0,yout[30:15]+breg,yreg[14:1]};elseyreg<=yreg>>1;endelseif(i==5'd16&&areg[15])yreg<=yreg[31:16]+breg;endendassignyout=yreg;endmodule。附錄二'timescale1ns/lOOpsmodulemux_16_vlg_tst();regeachvec;reg[15:O]ain;reg[15:O]bin;regclk;regrst_n;regstart;wiredone;wire[31:O]yout;mux_16i1(.ain(ain),.bin(bin),.clk(clk),.done(done),.rst_n(rst_n),.start(start),.yout(yout));initialbeginclk=O;forever#1Oclk=~clk;endinitialbeginrst_n=0;start=0;ain=16'd0;bin=16'd0;#500rst_n=1'b1;#500ain=16'd0;bin=16'd0;#500ain=16'd1;bin=16'd1;#500ain=16'd0;bin=16'd1;#500ain=16'd89;bin=16'd33;#500ain=16'd65432;bin=16'd65355;#500start=1'b1;#50000start=1'b0;#1000$stop;endEndmodule附錄三Report:constraint-verboseDesign:mux_16Version:C-2009.06Date:TueDec1009:59:022013Startpoint:yreg_reg[16](risingedge-triggeredflip-flopclockedbyclk)Endpoint:yreg_reg[15](risingedge-triggeredflip-flopclockedbyclk)PathGroup:clkPathType:maxPointIncrPathclockclk(riseedge)0.000.00clocknetworkdelay(ideal)0.000.00yreg_reg[16]/CK(DFFRHQX4)0.000.00ryreg_reg[16]/Q(DFFRHQX4)0.230.23fadd_49_S2/U11/Y(AND2X1)0.250.48fadd_49_S2/U8/Y(NAND2XL)0.120.60radd_49_S2/U10/Y(NAND3X1)0.120.72fadd_49_S2/U1_2/CO(ADDFX2)0.341.06fadd_49_S2/U1_3/CO(CMPR32X1)0.331.40fadd_49_S2/U1_4/CO(ADDFHX2)0.241.63fadd_49_S2/U1_5/CO(ADDFHX2)0.241.87fadd_49_S2/U1_6/CO(ADDFHX2)0.222.09fadd_49_S2/U13/Y(NAND2X1)0.092.19radd_49_S2/U3/Y(NAND3X1)0.122.31fadd_49_S2/U1_8/CO(ADDFHX2)0.232.54fadd_49_S2/U1_9/CO(ADDFHX2)0.222.76fadd_49_S2/U1_10/CO(ADDFHX2)0.222.98fadd_49_S2/U1_11/CO(ADDFHX2)0.223.20fadd_49_S2/U22/Y(NAND2X1)0.093.30radd_49_S2/U24/Y(NAND3X1)0.123.42fadd_49_S2/U1_13/CO(ADDFX2)0.353.76fadd_49_S2/U1_14/CO(ADDFHX2)0.244.00fadd_49_S2/U25/Y(XOR2X1)0.254.25fU196/Y(AOI22XL)0.154.40rU273/Y(NAND2X1)0.094.49fyreg_reg[15]/D(DFFRHQX4)0.004.49fdataarrivaltime4.49clockclk(riseedge)clocknetworkdelay(ideal)clockuncertaintyyreg_reg[15]/CK(DFFRHQX4)librarysetuptimedatarequiredtime5.000.00-0.200.00-0.305.005.004.804.80r4.504.50datarequiredtime 4.50dataarrivaltime -4.49slack(MET)0.01Startpoint:ain[0](inputport)Endpoint:areg_reg[0](risingedge-triggeredflip-flopclockedbyclk)PathGroup:clkPathType:minPointIncrPathclock(inputportclock)(riseedge)0.000.00clocknetworkdelay(ideal)0.000.00inputexternaldelay0.000.00fain[0](in)0.000.00fU228/Y(MX2X1)0.180.18fareg_reg[0]/D(DFFRHQX1)0.000.18fdataarrivaltime0.18clockclk(riseedge)0.000.00clocknetworkdelay(ideal)0.000.00clockuncertainty0.200.20areg_reg[0]/CK(DFFRHQX1)0.000.20rlibraryholdtime-0.030.17datarequiredtime0.17datarequiredtime0.17dataarrivaltime-0.18slack(MET)0.01

Net:n192max_transition4.50-TransitionTime2.01Slack2.49(MET)SlackNet:n192max_capacitance0.16-Capacitance0.08Slack0.08(MET)Slack附錄四Report:areaDesign:mux_16Version:C-2009

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論