定制自己的Pcell——熟悉Pcell设计环境

EETOP 前天

以下文章来源于IC技能搬运工 ,作者小目

IC技能搬运工
IC技能搬运工

IC技能搬运工(ID:ICSkillSharing)是一个共同学习的平台,聚焦于IC人所关注的业界热点、分享最新IT类资讯、原创内容、IC中脚本语言的教程与使用心得、模拟IC新手在学习过程中遇到的问题等,与大家一起成长进步!

来源:IC技能搬运工   作者:小目
PDK中很容易调用器件版图,并且可以根据需要修改参数,那么PDK中可以修改参数的器件是如何实现的呢?今天给大家介绍一下参数化单元(parameterized cell, Pcell)的设计环境,可以设计满足自己需求的Pcell.
什么是Pcell
Pcell也就是参数化单元,可以看作是一种可编程单元,允许用户通过定义参数创建实例。 在调用Pcell的过程中为参数赋不同的值,可以创建不同的Pcell实例。 

比如,可以在版图中调用PDK中的MOS器件,然后根据设计参数修改MOS器件的W、L、是否添加Gate过孔、是否添加源漏连接等,这些都可以通过Pcell实现。

可以使用skill程序创建Pcell,也可以使用Virtuoso Pcell应用程序以图形方式创建Pcell

使用skill程序创建Pcell更加灵活,也是Cadence推荐的Pcell创建方式,使用Virtuoso Pcell应用程序以图形方式创建Pcell更加方便,并且需要很少的skill编程基础,适合初学者,往往也能满足大部分的设计需求,以下内容都是以图形化方式创建Pcell.
Master cell和Submaster cell
首先了解几个概念,可以认为Master cell就是PDK中提供的Pcell, 它所包含的各个参数信息已经保存,可以打开PDK中的Pcell, 查看包含的参数信息。

Submaster cell是通过调用Master方式生成,在调用Master cell时对不同的参数赋值不同也就产生的不同的Submaster cell,其中Submaster cell的信息保存在内存中。

器件调用时不同的实例(instance)可能会对应同一个Submaster.

Pcell设计环境以及简单的Pcell实现
Pcell的设计环境与版图设计环境基本一致,所有操作也都是在版图设计基础之上完成,在版图设计界面:Launch->Plugins->Pcell, 即可开始Pcell设计。

Pcell是在版图基础之上实现的,所以首先需要完成Pcell对应的版图部分工作,然后定义不同的参数,并将不同的参数赋予不同的意义,实现Pcell的功能。

以NMOS的版图为例,在此版图基础上设计Pcell, 可以参考PDK中提供的Pcell学习,逐步实现PDK中提供的Pcell功能,熟悉之后可以根据自己的需求自定义Pcell.


简单的Pcell MOS管 可以完成以下功能:

  • 修改MOS管W:可以根据需要修改MOS管的W参数,并给定范围。
  • 修改MOS管L:可以根据需要修改MOS管的L参数,并给定范围。
  • 自动调整源、漏接触孔:在MOS管的W参数改变的同时,可以自动增加或者减少源、漏接触孔数量。
开始设计具有上面功能的Pcell之前,需要了解一下Pcell设计中的几个基本概念,这些在Pcell设计中会经常使用,理解这些概念对Pcell设计有很重要的意义。
Pcell设计的plugin包含的命令在上图中可以看到,每一个命令对应不同的参数化功能,Pcell的所有功能都是利用上面不同功能的组合实现。
  • Stretch: 版图中拉伸工具实现相同的功能,可以对部分版图进行拉伸,其中Pcell的很多尺寸改变都是通过这一命令实现,比如:W、L值的改变。
  • Conditional Inclusion: 根据设置的条件包含或者去除某些对象,比如:当W大于某一值时自动增加finger数。
  • Repetition: 复制对象参数,比如实现在MOS管的W参数改变的同时,可以自动增加或者减少源、漏接触孔数量。
  • Compile:定义完参数的版图一定需要通过编译才可以作为Pcell使用,可以选择直接编译成Pcell或者生成相应的skill脚本。

了解以上四个功能即可完成上面给出的设计目标,剩下的功能在后面会慢慢介绍,首先介绍一下这四个基本功能的使用。

Stretch功能:实现对象的水平或者垂直拉伸,使用时首先需要画一条control line, 作为stretch命令的参考线,之后会弹出对话框,输入本条stretch命令的namereference dimension等。

对于refernece dimension很多初学者都不容易理解,其中有一种方法可以很好记住:这个值就是当前版图中你想要stretch对象的尺寸,也可以认为为Pcell中该参数的默认值。


上图中定义了沿X轴方向的Stretch命令用来定义Pcell的栅宽,那么相应的reference dimension值就是此时MOS管的栅宽(0.35),那么调用该Pcell时默认的栅宽也就是0.35.

stretch direction:是指拉伸的方向,一般习惯使用两个方向同时拉伸,这样更改参数时器件中心坐标不会改变。但是为了方便设置Repetition命令,可经常定义单方向的拉伸。

完成stretch control line的相关定义之后可以选择:Compile->To Pcell, 将设计编译为Pcell, 然后新建版图view, 调用自定义的Pcell,并打开属性对话框,观察改变参数时器件的相应变化。


按照同样的方法,定义一条沿Y轴的Stretch命令,用来改变MOS管的Width参数,注意这里reference dimension值应该和此时版图中MOS管的宽度对应,如下图所示。

保存好设置,然后编译为Pcell, 再次调用并改变参数,观察器件变化是否和预期一致,如果不一致再返回修改参数设置。
为Stretch命令指定对象:从上面的演示结果可以看到,contact尺寸会随着Width参数改变,这个是不希望的。
在定义完Width命令的时候可以选择:Stretch->Qualify, 然后根据窗口左下角提示信息依次选择:Stretch control line, Stretch shapes. 比如在MOS设计中选择除contact之外的所有形状,然后再次查看结果。

Repetition命令:来实现复制功能,比如实现MOS管宽度变化时contact数量增减的功能。Repetition命令还可以设置与Stretch命令关联,设置依拉伸总量决定复制数量(默认状态)或者设置依据复制数量决定拉伸量等。

通过定义contact的复制命令,可以实现当MOS管Width参数改变时,自动计算contact数量。


有一点需要注意,这时候关于Width的Stretch命令的拉伸方向最好不要选择两个方向同时拉伸,否则会导致contact无法对齐问题,关于这个大家可以实际操作一下,观察现象。

通过简单的图形化操作,可以实现上面的NMOS Pcell器件,更多的Pcell制作内容会陆续给大家介绍,也希望对这方面内容感兴趣的同学可以多加尝试,有很多概念需要在实验中逐渐理解。


    深圳SEO优化公司民治网站优化西乡建站盐田百搜标王惠州网站设计坪山网页设计木棉湾优化爱联企业网站制作大鹏百度竞价包年推广坪地至尊标王西乡阿里店铺运营福田网站制作坪山高端网站设计南澳网页制作光明阿里店铺运营松岗网站搭建坪地网站推广方案福永网站设计坪山企业网站改版龙华网站推广方案石岩建站大鹏百姓网标王大运网站排名优化民治设计公司网站宝安seo龙华至尊标王爱联百姓网标王推广双龙模板制作丹竹头网站优化按天计费大运企业网站制作盐田如何制作网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化