集成電路課程設計_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計報告</b></p><p><b>  集成電路課程設計</b></p><p>  年 級: 2010級 </p><p>  姓 名: </p><

2、p>  專 業(yè): 電子科學與技術(微電子技術方向) </p><p>  指導老師: </p><p><b>  二零一三年七月</b></p><p><b>  摘 要</b></p><p>  二十一世紀是信息時代

3、,計算機已經(jīng)應用到人類生活的各個方面,運算器作為計算機中一個非常重要的基礎器件,有著不可替代的重要作用。其中乘法器作為運算器的一個重要組成部分,在實際應用過程中有著不可替代的作用。</p><p>  采用串行的1位乘法方案,即多次執(zhí)行“加法—移位”操作來實現(xiàn)。這種方法并不需要很多器件。然而串行方法畢竟太慢,自從大規(guī)模集成電路問世以來,出現(xiàn)了各種形式的流水式陣列乘法器,它們屬于并行乘法器。所以本文主要探究陣列乘法

4、器。陣列乘法器是通過與門、半加器和全加器構成的陣列來實現(xiàn)。比起傳統(tǒng)的移位乘法器來說,它的輸出延遲低,功耗小具有很好的實用價值。</p><p>  在m位乘n位不帶符號整數(shù)的陣列乘法中,“加法—移位”操作的被加數(shù)矩陣。每一個部分乘積項(位積)aibj叫做一個被加數(shù)。這m×n個被加數(shù){aibj|0≤i≤m-1和0≤j≤n-1}可以用m×n個“與”門并行地產(chǎn)生。顯然,設計高速并行乘法器的基本問題,

5、就在于縮短被加數(shù)矩陣中每列所包含的1的加法時間。</p><p>  本文采用cadence全定制流程和ASIC流程深入探究了4位陣列乘法器的相關性質。包括陣列乘法器的原理圖以及版圖。同時對原理圖和版圖仿真,進一步確定陣列乘法器的功能、面積、功耗、延時等問題。</p><p>  關鍵詞: 陣列乘法器 cadence ASIC 半加器 全加器</p><p&

6、gt;  第一章 ASIC設計流程</p><p>  1.1 DV生成網(wǎng)表</p><p>  編寫4位陣列乘法器的Verilog代碼,導入DV軟件中,生成網(wǎng)表文件。</p><p>  4位陣列乘法器的Verilog代碼如下:</p><p>  module cc_MulX4 (Z,X,Y);</p><p>

7、  output[7:0] Z;</p><p>  input [3:0] X;</p><p>  input [3:0] Y;</p><p>  and(Z[0],X[0],Y[0]);</p><p>  wire W1,W2,W3;</p><p>  and(W1,X[1],Y[0]);</p>

8、;<p>  and(W2,X[2],Y[0]);</p><p>  and(W3,X[3],Y[0]);</p><p>  wire A0,A1,A2,A3;</p><p>  and(A0,X[0],Y[1]);</p><p>  and(A1,X[1],Y[1]);</p><p>  an

9、d(A2,X[2],Y[1]);</p><p>  and(A3,X[3],Y[1]); </p><p>  wire C0,C1,C2,C3,W4,W5,W6;</p><p>  halfadder ha1(W1,A0, Z[1],C0); </p><p>  fulladder fa1(W4,C1,W2,A1,C0);</

10、p><p>  fulladder fa2(W5,C2,W3,A2,C1);</p><p>  halfadder ha2(C2,A3,W6,C3); </p><p>  wire A4,A5,A6,A7;</p><p>  and(A4,X[0],Y[2]);</p><p>  and(A5,X[1],Y[2])

11、;</p><p>  and(A6,X[2],Y[2]);</p><p>  and(A7,X[3],Y[2]); </p><p>  wire C4,C5,C6,C7,W7,W8,W9;</p><p>  halfadder ha3(W4,A4, Z[2],C4); </p><p>  fulladder

12、 fa3(W7,C5,W5,A5,C4);</p><p>  fulladder fa4(W8,C6,W6,A6,C5);</p><p>  fulladder fa5(W9,C7,C3,A7,C6);</p><p>  wire A8,A9,A10,A11;</p><p>  and(A8,X[0],Y[3]);</p>

13、<p>  and(A9,X[1],Y[3]);</p><p>  and(A10,X[2],Y[3]);</p><p>  and(A11,X[3],Y[3]);</p><p>  wire C8,C9,C10;</p><p>  halfadder ha4(W7,A8, Z[3],C8); </p>

14、<p>  fulladder fa6(Z[4],C9,W8,A9,C8);</p><p>  fulladder fa7(Z[5],C10,W9,A10,C9);</p><p>  fulladder fa8(Z[6],Z[7],C7,A11,C10);</p><p><b>  endmodule</b></p>

