新Verilog HDL数字系统设计——原理、实例及仿真 教学课件 康磊 第1 7章 第3章.pptVIP

新Verilog HDL数字系统设计——原理、实例及仿真 教学课件 康磊 第1 7章 第3章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
      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精品文档

相关文档