- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.3对象、类型和属性.ppt
7.3 对象、 类型和属性 ; 2) 变量
用于对暂时数据的局部存储, 变量只能在进程语句和子程序中使用。 其说明格式为
VARIABLE 变量名 {, 变量名}: 变量类型 [ :=初始值]; 例如: VARIABLE a, b : std-logic;
3) 常量
常量是一个在仿真/综合过程中固定不变的值, 但可通过其标识符来引用。 这与C语言中的符号常量的意义完全相同。 使用常量的主要目的是增加设计文件的可读性和可维护性。 其说明语句的格式为
CONSTANT 常量名 {, 常量名}: 类型名 [ :=取值]; ; 例如: CONSTANT PI: REAL := 3.14159;
信号和常量的作用域由其说明语句所在的位置决定。 在实体和程序包中说明的信号和常量可作用于该实体及其结构体内部, 在结构体中说明的信号和常量则仅作用于该结构体内部。 变量仅在说明语句所在的进程或子程序内部起作用, 是一个局???量。 值得注意的是, 应严格区别信号和变量的定义和使用。 ; 尽管它们都是用来存储数据, 但二者存在许多重要差别:
① 说明的形式与位置不同, 作用范围也不同。 信号可用于进程间的通信, 变量则
不行。
② 变量的赋值是立即生效的; 对信号的赋值则是按仿真节拍来进行的, 还可以用
AFTER语句来附加延时。
③ 信号的赋值采用“=” 赋值符, 而变量的赋值是用“ :=”符号。
; 7.3.2 数据类型
VHDL有非常严格的数据类型的规定。 每个信号、 常量、 变量或表达式都必须有唯一的数据类型, 以确定它能保持那一类数据。 一般地说, 为对象或表达式分配数据时, 不同类型的数据不能混用; 每个对象和表达式的类型在仿真之前便确定下来, 不再改变。
; 1. 标准数据类型
VHDL共提供了 10 种标准的数据类型, 不需说明库和程序包便可直接引用。 下面分别给出其保留字并稍加解释:
① Integer(整数)。 取值范围为-(231- 1)~(231 - 1), 主要用于表示总线(如多位计数器的输出)的状态, 不能直接按位来操作, 也不能进行逻辑运算。
② Real(实数)。 取值范围为-1.0E+38~+1.0E+38, 主要用于硬件方案的研究或实验。
; ③ Bit(位)。 只有两种取值, 即 0 和 1, 可用于描述信号的取值。
④ Bit-Vector(位矢量)。 是用双引号括起来的一组位数据, 每位只有两种取值: 0和1。 在其前面可以加上数制标记, 如X(十六进制)、 B(二进制, 默认)、 O(八进制)等。 常用于表示总线的状态。
⑤ Boolean(布尔量)。 又称逻辑量。 有“真”、 “假”两种状态, 分别用TRUE和FALSE标记。 用于关系运算和逻辑判断。
; ⑥ Character(字符)。 是用单引号括起来的一个字母、 数字或$、 @、 %等字符。 区分大小写字母。
⑦ String(字符串)。 是用双引号括起来的由字母、 数字或$、 @、 %等字符组成的“串”。 区分大小写字母。 常用于程序的提示和说明等。
⑧ Time(时间)。 由整数值、 一个以上的空格以及时间单位等组成。 常用单位有fs(飞秒)、 ns(纳秒)、 μs(微秒)、 ms(毫秒)、 s(秒)、 min(分)等。 常用于指定器件延时和标记仿真时刻。
; ⑨ Severity Level(错误等级)。 分NOTE(注意)、 WARNING(警告)、 ERROR(出错)、 FAILURE(失败)四级, 用于提示系统的错误等级。
10 Natural(自然数)。 是整数类型的子类型, 其取值范围为 0~(231 - 1)。
除了这些标准数据类型之外, 还有两种IEEE定义的数据类型也很常用。 它们是与BIT类型对应的STD-LOGIC类型和与Bit-Vector类型对应的STD-LOGIC- VECTOR类型。 这两种类型均可以有九种取值, ?
; 特别是增加了不定态X和
文档评论(0)