Cadence SKILL脚本自动化版图绘制教程

Cadence SKILL由Cadence开发,用于在Cadence EDA中编写自定义工具和脚本,以增强Cadence EDA工具的功能和自动化设计流程。我们可以用SKILL语言编写脚本,实现布局、仿真、数据后处理、定制EDA界面等等。

在工作中可以使用SKILL脚本在virtuoso中自动化地绘制芯片版图,减轻工作量。本文以一个通孔阵列的自动化绘制为例,介绍实现流程。本文侧重于介绍操作流程,对于脚本代码细节将简单带过。

流程的第一步自然是启动Cadence Virtuoso。启动成功后看到virtuoso的CIW窗口。窗口下方有一个可以输入并执行SKILL命令的窗口,这是我们与virtuoso交互的地方,我们可以调节一下窗口让它更清楚一些。


点击「Tools > SKILL IDE」,启动SKILL脚本的IDE(集成开发环境,可以简单地理解为写代码的地方)。


在IDE里,我们就可以编辑SKILL脚本来实现想要的功能,此处的代码的功能是实现在当前的Layout cellview中绘制一个通孔阵列。


; 编写绘制通孔阵列的函数,然后调用,也可以在其他脚本中调用。
procedure(createViaArray(VIA_layer startX startY deltaX deltaY viaWidX viaWidY RowNum ColNum)
	
	; 调用系统创建阵列的函数。
	dbCreateViaShapeArray(
		deGetCellView()			; ID of the technology cellview.  获取当前的cellview的ID。
		VIA_layer				; .example: "VIA67"...Layer on which to create the via shape array. 指定要绘制的阵列的层。
		techGetTechFile(deGetCellView())	; ID of the net to add the via shapes to.
		startX				; X coordinate of the starting point.  指定阵列的左下角在版图中的X和Y坐标、间隔、长宽、行列数等。
		startY				; Y coordinate of the starting point.							
		deltaX				; Length along the X axis allocated to one shape, including the width of the rectangle and the space along the X axis between two adjacent rectangles.
		deltaY				; Length along the Y axis allocated to one shape															
		viaWidX				; Width (along the X axis) of the rectangle.					
		viaWidY				; Length (along the Y axis) of the rectangle.						
		RowNum				; Number of rows along the Y axis.
		ColNum)				; Number of columns along the X axis.	
)

; 指定绘制通孔阵列函数的参数的值。
VIA_layer = "VIA67"	
startX = 0.0	
startY = 0.0								
deltaX = 0.29
deltaY = 0.29
viaWidX= 0.19
viaWidY= 0.19
RowNum = 5
ColNum = 5

; 将函数的参数的值传入,并执行该函数。
createViaArray(VIA_layer startX startY deltaX deltaY viaWidX viaWidY RowNum ColNum)

完成代码后,命名并保存至某个目录下,保存后的完整路径为:「/home/.../procedures/Procedure_createViaArray.il 」。

现在我们需要开启一个版图cellview,来绘制通孔阵列。

回到CIW窗口,点击「Tools > Library Manager」,启动库管理器。在库管理器,点击「File > New > Cell View」,在弹出的「New File」中,「Type」选择「layout」,以新建一个版图cellview。


成功打开空白的版图cellview之后,我们在CIW窗口的命令行窗口中输入指令并按回车执行:


load "/home/.../procedures/Procedure_createViaArray.il" 

这样,virtuoso就会运行我们保存在该路径下的脚本「Procedure_createViaArray.il」。此时版图cellview中成功绘制了一个通孔阵列,该阵列的行数、列数、间隔、长宽、所用的层均与我们脚本中所定义的相同。

成功绘制的一个关键点是,一定要先开启一个版图cellview,再运行脚本。因为脚本会获取当前版图cellview的ID,然后在这个版图中执行绘制。如果没有版图cellview,那么脚本将报错。




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空