首页 > 国家标准(GB) > GB/T 18349-2001 集成电路/计算机硬件描述语言Verilog
GB/T 18349-2001

基本信息

标准号: GB/T 18349-2001

中文名称:集成电路/计算机硬件描述语言Verilog

标准类别:国家标准(GB)

标准状态:现行

发布日期:2001-04-09

实施日期:2001-10-01

出版语种:简体中文

下载格式:.rar.pdf

下载大小:29224329

标准分类号

标准ICS号:信息技术、办公机械设备>>35.060信息技术用语言

中标分类号:电子元器件与信息技术>>信息处理技术>>L74程序语言

关联标准

采标情况:IEEE Std 1364-1995

出版信息

出版社:中国标准出版社

书号:155066.1-17863

页数:平装16开, 页数:483, 字数:960千字

标准价格:160.0 元

出版日期:2004-05-10

相关单位信息

首发日期:2001-04-09

复审日期:2004-10-14

起草单位:北京理工大学和中国标准研究中心

归口单位:全国信息技术标准化技术委员会

发布部门:国家质量技术监督局

主管部门:国家标准化管理委员会

标准简介

本标准旨在作为Verilog?硬件描述语言(HDL)的完整规范。本文档包括:--Verilog HDL所有结构的形式化语法和语义;--模拟系统的任务和函数,例如文本输出显示命令;--编译指令,例如文本替代宏和模拟的时间刻度;--编程语言接口(PLI)的连接机制;--存取例行程序、任务例行程序/函数例行程序以及Verilog的过程化接口例行程序的形式化语法和语义;--应用实例;--PLI头文件列表。 GB/T 18349-2001 集成电路/计算机硬件描述语言Verilog GB/T18349-2001 标准下载解压密码:www.bzxz.net

标准图片预览






标准内容

