硬件描述语言与数字逻辑电路设计VHDL:第3章 VHDL语言的数据类型及运算操作符.ppt

硬件描述语言与数字逻辑电路设计VHDL:第3章 VHDL语言的数据类型及运算操作符.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL3 第3章 VHDL语言的数据类型及运算操作符 本章重点是了解VHDL语言程序语句的基本结构要素,即VHDL语言对操作对象的说明和操作方法。它们包括: 数据对象(data object): 变量(variable) 信号(signal) 常数(constant) 数据类型; 操作数; 运算操作符 内容分布 3.1 VHDL语言的客体(数据对象)及其分类 3.2 VHDL语言的数据类型 3.3 VHDL语言的运算操作符 3.1 VHDL语言的客体(数据对象)及其分类 在VHDL语言中凡是可以赋予一个值的对象就称为客体(Object)。它可接受不同数据类型的赋值。客体主要包括以下3种:信号、变量、常数(Signal、Variable、Constant)。变量、常数与其它高级语言中的变量和常数十分相似,而信号具有的是硬件特征。在电子电路设计中,这3类客体通常都具有一定的物理含义。例如,信号对应地代表物理设计中的某一条硬件连接线;常数对应地代表数字电路中的电源和地等。当然,变量对应关系不太直接,通常只代表暂存某些值的载体。3类客体的含义和说明场合如表3—l所示。 表3-1 VHDL语言3类客体含义和说明场合 3.1.1 常数(Constant) 常数是一个固定的值。所谓常数说明就是对某一常数名赋予一个固定的值。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。常数说明的一般格式如下: CONSTANT 常数名:数据类型:=表达式; 例如: CONSTANT Vcc:REAL := 5.0; CONSTANT DALY:TIME := 100 ns; CONSTANT FBUS:BIT_VECTOT := 0101; 常数一旦被赋值就不能再改变。上面Vcc被赋值为5.0V,那么在所有的VHDL语言程序中Vcc的值就固定为5.0V,它不像后面所提到的信号和变量那样,可以任意代入不同的数值。另外,常数所赋的值应和定义的数据类型一致。 例如: CONSTANT Vcc:REAL := ”0101”; 这样的常数说明显然是错误的。 常数名称的命名规则: 第一个字符是英文字母 最后一个字符不可以是底线符号,中间也不能有两个连续底线符合相连。 常数名称不可以是VHDL语法保留字。 3.1.2变量(Variable) 变量只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。在仿真过程中,它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。变量的主要作用是在进程中作为临时的数据存储单元,变量的赋值是一种理想化的数据传输,是立即发生的不存在任何延时的行为。 变量说明语句的格式为: VARIABLE 变量名:数据类型 约束条件 := 表达式; (变量的初始值不是必须的) 例如: VARIABLE x,y: INTEGER; VARIABLE count:INTEGER RANGE 0 TO 255 := 10; 变量在赋值时不能产生附加延时。例如,tmpl,tmp2,tmp3都是变量,那么下式产生延时的方式是不合法的; tmp3 := tmpl + tmp2 AFTER 10 ns; 变量赋值的一般表述如下: 目标变量名 := 表达式; 例如: VARIABLE x,y : INTEGER RANGE 15 DOWNTO 0; x := 11; y := 2+x; 3.1.3 信号(Signal) 信号是电子电路内部硬件连接的抽象。它除了没有数据流动方向说明以外,其它性质几乎和前面所述的“端口”概念一致。信号通常在构造体,包集合和实体中说明。 信号说明语句格式为: SIGNAL 信号名:数据类型 约束条件 := 表达式; (信号的初始值设置不是必须的) 例如: SIGNAL sys_clk:BIT := ’0’; SIGNAL ground:BIT := ’0’; 在程序中,信号值的代入采用:“<=” 代入符号,而不是像变量

文档评论(0)

cxlwxg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档