VHDL讲义第八章VHDL语言属性描述.ppt_第1页
VHDL讲义第八章VHDL语言属性描述.ppt_第2页
VHDL讲义第八章VHDL语言属性描述.ppt_第3页
VHDL讲义第八章VHDL语言属性描述.ppt_第4页
VHDL讲义第八章VHDL语言属性描述.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_ VHDL语言设计技术第八章 VHDL语言属性描述 1 第八章 VHDL语言属性描述 属性是指关于设计实体、结构体、类型、信号等项 目的指定特性。 1. 属性提供了描述特定对象的多个侧面值的手段 2. 信号属性在检测信号变化和建立详细的时域模型时非常 重要 3. 为什么要有属性: 电路元件需要时钟信号同步 需要控制信号控制整个电路的行为(进程的执行) 时钟信号与控制信号的使用多种多样 利用属性可以使VHDL源代码更加简明扼要,便于理解 _ VHDL语言设计技术第八章 VHDL语言属性描述 2 属性 VHDL提供5类预定义属性: 1、数值类属性 2、函数类属性 3、信号类属性 4、数据类型类属性 5、数组范围类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 3 8.1.1 常用数据的数值属性 主要用于返回常用数据类型、数组或是块的有关值: 例如:返回数组长度、数据类型的上下界等。 常用数据类型的数值类属性: left:返回一个数据类型或子类型最左边的值最左边的值。 right:返回一个数据类型或子类型最右边的值最右边的值 。 high:返回一个数据类型或子类型的最大值最大值。 low:返回一个数据类型或子类型的最小值最小值。 8.1 数值类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 4 属性规则:属性规则: 上下限上下限:对数值取最大、最小值;对枚举类型数据下限取 左边界值,上限取右边界值;对数组取数组区间的最大最 小值。 左右边界左右边界:按书写顺序取左边或右边值。 例: SUBTYPE nat IS Natural Range 0 to 255; X:=natHIGH; -x等于255 X:=natLOW; -x等于0 X:=natRIGHT; -x等于255 X:=natLEFT; -x等于0 8.1 数值类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 5 PROCESS(a) TYPE bit16 IS Array(15 downto 0) OF std_logic; VARIABLE lef, rig, up, low: NATURAL; BEGIN lef:=bit16LEFT;-15 rig:=bit16RIGHT;-0 up:=bit16HIGH;-15 low:=bit16LOW;-0 END PROCESS; PROCESS(a) TYPE bit16 IS Array(0 to 15) OF std_logic; VARIABLE lef, rig, up, low: NATURAL; BEGIN lef:=bit16LEFT;-0 rig:=bit16RIGHT;-15 up:=bit16HIGH;-15 low:=bit16LOW;-0 END PROCESS; 8.1 数值类属性 在递增区间 LEFT=LOW RIGHT=HIGH 在递减区间 LEFT=HIGH RIGHT=LOW 例例8-8-1 1 : _ VHDL语言设计技术第八章 VHDL语言属性描述 6 例8-2 枚举类型数据数值属性描述 Architecture voltb of volta IS TYPE volt IS (uV,mV,V,kV); SUBTYPE s_volt IS volt RANGE (V DOWNTO mV); SIGNAL S1,S2,S3,S4: VOLT; BEGIN S1LENGTH(n); 其中n是多维数组的维数;如二维数组n=2; 对一维数组n缺省。 例8-3 一维数组数值属性描述 PROCESS(b) TYPE bit8 IS array (7 downto 0) of bit; TYPE bit31_8 IS array (31 downto 8) of bit; VARIABLE b1,b2: integer; BEGIN b1:=bit8LENGTH;-b1=8 B2:=BIT31_8LENGTH;-b2=24 END PROCESS 8.1 数值类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 8 指属性以函数的形式返回有关数据类型、数组或是信号的信 息。 函数类属性使用时以函数表达式的形式出现,属性根据输入 的自变量值去执行函数,返回一个相应的值。该返回值可能是数 组区间的某一个值,也可能是信号的变化值,或是枚举数据的位 置序号等。 函数类属性分三类: 1. 数据类型属性函数 2. 数组类型属性函数 3. 信号属性函数 8.2 函数类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 9 8.2 函数类属性 8.2.1 数据类型属性函数 主要用来得到数据类型的各种相关信息,共6种: (1)POS(X) -返回数据类型定义中输入的X值的位置序号 (2)VAL(X) -返回输入的位置序号X处的值 (3)SUCC(数据值) -返回数据类型定义中该值的下一个对应值 (4)PRED(数据值) -返回数据类型定义中该值的前一个对应值 (5)LEFTOF(数据值) -返回数据类型定义中该值的左边值 (6)RIGHTOF(数据值) -返回数据类型定义中该值的右边值 对于递增区间: SUCC(x) = RIGHTOF(x) PRED(x) = LEFTOF(x) 对于递减区间: SUCC(x) = LEFTOF(x) PRED(x) = RIGHTOF(x) _ VHDL语言设计技术第八章 VHDL语言属性描述 10 8.2 函数类属性 例8-4 PACKAGE 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)-得tue weekPRED(mon)-得sun weekLEFTOF(mon)-得sun week RIGHTOF(mon)-得tue r_weekSUCC(mon)-得tue r_weekPRED(mon)-得sun r_weekLEFTOF(mon)-得tue r_week RIGHTOF(mon)-得sun _ VHDL语言设计技术第八章 VHDL语言属性描述 11 8.2 函数类属性 8.2.2 数组属性函数 主要用来得到数组的信息。共有4种属性: (1)LEFT (n) -得到n区间的左端边界号 (2)RIGHT(n) -得到n区间的右端边界号 (3)HIGH(n) -得到n区间的高端边界号 (4) LOW(n) -得到n区间的低端边界号 其中n表示数组的区间序号(即维数)。当n=1时可以缺省,默认为一维 数组。 在递减区间 LEFT=HIGH RIGHT=LOW 在递增区间 LEFT=LOW RIGHT=HIGH _ VHDL语言设计技术第八章 VHDL语言属性描述 12 TYPE matrix IS ARRAY(0 TO 7, 15 DOWNTO 0) OF std_logic; i = setup_time) REPORT “SETUP VIOLATON” SEVERITY ERROR; END IF; 8.2 函数类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 16 END PROCESS; Dff_process: PROCESS(clk) BEGIN IF clkLAST_VALUE=0 AND clkEVENT THEN q = setup_time) REPORT “SETUP VIOLATON” SEVERITY ERROR; END IF; _ VHDL语言设计技术第八章 VHDL语言属性描述 21 8.3 信号类属性 hold_check:PROCESS(clkDELAYED(2*hold_time) BEGIN IF (clkDELAYED(hold_time*2) = 1) AND (clkDELAYED(hold_time*2) EVENT) then ASSERT (dLAST_EVENT = 0 ns) OR (dLAST_EVENT WHEN int2 = WHEN int3 = WHEN int4 = WHEN int5 = END CASE; lock_out = FALSE; END PROCESS; END TEST 8.3 信号类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 27 根据所加属性可以得到一个数据类型值。只有一种: 类型名BASE 用该属性可以得到一个数据类型或子类型的基本类型, 并且使用时只能作为其他属性的前缀来使用。 例: Do_nothing:process(x) TYPE color IS (red,blue,green,yellow,brown,black); SUBTYPE color_gun IS color RANGE red to green; VARIABLE a:color; Begin a:=color_gunBASERIGHT; a:=colorBASELEFT; a:=color_gunBASESUCC(green); END PROCESS; 8.4 数据类型属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 28 该属性按指定输入参数可以得到一个确定的数组区间范围。 只能用于数组,只有2种: 1. RANGE 其中n 是输入参数,该属性可以得到一个递减顺序的自然数区间 : n downto 0 2. REVERSE_RANGE 该属性可以得到一个递增顺序的自然数区间:0 to n 8.5 数组区间类属性 _ VHDL语言设计技术第八章 VHDL语言属性描述 29 例: FUNCTION

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论