.VEC ‘digital_vector_file’
定义矢量名称、大小、信号方向、每个矢量激励的序列或顺序等;
下面是一个示例矢量模式定义部分:
radix语句指定与每个向量相关联的位数。位数的有效值范围为1到4。文件中只能出现一条基数语句,并且必须是第一个非注释行。
此实例说明两个1位信号,接着是4位信号,接着是1位、2位、3位和4位信号中的每一者,且最后是八个1位信号。
vname语句定义每个向量的名称。如果不指定vname,Star-Hspice会为每个信号分配一个默认名称:V1、V2、V3等。如果定义了多个vname语句,则最后一个语句将优先于前一个语句。每个位都需要vname名称。您可以将单个名称与多个位相关联(例如,总线表示法)。要提供位索引的范围,请使用方括号[]和冒号:
IO声明: io语句定义了每个vector的类型。该行以io关键字开头,后跟一个i、b、o或u定义的字符串。这些定义指示每个对应向量是输入(i)、双向(b)、输出(o)还是未使用(u)向量。如果不指定io语句,Star-Hspice会假设所有信号都是输入信号。如果定义了多个io语句,则最后一个语句将优先于前面的语句。
Tunit语句: tunit语句定义数字矢量文件中的时间单位,包括period、tdelay、slope、trise、tfall和绝对时间。它必须是以下之一:
如果不指定tunit语句,则默认时间单位值为ns。如果定义了多个tunit语句,则最后一个语句优先于前一个语句。
本例中的tunit语句指定表格数据节中的绝对时间为11.0ns、20.0ns和33.0ns。
Period和Tskip语句: period语句定义表格数据部分的时间间隔。您不需要在每个时间点指定绝对时间。如果使用period语句,而不使用tskip语句,则表格数据部分仅包含信号值,而不包含绝对时间。tunit语句定义周期的时间单位。
表格数据(1000 1000)的第一行在时间0ns处。第二行(1100 1100)在10ns处。第三行(1010 1001)在20ns处。
在使用period语句时,忽略tskip语句指定表格数据中的绝对时间字段。可以保留但忽略表格数据中每行的绝对时间字段。
-Hspice忽略绝对时间11.0、20.0和33.0
enable语句指定双向信号的控制信号。所有双向信号都需要一个enable语句。如果指定多个enable语句,则最后一个语句将优先于前一个语句,并且Star-Hspice将发出警告消息。语法是enable关键字,后跟控制信号名称,以及定义enable应用的(双向)信号的掩码。对于双向信号,控制信号必须是基数为1的输入信号。当控制信号处于状态1(或高)时,双向信号变为输出。要反转此默认控制逻辑,请以波浪号(~)开始控制信号名称。
在这个例子中,x和y信号是双向的,如io行中的b所定义的。
第一个使能语句表明,当a信号为1时,x(由F的位置定义)变为输出。第二使能指定当a信号为0时y双向总线变为输出。
波形特性部分定义信号的各种属性,如上升或下降时间、逻辑“高”或“低”的阈值等。波形特性部分示例如下:
修改波形特征:
Tdelay、Idelay和Odelay语句: tdelay、idelay和odelay语句定义信号相对于表格数据部分中每行的绝对时间的延迟时间。
■ idelay适用于输入信号。■ odelay适用于输出信号。■ tdelay适用于输入和输出信号。
该语句以关键字(tdelay、idelay或odelay)开头,后跟延迟值,然后是掩码。掩码定义延迟所应用的信号。如果不提供掩码,则延迟值适用于所有信号。
tunit语句定义了tdelay、idelay和odelay的时间单位。通常情况下,您只需要使用tdelay语句;idelay和odelay语句只为双向信号指定不同的输入和输出延迟时间。
Star-Hspice忽略输出信号上的idelay设置(或输入信号上的odelay设置),并发出警告消息。
可以指定多个tdelay、idelay或odelay语句。如果对一个信号应用多个tdelay(idelay,odelay)语句,最后一个语句会推翻前面的语句,Star-Hspice会发出警告。如果未在tdelay、idelay或odelay语句中指定信号延迟,Star-Hspice默认为零。
第一个tdelay语句表示所有信号具有相同的延迟时间1.0。随后的tdelay语句否决了某些信号的延迟时间。
V4、V5[0:1]和V6[0:2]信号的延迟时间为1.5。
V7[0:3]信号的输入延迟时间为2.0,输出延迟时间为3.0。
斜率声明: slope语句指定输入信号的下降时间。tunit语句定义时间单位。如果未指定斜率语句,则默认斜率值为0.1 ns。要指定应用斜率的信号,请使用掩码。如果指定多个斜率语句,则最后一个语句将优先于前面的语句,并且Star-Hspice将发出警告消息。
斜率声明对预期输出信号没有影响。您可以指定可选的trise和tfall语句,以否决信号的上升时间和下降时间。
在第一示例中,所有信号的上升和下降时间均为1.2 ns。■第二示例指定第一、第二、第六和第七信号的上升/下降时间为1.1 ns。
Trise声明: trise语句指定每个输入信号的上升时间(掩码适用于该信号)。tunit语句定义trise的时间单位。如果您不使用任何trise语句来指定信号的上升时间,Star-Hspice将使用slope语句中定义的值。如果对一个信号应用多个trise语句,最后一个语句会推翻前面的语句,并且Star-Hspice会发出警告消息。
Tfall声明: tfall语句指定每个输入信号的下降时间(掩码适用于该输入信号)。tunit语句定义tfall的时间单位。如果您没有在tfall语句中指定信号的下降时间,StarHspice将使用slope语句中定义的值。■如果为一个信号指定了多个tfall语句,则最后一个语句将优先于前面的语句。Star-Hspice发出警告信息。
输出/输出语句: out和outz关键字是等效的,它们为每个信号指定输出电阻(掩码适用于此信号); out(或outz)仅适用于输入信号。如果没有指定信号的输出电阻,在out(或outz)语句中,Star-Hspice使用默认值(零)。■如果为一个信号指定了多个out(或outz)语句,最后一个语句会推翻前面的语句,并且Star-Hspice会发出警告消息。
Triz声明: triz语句指定当信号(掩码适用的信号)处于三态时的输出阻抗; triz仅适用于输入信号。如果你不指定一个信号的三态阻抗,在triz语句中,Star-Hspice假设为1000 M。■如果对一个信号应用多个triz语句,最后一个语句会推翻前面的语句,Star-Hspice会发出警告。
Vih声明: vih语句为掩码应用的每个输入信号指定逻辑高电压。■如果未指定信号的逻辑高电压,则在vih语句中,Star-Hspice假定为3.3。■如果对一个信号应用多个vih语句,最后一个语句会推翻前面的语句,Star-Hspice会发出警告。
Vil声明: vil语句为掩码应用的每个输入信号指定逻辑低电压。如果您没有指定信号的逻辑低电压,在vil语句中,Star-Hspice假定为0.0。■如果对一个信号应用多个vil语句,最后一个语句会推翻前面的语句,Star-Hspice会发出警告。
vref语句: 类似于tdelay语句,vref语句为掩码应用到的每个输入向量指定参考电压的名称。Vref仅应用于输入信号。
当Star-Hspice将其实现到网表中时,电压源实现v1:V2、V3、V4、V5、V6和V7
Vth语句:
如果不指定信号的阈值电压,在Vth语句中,Star-Hspice假定为1.65。
Voh声明:
注释行: 任何以分号(;)开头的行都是注释行。注释也可以从一行中的任意点开始。Star-Hspice忽略分号后的字符。
继续一行:与网表中一样,任何以加号(+)开头的行都是前一行的延续。
表格数据部分定义(以表格格式)在指定时间的信号值。其一般格式为:
一个特定信号在所有时间内的一组值是一个向量,它在表格数据和向量表中显示为一个垂直列。所有signal1_valuex的集合构成一个向量。表格数据节中的行必须按时间顺序出现,因为行位置包含顺序计时信息。
这个例子有八个信号,因此有八个向量。第一个信号(从左边开始)有一个向量[1 1 1 1];第二个有一个向量[0 1 0 0];依此类推。
输入激励: -Hspice将每个输入信号转换为PWL(分段线性)电压源和串联电阻。输入信号的状态为:
对于0、1、X、x、U和u状态,Star-Hspice将电阻设置为零。对于L和H状态,out(或outz)语句定义电阻值。对于Z和z状态,triz语句定义电阻值。
Star-Hspice将每个输出信号转换为网表中的.DOUT语句。在仿真过程中,Star-Hspice将实际结果与预期输出矢量进行比较。如果状态不同,则会显示错误消息。预期输出状态包括:
Star-Hspice也接受Verilog的格式,用于指定数字:
此示例指定以下值:■二进制的4位信号■十六进制的12位信号■二进制的32位信号■十六进制的8位信号 ;在非Verilog格式中,这些行的等价物是:
发表评论