Cadence 仿真

news2024/12/22 18:27:29

        电路的学习离不开仿真和实践,主流的仿真软件有很多,有用功pretues和mutisim,这次主要是工作中使用cadence,而且带有比较强大的仿真工具Pspice,所以选择了它 ,我使用的版本是cadence 17.4自带的。官方提供了一个比较完整的入门文档,下面按照文档步骤创建一个电路图

PSpice仿真概述        

        PSpice是一个模拟程序,用于模拟电路的行为。您可以使用PSpice在制造实际电路板或集成电路之前对设计进行测试和优化。PSpice支持能够模拟仅模拟电路、混合信号电路和仅数字电路的分析。

要在PSpice中对设计进行模拟:

        1、确保您拥有PSpice许可证。

        2、使用可以进行仿真的部件创建设计。

        在为仿真创建设计时,您需要使用PSpice可以仿真的部件。这些部件在PSpice部件库中可用。您还可以将PSpice模型与Capture部件相关联,以便能够对这些部件进行仿真。部件需要有一个关联的模型(实现类型=PSpice模型)和在PSpice中进行仿真的属性定义。

        3、 创建仿真配置文件。 完成设计电路后,您可以使用“仿真设置”对话框创建仿真配置文件。在创建仿真配置文件时,指定分析类型及其各种参数、配置文件设置等。

        4、运行PSpice并查看结果。

        当您从Capture运行PSpice时,会生成一个电路连接表(netlist),并出现PSpice探针窗口。该电路连接表包含连接信息和分析类型。要查看仿真的输出,您可以:

                 在Capture中放置标记

                在PSpice探针窗口中添加跟踪

创建仿真项目

要对电路进行仿真,需要具备两个条件

        所使用的部件要具备可用并配置好的仿真模型

        电路中要提供激励源

        在为仿真和印刷电路板布局创建设计时,您使用的一些部件仅用于仿真(例如仿真激励部件,如电压源),而一些部件使用的是仅模拟了实际设备的某些引脚的仿真模型。

用于仿真但不用于布局的部件具有SIMULATIONONLY属性。您可以将此属性(或任何属性)添加到自定义部件中,使它们仅用于仿真。

 我们在对我们平时的电路仿真时,并不是直接拿过来就可以使用,而是,需要把我们的电路中元器件,改成具备仿真属性的元器件,另外需要加入激励源。

 添加仿真库和元器件

PSpice部件库(.OLB文件)在安装目录下的tools\capture\library\pspice目录中。仿真模型库(.lib文件)位于tools\pspice\library目录中。

如果您想要向您的设计中添加更多的PSpice部件库,可以通过使用"Place Part"对话框(选择"Place - Part"或使用"Place Part"工具栏按钮)来实现。然后,通过从tools\capture\library\pspice子目录中选择所需的库来添加您需要的库。pspice子目录中的PSpice库包括:

  • 供应商提供的部件
  • 被动部件
  • 分离部件
  • 行为部件
  • 专用的仅用于仿真的部件

当您在"Place Part"对话框中选择一个部件时,对于可以进行仿真的部件,将会出现PSpice符号。

        还可以使用PSpice Part Search(选择"Place - PSpice Component - Search")来添加更多的PSpice部件。

至少,可以进行仿真的部件必须具备以下属性:

  • 用于描述部件电气行为的仿真模型。该模型可以有以下几种方式之一:
    • 明确定义在模型库中
    • 内置于PSpice中
    • 内置于部件中(适用于某些种类的模拟行为部件)
  • 带有建模引脚的部件,以形成原理图上的电气连接。
  • 从设计部件到净表语句的转换,以便PSpice能够读取它。

并非库中的所有部件都适用于仿真。例如,连接器是专为电路板布局而设计的部件,不具备这些仿真属性。pspice子目录中包含的库是唯一适用于仿真的库。

在设计中用于PSpice仿真的必须使用"0"(零)地部件。如果您使用了其他地部件,可以将它们重命名为"0",以便PSpice接受它们。

专用的仿真器件

PSpice部件库还包括一些专用于仿真的特殊部件,包括:

  • 用于生成电路输入信号的刺激部件
  • 所有模拟和混合信号电路都需要的地部件,以引用地
  • 用于执行操作,如设置偏置值的仿真控制部件
  • 用于生成表格和线型打印机图形到PSpice输出文件的输出控制部件

设备商提供仿真器件

PSpice库还提供了来自各个制造商的广泛选择的模拟和数字部件。标准PSpice库和PSpice高级分析库包括标准部件和参数化部件。参数化部件具有需要PSpice高级分析工具所需的公差、分布、可优化和烟雾参数。高级分析仅对参数化组件执行。

请注意,库中的部件名称通常反映制造商的部件名称。如果多个供应商提供相同的部件,每个部件名称都包含指示供应模型的后缀。

内置标准仿真库

PSpice部件库(.OLB文件)在安装目录下的tools\capture\library\pspice目录中。仿真模型库(.lib文件)位于tools\pspice\library目录中。

内置高级仿真库

要查找部件,您可以使用“Part Browser”或“PSpice Part Search”。部件可以是被动部件、分离部件、行为部件等。被动部件包括电容、电感、电阻等。分离部件和行为部件允许您定义电路的工作方式,而无需定义每个离散的组件。您可以使用数学表达式或查找表来定义行为部件的行为。数字行为部件使用特殊的行为原语来定义每个部件的功能和时序行为。这些原语包括LOGICEXP、PINDLY和CONSTRAINT,用于定义逻辑表达式、引脚到引脚延迟和约束检查。

无源器件

PSpice库提供了基于内置于PSpice的无源设备模型的几种基本部件。以下是它们的概要:

  • 电容器(C_VAR):用于模拟电容器的无源部件。

  • 电感(L):用于模拟电感的无源部件。

  • 电阻器(R_VAR):用于模拟电阻器的无源部件。

  • 线性变压器(XFRM_LINEAR):用于模拟线性变压器的无源部件。

  • 理想传输线(T):用于模拟理想传输线的无源部件。

  • 有损传输线(TLOSSY):用于模拟有损传输线的无源部件。

  • 耦合传输线(TnCOUPLED和TnCOUPLEDX*):用于模拟耦合传输线的无源部件。

*对于这些设备类型,PSpice库提供了多个部件。有关可用部件的更多信息,请参阅在线PSpice参考手册中的Analog Devices章节,并查看Capture部分以了解如何使用这些部件和定义其属性。

这些无源部件可以用于电路设计中,用于模拟和分析电容、电感、电阻、变压器、传输线等各种无源元件的行为。您可以参考在线PSpice参考手册以深入了解如何使用和配置这些部件。

 "Breakout parts"(分离部件)

"Breakout parts"(分离部件)是指在PSpice库中提供的一类被动和半导体部件,它们具有默认的模型定义,定义了一组基本的模型参数。这样,您可以轻松地进行以下操作:

  • 为蒙特卡洛分析和灵敏度/最坏情况分析分配器件和批次公差给模型参数。
  • 定义温度系数。
  • 定义设备特定的工作温度。

