vhdl 变量与信号区别 type符号使用
2013-05-23 22:08
351 查看
1.VHDL描述的是硬件,而不是软件。在所有的设计开始之前在心目中都应当有一个硬件框图儿不是软件流程图,要用硬件的思想而非软件的思想使用VHDL。这一点是使用VHDL最基本的原则。
2.VHDL中的数据对象有信号,变量和常量。常量一般用来提高代码的可读性,易维护和修改性。关键是要弄清楚信号和变量的区别,首先信号我们可以把它理解成实际的硬件连线而变量不能,也就是说信号综合以后有实际的对应硬件而变量是没有的,其次信号是一个全局性的变量,而变量只能在进程,过程和函数中使用和定义,信号没有这样的限制,再次变量是用来存放进程,过程和函数中的中间量的,第四信号的赋值有延时,符号是“<=”,变量的赋值是立即见效的,也就是说信号是有历史信息的,而变量只有当前的信息。
3。VHDL的数据类型。VHDL不但具有标准的数据类型,还支持用户自定义的数据类型,这一点在复杂系统的设计中非常的有用。VHDL的标准数据类型有多种,包括BOOLEAN,BIT,BIT_VECTOR,CHARACTER, INTEGER,NATURAL,POSITIVE,REAL,TIME。有几点需要注意:a> 不同数据类型的数据对象是不能相互作用的,相互作用之前先要进行类型转换;b>使用INTEGER,NATURAL,POSITIVE类型最好加范围限制以提高综合效率,同时REAL型一般很难综合实现,c>CHARACTER类型的使用的使用一定要用但引号引起来。VHDL用TYPE来支持用户自定义的数据类型,语法格式如下:
TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型
TYPE 数据类型名 IS 数据类型定义
常用的用户自定义的数据类型有枚举型,数组型,记录型。其中枚举型的在状态机的描述中经常使用到 ,数组型的在存储器的描述中经常用到,记录型的使用以后再详细学习。枚举型的定义方法 TYPE 数据类型名 IS {枚举1,枚举2,...}
数组型有两种,限制型和非限制型:
TYPE 数组名 IS Array(范围) OF 基本类型 --限制性
TYPE 数组名 IS Array(下标名Range<>) OF 基本类型 --非限制性
数组是将一组具有相同数据类型的元素组合在一起,而记录是将一组不具有相同数据类型的元素组合在一起。
TYPE 记录名 IS Record
元素1: 元素数据类型;
元素2: 元素数据类型;
……
ENDRECORD[记录名];
2.VHDL中的数据对象有信号,变量和常量。常量一般用来提高代码的可读性,易维护和修改性。关键是要弄清楚信号和变量的区别,首先信号我们可以把它理解成实际的硬件连线而变量不能,也就是说信号综合以后有实际的对应硬件而变量是没有的,其次信号是一个全局性的变量,而变量只能在进程,过程和函数中使用和定义,信号没有这样的限制,再次变量是用来存放进程,过程和函数中的中间量的,第四信号的赋值有延时,符号是“<=”,变量的赋值是立即见效的,也就是说信号是有历史信息的,而变量只有当前的信息。
3。VHDL的数据类型。VHDL不但具有标准的数据类型,还支持用户自定义的数据类型,这一点在复杂系统的设计中非常的有用。VHDL的标准数据类型有多种,包括BOOLEAN,BIT,BIT_VECTOR,CHARACTER, INTEGER,NATURAL,POSITIVE,REAL,TIME。有几点需要注意:a> 不同数据类型的数据对象是不能相互作用的,相互作用之前先要进行类型转换;b>使用INTEGER,NATURAL,POSITIVE类型最好加范围限制以提高综合效率,同时REAL型一般很难综合实现,c>CHARACTER类型的使用的使用一定要用但引号引起来。VHDL用TYPE来支持用户自定义的数据类型,语法格式如下:
TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型
TYPE 数据类型名 IS 数据类型定义
常用的用户自定义的数据类型有枚举型,数组型,记录型。其中枚举型的在状态机的描述中经常使用到 ,数组型的在存储器的描述中经常用到,记录型的使用以后再详细学习。枚举型的定义方法 TYPE 数据类型名 IS {枚举1,枚举2,...}
数组型有两种,限制型和非限制型:
TYPE 数组名 IS Array(范围) OF 基本类型 --限制性
TYPE 数组名 IS Array(下标名Range<>) OF 基本类型 --非限制性
数组是将一组具有相同数据类型的元素组合在一起,而记录是将一组不具有相同数据类型的元素组合在一起。
TYPE 记录名 IS Record
元素1: 元素数据类型;
元素2: 元素数据类型;
……
ENDRECORD[记录名];
相关文章推荐
- vhdl中变量(variable)和信号(signal)的区别
- vhdl中变量(variable)和信号(signal)的区别
- 【博客大赛】VHDL中信号与变量的区别及赋值的讨论
- 无符号数(unsigned) 和带符号数(int)的循环变量 在for循环条件判断使用中的区别1例
- VHDL中变量(variable)和信号(signal)的区别
- C++有符号和无符号变量在使用过程中的区别(sign and unsign)
- dispatcher、redirect和chain三种result type的使用区别
- VHDL:理解信号与变量、并行语句与顺序语句
- 使用字符串指针变量与字符数组的区别
- c语言符号常量与常变量的区别?
- 使用@符号让C#中的保留字做变量名的方法详解
- python不使用type(obj) is **来判断变量的类型
- VHDL变量与信号的差异
- Qt学习:线程间共享数据(使用信号槽传递数据,必须提前使用qRegisterMetaType来注册参数的类型)
- 将查询结果赋值给变量时使用set与select的区别
- 临时表与表变量的区别和使用方法
- 信号阻塞与屏蔽:SIG_BLOCK, SIG_UNBLOCK, SIG_MASK区别与使用
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别
- Perl的system后使用单引号和双引号以及其中包含变量的区别
- [js点滴]使用var定义变量和不使用var的本质区别