4。verilog数据类型和表达式.pptVIP

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

第4讲 数据类型与表达式;Verilog HDL提供了丰富的数据类型,本讲把Verilog HDL的数据分为常量和变量两类,并分别介绍其特点和使用方法。 表达式是操作符、操作数和标点符号序列,其目的是用来说明一个计算过程。 程序中的大部分语句是由表达式构成的。本讲将给出操作符和操作数的种类及正确用法。 ;(一) 常量 在程序运行过程中,其值不能被改变的量称为常量。Verilog HDL有整型、实数型、字符串型3种常量。 在整型或实数型常量的任意位置可以随意插入下划线“_”(但是不能当作首符号),这些下划线对数本身并没有意义,但是当数字很长时使用下划线可以提高可读性。 ;Verilog HDL有4种基本的逻辑状态: 0 表示逻辑0或“假”; 1 表示逻辑1或“真”; x 表示未知; z 表示高阻。 注意:x值和z值都是不分大小写的,如: 值0x1z与值0X1Z相同。 Verilog HDL的常量是由以上这4种基本值组成的。 ;Verilog HDL的整数有两种书写格式: 十进制数格式; 基数格式。 (1)十进制数格式是一个可以带正负号的数字序列,代表一个有符号数,如下例: 32 //十进制数32 -15 //十进制数-15 ;(2)基数格式的数通常是无符号数,形式如下: [size]base value size定义常量的位数(长度),这是可选项; base是基数,规定这个数据的进制,可以是o或O(表示八进制),b或B(表示二进制),d或D(表示十进制),h或H(表示十六进制)之一; value是一个数字序列,其形式应与base定义的形式相符。这个数字序列中出现的值x和z以及十六进制中的a~f不区分大小写,“?”字符可以代替值z。 ;下面给出一些典型书写方法,有正确的也有错误的。 5O37 //5位八进制数 4D2 //4位十进制数 4B1x_01 //4位二进制数 7Hx //7位x(扩展的x), 即xxxxxxx 4hZ //4位z(扩展的z) , 即zzzz 2h1? //2位十六进制数,与2h1z相同 8h 2 A //在位数和字符之间,以及基数和数值之间允许出现空格 ? 4d-4 //非法:数值不能为负 3 b001 //非法:和基数b之间不允许出现空格 (2+3)b10 //非法:位数不能够为表达式 ;如果没有定义常量的位数,那么这个数的长度就是相应值的位数,例如: o721 //9位八进制数 hAF //8位十六进制数 如果定义的长度大于数字序列的实际长度,通常在数据序列的高位(左侧)补0。但是如果这个数字序列最左边一位为x或z,就用x或z在左边补位,例如: 10b10 //左边补0, 0000000010 10bx0x1 //左边补x, xxxxxxx0x1 如果定义的长度小于数字序列的实际长度,这个数字序列最左边超出的位将被截断,例如: 3b1001_0011 //与3b011相等 5H0FFF //与5H1F相等 ;实数的定义方式有两种: (1)十进制格式,由数字和小数点组成(必须有小数点),例如: 2.0 5.678 11572.12 0.1 2. // 非法:小数点右侧必须有数字 ;;3.字符串型常量;;参数;Verilog HDL有线网net和寄存器两种类型的变量,每种类型都有其在电路中的实际意义。 1.线网型变量 Net型数据相当于硬件电路中的各种物理连接,其特点是输出的值紧跟输入值的变化而变化。 对net型有两种驱动方式,一种方式是在结构描述中将其连接到一个门元件或模块的输出端;另一种方式是用持续赋值语句assign对其进行赋值。 wire是最常用的Net型变量。 ; wire型变量的定义格式如下: wire 数据名1,数据名2,……数据名n; 例如: wire a,b; //定义了两个wire型变量a和b ;2.寄存器型变量;用reg声明存储器;; 注意:可以只用一条赋值语句就完成对一个寄存器的赋值,但是不能只用一条赋值语句就完成对整个存储器的赋值,应当对存储器中的每个寄存器单独赋值。;;对存储器赋值方法二: 使用$readmemb系统任务从指定的文本文件中读取数据并加载到存储器。 例: reg [1:4] RomB [1:7] ; $readmemb (ram.patt, RomB); RomB是存储器名,ram.patt是包含

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档