本发明涉及EDA设计领域,具体涉及一种cadence中原理图替换元器件库的方法。

背景技术:

Virtuoso(集成电路设计软件)是Cadence(某EDA软件供应商)推出的电路,版图设计工具,电路设计人员可以充分利用此工具,依托各工艺厂商提供的工艺库完成各种电路的设计。Cadence提供二次开发的SKILL语言,它是一种基于通用人工智能语言—Lisp的交互式高级编程语言(LISP即List Processing-表处理,是最早和最重要的符号处理编程语言之一,它于1958年由美国的J. McCarthy提出,LISP在人工智能AI方面获得广泛应用)。SKILL语言支持一套类似C语言的语法,大大降低了初学者学习的难度,同时高水平的编程者可以选择使用类似Lisp语言的全部功能。所以SKILL语言既可以用作最简单的工具语言,也可以作为开发任何应用的、强大的编程语言。SKILL可以与底层系统交互,也提供了访问Cadence各个工具的丰富接口。用户可以通过Skill语言来访问,并且可以开发自己的基于Cadence平台的工具。Cadence的工具可以通过 CIW,Bindkey,Form,Menu等多种方式调用skill函数,送到skill语言的解释器来执行各种操作。其中CIW(Command Interpreter Window),即启动Icfb 的第一个窗口,包含一些常用的menu,一个输入行,以及一个输出区域,这里是常用的调用skill程序的地方。

由于电路设计的需要,经常需要修改原理图的器件库,涉及到器件的参数的修改。目前,实现此类修改操作,传统的做法是选择需要修改的器件,然后按下快捷键q,弹出的CDF信息列表如图2所示,在信息列表中手动修改。Cell 数量大,cdf信息数据很多,手动修改容易出错,也很浪费时间。

技术实现要素:

针对上述问题,本发明提出了一种cadence中原理图替换元器件库的方法,通过设计Cadence提供的二次开发的SKILL语言程序,并在Cadence启动过程中加载程序,通过,快速实现器件库的修改工作。

本发明为实现上述目的所采用的技术方案是:一种cadence中原理图替换元器件库的方法,包括以下步骤:

步骤1:在原需要修改的cadence原理图元器件库文件夹中建立查询模块;

步骤2:通过查询模块,输出新的器件库的器件cell保存到原文件夹中,实现元器件库的自动替换。

所述步骤1包括:

将原器件库的器件单元cell按读取的顺序号Id存到变量cvId中,用来记录cell的顺序;巡遍晶体管mos的cell,获得cell中的参数;根据需要修改新器件库mos的cell中的参数,修改后的参数保存到变量中;按Id顺序选择 mos的cell,把变量中修改后的参数保存到原来的mos的cell中。

所述晶体管mos为nmos或者pmos。

所述参数包括沟道宽度,沟道长度,插指宽度,模型名称。

所述步骤2包括:

步骤2.1:在Cadence启动过程中,导入查询模块;

步骤2.2:执行查询模块,输出替换完成新的器件库的cell保存到原文件夹中。

本发明具有以下优点及有益效果:

本发明通过Cadence提供二次开发的SKILL语言,设计SKILL程序。在 Cadence启动过程中加载程序,通过输入需要修改的文件夹名称,快速实现原理图替换的元器件库工作。此方法提高了电路的灵活性,使电路的普适性提高,降低电路的维护及使用成本。同时具有可靠的安全性,有效的节省了电路设计者的时间。

附图说明

图1本发明的一种实施方式的流程示意图;

图2为CDF信息列表;

具体实施方式

下面结合附图对本发明做进一步的详细说明。

如图1所示,一种cadence中原理图替换元器件库的方法,包括两部分:

第一部分:程序的设计

1.一种cadence中原理图替换元器件库的方法,包括:

步骤1:本发明通过Cadence提供二次开发的SKILL语言设计的程序。

步骤2:在Cadence启动过程中加载程序,加载程序后输入需要修改的文件夹名称,程序执行完成后,输出保存到原文件夹中,快速实现元器件库的替换工作。

步骤1包括:

步骤1.1:设置变量用作临时装载;

步骤1.2:把原先器件库的cell的Id顺序号存到cvId中。用来记录cell 的顺序,方便后续调用,修改和保存。

步骤1.3:巡遍nmos的cell,获得cell中的参数。

