- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章__VHDL编程基础A
3.4.7 其他语句和说明 1.属性(ATTRIBUTE)描述与定义语句 VHDL中预定义属性描述语句有许多实际的应用,可用于对信号或其他项目的多种属性检测或统计。VHDL中可以具有属性的项目如下: 类型、子类型;过程、函数;信号、变量、常量;实体、结构体、配置、程序包;元件;语句标号。 属性是以上各类项目的特性,某一项目的特定属性或特征通常可以用一个值或一个表达式来表示,通过VHDL的预定义属性描述语句就可以加以访问。 属性的值与对象(信号、变量和常量)的值完全不同,在任一给定的时刻,一个对象只能具有一个值,但却可以具有多个属性。VHDL还允许设计者自己定义属性。 表3.4是常用的预定义属性。其中综合器支持的属性有:LEFT、RIGHT、HIGH、LOW、RANGE、REVERSE_RANGE、LENGTH、EVENT和STABLE等。 表3.4 预定义的属性函数功能表 1) 信号类属性 信号类属性中,最常用的当属EVENT。例如,语句“CLOCKEVENT”就是对以CLOCK为标识符的信号,在当前的一个极小的时间段内发生事件的情况进行检测。所谓发生事件,就是电平发生变化,从一种电平方式转变到另一种电平方式。如果在此时间段内,CLOCK由0变成1或由1变成0都认为发生了事件,于是这句测试事件发生与否的表达式将向测试语句,如IF语句,返回一个BOOLEAN值TRUE,否则为FALSE。 【例3.4.28】 CLOCKEVENT AND CLOCK=‘1’ 本例是对CLOCK信号上升沿的测试。即一旦测试到CLOCK有一个上升沿时,此表达式将返回一个布尔值TRUE。 【例3.4.29】 PROCESS(CLOCK) IS IF(CLOCKEVENT AND CLOCK=‘1’) THEN Q=DATA; END IF; END PROCESS; 【例3.4.30】 NOT(CLOCKSTABLE AND CLOCK=‘1’) (CLOCKEVENT AND CLOCK=‘1’) 2) 数据区间类属性 数据区间类属性有RANGE[(N)]和REVERSE_RANGE[(N)],这类属性函数主要是对属性项目取值区间进行测试,返还的内容不是一个具体值,而是一个区间,它们的含义如表3.4所示。对于同一属性项目,RANGE和REVERSE_RANGE返回的区间次序相反,前者与原项目次序相同,后者相反,见例3.4.31。 【例3.4.31】 … SIGNA RANGE1: IN STD_LOGIC_VECTOR(0 TO 7); … FOR I IN RANGE1RANGE LOOP … 3) 数值类属性 在VHDL中的数值类属性测试函数主要有LEFT, RIGHT,HIGH,LOW,它们的功能如表3.4所示。这些属性函数主要用于对属性目标的一些数值特性进行测试。例如: 【例3.4.32】 … PROCESS(CLOCK, A,B) IS TYPE OBJ IS ARRAY(0 TO 15) OF BIT; SIGNA S1,S2,S3,S4:INTEGER; BEGIN S1=OBJRIGHT; S2=OBJLEFT; S3=OBJHIGH; S4=OBJLOW; … 【例3.4.33】 … TYPE ARRY1 ARRAY (0 TO 7) OF BIT; VARIABLE WTH1:INTEGER; … WTH1:=ARRY1LENGTH; --WTH1=8 … 5) 用户定义属性 属性与属性值的定义格式如下: ATTRIBUTE 属性名:数据类型; ATTRIBUTE 属性名 OF 对象名:对象类型IS值; 【例3.4.34】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNTBUF IS PORT( DIR:IN STD_LOGIC; CLK,CLR,OE:IN STD_LOGIC; A,B:INOUT STD_LOGIC_VECTOR(0 TO 1); Q:INOUT STD_ LOGIC
文档评论(0)