【HSPCIE仿真】输入网表文件(1)基本内容和基本规则

news2024/11/18 2:54:09

输入网表文件

  • 1. 输入网表文件基本内容
  • 2. 输入网表文件示例
  • 3. 一些基本规则
  • 4. 数值表示
  • 5. 压缩文件格式的读取
  • 6. 参数和表达式

从HSPICE的仿真流程看,出去初始化配置过程,真正的仿真是从输入网表文件开始的。

HSPICE 根据输入网表文件( input netlist file )运算并产生仿真结果,仿真结果存储在输出列表文件或图形数据文件之中。

1. 输入网表文件基本内容

输入网表文件的名称为 design.sp,其包含的内容如下:

  • Design netlist (subcircuits, macros, power supplies, and so on)(设计网表)
  • Statement naming the library to use (optional)(所用到的库)
  • Specifies the type of analysis to run (optional)(所执行分析的类型)
  • Specifies the type of output desired (optional)(期望的输出)

一个简单的示例如下:

在这里插入图片描述

一般情况下,输入网表文件包含如下内容:

在这里插入图片描述

  1. 标题语句:放在代码的第一行,通常情况下代码的第一行在执行时会被忽略,所以这一行可以是文件名,或者是对文件内容的简单描述。
  2. 电源和信号源描述语句:指明电路中使用的电源和信号源的类型、连接关系和参数
  3. 元器件描述语句(电路描述语句):指明电路中元器件的类型和它们之间的链接关系,以及元器件参数和模型参数等
  4. 仿真类型语句:指明进行什么类型的仿真分析,如直流、交流、瞬态分析等
  5. 模型语句:指明元器件采用的模型,可以调用已有模型,也可以在代码中自己定义。
  6. 结束语句.end 位于代码的最后一行,表示代码结束。

不同内容对应的一些指令如下:

在这里插入图片描述
在这里插入图片描述

2. 输入网表文件示例

这里给出了一个简单输入网表文件的示例。

如果你想对一个简单的反相器进行进行仿真,测量其时序行为,你需要在在输入网表文件中描述以下内容:

在这里插入图片描述
定义好上述内容之后,可以使用瞬态分析,然后生成输入、输出端口的波形数据。

最终的输入王网表文件的内容如下:

* Sample inverter circuit
* **** MOS models *****
.MODEL n1 NMOS LEVEL=3 THETA=0.4 ...
.MODEL p1 PMOS LEVEL=3 ...
* ***** Define power supplies and sources *****
VDD VDD 0 5
VPULSE VIN 0 PULSE 0 5 2N 2N 2N 98N 200N
VGND GND 0 0
* ***** Actual circuit topology *****
M1 VOUT VIN VDD VDD p1
M2 VOUT VIN GND GND n1
* ***** Analysis statement *****
.TRAN 1n 300n
* ***** Output control statements *****
.OPTION POST PROBE
.PROBE V(VIN) V(VOUT)
.END

3. 一些基本规则

  1. 输入文件的第一行无论内容是什么,总是会被工具认为是标题行,工具会在每一个输出文件中打印该行内容。第一行的任何内容都不会作为仿真内容,如果没有标题,就要空出来。

  2. 输入文件支持 .gzip 格式,文件中的.inc, .lib , .load也支持这种格式。

  3. 输入网表中的指令顺序可随意,最后一定要以 .end 结尾,否则会报错。

  4. 默认情况下,行指令不区分大小写,但是.INC.LIB 跟的路径有大小写之分的。如果想要开启大小写敏感,可以在启动HSPCIE的时候使用-case 1选项,如下:

% hspice -case 1 -i design.sp -o design.lis

大小写敏感作用在以下内容:

在这里插入图片描述

  1. 注释有两种,以 * 开始的一整行都为注释内容,跟在某一个命令行后面的注释可以使用 $

  2. 续行有两种情况,如下所示,使用+或者是\\

*** continuation is between tokens ***
R1 1 0
+ R='res1-res2'

*** string continuation ***
R6 4 0 R='res1-\\ 
res2'
R5 4 0 R='res1- \\
res2'
*** token continuation ***
R4 node1 no\\
de2 R= 'res1-res2'

4. 数值表示

HSPICE 中的数值可以是整数或浮点数,浮点数后面可以跟一个整数类型的指数。
整数和浮点数后面都可以跟一个缩放因子,

在这里插入图片描述

  1. 如果想要定义指数,也可以用两个 **,比如 2的5次方可以写成:2**5

5. 压缩文件格式的读取

6. 参数和表达式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/932966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot 实践(11)Spring Cloud 与zuul 路由配置与应用

前文讲解springboot cloud与consul的服务注册与发现,为多微服务程序互联互通做了准备;那么,各个微服务之间是直接调用IP或者域名实现接口调用,还是有其他方式呢?其实,可以通过搭建zuul服务,实现…

左耳朵耗子:从一次经历谈 TIME_WAIT 的那些事

原文地址:https://coolshell.cn/articles/22263.html 今天来讲一讲TCP 的 TIME_WAIT 的问题。这个问题尽人皆知,不过,这次遇到的是不太一样的场景,前两天也解决了,正好写篇文章,顺便把 TIME_WAIT 的那些事都…

STM32入门学习之TFT_LCD显示

