Verilog程序设计与EDA(二版) 课件 第2章 Verilog HDL的基本要素.pptx
2.1标识符(identifier)
2.2格式与注释
2.3数据
2.4数据类型
2.5操作符
2.6系统函数和系统任务
2.7编译预处理指令;2.1标识符(identifier);标识符是模块、端口、连线、寄存器等元素的名字。
标识符可以是任意一组字母、数字、$符号和下划线,但数字不能打头。
每个系统函数和系统任务前面都用一个标识符$加以确认。
标识符的字符数不能多于1024个。转义标识符(以反斜杠开始,以空白结尾,空白可以是一个空格、一个制表字符或换行符)中可以包含任意的可打印字符。;2.2格?式?与?注?释;1.格式
VerilogHDL的格式包括自由格式和标识符。
自由格式即结构可以跨越多行编写,也可以在一行内编写。白空(新行、制表符和空格)没有特殊意义。
标识符区分大小写,也就是说大小写不同的标识符是不同的。
2.注释
在VerilogHDL中有两种形式的注释:第一种形式“/*…*/”,可以扩展至多行;第二种形式“//”,在本行结束。;2.3数据;VerilogHDL中有常量和变量之分。
2.3.1常量
在程序运行过程中(确切地说在硬件电路中)其值不能被改变的量称为常量。
VerilogHDL中有四类常量:
(1)整数型常量。
(2)实数型常量。
(3)字符串型常量。
(4)参数常量(或称符号常量)。
下划线符号“_”可以随意用在整数型常量或实数型常量中,它们就数量本身没有意义。它们能用来提高易读性:唯一的限制是下划线符号不能作为首字符。;1.整数型常量
整数型常量可以按两种格式书写:简单的十进制数格式和基数格式。
(1)简单的十进制格式。这种形式的整数定义为带有一个可选的“+”(一元或称单目)或“-”(一元或称单目)操作符的数字序列。例如:
23 十进制数23
-12 十进制数?-12
这种形式的整数值代表一个有符号的数。它们可使用补码形式表示:23用6位的二进制形式可表示为010111;-12用6位的二进制形式可表示为110100。
;(2)基数表示法。这种形式的整数格式为
[size]basevalue
其中:size定义以位计的常量的位长;base为进制:o或O(表示八进制),b或B(表示二进制),d或D(表示十进制),h或H(表示十六进制);value是基于base的值的数字序列。
值x和z以及十六???制中的a~f不区分大小写。注意,这里base前的“??”号在键盘上与双引号同键(在word环境下以TimesNewRoman体输入符号“”显示为单引号“’”,在Verilog的源文件×××.v中会自动变为“”)。;2.实数型常量
实数型常量可以用两种形式定义:十进制计数法和科学计数法。
(1)十进制计数法。
例如:
1.0
2.345
123.12
0.1
3. 非法,小数点两侧必须有1位数字
(2)科学计数法。
Verilog语言定义了实数型常量如何隐式地转换为整数型常量。实数型常量通过四舍五入被转换为最相近的整数型常量。;3.字符串型常量
字符串型常量是双引号内的字符序列。字符串型常量不能分成多行书写。
用8位ASCII值表示的字符可看做是无符号整数型常量。因此字符串型常量是8位ASCII值的序列。为存储字符串“ZXCVBNM”,变量需要8?×?7位。
反斜线(\)用于对确定的特殊字符转义。
4.参数常量
参数常量用parameter来定义常量。参数常量经常用于定义时延和变量的宽度。使用参数常量说明的参数只被赋值一次。参数常量的说明形式如下:
parameterparam1=constexpr1,param2=constexpr2,…,
paramN=constexprN;
参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值。;2.3.2变量
变量是在程序运行过程中(确切地说在硬件电路中)其值可以被改变的量。
硬件电路中的输入、输出可看成是一种变量。
变量有确定的类型。
2.3.3VerilogHDL四种基本的值
VerilogHDL有以下四种基本的值:
(1)?0:逻辑0或“假”。
(2)?1:逻辑1或“真”。
(3)?x:未知。
(4)?z:高阻。
这四种值都表明于语言中。如一个为z的值总是意味着高阻抗,一个为0的值通常是指逻辑0。x值和z值都不分大小写。;2.4数据类型;VerilogHDL有两种数据类型:net线网数据类型和variable变量数据类型。寄存器类型属于variable变量数据类型。
(1)线网类型(nettype)。线网类型的数据表示Verilog描述的硬件结构