EDA实用技术 教学课件 ppt 作者 宋嘉玉 孙丽霞 第四章

上传人:E**** 文档编号:89348290 上传时间:2019-05-23 格式:PPT 页数:142 大小:842KB
返回 下载 相关 举报
EDA实用技术 教学课件 ppt 作者  宋嘉玉 孙丽霞 第四章_第1页
第1页 / 共142页
EDA实用技术 教学课件 ppt 作者  宋嘉玉 孙丽霞 第四章_第2页
第2页 / 共142页
EDA实用技术 教学课件 ppt 作者  宋嘉玉 孙丽霞 第四章_第3页
第3页 / 共142页
EDA实用技术 教学课件 ppt 作者  宋嘉玉 孙丽霞 第四章_第4页
第4页 / 共142页
EDA实用技术 教学课件 ppt 作者  宋嘉玉 孙丽霞 第四章_第5页
第5页 / 共142页
点击查看更多>>
资源描述

《EDA实用技术 教学课件 ppt 作者 宋嘉玉 孙丽霞 第四章》由会员分享,可在线阅读,更多相关《EDA实用技术 教学课件 ppt 作者 宋嘉玉 孙丽霞 第四章(142页珍藏版)》请在金锄头文库上搜索。

1、第4章 硬件描述语言VHDL,4.1 概述 4.2 VHDL的基本结构 4.3 VHDL的基本知识 4.4 VHDL的基本语句 4.5 VHDL设计举例 4.6 VHDL程序设计进阶 4.7 设计实例 4.8 其它硬件描述语言简介,4.1 概述,VHDL(VHSIC Hardware Description Language)是一种用于数字系统的设计和测试的硬件描述语言,是超高速集成电路硬件描述语言。 VHDL已成为电路设计的文档记录、设计描述的逻辑综合、电路仿真的标准,主要优点如下。 1是IEEE的一种标准,语法比较严格,便于使用、交流和推广。 2具有良好的可读性,既可以被计算机接受,也容易

2、被人们所理解。 3可移植性好。对于综合与仿真工具采用相同的描述,对于不同的平台也采用相同的描述。 4描述能力强,覆盖面广。支持从逻辑门层次的描述到整个系统的描述。 5是一种高层次的、与器件无关的设计。设计者没有必要熟悉器件内部的具体结构。,简介背景,美国国防部在80年代初提出了VHSIC(Very High Speed Integrated Circuit)计划,其目标之一是为下一代集成电路的生产,实现阶段性的工艺极限以及完成10万门级以上的设计,建立一项新的描述方法。1981年提出了一种新的HDL,称之为VHSIC Hardware Description Language,简称为VHDL,

3、这种语言的成就有两个方面: 描述复杂的数字电路系统 成为国际的硬件描述语言标准,VHDL的优点,用于设计复杂的、多层次的设计。支持设计库和设计的重复使用 与硬件独立,一个设计可用于不同的硬件结构,而且设计时不必了解过多的硬件细节。 有丰富的软件支持VHDL的综合和仿真,从而能在设计阶段就能发现设计中的Bug,缩短设计时间,降低成本。 更方便地向ASIC过渡 VHDL有良好的可读性,容易理解。,VHDL与计算机语言的区别,运行的基础 计算机语言是在CPURAM构建的平台上运行 VHDL设计的结果是由具体的逻辑、触发器组成的数字电路 执行方式 计算机语言基本上以串行的方式执行 VHDL在总体上是以

4、并行方式工作 验证方式 计算机语言主要关注于变量值的变化 VHDL要实现严格的时序逻辑关系,4.2 VHDL的基本结构,-eqcomp4 is a four bit equality comparator Library IEEE; use IEEE.std_logic_1164.all; entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0); equal :out std_logic); end eqcomp4; architecture dataflow of eqcomp4 is begin equal = 1 when

5、a=b else 0; End dataflow;,VHDL 大小写不敏感,eqcomp4.vhd,包,实体,构造体,文件名和实体名一致,每行;结尾,关键字begin,关键字end后跟实体名,关键字end后跟构造体名,库,4.2.1 库(Library) 库是专门存放预编译程序包(Package)的地方。库的使用方法是:在每个设计的开头声明选用的库名,用USE语句声明所选中的逻辑单元。 库的一般格式为 Library 库名; USE 库名.逻辑体名;,例: Library IEEE; -选用IEEE标准库 USE IEEE.std_logic_1164.ALL; -程序包名 USE IEEE.

6、std_logic_unsigned.ALL; -ALL表示使用库/程序包中的所有定义,4.2.2 实体(ENTITY) 实体用来描述设计的输入/输出信号。实体类似于原理图中的符号(Symbol),并不描述模块的具体功能。 实体的一般格式为 ENTITY 实体名 IS GENERIC (类属参数说明); PORT(端口说明); END 实体名; 注意:实体名可由设计者根据标识符的规则自由命名,但必须与VHDL程序的文件名相同。方括号中的项表示可以省略。,1类属参数说明 类属参数说明主要用于指定参数。 类属说明的一般格式为 GENERIC (常数名:数据类型:设定值; 常数名:数据类型:设定值)

7、; 例如:GENERIC (wide:int:=32; -说明宽度为32 tmp:int:=5ns); -说明延迟为5ns,2端口说明 端口说明的一般格式为 PORT(端口名:端口模式 数据类型; 端口名:端口模式 数据类型); (1)端口名 每个外部引脚的名称,在实体中必须是唯一的。 (2)端口模式 用来决定信号的流动方向。端口模式共有输入(IN)、输出(OUT)、双向(INOUT)和缓冲(BUFFER)四种类型,其默认(缺省)模式为输入模式。 (3)端口类型 即端口名的数据类型。在VHDL语言中有多种数据类型,但在逻辑电路中一般只用到以下几种:BIT和BIT_VECTOR、STD_LOGI

