VHDL语言基础-数据对象

目录

数据对象 :

常量 :

使用格式:

用途:

Example:

变量 : 

使用格式:

用途:

Example:

信号 :

使用格式:

用途:

使用变量和信号的比较:

使用变量和信号的比较——六分频器

小结:


数据对象 :

在VHDL语言中,可以赋值的客体称为对象。包括常量 、变量和信号

常量:定义在设计中不变化的值

变量:定义在进程或子程序中的变化量

信号:对应硬件内部实实在在的连线


常量 :

指定义在设计描述中不变化的值,是一个全局量 。

使用格式:

用途:

在实体、结构体、程序包、函数、过程、进程中保持静态数据,以改善程序的可读性,使修改程序变得更容易。

Example:


变量 : 

变量是定义进程或子程序(包括函数和过程)中的变化量 。

使用格式:

用途:

用于计算或暂存中间数据,是一个局部量

Example:

注意:变量的赋值是立即生效的


信号 :

信号对应着硬件内部实实在在的连线

使用格式:

用途:

在元件间起着互联作用,或作为一种数据容器  ,以保留历史值和当前值

“:= ”表示对信号的赋初值,一般不产生延时 。

“<= ” 表示信号的代入赋值, 有延时 。


使用变量和信号的比较:

信号是实体间动态交换数据的手段,用信号对象把实体连接在一起形成模块;实体说明,结构体说明都能说明信号。变量用于进程语句和子程序中中间的数据存储

信号赋值有延迟;而变量赋值没有延迟。

信号除当前值外有许多信息 信号除当前值外有许多信息 (历史信息,波形值);而变量只有当前值。

进程对信号敏感,对变量不敏感。信号可以是多个进程的全局信号;而变量只在定义它的进程中可见 。

信号是硬件中连线的抽象描述,功能是保存变化的数据值和连接子元件,信号在原件的端口连接元件;变量在硬件中没有对应关系,而是用于硬件特性的高层次建模所需要的计算中 。

在描述中,信号的赋值不会立即生效,而是要等待一个delta延迟在描述中,信号的赋值不会立即生效,而是要等待一个delta延迟


使用变量和信号的比较——六分频器

此例为 6分频器,其中time为变量,由于变量赋值是马上生效的,因此从例子中可以看出time置零是在time 为 6时发生的

此例也为 6分频器 。其中time为信号。由于信号赋值是具有 一定的延时性因此从例子中比较time 和5的大小时 ,语句time<=time+1还未生效,time的值是上次进程结束时的结果


小结:

变量常定义在进程与子程序中,用于保存运算的中间临时数据,或作为循环语句中的循环变量,其赋值立即发生。(:=)

常量用于保存静态的数据(:=) 。

信号有明显的连线或容器的对应关系,具有输出波形对其赋值需要延迟时间(<=), 在进程间或子程序间具有信息传递功能

注意对象定义的所在位置及适用区域的对应关系

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vizio<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值