FPGA与硬件描述语言_第三章_VHDL硬件描述语言2

上传人:豆浆 文档编号:697139 上传时间:2017-05-10 格式:PPTX 页数:121 大小:452.62KB
返回 下载 相关 举报
FPGA与硬件描述语言_第三章_VHDL硬件描述语言2_第1页
第1页 / 共121页
FPGA与硬件描述语言_第三章_VHDL硬件描述语言2_第2页
第2页 / 共121页
FPGA与硬件描述语言_第三章_VHDL硬件描述语言2_第3页
第3页 / 共121页
FPGA与硬件描述语言_第三章_VHDL硬件描述语言2_第4页
第4页 / 共121页
FPGA与硬件描述语言_第三章_VHDL硬件描述语言2_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《FPGA与硬件描述语言_第三章_VHDL硬件描述语言2》由会员分享,可在线阅读,更多相关《FPGA与硬件描述语言_第三章_VHDL硬件描述语言2(121页珍藏版)》请在金锄头文库上搜索。

1、FPGA与 硬件描述语言 2016.4 1 VHDL硬件描述语言 结构体 VHDL程序结构 结构体 VHDL结构体的子结构描述 在规模较大的电路设计中,全部电路都用唯一的一个模块来描述是非常不方便的。为此,电路设计者将整个电路分成若干个相对比较独立的模块来进行描述。这样,一个结构体可以用几个子结构,即几个相对比较独立的子模块来实现 2 VHDL硬件描述语言 结构体 VHDL程序结构 结构体 BLOCK语句 BLOCK语句的结构 块标号: BLOCK 接口说明 ; 类属说明 ; BEGIN 并行语句 ; END BLOCK 块标号 ; 3 VHDL硬件描述语言 结构体 ENTITY mux21

2、IS PORT(a,b,s:IN BIT; y:OUT BIT); END mux21; ARCHITECTURE behavior OF mux21 IS SIGNAL tmp1,tmp2,tmp3:BIT; BEGIN cale:BLOCK BEGIN tmp1 b THEN RETURN a; ELSE RETURN b; END IF; END FUNCTION max; END packexp; 14 VHDL硬件描述语言 结构体 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE WORK.packexp.ALL; ENTITY axamp

