第5章 vhdl设计进阶

第5章 vhdl设计进阶

ID:6651631

大小:396.00 KB

页数:39页

时间:2018-01-21

第5章 vhdl设计进阶_第1页
第5章 vhdl设计进阶_第2页
第5章 vhdl设计进阶_第3页
第5章 vhdl设计进阶_第4页
第5章 vhdl设计进阶_第5页
资源描述:

《第5章 vhdl设计进阶》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第5章VHDL设计进阶尽管第3章中已对所涉及的语法现象作了详尽的说明和示例诠释,但细心的读者不难发现,仍然留有诸多有待深入探讨的课题。本章将部分地沿用第3章中通过一些情景实例引出相关的VHDL语法结构和语言现象说明的办法,通过一些典型示例进一步介绍新的相关的VHDL语法知识:同时,对第3章中尚存的疑点作深入的剖析和探讨,期望读者通过本章的学习进一步了解VHDL程序设计的内存规律,以便能更好更扎实地掌握VHDL的数字系统设计技术。5.1数据对象在VHDL中,数据对象有二类,即变量(VARIABLE)、常量(CONSTANT)和信

2、号(SlGNAL)。第3章中曾提到,数据对象类似于一种容器,它接受不同数据类型的赋值。变量和常量可以从软件语苦中找到对应的类犁,然而信号号的表现较特殊,它具有更多的硬件特征,是VHDL中最有特色的语言要素之一。尽管信号和变量已在前面一些示例中出现过,但都没有作更详细的解释,这势必影响对VHDL程序的更好理解和设计技巧的发挥。下面首先对第3章中出现的一些语法现象作更为深入的讨沦。5.1.1常数通常,常数的定义和设置主要是为了使程序更容易阅读和修改。例如,将逻辑位的宽度定义为一个常量,只要修改这个常量就能很容易地改变宽度,从而改变

3、硬件结构。在程序中,常量是一个恒定不变的值,一旦作了数据类型和赋值定义后,在程序中就不能再改变,因而具有全局性意义。常数定义的一般表述如下:CONSTANT常数名:数据类型::表达式;例如:CONSTANTFBT:STD_LOGIC_VECTOR:="010110";--定义常数为标准位矢类型CONSTANTDATAIN:INTEGER:=]5j定义常数为整数类型第1句定义常数FBT的数据类型是STD_LOGIC_VECTOR,它等于“010110”;第2句定义常数DATAIN的数据类型是整数INTEGER,它等于15。VHD

4、L要求所定义的常量数据类型必须与表达式的数锯类型一致。常数定义语句所允许的设计单元有实体、结构体、程序包、块、进程和子程序。常数的可视性,即常数的使用范围取决于它被定义的位置。如果在程序包中定义,常数具有最大的全局化特征,可以用在调用此程序包的所有设计实体中;常数如果定义在设计实体中,其有效范围为这个实体定义的所有结构体(如含多结构体时);如果常数定义在设计实体的某一结构体中,则只能用于此结构体中:如果常数定义在结构体的某一单元,如一个进程中,则这个常数只能用存这一进程中。这就是常数的可视性规则。这一规则与信号的可视性规则是完

5、全一致的。5.1.2变量在VHDL语法规法规则中,变量是一个局部量,只能在进程和子程序中使用。变量不能将信息带出对它作出定义的当前结构。变量的赋值是一种理想化的数据传输,是立即发生的,不存在任何延时行为。变晕的主要作用是在进程中作为临时的数据仔储单元。定义变量的一股表述如下:VARIABLE变量名:数据类型:=初始值;例如以下两句表述分别定义了a的取值范围为0~15的整数变量;d为标准位类型的变量,初始值是1。VARIABLEa:INTEGERRANGE0TO15;--变最a定义为常数,取值范围是0~15VARIABLEd:S

6、TDLOGIC:='1';--变量d定义为标准逻辑位数据类型,初始值是1变量作为局部量,其适用范围仪限于定义了变量的进程或子程序的顺序语句中。在这些语句结构中,同一变量的值将随变量赋值语句前后顺序的运算而改,因此,变量赋值语句的执行与软件描述语句中的完全顺序执行的赋值操怍有相似处。在变量定义语句中可以定义初始值,这是一个与变量具有相同数据类型的常数值,这个表达式的数据类型必须与所赋值的变量一致,初始值的定义不是必需的。由于硬件电路上电后的随机性,综合器并不支持设置初始值。定义的初始值仅对HDL仿真器是有效的,对综合器无效。,变

7、量赋值的一般表述如下:目标变量名:=表达式;由此式可见,变量赋值符号是“::”,变量数值的改变是通过变量赋值来实现的。赋值语句右方的“表达式”必须是一个与“目标变量名”具有相同数据类型的数值。这个表达式可以是一个运算表达式,也可以是一个数值。通过赋值操作,新的变量值的获得是立刻发生的。变量赋值语句左边的目标变量可以是单值变量,也可以是一个变量的集合,如位矢量类型的变量:VARIABLEx,y:INTEGERRANGE15DOWNTO0;--分别定义变量x和y为整数类型VARIABLEa,b:STD_LOC!C_VECTOR(7

8、DOWNTO0);x:=11;--整数直接赋值y:=2+x;--运算表达式赋值,y也是整数变量a:=b;--b向a赋值a(0T05):=b(2T07);--位矢量类型值5.1.3信号信号是描述硬件系统的基本数据对象。信号可以作为设计实体中许行语句模块间的信息交流通道。信号作为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。