https://www.cnblogs.com/yeungchie/
目前(2011年),在射频IC设计中最广泛使用的片上电感就是平面螺旋电感,通常用最顶层的金属层来实现,电感的中心点由下面一层的金属线引出。它可以有许多形状:方形、六边形、八边形、圆形等。其中,
圆形
螺旋电感在给定的金属线宽度和电感值下电阻损耗最小,Q值最高,但很多布线工具和生产技术都难以实现。
下面是在 virtuoso 中绘制圆形
电感的方法
弧边其实是通过增加边缘数量来实现的,因此实际上也可以同时用来绘制任意边数的螺旋电感。
- code
/************************************
* *
* Program : ycCreateInd.il *
* Language : Cadence Skill *
* Author : YEUNGCHIE *
* Version : 20.08.05 *
* MainFunc : ycCreateInd *
* *
************************************/
procedure(ycCreateInd(lpp radius width space @optional rings(2) sides(360))
prog((pi steps step A deltaA rad r1 r2 deltaR x1 y1 x2 y2 o1 o2 points1 points2)
radius *= 1.0 ;半径
width *= 1.0 ;宽度
space *= 1.0 ;间距
rings *= 1.0 ;线圈匝数
sides *= 1.0 ;单匝边缘密度(报error时适当减小)
defMathConstants('ycMath)
pi = ycMath.PI
steps = rings * sides
when(oddp(steps)
steps++
)
A = 0
deltaA = 360.0 / sides
r1 = radius
deltaR = (width + space) / sides
step = 0
while(step <= steps - 1
rad = pi * (A + deltaA * step) / 180.0
r1 = radius + deltaR * step
r2 = r1 + width
x1 = cos(rad) * r1
y1 = sin(rad) * r1
x2 = cos(rad) * r2
y2 = sin(rad) * r2
o1 = x1 : y1
o2 = x2 : y2
points1 = append1(points1 o1)
points2 = append1(points2 o2)
step++
)
points = append(points1 reverse(points2))
dbCreatePolygon(geGetEditCellView() lpp points)
)
)
-
describe
用于创建平面螺旋电感。
txl_lpp 指定用于绘制的Layer,通用格式 "layerName" 或 list("layerName" "purpose")
n_radius 最小半径
n_width 电感线宽
n_space 线间距
n_rings 线圈匝数
n_sides 单匝边缘数量(error时可以适当减小) -
example
ycCreateInd("MET1" 10 2 1)