免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 發帖

[自high] NYCU VLSI心得

期末閒著沒事決定來整理一下這學期學到的東西。

目錄:
2F - Layout規格上基本的規則
3F - Schematic
4F - Layout 附帶DRC和LVS常見問題及處理方法
5F - 自己設計的一些電路

2024.3.12更新悲報
由於圖庫問題,本文的圖片全部都無法顯示了
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

小貓貓2025了喔!
(點一下彌宙傳送到小貓貓2025大事記)


最基礎的單位矩形,0.51邊長的active(diffusion)正中間放著邊長0.23的Contact,其中Contact的大小永遠固定這麼大。

-

metal1之間的最小距離0.24
通過poly-contact的metal1要突出最小0.08

-

metal2之間的最小距離0.27

-

兩個active之間最小要有0.3的距離

-

n-wall包圍下的情況,active和pimp最小距離0.2,active和n-wall最小距離0.5
圖中沒有顯示的資訊:active和nimp最小距離0.1,若沒有n-wall包圍,和pimp最小距離相反

-

poly之間最小距離0.25

-

poly寬度一般是設定為0.18,這個值就是NMOS、PMOS的L,所以根據電路設計圖決定寬度
poly要和contact距離0.14以上,所以通常我都是用0.14,最初所說的基本矩形單位就是這樣來的

-

n-wall之間最小距離1.6
-

常用的轉接頭1,metal1和poly的連接,poly需要一個0.47邊長的方形,中間放入contact,和四邊距離0.12

-

常用的轉接頭2,metal1和metal2的連接,兩個金屬都用0.45邊長的方形,中間放入邊長0.25的via,和四邊距離0.1

-

常用的轉接頭3,metal2和poly的連接,其實是metal2先接到metal1,再接到poly,所以是上面兩者的合併
其中細節要注意的是contact要剛好被via包圍,和via四邊距離0.01
而這個合併不是單純疊加,兩個metal要稍微放大到邊長0.49,至少要能夠包覆poly並距離0.01的情況。

小貓貓2025了喔!
(點一下彌宙傳送到小貓貓2025大事記)

TOP


一個基本的Schematic大概會長這樣,左下先設定好需要哪些pin(port),電路需要接port的時候鍵盤按L召喚label放在你需要接的位置

-

用來組成cmos的pmos和nmos要選擇有包含body的pmos4和nmos4
召喚時先從選單找到紅框的鍵,選擇analogLib的資料夾,注意不要選到名字很像的其他元件
body部分分別要接在vdd和vss,如第一張圖所顯示

-

召喚pin的位置在這裡,其中要注意vss和vdd要選擇為inputoutput

-

有一些電路畫完後可能會用在其他電路裡面,這時候可以使用cell view功能將整個電路包裝成一個方塊來使用(如第一張的inv)
這個功能的位置在create → cellview → from cellview
要使用已經建立好的cellview的時候,就從add instance裡面找到你自己建立的資料夾裡的該檔案,選擇以symbol方式新增

-

小貓貓2025了喔!
(點一下彌宙傳送到小貓貓2025大事記)

TOP

因為學校講義有介紹教學,所以部分圖片直接借用講義的圖,不過有些不符合實際情況的圖就自己處理了。

-

打開LAYOUT最重要的第一件事情,就是點開Options裡面的display,把x和y的snap spacing改成0.01,這樣繪製過程會舒服很多

-

一切都要從diff開始,先依照device寬度(w)決定diff的寬度

-

再根據device長度決定poly寬度,放在diff上面

-

如果之後會需要連接metal,要放上contact

-

加上metal,我個人習慣讓metal和contact一樣0.23寬,而不像圖片中那麼大

-

加上pimp,標示這個地方是p區域

-

如法炮製做出n區域

-

因為範例做的是pmos,所以最後還要加上nw
注意,這個步驟千萬不要選錯層,要選NW而不是顏色名字很像的NWR

====================================================

真人真事!!!
DRC遇到的問題:短路
這個通常不會報錯,但是會顯示WARNING,在接著的LVS就會因為這個原因而報錯。
理論上通常應該是指有些線接錯了,或者是PORT重複之類的,不過實際上我發生問題的原因是我的框框屬性錯了。
沒錯,就是上面提到的NW和NWR搞錯了。
某人因此期中考分數少了一半。
其他的問題基本上都可以參考2F來處理。

LVS遇到的問題:
比較有印象的問題除了上面那個很蠢的以外,大概是明明Instances數量一樣多可是net數量比source多了,這代表本來應該連起來的net沒有連起來,通常會發生在你組裝舊有電路的時候,vss和vdd這些應該要連起來的線路沒有連起來,或是訊號轉接頭(見2F)做錯了所以沒連通。

小貓貓2025了喔!
(點一下彌宙傳送到小貓貓2025大事記)

TOP

NAND3
作為最早期的作品,那個時候我還沒有逐漸建立自己的畫圖風格,所以你會注意到我的matel並沒有和前文說的一樣寬度0.23,因為那個時候我根本不知道最小可以到0.23。
沒有甚麼特別的,只是為了配合nmos所以必須讓out在左邊或是右邊,進而決定pmos裡位置的安排。


-
FA(全加器)
第一次遇到的大型作業,並為後來的災難埋下重大伏筆。
課本上有很簡潔的版本,但是我不知道它的原理,只好土法煉鋼,最後這個成品還被助教吐槽說之後要重新做,然後我後來當然也沒有做。
因為後面的lab會很常用到FA,所以請盡量好好地完成他。
另外要注意,使用FA的時候要記得ABC不能隨意連接,如果Schematic上面設計讓A連到Ain,layout就不能連到Bin,雖然就輸出結果來說應該會一樣,但是在LVS的時候是不允許的。



-
DFF(D Flip-flop)
這次有參考學長的想法和創意,類似的畫法在後來成為我主要的風格。
這個的Schematic就是一個血淋淋的不用label的例子,直接一路亂竄接,要檢查是否錯誤會很麻煩。
課本上有電路圖,但是要仔細看他圖中的圈圈以及正反,當初我在畫的時候花了不少時間研究和確認。



-
MUX4(4輸入多工器)
個人很滿意(?)的傑作,本來想說先製作好MUX然後再拿來組合,但是不知道為什麼最後採用了其他方案(?)。


至於當初MUX2的設計如下:



-
XOR(Exclusive or)
採用了維基百科神秘的設計,在之後還會很常用到,有很多發揮舞台。



-
4-bit Array Structure Multiplier, using carry ripple adder
開始出現對我來說超大規模的課題。
16個小方塊是AND(NAND接INV),配合結構圖擺放在需要接的FA附近,並讓input能以直線的方式穿越這些AND。




-



小貓貓2025了喔!
(點一下彌宙傳送到小貓貓2025大事記)

TOP

返回列表