教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

第4讲 Verilog数据类型与表达式

来源:网络收集 时间:2026-08-30
导读: 第4讲 数据类型与表达式 主要内容 Verilog HDL提供了丰富的数据类型,本讲把 Verilog HDL的数据分为常量和变量两类,并 分别介绍其特点和使用方法。 表达式是操作符、操作数和标点符号序列,其 目的是用来说明一个计算过程。 程序中的大部分语句是由表达式构

第4讲 数据类型与表达式

主要内容

Verilog HDL提供了丰富的数据类型,本讲把 Verilog HDL的数据分为常量和变量两类,并 分别介绍其特点和使用方法。 表达式是操作符、操作数和标点符号序列,其 目的是用来说明一个计算过程。 程序中的大部分语句是由表达式构成的。本讲 将给出操作符和操作数的种类及正确用法。

一、数据类型(一) 常量 在程序运行过程中,其值不能被改变的量称 为常量。Verilog HDL有整型、实数型、字 符串型3种常量。 在整型或实数型常量的任意位置可以随意插 入下划线“_”(但是不能当作首符号),这 些下划线对数本身并没有意义,但是当数字 很长时使用下划线可以提高可读性。

Verilog HDL有4种基本的逻辑状态: 0 表示逻辑0或“假”; 1 表示逻辑1或“真”; x 表示未知; z 表示高阻。 注意:x值和z值都是不分大小写的,如: 值0x1z与值0X1Z相同。 Verilog HDL的常量是由以上这4种基本值组 成的。

1.整型常量(整数)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。

下面给出一些典型书写方法,有正确的也有错误的。 5'O37 //5位八进制数 4'D2 //4位十进制数 4'B1x_01 //4位二进制数 7'Hx //7位x(扩展的x), 即xxxxxxx 4'hZ //4位z(扩展的z) , 即zzzz 2'h1? //2位十六进制数,与2'h1z相同 8'h 2 A //在位数和字符之间,以及基数和数值 之间允许出现空格 4'd-4 //非法:数值不能为负 3' b001 //非法:'和基数b之间不允许出现空格 (2+3)'b10 //非法:位数不能够为表达式

如果没有定义常量的位数,那么这个数的长度就是 相应值的位数,例如: 'o721 //9位八进制数 'hAF //8位十六进制数 如果定义的长度大于数字序列的实际长度,通常在 数据序列的高位(左侧)补0。但是如果这个数字序 列最左边一位为x或z,就用x或z在左边补位,例如: 10'b10 //左边补0, 0000000010 10'bx0x1 //左边补x, xxxxxxx0x1 如果定义的长度小于数字序列的实际

长度,这个数 字序列最左边超出的位将被截断,例如: 3'b1001_0011 //与3'b011相等 5'H0FFF //与5'H1F相等

2.实数型常量(浮点数)实数的定义方式有两种: (1)十进制格式,由数字和小数点组成(必须 有小数点),例如: 2.0 5.678 11572.12 0.1 2. // 非法:小数点右侧必须有数字

2)指数格式,由数字和字符e(E)组成 例: 23_5.1e2 //其值为23510.0,忽略下划 线 3.6E2 //其值为360.0 ( e与E相同) 5E-4 //其值为0.0005 e的前面必须要有数字而且后面必须为整数

3.字符串型常量

字符串常量是由一对双引号括起来的字符序列。 例: "INTERNAL ERROR" “ R E A C H E D-> H E R E ” //空格出现在 //双引号内,所以是字符串的组成部分 "12345_6789_0" //下划线出现在 //双引号内,所以是字符串的组成部分

实际上,字符都会被转换成二进制数,而且 这种二进制数是按特定规则编码的。现在普 遍都采用ASCII码,这种代码把每个字符用 一个字节(8位)的二进制数表示。所以字符 串实际就是若干个8位ASCII码的序列。例如 字符串“INTERNAL ERROR”共有14个字 符,存储这个字符串的变量就需要8*14位的 存储空间,如下: reg [1:8*14] Message; //定义变 量Message并分配存储空 Message = "INTERNAL ERROR" //给 变量Message赋值为字符串常量

参数 在Verilog语言中,用参数parameter来定义符号常 量。参数常用来定义时延和变量的宽度。 其定义格式如下: parameter 参数名1=表达式1,参数名2=表达式2,参 数名3=表达式3, …… ; 例: parameter sel=8,code=8'ha3;

(二) 变量Verilog HDL有线网net和寄存器两种类型的变 量,每种类型都有其在电路中的实际意义。 1.线网型变量 Net型数据相当于硬件电路中的各种物理连接, 其特点是输出的值紧跟输入值的变化而变化。 对net型有两种驱动方式,一种方式是在结构描 述中将其连接到一个门元件或模块的输出端;另 一种方式是用持续赋值语句assign对其进行赋值。 wire是最常用的Net型变量。

wire型变量的定义格式如下: wire 数据名1,数据名2,……数据名n; 例如: wire a,b; //定义了两个wire型变量a和b

2.寄存器型变量寄存器表示一个抽象的数据存储单元,可以通过 赋值语句改变寄存器内存储的值。 寄存器只能在always和initial过程语句中赋值, 在未被赋值时,寄存器的缺省值为x。 Verilog HDL共有5种寄存器类型: Reg(最常用的寄存器型),integer,time, real,realtime Reg定义格式如下: reg 数据名1,数据名2,……数据名n; 例:reg a,b; //定义了两个reg型变量a,b

reg[7:0] q;

//定义q为8位宽的reg

型向量

…… 此处隐藏:950字,全部文档内容请下载后查看。喜欢就下载吧 ……
第4讲 Verilog数据类型与表达式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1934718.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)