这些分离部件通常用于对模拟电路进行更精细的分析,例如蒙特卡洛分析,其中需要考虑元件的公差和温度效应。这些分离部件具有默认的模型参数,可用于进行此类分析。

要了解如何使用这些分离部件以及定义它们的属性,您可以查阅在线PSpice参考手册中的Analog Devices章节,然后查看相关的Capture部分。在手册中,通常会提供有关每种部件的详细信息,包括如何配置和使用它们以及如何定义其属性。这些分离部件的模型参数和特性可以帮助工程师更准确地模拟和分析电路的性能。

行为部件(Behavioral parts)

行为部件(Behavioral parts)允许您定义电路块的工作方式,而无需详细定义每个离散元件。这些部件允许您使用更高级的抽象来描述电路的行为,而无需考虑每个组成部分的具体细节。行为部件通常以数学表达式、查找表或逻辑规则的形式来定义电路的功能和行为。

有两种主要类型的行为部件:

  1. 模拟行为部件(Analog Behavioral Parts): 这些部件使用模拟行为建模(ABM)来定义电路行为。ABM将电路的行为表示为数学表达式或查找表,而不需要明确定义每个离散组件的参数。例如,您可以使用模拟行为部件来创建数学函数、限制器、切比雪夫滤波器、积分器、微分器等,您可以根据特定的表达式和查找表进行定制。这使得能够更高级地描述电路的行为,而无需深入了解每个部件的内部工作原理。

  2. 数字行为部件(Digital Behavioral Parts): 这些部件使用特殊的数字行为原语来定义电路部件的功能和时序行为。数字行为部件使用逻辑表达式、引脚之间的延迟等原语来描述电路的行为。这些部件通常用于描述数字电路的行为,包括逻辑门、时钟、触发器等。

使用行为部件的优势在于,它们提供了更高级别的抽象,使工程师能够更快速地建立和验证电路的行为,而不必深入研究每个具体的元件。这对于系统级设计和高级仿真非常有用,因为它可以帮助工程师更容易地理解和调整电路的整体行为。此外,行为部件也可以提高电路设计的可重用性,因为它们可以更容易地应用于不同的项目和电路。

 

定义仿真元件

如果要将部件用于仿真,那么您的部件应该定义了PSPICETEMPLATE属性: 您还可以为数字部件添加其他仿真特定属性:IO_LEVEL、MNTYMXDLY和PSPICEDEFAULTNET。 在编辑部件属性时,需要检查以下内容:

  • 属性是否指定了正确数量的引脚/节点?
  • 指定属性中的引脚/节点是否按正确顺序排列?
  • 属性中的引脚/节点名称是否与部件上的引脚名称相匹配?

 有关如何使用该属性的示例,请参阅PSPICETEMPLATE示例。

编辑仿真属性

要编辑用于仿真的属性:

  1. 在原理图页面编辑器中,选择要编辑的部件。
  2. 从“编辑”菜单中,选择“属性”以显示属性编辑器的部件电子表格。
  3. 单击要更改的列的单元格,或单击“新建”按钮以添加属性(并在“名称”字段中键入属性名称)。
  4. 如果需要,在“值”文本框中键入一个值。
  5. 单击“应用”以更新设计,然后关闭电子表格。

PSPICETEMPLATE属性

PSPICETEMPLATE属性定义了部件的净表项的PSpice语法。在创建净表时,Capture会将电路中的实际值替换到PSPICETEMPLATE语法的适当位置,然后将已翻译的语句保存到净表文件中。 任何您想要仿真的部件必须有一个已定义的PSPICETEMPLATE属性。以下规则适用:

  • PSPICETEMPLATE属性中指定的引脚名称必须与部件上的引脚名称相匹配。
  • 在PSPICETEMPLATE属性中列出的引脚的数量和顺序必须与用于仿真的关联.MODEL或.SUBCKT定义中引用的数量和顺序相匹配。
  • PSPICETEMPLATE中的第一个字符必须是适用于部件的PSpice设备字母(例如,对于双极晶体管,可以是Q)。

PSPICETEMPLATE语法

PSPICETEMPLATE包含:

  • 原理图页面编辑器直接解释的常规字符,以及
  • 原理图页面编辑器翻译的属性名称和控制字符。

模板中的常规字符

