从现在开始,手把手教使用cadence。这里以实现D触发器(上升沿触发)为例。
这里用的库是TSMC_0.18UM_PDK,0.18的库。从eetop下载的库。此库只可用于学习用。
首先,下载TSMC_0.18UM_PDK到linux下并解压。在用户目录下新建文件夹,这里我用的是lujun命名,然后将TSMC_0.18UM_PDK复制到lujun文件夹目录下。
目录文件如下所示:
目录里面的cds.lib是定义的library的文件。
打开cds.lib,在里面输入以下内容,以定义基本的库。
其中ic5141的目录根据自己安装的目录进行更改。
打开终端,进入到TSMC目录下,然后输入icfb&,打开cadence。
点Tools,选择library manager,进入到库管理界面。
然后就可以看到库了,这些库是在cds.lib里面定义的。
新建library。
输入库的名字,然后OK。在选择第二个attach,关联库。
工艺库选择tsmc18rf。就是我们要用的0.18的库。这样就完成建立库了。
接下来,要建立库中的元件了。D触发器,需要传输门和非门,这里我多用了与非门。
首先先建立非门:
选中刚刚建立的库,然后file->new->cell view。然后输入以下右边内容,就建议一个非门元件了。
然后弹出画原理图的界面了。
接着就调用0.18库中的器件了,使用快捷键i,弹出界面,
选择browse,然后选择tsmc18rf库,再选择nmos3V_mis,再选择symbol,在回车。
在原理图中放置一个noms管。接着在放置一个pmos管,选中器件,按快捷键q,进入器件属性界面,改变宽长比,然后再连线,最终图如图:
接下来,就要放置电源和地,这里电源用的vdd。Vdd和gnd在analogLib库中,用同样的方法将两个调用在原理图中。
接着按快捷键p,添加pin管教,添加in和out管教,注意in的方向选择input,out的方向选择output。
最终图如下所示,记着要连接管子的衬底。
选择左边的第一个,check and save。没有提示错误和警告,住界面显示保存。这样,非门的原理图就创建成功了。
原理图创建后,接着要创建非门的symbol了,因为在原理图中,引用的是元件的symbol。
选择design->create cellview->from cellview。选择OK,在选择OK。
在创建symbol中,先删除自动生成的东西,然后画出下面图形,利用add->shape里面的各种形状进行绘制。此操作 比较简单,这里就不详细说明。记着画完了要保存。
这样就真正完成了非门的原理图和symbol的创建了。可以在库中,看到刚刚之前创建的非门的原理图和symbol。
接下来,就开始创建与非门和传输门,
首先是与非门,结构和symbol如下所示:
然后是传输门:
此时可看到我们库中多了与非门的传输门的元件了。
这样,D触发器的基本元件就创建好了。
接着就要创建D触发器的原理图和symbol了。
D触发器的原理图如下所示:
其中标号clk和~clk的,就表示相互之间的连线是连在一起的 。
D触发器的symbol如下图所示:
此时库目录如下:
原理图和symbol创建好后,接下来就是仿真了。
以仿真D触发器为例。
一般将仿真的元件和器件的元件分开,因此这里将DFFT复制为sim_DFFT,表示为仿真。如下所示:
在sim_DFFT中新建原理图,内容如下。用快捷键l对图中的线进行网络标号,以方便仿真看结果。
其中v1和v0是analogLib中的元件vpulse。
将v1和v0参数设置如下:
左边为v1,右边为v0。
接着开始仿真,选择tools中的analog environment。
启动仿真界面。
参数设置如下,仿真类型tran,时间为1u。看D,clk,Q的信号。这里的model library是设置好的,不用更改。
接着就开始仿真了,选择右边的netlist and run,就开始仿真了
从波形图中,可看到是在时钟的上升沿将数据打入输出,证明我们所设计的电路图功能是正确的。