ICS.35.060
中华人民共和国国家标准
GB/T18349—2001
集成电路/计算机硬件描述语言VerilogIntegrated Circuit/Computer Hardware DescriptionLanguage Verilog
2001-04-09发布
2001-10-01实施
国家质量技术蓝督局
GB/T18349-—2001
本标准等同采用(美国)电气与电子工程师协会:IEEEStd1364—1995《基于硬件描述语言Verilog的标准硬件描述语言》,其技术内容与IEEEStd1364一1995完全一致,标准结构也无任何改动,只是增加了附录“专用术语中英文对照表”,以利于本标准专业术语的统一。IEEEStd1364—1995标准已被世界各工业发达国家普遍接受,将其等同采用为我国国家标准将使我国的集成电路CAD软件技术在使用方法上与国际保持一致,有利于我国与国际集成电路设计技术标准化接轨,也有利于我国硬件描述语言按国际惯例规范化。VerilogHDL(VerilogHardwareDescriptionLanguage,VerilogHDL)是一项重要的集成电路CAD软件技术,是当前HDL(硬件描述语言)设计方法学的基础,受到半导体及集成电路设计行业的普遍重视,世界各大半导体公司大多采用了该标准。当前国际微电子技术正在迅猛发展,我国正处在突破集成电路产业落后局面的关键时刻,而集成电路设计是有可能首先取得成功的行业,这一点在国内已取得共识。因此,本标准的发布实施必将会对我国的CAD发展有重要的推动作用。硬件描述语言Verilog是PhilipR。Moorby于1983年在英格兰阿克顿市的GatewayDesignAutomation硬件描述语言公司设计出来的,该公司在同一年发布了“VerilogHDL”及其模拟器,并于1985年推出改进产品Verilog一XL。1989年12月,Cadence公司并购了这家公司,并于1990年将VerilogHDL公开,成立了oVI(OpenVerilogInternational)。OVI是由VerilogHDL用户和CAE供应商组成的行业协会,负责推动和制定工业标准。VerilogHDL在1995年12月12日被IEEE接纳为EEEstd1364—1995工业标准(下文简称Verilog)。Verilog从诞生起就与生产实际紧密结合在一起,具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点,并获得许多工具的支持,深受用户的喜爱。虽然另一种硬件描述语言VHDL于1987年首先成为IEEEstd1076—1987标准,并于1993年扩展为IEEEstd1076—1993标准,使它得到迅速发展,但是Verilog实际上是IC行业标准,特别是在1995年12月被IEEE接纳为正式标准后,使它成为一种很有竞争力的硬件描述语言。VerilogIEEEstd1364—1995标准包含的内容十分丰富,主要有:词法约定、数据类型、表达式、语义调度、赋值语句、门级建模和开关级建模、用户定义的基元、行为级建模、任务和函数、有名称的块和任务的停用、层次化结构、指定块、系统任务和函数、值变转储文件、编译指令、PLITF和ACC接口机制、ACC程序定义及ACC程序的使用、TF程序定义及TF程序的应用、VPI程序定义及VPI程序的使用等内容。
本标准中黑体字和斜体字的说明见1.3。本标准的附录A、附录B、附录C、附录D、附录E都是标准的附录。本标准的附录F、附录G、附录H和附录I都是提示的附录。本标准由中国标准研究中心和北京理工大学提出。本标准由全国信息技术标准化技术委员会归口。本标准起草单位:北京理工大学和中国标准研究中心。本标准主要起草人:刘明业、蒋敬旗、董连续、石峰、胡燕翔、叶梅龙、董国华、樊孝忠。I
1概述
中华人民共和国国家标准
集成电路/计算机硬件描述语言VerilogIntegrated Circuit/Computer Hardware DescriptionLanguage Verilog
1.1本标准的目的
本标准旨在作为Verilog硬件描述语言(HDL)的完整规范。本文档包括:-VerilogHDL所有结构的形式化语法和语义;一模拟系统的任务和函数,例如文本输出显示命令;一编译指令,例如文本替代宏和模拟的时间刻度;一编程语言接口(PLI)的连接机制;GB/T18349—2001
存取例行程序、任务例行程序/函数例行程序以及Verilog的过程化接口例行程序的形式化语法和语义;
一应用实例;
一PLI头文件列表。
1.2本标准使用的一些约定
本标准分为多章,每章集中阐述该语言的某个特定问题。每章中各条论述单独的结构和概念。论述中首先是对结构或概念的介绍和基本原理,接着是语法和语义描述,以及一些举例和注释。本标准中使用的动词“shall”表示强制要求,而动词“can”表示可选择性。这些动词对于不同的读者表示不同的含义:
a)对于VerilogHDL的工具开发人员来说,动词“shall”表示标准强加的要求。要求最终实现的结果能够实现这些要求,如果要求不能得到满足就报错。b)对于VerilogHDL模型开发人员来说,动词“shall”表示VerilogHDL的特性是语言定义的自然结果。要求模型开发人员能够遵循这些特性所隐含的约束。动词“can”表示可选择性,模型开发人员可以随意操作。如果采用,则要求模型开发人员遵循语言定义所阐明的要求。c)对于使用VerilogHDL模型的用户来说,动词“shall”表示模型的特性是语言定义的自然结果。模型用户可以依赖VerilogHDL源文本隐含的模型特性。1.3语法描述
使用BackusNaur范式(BNF)进行VerilogHDL的形式化描述。使用以下约定:a)使用小写字母、下划线表示语法范畴。例如:module_declaration
b)使用黑体字表示保留的关键词、操作符,标点符号作为语法要求的一部分。这些字以较大的字体出现以便于区别。例如:
module->
c)使用竖线将可选项分开,除非它以黑体字出现,此时它表示其本身。例如:国家质量技术监督局2001-04-09批准2001-10-01实施
unary_operator ..-
GB/T18349—2001
+[-![~~&[~&~[~~
d)使用方括号将选择项括起来。例如:input_declaration::=input[rangeJlist_ofvariables;e)使用大括号将重复项括起来,除非它以黑体字出现,此时它表示其本身。可选项可以出现0次或多次,重复项按从左到右的顺序出现,遵循左递归的规则。因此,下面的两条规则是相同的:list_of_param_assignments ::-param_assignment (,param_assignment)list_of_param_assignments..-param_assignment
I list_of_param_assignment,param_assignmentf)如果语法范畴的名称以斜体字开始,那么它与没有斜体字部分的范畴名称是相同的。斜体字部分是为了传达一些语义信息。例如,msb_constant_expression和lsb_constant_expression等效于constant_expression。
当定义一个术语时,例如定义常量宽度字体或文件名时,或者当引用常数时,特别是引用0、1、x和z值时,主文本使用斜体字。
1.4本标准的内容
各章和附录的大纲以快速参考的形式呈现。总共有23章和9个附录。所有章条和附录A到附录E都是本标准的正式内容。附录F到附录I只是为了提供一些信息。第1章概述
本章讨论本标准使用的约定及其内容。第2章
词法约定
本章描述如何指定和解释词法符号。第3章
数据类型
本章描述数据类型net和reg。本章也讨论用作常数值的参数数据类型,并描述net上数值的驱动和电荷强度。
第4章表达式
本章描述表达式中使用的操作符和操作数。第5章语义调度
本章描述VerilogHDL的语义调度。第6章
第7章
赋值语句
本章对VerilogHDL中两种主要的赋值语句一一持续赋值语句和过程赋值语句进行比较,描述将数值驱动到net上的持续赋值语句。门级建模和开关级建模
本章描述门级建模、开关级基元和逻辑强度建模。第8章用户定义的基元(UDPs)
本章描述如何在VerilogHDL中定义基元以及这些基元如何包含在VerilogHDL模型中。
第9章行为建模
本章描述过程赋值语句、过程持续赋值语句和行为语句。第10章任务和函数
本章描述任务和函数一
一在行为模型中可以从二个以上的地方进行调用的过程,描述如何像子程序一样使用任务,以及如何使用函数定义新的操作符。第11章有名称的块和任务的停用2
GB/T 18349—2001
本章描述如何停止使用任务和具有指定名称的语句块。第12章层次化结构
本章描述如何在VerilogHDL中建立层次,如何重载在模块中说明的参数值。第13章指定块
本章描述如何指定模块中输入端口和输出端口之间的时序关系。第14章
系统任务和函数
本章描述系统任务和函数。
值变转储(VCD)文件
第15章
本章描述与值变转储(VCD)文件有关的系统任务和文件格式。编译指令
第16章
本章描述编译指令。
第17章
PLITF和ACC的接口机制
本章描述一种接口机制,该接口机制提供一种方法使用户将PLI任务/函数(TF)例行程序和存取例行程序连接到Verilog软件工具上。ACC例行程序的使用
第18章
本章主要描述ACC例行程序,包括如何使用以及为什么使用这些ACC例行程序。ACC例行程序的定义
第19章
本章描述特殊的ACC例行程序,解释它们的功能、语法和使用方法。第20章
TF例行程序的使用
本章描述TF例行程序使用的操作类型。TF例行程序的定义
第21章
本章描述专有的TF例行程序,解释它们的功能、语法和使用方法。VPI例行程序的使用
第22章
本章描述Verilog编程接口(VPI)例行程序使用的操作类型。第23章
VPI例行程序的定义
本章描述VPI例行程序。
附录A
附录B
附录c
附录D
形式化语法定义
本附录使用BNF描述VerilogHDL的语法。关键词列表
本附录列出VerilogHDL的关键词。acc_user.h文件
本附录列出acc_user.h文件的内容。veriuser.h文件
本附录列出acc_veriuser.h文件的内容。附录E
vpi_user.h文件
本附录列出vpi_user.h文件的内容。附录F系统任务和函数
本附录描述经常用到的系统任务和函数,但这些并不是标准的一部分。附录G
附录H
附录I
编译指令
本附录描述经常用到的编译指令,但这些并不是标准的一部分。参考文献
本附录包括本标准的参考书目。专用术语中英文对照表
本附录包括本标准用到的中英文专用术语。3
1.5头文件清单
GB/T18349
头文件清单包含在附录C、D和E中,分别是veriuser.h、acc_user.h和vpi_user.h,这些是本标准的正式内容。所有匹配的软件工具都应使用这些头文件中包含的相同的函数说明、常数定义和结构定义。1.6举例
本标准中给出一些用VerilogHDL和C编程语言描述的举例。这些举例用于说明在简单的环境下VerilogHDL结构和PLI函数的使用方法,并没有给出全部的语法定义。1.7先决条件
第17章至第23章和附录C至附录E以具有C编程语言的应用知识为先决条件。词法约定
本章描述VerilogHDL源文本中使用的词法标记和它们的约定。2.1词法标记(Lexicaltokens)
number ::-
decimal_number
octal_number
binary_number
hex_number
I real_number
decimal _ number ::--
[sign] unsign_number
I[size]decimal_baseunsigned_numberbinary _ number :: --
[size] binary_basebinary_digit f-Ibinary_digit}octal_ number ::-
[size]octalbaseoctaldigit(octaldigithex_ number ..--
[size] hex_base hex_digit (_| hex_digit}real_ number :: --
[size]unsigned_number.unsigned_numberI [size] unsigned _ number [.unsigned_number]e[sign] unsigned_numberI[size] unsigned_number [.unsigned_number]E[sign] unsigned_numbersign ::=
size ::=
unsigned_number
unsignednumber ::-
decimal_digit (_ I decimal_digit )decimal_ base ::-
binary_base :.-
octal_base:: -
hex_base : -
decimaldigit ::-
011121341516171819
binary _ digit :: -
x|xIz|zo[1
octal _digit ::-
X/X|z|z10|112|3|4|5|617
hex_ digit .. -
x/X|z|z|0|1/2|3|4/5/6|7|8|9|a|b|c/d|e|f|A|B|c|D|EF语法2-1
整数和实数的语法
GB/T18349—2001
Verilog源文本文件应当是一个词法标记流。一个词法标记应当包括一个或多个字符。源文件中的标记格式应当是自由格式一一即除了转义标识符以外,空格和换行除了作为分隔符外,在语句构成上不应当具有特殊意义(见2.7.1)。Verilog语言中词法标记有以下类型:一空白,
一注释;
一操作符;
一数字;
一字符串;
标识符;
一关键词。
2.2空白(Whitespace)
空白包括空格符、制表符、换行符、走纸符。这些字符除了用于分隔其它词法标记外没有另外意义。但是,间隔符和制表符在字符串中应看作是具有特殊意义的字符(见2.6)。2.3注释(Comments)
VerilogHDL具有两种注释形式。单行注释以符号//开始,以换行符结束。块注释以/*开始,以*结束。块注释不应当嵌套。单行注释标记//在块注释中没有特殊含义。2.4操作符(Operators)
在表达式中使用的操作符有一元字符、二元字符和三元字符。第4章讨论表达式中操作符的使用。一元操作符应出现在操作数的左边。二元操作符出现在操作数之间。条件操作符具有两个操作符,用于将三个操作数分开。
2.5数字(Numbers)
常数可表示为整常数和实常数。见语法2-1。2.5.1整常数(Integer constants)整常数可以用十进制、十六进制、八进制或二进制几种格式表示。表示整常数的格式有两种。第一种格式是简单的十进制数,可表示为数字0到9的一个序列,可以用一元加或一元减操作符起始。第二种格式表示长度固定的常数,由三种标记组成一一一个可选择的长度常数、一个后面跟随基数格式字符的单引号以及表示数值的多个数字。第一个标记是一个长度固定的常数,它应当根据精确的位数表示常数的长度。它应当表示为一个无符号的十进制数。例如,两个十六进制数的长度指定是8,因为一个十六进制数要求4位。第二个标记是一个基数格式,它应当由表示数字基数的一个字母组成,前面加上一个单引号符()。合法的基数指定为d,D,h,H,o,O,b,B,分别作为十进制、十六进制、八进制和二进制的基数。在定义一个数字的值时,x和z的使用不区分大小写。单引号和基数格式符号之间不应当有空格。第三个标记是一个无符号的数字,它应当由合法基数格式的数字组成。无符号数字标记应直接跟在基数格式后面,前面可以有空格。十六进制数a到f应当不区分大小写。不带有长度和基数格式的简单十进制数应视为带符号的整数,而由基数格式表示的数字应视为无符号整数。
在长度固定的常数前面的加号或减号是常数的符号;长度固定的常数不带符号。在基数格式和数字之间的加号或减号是非法的语法。负数应当以2的补码的形式表示。a表示十六进制、八进制和二进制数中的未知数。z表示高阻值。见3.1中对VerilogHDL数值集合的讨论。在十六进制中应设置为4位未知数,在八进制中应设置为3位,在二进制中应设置为1位。同样,z应分别设置为4位、3位和1位的高阻值。5
GB/T18349—2001
如果无符号数的长度比要表示的常数的长度小,则无符号数的左边应用0填充。如果无符号数最左边的位是或者,则应当分别用或者填充到左边。在VerilogHDL中,数字表示中使用的问号(?)可以替代表示字符z。它在十六进制中设置为4位高阻值,在八进制中设置为3位,在二进制中设置为1位。在高阻值是无关项的情况下,可以使用问号增强可读性。见9.5.1中对case%和casex进行讨论。也可以在用户定义基元的状态表中使用问号。见8.1.4。
下划线()除了作为第一个字符外,在一个数字的任何地方使用都是合法的。下划线字符可以忽略。可以用这个特性将很长的数字分隔开以便易于阅读。举例:
长度不固定的常数
\h837FF
lo7460
长度固定的常数
4'b1001
3'b01x
使用符号的常数
自动左填充
/是一个十进制数
//是一个十六进制数
是一个八进制数
非法(十六进制格式要求‘h)
是一个4位二进制数
/是一个5位十进制数
//是一个最低位为未知数的3位数//是一个12位的未知数
是一个16位的高阻数
这是一个非法的语法
//这定义出6的补码,
//是8位数,与一(8'db)等效
reg[1l.o]a,b,c,d;
initial begin
a=lh x,
b='h3x,
c='h z3;
d =h Oz3;
在数字中使用下划线
27_195_000
16b0011010100011111
32'h12ab_f001
//生成 xxx
//生成03x
生成zz3
生成Oz3
1当对一个寄存器数据类型进行赋值时,一个固定长度的负数是符号不扩展的数。2表示数字的三个标记都可用宏替换。3构成长度不固定数字的位数(可以是一个简单的十进制数或者是一个没有长度规范的数)应当至少为32。2.5.2实常数(Realconstants)
实常数应表示为由IEEE标准一
EEEStd754一1985B1描述的双精度浮点数。实数可以用十进制计数法(例如,14.72)或者用科学计数法(例如,398表示39乘以10的8次幂)表示。带小数点的实数在小数点的每一边至少有一个数字。举例:
2394.26331
GB/T18349—2001
1.2E12(指数符号可以是e或E)1.30e—2
29E—2免费标准bzxz.net
23.6123763e—12(下划线可以忽略)下面的实数形式无效,因为在小数点的每一边至少应当有一个数字,而它们没有:.12
.2e—7
2.5.3转换(Conversion)
实数可以通过四舍五入转换成相近的整数,而不是将小数截断。当把实数赋值给整数时,应进行隐式转换。
举例:
当转换为整数时实数35.7和35.5都变成36,而35.2变成35。一1.5转换成整数时成为一2,而1.5转换成整数时成为2。2.6字符串(Strings)
一个字符串是一个由双引号(“”)括起来并包含在单独一行的字符序列。在表达式和赋值语句中用作操作数的字符串应视为无符号整常数,由一个8位ASCII值的序列表示,而一个8位ASCII值表示一个字符。
2.6.1字符串变量说明(Stringvariabledeclaration)字符串变量是寄存器类型(见3.2)的变量,宽度等于字符串中的字符数乘以8。举例:
为了存储12个字符的字符串“Helloworld!”,要求一个8×12或者96位宽的寄存器。reg[812:1]stringvar;
initial begin
stringvar -“Hello world!\,end
2.6.2字符串的操作(Stringmanipulation)字符串可以使用VerilogHDL操作符进行操作。操作符操作的值是8位ASCII值的序列。举例:
module string_test;
reg[8#14.1] stringvar,
initialbegin
stringvar =“Hello world}\;Sdisplay (\%s is stored as %h\, stringvar, stringvar);stringvar =( stringvar,\I!!\);$display(\%s is stored as %h\, stringvar,stringvar);end
endmodule
输出是:
GB/T18349
Helloworldisstoredas00000048656c6c6f20776f726c64Helloworld!!!isstoredas48656c6c6f20776f726c64212121注:当一个变量比要求保存的赋值还长时,那么赋值后左边要用0填充。这与非字符串赋值时的填充方法相同。如果一个字符串比目标字符串变量更长,那么字符串截断左边位,并丢失最左边字符。2.6.3字符串中的特殊字符(Specialcharacterinstrings)些字符只能使用在字符串中,前面介绍的这样的字符称为转义字符。表2-1右栏列出这些字符,表示字符的转义序列在左栏。
表2-1字符串中特殊字符的说明
转义字符串
由转义字符串产生的字符
换行字符
制表符
”字符
用1~3个八进制数字(0标识符的第一个字符不能是数字或$,可以是字母或下划线。标识符应当区分大小写。举例:
shiftreg_a
busa_index
error_condition
merge_ab
注:工具可以对标识符的最大长度进行限制,但至少应当为1024个字符。如果标识符超过工具规定的长度极限,应当报错。
2.7.1转义标识符(Escapedidentifiers)转义标识符应当以反斜线符号()开始,以空白(空格、制表符、换行符)结束。这些转义标识符为打印标识符(十进制数33到126,或者十六进制数21到7E)中任何可打印的ASCII字符提供了一种方法。前面的反斜线和后面的空白不是标识符的一部分。因此,转义标识符cpu3与非转义标识符cpu3是相同的。
举例:
Tbusa+index
I-clock
\\***error-condition***
Inet1/net2
la*(b+c)
关键词(Keywords)
GB/T183492001
关键词是预定义的非转义标识符,用于定义语言的结构。VerilogHDL关键词前面如果加上转义字符就不是关键词。
2.7.3系统任务和函数(Systemtasksandfunctions)$字符引进一种可以使用用户定义的任务和函数的语言结构。跟在$后面的名称是系统任务或系统函数。
语法2-2给出系统任务或函数的语法。systentaskorrumctron
Ssystem_task_identifier[(list_of_arguments)];ISgsem_function_identifier[(list_of_arguments)];list_of_arguments::
argument(,[argument])
argument::-
语法2-2系统任务和函数的语法
$标识符系统任务和函数可以在三种情况下定义$标识符系统函数和任务的标准集,如第14章所定义。附加的$标识符系统函数和任务,可以使用PLI定义,如第17、23、25章中所描述。一附加的$标识符系统函数和任务,由软件工具定义。除了这个结构外,任何有效的标识符,包括已经在上下文中使用的关键词,都可以用作系统任务或函数的名称。第14章中描述的函数和任务是本标准的一部分。带有$标识符结构的附加的系统任务和函数不是本标准的一部分。
举例:
y(\displayamessage\);
$display
$finish;
2.7.4编译指令(Compilerdirectives)符号(ASCII值为60,称作打开符号(openquote)或重音符号(accentgrave))引入一个用于实现编译指令的语言结构。编译器一读到指令,由编译指令规定的编译行为立即生效。在编译过程中,指令一直保持有效,除非出现其它不同的编译指令。所以,一个描述文件中的编译指令可以控制多个描述文件中的编译行为。
标识符编译指令结构可以在两种情况下定义:一标识符编译指令的一个标准集,在第16章中定义。一附加的标识符编译指令,由软件工具定义。任何有效的标识符,除了这个结构外,包括已经在上下文中使用的关键词,都可以用作编译指令名称。在第16章中描述的编译指令是本标准的一部分。带有标识符结构的附加的编译指令不是本标准的一部分。
举例:
definewordsize8
3数据类型
VerilogHDL数据类型集的设计,是为了表示数字硬件中的数据存储和传输元件。3.1值集合
VerilogHDL值集合由四种基本的值组成:0一表示逻辑0或条件为假;
1一表示逻辑1或条件为真;
x一表示未知逻辑值;
z一表示高阻状态。
值0和1互为逻辑补码。
GB/T18349—2001
当z值出现在一个门的输入端或出现在一个表达式中时,其效果通常与x值的效果相同。金属氧化半导体(MOS)基元例外,它可以传递z值。VerilogHDL中几乎所有的数据类型均存储全部四种基本的值,只有事件(event)类型(见9.7.3)例外,它没有存储。向量的每一位均可独立地设置成四种基本值中的一种。除了线网变量的基本值信息外,本语言还包括强度信息。详细描述见本标准的第7章。3.2线网和寄存器
有两组主要的数据类型:寄存器(register)数据类型和线网(net)数据类型。这两组数据类型在赋值和保持值的方法上是不同的,它们表示不同的硬件结构。3.2.1线网
线网数据类型表示结构实体之间的物理连接,如门与门之间的连接。线网不存储值(triteg线网除外,它的值由其驱动器的值决定,例如一个持续赋值语句或者一个门。对这些结构的定义见第6章和第7章。如果没有驱动器连接到线网上,线网的值是高阻(z),除非线网是一个ttiteg,在这种情况下,它保持以前的驱动值。
语法3-1给出线网说明的语法。
本章描述线网说明的前两种形式。第三种形式称为线网赋值,在第6章描述。3.2.2寄存器
寄存器是数据存储元件的一种抽象。寄存器数据类型的关键词是reg。寄存器存储从一个赋值语句到下一个赋值语句之间的值。在程序中,一个赋值语句相当于一个触发器,可以改变数据存储元件中的值。reg数据类型的缺省的初始化值是未知值x。net_declaration .:
net_type [vectored scalaredrangeEdelay3] list_of_net_identifiers;I trireg[vectored I scalared[charge_ strength[rangedelay3]listof_net_identifiers;
I net _ type [vectored I scalaredJ[drive_ strengthJ[range[delay3]list_of_net_decl_assignments;net_type::=wire|tri | tril I supplyo | wand |triand Itrio |supplyl | wor |triorrange::=[msb_constant_expression;lsb_constant_expression]drive _strength :: -
(strength0, strength1)
(strengthl,strengtho)
(strength0,highz1)
(strengthl,highz0)
(highzl,strength0)
I (highz0, strength1)
strengtho ::= supplyo | strongo I pullo I weak0strengthl ::= supplyl / strongl I pulll I weaklcharge_strength::=(small)(medium)【(large)delay3 ::- #delay_ value I # (delay_ value[,delay_ value[,delay_ value])delay_value ::=unsigned_number I parameter_identifier|constant_mintypmax_expressionlist_of_net_decl_assignments::=net_decl_assignment(,net_decl_assignment)net decl assigment = net identifier=exptession线网说明的语法
语法3-1
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。