




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可编程逻辑电路技术陈李第8章VHDL设计实例主要内容8.1值类属性8.2函数类属性8.3信号类属性8.4数据类型类属性8.5数据范围类属性8.6自定义属性值类属性主要用于返回常用数据类型、数组、块的有关值。如返回数组长度、数组类型的上下边界等。可分为三个子类:常用数据类型的值类属性数组的值类属性块的值类属性8.1值类属性1、常用数据类型的值类属性这类属性有四种:(1)’left:返回数据类型或子类型最左边的值;(2)’right:返回数据类型或子类型最右边的值;(3)’high:返回一个数据类型或子类型最大值;(4)’low:返回一个数据类型或子类型最小值;属性用字符“′”来指定属性,后面跟属性名,“′”前面是所附属性的项目,这种定义格式对所有的属性是通用的。8.1值类属性注意:对于枚举类型,属性’left的值和’low的值相同,属性’right的值和’high的值相同;对于用保留字to定义的整数类型,属性’left的值和’low的值相同,属性’right的值和’high的值相同;对于用保留字downto定义的整数类型,属性’right的值和’low的值相同,属性’left的值和’high的值相同;8.1值类属性如:typenumberisintegerrange0to9;typeweekis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);typewordisarray(15downto0)ofstd_logic;number’left=0number’right=9number’high=9number’low=0week’left=Mondayweek’right=Sundayweek’high=Sundayweek’low=Mondayword’left=15word’right=0word’high=15word’low=08.1值类属性2.数组的值类属性只有一种属性’length:返回限定性数组的长度值,即元素的个数。该属性可用于任何标量的一维数组和多维数组。8.1值类属性定义下列数据类型:
typenumberisintegerrange0to9;typeweekis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);typewordisarray(15downto0)ofstd_logic;则有:number’length=10work’length=7word’length=16
3.块的值类属性主要用来返回块和结构体建模的信息有两种属性(1)’behavior:如果块有标号说明或者结构体有结构体名,并且它们中不含有元件例化语句,则返回布尔值“true”。(2)’structure:如果块和结构体中只含有元件例化语句或进程语句,将返回布尔值“true”。
8.1值类属性对于不含有任何元件例化语句的块语句或是结构体,则属性’behavior的返回值为“true”,而属性’structure返回值“false”;对于只含有元件例化语句或进程语句的块语句或是结构体,则属性’behavior的返回值为“false”,而属性’structure返回值“true”;对于以混合描述方式描述的块语句或是结构体来说,属性’behavior和’structure的返回值都为“false”。8.1值类属性例:用3个二输入与门来实现四输入与门的VHDL描述。Entityand4isport(a,b,c,d:inbit;q:outbit);Endand4;Architectturestructuralofand4iscomponentand_gateport(a,b:inbit;c:outbit);endcomponent;signalq1,q2:bit;BeginU1:and_gateportmap(a,b,q1);U2:and_gateportmap(c,d,q2);U3:and_gateportmap(q1,q2,q);Endstructural;对结构体structural则有如下属性:(1)structural’behavior的返回值为“false”;
(2)structural’structure的返回值为“true”。8.1值类属性第8章VHDL设计实例主要内容8.1值类属性8.2函数类属性8.3信号类属性8.4数据类型类属性8.5数据范围类属性8.6自定义属性是指属性以函数的形式为设计人员返回有关数据类型、数组或是信号的信息。执行时,属性根据输入的自变量值去执行函数,然后返回一个数据类型、数组或是信号相关信息的值。可分为三个子类:数据类型属性函数数组属性函数信号属性函数8.2函数类属性1.数据类型属性函数用来得到数据类型的各种相关信息,能够返回数据类型的位置信息或是左右邻值等。共有6种:(1)’pos(数据值):返回数据值的位置序号(2)’val(位置序号):返回该位置序号的值(3)’succ(数据值):返回该数据值的下一个值(4)’pred(数据值):返回该数据值的前一个值(5)’leftof(数据值):返回该数据值左边的值(6)’rightof(数据值):返回该数据值右边的值8.2函数类属性如:Typecurrentisrange0to1000000UnitsuA;mA=1000uA;A=1000mA;Endunits;Typeweekis(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);则有:Current’pos(10uA)=10Current’val(10)=10uACurrent’succ(7uA)=8uACurrent’pred(7uA)=6uACurrent’leftof(10uA)=9uACurrent’rightof(10uA)=11uAweek’pos(Tuesday)=1week’val(3)=Thursdayweek’succ(Thursday)=Fridayweek’pred(Thursday)=Wednesdayweek’leftof(Friday)=Thursdayweek’rightof(Friday)=Saturday8.2函数类属性2.数组属性函数有4种:(1)’left(n):得到索引号为n的区间的左端位置号;(2)’right(n):得到索引号为n的区间的右端位置号;(3)’high(n):得到索引号为n的区间的高端位置号;(4)’low(n):得到索引号为n的区间的低端位置号;其中,索引号n就是多维数组中所定义的多维区间的序号,缺省为n=1。当索引号取缺省值时,数组属性函数就代表对一维区间进行操作。8.2函数类属性typeram_dataisarray(0to511)ofinteger;…….foriinram_data1’lowtoram_data1’highloop8.2函数类属性3.信号属性函数主要有以下5种:(1)signal_name’event:该函数返回值为“true”或“false”。在当前相当小的时间间隔内有信号事件发生,返回值为“true”;反之,则返回“false”。(2)signal_name’active:如果在当前相当小的时间间隔内信号活跃,则函数的返回值为“true”;如果不活跃,则返回“false”。
8.2函数类属性注:“信号活跃”和“事件发生”“信号活跃”定义为信号的任何变化,例如信号从‘0’变到‘1’是一个信号活跃,而信号从‘0’到‘0’也是一个信号活跃。“事件发生”定义为信号的值发生变化,如信号从‘0’变到‘0’不是一个事件,原因是信号值没有变。不难看出:所有的事件发生都是信号活跃,但是所有的信号活跃不一定是事件发生。8.2函数类属性(3)signal_name’last_event:返回该信号从前一个事件发生到现在时刻所经历的时间值。(4)signal_name’last_active:返回该信号从前一次信号活跃到现在时刻所经历的时间值。(5)signal_name’last_value:返回该信号在最近一个事件发生以前的值。信号属性函数’event应用十分广泛,对于确定信号的边沿十分有效。如果一个信号有事件发生,则表明有跳变沿产生;再根据信号的值就可以确定是上升沿跳变还是下降沿跳变。8.2函数类属性例:D触发器的源代码Libraryieee;Useieee.std_logic_1164.all;Entitydffisport(d:instd_logic;clk:instd_logic;q:outstd_logic);Enddff;ArchitecturertlofdffisBeginprocess(clk)beginif(clk’eventandclk=‘1’)thenq<=d;endif;endprocess;Endrtl;8.2函数类属性上例中丑在检测酬上升沿纸时,当纵时钟clk原来的值冷为“0”时,那吉么逻辑静上是正昂确的;喷当时钟clk原来的汗值不为君“0”时,虽然踢出现了上端升沿,那股么逻辑上露是不正确乞的。可以洞用’las虏t_v苍alu抚e将上述程谅序作一下哭改进:将if邪(cl浮k’e宣ven神ta帐nd狐clk真=翅‘1’为)稼the挤n改为:if(失clk’亡even伸tan牵dcl傲k=牲‘1’钩and印(c煮lk’l掀ast_汽valu驴e=铺‘0’蠢)th拍en这样就保带证了时钟钩信号clk是从‘0’变到‘1’的,确定品了上升沿脸触发。8.2牛函数类属苹性第8章盲VH叔DL设很计实例主要内束容8.1值类属闷性8.2函数类属年性8.3信号类属幻玉性8.4数据类型瓶类属性8.5数据范围呈类属性8.6自定义声属性是根据一臣个信号去蠢建立一个扔新信号,仗建立的新艇信号是以介所加属性色的信号为鲜基础而形旋成的,因辅此这个信蚕号带有了怨所加属性染的有关信父息。用信号类休属性得到朝的有关信算息类似于正某些函数柴类属性所帆得到的信盾息,所不散同的是信惩号类属性挨可以用于妖正常信号故能用到的质任何场合备,包括敏投感表中。有以下意四种:(1)信号’dela桐yed[随(t)泪]:建立一姿个与所加梯属性的信钩号同类型御的信号,该信号醉就是以计所加属掘性的信洒号为参其考信号,经过延膀迟时间t后得到.8.3甚信号箱类属性(2)信号’stab爽le[抛(t)磁]:当所加金属性的信旋号在时间t内没有荒事件发找生,则返回恋“tru胞e”的布尔信挑号;反之,则返回后“fals朝e”的布尔等信号。(3)信号’quie总t[(饥t)]:当所溪加属性习的信号啄在时间t内信号青不活跃津时,则量返回一贝个值为怠“true到”的布尔信券号;反之碍,则返回或“fals良e”的布尔音信号。(4)信号’tra绍nsa讽cti撒on:该属性箩可以建立刊一个bit类型的信军号,当所颜加属性的头信号活跃恰时,信号保将对前值泉进行翻转忧。8.3尘信号埋类属性1、信号漫’dela假yed[匙(t)艇]建立一个稀与所加属干性的信号乔同类型的骄信号,该信号就栋是以所加生属性的信倡号为参考仙信号,经过延丹迟时间t后得到.8.3快信号类属晶性例:四输猛入与门的缸源代码,由三个二捞输入与门统构成.Libr桥ary染ieee剥;Use哥ieee瓦.std恋_log恰ic_1连164.技all;Enti洒tya杯nd4据ispor伙t(a劲,b,辩c,d剃:放in双st传d_l束ogi撇c;q:显ou帜ts骡td_摄log准ic)雹;End能and4兼;Arch甘itec静ture临beh运ave基ofa想nd4孝issign陆alq姿1,q2序:s欧td_l浴ogic饼;Beg休inq1<迁=a交an就db做af糕ter侧5知ns;q2<=本ca慕ndd蚂aft挖er5炮ns;q<=贩q1辛and吗q2a氏fter事7n扩s;End型b肃eha歌ve;定义了两爆个信号q1和q2,用它们忍来传送经耍过与门后败的延迟信劈燕号。8.3捧信号织类属性如果使用摸属性’dela债yed[以(t)沾],就可痕以不蓝用定义镰新的信赚号q1和q2,避免了带更多信号它的定义和葱源代码的闷书写。Arc帅hit烤ect尿ure鱼be船hav温eo究fa仙nd4拾isBegi互nq<=科((a漆an浆db转)’d扯ela兆yed廊(5熔ns)决an市d(c瓜and男d)怕’de拨lay淡ed(刺6n尚s))药af句ter游7伞ns;End萄b膜eha冤ve;8.3兄信号皂类属性2、属性’stab售le[郊(t)归]用来建立助一个布尔喊信号,当贵所加属性谢的信号在泪时间t内没有事呜件发生则乞返回值为触“true钱”的布尔信兰号;当所泽加属性的浓信号在时涉间t内有事昆件发生糕则返回清值为“fals第e”的布尔信湿号;当时间t=0时,则判距断是否有朴事件发生兔的时间将抬为一个模遭拟周期,费此时属性幼’sta购ble和信号属盟性函数’even内t具有相反的值。8.3骨信号类属斜性Arch怜itec蜓ture常rtl她of订dff承isBeg倡inpro钞ces模s(c某lk)begi住nif((n汉ot(跌clk失’st线abl宾e))来an殖dc按lk顺=‘1尚’妨and(clk犁’las改t_va有lue酸=‘0’坏))the刷nq<=兴d;end拌i例f;end同pr纸oce蒜ss;end颗r案tl;8.3有信号类属欠性3、属性’qui哨et[牺(t穿)]用来建勉立一个食布尔信歪号,当剧所加属疯性的信沟号在时古间t内信号不妨活跃时,骂返回一个望值为“tru潮e”的布尔召信号;星当在时边间t内信号活冒跃时,返贴回一个值稿为“fal使se”的布尔侄信号;当时间t=0时,则庆判断是鲜否有信妙号活跃眯的时间趟将为一束个模拟剪周期。可以看租到属性或’stab屿le是判断浙是否有匪事件发般生,属福性’qui拣et则是判所断信号连是否活陡跃。8.3袋信号诞类属性4.属性’tra排nsa戏cti践on可以建立庙一个bit类型的贞信号,厚当所加辆属性的拜信号活饥跃时,兄信号将培对前值扮进行翻规转。8.3权信号挑类属性第8章页VHDL糟设计实例主要内解容8.1值类属鞋性8.2函数类飞属性8.3信号类属究性8.4数据类型粱类属性8.5数据范围努类属性8.6自定义属材性用来得棉到所加法属性的另数据类削型基本色类型,撒它仅仅半是一种呈类型属追性,这崖个属性及只能作祥为另一吗种值类四或函数枝类属性肢的前缀衣。只有下面舌一种形式塌:数据类阅型’bas热e:用来拼得到所厅加属性抛的数据她类型的砍同类型足或子类紫型。8.4列数据僵类型类钥属性下面看栋一个例坐子,首辣先定义海如下数岸据类型糠:Type怜wee蹦kis毙(Mo祥nday曲,Tu滋esda利y,W玻edne冶sday并,Th拍ursd虚ay,宰Frid雁ay,送Satu围rday跪,Su翻nday坚);Subt好ype宴job_靠day扶isw地eek胁rang俱eMo脸nday年to串Frid捕ay;8.4胳数据类型舞类属性Wee振k’b斩ase样’le忆ft继=M织ond与ayWee桥k’b投ase若’ri闷ght童=轮Sun献dayWee穗k’b啄ase捕’le菠ngt泪h=三7Week晚’bas余e’su榜cc(W妥edne碰sday去)=尸Thur吓sdayWee斗k’b絮ase遮’pr腿ed(拉Wed琴nes点day迁)=单Tu浸esd船ayjob_俩day’犯base仿’lef住t=虎Mond救ayjob_没day’晌base垮’rig份ht=纸Sun尤dayjob纠_da相y’b愁ase迎’le志ngt尾h=塘7job捎_da籍y’b惠ase判’su哨cc(循Wed肆nes伶day您)=坑Th魔urs直dayjob搁_da碌y’b皇ase涛’pr贸ed(结Wed堵nes近day阵)=似Tu火esd把ay8.4去数据类型要类属性则有:在上面的姐例子中,Wee父k’b锅ase将返回Week枚举类型滋,因为枚中举类型Week就是其唇基本类迁型;job水_da互y’b盯ase将返回Week枚举类型表,因为枚渠举子类型job埋_da近y是枚举览类型Week的子类型射,所以枚咬举子类型job_富day的基本类疑型是Wee久k类型。8.4艳数据类型淋类属性第8章疏VHDL羽设计实例主要内容8.1值类属性8.2函数类属业性8.3信号类碧属性8.4数据类型按类属性8.5数据范遮围类属辈性8.6自定义斗属性用来返回版数据的区乖间范围,鬼这类属性提仅用于数户据类型中读,而且要雀求数据类宜型必须是召限定性数纷组。有以下集两种:(1)数组’ran专ge[吵(n过)]:得到挖索引号匹为n的区间范插围(2)数组’reve岗rse_列rang俱e[(板n)]:得到索辛引号为n的区间的番逆序范围其中索职引号n就是多维针数组中所特定义的多检维区间的搜序号,缺泳省值为n=1,代表座对一维录区间进系行操作塔。8.5匠数据朱范围类幼属性Fun永cti着on我ve粒cto李r_t疏o_i紫nt(inp慌ut:霜in封std_婚logi羊c_ve枝ctor自)re辰turn必int耕eger构isvar翁iab救le钢res傲ult牙,t伶emp久:搞int败ege缩慧r:盾=0吊;Begi焰nfor享iin乡丰in昌put’病rang翁elo颗optem殿p:加=0阶;if颗(in廊put鬼(i)惧=‘长1’)鉴th葱entemp厦:=炉2**(辣i–叛inp帆ut’l扁ow)芒;elseas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智慧医疗中心运营管理费收取协议
- 二零二五年度房屋租赁权抵押评估报告备案审核房屋贷款合同
- 二零二五年度电力系统运行电工服务协议
- 电子支付账户管理服务合同
- 日常行政管理操作规范
- 心理咨询行业个人咨询服务协议
- 全国医药研发中心技术转让合同
- 货物运输代理协议书
- 数据驱动的智慧城市建设项目协议
- 高考语文备考:政论类文言文之《淮南子》汇编
- 110KV电缆敷设专项施工方案方案
- 化学品SDS说明书-次氯酸钠溶液含有效氯>5%
- 配电箱巡视检查记录表
- GB/T 2624.3-2006用安装在圆形截面管道中的差压装置测量满管流体流量第3部分:喷嘴和文丘里喷嘴
- 豌豆栽培及病虫害防治课件
- ISO45001职业健康安全管理体系培训
- 大学二级学院突发事件应急预案
- 动物生产学(全套课件)
- 部编版四年级下册道德与法治 第4课 买东西的学问(第2课时) 教学课件
- 慢性活动性EB病毒课件
- 物料吊笼安全技术标准
评论
0/150
提交评论