FPGA之道(23)VHDL的signal、variable与constant

举报
李锐博恩 发表于 2021/07/15 01:57:12 2021/07/15
【摘要】 文章目录 VHDL的signal、variable与constantSignalVariableConstant命名规则 VHDL的signal、variable与constant 无论是软件还是硬件程序设计,赋值操作都贯穿代码始终,任何功能、计算、调用最终都要转化为赋值,如果要做统计的话,赋值操作符出现的次数几乎是与代码行数相同的,由此可见赋...

VHDL的signal、variable与constant

无论是软件还是硬件程序设计,赋值操作都贯穿代码始终,任何功能、计算、调用最终都要转化为赋值,如果要做统计的话,赋值操作符出现的次数几乎是与代码行数相同的,由此可见赋值的重要性。而VHDL语言中可以被赋值的对象有3种:signal、variable和constant。分别介绍如下:

Signal

Signal即是“信号”的意思,它具有特定的物理意义,一般对应电路中特定的物理连线或存储单元。Signal是VHDL语法中最重要、最常用的一种可赋值对象。当程序中需要用到signal时,我们一般需要在VHDL基本程序框架中的architecture语法的声明与定义部分先声明一个signal,然后才能在architecture的语句部分使用它。 Signal的声明语法如下:
signal <signal_name> : := ; – 有初值

signal <signal_name> : ; – 无初值
如果有多个同样类型的信号需要声明,也可以用这样的语法:
signal <signal_name_list> : ; – 多个信号名之间用逗号隔开
除此以外,entity语法中的port语法结构中的in、out、buffer或者inout类型的端口,虽然没有用关键字“signal”来声明,但它们其实都是signal类型的,并且同类型的端口也支持逗号分隔单行书写的方法。还有library里的package语法中,也可以声明signal。

Variable

Variable即是“变量”的意思,它不具有特定的物理意义,对应关系也不太直接,通常只代表暂存某些值的载体。** 在之前介绍的VHDL基本程序框架中,可以看到variable出现在process语句中,作为process的局部变量来使用。** 当程序中要用到variable时,只需要在process语法的敏感量列表与begin关键字之间先声明一个variable,然后就能在process的语句体中使用它。Variable的声明语法如下:
variable : := ; – 有初值

variable : ; – 无初值
如果有多个同样类型的变量需要声明,也可以用这样的语法:
variable : ; – 多个变量名之间用逗号隔开
除此以外,后续介绍的function与procedure语法结构中也可声明variable。

Constant

Constant即是“常量”的意思,它具有特定的物理意义,通常对应数字电路中的电源或者地。Constant能出现在所有signal和variable出现的场合中,它的声明语法如下:
constant : := ;
可以注意到,常量是不能单独赋值的,仅仅能在声明的同时被初始化赋值。

命名规则

VHDL语言中的信号、变量或者常量都必须有一个属于自己的名字,即标识符,然后才能在程序中进行引用。而VHDL语法中的命名规则如下:

  
 
  • 1

1、标识符中只能包含字符、数字和下划线,即”A-Z”,”a-z”,”0-9”,”_”;
2、标识符必须以字符开头,即开头符号只能是”A-Z”,”a-z”。

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/104271643

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。