EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章

上传人:E**** 文档编号:89190165 上传时间:2019-05-21 格式:PPT 页数:59 大小:207.50KB
返回 下载 相关 举报
EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章_第1页
第1页 / 共59页
EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章_第2页
第2页 / 共59页
EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章_第3页
第3页 / 共59页
EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章_第4页
第4页 / 共59页
EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章》由会员分享,可在线阅读,更多相关《EDA技术及应用 教学课件 ppt 作者 孙宏国 第2章(59页珍藏版)》请在金锄头文库上搜索。

1、EDA技术及应用,盐城工学院电气工程学院 机械工业出版社 2012.12,第2章 VHDL语言程序基础,2.1 概述,VHDL语言具有以下主要优点:,1)VHDL具有强大的功能,覆盖面广,描述能力强,可用于从门级、寄存器传输级(Register Transfer Language,RTL)直至系统级的描述、仿真和综合。,2)VHDL具有良好的可读性。,3)VHDL具有良好的可移植性。,4)使用VHDL可以延长设计的生命周期。,5)VHDL支持对大规模设计的分解和已有设计的再利用。,第2章 VHDL语言程序基础,2.1 概述,一个完整的VHDL语言程序通常包含以下5个部分:,实体(entity)

2、,构造体(architecture),配置(configuration),包集合(package),库(Library),第2章 VHDL语言程序基础,2.2.1 VHDL语言程序设计的基本单元,所谓VHDL语言程序设计的基本单元(design unit),就是VHDL语言的一个基本设计实体。一个基本设计单元,简单的可以是一个与门(and gate),复杂的可以是一个微处理器或一个系统。,2.2 VHDL语言程序的结构,第2章 VHDL语言程序基础,2.2 VHDL语言程序的结构,2.2.2 实体,entity 实体名is 类属参数说明; 端口说明; end实体名;,类属参数说明必须放在端口说

3、明之前,用于指定参数。,第2章 VHDL语言程序基础,2.2 VHDL语言程序的结构,端口说明是对基本设计实体(单元)与外部接口的描述,也可以说是对外部引脚信号的名称、数据类型和输入输出方向的描述。其一般书写格式如下: port(端口名,端口名: 方向 数据类型名; 端口名,端口名: 方向 数据类型名);,端口模式说明 :,第2章 VHDL语言程序基础,2.2 VHDL语言程序的结构,2.2.3 构造体,一个构造体的具体结构描述如下:,architecture 构造体名 of 实体名 is 定义语句内部信号、常数、数据类型、函数等的定义; begin 并行处理语句; end构造体名;,第2章

4、VHDL语言程序基础,2.2 VHDL语言程序的结构,例2-3 entity mux is port(d0,d1:in bit; sel:in bit; q:out bit); end mux; architecture dataflow of mux is begin q=(d0 and sel)or(not sel and d1); end dataflow;,第2章 VHDL语言程序基础,2.2 VHDL语言程序的结构,2.2.4 配置,配置语句的基本书写格式如下: configuration 配置名of 实体名 is 语句说明; end配置名;,configuration 配置名of

5、实体名 is for选配构造体名 -此处无“;”号 end for; end配置名;,最简单的默认配置格式为:,第2章 VHDL语言程序基础,2.3 VHDL设计资源,2.3.1 库,1. 库的种类,IEEE库、std库、ASIC库、work库和用户定义库。,表2-1 IEEE两个标准库“std”和“ieee”程序包的内容,第2章 VHDL语言程序基础,2.3 VHDL设计资源,2. 库的使用,library IEEE; use IEEE.std_logic_1164.all;,2.3.2包集合,包集合的结构如下:,package包集合名is 说明语句; 包集合标题 end包集合名;,pack

6、age body包集合名 is 说明语句; 包集合体 end body;,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.1 标识符,使用时应注意以下几点: 1)VHDL不区分大小写; 2)标识符一定要以字母开头; 3)下划线不能放在结尾; 4)下划线不能连用。,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.2 数据对象,数据对象主要有3种,即: 常量(constant)、变量(variable)和信号(signal)。,1. 常量,常量是全局量,在构造体描述、程序包说明、实体说明、过程说明、函数调用说明和进程说明中使用。,constant常量名:数据类型:=

7、表达式;,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2. 变量,变量是一个局部量,只能在进程和子程序中使用。,variable 变量名:数据类型:=初始值;,定义变量的语法格式如下:,赋值语句的语法格式如下:,目标变量名:=表达式;,例:a:=b+c;,第2章 VHDL语言程序基础,2.4 VHDL语言要素,3. 信号,信号的定义格式如下:,signal信号名:数据类型:=初始值;,信号的赋值语句表达式如下:,目标信号名=表达式;,例:q=count;,第2章 VHDL语言程序基础,2.4 VHDL语言要素,4.三者的使用比较,(3)变量赋值立即生效;信号赋值时,语句执行也不会立