15、<p>  module halfadder(a,b,sum,cout);</p><p>  input a,b;</p><p>  output sum,cout;</p><p>  and(cout,a,b);</p><p>  xor(sum,a,b);</p><p><b> 

16、 endmodule</b></p><p>  module fulladder(sum,cout,x,y,cin);</p><p>  output sum,cout;</p><p>  input x,y,cin;</p><p>  wire a,b,c;</p><p>  xor(a,x,y

17、);</p><p>  xor(sum,a,cin);</p><p>  and(b,x,y);</p><p>  and(c,a,cin);</p><p>  or(cout,c,b);</p><p>  endmodule </p><p>  DV生成的原理圖如下:</p&

18、gt;<p>  然后利用語句write -hier -format verilog output Multiplier_nl.V將生成的網(wǎng)表文件保存起來備用。</p><p>  1.2 Silicon Ensemble進行自動布局布線 </p><p>  將DV中生成的網(wǎng)表文件導入Silicon Ensemble中,按照ASIC流程一步步將網(wǎng)表最終生成.def文件。&

19、lt;/p><p>  由于軟件的限制,中途出錯不能修改只能重做。所以每一步都必須認認真真仔仔細細按照流程做。</p><p>  問題與解決方法:在導入網(wǎng)表文件是報錯,不能進行一下步制作。這時應該仔細查看軟件所報錯誤,如果是底層元件問題,則需要換服務器。</p><p>  1.3 cadence下生成版圖</p><p>  將.def文件

20、導入cadence中,生成版圖并進行DRC驗證。</p><p>  問題與解決方案:在導入,def文件后,往往會出現(xiàn)不能自動生成版圖的情況。這時候應該仔細檢查是否有添加原件庫。如果有庫還是出錯,那應該打開每個庫再次檢查,因為有些庫即使添加了有可能也是空的,所以導致不能自動生成版圖。</p><p>  1.4 cadence下畫原理圖</p><p>  這個原

21、理圖必須按照DV生成的原理圖畫,并且一定要到門級電路的程度,否則將導致原理圖與版圖不能匹配。而且由于每個使用的verilog代碼有所不同,因此生成的原理圖不同,從而生成的版圖不同。更有甚者即使是同一個verilog代碼,由于使用的庫不同,生成的原理圖也會不同,所以必須認真檢查核對自己DV原理圖后才能畫原理圖。</p><p>  以上是我生成的原理圖。這個原理圖中的全加器我已經(jīng)安裝門級電路搭好生成了symbo,并

22、且這個全加器的門級電路需要按照DV中所給的全加器的門級電路搭建。溫馨提示:有些verilog生成的全加器就是庫文件中的全加器不需要自搭,因此再次重申,這個原理必須嚴格按照DV中生成的原理圖畫,不能按自己所想任意而為。</p><p>  問題與解決方法:只要嚴格按照DV中所給的原理圖畫,基本上不會有問題。但是會出現(xiàn)這種情況,DV中顯示的是頂層電路,沒有顯示門級電路,照著這個頂層電路畫,就會出錯。因此必須看到門級電

23、路后才能開始動手畫原理圖,否則就是浪費時間,必然會返工的。</p><p>  原理圖完成后就是版圖和原理圖的匹配驗證了,</p><p>  從上圖容易看出,我的版圖與原理圖是mathc的!</p><p>  問題與解決方法:版圖與原理匹配是一個非常漫長的過程,往往一開始會有上百個錯,但是不用灰心。經(jīng)驗告訴我們自動生成的版圖存在VDD與GND沒加通孔的問題,因此

24、首先需要將通孔加上,這樣錯誤會減少不少。</p><p>  接下來就是查看LVS后OUTPUT所給的又那些錯了。一般來說會是輸入輸出引腳不匹配的問題,這個問題比較好辦。可以將版圖中的Display選項中的stat和stop的參數(shù)值調成0,0。這樣版圖上就會顯示出每個元件的名字,這樣就可以通過版圖上所給的名字去核對每個引腳的是否對應的接在了正確的元件上。</p><p>  如果這樣做之后

25、還有錯,那可以通過error display這個選項,查看錯誤的具體位置在哪。當然,點first之前最好將錯位的標記顏色改了,因為默認的為黑色,在版圖上完全看不清楚。白色是個不錯的選擇,比較明顯。但是這個功能并不是特別完善,軟件所給出的錯誤往往多于實際錯誤,所以不要陷在那些小錯誤中,要去找那些大錯位。并且始終記住一點,自動生成的版圖,除了少了幾個通孔外,沒有其他錯誤不要修改。只改原理圖是最好的選擇。</p><p&g

