VHDL中常用的数据对象

上传人:王哥 文档编号:30207165 上传时间:2018-01-28 格式:DOC 页数:4 大小:25KB
返回 下载 相关 举报
VHDL中常用的数据对象_第1页
第1页 / 共4页
VHDL中常用的数据对象_第2页
第2页 / 共4页
VHDL中常用的数据对象_第3页
第3页 / 共4页
VHDL中常用的数据对象_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《VHDL中常用的数据对象》由会员分享,可在线阅读,更多相关《VHDL中常用的数据对象(4页珍藏版)》请在金锄头文库上搜索。

1、VHDL 中常用的数据对象摘 要 简要介绍了 VHDL 中数据对象的基本概念,从不同方面讨论了常用的数据对象的区别与联系,通过实例详细比较了信号与变量的用法。 【关键词】VHDL 变量 信号 常量 1 引言 VHDL 是一种常用的高级描述语言,通常包含库、程序包、实体、构造体和配置等部分。而数据对象根据不同情况可以定义在 VHDL 程序的这些部分中,尤其是信号和变量的使用易产生混淆。 2 数据对象的区别与联系 在 VHDL 语言中,凡是可以赋予一个值的对象称为客体也可叫做数据对象,能够接受不同数据类型的赋值。常用的数据对象主要有常量、变量和信号三种。 从定义范围来看,常量和信号是全局量,变量是

2、局部量。常量可以在程序包、实体、进程中使用,一般在程序开始前对常量进行赋值。信号是电子电路内部硬件实体相互连接的抽象表示,可以在结构体、程序包和实体说明中使用,信号名不能冲突。变量仅在进程语句、过程语句、函数语句的结构中使用,不能将信息带出对它作出定义的当前设计单元。其中,应用在不同范围的变量名可以重复。从延时特性来看,常量与变量的赋值是立即生效的,没有延时。VHDL 语言规则不支持变量附加延时语句,变量的赋值是一种理想化的数据传输,是立即发生。但是信号的代入赋值是允许延时的。比如,A0QQQQNULL; END CASE; END PROCESS; END one; ?程序段内 xy 是全局

3、量的信号,定义在结构体中,其值与 S1S0 的值一样,当 xy 分别为 0,1,2,3 时,将A0,A1,A2,A3 赋给 Q。经过 Quartus II9.0 软件程序编译可以通过。仿真结果如图 1 所示,其中,输入 A0 设置为频率较高的周期信号,A1 为低电平,A2 位频率较低的周期信号,A3 为高电平。 从图 1 仿真结果看出,采用信号赋值语句的结果不正确,分析其原因主要是因为信号赋值是在进程结束时更新,启动一次进程信号 xy 的值只能改变一次。 下面采用变量赋值语句来实现,对程序进行如下修改:ARCHITECTURE one OF mux4 IS BEGIN PROCESS(A0,A

4、1,A2,A3,S0,S1) VARIABLE xy:INTEGER RANGE 0 TO 3; BEGIN xy:=0; IF (S0=1) THEN xy:=xy+1; END IF; IF (S1=1) THEN xy:=xy+2; END IF; CASE xy IS WHEN 0=QQQQNULL; END CASE; END PROCESS; END one; 该程序段中,作为局部量的变量定义在进程中,经过软件编译成功。图 2 为采用变量赋值语句的仿真结果。 从图 2 看出,当 S1S0 也就是 xy 的值为 0 时,Q 输出A0 的值,S1S0 为 1 时,Q 输出 A1 的值,

5、S1S0 为 2 时,Q 输出 A2 的值,S1S0 为 3 时,Q 输出 A3 的值,所以采用变量赋值语句的结果实现了选择器的功能,这是因为变量赋值是立即更新,启动一次进程变量 xy 的值为所需要的最后结果。 4 结束语 在 VHDL 中,数据对象类似于一种容器,它接受不同数据类型的赋值。常量,变量和信号是常用的三种数据对象。其中,信号与变量的使用容易产生混淆,通过实例分析讨论了信号与变量,如果使用不当,结果会产生错误,因此,在设计中要谨慎使用信号与变量。 参考文献 1吴方,刘文娟.EDA 技术M.武汉:武汉大学出版社,2011. 2刘昌华.EDA 技术与应用基于 Quartus II 和VHDLM.北京:北京航空航天大学出版社,2012. 3胥勋涛.EDA 技术项目化教程M.北京:电子工业出版社,2011. 作者单位 安徽农业大学经济技术学院 安徽省合肥市 230011

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号