3、 IS PORT(data1,data2,data3,data4:IN STD_LOGIC_VECTOR(7 DOWNTO 0); out1,out2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY axamp; ARCHITECTURE behavior OF axamp IS BEGIN out1 value := “0101”; WHEN “0101” = value := “0000”; WHEN OTHERS = value := “1111”; END CASE; END PROCEDURE prg1; 在过程调用中,如果没有特别指定,“

4、IN”将被作为常数处理,而“ INOUT”和“ OUT”将按变量对待,过程调用返回的值将传递给变量 22 VHDL硬件描述语言 结构体 函数( FUNCTION) 过程( PROCEDURE) 函数的调用只能返回一个值 过程的调用可通过其界面获得多个返回值 在函数入口中,所有参数都是输入参数 在过程入口中,有输入参数、输出参数和双向参数 函数通常是表达式的一部分 过程一般被看作一种语句结构 函数通常作为语句的一部分被调用 过程可以单独存在,其行为类似子进程 23 VHDL硬件描述语言 程序包、库和配置 程序包( PACKAGE) 已在设计实体中定义的数据类型、子程序或数据对象对于其他设计实体是

5、不可用的,或者说是不可见的。为了使已定义的常数、数据类型、元件调用说明以及子程序能被更多的 VHDL设计实体方便地访问和共享,可以将它们收集在一个 VHDL程序包中 多 个程序包可以并入一个 VHDL库中,使之适用于更一般的访问和调用范围 24 VHDL硬件描述语言 程序包、库和配置 程序包的 4种基本结构 常数说明:在程序包中的常数说明结构主要用于预定义系统的宽度,如数据总线通道的宽度 VHDL数据类型说明:主要用于在整个设计中通用的数据类型,例如通用的地址总线数据类型定义等 元件定义:元件定义主要规定在 VHDL设计中参与元件例化的文件(已完成的设计实体)对外的接口界面 子程序:并入程序包

6、的子程序有利于在设计中 任一位置进行方便地调用 25 VHDL硬件描述语言 程序包、库和配置 程序包( PACKAGE) 一旦定义了一个程序包,各种独立的设计就能方便地调用包中的内容 程序 包用来单纯罗列 VHDL中所使用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义等 例如: USE IEEE.STD_LOGIC_1164.ALL 26 VHDL硬件描述语言 程序包、库和配置 程序包 程序包结构 PACKAGE 程序包名 IS 程序包首说明部分 ; END 程序包名 ; PACKAGE BODY 程序包名 IS 程序包体说明部分以及包体内容 ; END 程序包名 ; 27 V

7、HDL硬件描述语言 程序包、库和配置 程序包 程序包首 程序包首的说明部分可收集多个不同的VHDL设计所需的公共信息,其中包括数据类型、信号说明、字程序说明及元件说明 28 PACKAGE pacl IS TYPE byte IS RANGE 0 TO 255; -定义数据类型 byte SUBTYPE nibble IS byte RANGE 0 TO 15; -定义 子类型 CONSTANT byte_ff:byte:=255; -定义常数 byte_ff SIGNAL addend:nibble; -定义信号 addend COMPONENT byte_adder -定义 元件 PORT

8、(a,b:IN byte; c:OUT byte; overflow:OUT BOOLEAN); END COMPONENT; FUNCTION my_function (a:IN byte) RETURN byte;-定义 函数 END pacl; VHDL硬件描述语言 程序包、库和配置 29 VHDL硬件描述语言 程序包、库和配置 程序包 程序包体 程序包体包括在程序包首中已定义的子程序的子程序体 程序包体说明部分的组成内容可以是 USE语句、子程序定义、子程序体、数据类型说明、子类型说明和常数说明等 对于没有子程序说明的程序包体可以省去 30 LIBRARY IEEE; USE IEEE

9、.STD_LOGIC_1164.ALL; PACKAGE bpac IS FUNCTION max (a:STD_LOGIC_VECTOR; b:STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR; END bpac; PACKAGE BODY bpac IS FUNCTION max (a:STD_LOGIC_VECTOR; b:STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR IS VARIABLE tmp:STD_LOGIC_VECTOR; BEGIN IF (a b) THEN tmp := a; ELSE tmp :=

10、 b; END IF; RETURN tmp; END max; END bpac; 31 VHDL硬件描述语言 程序包、库和配置 程序包 常用的预定义程序包 STD_LOGIC_1164程序包 STD_LOGIC_ARITH程序包 STD_LOGIC_UNSIGNED程序包 STD_LOGIC_SIGNED程序包 STANDARD程序包 TEXTIO程序包 32 VHDL硬件描述语言 程序包、库和配置 库 ( LIBRARY) 库是经过编译后的数据的集合,可以把库看成是一种用来存储预先完成的程序包、数据集合体和元件的仓库 库 中放置不同数量的程序包,而程序包中又可放置不同数量的子程序,子程序

11、中又含有函数、过程、设计实体(元件)等基础设计单元 33 VHDL硬件描述语言 程序包、库和配置 库 库的语句格式 这 一语句即相当于为其后的设计实体打开了以此库命名的库,以便设计实体利用其中的程序包 在 VHDL中允许存在多个不同的库,但库与库之间是相互独立的,不能相互嵌套 LIBRARY 库名; 34 VHDL硬件描述语言 程序包、库和配置 库 库的种类 IEEE库 STD库 WORK库 VITAL库 35 VHDL硬件描述语言 程序包、库和配置 库 库的使用 在 VHDL中,库的说明语句总是放在实体单元前面 VHDL允许在一个设计实体中同时打开多个不同的库,但库之间必须是相互独立的 库语

12、句一般必须与 USE语句同时使用 库语句关键词为 LIBRARY,指明所使用的库名, USE语句指明库中的程序包 36 VHDL硬件描述语言 程序包、库和配置 库 库 的使用 一旦说明了库和程序包,整个设计实体都可以进入访问或调用,但其作用范围仅限于所说明的设计实体 USE语句的使用将使所说明的程序包对本设计实体部分或全部开放,即可视 37 VHDL硬件描述语言 程序包、库和配置 库 库的使用 第一条语句格式的作用是向本设计实体开放指定库中的特定程序包内所选定的项目 第二条语句格式的作用是向本设计实体开放指定库中的特定程序包内所有的内容 USE语句的使用有两种常用 格式: USE 库名 .程序

13、包名 .项目名; USE 库名 .程序包名 .ALL; 38 VHDL硬件描述语言 程序包、库和配置 库 库的使用 合法的 USE语句的使用方法是,将 USE语句说明中所要开放的设计实体对象紧跟在 USE语句之后,例如: 以上语句表明打开 IEEE库中的 STD_LOGIC_1164程序包,并使程序包中所有的公共资源对于语句后面的 VHDL设计实体程序全部开放,即该语句后的程序可任意使用程序包中的公共资源。这里用到了关键词“ ALL”,代表程序包中所有资源 USE IEEE.STD_LOGIC_1164.ALL; 39 VHDL硬件描述语言 程序包、库和配置 库 库的使用 此 例中向当前设计实

14、体开放了 STD_LOGIC_1164程序包中的 RISING_EDGE函数,但由于此函数需要用到数据类型 STD_ULOGIC,所以在上一条 USE语句中开放了同一程序包的这一数据类型 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.STD_ULOGIC; USE IEEE.STD_LOGIC_1164.RISING_EDGE; 40 VHDL硬件描述语言 程序包、库和配置 配置( CONFIGURATION) 配置可以把特定的结构体关联到一个确定的实体,其作用是描述层与层之间的关系以及实体与结构之间的连接关系 配置语句用来为大型系统设计提供管理和工程组织 41

15、VHDL硬件描述语言 程序包、库和配置 配置 配置语句的格式 CONFIGURATION 配置名 OF 实体名 IS 配置说明 ; END 配置名 ; 42 VHDL硬件描述语言 程序包、库和配置 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nand IS PORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); END nand; ARCHITECTURE one OF nand IS BEGIN c s,b=nq,c=q); U2:nand PORT MAP(a=q,b=r,c=nq); END behavior; CONFIGURATION sel OF rs_t IS FOR behavi

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

当前位置:首页 > 资格认证/考试 > 医师/药师资格考试

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