在模拟版图中效率提升空间是很大的,模拟版图目前很难实现完全的自动化设计。电路结构多变,导致模块复用率低。分享下借助Pcell和脚本来实现版图的效率提升。使用Pcell 来对相似结构的复用,所以模拟电路中的差分对,电流镜,cap array等等都是可以使用 pcell来实现的。通过对局部电路结构的固化,将模拟电路版图进一步拆分。
如下实例是在custom compiler 下开发环境,custom compiler 有丰富的API,可以实现快速的版图二次开发。其Pcell 可以使用Tcl 开发也可以选用Python开发。Python用的不熟练,下面展示的pcell都是tcl开发的。
下图是一个差分对管结构的pcell,从提供的parameters可以看到基本连线信息与size 等都需要用户提供。Hier pcell 底层直接调用pdk 中的器件。它的有点可以随时根据需要调整。
上图可以看到Pcell并没有完成,说下另一个会影响到自动化的因素。Schematic designer 都比较保守,不愿意使用自定义的pcell symbol。单纯的layout 的pcell 是比较难与电路创建对应关系的。没有SDL 关系对后期review 都不方便,另外这些mos上的参数也比较难从电路上传递过来(当然这些问题都可以额外脚本解决但多一步骤体验不好)。
所以改成下面直接在layout上生成对应的layout结构。这样既可以保持与电路匹配的对应关系,器件参数也可以直接传递到脚本来生成layout。创建一个与parameter相似的GUI 接受输入信息。
脚本可以从选择的电路器件上提取出需要update的参数,根据选择的匹配类型自动生成匹配。
如下生成两排结构:dummy 四端同时连接完成,输入输出连接完成。输出信号内部不全连接。由上层自行连接。
修改快速生成四排结构:
直接根据电路生成的版图保持着SDL的对应关系,所以从电路上还是DN上选择对应器件或net时都是可以highlight到的。
上面开发的难点主要在gate的交叉连线保持45°斜边同时保证没有offgrid,另外就是当源端abut时候保证gate斜边位置不出现小角。
下面是另一个实例,是一个新工艺下对大量的电感结构生成testkey的pcell 应用。电路结构固定,需要能够改变金属层次,宽度,距离,匝数,以及拉伸变形这些需求。
所以可想象如果纯人工layout,会是什么样的工作量。
可以支持拉伸成椭圆状
上面这些电感是花费一周多的时间开发验证完成。最终生成testkey将是几十或近百种 pattern。
手工来做的化不现实。Pcell方既保证效率同时保证质量的一致性。
Pcell 快速实现也可以使用custom compiler的UDD 功能: