本次教程主要講array和bus的用法。
英文原文在這里贰拿。
原理圖
仍然直接從inverter這個項目復制過來
新建一個cellview
放置我們之前設計的反相器蛤袒,注意這里有幾種方法來放置一個陣列:
- 直接放置的時候在屬性中寫30列
- 放置后復制為一個陣列,注意要選中inverter以及vdd和gnd膨更,復制的快捷鍵是c
然后將首尾連接妙真,同時添加label
- 使用總線bus,首先編輯inverter的屬性(q)询一,修改如下屬性隐孽,代表這個對象是一個陣列。
然后畫bus(快捷鍵是shift+w健蕊,菜單目錄為create --> wire(Wide))菱阵,按照下圖添加label,代表:
I0<1>的輸入是osc_out缩功,輸出是out<1>
I0<2>的輸入是out<1>晴及,輸出是out<2>
……
I<31>的輸入是out<30>臼婆,輸出是osc_out
原理圖仿真
啟動ADE赌莺,添加model library店雅,設置瞬態(tài)仿真没酣,輸出為osc_out
其中因為在現實生活中的電路會有噪聲籍铁,初始狀態(tài)等盖淡,所以我們要設置仿真的初始狀態(tài)耻煤,不然震蕩器不會起振昼伴。菜單目錄在Simulation --> Convergence Aids --> Initial Condition
啦桌。在原理圖中勾選osc_out這個label溯壶,然后node voltage為0及皂。
netlist and run
電路已經起振!
版圖
首先新建一個layout
放置我們之前設計的inverter的layout view
并排兩個放置
用metal1講ntap且改,ptap還有前一個inverter的輸出與后一個的輸入連起來
將第二個inverter刪除后验烧,復制第一個為陣列
在I0和I31旁放置M1_M2
然后用metal2將首尾相連
放置vdd!
, gnd!
, osc_out
這幾個pin,注意前兩者是inputoutput又跛,后者是output
DRC LVS
這時候會發(fā)現LVS不成功
這是因為我們在layout中使用了ocs_out
這個pin碍拆,但原理圖中沒有添加這個pin,進入原理圖更改
check and save慨蓝,發(fā)現仍然有錯誤
發(fā)現在bus與pin之間必須添加label
再次check and save, extract, LVS
ring oscillator項目完成感混!