第七章VHDL语言属性描述课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第七章VHDL语言属性描述课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 VHDL 语言 属性 描述 课件
- 资源描述:
-
1、第七章第七章 VHDL语言属性描述语言属性描述 属性是指关于设计实体、结构体、类型、信号等项属性是指关于设计实体、结构体、类型、信号等项目的目的指定特性。指定特性。属性提供了描述特定对象的多个侧面值的手段属性提供了描述特定对象的多个侧面值的手段信号属性在检测信号变化和建立详细的时域模型时非常信号属性在检测信号变化和建立详细的时域模型时非常重要重要为什么要有属性:为什么要有属性:电路元件需要时钟信号同步电路元件需要时钟信号同步需要控制信号控制整个电路的行为(进程的执行)需要控制信号控制整个电路的行为(进程的执行)时钟信号与控制信号的使用多种多样时钟信号与控制信号的使用多种多样1.1.利用属性可以
2、使利用属性可以使VHDLVHDL源代码更加简明扼要,便于理解源代码更加简明扼要,便于理解属性属性VHDL提供提供5类类预定义预定义属性属性:1、数值类属性、数值类属性2、函数类属性、函数类属性3、信号类属性、信号类属性4、数据类型类属性、数据类型类属性5、数组范围类属性、数组范围类属性7.1.1 常用数据的数值属性常用数据的数值属性 主要用于返回常用数据类型、数组或是块的有关值:主要用于返回常用数据类型、数组或是块的有关值:例如:返回数组长度、数据类型的上下界等。例如:返回数组长度、数据类型的上下界等。常用数据类型的数值类属性:常用数据类型的数值类属性:left:返回一个数据类型或子类型:返回
3、一个数据类型或子类型。right:返回一个数据类型或子类型:返回一个数据类型或子类型。high:返回一个数据类型或子类型的:返回一个数据类型或子类型的。low:返回一个数据类型或子类型的:返回一个数据类型或子类型的。7.1 数值类属性数值类属性:对数值取最大、最小值;对枚举类型数据下限取:对数值取最大、最小值;对枚举类型数据下限取左边界值,上限取右边界值;对数组取数组区间的最大最左边界值,上限取右边界值;对数组取数组区间的最大最小值。小值。:按书写顺序取左边或右边值。:按书写顺序取左边或右边值。例:例:SUBTYPE nat IS Natural Range 0 to 255;X:=natHI
4、GH;-x等于等于255X:=natLOW;-x等于等于0X:=natRIGHT;-x等于等于255X:=natLEFT;-x等于等于07.1 数值类属性数值类属性PROCESS(a)TYPE bit16 IS Array(15 downto 0)OF std_logic;VARIABLE lef,rig,up,low:NATURAL;BEGINlef:=bit16LEFT;-15rig:=bit16RIGHT;-0up:=bit16HIGH;-15low:=bit16LOW;-0END PROCESS;PROCESS(a)TYPE bit16 IS Array(0 to 15)OF std_
5、logic;VARIABLE lef,rig,up,low:NATURAL;BEGINlef:=bit16LEFT;-0rig:=bit16RIGHT;-15up:=bit16HIGH;-15low:=bit16LOW;-0END PROCESS;7.1 数值类属性数值类属性在递增区间在递增区间LEFT=LOWRIGHT=HIGH在递减区间在递减区间LEFT=HIGHRIGHT=LOW例例7-2 枚举类型数据数值属性描述枚举类型数据数值属性描述Architecture voltb of volta IS TYPE volt IS(uV,mV,V,kV);SUBTYPE s_volt IS vo
6、lt RANGE(V DOWNTO mV);SIGNAL S1,S2,S3,S4:VOLT;BEGINS1=voltHIGH;-kVS2=voltLOW;-uVS3=s_voltLEFT;-VS4=s_voltRIGHT;-mVEND voltb;7.1 数值类属性数值类属性7.1.1 数组的数值属性数组的数值属性 数组属性只有一个:取数组的长度值。格式:数组属性只有一个:取数组的长度值。格式:LENGTH(n);其中其中n是多维数组的维数;如二维数组是多维数组的维数;如二维数组n=2;对一维数组对一维数组n缺省。缺省。例例7-3 一维数组数值属性描述一维数组数值属性描述PROCESS(b)T
7、YPE bit8 IS array(7 downto 0)of bit;TYPE bit31_8 IS array(31 downto 8)of bit;VARIABLE b1,b2:integer;BEGINb1:=bit8LENGTH;-b1=8B2:=BIT31_8LENGTH;-b2=24END PROCESS7.1 数值类属性数值类属性 指属性以函数的形式返回有关指属性以函数的形式返回有关数据类型数据类型、数组数组或是或是信号信号的信的信息。息。函数类属性使用时以函数表达式的形式出现,属性根据输入函数类属性使用时以函数表达式的形式出现,属性根据输入的自变量值去执行函数,返回一个相应的
8、值。该返回值可能是的自变量值去执行函数,返回一个相应的值。该返回值可能是数组区间的某一个值,也可能是信号的变化值,或是枚举数据数组区间的某一个值,也可能是信号的变化值,或是枚举数据的位置序号等。的位置序号等。函数类属性分三类:函数类属性分三类:数据类型属性函数数据类型属性函数数组类型属性函数数组类型属性函数1.信号属性函数信号属性函数7.2 函数类属性函数类属性7.2 函数类属性函数类属性7.2.1 数据类型属性函数数据类型属性函数主要用来得到数据类型的各种相关信息,共主要用来得到数据类型的各种相关信息,共6种:种:(1)POS(数据值数据值)-返回数据类型定义中输入的返回数据类型定义中输入的
9、X值的位置序号值的位置序号(2)VAL(位置序号位置序号)-返回输入的位置序号返回输入的位置序号X处的值处的值(3)SUCC(数据值数据值)-返回数据类型定义中该值的下一个对应值返回数据类型定义中该值的下一个对应值(4)PRED(数据值数据值)-返回数据类型定义中该值的前一个对应值返回数据类型定义中该值的前一个对应值(5)LEFTOF(数据值数据值)-返回数据类型定义中该值的左边值返回数据类型定义中该值的左边值(6)RIGHTOF(数据值数据值)-返回数据类型定义中该值的右边值返回数据类型定义中该值的右边值 对于递增区间:对于递增区间:SUCC(x)=RIGHTOF(x)PRED(x)=LEF
10、TOF(x)对于递减区间:对于递减区间:SUCC(x)=LEFTOF(x)PRED(x)=RIGHTOF(x)7.2 函数类属性函数类属性例例7-4PACKAGE w_pack IS TYPE week IS(sun,mon,tue,wed,thu,fri,sat);TYPE r_week IS week RANGE sat DOWNTO sun;END w_pack;求自定义类型的属性:求自定义类型的属性:weekSUCC(mon)-得得tueweekPRED(mon)-得得sunweekLEFTOF(mon)-得得sunweek RIGHTOF(mon)-得得tuer_weekSUCC(m
11、on)-得得tuer_weekPRED(mon)-得得sunr_weekLEFTOF(mon)-得得tuer_week RIGHTOF(mon)-得得sun7.2 函数类属性函数类属性7.2.2 数组属性函数数组属性函数主要用来得到数组的信息。共有主要用来得到数组的信息。共有4种属性:种属性:(1)LEFT(n)-得到得到n区间的区间的左端边界号左端边界号(2)RIGHT(n)-得到得到n区间的区间的右端边界号右端边界号(3)HIGH(n)-得到得到n区间的区间的高端边界号高端边界号(4)LOW(n)-得到得到n区间的区间的低端边界号低端边界号其中其中n表示数组的区间序号(即维数)。当表示数组
12、的区间序号(即维数)。当n=1时可以缺省,默认为一维时可以缺省,默认为一维数组。数组。在递减区间在递减区间LEFT=HIGHRIGHT=LOW在递增区间在递增区间LEFT=LOWRIGHT=HIGHTYPE matrix IS ARRAY(0 TO 7,15 DOWNTO 0)OF std_logic;i=matrix left(1);-i=0;i=matrix right(1);-i=7;i=matrix high(1);-i=7;i=matrix low(1);-i=0;i=matrix left(2);-i=15;i=matrix right(2);-i=0;i=matrix high(
13、2);-i=15;i=matrix low(2);-i=0;7.2 函数类属性函数类属性7.2.3 信号类型属性函数信号类型属性函数主要用来得到信号的各种行为功能信息:包括信号值的变化、主要用来得到信号的各种行为功能信息:包括信号值的变化、信号变化后经过的时间、变化前的信号值等。共有信号变化后经过的时间、变化前的信号值等。共有5种属性:种属性:(1)EVENT -当前很短的时间内信号发生了变化,则返回当前很短的时间内信号发生了变化,则返回TRUE,否则返回否则返回FALSE。(2)ACTIVE-当前很短的时间内信号活跃,则返回当前很短的时间内信号活跃,则返回TRUE,否则返,否则返回回FALS
14、E。(3)LAST_EVENT -返回信号从前一个事件发生到现在的时间值。返回信号从前一个事件发生到现在的时间值。(4)LAST_VALUE-返回信号在最近一个事件发生以前的值返回信号在最近一个事件发生以前的值(5)LAST_ACTIVE-返回信号从前一次活跃到现在的时间值返回信号从前一次活跃到现在的时间值7.2 函数类属性函数类属性1 属性函数属性函数EVENT和和 LAST_VALUE EVENT主要用来检测脉冲信号的正跳变或负跳变边沿,也可以检查主要用来检测脉冲信号的正跳变或负跳变边沿,也可以检查信号是否刚发生变化并且正处于某一个电平值。信号是否刚发生变化并且正处于某一个电平值。例例7-
展开阅读全文