1.TFT_LCD简介:薄膜晶体管液晶显示器TFT_LCD(Thin Film Transistor-Liquid Crystal Display)在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),能够有效的克服非选择时的串扰,使显示屏的静态特性与扫描线数无关…

登录校验-Filter-详解

目录 执行流程 拦截路径 过滤器链 小结 执行流程 过滤器Filter拦截到请求之后,首先执行方放行之前的逻辑,然后执行放行操作(doFilter),然后会访问对应的Web资源(对应的Controller类)&#…

【C++】进一步认识模板

🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、非类型模板参数二、模板的特…

Java学数据结构(3)——树Tree B树 红黑树 Java标准库中的集合Set与映射Map 使用多个映射Map的案例

目录 引出B树插入insert删除remove 红黑树(red black tree)自底向上的插入自顶向下红黑树自顶向下的删除 标准库中的集合Set与映射Map关于Set接口关于Map接口TreeSet类和TreeMap类的实现使用多个映射Map:一个词典的案例方案一:使用一个Map对象方案二&…

Leetcode.75 颜色分类

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这…

[管理与领导-50]:IT基层管理者 - 8项核心技能 - 5 - 沟通是润滑剂

目录 前言: 一、什么是沟通 1.1 定义 1.2 沟通模型 1.3 沟通的六层次模型 1.4 为什么需要沟通 二、沟通的五维度 三、沟通的原则 3.1 以终为始 3.2 双赢思维:人们只会做对自己有利的事 3.3 牵善的思维 四、沟通的过程 五、沟通技巧 六、深…

统计Mysql库中每个表的总行数,解决table_rows不准确问题

1、拼接SQL selectsubstring( GROUP_CONCAT(a.sf SEPARATOR ),1,length(GROUP_CONCAT(a.sf SEPARATOR ))-10) as sql_str from( select concat(select ", TABLE_name , ", count(*) as row_num from , TABLE_SCHEMA, .,TABLE_name, union all ) as sf frominformat…

matlab使用教程(25)—常微分方程(ODE)选项

1.ODE 选项摘要 解算 ODE 经常要求微调参数、调整误差容限或向求解器传递附加信息。本主题说明如何指定选项以及每个选项与哪些微分方程求解器兼容。 1.1 选项语法 使用 odeset 函数创建 options 结构体,然后将其作为第四个输入参数传递给求解器。例如&#xff0…

支付宝的支付

对于前端的入门学习的人员来说,支付宝提供的沙箱环境,可以让你体验支付的整个流程。 一、沙箱环境 沙箱(又叫沙盘)环境是用于开发者测试的模拟环境,中间发生任何行为都是虚拟的,如支付。 二、技术选型 支…

一文800字从0到1运用工具Postman快速导出python接口测试脚本

Postman的脚本可以导出多种语言的脚本,方便二次维护开发。 Python的requests库,支持python2和python3,用于发送http/https请求 使用unittest进行接口自动化测试 一、环境准备 1、安装python(使用python2或3都可以) …

前端组件库造轮子——Input组件开发教程

前端组件库造轮子——Input组件开发教程 前言 本系列旨在记录前端组件库开发经验,我们的组件库项目目前已在Github开源,下面是项目的部分组件。文章会详细介绍一些造组件库轮子的技巧并且最后会给出完整的演示demo。 文章旨在总结经验,开源…

基于Java+SpringBoot+Vue前后端分离科研工作量管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

c语言练习题33: 判断回⽂字符串

判断回⽂字符串: 题目: 输⼊⼀个字符串,判断这个字符串是否是回⽂字符串(字符串的⻓度⼩于等于30,字符串不包含空 格),如果是回⽂字符串输出Yes,如果不是回⽂字符串输出No。 //回…

Hugging Face Transformer 的APIs应用实例

拥抱面变压器 API 简要摘要 一、说明 Hugging Face 的变压器库提供了广泛的 API,可用于处理各种 NLP 任务的预训练变压器模型。在本教程中,我们将探讨主要 API 并提供示例来帮助你了解它们的用法。 二、导入模型 1. 分词器接口: 分词器 AP…

浅谈分布式共识算法概念与演进

分布式共识是指在分布式系统中,多个节点之间达成共识的过程。 分布式共识的意义在于确保分布式系统中各个节点之间的数据一致性。通过分布式共识算法,可以使得多个节点针对某个状态达成一致,从而保证系统中各个节点之间的数据一致性。这对于…

应知道的16个Python基础知识

列表推导式 # 列表推导式,用一行代码生成一个有规律的列表 # 列表推导式,用一行代码生成一个有规律的列表 import randomlist_comprehension =[i for i in range(10)] print(list_comprehension)list_comprehension2 =[(x,y)for x in range(4) for y in range(5,10)] print(…

手写Spring源码——实现一个简单的spring framework

这篇文章主要带大家实现一个简单的Spring框架,包含单例、多例bean的获取,依赖注入、懒加载等功能。 一、创建Java项目 首先,需要创建一个Java工程,名字就叫spring。 创建完成后,如下图,再依次创建三级包 二…

Linux系统编程系列之进程基础

一、什么是进程 关于进程的定义很多,这里讲一种比较直接的,进程就是程序中的代码和数据被加载到内存中运行的过程,就是程序的执行过程。进程是动态的,而程序是静态的。程序存储在硬盘里,进程只有在程序被执行后&#x…