步骤1.4:按需要替换的器件库修改nmos的cell中的参数,修改后的参数保存到变量中。

步骤1.5:按Id顺序选择nmos的cell,把变量中修改后的参数保存到原来的nmos的cell中。

步骤1.6:巡遍pmos的cell,获得cell中的参数。

步骤1.7:按需要替换的器件库修改pmos的cell中的参数,修改后的参数保存到变量中。

步骤1.8:按Id顺序选择pmos的cell,把变量中修改后的参数保存到原来的pmos的cell中。

第二部分程序的加载和使用:

步骤2.1:在Cadence启动过程中,启动icfb窗口,load后缀为.il本程序文件名的文件。

步骤2.2:加载程序后输入需要修改的文件夹名称,程序执行完成后,输出保存到原文件夹中。

第一部分程序的设计:

首先使用(获取cell的Id号)geGetEditCellView()函数设置变量cv用作临时装载。填入需要修改的器件库所在的文件夹名称。使用(遍历)foreach() 和cellId()(获得库中所有cell的列表)ddGetObj(libName)->cells函数巡遍文件夹中每一个cell。用(打开cell操作)deOpenCellView()函数打开(原理图)schematic。使用(变量Id)cvId=(通过数据库操作cell)dbOpenCellView 函数语言把原先器件库的cell的Id顺序号存到(变量Id)cvId中。用来记录cell 的顺序,方便后续调用,修改和保存。原理图的器件库分为nmos和pmos两部分 cell,下面的程序分为nmos和pmos两部分实现替换程序编写。

Ⅰ.替换nmos部分的cell的参数程序如下:

使用(依据cell参数在原理图中选择)schHiSelectByProperty函数找到所有原理图中nmos的cell,使用(存储选择的内容)selectedSet()函数写入变量 cv。

