VHDL数据对象——EDA学习笔记(二)

本文是关于VHDL学习的笔记,主要介绍了VHDL中的三种数据对象:常量、变量和信号。常量是不可变的全局值,变量则是局部的且赋值无时延,而信号则模拟硬件中的连线,赋值有延迟,具有全局影响。此外,还阐述了变量和信号在使用和特性上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VHDL中,有三种数据类型,常量(constant)、变量(variable)和信号(signal)。

1.常量(constant)

常量是在设计实体中不会发生变化的值,常量的定义和设置的主要目的是为了设计实体中常数容易阅读和修改。

常量具有全局意义,一但在程序中设定,程序中将不能进行修改。

2.变量(variable)

变量是指在设计实体中会发生的值。变量是一个局部量,只能在进程子程序的顺序语句中使用。变量不能将信息带出他所定义的当前结构体。

变量赋值不存在时延,是立即发生的。

变量的语法格式:

variable 变量名:数据类型[:=初始值];

eg:
variable a:std_logic;
variable b,c:integer:=2;

3.信号(signal)

信号是描述硬件系统的基本数据对象,类似于电子线路中的连线。信号具有全局性,信号使用和定义范围是实体结构体程序。在进程和子程序中不允许定义信号。

信号赋值不是立即发生的,而是需要经过一个特定的时延,这与实际器件的传播延时特性相吻合。

信号定义格式:

signal 信号名:数据类型[:=初始值]

eg:
signal s1:std_logic:='0';    --定义一个标准位的单值信号s1,初值为低电平
signal s2,s3:bit;    --定义了两个位(bit)的信号s2、s3

4.变量和信号的区别

①变量赋值没有时延,信号幅值有一个特定的时延。

②变量是局部量,信号是全局量。

③信号除了当前值外还有许多其他相关信息,而变量只有当前值。

④变量赋值表达式   “ : = ”     

目标变量名:=表达式

eg:
x:=100.0;
y:=1.5+x;

 信号赋值表达式        “ < = ”

目标信号名<=表达式

eg:
a<=y;
a<='1';

⑤进程对信号敏感对变量不敏感。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

单片机学习之路

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

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

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

打赏作者

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

抵扣说明:

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

余额充值