第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种基本值组 成的。
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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




