EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素

上传人:w****i 文档编号:94656632 上传时间:2019-08-10 格式:PPT 页数:122 大小:435.50KB
返回 下载 相关 举报
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素_第1页
第1页 / 共122页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素_第2页
第2页 / 共122页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素_第3页
第3页 / 共122页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素_第4页
第4页 / 共122页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素_第5页
第5页 / 共122页
点击查看更多>>
资源描述

《EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素》由会员分享,可在线阅读,更多相关《EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt第8章_VHDL结构与要素(122页珍藏版)》请在金锄头文库上搜索。

1、第8章 VHDL结构与要素,EDA技术实用教程,8.1 实 体,8.1.1 实体语句结构,ENTITY 实体名 IS GENERIC ( 类属表 ); PORT ( 端口表 ); END ENTITY 实体名;,8.1.2 GENERIC类属说明语句,GENERIC( 常数名 : 数据类型 : 设定值 ;常数名 : 数据类型 : 设定值 ) ;,【例8-1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY andn IS GENERIC ( n : INTEGER ); -定义类属参量及其数据类型 PORT(a : IN STD_LOGIC_

2、VECTOR(n-1 DOWNTO 0);-用类属参量限制矢量长度 c : OUT STD_LOGIC); END; ARCHITECTURE behav OF andn IS BEGIN PROCESS (a) VARIABLE int : STD_LOGIC; BEGIN int := 1; FOR i IN aLENGTH - 1 DOWNTO 0 LOOP IF a(i)=0 THEN int := 0; END IF; END LOOP; c =int ; END PROCESS; END;,【例8-2】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.A

3、LL; ENTITY exn IS PORT(d1,d2,d3,d4,d5,d6,d7 : IN STD_LOGIC; q1,q2 : OUT STD_LOGIC); END; ARCHITECTURE exn_behav OF exn IS COMPONENT andn -元件调用声明 GENERIC ( n : INTEGER); PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); C : OUT STD_LOGIC); END COMPONENT ; BEGIN - 类属映射语句,定义类属变量,n赋值为2 u1: andn GENERIC MAP (n

4、 =2) PORT MAP (a(0)=d1,a(1)=d2,c=q1); u2: andn GENERIC MAP (n =5) - 定义类属变量,n赋值为5 PORT MAP (a(0)=d3,a(1)=d4,a(2)=d5, a(3)=d6,a(4)=d7, c=q2); END;,8.1.3 类属映射语句,8.1 实 体,【例8-3】 LIBRARY IEEE; -待例化元件 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL; USE IEEE.STD_LOGIC_unsigned.ALL; ENTITY addern

5、IS PORT (a, b: IN STD_LOGIC_VECTOR; result: out STD_LOGIC_VECTOR); END addern; ARCHITECTURE behave OF addern IS BEGIN result = a + b; END;,接上页 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL; USE IEEE.STD_LOGIC_unsigned.ALL; ENTITY adders IS GENERIC(msb_operand: INTEGER := 15

6、; msb_sum: INTEGER :=15); PORT(b: IN STD_LOGIC_VECTOR (msb_operand DOWNTO 0); result: OUT STD_LOGIC_VECTOR (msb_sum DOWNTO 0); END adders; ARCHITECTURE behave OF adders IS COMPONENT addern PORT ( a, b: IN STD_LOGIC_VECTOR; result: OUT STD_LOGIC_VECTOR); END COMPONENT; SIGNAL a: STD_LOGIC_VECTOR (msb

7、_sum /2 DOWNTO 0); SIGNAL twoa: STD_LOGIC_VECTOR (msb_operand DOWNTO 0);,BEGIN twoa twoa, b = b, result = result); U2: addern PORT MAP (a=b(msb_operand downto msb_operand/2 +1), b=b(msb_operand/2 downto 0), result = a); END behave;,接上页,图8-1 例8-3的逻辑电路图,8.1.4 PORT(端口)说明,8.1 实 体,PORT ( 端口名 : 端口模式 数据类型

8、; 端口名 : 端口模式 数据类型 ) ;,8.2 结构体,结构体的组成部分是: 对数据类型、常数、信号、子程序和元件等元素的说明部分。 述实体逻辑行为的、以各种不同的描述风格表达的功能描述语句。 以元件例化语句为特征的外部元件(设计实体)端口间的连接。,1. 结构体的一般语言格式,ARCHITECTURE 结构体名 OF 实体名 IS 说明语句 BEGIN 功能描述语句 END ARCHITECTURE 结构体名;,8.2 结构体,2. 结构体说明语句,3. 功能描述语句结构,进程语句,信号赋值语句,子程序调用语句,元件例化语句,8.3 子程序(SUBPROGRAM),8.3.1 函数(FU

9、NCTION),函数的语言表达格式如下: FUNCTION 函数名(参数表) RETURN 数据类型 -函数首 FUNCTION 函数名(参数表)RETURN 数据类型 IS - 函数体 说明部分 BEGIN 顺序语句 ; END FUNCTION 函数名;,【例8-4】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE packexp IS -定义程序包 FUNCTION max( a,b : IN STD_LOGIC_VECTOR) -定义函数首 RETURN STD_LOGIC_VECTOR ; FUNCTION func1 ( a,b

10、,c : REAL ) -定义函数首 RETURN REAL ; FUNCTION “*“ ( a ,b : INTEGER ) -定义函数首 RETURN INTEGER ; FUNCTION as2 (SIGNAL in1 ,in2 : REAL ) -定义函数首 RETURN REAL ; END ; PACKAGE BODY packexp IS FUNCTION max( a,b : IN STD_LOGIC_VECTOR) -定义函数体 RETURN STD_LOGIC_VECTOR IS BEGIN IF a b THEN RETURN a; ELSE RETURN b; END

