6.VHDL硬件描述语言.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《6.VHDL硬件描述语言.ppt》由会员分享,可在线阅读,更多相关《6.VHDL硬件描述语言.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 VHDL1 VHDL概述概述 2 VHDL2 VHDL语言基础知识语言基础知识3 VHDL3 VHDL的基本语句的基本语句4 VHDL4 VHDL的子程序的子程序 VHDL语言(语言(VHSIC Hardware Description Language,甚高速集成电路硬件描述语言)是,甚高速集成电路硬件描述语言)是一种一种设计、仿真、综合设计、仿真、综合的标准硬件描述语言,是的标准硬件描述语言,是对可编程逻辑器件进行开发与设计的重要工具,对可编程逻辑器件进行开发与设计的重要工具,其优点是:支持自上而下和基于库的设计,支持其优点是:支持自上而下和基于库的设计,支持范围广,具有多层次描述系统
2、硬件功能的能力。范围广,具有多层次描述系统硬件功能的能力。VHDL语言已成为语言已成为IEEE的一种工业标准,是实现的一种工业标准,是实现信息系统硬件开发所必备的知识和技能。信息系统硬件开发所必备的知识和技能。VHDL概述概述 一、一、VHDLVHDL语言及产生背景语言及产生背景 VHDL(Very High Speed Integrated Circuit Hardware Description Language)即超高速集即超高速集成电路硬件描述语言。成电路硬件描述语言。美国国防部在美国国防部在2020世纪世纪8080年代初为其超高速年代初为其超高速集成电路集成电路VHSICVHSIC计
3、划提出的硬件描述语言,它计划提出的硬件描述语言,它是是硬件设计者和硬件设计者和EDAEDA工具之间的界面。设计者使用工具之间的界面。设计者使用HDLHDL来描述自己的设计,并把这个描述告诉来描述自己的设计,并把这个描述告诉EDAEDA工具,最后在工具,最后在EDAEDA工具的帮助下进行详细地设计工具的帮助下进行详细地设计及验证。及验证。产生背景产生背景:美美国国国国防防部部电电子子系系统统项项目目有有着着众众多多的的承承包包商商,他他们们各各自自建建立立和和使使用用自自己己的的电电路路硬硬件件描描述述语语 言言,这这就就使使得得各各公公司司之之间间的的设设计计不不能能被被重重复复利利用用,造造
4、成了信息交换和维护方面的困难。成了信息交换和维护方面的困难。为为解解决决此此问问题题,2020世世纪纪8080年年代代初初美美国国国国防防部部制制定定了了VHDLVHDL,以以作作为为各各承承包包商商之之间间提提交交复复杂杂电电路路设计文档的一种标准方案。设计文档的一种标准方案。19871987年年1212月月,VHDLVHDL被被正正式式接接受受为为国国际际标标准准,编编号号为为IEEE IEEE Std1076-1987,Std1076-1987,即即VHDL87VHDL87。19931993年年被更新为被更新为IEEE Std1164-1993,IEEE Std1164-1993,即即V
5、HDL93VHDL93。功能强大,描述力强。功能强大,描述力强。可移植性好。可移植性好。研制周期短,成本低。研制周期短,成本低。可以延长设计的生命周期。可以延长设计的生命周期。具有向具有向ASICASIC移植的能力。移植的能力。HDL语言设计硬件电路的优点:语言设计硬件电路的优点:系统中可大量采用芯片系统中可大量采用芯片 采用系统早期仿真采用系统早期仿真 降低了硬件电路设计难度降低了硬件电路设计难度二、二、VHDLVHDL的特点的特点library ieee;use ieee.std_logic_unsigned.all;entity test_02 is port(a:in integer
6、range 0 to 2;b:in integer range 0 to 2;c:in integer range 0 to 2;x:out integer range 0 to 4;y:out integer range 0 to 4 );end test_02;architecture test_02 of test_02 isbeginprocess(a,b,c)variable d:integer range 0 to 2;begin d:=a;x=b+d;d:=c;y=b+d;end process;end test_02;一、一、VHDLVHDL的程序结构的程序结构五五个个部部分分
7、实体(实体(EntityEntity)结构体结构体(Architecture)(Architecture)配置(配置(ConfigurationConfiguration)程序包(程序包(PackagePackage)库库(Library)(Library)可选可选VHDL语言基础知识语言基础知识VHDLVHDL源程序基本格式举例:源程序基本格式举例:ENTITY test ISPORT(input_pin_name:IN bit;output_pin_name:OUT bit);END test;ARCHITECTURE test_body OF test ISBEGINoutput_pin
8、_name=input_pin_name;END test_body;关键词关键词VHDL 实体实体逻辑功能逻辑功能此两处必须同名此两处必须同名端口定义部分端口定义部分逻辑行为描述逻辑行为描述Must be the sameas the save TEST.VHDfileLIBRARY LIBRARY 库名库名;库库USE USE 库名库名.程序包名程序包名.;.;程序包程序包ENTITY ENTITY 实体名实体名 ISIS 实体实体PORT(PORT(););END END 实体名实体名;ARCHITECTURE ARCHITECTURE 结构体名结构体名 OF OF 实体名实体名结构体结
9、构体()END END 结构体名结构体名;VHDLVHDL源文件基本格式源文件基本格式 实体和结构体是实体和结构体是VHDLVHDL设计文件的两个基本组设计文件的两个基本组成部分。成部分。实体实体描述设计系统的外部接口信号;描述设计系统的外部接口信号;结结构体构体用于描述系统的行为、系统数据的流程或者用于描述系统的行为、系统数据的流程或者系统组织结构形式(即系统的内部电路)。系统组织结构形式(即系统的内部电路)。配置配置用于从库中选取所需元件安装到设计单用于从库中选取所需元件安装到设计单元的实体中。元的实体中。包集合包集合存放各设计模块能共享的数据类型、存放各设计模块能共享的数据类型、常数、子
10、程序等。常数、子程序等。库库用于存放已编译的实体、结构体、包集合用于存放已编译的实体、结构体、包集合和配置。和配置。1 1、实体、实体格式格式ENTITYENTITY 实体名实体名 ISIS GENERICGENERIC(类属表类属表););PORTPORT(端口表端口表););ENDEND 实体名实体名;实体实体说明所设计的逻辑电路的输入、输说明所设计的逻辑电路的输入、输出信号及其特性(输入、输出、双向)出信号及其特性(输入、输出、双向)说明ENTITY test ISPORT(input_pin_name:IN bit;output_pin_name:OUT bit);END testPO
11、RTPORT (端口名端口名:端口模式端口模式 数据类型数据类型;端口名端口名:端口模式端口模式 数据类型数据类型););端口名是设计者为实体的每一个对外通道所取的名字端口名是设计者为实体的每一个对外通道所取的名字 端口模式是指这些通道上的数据流动方式端口模式是指这些通道上的数据流动方式 数据类型是指端口上流动的数据的表达格式或取值类数据类型是指端口上流动的数据的表达格式或取值类型,型,VHDLVHDL要求只有相同数据类型的端口信号和操作数才要求只有相同数据类型的端口信号和操作数才能相互作用。能相互作用。PORTPORT说明语句说明语句是对一个设计实体界面的说明及对设是对一个设计实体界面的说明
12、及对设计实体与外部电路的接口通道的说明,其中包括对每一计实体与外部电路的接口通道的说明,其中包括对每一接口的输入输出模式和数据类型的定义。接口的输入输出模式和数据类型的定义。格式格式说明ENTITY test ISPORT(input_pin_name:IN bit;output_pin_name:OUT bit);END test IN IN 输入,信号只能自端口到实体输入,信号只能自端口到实体 OUTOUT 输出,信号只能自实体到端口输出,信号只能自实体到端口 INOUTINOUT 双向,信号既可输入又可输出双向,信号既可输入又可输出 BUFFERBUFFER 缓冲,信号自实体输出,又有缓
13、冲,信号自实体输出,又有 内部反馈内部反馈Entity端口模式端口模式OutOut与与BufferBuffer的区别的区别LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;Entity test1 isEntity test1 is port(a:in std_logic;port(a:in std_logic;b,c:b,c:outout std_logic std_logic ););end test1;end test1;architecture a of test1 isa
14、rchitecture a of test1 is begin begin b=not(a);b=not(a);c=b;c=b;end a;end a;LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;Entity test2 isEntity test2 is port(a:in std_logic;port(a:in std_logic;b:b:bufferbuffer std_logic;std_logic;c:out std_logic c:out std_logic );
15、);end test2;end test2;architecture a of test2 isarchitecture a of test2 isbeginbegin b=not(a);b=not(a);c=b;c=b;end a;end a;2 2、结构体、结构体格式格式 对数据类型、常数、信号、子程序和元件对数据类型、常数、信号、子程序和元件 等元素的说明等元素的说明 描述实体逻辑行为描述实体逻辑行为ARCHITECTUREARCHITECTURE 结构体名结构体名 OFOF 实体名实体名 ISIS 说明语句说明语句 BEGINBEGIN 功能描述语句功能描述语句 ENDEND 结构体名
16、结构体名;功能功能ARCHITECTURE test_body OF test ISBEGINoutput_pin_name=input_pin_name;END test_bodyARCHITECTUREARCHITECTURE one one OFOF mux21a mux21a ISISBEGINBEGIN y=a WHEN s=0 ELSE y=a WHEN s=0 ELSE b ;b ;ENDEND one;one;结构体结构体2 2选选1 1多路选择器的多路选择器的VHDLVHDL结构体描述结构体描述ENTITYENTITY mux21a mux21a ISIS PORTPORT(
17、a,b:(a,b:ININ BIT;BIT;s:s:ININ BIT;BIT;y:y:OUTOUT BIT );BIT );ENDEND mux21a;mux21a;ARCHITECTUREARCHITECTURE one one OFOF mux21a mux21a ISIS BEGINBEGIN y=a y=a WHENWHEN s=0 s=0 ELSEELSE b ;b ;ENDEND one;one;2 2选选1 1多路选择器的多路选择器的VHDLVHDL描述描述3 3、配置、配置CONFIGURATIONCONFIGURATION 配置名配置名 OF OF 实体名实体名 ISIS 说
18、明语句说明语句;END END 配置名;配置名;格式格式 这种配置用于选择不包含块(这种配置用于选择不包含块(BLOCKBLOCK)和元件和元件(COMPONENTSCOMPONENTS)的构造体。在配置语句中只包含有的构造体。在配置语句中只包含有实体所选配的构造体名,其他什么也没有。实体所选配的构造体名,其他什么也没有。说明 描述层与层之间的连接关系以及实体与构造体描述层与层之间的连接关系以及实体与构造体之间的连接关系。在仿真时利用配置选择不同的构之间的连接关系。在仿真时利用配置选择不同的构造体。造体。4 4、包集合、包集合 PACKAGEPACKAGE 包集合名包集合名 ISIS 说明语句
19、说明语句;ENDEND 包集合名;包集合名;PACKAGE BODYPACKAGE BODY 包集合名包集合名 ISIS 说明语句说明语句;END BODYEND BODY;一个包集合由包集合标题和包集合体两大部分组成。一个包集合由包集合标题和包集合体两大部分组成。包集合体是一个可选项。包集合体是一个可选项。包集合用于封装属于多个设计单元分享的公共信息。包集合用于封装属于多个设计单元分享的公共信息。包集合由包说明(说明数据类型、子程序和常量等)和包体(它含包集合由包说明(说明数据类型、子程序和常量等)和包体(它含有子程序体与现有的延时常数)所组成。有子程序体与现有的延时常数)所组成。子程序由执
20、行公共操作的过程和函数组成。子程序由执行公共操作的过程和函数组成。包集合是分享属于实体数据的一种机制,把子程序、数据类型和元包集合是分享属于实体数据的一种机制,把子程序、数据类型和元件说明看成建立设计的工具,则包集合可看成工具箱。件说明看成建立设计的工具,则包集合可看成工具箱。包集合的使用:use work.包集合名.all;5 5、库、库格式格式USEUSE语句的使用有两种常用格式:语句的使用有两种常用格式:USE USE 库名库名.程序包名程序包名.项目名项目名 ;USE USE 库名库名.程序包名程序包名.ALL ALL;LIBRARY IEEE;LIBRARY IEEE;USE IEE
21、E.STD_LOGIC_1164.STD_ULOGIC;USE IEEE.STD_LOGIC_1164.STD_ULOGIC;USE IEEE.STD_LOGIC_1164.RISING_EDGE;USE IEEE.STD_LOGIC_1164.RISING_EDGE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;LIBRARYLIBRARY 库名;库名;USEUSE 库名库名.程序包名程序包名.All All;例IEEEIEEE库:库:IEEEIEEE标准库标准库使用需声明使用需声明STDSTD库:库:VHDLVHDL标准库标
22、准库使用无需声明使用无需声明ASICASIC库:库:EDAEDA厂商提供库厂商提供库使用需声明使用需声明WORKWORK库:现行作业库,当前工作目录的所有设计库:现行作业库,当前工作目录的所有设计使用无需声明使用无需声明USERUSER库:用户自定义库库:用户自定义库使用需声明使用需声明STD_LOGIC_1164 STD_LOGIC_1164 程序包程序包STD_LOGIC_ARITH STD_LOGIC_ARITH 程序包程序包STD_LOGIC_UNSIGNED STD_LOGIC_UNSIGNED 程序包程序包VHDLVHDL库的种类库的种类库说明的作用范围库说明的作用范围 从一个实体
23、说明开始到其所属的结构体、配置为止,从一个实体说明开始到其所属的结构体、配置为止,当一个源程序中出现两个以上的实体时,必须重复说明。当一个源程序中出现两个以上的实体时,必须重复说明。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY example1 IS()ENDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY example2 IS()END二、二、VHDLVHDL的语言元素的语言元素 一)一)VHDLVHDL文字规则文字规则 1 1 数字型文字数字型文字 整数文字整数文字 实数文字实数文字 以数制基
24、数表示的文字以数制基数表示的文字 2 2 字符串型文字字符串型文字 文字字符串文字字符串 数位字符串数位字符串VHDL语言基础知识语言基础知识3 3 标识符标识符 VHDLVHDL中的标识符有:中的标识符有:保留标识符保留标识符即关键字或保留字即关键字或保留字短标识符短标识符由用户创建的符合由用户创建的符合VHDLVHDL8787规定规定的标识符的标识符扩展标识符扩展标识符VHDLVHDL9393规定的标识符规定的标识符1)1)保留标识符保留标识符 保留标识符是保留标识符是VHDLVHDL的的关键字或保留字,如:关键字或保留字,如:2)2)短标识符短标识符VHDLVHDL的短标识符是遵守以下规
25、则的字符序列:的短标识符是遵守以下规则的字符序列:有效字符:英文字符(有效字符:英文字符(a a-z z,A A-Z Z),),数字(数字(0 0-9 9)和下划线)和下划线(_ _)必须以英文字母打头必须以英文字母打头下划线(下划线(_ _)的前后都必须有英文字母或数)的前后都必须有英文字母或数字字EDAEDA工具综合、仿真时,短标识符不区分大小写工具综合、仿真时,短标识符不区分大小写二)对象二)对象 VHDLVHDL有四类对象:有四类对象:常量常量(CONSTANTCONSTANT)是一个在仿真和综合过程中固定不变是一个在仿真和综合过程中固定不变的值,可通过其标识符来引用。的值,可通过其标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 硬件 描述 语言
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内