[ Skill ] 圓形平面螺旋電感怎么畫?


https://www.cnblogs.com/yeungchie/

目前(2011年),在射頻IC設計中最廣泛使用的片上電感就是平面螺旋電感,通常用最頂層的金屬層來實現,電感的中心點由下面一層的金屬線引出。它可以有許多形狀:方形、六邊形、八邊形、圓形等。其中,圓形螺旋電感在給定的金屬線寬度和電感值下電阻損耗最小,Q值最高,但很多布線工具和生產技術都難以實現。

下面是在 virtuoso 中繪制圓形電感的方法

本質是通過增加 polygon 邊數量來實現的,因此也可以用來繪制任意邊數的螺旋電感。

  • code
/************************************
*                                   *
*   Program   :  ycCreateInd.il     *
*   Language  :  Cadence Skill      *
*   Author    :  YEUNGCHIE          *
*   Version   :  20.08.29           *
*   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
		
		defMathConstants('ycMath)
		pi = ycMath.PI
		
		steps = rings * sides
		
		A = 0
		deltaA = 360.0 / sides
		r1 = radius
		deltaR = (width + space) / sides
		
		step = 0
		while(step <= steps
			
			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時可以適當減小,60左右就看起來挺圓了)

  • example

ycCreateInd("MET1" 10 2 1)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM