EDA VHDL第三章 VHDL数据类型和运算操作符

上传人:飞****9 文档编号:131871624 上传时间:2020-05-10 格式:PPT 页数:73 大小:266.51KB
返回 下载 相关 举报
EDA VHDL第三章 VHDL数据类型和运算操作符_第1页
第1页 / 共73页
EDA VHDL第三章 VHDL数据类型和运算操作符_第2页
第2页 / 共73页
EDA VHDL第三章 VHDL数据类型和运算操作符_第3页
第3页 / 共73页
EDA VHDL第三章 VHDL数据类型和运算操作符_第4页
第4页 / 共73页
EDA VHDL第三章 VHDL数据类型和运算操作符_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《EDA VHDL第三章 VHDL数据类型和运算操作符》由会员分享,可在线阅读,更多相关《EDA VHDL第三章 VHDL数据类型和运算操作符(73页珍藏版)》请在金锄头文库上搜索。

1、3 3VHDL数据类型及运算操作符 3 3 1数据对象3 3 2词法规则与标识符3 3 3数据类型3 3 4运算操作符 主要内容 VHDL四类语言要素 数据对象数据类型运算操作数运算操作符 对象 object 可赋予一个值的客体VHDL对象的3种基本数据类型 常量 CONSTANT 变量 VARIABLE 信号 SIGNAL 3 3 1数据对象 对象的物理含义 常量 数电中电源 地等常数变量 暂存某些值的载体信号 物理设计中的某一条硬件连线 包括输入 输出端口 变量 局部量 仅用于process语句 子程序 function procedure 信号 全局量 用于entity architec

2、ture package常量 全局量 可用于上面两种场合 对象的特点及使用场合 用在进程语句 子程序中 变量是一个局部量 其作用范围仅限在定义了变量的进程和子程序中 书写格式 VARIABLE变量名 数据类型约束条件 表达式 举例如下 VARIABLEresult std logic 0 VARIABLEx y integer VARIABLEa integerrange0to255 0 1 变量 variable 变量的初值可用于仿真 但综合时被忽略 2 常量 constant 常量说明 对某一常量名赋予的一个固定值 格式如下 CONSTANT常数名 数据类型 表达式 例 CONSTANTw

3、idth integer 8 CONSTANTdata bit vector 3downto0 1010 CONSTANTx new bit x 常量数据类型与表达式的数据类型一致 常量的可视性 作用范围 库 程序包 实体 结构体1 进程1 结构体2 进程2 常量是全局量 其作用范围取决于被定义的位置 电子硬件系统运行的基本特性 各部分电路工作的并行特性 信号传输过程中的延时特性 多驱动源的总线特性 时序电路中触发器的记忆特性等 3 信号 signal 信号是电子系统内部硬件连接和硬件特性表示 用来描述硬件系统的基本特性 电子电路内部硬件实体相互连接的抽象表示 通常在结构体 包集合和实体说明中

4、使用 一般书写格式为 SIGNAL信号名 数据类型约束类型 表达式 举例如下 SIGNALa b BIT 0 SIGNALcount bit vector 7downto0 SIGNALinit integer 1 SIGNALcount std logic 0 注 1 信号初始值仿真时有用 综合被忽略2 信号是全局量 可在结构体 实体 块中说明和使用信号 3 在进程和子程序中只能使用信号 不能说明信号 进程中信号与变量的使用 ENTITYexISport ENDex ARCHITECTUREarch exOFexISsignala b std logic beginprocess a b v

5、ariablec d std logic beginc a b d a b ENDprocess ENDarchex 信号与端口的区别 除没有方向说明外 信号与实体的端口 PORT 概念相似 端口是一种隐形的信号 ENTITYexamISPORT SIGNAL a b instd logic SIGNAL c outstd logic ENDexam 端口是一种有方向的信号 即输出端口不能读出数据 只能写入数据 输入端口不能写入数据 只能读出数据 信号本身无方向 可读可写 3 3 2词法规则与标识符 1 词法规则1 注释以 开头直到本行末尾 出现回车或换行符 的文字提高VHDL语言设计程序的可

6、读性 1 词法规则2 数字表达方式 十进制 二进制 八进制 十六进制等为基的数 十进制整数表示法78 567 78567 以基表示的数格式 基数符号 数值 指数部分2 111 1011 016 F 01 E 4 2 基表示法格式 基数 数字文字 E指数如 10 170 170 2 1111 1110 254 16 E E1 2 1110 0000 224 或 14 16 224 16 F 01 E 2 15 1 16 16 16 16 3841 00 关于VHDL中的数字 请找出以下数字中最大的一个 2 1111 1110 8 276 10 170 16 E E1 A 实数 REAL 必须带有

7、小数学 仅用于仿真器 综合器不支持有些数可用实数表示 也可用整数表示 例如 99 0是实数 99是整数 两数具有相同的值 但两者具有不同的类型 在有关文献中 实数类型也称为浮点类型 FLOATINGTYPE 但大多数EDA工具不支持浮点运算 物理量文字称为物理类型 PHYSICALTYPES 书写格式应包含整数和单位两部分 如16ns 时间类型一般用于仿真 不用逻辑综合 3 字符和字符串字符 用单引号括起来数值 字母 空格及一些特殊字符 VHDL语言对大小写英文字母不敏感 但区分字符中的大小写 1 2 是符号 A a B b 都认为是不同的字符 如 variablecharacter var

8、character character var A 字符串 STRING 字符串 是字符类型的一个非限定数组由双引号括起来的字符序列 variblestring var string 1to7 string var Rosebud 文字字符串 文字 如 ERROR ZZZZ XXXX X BOTHSANDQEAN 数位字符串 称为位矢量 代表二进制 八进制 十六进制的数组 其位矢量的长度为等值的二进制位数 格式 基数符号 数值 其中基数符号有三种 B 二进制基数符号 O 八进制基数符号 每一个八进制数代表一个3位的二进制数 X 十六进制基数符号 每一个十六进制数代表一个4位的二进制数 如 B

9、1011 1111 O 152 4 下标名及下标段名 下标名 用于指示数组型变量或信号的某一元素 格式 标识符 表达式 下标段名 用于指示数组型变量或信号的某一段元素格式 标识符 表达式to downto表达式 如 a std logic vector 7downto0 a 7 a 6 a 0 a 7downto0 a 7downto4 a 5downto3 2 标识符 定义常数 变量 信号 端口 子程序或参数的名字 VHDL 87版 短标识符VHDL 93版 短标识符和扩展标识符 VHDL语言有两个标准版 VHDL短标识符 基本标识符 遵守以下规则 1 必须以英文字母打头 2 字符可以大小写

10、的字母 数字和下划线 3 下划线前后都必须有英文字母或数字 4 英文字母不区分大小写 5 不能连续使用下划线 最后一个符号也不能用下划线 6 不允许包含图形符号 空格符 短标识符 注意 EDA工具综合 仿真时 不区分大小写 对VHDL的保留字 关键字 不能做标识符 ENTITY ARCHITECTURE END BUS USE WHEN WAIT IS 在程序书写时 一般要求大写或黑体 使得程序易于阅读 易于检查错误 以下标识符哪些是合法的 multi 78screens Multi Multi Screens MULTI SCRE ENSillegal name illegalname9il

11、legalentitydata BUSNot Ack 上一次课的内容程序包 库和配置VHDL四类语言要素 数据对象 词法规则与标识符本次课程内容 数据类型 运算操作符 扩展标识符是VHDL 93版增加的标识符书写规则 1 用反斜杠来定界 免去了87标准基本标识符的一些限制 2 可以数字打头 允许包含图形符号 空格符 例如 modeA 100 p name 等 3 反斜杠之间的字符可以用关健字 如 buffer entity end 等 4 标识符的界定符两个斜杠之间可用数字打头 如 100 2chip 4screens 等 5 允许多个下划线相连 例 TWO Computer sh 等 6 扩

