欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    VHDL程序基本结构课件.ppt

    • 资源ID:1289783       资源大小:187.44KB        全文页数:52页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VHDL程序基本结构课件.ppt

    第3章 VHDL的语法结构及编程,3.1 概述 3.2 VHDL程序基本结构 3.3 VHDL语言要素 3.4 VHDL顺序语句 3.5 VHDL并行语句 3.6 子程序(SUBPROGRAM) 3.7 VHDL描述风格,VHDL: VHSIC Hardware Description Language.,.,第3章 VHDL的语法结构及编程 3.1 概述 VHDL:,HDL-Hardware Description Language 一种用于描述数字电路的功能或行为的语言。目的是提为电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。,优点: HDL设计的电路能获得非常抽象级的描述。如基于RTL(Register Transfer Level)描述的IC,可用于不同的工艺。 HDL设计的电路,在设计的前期,就可以完成电路的功能级的验证。 HDL设计的电路类似于计算机编程。,常用的HDL语言:VHDL 、Verilog HDL,3.1 概 述,.,HDL-Hardware Description La,3.1.1 常用硬件描述语言简介 常用硬件描述语言有VHDL、Verilog和ABEL语言。下面从使用方面将三者进行对比。 (1) 逻辑描述层次其层次由高到低依次可分为行为级、RTL级和门电路级。,.,3.1.1 常用硬件描述语言简介.,VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。,.,VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,(2) 设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节;后两者需要设计者了解电路的结构细节(3) 综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。VHDL语言源程序的综合通常要经过行为级RTL级门电路级的转化。而Verilog语言和ABEL语言源程序的综合过程要经过RTL级门电路级的转化。,.,(2) 设计要求:.,(4) 支持的EDA工具:支持VHDL和Verilog的EDA工具很多,但支持ABEL的综合器仅仅Dataio一家。(5) 国际化程度:VHDL和Verilog已成为IEEE标准,而ABEL正朝国际化标准努力。,.,(4) 支持的EDA工具:.,3.1.2 VHDL的优点 VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底, VHDL被IEEE ( The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言。,.,3.1.2 VHDL的优点.,1993年,IEEE对VHDL进行了修订,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,将承担起几乎全部的数字系统设计任务。,.,.,(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力 (2) VHDL具有丰富的仿真语句和库函数,能查验设计系统的功能可行性,随时可对系统进行仿真模拟,并做出判断。,应用VHDL进行工程设计的优点是多方面的,具体如下:,.,(1) 与其他的硬件描述语言相比,VHDL具,(3) 用VHDL完成一个确定的设计,可以利用EDA工具把VHDL描述设计转变成门级网表。降低了开发成本。,(4) VHDL对设计的描述具有相对独立性。 (5) VHDL具有类属描述语句和子程序调用等功能,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。,.,(3) 用VHDL完成一个确定的设计,可以利用EDA工,3.1.3 VHDL程序设计约定(1) 语句结构描述中方括号“ ”内的内容为可选内容。(2) 对于VHDL的编译器和综合器来说,程序文字的大小写是不加区分的。本书一般使用大写。(3) 程序中的注释使用双横线“-”。在VHDL程序的任何一行中,双横线“-”后的文字都不参加编译和综合。,.,3.1.3 VHDL程序设计约定.,(4) 为了便于程序的阅读与调试,书写和输入程序时,使用层次缩进格式,同一层次的对齐,低层次的较高层次的缩进两个字符。 (5) 考虑到大多数开发工具要求源程序文件的名字与实体名必须一致, 建议各个源程序文件的命名均与其实体名一致。,.,(4) 为了便于程序的阅读与调试,书写和输入程序时,使用,使用VHDL语言设计一个硬件电路时,至少需要描述三个方面的信息: 设计是在什么规范范围内设计的,这就是库、程序包使用说明; 所设计的硬件电路与外界的接口信号,这就是设计实体的说明; 所设计的硬件电路其内部各组成部分的逻辑关系以及整个系统的逻辑功能,这就是该设计实体对应的结构体说明。,3.2 VHDL程序基本结构,.,使用VHDL语言设计一个硬件电路时,至,1设计思路 根据数字电子技术的知识,我们知道,74LS00是一个四2输入与非门,亦即该芯片由四个2输入与非门组成,因此我们设计时可先设计一个2输入与非门(如图3.1(a)所示),再由四个2输入与非门构成一个整体MY74LS00(如图3.1(b)所示)。,例:简单VHDL语言的设计,.,1设计思路例:简单VHDL语言的设计.,图3.1 MY74LS00的设计过程示意图,.,图3.1 MY74LS00的设计过程示意图 .,2VHDL源程序1) 2输入与非门NAND2的逻辑描述- IEEE库及其中程序包的使用说明 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;-实体NAND2的说明 ENTITY NAND2 IS PORT(A,B:IN STD_LOGIC; Y:OUT STD_LOGIC); END ENTITY NAND2;,.,2VHDL源程序.,-实体NAND2的结构体ART1的说明 ARCHITECTURE ART1 OF NAND2 IS BEGIN Y=A NAND B; END ARCHITECTURE ART1;,.,-实体NAND2的结构体ART1的说明 .,2) MY74LS00的逻辑描述- IEEE库及其中程序包的使用说明 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;-实体MY74LS00的说明 ENTITY MY74LS00 IS PORT(A1,B1,A2,B2,A3,B3,A4,B4: IN STD_LOGIC; Y1,Y2,Y3,Y4: OUT STD_LOGIC); END ENTITY MY74LS00;,.,2) MY74LS00的逻辑描述.,-实体MY74LS00的结构体ART2的说明ARCHITECTURE ART2 OF MY74LS00 IS -元件调用声明 COMPONENT NAND2 IS PORT(A,B:IN STD_LOGIC; Y:OUT STD_LOGIC); END COMPONENT NAND2;-元件连接说明,.,-实体MY74LS00的结构体ART2的说明.,BEGINU1: NAND2 PORT MAP(A=A1,B=B1,Y=Y1);U2:NAND2 PORT MAP(A=A2,B=B2,Y=Y2);U3:NAND2 PORT MAP(A3, B3, Y3);U4:NAND2 PORT MAP(A4, B4, Y4); END ARCHITECTURE ART2;,.,BEGIN.,3说明与分析 (1) 整个设计包括两个设计实体,分别为NAND2和MY74LS00,其中,实体MY74LS00为顶层实体。 (2) 实体NAND2定义了2输入与非门NAND2的引脚信号A、B(输入)和Y(输出),其对应的结构体ART1描述了输入与输出信号间的逻辑关系,即将输入信号A、B与非后传给输出信号端Y。,.,3说明与分析.,(3) 实体MY74LS00及对应的结构体ART2描述了一个如图所示的四2输入与非门。由其结构体的描述可以看到,它是由四个2输入与非门构成的。 (4) 在MY74LS00接口逻辑VHDL描述中,根据图3.1(b)右侧的MY74LS00的原理图,实体MY74LS00定义了引脚的端口信号属性和数据类型。 (5) 在结构体ART2中,COMPONENTEND COMPONENT 语句结构对所要调用的NAND2元件作了声明。,.,(3) 实体MY74LS00及对应的结构体ART2,(6) 实体MY74LS00引导的逻辑描述也是由三个主要部分构成的,即库、程序包使用说明,实体说明和结构体。,.,(6) 实体MY74LS00引导的逻辑描述也是由三个主要部,实体(Entity):描述所设计的系统的外部接口信号,定义电路设计中所有的输入和输出端口; 结构体 (Architecture):描述系统内部的结构和行为; 包集合 (Package):存放各设计模块能共享的数据类型、常数和子程序等; 配置 (Configuration):指定实体所对应的结构体; 库 (Library):存放已经编译的实体、结构体、包集合和配置。,.,实体(Entity):描述所设计的系统的外部接口信号,定,LIBRARY IEEE; - 库、程序包的说明调用 USE IEEE.Std_Logic_1164.ALL;ENTITY FreDevider IS - 实体声明PORT(Clock: IN Std_logic; Clkout: OUT Std_logic);END;ARCHITECTURE Behavior OF FreDevider IS - 结构体定义SIGNAL Clk:Std_Logic;BEGIN PROCESS(Clock)BEGIN IF rising_edge(Clock) THEN Clk=NOT Clk; END IF;END PROCESS;Clkout=Clk;END;,VHDL的基本设计单元结构:程序包说明、实体说明和结构体说明三部分。,.,LIBRARY IEEE;,3.2.1 实体(Entity),ENTITY 实体名 IS GENERIC(常数名:数据类型:设定值)PORT( 端口名1:端口方向 端口类型; 端口名2:端口方向 端口类型; . . 端口名n:端口方向 端口类型);END 实体名;,实体描述了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。,.,3.2.1 实体(Entity)ENTITY 实体名 IS,ENTITY FreDevider ISPORT(Clock: IN Std_logic; Clokout: OUT Std_logic);END;,实体名,最后一条端口声明语句无分号,端口方向,端口类型,端口名,实体名由设计者自由命名,用来表示被设计电路芯片的名称,但是必须与VHDL程序的文件名称相同。要与文件名一致;,.,ENTITY FreDevider IS实体名最后一条端口声,2类属(GENERIC)说明语句 类属(GENERIC)参量是端口界面常数,以说明的形式放在实体前 。类属为设计实体和其外部环境提供了静态信息通道,常用来规定端口的大小,定时特性等。设计者可以通过设定类属参量的值来改变一个设计实体。,.,2类属(GENERIC)说明语句.,例如: GENERIC(wide:integer:=32); -说明宽度为32 GENERIC(tmp:integer:=1ns); -说明延时1 ns,类属说明(GENERIC),格式: GENERIC(常数名:数据类型:设定值; 常数名:数据类型:设定值);,以关键词GENERIC引导,在表中提供时间参数或总线宽度等信息。主要用于确定设计实体和其外部环境通信的参数,传递静态的信息。,.,例如: GENERIC(wide:integer:=32);,ENTITY MCK IS GENERIC(WIDTH:INTEGER:=15); PORT(ADD_BUS:OUT STD_LOGIC_VECTOR(WIDTH DOWNTO 0) ; . GENERIC语句对实体MCK的作为地址总线的端口ADD_BUS的数据类型和宽度作了定义,即定义ADD_BUS为一个16位的位矢量。,.,ENTITY MCK IS.,端口方向:IN, OUT,INOUT,BUFFER,“OUT”和“BUFFER”都可定义输出端口;,若实体内部需要反馈输出信号,则输出端口必须被设置为“BUFFER”,而不能为“OUT”。,.,端口方向:IN, OUT,INOUT,BUFFERINO,同方向、同类型的端口可放在同一个说明语句中。,ENTITY Full_adder IS PORT( a, b, c: IN BIT; sum, carry: OUT BIT ); END Full_adder;,.,同方向、同类型的端口可放在同一个说明语句中。ENTITY,3.2.2 结构体(ARCHITECTURE) 结构体用于描述设计实体的内部结构以及实体端口间的逻辑关系。一般地,一个完整的结构体由两个基本层次组成: 对数据类型、常数、信号、子程序和元件等元素的说明部分。 描述实体逻辑行为,以各种不同的描述风格表达的功能描述语句。,.,3.2.2 结构体(ARCHITECTURE).,图3.5 结构体构造图,.,图3.5 结构体构造图.,1. 结构体的一般语句格式 结构体的语句格式如下: ARCHITECTURE 结构体名 OF 实体名 IS 说明语句; BEGIN 功能描述语句; END ARCHITECTURE 结构体名; 实体名必须是所在设计实体的名字,而结构体名可以由设计者自己选择,但当一个实体具有多个结构体时,结构体的取名不可重复。,.,1. 结构体的一般语句格式.,ARCHITECTURE bhv OF CNT4 IS-说明语句SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN -功能描述语句 PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; END IF; END PROCESS ; Q1 = Q1 ; END ARCHITECTURE bhv ;,bhv:结构体名 CNT4:实体名,.,ARCHITECTURE bhv OF CNT4 IS,2结构体说明语句 结构体中的说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。在一个结构体中说明和定义的数据类型、常数、元件、函数和过程只能用于这个结构体中。,.,2结构体说明语句.,3功能描述语句结构 功能描述语句结构可以含有五种不同类型的、以并行方式工作的语句结构。而在其内部可能含有并行运行或顺序运行的逻辑描述语句。各语句结构的基本组成和功能分别是:(1) 块语句:由一系列并行执行语句构成的组合体。 功能:将结构体中的并行语句组成一个或多个模块。,.,3功能描述语句结构.,(2) 进程语句:定义顺序语句模块,将从外部获得的信号值,或内部的运算数据向其他的信号进行赋值。 (3) 信号赋值语句:将实体内的处理结果向定义的信号或界面端口进行赋值。 (4) 子程序调用语句:调用一个已设计好的子程序。 (5) 元件例化语句:对其他的实体作元件调用说明,并将此元件的端口与其他的元件、信号或高层次实体的界面端口进行连接。,.,(2) 进程语句:定义顺序语句模块,将从外部获得的信号值,,ARCHITECTURE Behavior OF FreDevider IS - 结构体定义SIGNAL Clk:Std_Logic; -信号声明BEGIN PROCESS(Clock)BEGIN IF rising_edge(Clock) THEN Clk=NOT Clk; END IF;END PROCESS;Clkout=Clk;END;,功能描述语句,进程,顺序语句,.,ARCHITECTURE Behavior OF Fr,3.2.3 配置(CONFIGURATION),配置的基本格式为: CONFIGURATION 配置名 OF 实体名 IS 配置说明; END 配置名;,配置语句描述了层与层之间的连接关系,以及实体与结构体之间的连接关系。(一个实体(ENTITY)可以有多个结构体)设计者可以利用配置语句选择不同的构造体,使其与要设计的实体相对应;在仿真某一个实体时,可以利用配置选择不同的构造体进行性能对比实验,以得到性能最佳的构造体。,.,3.2.3 配置(CONFIGURATION) 配置的,CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名 END FOR; END 配置名;,配置语句根据不同情况,其说明语句有简有繁。最简单的缺省配置格式为:,例:加入了配置的4位等值比较器设计文件LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY comp4 IS PORT(a, b: IN STD_LOGIC_VECTOR(3 downto 0); y: OUT STD_LOGIC); END comp4;,.,CONFIGURATION 配置名 O,-结构体 1: ARCHITECTURE behavior OF comp4 IS BEGIN Comp: PROCESS(a, b) BEGIN IF a=b THEN y=1; ELSE y=0; END IF; END PROCESS comp; END behavior; -结构体 2:ARCHITECTURE dataflow OF comp4 IS BEGIN y=1 WHEN(a=b) ELSE 0; END dataflow;,.,-结构体 1: .,-结构体 3:ARCHITECTURE structural OF comp4 IS COMPONENT xnor2 PORT(in1, in2: IN STD_LOGIC; Out: OUT STD_LOGIC); END COMPONENT; COMPONENT and4 PORT(in1, in2, in3, in4: IN STD_LOGIC; Out: OUT STD-LOGIC); END COMPONENT; SIGNAL s: STD_LOGIC_VECTOR(0 to 3); BEGIN u0: xnor2 PORT MAP(a(0),b(0),c(0); u1: xnor2 PORT MAP(a(1),b(1),c(1); u2: xnor2 PORT MAP(a(2),b(2),c(2); u3: xnor2 PORT MAP(a(3),b(3),c(3); u4: and4 PORT MAP(s(0),s(1),s(2),s(3),y); END structural;,.,-结构体 3:.,-配置 :CONFIGURATION comp4_con OF comp4 IS FOR behavior END FOR; END comp4_con;,.,4位等值比较器ys0b0a0b1a1b2a2b3a3s1s2,库(LIBRARY),库是经编译后的数据的集合。库是用来放置可编译的设计单元(它存放包定义、实体定义、构造定义和配置定义)的地方,通过其目录可查询和调用。 VHDL中的库大致可归纳为5种:IEEE库、STD库、ASIC矢量库、WORK库和用户定义库。,IEEE库:常用的资源库。IEEE库包含经过IEEE正式认可的STD_LOGIC_1164包集合和某些公司提供的一些包集合,如STD_LOGIC_ARITH(算术运算包集合)等。,STD库:VHDL的标准库。库中存放有称为“standard”的标准包集合,其中定义了多种常用的数据类型,均不加说明可直接引用。,3.2.4 库、程序包,.,库(LIBRARY)库是经编译后的数据的集合。库是用来放置可,WORK库。WORK库是现行作业库。设计者所描述的VHDL语句不需要任何说明,将都存放在WORK库中。WORK库对所有设计都是隐含可见的,因此在使用该库时无需进行任何说明。,ASIC矢量库。在VHDL语言中,为了进行门级仿真,各公司可提供面向ASIC的逻辑门库。在该库中存放着与逻辑门一一对应的实体。为了使用面向ASIC的库,对库进行说明是必要的。,用户定义库。用户定义库简称用户库,是由用户自己创建并定义的库。设计者可以把自己经常使用的非标准(一般是自己开发的)包集合和实体等汇集成在一起定义成一个库,作为对VHDL标准库的补充。用户定义库在使用时同样要首先进行说明。,上述5类库中,除了STD库和WORK库之外的其它库均为资源库。资源库是存放常规元件和标准模块的库,使用时需预先说明。,.,WORK库。WORK库是现行作业库。设计者所描述的VHDL语,IEEE库 定义了四个常用的程序包:std_logic_1164(std_logic types & related functions)std_logic_arith(arithmetic functions)std_logic_signed(signed arithmetic functions)std_logic_unsigend(arithmetic functions),.,IEEE库 定义了四个常用的程序包:.,库说明语句的语法形式为: LIBRARY 库名; -说明使用什么库 USE 包集合名; -说明使用库中哪一个包集合及包集 合中的项目(如过程名、函数名等),包集合名最多为三个层次:即 library-name.packge-name.item-name LIBRARY 语句和USE语句的作用范围: 仅限于紧跟起后的实体和结构体。,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;,.,库说明语句的语法形式为: 包集合名最多为三个层次:即,USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序包名.ALL ;,LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.STD_ULOGIC ; USE IEEE.STD_LOGIC_1164.RISING_EDGE ; USE IEEE.STD_LOGIC_1164.All ;,注意:std库符合VHDL标准,故在应用中不必如ieee库那样以显式表达,即下列语句是不必要的: LIBRARY std; USE std.standard.ALL;,.,USE语句的使用有两种常用格式: LIBRARY IEEE,LIBRARY IEEE; USE IEEE.Std_Logic_1164.ALL;,LIBRARY 库名;,USE 库名.程序包名.项目名;,调用此程序包中所有的资源,LIBRARY IEEE; USE IEEE.Std_Logic_1164.ALL;USE IEEE.Std_Logic_Arith.ALL;USE IEEE.Std_Logic_Unsigned.ALL;,.,LIBRARY IEEE;,程序包(PACKAGE),程序包的语法结构如下: PACKAGE 程序包名 IS 包说明项; 程序包首 END 程序包名; PACKAGE BODY 程序包名 IS 包体内容; 程序包体 END BODY;,程序包是一种使其中的类型、元件、函数和其它说明对其它设计单元可见的设计单元。与之相反,构造体中的这些说明仅仅对其自身可见。 程序包包括包首和包体两部分。包首 用来声明包中的类型、元件、函数和子程序;而包体 则用来存放说明中的函数和子程序。不含有子程序和函数的包集合不需要包体。,.,程序包(PACKAGE)程序包的语法结构如下: 程序包是一,

    注意事项

    本文(VHDL程序基本结构课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开