8、即发生代入。,(1)常量相当于电路中的恒定电平,如GND或VCC接口,(2)符号 变量为“:=”;信号为“=”,第2章 VHDL语言程序基础,2.4 VHDL语言要素,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.3 VHDL的数据类型,2. 用户定义的数据类型,(1)枚举类型。,(2)整数类型、实数类型。,(3)数组类型。,(4)时间类型(物理类型)。,(5)记录类型。,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.3 VHDL的数据类型,3. 用户定义的子类型,4. 数据类型的转换,5. 数据类型的限定,6. IEEE标准“std_logic”,“std

9、_logic_vector”,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.4 VHDL运算符,1. 逻辑运算符,not 取反; and 与; or 或; nand 与非; nor 或非: xor 异或。,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.4 VHDL运算符,2. 算术运算符,+ 加; - 减; * 乘; 除; mod 求模; rem 取余; + 正(一元运算); - 负(一元运算); * 指数; abs 取绝对值,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.4 VHDL运算符,3. 关系运算符, 等于; /= 不等于; 小于

10、; 大于等于。,4. 并置运算符,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.5 VHDL的属性,1. 数值类属性,2. 函数类属性,3. 范围类属性,第2章 VHDL语言程序基础,2.4 VHDL语言要素,2.4.6 常见错误,entity many_errors is port -line1 a:bit_vector(3 to 0); -line2 b:out std_logic_vector(0 to3); -line3 c:in bit_vector(5 downto 0);) -line4 end many_errors -line5 architecture n

11、ot_so_good of many_errors -line6 begin -line7 my_1abe1:process -line8 begin -line9 if c=x“f“ then -line10 b=a; -line11 else -line12 b=0101; -line13 end if; -line14 end process; -line15 end not_so_good -line16,第2章 VHDL语言程序基础,2.5 VHDL语言的描述方式,2.5.1 行为描述,architecture behavioral of eqcomp4 is begin proce

12、ss(a,b) begin if a=b then equals=1; else equals=0; end if; end process; end behavioral;,第2章 VHDL语言程序基础,2.5.2 数据流描述,2.5 VHDL语言的描述方式,library IEEE; use IEEE.std_logic_1164.all; entity eqcomp4 is port(a,b:bit_vector(3 downto 0); equals:out bit); end eqcomp4; architecture dataflow of eqcomp4 is begin equ

13、als=1 when (a=b) else 0; end behavioral;,第2章 VHDL语言程序基础,2.5 VHDL语言的描述方式,2.5.3 结构描述,architecture struct of eqcomp4 is signal x :std_logic_vector(0 to 3); begin u0:nxor2 port map(a(0),b(0),x(0); u1:nxor2 port map(a(1),b(1),x(1); u2:nxor2 port map(a(2),b(2),x(2); u3:nxor2 port map(a(3),b(3),x(3); u4:an

14、d4 port map(x(0),x(1),x(2),x(3),equals); end struct;,第2章 VHDL语言程序基础,2.6 VHDL顺序语句,(1)赋值语句; (2)转向控制语句; (3)等待语句; (4)子程序调用语句; (5)返回语句; (6)空操作语句。,第2章 VHDL语言程序基础,2.6 VHDL顺序语句,2.6.1 赋值语句,赋值语句的功能就是将一个值或一个表达式的运算结果传递给某一数据对象,如信号或变量,或由此组成的数组。,变量赋值目标:=赋值源; 信号赋值目标=赋值源;,赋值语句中的赋值目标有4种类型:,(1)标识符赋值目标 (2)数组单元素赋值目标,(3)

15、段下标元素赋值目标 (4)集合块赋值目标。,第2章 VHDL语言程序基础,2.6 VHDL顺序语句,2.6.2 转向控制语句,1. if语句,if条件句then 顺序语句 elsif 条件句then -注意:此处是elsif,而不是else if 顺序语句 else 顺序语句 end if;,第2章 VHDL语言程序基础,2.6 VHDL顺序语句,elsif可允许在一个语句中出现多重条件,每一个if语句都必须有一个对应的end if语句。if语句可嵌套使用,但嵌套层数不宜过多。在含有多个互不相关信号的条件时,采用case语句程序的可读性比较好。,第2章 VHDL语言程序基础,2.6 VHDL顺

16、序语句,2. case语句,case语句的结构如下: case 表达式 is when 选择值=顺序语句; when 选择值=顺序语句; when others=顺序语句; end case;,选择值可以有4种不同的表达方式:单个普通数值,如4;数值选择范围,如(2 to 4),表示取值2、3或4;并列数值,如3|5,表示取值为3或者5;混合方式,以上三种方式的混合。,第2章 VHDL语言程序基础,2.6 VHDL顺序语句,使用case语句需注意以下几点:,2)除非所有条件句中的选择值能完整覆盖case语句中表达式的取值,否则最末一个条件句中的选择必须用“others”表示。,3)case语句中每一条件句的选择只能出

展开阅读全文
相关资源
相关搜索

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

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