通过修改SPECTRE网表进行后仿

2024-01-20 15:10

本文主要是介绍通过修改SPECTRE网表进行后仿,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:关于修改网表进行Spectre的后仿教程与注意事项

寄生参数提取

首先确保layout能够通过DRC和LVS。
PEX-Outputs-Netlist中,Format选择SPECTRE格式,Use Names From选择SCHEMATIC。SPECTRE格式的NETLIST对大小写不敏感,因此这种方式适合原理图中terminal和pin使用不完全使用大写命名的情况。
在这里插入图片描述

PEX-Inputs-H-cells选择x-Cell文件,该文件描述的是采用寄生作为设计参数的器件(如mom电容),如果不添加该文件,会出现重复提取的错误。
在这里插入图片描述

PEX-PEX Options-Netlist和LVS Options中设置你电路中的电源和地的名称。
在这里插入图片描述
然后Run PEX就就可以进行抽取。
抽取完成后,在之前指定的抽取路径中找到pex.netlist文件与pxi文件:
在这里插入图片描述

pex.netlist是后抽的网表,里面是最顶层的器件和连接关系,pxi文件为寄生参数文件。另外,pex.netlist中include了pxi文件,因此需要注意不要改名,且这两个文件应在同一路径下。(如果要修改的话,应修改对应路径)

修改SPECTRE网表

找到前仿产生的网表(Simulation文件夹中的input.scs),在pex.netlist中修改两个内容:
1.顶层电路的名字,改为和input.scs一致
2.顶层电路的端口顺序,改为和inpus.scs一致

例如,在input.scs中的顶层电路名为your_circuit, 端口顺序为PORT0 PORT1 PORT2 PORT3,则pex.netlist中改为:

// ...pex.netlist
// Created: Tue Dec 12:00:00 2023
// Program "Calibre xRC"
// Version "v2019.3_15.11"
//
simulator lang=spectre
include "your_circuit.pex.netlist.pex"
subckt your_circuit ( PORT0 PORT1 PORT2 PORT4 )

修改完毕之后,在ADE中把pex.netlist添加到Model Library并勾选:
在这里插入图片描述

然后再重新生成网表input.scs,新的input.scs中会include这个pex.netlist:
在这里插入图片描述
在这里插入图片描述

pex.netlist已经对各个子电路模块定义过了,input.scs中原来定义的subckt就不需要了,需要把所有的子电路定义部分全部删除,只保留顶层的测试电路(testbench)部分。如果不删干净,在仿真时则会出现重复定义(redefine)的错误。
简单来说,pex.netlist是一个包含了提取出来的寄生参数信息的网表,我们要使用它进行仿真。具体做法就是通过原来前仿的网表input.scs去调用它,同时把Input.scs中用不到的原来的子电路全部删除,防止定义冲突。

仿真

以上所有修改都完成后,使用Simulation-Run仿真,不要使用Netlist and Run,否则会新生成一个input.scs把修改好的覆盖掉。

这篇关于通过修改SPECTRE网表进行后仿的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626419

相关文章

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

如何在运行时修改serialVersionUID

优质博文:IT-BLOG-CN 问题 我正在使用第三方库连接到外部系统,一切运行正常,但突然出现序列化错误 java.io.InvalidClassException: com.essbase.api.base.EssException; local class incompatible: stream classdesc serialVersionUID = 90314637791991

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

android系统源码12 修改默认桌面壁纸--SRO方式

1、aosp12修改默认桌面壁纸 代码路径 :frameworks\base\core\res\res\drawable-nodpi 替换成自己的图片即可,不过需要覆盖所有目录下的图片。 由于是静态修改,则需要make一下,重新编译。 2、方法二Overlay方式 由于上述方法有很大缺点,修改多了之后容易遗忘自己修改哪些文件,为此我们采用另外一种方法,使用Overlay方式。

Python脚本:对文件进行批量重命名

字符替换:批量对文件名中指定字符进行替换添加前缀:批量向原文件名添加前缀添加后缀:批量向原文件名添加后缀 import osdef Rename_CharReplace():#对文件名中某字符进行替换(已完结)re_dir = os.getcwd()re_list = os.listdir(re_dir)original_char = input('请输入你要替换的字符:')replace_ch

hibernate修改数据库已有的对象【简化操作】

陈科肇 直接上代码: /*** 更新新的数据并并未修改旧的数据* @param oldEntity 数据库存在的实体* @param newEntity 更改后的实体* @throws IllegalAccessException * @throws IllegalArgumentException */public void updateNew(T oldEntity,T newEntity

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m