11、 IF; END FUNCTION max; -结束FUNCTION语句 END; -结束PACKAGE BODY语句,接下页,LIBRARY IEEE; - 函数应用实例 USE IEEE.STD_LOGIC_1164.ALL; USE WORK.packexp.ALL ; ENTITY axamp IS PORT(dat1,dat2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); dat3,dat4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); out1,out2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); EN

12、D; ARCHITECTURE bhv OF axamp IS BEGIN out1 = max(dat1,dat2); -用在赋值语句中的并行函数调用语句 PROCESS(dat3,dat4) BEGIN out2 = max(dat3,dat4); -顺序函数调用语句 END PROCESS; END;,接上页,图8-2 例8-4的逻辑电路图,8.3.1 函数(FUNCTION),【例8-5】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY func IS PORT ( a : IN STD_LOGIC_VECTOR (0 to 2 )

13、 ; m : OUT STD_LOGIC_VECTOR (0 to 2 ) ); END ENTITY func ; ARCHITECTURE demo OF func IS FUNCTION sam(x ,y ,z : STD_LOGIC) RETURN STD_LOGIC IS BEGIN RETURN ( x AND y ) OR z ; END FUNCTION sam ; BEGIN PROCESS ( a ) BEGIN m(0) = sam( a(0), a(1), a(2) ) ; m(1) = sam( a(2), a(0), a(1) ) ; m(2) = sam( a(1

14、), a(2), a(0) ) ; END PROCESS ; END ARCHITECTURE demo ;,8.3.2 重载函数(OVERLOADED FUNCTION),【例8-6】(本例MaxplusII不支持) LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; PACKAGE packexp IS -定义程序包 FUNCTION max( a,b :IN STD_LOGIC_VECTOR) -定义函数首 RETURN STD_LOGIC_VECTOR ; FUNCTION max( a,b :IN BIT_VECTOR) -定义函数首 RETU

15、RN BIT_VECTOR ; FUNCTION max( a,b :IN INTEGER ) -定义函数首 RETURN INTEGER ; END; PACKAGE BODY packexp IS FUNCTION max( a,b :IN STD_LOGIC_VECTOR) -定义函数体 RETURN STD_LOGIC_VECTOR IS BEGIN IF a b THEN RETURN a; ELSE RETURN b; END IF; END FUNCTION max; -结束FUNCTION语句 FUNCTION max( a,b :IN INTEGER) -定义函数体 RETURN INTEGER IS BEGIN,接下页,IF a b THEN RETURN a; ELSE RETURN b; END IF; END FUNCTION max; -结束FUNCTION语句 FUNCTION max( a,b :IN BIT_VECTOR) -定义函数体 RETURN BIT_VECTOR IS BEGIN IF a b THEN RETURN a

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号