26、t;<b>  定制設計流程</b></p><p><b>  2.1電路原理</b></p><p>  不帶符號的陣列乘法器</p><p>  設有兩個不帶符號的二進制整數(shù):</p><p>  A=am-1…a1a0</p><p>  B=bn-1…b1b0<

27、;/p><p>  它們的數(shù)值分別為a和b,即</p><p>  在二進制乘法中,被乘數(shù)A與乘數(shù)B相乘,產(chǎn)生m+n位乘積P:</p><p>  P=pm+n-1…p1p0</p><p><b>  乘積P 的數(shù)值為:</b></p><p>  上述過程說明了在m位乘n位不帶符號整數(shù)的陣列乘法中

28、,“加法—移位”操作的被加數(shù)矩陣。每一個部分乘積項(位積)aibj叫做一個被加數(shù)。這m×n個被加數(shù){aibj|0≤i≤m-1和0≤j≤n-1}可以用m×n個“與”門并行地產(chǎn)生(如右下圖所示)。顯然,設計高速并行乘法器的基本問題,就在于縮短被加數(shù)矩陣中每列所包含的1的加法時間。</p><p>  這種乘法器要實現(xiàn)n位×n位時,需要n(n-1)個全加器和n2個“與”門。該乘法器的總的乘

29、法時間可以估算如下:</p><p>  令Ta為“與門”的傳輸延遲時間,Tf為全加器(FA)的進位傳輸延遲時間,假定用2級“與非”邏輯來實現(xiàn)FA的進位鏈功能,那么我們就有:</p><p>  Ta = Tf = 2T</p><p>  從演示中可知,最壞情況下延遲途徑,即是沿著矩陣最右邊的對角線和最下面的一行。因而得n位×n位不帶符號的陣列乘法器總的

30、乘法時間為:</p><p>  tm=Ta+ (n-2)6T+5T+(n-1)]×Tf</p><p> ?。?T+6nT-12T+5T+(n-1)×2T=(4n-2)×2T </p><p>  4×4位陣列乘法器的邏輯電路:</p><p>  問題與解決方法:這個原理圖所有的器件都在元件庫中能夠

31、找到,只需按照陣列乘法器的排布規(guī)則連接即可。但是注意,有個元件庫中的原件在最底層的mos管是沒有具體參數(shù)的。這樣的元件是不可用的,這種情況在check的時候不會報錯,但是不能仿真。所以添加元件的時候要注意這個問題。</p><p><b>  2.2 電路仿真</b></p><p>  本電路采用NClaunch仿真,具體的verilog代碼在第一章的ASIC流程中

32、已經(jīng)給出,在這不做贅述。仿真向量的代碼如下:</p><p>  module testbed();</p><p>  wire[7:0] Z;</p><p>  reg[3:0] Y;</p><p>  reg[3:0] X;</p><p>  cc_MulX4 m1(Z,X,Y);</p>&

33、lt;p><b>  initial</b></p><p><b>  begin</b></p><p>  X = 4'b0000; Y = 4'b0000;#25 </p><p>  X = 4'b0001; Y = 4'b0001;#25</p><p&

34、gt;  X = 4'b0011; Y = 4'b0011;#25 </p><p>  X = 4'b0111; Y = 4'b0111;#25</p><p>  X = 4'b1111; Y = 4'b1111;#25</p><p>  X = 4'b1000; Y = 4'b1000;#25&

35、lt;/p><p>  X = 4'b1100; Y = 4'b1100;#25</p><p>  X = 4'b1110; Y = 4'b1110;#25</p><p>  X = 4'b0110; Y = 4'b0110;#25</p><p>  X = 4'b1001; Y =

36、4'b1001;#25;</p><p><b>  end</b></p><p><b>  initial</b></p><p>  #250 $finish;</p><p><b>  Endmodule</b></p><p>  

37、由于4×4的輸入數(shù)據(jù)是在太多,這里只仿真了十組數(shù)據(jù)。但是基本上能夠代表電路的正確性了。</p><p><b>  仿真結果如下:</b></p><p>  問題與解決方法:這里的verilog代碼應該嚴格按照自己所化的原理圖,按照門級格式來寫,如果直接寫A*B那么實際上仿真的電路并不是所畫的原理圖,不其任何作用。</p><p>

38、  如果代碼報錯,直接按照報錯問題的位置去查找修改就行了。值得注意的是,錯誤的語句在紅色的字上面而不是下面,以免會漏改錯誤。</p><p><b>  2.3 版圖設計</b></p><p>  版圖設計完全是按照原理圖來。因為原理圖中的所使用的所有元件都已經(jīng)有了自己的版圖,所以可以先將所有用到的元件版圖拷貝到自己的版圖中,然后進行連線即可。</p>