8、C和STD_LOGIC_VETOR 。,Out与Buffer的区别,Entity test1 is port(a: in std_logic; b,c: out std_logic ); end test1; architecture a of test1 is begin b = not(a); c = b;-Error end a;,Entity test2 is port(a: in std_logic; b : buffer std_logic; c: out std_logic ); end test2; architecture a of test2 is begin b = no

9、t(a); c = b; end a;,例 全加器的端口如图所示,则其端口的VHDL语言描述如下。 ENTITY Full_adder IS PORT( a,b,c: IN BIT ; sum,carry: OUT BIT ); END Full_adder; 全加器的端口图,4.2.3 结构体(ARCHITECTURE) 结构体用来描述设计的具体内容。此时可将实体视为“黑盒子”(Black Box),即只知道其外貌却不明确其内部逻辑。结构体则具体描述实体的功能以及如何实现这些功能。结构体是设计描述的核心。 结构体的一般格式为 ARCHITECTURE 结构体名 OF 实体名 IS 定义语句;

10、 BEGIN 功能描述语句; END 结构体名;,结构体(Architecture),描述实体的行为 结构体有三种描述方式 行为描述(behavioral) 数据流描述(dataflow) 结构化描述(structural),结构体行为描述,Architecture behavioral of eqcomp4 is begin comp: process (a,b) begin if a=b then equal = 1; else equal =0; end if; end process comp; end behavioral ;,高层次的功能描述,不必考虑在电路中到底是怎样实现的。,结

11、构体数据流描述 描述输入信号经过怎样的变换得到输出信号,Architecture dataflow1 of eqcomp4 is begin equal = 1 when a=b else 0; end dataflow1;,Architecture dataflow2 of eqcomp4 is begin equal = not(a(0) xor b(0) and not(a(1) xor b(1) and not(a(2) xor b(2) and not(a(3) xor b(3); end dataflow2;,当a和b的宽度发生变化时,需要修改设计,当宽度过大时,设计非常繁琐,结构

12、体结构化描述,architecture struct of eqcomp4 is begin U0:xnor2 port map(a(0),b(0),x(0); U1:xnor2 port map(a(1),b(1),x(1); U2:xnor2 port map(a(2),b(2),x(2); U3:xnor2 port map(a(3),b(3),x(3); U4:and4 port map(x(0),x(1),x(2),x(3),equal); end struct;,类似于电路的网络表,将各个器件通过语言的形式进行连接,与电路有一一对应的关系。 一般用于大规模电路的层次化设计时。,三种

13、描述方式的比较,例 全加器的结构体描述。 ARCHITECTURE adder OF Full_adder IS BEGIN sum=a XOR b XOR c; carry=(a AND b) OR (b AND c) OR (a AND c); END adder; 注意:结构体名由设计者根据标识符规则自由命名。,4.3 VHDL的基本知识,4.3.1 标识符(Identifiers) 标识符用来为常量、变量、信号、端口、子程序或参数等命名。由英文字母、数字、下划线组成,并必须遵守以下规则。 1标识符的第一个字符必须是字母。 2英文字母不区分大小写,也可大小写混用。 3最后一个字符不能是下

14、划线,且不允许连续出现两个下划线。 4关键字(保留字)不能用作标识符。 5标识符最长可以是32个字符。,4.3.2 关键字(Keyword) 关键字(保留字)是VHDL语言中具有特别意义的单词,只能用作固定的用途,用作标识符时会发生编译错误。,4.3.3 数据对象(Data Objects) VHDL的数据对象主要有常量、变量、信号和文件四种类型,必须“先说明,后使用”。,4.3.4 数据类型(Ddtd Types),类型变换函数,4.3.5 运算符 VHDL语言定义了丰富的运算操作符,主要有关系运算符、算术运算符、逻辑运算符、赋值运算符、关联运算符和其他运算符等,4.3.6 属性(Attri

15、butes) 属性是关于实体、结构体、类型、信号等的特性。一个对象可以同时具有多个属性,利用属性可以使程序更加简明。 属性的一般格式为 项目名属性标识符,4.4 VHDL语言的基本语句,4.4.1 顺序语句 4.4.2 并行语句,4.4.1 顺序(Sequential)语句 1. IF语句 2CASE语句 3LOOP语句 4NEXT语句 5EXIT语句 6等待(WAIT)语句 7空操作(NULL)语句,1.IF语句 IF语句是根据所指定的条件来确定执行哪些语句,通常有以下三种类型。 (1)用作门阀控制时的IF语句书写格式为 IF (条件) THEN 顺序处理语句; END IF;,(2)用作二

16、选择控制时的IF语句书写格式为 IF (条件) THEN 顺序处理语句1; ELSE 顺序处理语句2; END IF;,(3)用作多选择控制时的IF语句书写格式为 IF 条件1 THEN 顺序处理语句1; ELSIF 条件2 THEN 顺序处理语句2; ELSIF 条件N-1 THEN 顺序处理语句N-1; ELSE 顺序处理语句N; END IF;,例 使用IF语句描述如图所示的2选1电路 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux2 IS PORT(a,b,en:IN BIT; c:OUT BIT ); END mux2; ARCHITECTURE aa OF mux2 IS BEGIN P

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

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

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