12、展标识符区分大小写 例如 EDA 与 eda 不同 7 扩展标识符与短标识符不同 如 COMPUTER 与Computer不同 扩展标识符 3 3 3VHDL语言数据类型 VHDL语言程序是强数据类型 要求每一个常量 变量 信号 函数以及各种参数学要有明确的数据类型 并且不同的数据类型不能直接代入 相同的类型 位长不同也不能代入 EDA工具在编译会报告类型错 10种标准的预定义数据类型 用户自定义数据类型 按照定义的方式 数据类型根据使用目的分为 用于EDA工具对电子系统进行综合的数据类型 如标量类型 SCALARTYPE 复合类型 COMPOSITETYPE 用于EDA工具对电子系统进行仿真

13、的数据类型 如存取类型 ACCESSTYPE 预定义数据类型在VHDL标准程序包STANDARD中定义的 已经包含进VHDL的源文件中 因而不必通过USE语句也可以显式使用 VHDL语言标准所定义的标准数据类型 1 整数类型 INTEGERTYPE 2 实数类型或浮点类型 REALTYPE FLOATINGTYPE 3 位类型 BITTYPE 4 位矢量类型 BIT VECTORTYPE 5 布尔类型 BOOLEANTYPE 6 字符类型 CHARACTERTYPE 7 时间类型或物理类型 Timetype physicaltype 8 错误类型 NOTE WARNIING ERROR FAI

14、LURETYPE 9 自然数 整数类型 NATURALTYPE 10 字符串类型 TRINGTYPE 用户在做电子系统设计时 自行定义的数据类型 1 枚举类型 ENUMERATEDTYPE 2 数组类型 ARRAYTYPE 3 文件类型 FILESTYPE 4 记录类型 RECODETYPE 5 时间类型 TIMETYPE 标准数据类型 1 整数 INTEGER 包括正整数与负整数和零 硬件电路实现时 利用32位的位矢量来表示整数范围 231 1 到 231 1 VHDL综合器要求对具体的整数做出范围约束 否则无法综合成硬件电路 如 signals INTEGERRANGE0TO15 信号s的

15、取值范围是0 15 可用4位二进制数表示 因此s将被综合成由四条信号线构成的信号 2 实数 REAL 范围 1 0E 38到 1 0E 38 仅用于仿真器 综合器不支持有些数可用实数表示 也可用整数表示 例如 99 0是实数 99是整数 两数具有相同的值 但两者具有不同的类型 在有关文献中 实数类型也称为浮点类型 FLOATINGTYPE 但大多数EDA工具不支持浮点运算 3 位 BIT 位通常用来表示一位的信号值 位的值通常用单引号来括住 如 TYPEBITIS 0 1 位的值 0 1 表示信号的状态 布尔量的值 0 1 表示 假 真 用双引号括起来的一组位数据注意 注明位宽 元素个数和排列

16、 如SIGNALa BIT VECTOR 7TO0 B 0000 1111 X FBC B 1111 1011 1100 O 371 B 011 111 001 4 位矢量 bit vector 5 布尔量 BOOLEAN 有两种状态 false或true 只能进行关系运算 如 相等 比较 等作比较 如 BIT值转化成BOOLEAN类型BOOLEAN var bit var 1 6 字符 CHARACTER 用单引号括起来数值 字母 空格及一些特殊字符 VHDL语言对大小写英文字母不敏感 但区分字符中的大小写 1 2 是符号 A a B b 都认为是不同的字符 如 variablecharacter var character character var A 7 字符串 STRING 字符串 是字符类型的一个非限定数组由双引号括起来的字符序列 variblestring var string 1to7 string var Rosebud 8 时间 TIME 称为物理类型 PHYSICALTYPES 时间类型值的范围是整数所定义的范围 从 231 1 到 231 1 书写格式应包含整数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号