使用(遍历)foreach((例子)inst cv函数巡遍每一个nmos的cell;再使用(存储参数变量)cdfgData=(获得例子的CDF参数)cdfGetInstCDF(inst) 函数获得nmos的(沟道宽度)w,(沟道长度)l,(插指宽度)fw,(模型名称)model name等等参数;用(原宽度值)origw=(存储参数变量)cdfgData-> (沟道宽度)w->(值)value函数语句获得(沟道宽度)w初始值。用wd(宽度变量)=(使变成字符串形式)evalstring((原宽度值)origw)函数语句把初始值变成字符串形式,用(经计算修改后的变量)calcwdn=((宽度变量) wd/修改前的值*修改后的值)*1e6计算出新的(沟道宽度)w值,用(输出)sprintf 函数输出新的(沟道宽度)w值,(例子)inst->(沟道宽度)w(沟道宽度)=(沟道宽度的字符串形式)calcwdstrg赋新的(沟道宽度)w值给(cell的参数) cdf保存;(例子)inst->(插指宽度)fw=(沟道宽度的字符串形式)calcwdstrg 赋新的(插指宽度)fw会给(cell的参数)cdf保存;用(例子)insti->(模型)model="新的name",修改为新的cell name,修改新的name之后,(沟道长度)l值自动改为新的器件库的数值。使用(取消所选cell) geDeselectAllObject()函数取消所选的cell,回到(遍历)foreach到下一个 cell直到所有的(例子)insti被更新。

再使用(依据cell参数在原理图中选择)schHiSelectByProperty函数巡遍 nmos的cell,采用(按id号选cell)selObjId=(获取cell的Id 号)geGetSelectedSet()和(取消所选cell)geDeselectAllObject();(添加) add函数语句,按Id顺序,写入(按id号选cell)selobjId。

(遍历)Foreach((例子)inst);(按id号选cell)selObjId巡遍所选cell, (按Id号选择cell)geSelectObject(inst);按顺序选取一个。(依据cell参数在原理图中选择)schHiObjectProperty()Q这个被选的cell。(目标放在参数的属性上)hiiSetCurrentForm('schObjPropForm)在(属性表格)property form 上修改。(目标参数的属性)schObjPropForm->(单元名)cellName->(数值) value="新nmos的cell name"cell name改为新器件库name。(完成所选参数修改hiFormDone(schObjPropForm))完成一个修改。(取消所选cell) geDeselectAllObject(),回到(遍历)foreach循环到修改下一个。

按id顺序循环到所有nmos的cell替换完成。

Ⅱ.替换pmos部分的cell的参数程序如下:

使用(依据cell参数在原理图中选择)schHiSelectByProperty函数找到所有原理图中pmos的cell,使用(存储选择的内容)selectedSet()函数写入变量 cv。

使用(遍历)foreach((例子)insti cv函数巡遍每一个pmos的cell;再使用(存储参数变量)cdfgData=(获得例子的CDF参数)cdfGetInstCDF(insti) 函数获得pmos的(沟道宽度)w,(沟道长度)l,(插指宽度)fw,(模型名称)model name等等参数;用(原宽度值)origw=(存储参数变量)cdfgData-> (沟道宽度)w->(值)value函数语句获得(沟道宽度)w初始值。用wd(宽度变量)=(使变成字符串形式)evalstring((原宽度值)origw)函数语句把初始值变成字符串形式,用(经计算修改后的变量)calcwdn=((宽度变量) wd/修改前的值*修改后的值)*1e6计算出新的(沟道宽度)w值,用(输出)sprintf 函数输出新的(沟道宽度)w值,(例子)inst->(沟道宽度)w=(沟道宽度的字符串形式)calcwdstrg(沟道宽度的字符串形式)赋新的(沟道宽度)w值给 (cell的参数)cdf保存;(例子)inst->(插指宽度)fw=(沟道宽度的字符串形式)calcwdstrg赋新的(插指宽度)fw会给(cell的参数)cdf保存;用(例子)insti->(模型)model="新的name",修改为新的cell name,修改新的name 之后,(沟道长度)l值自动改为新的器件库的数值。使用(取消所选cell) geDeselectAllObject()函数取消所选的cell,回到(遍历)foreach到下一个 cell直到所有的(例子)inst被更新。

再使用(依据cell参数在原理图中选择)schHiSelectByProperty函数巡遍 pmos的cell,采用(按id号选cell)selObjId=(获取cell的Id 号)geGetSelectedSet()和(取消所选cell)geDeselectAllObject();(添加) add函数语句,按Id顺序,写入(按id号选cell)selobjId。

(遍历)Foreach((例子)inst);(按id号选cell)selObjId巡遍所选 cell,(按Id号选择cell)geSelectObject(inst);按顺序选取一个。(依据cell 参数在原理图中选择)schHiObjectProperty()Q这个被选的cell。(目标放在参数的属性上)hiiSetCurrentForm('schObjPropForm)在(属性表格)property form上修改。(目标参数的属性)schObjPropForm->(单元名)cellName->(数值)value="新pmos的cell name"cell name改为新器件库name。(完成所选参数修改hiFormDone(schObjPropForm))完成一个修改。(取消所选cell) geDeselectAllObject(),回到(遍历)foreach循环到修改下一个。

按id顺序循环到所有pmos的cell替换完成。

输出文件检查保存到原需要修改的器件库所在的文件夹中,退出程序。

第二部分程序的装载和使用:

在cadence中启动icfb窗口,在(命令交互窗口)CIW中(装载)load程序,(装载)load后缀.il的本程序文件。程序执行完成后,输出文件保存到原需要修改的器件库所在的文件夹中。

本发明通过Cadence提供二次开发的SKILL语言,设计SKILL程序。在Cadence启动过程中加载程序,通过输入需要修改的文件夹名称,快速实现原理图替换的元器件库工作。此方法提高了电路的灵活性,使电路的普适性提高,降低电路的维护及使用成本。同时具有可靠的安全性,有效的节省了电路设计者的时间。

以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于发明的保护范围。

cadence从原理图导出器件库_一种cadence中原理图替换元器件库的方法与流程相关推荐

  1. python web开发第三方库_以下属于Python中Web开发框架第三方库的是__________

    以下属于Python中Web开发框架第三方库的是__________ 答:Django 关于为何要敬业乐群,下列说法错误的是?() 答:敬业乐群可以作为提升我们学习.工作的效率和成果,乃至提升我们生命 ...

  2. 麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程

    本发明涉及计算机信号处理领域,具体涉及一种用麦克风阵列时延估计定位声源的方法. 背景技术: 20世纪80年代以来,麦克风阵列信号处理技术得到迅猛的发展,并在雷达.声纳及通信中得到广泛的应用.这种阵列信 ...

  3. apk 路由器劫持_一种在路由器上防止网页劫持的方法与流程

    本发明属于网络技术领域,尤其涉及一种在路由器上防止网页劫持的方法. 背景技术: HTTP请求在网络中进行明文传输,传输过程中常常会被网络节点中的路由设备进行连接并修改,以实现广告插入和将请求导流到钓鱼 ...

  4. 反射内存 延时_一种基于反射内存卡的OpenDDS分布式通信方法与流程

    本发明属于分布式通信技术领域,尤其涉及一种基于反射内存卡的OpenDDS分布式通信方法. 背景技术: 随着分布式系统复杂程度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅提高.提供实时系 ...

  5. cadence 怎么拼版_一种基于Cadenceskill的快速板卡拼版方法与流程

    本发明涉及PCB板卡设计领域,具体涉及一种基于Cadence skill的快速板卡拼版方法. 背景技术: PCB(Printed circuit board,印刷电路板)的主要功能是提供上头各项零件的 ...

  6. aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程

    本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...

  7. mysql查询耗时_一种数据库高耗时查询的自动取消方法与流程

    本发明涉及数据库的查询方法,特别涉及一种数据库高耗时查询的自动取消方法. 背景技术: 有很多关系型数据库查询业务非常耗时,比如查询企业实时报表之类的,一次查询可能需要几分钟甚至更长.在很多时候,前端业 ...

  8. 光纤耦合角度_一种光纤准直器的耦合找光方法与流程

    本发明涉及在线光无源器件的生产制造领域,具体是一种光纤准直器的耦合找光方法. 背景技术: 光纤准直器是在线光无源器件的基本元件,其主要作用是将经由光纤输出的光转换成发散角很小的近似平行光束,以增加光路 ...

  9. led数码显示控制plc实验_一种LED数码显示的PLC控制程序及方法与流程

    本发明涉及程序控制技术领域,特别是一种简单高效.安全可靠.逻辑性强.响应时间短的一种LED数码显示的PLC控制程序及方法. 背景技术: LED数码显示管可以显示数字或字母,通常也用来显示时间.速度.系 ...

  10. 区块如何防篡改_一种区块链防篡改技术的优化方法与流程

    本发明涉及区块链技术领域,具体涉及一种区块链防篡改技术的优化方法. 背景技术: 区块链是比特币等数字虚拟货币的底层技术,通过去中心化的数据记录,由全网所有的节点共同维护数据,实现安全地存储数据,具有不 ...

最新文章

  1. pre是什么意思css,Precss
  2. 【Android 系统开发】 Android 系统启动流程简介
  3. V模型的价值在于非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程各阶段的对应关系。在V模型中,测试工作在编码之后才能进行,所以在软件开发早期各个阶段引入的错误不能及时被
  4. 在centos7上设置swap交换空间
  5. ncurses屏幕操作:getyx(),getparyx(),getmaxyx(),scr_dump(),scr_restore(),getwin(),putwin()
  6. Parencodings 模拟
  7. Linux---之conda换源
  8. pl/sql中添加 shortcuts插件
  9. FastJson(阿里巴巴)基础
  10. 电脑显示未安装任何音频输出设备_未安装任何音频输出设备-华硕A556UQ7200(4GB/128GB+500GB/2G独显)...
  11. 多种方式描述4选1数据选择器
  12. 数字图像处理——最大类间方差法(OTSU)图像阈值分割实例
  13. 速学Sql Server从基础到进阶
  14. 阿里云容器服务全线升级,ACK Pro开启公测、边缘容器商业化
  15. 第三方qq登录(获取头像和昵称)
  16. mac下安装python3
  17. 【STM32】 TFT触摸彩屏
  18. LCD12864液晶显示
  19. 全球首款AI投屏智能硬件 爱奇艺电视果4K发布
  20. Android开发之百度地图(soso地图,搜狗地图,阿里云地图)转高德地图经纬度的方法

热门文章

  1. VS2010+VAX+CUDA6.0配置语法高亮和自动补充
  2. 51c语言单片机io口控制实验报告,单片机实验报告二 单片机IO口实验
  3. Django 3.2正式发布! 附中文文档链接地址!
  4. 具体数学--(各种基本和式)
  5. js动态显示实时时间
  6. realtek高清晰音频管理器怎么关闭的方法
  7. CAS4.0.0链接Redis4.0.6
  8. Java汽车租赁系统[源码+数据库]
  9. css城市列表,js 获取全国城市列表方法
  10. android模拟器可以复制文件,从PC中向Android模拟器中复制文件