常规字符包括以下内容:

  • 字母数字字符
  • 除了与属性一起使用的特殊语法部分(@&?〜#)之外的任何键盘部分
  • 空格 标识符是形式为以下形式的常规字符集合:
  • 字母字符[任何其他常规字符] *。

模板中的属性名称 属性名称前面有一个特殊字符,如下所示:

[ @ | ? | ~ | # | & ]<标识符> 原理图页面编辑器根据特殊字符处理属性,如下表所示。

语法                                        含义 

@<id>                                 <id>的值。如果没有<id>属性或未分配值,则出错。

&<id>                                   <id>的值,如果<id>被定义。

?<id>s...s                              如果<id>被定义,则在s...s分隔符之间的文本。

?<id>s...ss...s                        如果<id>被定义,则在第一个s...s分隔符之间的文本,否则在第二个s...s子句之间。

~<id>s...s                               如果<id>未定义,则在s...s分隔符之间的文本。

~<id> s...ss...s                        如果<id>未定义,则在第一个s...s分隔符之间的文本,否则在第二个s...s子句之间。

#<id>s...s                                如果<id>被定义,则在s...s分隔符之间的文本,但如果<id>未定义,则删除模板的其余部分。

IO_LEVEL属性

IO_LEVEL属性定义了与模拟部件连接的数字部件必须使用的接口子电路模型的级别。 如果您正在创建数字部件,您需要:

  1. 将IO_LEVEL属性添加到部件并分配一个在下表中显示的值。

        接口子电路(级别)

0         电路范围的默认设置

1         AtoD1和DtoA1

2         AtoD2和DtoA2

3         AtoD3和DtoA3

4         AtoD4和DtoA4

2、在属性定义中使用此属性(IO_LEVEL还是数字子电路调用中使用的子电路参数)。

MNTYMXDLY属性

MNTYMXDLY属性定义了数字部件必须使用的数字传播延迟级别。 如果您正在创建数字部件,您需要执行以下操作:

  1. 将MNTYMXDLY属性添加到部件并分配一个在下表中显示的值。

                传播延迟

0                 电路范围的默认设置

1                 最小

2                 典型

3                 最大

4                 最差情况(最小/最大)

2、在属性定义中使用此属性(MNTYMXDLY还是数字子电路调用中使用的子电路参数)。

PSPICEDEFAULTNET属性

PSPICEDEFAULTNET属性定义了连接到电源或地(不可见)引脚的网络名称。

例如,如果数字部件上的电源引脚和地引脚分别连接到数字网络$G_DPWR和$G_DGND,则属性定义如下:

PSPICEDEFAULTNET=$G_DPWR PSPICEDEFAULTNET=$G_DGND

如果您正在创建数字部件,您需要执行以下操作:

  1. 对于每个电源引脚,创建一个PSPICEDEFAULTNET属性,并分配引脚连接到的数字网络的名称。
  2. 在属性定义中使用适当的引脚名称。

指定部件属性值的准则和最佳实践

在指定部件属性值时,请注意以下事项:

  1. 如果单位是一个比例符号,不要在值和单位之间留下空格。例如,指定5K而不是5 K。
  2. 有关比例符号的列表,请参阅在线PSpice参考指南的“在开始之前”章节中的“数字值约定”部分。
  3. 不要使用欧洲符号,其中省略小数点并替换为单位符号,来指定值。例如,如果您指定3K3(3.3K的欧洲符号),PSpice将读取该值为3K。请使用3.3K代替。
  4. 指定公差值时,请以百分比表示。如果您指定绝对值,公差值将被读取为绝对数值。例如,如果您在10K电阻上将POSTOL属性的值指定为百分比,比如10%,则分布值将在10K±1K的范围内。如果您将公差值指定为绝对数值,比如10,分布值将在10K±10的范围内。

放置PSpice Ground 0符号进行PSpice模拟

要运行PSpice模拟,您的设计必须具有PSpice地(0)符号。CAPSYM.OLB是Capture中的默认库,包含PSpice地(0)符号。使用0符号来放置PSpice地0符号在您的设计中。

选择0符号:

  1. 选择Place – Ground(或使用Place Ground工具栏按钮)。将出现Place Ground对话框。
  2. 从库列表中选择CAPSYM部件库(如果尚未选择)。您还可以从Source部件库中放置0符号。要执行此操作,请使用Add Library按钮将Source部件库添加到库列表中;SOURCE.OLB位于您的安装目录下的\TOOLS\CAPTURE\LIBRARY\PSPICE子目录中。
  3. 选择0符号(如果尚未选择)。
  4. 单击OK以放置PSpice地0符号。 或者:
  • 您可以放置任何地符号,打开Property Editor,并将其名称更改为0。
  • 您可以从PSpice Component quick pick中放置PSpice地0符号,即Place - PSpice Component - PSpice Ground。

在生成PSpice网表时,如果Capture在您的设计中找不到PSpice地(0)符号,那么会在Session Log中标记一个警告消息。如果设计将用于运行数字PSpice模拟,则可以忽略此警告。但是,要运行模拟,设计必须至少具有一个PSpice地0符号。

如果您要开始新的模拟PSpice设计,则建议您使用PSpice项目模板AnalogGNDSymbol.opj。该项目默认具有您的模拟设计所需的PSpice地0符号。

使用FLOAT属性进行未连接引脚的处理

在准备使用PSpice进行模拟的电路时,重要的是所有部件的所有引脚都正确连接。如果一个引脚故意保持未连接,您需要使用PSpice引脚属性FLOAT,而不是“未连接”符号。否则,电路可能无法正确地生成PSpice网表。

引脚属性FLOAT可以具有以下三个值之一:

        ​​​​​​​                描述

Error                 该引脚不会生成网表。当生成PSpice模拟网表时,将返回错误消息。当您希望提醒该引脚是“未连接”并应以特殊方式处理时,请使用Error。Error是默认值。

RtoGND         该引脚连接到虚拟电阻,其相反引脚连接到地。电阻的值为1/GMIN。此值允许创建模拟网表并允许PSpice执行分析。虚拟电阻将不会作为布局网表的一部分处理,也不会出现在BOM中。

UniqueNet         当模拟PSpice网表生成时,如果引脚保持未连接,则该引脚会附加到唯一的节点上。当您希望引脚保持未连接但与其部分关联的Probe数据相对应时,请使用UniqueNet。

FLOAT属性可以在创建新部件时在部件编辑器中定义,也可以使用属性编辑器在现有部件上编辑引脚。

使用属性编辑器定义FLOAT属性

  1. 在Capture中,双击引脚以打开属性编辑器电子表格。
  2. 单击Pins选项卡。
  3. 单击新属性,然后在名称文本框中键入FLOAT(大写)。
  4. 输入要使用的属性值,然后单击OK。
  5. 单击Apply或关闭电子表格以使更改生效。

使用全局参数和表达式

除了使用字面值,您还可以使用全局参数和表达式来表示电路设计中的数值。

全局参数

全局参数类似于编程变量,通过名称表示一个数值。 一旦您定义了一个参数(声明了其名称并赋予了一个值),您可以在原理图的任何地方使用它来表示电路值;这适用于任何分层级别。 您可以使用参数的一些方式如下:

  • 将相同的值应用于多个部件实例。
  • 设置一个分析,通过一系列值进行变量扫描(例如,DC扫描或参数分析)。
  • 当多个部件设置为相同的值时,全局参数为进行“假设分析”提供了一种方便的方式。 例如,如果两个独立的源由参数VSUPPLY定义值,那么您可以通过一次分配给VSUPPLY将两个源都更改为10伏特。

声明和使用全局参数 要在设计中使用全局参数,您需要:

  1. 使用SPECIAL.OLB中的PARAM部件定义参数。
  2. 在设计的某个地方使用参数代替字面值。

声明全局参数

  1. 将PARAM部件放入您的设计中。
  2. 双击PARAM部件以显示部件电子表格。
  3. 针对每个全局参数执行以下操作:
    • 单击New,然后在Property Name字段中输入NAMEn,然后单击OK。这将在电子表格中为PARAM部件创建一个名为NAMEn的新属性。
    • 单击NAMEn列下方的单元格,并输入参数的默认值。
    • 保持此单元格处于选中状态,单击Display。在Display format框中,选择Name and Value,然后单击OK。系统变量具有保留的参数名称。在定义自己的参数时,请勿使用这些参数名称。
    • 单击Apply以更新对PARAM部件的所有更改,然后关闭电子表格。

例如,要声明全局参数VSUPPLY,将其设置为独立电压源的值为14伏特,放置PARAM部件,然后创建一个名为VSUPPLY的新属性,其值为14V。

在电路中使用全局参数

找到要替换的数值:组件、模型参数或其他属性值。

使用以下语法将数值替换为全局参数的名称: { global_parameter_name } 花括号告诉PSpice评估参数并使用其值。

为了避免错误,在将参数/属性分配到部件上时,始终将参数变量名放在花括号中。

表达式

PSpice每次读取新电路时或在分析期间更改表达式中的参数值时,都会将表达式评估为一个单一的值。 一个示例是在DC扫描或参数分析的每个步骤中更改的参数。

指定表达式 要在电路中使用表达式 找到要替换的数值或布尔值:组件值、模型参数值、其他属性值或IF函数测试中的逻辑。 使用以下语法将数值替换为表达式: { expression } 其中{expression}可以包含以下任何内容:

  • 标准运算符(列在下表中)
  • 内置函数(在PSpice用户指南中列出)
  • 用户定义的函数
  • 系统变量(在PSpice用户指南中列出)
  • 用户定义的全局参数
  • 字面操作数 花括号告诉PSpice评估表达式并使用其值。

Operator class    Operator    Operation
arithmetic    
                                +    addition or string concatenation

                                -    subtraction

                                *    multiplication

                                /    division
logical    
                                ~    unary NOT

                                |    boolean OR

                                ^    boolean XOR

                                &    boolean AND
relational*    
                                ==    equality test

                                !=    non-equality test

                                >    greater than test

                                >=    greater than or equal to test

                                <    less than test

                                <=    less than or equal to test

将PSpice模型与Capture部件关联

您可以将PSpice模型与在Capture中创建的现有部件或新部件关联起来。在将PSpice模型与部件关联之前,请确保以下事项:

  • 项目应为PSpice模拟或混合A/D类型。
  • 在根原理图上放置部件后才能使用此功能。如果设计不是根原理图,请打开项目管理器,在此原理图上右键单击,然后选择“设为根”以将其转换为根原理图设计。
  • 一次只能选择一个部件。
  • PSpice模型只能与同类部件关联。
  • 如果要将PSpice模型关联到外部引用的设计中的部件,则需要单独打开此设计。接下来,将PSpice模型关联到所需的部件,保存设计,然后在根原理图中重用它。

要在原理图编辑器中将PSpice模型与Capture部件关联:

  1. 选择要将PSpice模型关联到的Capture部件。
  2. 选择工具 – 关联PSpice模型。 或者 从弹出菜单中选择关联PSpice模型。
  3. 会出现一个消息,提示您在关联模型之前保存设计。如果所选部件已经关联了模型,将出现一个消息以确认是否要覆盖此实现。单击“是”。 “关联PSpice模型”对话框将出现。
  4. 单击“浏览”以指定包含所需PSpice模型的库的名称和位置。您可以从“模型库”下拉列表框中选择库,也可以浏览到库的位置.
  5. 一旦您选择了.lib文件,"关联PSpice模型"窗口会列出匹配的模型。默认情况下,选择了“显示匹配模型”选项。要查看所有模型,请选择“显示所有模型”选项。
  6. 从“匹配模型”部分中选择所需的模型。
  7. 在“模型映射”部分中将每个符号引脚映射到模型的正确终端。所选符号引脚的模型终端将显示在“模型终端”下拉列表中。
  8. 选择“显示不可见符号引脚”复选框以查看并映射符号中的任何不可见电源引脚。如果没有这样的引脚,此复选框将显示为禁用状态。
  9. 单击“更新所选”以完成将所选的PSpice模型附加到所选的Capture部件,并关闭“关联PSpice模型”窗口。将显示一条消息,指示所选的模型现在已附加到在原理图编辑器上选择的部件。
  10. 点击OK,

导Pspice项目

要将MicroSim Schematics项目转换为OrCAD Capture项目,可以执行以下步骤:

在Capture中,选择“文件” - “导入” - “PSpice”。

  1. 打开“导入设计”对话框。
  2. 在PSpice选项卡中,选择源原理图(打开),目标项目(另存为)以及PSPICE.INI(原理图配置文件)文件以使用现有设置。
  3. 单击“确定”以启动自动化转换工具。

定义激励源

要对您的电路进行仿真,您需要连接一个或多个源部件,这些部件描述了电路必须响应的输入信号。 PSpice库提供了多个激励源部件,这些部件在接下来的表格中进行了描述。这些部件依赖于:

  • 您正在运行的分析类型,
  • 您是连接到电路的模拟部分还是数字部分,
  • 您想要如何定义激励:使用激励源编辑器、使用文件规范,还是通过定义部件属性值。

模拟激励源

模拟激励源包括电压源和电流源。以下表格显示了电压源的部件名称。


 

输入                                电压源的部件

DC偏置                         VDC或VSRC

AC幅度和相位                 VAC或VSRC

指数型                         VEXP或VSTIM

周期脉冲                         VPULSE或VSTIM

分段线性                         VPWL或VSTIM

永久重复的分段线性         VPWL_RE_FOREVER或VPWL_F_RE_FOREVER

重复n次的分段线性         VPWL_N_TIMES或VPWL_F_N_TIMES*

频率调制正弦波                 VSFFM或VSTIM

正弦波                                 VSIN或VSTIM

*VPWL_F_RE_FOREVER和VPWL_F_N_TIMES是基于文件的部件;刺激规范保存在文件中,并符合PSpice netlist语法。

要确定等效电流源的部件名称,请在电压源部件表中,将部件名称的第一个V替换为I。例如,与VDC等效的电流源是IDC,与VAC等效的电流源是IAC,与VEXP等效的电流源是IEXP,依此类推。

使用VSTIM和ISTIM

您可以使用VSTIM和ISTIM部件来定义任何类型的基于时间的输入信号。要指定输入信号本身,您需要使用刺激编辑器。

如果您想指定多个刺激类型

如果您想运行多个分析类型,包括瞬态分析,则需要使用以下之一:

  • 具有AC和DC属性的基于时间的刺激部件
  • VSRC或ISRC部件

使用具有AC和DC属性的基于时间的刺激部件

您可以使用以下基于时间的刺激部件来定义瞬态、DC和/或AC输入信号。

电压源                 ​​​​​​​                ​​​​​​​        电流源

VEXP                                            IEXP
VPULSE                                       IPULSE
VPWL                                            IPWL
VPWL_F_RE_FOREVER            IPWL_F_RE_FOREVER
VPWL_F_N_TIMES                    IPWL_F_N_TIMES
VPWL_RE_FOREVER                    IPWL_RE_FOREVER
VPWL_RE_N_TIMES                   IPWL_RE_N_TIMES
VSFFM                                    ISFFM
VSIN                                            ISIN

除了瞬态属性外,每个部件还具有DC和AC属性。当您使用其中一个部件时,您必须定义所有瞬态属性。但是,通常将DC和/或AC未定义(留空)。当您为它们赋值时,需要使用以下语法。

属性         ​​​​​​​        语法

DC                 DC_value[units]

AC                 magnitude_value[units] [phase_value]

有关瞬态源属性的含义,请参考在线PSpice参考手册中的模拟器件(独立电流和电压源)设备类型语法,位于模拟设备章节。

使用VSRC或ISRC部件

VSRC和ISRC部件对每种分析类型(DC、AC和TRAN)都有一个属性。您可以使用PSpice netlist语法设置其中任何一个或全部属性。当您为它们赋值时,需要使用以下语法。

属性         ​​​​​​​        语法

DC                 DC_value[units]

AC                 magnitude_value[units] [phase_value]

TRAN             time-based_type (parameters)

其中,time-based_type可以是EXP、PULSE、PWL、SFFM或SIN,而parameters取决于time-based_type。

如果您只运行瞬态分析,建议如果您拥有标准包,使用VSTIM或ISTIM部件,或者使用具有特定于波形形状的属性的其他基于时间的源部件。

数字激励源

数字激励源是用于模拟数字电路中输入信号的部件。这些部件允许您为数字电路提供输入,以模拟电路的行为和性能。以下是一些常见的数字激励源部件:

对于瞬态分析(Transient Analyses):

  1. DIGSTIMn: 可以表示信号或总线(任何宽度)的数字激励源部件。它可以用于模拟任何宽度的数字信号或总线。

  2. DIGCLOCK: 用于表示时钟信号的数字激励源部件。时钟信号在数字电路中用于同步各个元件的操作。

  3. STIM1: 用于表示1位信号的数字激励源部件。

  4. STIM4: 用于表示4位总线的数字激励源部件。

  5. STIM8: 用于表示8位总线的数字激励源部件。

  6. STIM16: 用于表示16位总线的数字激励源部件。

  7. FILESTIMn: 表示基于文件的信号或总线(任何宽度)的数字激励源部件。这可以用于模拟从文件中读取的数字信号。

这些数字激励源部件允许您模拟数字电路的输入,以便进行各种分析,例如瞬态分析。您可以配置这些部件以生成不同的数字信号模式,以测试电路在不同输入条件下的行为。这对于验证数字电路的正确性和性能非常有用。

Using Partial Design Simulation

使用部分设计模拟功能,您可以:

  1. 识别任何设计的各个组件,并仅模拟所选部分。
  2. 使用不同的仿真配置文件在设计中模拟不同的电路。
  3. 创建仅包含设计的特定部分的电路网表。
  4. 快速比较和合并设计的各个部分。

要使用此功能,您需要选择主设计的一个称为测试台(test bench)的部分。您可以使用OrCAD Capture的“工具 - 测试台 - 创建测试台”菜单创建一个或多个测试台。测试台将列在主设计的项目管理器窗口中。您可以从主原理图画布中选择组件并将其添加到测试台中,然后添加配置文件并模拟测试台。您还可以将主设计与测试台同步,以传播您在测试台设计中进行的任何更改。

要使用此功能,需要OrCAD Capture CIS许可证。

您可以按照以下流程使用部分设计模拟,如图所示:

  1. 创建一个测试台。
  2. 在主原理图中选择零件。
  3. 在测试台原理图中终止浮动网络。
  4. 模拟测试台原理图。
  5. 查看测试台和主原理图之间的属性差异。
  6. 使用修改后的值更新主设计。

 

运行仿真并查看结果

创建新的仿真配置文件

仿真配置文件 (*.SIM) 保存了你的仿真设置,以便你可以轻松地重用它们。你可以从头开始创建新的仿真配置文件,也可以从现有的仿真配置文件导入设置。从现有的仿真配置文件导入设置可以让你重用其他仿真配置文件的设置。

Capture 允许你通过从同一项目或另一个项目中导入设置来创建新的仿真配置文件。

要创建新的仿真配置文件,请按照以下步骤操作:

  1. 选择 PSpice - 新建仿真配置文件。 新建仿真对话框会出现。

  2. 在配置文件名称文本框中,输入配置文件的名称(例如,新配置文件的分析类型的名称)。

  3. 你可以选择将仿真设置从现有配置文件导入到新配置文件中。

    • 要从当前项目中选择配置文件,请单击 "继承自" 下拉列表。此列表显示当前项目中的所有仿真配置文件。
    • 要从其他项目中选择配置文件,请单击浏览按钮以导航到所需的仿真配置文件。
  4. 单击 "创建" 以创建配置文件并显示 "仿真设置" 对话框。 "仿真设置" 对话框会出现。

  5. 在 "分析" 选项卡中,指定分析类型。在 "常规" 和其他选项卡中指定相关设置。检查是否在 "配置文件" 选项卡的 "库" 类别下将 nom.lib 添加为全局库。这个 "主库" 文件调用了 Cadence 安装时提供的其他库。PSpice 需要扫描每个库文件,这需要时间。PSpice 会创建一个名为 <filename>.IND 的索引文件,以加速搜索过程。每当 PSpice 检测到索引文件可能无效时,就会重新创建索引文件。 如果没有找到 nom.lib,则 Capture-PSpice 接口将无法检测到用于仿真的 Cadence 提供的 PSpice 库,因此需要全局添加这个库。nom.lib 位于 <install dir>/tools/pspice/library 文件夹中。

  6. 单击 "确定" 以保存设置并关闭对话框。

创建新配置文件后,你可以使用 PSpice – 编辑仿真设置 命令编辑设置。

创建仿真文件网表

在生成 PSpice 电路网表时,你可以选择两种电路网表格式:

  • 扁平电路网表
  • 分层电路清单 使用 "创建电路网表" 对话框上的 PSpice 选项卡生成自定义的 PSpice 电路网表。

在生成电路网表时,如果 Capture 在你的设计中找不到 PSpice 接地 (0) 符号,则会在会话日志中标记警告消息。如果设计将用于运行数字 PSpice 仿真,你可以忽略此警告。但是,如果要运行模拟仿真,设计必须至少有一个 PSpice 接地 0 符号。

查看仿真电路网表

你可以查看所选设计或当前设计的最新仿真电路网表。

要查看仿真电路网表:

  1. 在项目管理器中,选择要创建电路网表的设计,或打开原理图页。
  2. 从 PSpice 菜单中选择查看电路网表。

运行仿真

只要你的设计中有零件的 PSpice 模型,你就可以使用 PSpice 对 Capture 设计进行仿真。PSpice 和 Capture 是完全集成的。

要运行仿真,请按照以下步骤操作:

  1. 在项目管理器中,选择要仿真的设计,或打开原理图页。
  2. 在项目管理器中,选择一个仿真配置文件。
  3. 从 PSpice 菜单中选择运行,或按下 F11 功能键。

PSpice 执行以下操作:

  • 检查设计规则是否符合你的设计。
  • 为 PSpice 创建仿真电路清单。
  • 使用从你的设计创建的电路清单打开 PSpice。

PSpice 在仿真进行中创建一个输出文件 (.OUT)。它包含偏置点信息、模型参数值、错误消息等。如果仿真失败,你可以查看输出文件以查看错误消息。如果仿真成功完成,PSpice 会生成一个数据文件 (.DAT)。这是 PSpice 用于显示仿真结果的文件。要查看标记仿真结果,必须打开原理图。

在仿真进行中查看结果

你可以选择在仿真进行中或仿真完成后查看结果。

要在仿真进行中查看结果:

  1. 从 PSpice 菜单中选择编辑仿真设置。 "仿真设置" 对话框会出现。

  2. 在 "探测窗口" 选项卡中,选中 "显示探测窗口" 复选框。

  3. 选择 "仿真期间" 选项。

  4. 单击 "确定"。

查看最新的仿真结果

你可以查看所选原理图的最新仿真结果。如果原理图使用多个配置文件进行仿真,你可以选择要查看的哪个配置文件的结果。

要查看最新的仿真结果:

  1. 打开要查看仿真结果的原理图。你必须这样做才能查看标记结果。
  2. 在项目管理器中,选择要激活的仿真配置文件。
  3. 从 PSpice 菜单中选择查看仿真结果,或按下 F12 功能键。

查看输出文件 要查看最新的输出文件:

  1. 在项目管理器中,选择要查看输出文件的仿真配置文件。
  2. 从 PSpice 菜单中选择查看输出文件。

编辑仿真设置

仿真配置文件可以在 Capture 和 PSpice 中进行编辑。

从 Capture 编辑仿真设置:

  1. 选择 PSpice – 编辑仿真设置。 "仿真设置" 对话框会出现。
  2. 单击你想要更改的设置选项卡。
  3. 编辑设置并单击 "应用"。
  4. 重复步骤 2 和 3,直到更改完所有所需的设置。
  5. 单击 "确定"。

放置标记点

要在仿真结果中查看标记点,必须打开原理图。

在 AC Sweep/Noise 分析的情况下,高级命令子菜单上的标记类型仅在定义了仿真配置文件后才可用。

要在设计中放置标记点:

  1. 从 PSpice 菜单中选择标记点。
  2. 选择要放置的标记点。
  3. 将附加到光标的标记点符号拖动到要放置它的位置。
  4. 单击以放置符号。
  5. 重复步骤 3 和 4,直到放置所有所需的标记点。
  6. 按 Esc 键结束标记模式,或右键单击并选择 "结束模式"。

显示、隐藏和删除标记点

你可以显示所有标记点、隐藏所有标记点或删除所有标记点。在原理图中显示或隐藏标记点也会显示或隐藏探测窗口中的跟踪结果。

要显示所有、隐藏所有或删除所有标记点:

  1. 从 PSpice 菜单中选择标记点。
  2. 选择 "显示所有"、"隐藏所有" 或 "删除所有" 选项。

当你移动连接有电压标记的导线时,你可能会发现电压标记停留在原来的位置,不再指向导线。当你尝试在移动的导线上移动标记时,你会收到以下警告消息:"电压/数字电平标记将被忽略,除非连接到导线、总线或引脚。" 为避免此警告,在移动已放置标记的导线后,请从 PSpice 菜单的标记子菜单中选择 "显示所有" 命令。这将重新安排所有标记到它们在新位置的相应节点/网。

模拟和查看多个配置文件的结果

你可以选择一个或多个配置文件进行仿真或查看。如果仅选择一个配置文件进行仿真,则会处理为选择 "运行" 命令。如果选择一个文件进行查看,则会处理为选择 "查看仿真结果" 命令。

如果选择多个配置文件,则会使用仿真队列执行所有选定配置文件的仿真。然后,你必须打开 .DAT 文件以查看结果。

要仿真多个配置文件:

  1. 在项目管理器中,选择要仿真的配置文件。
  2. 从 PSpice 菜单中选择仿真选定的配置文件。
  3. PSpice 使用仿真队列打开并处理配置文件。

要查看结果:

  1. 关闭仿真队列,但保持 PSpice 处于活动状态。
  2. 探测窗口处于活动状态,但没有显示跟踪。
  3. 从 PSpice 文件菜单中选择打开。
  4. 选择要查看的 .DAT 文件并单击 "打开" 按钮。每个选择的 .DAT 文件都会在探测窗口底部显示一个选项卡。
  5. 从 PSpice 窗口菜单中选择显示控制。
  6. 选择要显示结果的配置文件。
  7. 单击 "还原"。
  8. 重复步骤 4、5 和 6,以查看显示的结果。

 

激活仿真配置文件

要使用特定的仿真配置文件对设计进行仿真,或查看特定仿真配置文件的最新结果,你必须激活该配置文件。 要激活仿真配置文件,请按照以下步骤操作:

  1. 在项目管理器中,选择你要激活的仿真配置文件。
  2. 从 PSpice 菜单中选择 "激活"。

 仿真的文件

要对设计进行仿真,PSpice需要了解以下信息:

  • 电路中的零部件及其连接方式
  • 要运行的分析类型
  • 与电路中的零部件相对应的仿真模型
  • 用于测试的激励源的定义

这些信息包含在各种数据文件中。其中一些是由设计输入程序(如Capture或Design Entry HDL)生成的,其他文件来自库(也可以由其他程序(如刺激编辑器和模型编辑器)生成),还有一些是用户定义的。

 设计输入程序生成的文件

在开始仿真过程时,设计输入程序首先生成描述电路中零部件和连接的文件。这些文件是由PSpice在执行任何其他操作之前读取的网表文件和电路文件。

网表文件

网表文件包含设备名称、值以及它们与其他设备的连接列表。设计输入程序为该文件生成的名称是DESIGN_NAME-DESIGN_NAME.NET。网表文件位于以下目录中: <project_directory>\worklib<design_name>\cfg_analog

可以为仿真配置文件配置的其他文件

在开始仿真之前,PSpice需要读取其他包含电路的仿真信息的文件。这些是模型文件,如果需要的话,还有激励文件和包含文件。 仿真配置文件包含对PSpice需要读取的其他用户可配置文件的引用。

您可以使用PSpice程序(如激励编辑器和模型编辑器)创建这些文件。这些程序自动生成文件并提供了验证数据的图形方式。您还可以在模型编辑器的模型文本视图中(或其他文本编辑器如记事本中)手动输入数据。

模型库

PSpice使用模型库中的信息来确定零部件对不同电气输入的响应方式。这些定义采用以下形式之一:

  • 模型参数集,通过微调内置到PSpice中的基本模型来定义零部件的行为
  • 或子电路网表,通过相互连接其他零部件和基本构件来描述零部件的结构和功能。

最常用的模型可以在随程序提供的PSpice模型库中找到。模型库的名称具有.LIB扩展名。

但如果需要,您可以创建自己的模型和库,方法有两种:

  • 手动使用模型编辑器中的模型文本视图(或其他文本编辑器如记事本)。

或者

  • 使用模型编辑器自动生成。

刺激文件

您可以通过以下两种方式之一创建刺激文件:

  • 手动使用PSpice的文本编辑器(或标准文本编辑器)创建定义(典型的文件扩展名是.STM)。

-或-

  • 使用刺激编辑器自动生成(生成的文件扩展名是.STL)。

包含文件

包含文件是用户定义的文件,其中包含:

  • PSpice命令
  • 要出现在PSpice输出文件中的补充文本注释

您可以使用任何标准文本编辑器创建一个包含文件。

通常,包含文件的名称具有.INC扩展名。 包含文件可以包含使用PSpice .FUNC命令定义的在设计的其他地方使用的数字表达式中的函数。

配置模型库、刺激和包含文件

PSpice会在其需要完成零部件的定义或运行仿真时搜索模型库、刺激文件和包含文件。

PSpice搜索哪些文件取决于您如何配置模型库和其他文件。许多配置会自动为您设置,但您也可以自己执行以下操作:

  • 添加和删除配置中的文件。
  • 更改文件的范围:即文件是否仅适用于一个配置文件、一个设计(本地)或任何设计(全局)。
  • 更改搜索顺序。

要配置这些文件,请使用Simulation Settings对话框中的Configuration Files选项卡编辑仿真配置文件。

PSpice生成的文件

在读取电路文件、网表文件、模型库和任何其他所需输入之后,PSpice开始仿真。

随着仿真的进行,PSpice将结果保存到两个文件中,即数据文件和PSpice输出文件。 Probe数据文件 数据文件包含可以以图形方式显示的仿真结果。PSpice会自动读取此文件,并显示反映您在设计中标记的电路响应的网、引脚和零部件的波形(交叉探测)。您可以设置仿真,使PSpice在仿真进行时或仿真完成后显示结果。 在PSpice读取数据文件并显示初始结果后,您可以添加更多波形并对数据进行后仿真分析。 有两种方式可以将波形添加到显示中: 从PSpice内部,通过指定跟踪表达式。 从设计输入程序内部,通过交叉探测。

PSpice输出文件

PSpice输出文件是一个包含以下内容的ASCII文本文件:

  • 电路的网表表示
  • PSpice仿真命令和选项(如已启用的分析)的PSpice命令语法
  • 仿真结果
  • 在读取或仿真过程中遇到的问题的警告和错误消息

其内容由以下因素决定:

  • 您运行的分析类型
  • 您选择的运行PSpice的选项
  • 您在设计中放置并连接到电路中的网和引脚的仿真控制部分(如VPRINT1和VPLOT1)

在批处理模式下运行PSpice

PSpice中的仿真可以以两种方式在批处理模式下运行:

交互模式

非交互模式

交互模式

在此模式下,从命令行调用PSpice并加载仿真电路文件。有关命令行选项的信息,请参阅PSpice参考指南。

要运行一组仿真电路文件(*.cir),可以在Windows命令提示符上使用以下命令: <pspice.exe的路径>/pspice.exe /r <cir文件的路径>

例如: <CDS_INST_DIR>\tools\pspice\pspice.exe /r C:/mysim/test1.cir 要设置多个仿真,可以创建一个批处理文件,每个命令调用不同的.cir文件。

非交互模式

在此模式下,仿真在后台运行,不会调用pspice。要运行此模式,需要从命令行调用psp_cmd.exe可执行文件。该可执行文件位于与pspice.exe相同的位置。

例如: <CDS_INST_DIR>\tools\pspice\psp_cmd.exe /r <cir文件的路径> 后台仿真的优点是,在不收敛的情况下,仿真会等待用户介入10秒,如果没有操作,它将继续下一个可用命令。

 

SPICE网表格式

通用的、扁平的SPICE格式网表具有以下特点:

  • 部件名称、模块名称、引用字符串、节点名称和引脚编号的长度没有限制。
  • 节点编号限制为五个字符。
  • 如果选择了“使用网络名称”选项,节点名称的合法字符限制为: 0..9 A..Z a..z $ _(下划线)

如果选择此选项,Capture将使用您在原理图页上放置的节点名称(通过别名和分层端口),如果有的话。并非所有版本的SPICE都支持字母数字节点名称。请查阅您的SPICE手册以获取详细信息。如果您的SPICE版本不允许使用字母数字节点名称,仍然可以给它们分配数值名称,如“17”。这些数值名称不会干扰Capture生成的名称,因为它生成的节点编号从10000开始(GND除外,它始终为0)。

  • 除节点名称外,所有ASCII字符都是合法的,除非节点名称有特殊限制。 有关扁平SPICE净电表的更多信息,请参阅扁平SPICE净电表示例。

SPICE格式

Capture提供了两种SPICE网表格式。第一种格式根据项目结构和活动视图的不同,产生分层或扁平的网表输出。可以从Create Netlist对话框的SPICE选项卡访问它。第二种格式仅产生扁平网表,并且可以通过Create Netlist对话框的Other选项卡访问。

使用SPICE选项卡的情况:

  • 您想要包括网络、部件和引脚属性。
  • 您想要一个分层网表。 使用其他选项卡的情况:
  • 您想要一个简单分层设计的扁平网表。

SPICE中的分层设计

对于分层设计,SPICE格式生成包含分层结构中原理图页的子电路(.SUBCKT)定义的网表。这些子电路由X命令(子电路调用)调用。由于SPICE不要求在使用之前定义子电路,因此分层在净电表中以常规形式出现,其中根页位于文件顶部。

根据PSPICE手册,X子电路的一般形式是:

X name [nodes] subcircuit-name

其中: 名称指定设备的唯一名称 节点指定附加到设备的电路的网列表,与设备使用的.SUBCKT定义的顺序相同 子电路名称指定X设备使用的.SUBSCKT定义的名称

以下是X子电路调用的示例:

XBUF 13 15 UNITAMP

有关分层SPICE网表的更多信息,请参阅分层SPICE网表表示例。

SPICE网表约束

  • Capture可以创建大于大多数基于PC的SPICE程序接受的净电表。请查阅您的SPICE手册以获取限制信息。如果您的PC满足SPICE的内存要求,您可以生成允许的最大净电表。
  • 部件值用于将建模信息传递给净电表。例如,示例扁平原理图文件夹中的电阻器RS1的值为1K欧姆;例如,示例分层原理图文件夹中的R1的值为6.8K欧姆。
  • 在生成SPICE净电表时,使用OrCAD提供的特殊PSPICE.OLB或SPICE.OLB库。这些库已经在部件上具有引脚号,并且与大多数SPICE的版本兼容。PSPICE.OLB包含许多特定的部件类型,例如2N2222 NPN晶体管,这些部件在通用的SPICE.OLB中未提供。
  • 所有库部件引脚名称都应更改以反映模型节点索引。要了解正确的节点排序,参阅您的SPICE手册。
  • 作为要更改的示例,OrCAD提供的NPN晶体管在DEVICE.OLB库中将引脚名称定义为base、emitter和collector。为了使SPICE理解节点信息,引脚名称必须从base、emitter和collector更改为2、3和1(如SPICE手册中定义的那样)。因此,与SPICE引脚编号约定兼容的NPN晶体管的库源文件如下所示:
 'NPN'
 REFERENCE 'Q'
 {X Size =} 2 {Y Size =} 2 {Parts per Package =} 0
 L1 SHORT IN '2'
 B2 SHORT IN '3'
 T2 SHORT IN '1'
 { 0}..##.#
 { 1} ## #
   .
   .
   .

SPICE映射文件

除了净电表文件外,当选择SPICE格式时,Capture还会创建一个映射文件。Capture创建的节点号将放置在.MAP文件中,以便您可以将SPICE节点号与您在原理图页上指定的节点名称进行交叉引用。您必须在Create Netlist对话框的Map File文本框中输入映射文件名。 如果选择了“使用网络名称”选项,映射文件可能包含错误的结果。 有关SPICE映射文件的更多信息,请参阅扁平和分层映射文件示例。

SPICE管道命令

您可以在原理图页上放置文本行,以便在SPICE净电表中包括这些文本。选择Place菜单上的Text命令将文本放置在原理图页上。 每行文本必须以管道字符(|)开头。第一行必须是: |SPICE 这告诉Capture在生成SPICE净电表时提取以下文本行中的信息。|SPICE后面的其余行可以包含您希望包含在净电表中的任何信息。跟在|SPICE后面的行位于净电表的顶部。

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

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

相关文章

ViT模型架构和CNN区别

目录 Vision Transformer如何工作 ViT模型架构 ViT工作原理解析 步骤1&#xff1a;将图片转换成patches序列 步骤2&#xff1a;将patches铺平 步骤3&#xff1a;添加Position embedding 步骤4&#xff1a;添加class token 步骤5&#xff1a;输入Transformer Encoder 步…

leetcode 213. 打家劫舍 II

2023.8.20 本题是 打家劫舍 的进阶版&#xff0c;房屋之间形成一个环了&#xff0c;也就是第一个房屋和最后一个房屋不能一起偷了。那么能偷的情况分为下列三种&#xff1a; 不考虑偷首房间。不考虑偷尾房间。不考虑偷首尾房间。 第三种情况包含于第一和第二种情况了&#xff…

CSerialPort教程4.3.x (1) - CSerialPort项目简介

CSerialPort教程4.3.x (1) - CSerialPort项目简介 前言 CSerialPort项目是一个基于C/C的轻量级开源跨平台串口类库&#xff0c;可以轻松实现跨平台多操作系统的串口读写&#xff0c;同时还支持C#, Java, Python, Node.js等。 CSerialPort项目的开源协议自 V3.0.0.171216 版本…

分组与引用:用正则实现更复杂的查找和替换操作

括号在正则中的功能就是用于分组。简单来理解就是&#xff0c;由多个元字符组成某个部分&#xff0c;应该被看成一个整体的时候&#xff0c;可以用括号括起来表示一个整体&#xff0c;这是括号的一个重要功能。其实用括号括起来还有另外一个作用&#xff0c;那就是“复用”。 …

Linux 线程同步——信号量

一、线程同步的概念 这里的同步就是对程序的执行进行控制&#xff0c;因为如果不进行控制就会出现错误的问题&#xff0c;这里的控制是为了保证程序的正确性。 线程同步指的是当一个线程在对某个临界资源进行操作时&#xff0c;其他线程都不可以对这个资源进行操作&#xff0…

json文件读取数据报错 AttributeError: ‘str‘ object has no attribute ‘items‘

trans_width_table表如下&#xff1a; {frozenset({2}): {3: 250, 2.5: 100, 1.5: 25, 2: 50, 1.8: 50, 2.75: 200, 5: 350, 4: 350, 2.3: 100, 4.5: 350, 3.5: 300}, frozenset({1, 3, 4, 5}): {2.5: 75, 2.75: 100, 1.5: 25, 4: 300, 3.5: 200, 4.5: 300, 3: 100, 5: 300, 2…

沁恒ch32V208处理器开发(六)BLE开发

目录 概述任务初始化任务的调度执行TMOS 处理事件方法 概述 CH32V 系列是基于青稞 32 位 RISC-V 设计的工业级通用微控制器&#xff0c;片上集成 2Mbps 低功耗蓝牙通讯模块&#xff0c;支持低功耗蓝牙 BLE5.x&#xff0c;低功耗蓝牙协议栈以及应用均基于 TMOS&#xff08;Task…

光电比赛小车寻宝【1】--循迹策略

2023光电比赛总结&#xff1a;主要功能实现了&#xff0c;就是视频没做好&#xff0c;落选了非常的遗憾&#xff0c;也有很多的不甘心&#xff0c;也可以作为最后摆烂的惩罚吧&#xff0c;在这里总结一下经验教训。整体感觉时间不是非常充分&#xff0c;因为得到比赛的消息后突…

Linux之管理逻辑卷

目录 管理逻辑卷 认识LInux逻辑卷 LVM基本概念 部署逻辑卷 常用LVM部署命令 案例 管理与调整LVM卷 1.扩展卷组——添加/dev/nvme0n2p4物理卷到vg01中 2.在线扩展逻辑卷 管理逻辑卷 逻辑卷管理器是Linux 系统用于对硬盘分区进行管理的一种机制&#xff0c; 理论性较强 &…

安装搭建私有仓库 Harbor

目录 一. 准备环境 1.1安装 Docker 1.2安装 Docker Compose 二. 下载 Harbor 安装包 三. 解压安装包 四. 配置 Harbor 五. 安装 Harbor 六. 访问 Harbor 七. 创建项目、用户和角色 一. 准备环境 确保您的服务器满足 Harbor 的系统要求。最低要求是至少 2 核 CPU、4GB…

【沁恒蓝牙mesh】CH58x串口环形FIFO数据处理

本文章主要针对沁恒科技的CH58x芯片&#xff0c;以 BLE_UART 工程为依托&#xff0c;介绍串口数据的接收与处理。 该工程中 串口数据的处理用到了环形FIFO机制&#xff0c;可作为其他开发工具 &#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我…

【LLM数据篇】预训练数据集+指令生成sft数据集

note 在《Aligning Large Language Models with Human: A Survey》综述中对LLM数据分类为典型的人工标注数据、self-instruct数据集等优秀的开源sft数据集&#xff1a;alpaca_data、belle、千言数据集、firefly、moss-003-sft-data多轮对话数据集等 文章目录 note构造指令实例…

k8s扩缩容与滚动更新

使用kubectl run创建应用 kubectl run kubernetes-bootcamp \> --imagedocker.io/jocatalin/kubernetes-bootcamp:v1 \> --port8080 端口暴露出去 kubectl expose pod kubernetes-bootcamp --type"NodePort" --port 8080 使用kubectl create创建应用 kubect…

该产品与此版 VMware Workstation 不兼容,因此无法使用

目录 VMware虚拟机开机报错 解决错误 VMware虚拟机开机报错 配置文件“D:\Users\tyn\Documents\Virtual Machines\Ubuntu16 的克隆\Ubuntu16 的克隆.vmx”是由 VMware 产品创建&#xff0c;但该产品与此版 VMware Workstation 不兼容&#xff0c;因此无法使用。 无法打开配…

VMware 虚拟机三种网络模式详解

文章目录 前言桥接模式(Bridged)桥接模式特点: 仅主机模式 (Host-only)仅主机模式 (Host-only)特点: NAT网络地址转换模式(NAT)仅主机模式 (Host-only)特点: 前言 很多同学在初次接触虚拟机的时候对 VMware 产品的三种网络模式不是很理解,本文就 VMware 的三种网络模式进行说明…

线上异常的处理

一、线上问题的排查 进程ID 简称为PID free -m 查看内存使用情况 iostat 查看磁盘读写活动情况 netstat 查看网络连接情况 df -h 查看磁盘空间使用情况 du -sh 查看文件大小情况 1.1、top 命令查看CPU占用情况 top -n num 查看CPU占用最高的num个进程top -Hp PID 或 top -H -p…

Vulnhub系列靶机--- Hackadmeic.RTB1

系列&#xff1a;Hackademic&#xff08;此系列共2台&#xff09; 难度&#xff1a;初级 信息收集 主机发现 netdiscover -r 192.168.80.0/24端口扫描 nmap -A -p- 192.168.80.143访问80端口 使用指纹识别插件查看是WordPress 根据首页显示的内容&#xff0c;点击target 点击…

Java-类与对象(上)

什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。 面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。 以面向对象方式来进行处理&#xff0c;就…

宏病毒的实践

一、实验目的&#xff1a; 1、了解梅丽莎宏病毒基本概念 2、自己实验梅丽莎宏病毒 二、预备知识&#xff1a; 1.什么是word宏 宏是一个批处理程序命令&#xff0c;正确地运用它可以提高工作效率。微软的office软件运行用户自己编写&#xff0c;叫VBA的脚本来增加其灵活性&…

12. 登录拦截器

由于论坛中的所有功能接口都需要在用户登录的情况下才能访问&#xff0c;所以要做统一的登录身份校验。 1. 在 interceptor 包下创建 LoginInterceptor Component // 交给 Spring 管理 public class LoginInterceptor implements HandlerInterceptor {// 从配置文件中读取配…