- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[信息与通信]第7讲数据类型运算符表达式
第四章 现场可编程逻辑器件的应用设计技术 4.1 Verilog HDL硬件描述语言 1. 数据类型 Verilog HDL有下列四种基本的值: 1) 0:逻辑0或“假” 2) 1:逻辑1或“真” 3) x:未知 4) z:高阻 1. 数据类型 Verilog HDL中有三类常量: 1) 整型 2) 实数型 3) 字符串型 1. 数据类型 在Verilog HDL中,整数型常量(即整常数)有以下4种进制表示形式: ? 二进制整数(b或B); ? 十进制整数(d或D); ? 十六进制整数(h或H); ? 八进制整数(o或O)。 1. 数据类型 完整的整数型常量的数字表达式为: <位宽> <进制><数字> 位宽为对应二进制数的宽度,如: 1. 数据类型 这种形式的数通常为无符号数。这种形式的整型数的长度定义是可选的。如果没有定义一个整数型的长度,数的长度为相应值中定义的位数。下面是两个例子: 1. 数据类型 同时也支持有符号数,在表示一个负数时,在位宽前面添加“-”即可。例如: 1. 数据类型 关于x和z值 x表示不定值,z表示高阻值。每个字符代表的宽度取决于所用的进制,例如: 1. 数据类型 在较长的数之间可用下划线分开,如: 16b 1010_1101_0010_1001。 当常量不说明位数时,默认值与仿真器和计算机有关,最小为32位。此外,“?”是高阻态z的另一种表示符号。 如果定义的长度比为常量指定的长度长,通常在左边填0补位。但是如果数最左边一位为x或z,就相应地用x或z在左边补位。例如: 10‘b10 左边添0占位, 0000000010 10‘bx0x1 左边添x占位, xxxxxxx0x1 1. 数据类型 2. 实数 :实数可以用下列两种形式定义: 1. 数据类型 Ve r i l o g语言定义了实数如何隐式地转换为整数。实数通过四舍五入被转换为最相近的整数。 4 2 . 4 4 6, 42.45 转换为整数4 2 92.5, 92.699 转换为整数9 3 -15.62 转换为整数-1 6 -26.22 转换为整数-2 6 1. 数据类型 3. 字符串 字符串是双引号内的字符序列。字符串不能分成多行书写。例如: INTERNAL ERROR R E A C H E D- H E R E “ 用8位A S C I I值表示的字符可看作是无符号整数。因此字符串是8位A S C I I值的序列。为存储字符串“INTERNAL ERROR”,变量需要8 * 1 4位。 1. 数据类型 反斜线(\ ) 用于对确定的特殊字符转义。 \n 换行符 \t 制表符 \\ 字符\本身 \“ 字符 \206 八进制数2 0 6对应的字符 1. 数据类型 Verilog HDL中共有19种数据类型的变量。数据类型是用来表示数字电路中的数据存储和传送单元的。最常用的4个最基本数据类型,它们是: integer型 parameter型 reg型 wire型。 1. 数据类型 1.线网型(nets) 线网型的变量可以理解为实际电路中的导线,通常用于表示结构实体之间的连接。 线网型的变量一般用wire进行定义,如: 1. 数据类型 线网型变量需要门或模块持续的驱动。 1. 数据类型 在端口声明为input或者inout型的端口,只能被定义为线网型变量; 被声明为output的端口可以被定义为线网型变量或者寄存器型变量; 如果不加定义则默认为线网型变量; 如下例所示: 1. 数据类型 module wire_def(a,b,out); input a,b; //端口声明 output out; wire a,b; //端口声明为input只能被定义为线网型变量 assign out = ab; //不加定义则默认为线网型变量; endmodule 1. 数据类型 线网型除了用wire,还有线网型变量及说明如下: 1. 数据类型 2.寄存器型(register) 寄存器型的变量可以理解为实际电路中的寄存器,是一种存储元件,在输入信号消失后可以保存原有的数值不变。 寄存器型的变量一般用reg进行定义,如: 1. 数据类型 寄存器型变量与线网型变量的根本区别在于:寄存器型变量需要被明确地赋值,并且在被重新赋值前一直保持原值。 在设计中必须将寄存器型
文档评论(0)