Verilog HDL数字系统设计——原理、实例及仿真 作者 康磊 第1-7章 第3章.pptVIP

  • 42
  • 0
  • 约6.81千字
  • 约 61页
  • 2015-12-12 发布于广东
  • 举报

Verilog HDL数字系统设计——原理、实例及仿真 作者 康磊 第1-7章 第3章.ppt

      3.1 数 据 类 型 3.1.1 常量   在程序运行过程中,其值不能被改变的量称为常量。Verilog HDL中有三类常量:整型、实数型和字符串型。 在整型或实数型常量的任何位置可以随意插入下划线符号“_”(但不能作为首字符),它们就数的本身来说没有意义,但当数很长时,使用下划线更易读。   1.整型常量   整型常量就是整型数,它可以按如下两种方式书写:   (1) 简单的十进制数格式,表示为有符号数,如20、-10。   (2) 基数格式,通常是无符号数,这种形式的格式为     位宽 进制 数字   2.实数型常量   在Verilog HDL中,实常数的定义可以用十进制表示也可以用科学浮点数表示。   (1) 十进制表示:由数字和小数点组成(必须有小数点)例如3.2、1158.29、25.8。   (2) 指数格式:由数字和字符e(E)组成,e(E)的前面必须有数字而且后面必须为整数。例如:   3.字符串型常量   字符串常量用于表示需要显示的信息,是由一对双引号括起来的字符序列。显示在双引号内的任何字符(包括空格和下划线)都作为字符串的一部分。字符串不能分成多行书写。例如: 3.1.2 变量   变量即在程序运行过程中其值可以改变的量,在Verilog HDL中变量的数据类型有很多种,其中最基本的是线网型(Net Type)和寄存器型(Register Type)两种,且每种类型都有其在电路中的实际意义。这两种数据类型中最常用的是wire型、reg型和integer型。   1.线网型变量   线网表示器件之间的物理连接,称为线网类型信号,其特点是输出的值紧跟输入值的变化而变化。对线网型变量有两种驱动方式,一种是在结构描述中将其连接到逻辑门或模块的输出端;另一种方式是用持续赋值语句assign对其进行赋值。该类变量不能存储数据。   Verilog HDL提供了多种线网型变量,见表3.1。在为不同工艺的基本元件建立库模型的时候,常常需要用不同的连接类型来与之对应,使其行为与实际器件一致。   线网型变量的语法格式为:    net_kind [msb:lsb] net1, net2, …, netN; 其中,net_kind是线网类型;[msb:lsb]定义线网宽度的最高位和最低位,此项可选,如果没有定义宽度,则默认线网宽度是1位;net1, net2, …, netN是线网变量的名称。可在同一个定义中声明多个变量,例如:   wire和tri是最常用的线网类型,它们具有相同的语法格式和功能。wire型变量通常用来表示单个门驱动或连续赋值语句驱动的网络型数据,tri型变量则用来表示多驱动器驱动的网络型数据。如果wire型或tri型变量没有定义逻辑强度(logic strength),在多个驱动源的情况下,逻辑值会发生冲突从而产生不确定值。如果多个驱动源驱动同一个连线(或三态线网),则这个线网的有效值可由表3.2来决定。   wire型数据常用来表示以assign关键字指定的组合逻辑信号。Verilog HDL程序模块中的输入输出信号类型缺省时自动定义为wire型。wire型变量可以用作任何方程式的输入,也可以用作assign语句或实例元件的输出。   wire型变量的语法格式如下:     wire [n-1:0] 数据名1, 数据名2, …, 数据名i; 或     wire [n:1] 数据名1, 数据名2, …, 数据名i; 其中,wire是wire型数据的确认符;[n-1:0]和[n:1]代表该数据的位宽,即该数据有几位;数据名是变量的名字。如果一次定义多个变量,则变量名之间用逗号隔开。声明语句的最后要用分号表示语句结束。例如:   2.寄存器型变量   寄存器是数据存储单元的抽象,通过赋值语句可以改变寄存器内存储的值,其作用与改变触发器存储的值相当。在设计中必须将寄存器变量放在过程语句(如initial、always)中,通过过程赋值语句赋值。在未被赋值时,寄存器的缺省值为x。   寄存器型信号或变量共有五种数据类型,见表3.3。   1) ?reg型变量   reg型是最常用的寄存器类型。reg类型数据的缺省初始值为不定值x。它只能存储无符号数。   reg型变量的语法格式如下:     reg [n-1:0] 数据名1,数据名2,…,数据名i; 或     reg [n:1] 数据名1,数据名2,…,数据名i; 其中,reg是reg型数据的确认标识符;[n-1:0]和[n:1]代表该数据的位宽,即该数据有几位(bit)。数据名是变量的名字,如果一次定义多个变量,变量名之间用逗号隔开。声明语句的最后要用分号表示语句结束。例如:   2) ?i

文档评论(0)

1亿VIP精品文档

相关文档