39、<p>  值得注意的是排版問題,因為不同的排版將會導致連線的難易程度有很大的差距。建議按照自動布線的排版方式,這樣可以節(jié)省較多空間并且減少許多空間浪費。并且可以降低不少難度。</p><p>  原本打算是做8×8的陣列乘法器的,就是卡在版圖這里。8×8的陣列乘法器的版圖是在是非常復雜,整整是4×4的4倍,而且連線變得非常難繞。最終放棄做而選擇做4×4的。現(xiàn)在

40、想起來,我之所以不能布出8×8的版圖,就是因為我嚴格按照原理的元件布局來畫版圖,活生生將布線的難度提高了。如果在畫版圖之前能夠認真思考一下,應該就能有更好的收獲。</p><p>  下圖為4×4陣列乘法器的版圖:</p><p>  這是個非常差強人意的版圖,浪費太多空間且布線特別復雜。但是DRC驗證沒有問題,也算是值得欣慰了。</p><p>

41、;  接下來的LVS驗證也通過。</p><p>  問題與解決方法:版圖DRC驗證是可能出現(xiàn)報出錯誤而在版圖上找不到的情況,畢竟版圖這么大出現(xiàn)的錯誤可能只是很小的地方,此時可以用軟件自帶的find功能,就會找到所在位置;</p><p>  版圖與原理圖的LVS驗證,一般問題很多。但是只要通過觀察OUTPUT所給的錯誤地方和ERROR DISPLAY顯示每個錯誤所在的具體位置,一般來說

42、都能改正過來。具體方法如下圖所示:</p><p>  2.4 陣列乘法器測試</p><p>  先將原理圖都生成一個symbol,然后新建一個原理圖。將這個symbol搭建成一個新的原理圖。</p><p>  為了保證能夠測試陣列乘法器的延時等問題,最好將乘法器的一個輸入調成方波,這樣有0,1變換不僅能夠得到更多的數(shù)據(jù),保證乘法器邏輯的正確性,更能夠通過測試輸

43、出延時,確定陣列乘法器的延時。</p><p>  原理圖check沒錯后就可以建立一個config文件,將其中一個乘法器標記為版圖,這樣才能進行版圖和原理圖的同時仿真,否則都是原理圖的仿真。</p><p>  具體的config文件的設置如下圖所示:</p><p>  設置完成后,就進行仿真。最后得到的邏輯結果為:</p><p>  

44、上圖左邊為原理圖輸出,右邊為版圖輸出。</p><p><b>  延遲測試結果:</b></p><p><b>  原理圖延遲</b></p><p><b>  版圖延遲</b></p><p>  有上圖可知,版圖的延遲比原理圖延遲更大。這很可能的原因就是我的版圖畫得太

45、差,導致延遲更高!】</p><p><b>  功耗測試:</b></p><p>  問題與解決方法:容易出現(xiàn)邏輯結果不對的情況,這個時候首先應該檢查底層原理圖是否有錯。如果沒錯,則有可能是輸入的方波周期太小了,因為陣列乘法器雖然延遲相對較較小,但是還是有一定延遲的。輸入的方波周期太小,這樣乘法器的輸出就會出現(xiàn)混疊的情況,導致邏輯結果不對。建議將方波周期調到10n

46、s以上。</p><p><b>  結論</b></p><p>  通過cadence全定制流程和AISC流程制作出來的乘法器,在存在一定程度上的差異性。</p><p>  首先是原理圖;即使是用描述原理圖流程的門級電路的verilog代碼,DV生成的原理圖也與自己畫的原理圖存在差異。ASIC流程更加細致一些,因為它一般會使用更加底層的門

47、級電路來生成原理圖,當然這并不能說明它的原理圖就比自己畫的好,因為實際上來說不同門級電路做出來的電路的好壞并不能輕易判定。</p><p>  接下來就是版圖;不可否認ASIC流程說話的版圖比自己畫的版圖要好。這主要原因為自己的經(jīng)驗不足,所以畫出的版圖延遲高,而且浪費較多空間。所以版圖的繪制,最好參照ASIC版圖畫。</p><p>  最后時間;ASIC流程用時較短,不出意外情況兩天可以

48、輕松完成了。而全定制比較麻煩,因為所有東西都是自己一步步畫出來的。但是正因為如此,全定制能夠更好的體現(xiàn)設計者想要的東西,而ASIC更多的是利用庫文件,很多時候不能達到預期效果。</p><p>  通過這十多天的課程設計實習,讓我對ASIC流程和cadence流程有了更深的體會。同時將集成電路設計的理論知識用于實踐,讓我對以前學過的知識又有了更深的體悟。</p><p>  在畫原理圖前的

溫馨提示

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

評論

0/150

提交評論