Cadence教程4——环形振荡器

本次教程主要讲array和bus的用法。

英文原文在这里。

原理图

仍然直接从inverter这个项目复制过来

Cadence教程4——环形振荡器_第1张图片

新建一个cellview

Cadence教程4——环形振荡器_第2张图片

放置我们之前设计的反相器,注意这里有几种方法来放置一个阵列:

  1. 直接放置的时候在属性中写30列
Cadence教程4——环形振荡器_第3张图片
  1. 放置后复制为一个阵列,注意要选中inverter以及vdd和gnd,复制的快捷键是c
Cadence教程4——环形振荡器_第4张图片
Cadence教程4——环形振荡器_第5张图片

然后将首尾连接,同时添加label

Cadence教程4——环形振荡器_第6张图片
Cadence教程4——环形振荡器_第7张图片
  1. 使用总线bus,首先编辑inverter的属性(q),修改如下属性,代表这个对象是一个阵列。
Cadence教程4——环形振荡器_第8张图片

然后画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

Cadence教程4——环形振荡器_第9张图片

原理图仿真

启动ADE,添加model library,设置瞬态仿真,输出为osc_out

Cadence教程4——环形振荡器_第10张图片
Cadence教程4——环形振荡器_第11张图片
Cadence教程4——环形振荡器_第12张图片

其中因为在现实生活中的电路会有噪声,初始状态等,所以我们要设置仿真的初始状态,不然震荡器不会起振。菜单目录在Simulation --> Convergence Aids --> Initial Condition。在原理图中勾选osc_out这个label,然后node voltage为0。

Cadence教程4——环形振荡器_第13张图片

netlist and run

Cadence教程4——环形振荡器_第14张图片

电路已经起振!

版图

首先新建一个layout

Cadence教程4——环形振荡器_第15张图片

放置我们之前设计的inverter的layout view

Cadence教程4——环形振荡器_第16张图片

并排两个放置

Cadence教程4——环形振荡器_第17张图片

用metal1讲ntap,ptap还有前一个inverter的输出与后一个的输入连起来

Cadence教程4——环形振荡器_第18张图片

将第二个inverter删除后,复制第一个为阵列

Cadence教程4——环形振荡器_第19张图片
Cadence教程4——环形振荡器_第20张图片
Cadence教程4——环形振荡器_第21张图片

在I0和I31旁放置M1_M2

Cadence教程4——环形振荡器_第22张图片
Cadence教程4——环形振荡器_第23张图片
Cadence教程4——环形振荡器_第24张图片

然后用metal2将首尾相连

Cadence教程4——环形振荡器_第25张图片

放置vdd!, gnd!, osc_out这几个pin,注意前两者是inputoutput,后者是output

Cadence教程4——环形振荡器_第26张图片
Cadence教程4——环形振荡器_第27张图片
Cadence教程4——环形振荡器_第28张图片
Cadence教程4——环形振荡器_第29张图片

DRC LVS

Cadence教程4——环形振荡器_第30张图片

这时候会发现LVS不成功

Cadence教程4——环形振荡器_第31张图片

这是因为我们在layout中使用了ocs_out这个pin,但原理图中没有添加这个pin,进入原理图更改

Cadence教程4——环形振荡器_第32张图片
Cadence教程4——环形振荡器_第33张图片

check and save,发现仍然有错误

Cadence教程4——环形振荡器_第34张图片

发现在bus与pin之间必须添加label

Cadence教程4——环形振荡器_第35张图片

再次check and save, extract, LVS

Cadence教程4——环形振荡器_第36张图片

ring oscillator项目完成!

你可能感兴趣的:(Cadence教程4——环形振荡器)