VHDL语言的库、程序包及配置.ppt_第1页
VHDL语言的库、程序包及配置.ppt_第2页
VHDL语言的库、程序包及配置.ppt_第3页
VHDL语言的库、程序包及配置.ppt_第4页
VHDL语言的库、程序包及配置.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,VHDL语言的库、程序包及配置,4 VHDL语言的库、程序包及配置,在VHDL设计实体中,除了实体说明和结构体外,还有库、程序包和配置三个各自独立的组成部分。 依据VHDL语言的规则,VHDL程序所使用的文字、数据对象、数据类型都需要预先定义。 将预先定义好的数据类型、元件调用声明及一些常用子程序收集在一起,形成程序包,供VHDL设计实体共享和调用。若干个程序包则形成库。,2,库(Library)是用于存放预先设计好的程序包和数据的集合体。,VHDL语言的库、程序包及配置,4.1 VHDL库,1. 常用的库,VHDL语言中常用的五种库:, IEEE库 STD库 WORK库 VITAL库 用户自定义库, VHDL语言设计中最常见的库。, VHDL语言的标准库。, 用户的VHDL语言工作库。, VHDL语言的时序仿真库。,用户自定义的资源库。,3,VHDL语言的库、程序包及配置,4,VHDL语言的库、程序包及配置,2. 资源库和设计库,VHDL语言所使用的库可以分成两类:,资源库 设计库,用于存放常规元件、标准模块、预定义数据类型等,如:IEEE库。,是一种符合VHDL标准的预定义库。 如:STD库定义了一些基本的数据类型、子类型和函数等;WORK库存放用户设计和定义的设计单元及程序包等。,5,VHDL语言的库、程序包及配置,3. 库的使用,关键字: LIBRARY 格 式: LIBRARY 库名称,库说明语句:,说 明:用来指明所使用的库,库名称为一系列由逗号分隔的库名。 库说明语句总是位于设计实体的最前面,通常与USE语句一起使用。,6,VHDL语言的库、程序包及配置,3. 库的使用,格式1: USE 库名.程序包名.项目名;,USE语句用来指明库中的程序包,有两种格式:,作用:为本设计实体开放指定库中的特定程序包内所选定的项目。,例如:,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.STD_ULOGIC; USE IEEE.STD_LOGIC_1164.RISING_EDGE;,7,VHDL语言的库、程序包及配置,3. 库的使用,格式2: USE 库名.程序包名.ALL;,作用:为本设计实体开放指定库中的特定程序包内所有的内容。,例如:,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;,8,在VHDL语言中,用户可以将已定义的常数、信号、函数、数据类型、元件和子程序等收集在一起形成一个程序包,以便更多的设计实体利用和共享。,VHDL语言的库、程序包及配置,4.2 VHDL程序包,定义程序包的一般语句格式:,PACKAGE 程序包 IS 程序包首说明 END 程序包名; PACKAGE BODY 程序包 IS 程序包体说明 END 程序包名;,程序包首,程序包体,9,程序包首收集了VHDL设计所需的公共信息,用来定义数据类型、元件和子程序等。,VHDL语言的库、程序包及配置,1. 程序包首,一般格式:,PACKAGE 程序包 IS TYPE语句; SUBTYPE语句; CONSTANT语句; SIGNAL语句; COMPONENT语句; FUNCTION语句; SUBPROGRAM语句; END 程序包名;, 用来定义数据类型 用来定义子类型 用来定义常数 用来定义信号 用来定义元件 用来定义函数 用来定义子程序,10,VHDL语言的库、程序包及配置,【例4.1】定义程序包。,PACKAGE my_pkg IS TYPE byte IS RANGE 0 TO 255; SUBTYPE nibyte IS byte RANGE 0 TO 15; CONSTANT byte_ff: bcd:=255; SIGNAL addend: nibabc; COMPONENT byte_adder PORT (a, b: IN byte; c: OUT byte; overflow: OUT BOOLEAN ); END COMPONENT; FUNCTION my_fun(a:IN byte) RETURN byte; END my_pkg;,程序清单:,- 程序包首,程序包名为my_pkg,- 定义数据类型,byte的范围0255,- 定义子类型nibyte,- 定义常数byte_ff,- 定义信号addend,- 定义元件byte_adder,- 定义函数my_fun,11,用来描述已在程序包首中定义过的元件和子程序的内容。,VHDL语言的库、程序包及配置,2. 程序包体,一般格式:,PACKAGE BODY 程序包 IS 程序包体说明 END 程序包名;,程序包体说明可以是USE语句、子程序定义、子程序体、数据类型说明、子类型说明和常数说明等。,12,常用的预定义的程序包有:,VHDL语言的库、程序包及配置,3. VHDL常用的程序包, STD_LOGIC_1164 STD_LOGIC_ARITH STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED STANDARD和TEXTIO,13,配置是将特定的结构体与一个确定的实体相关联,为大型系统的设计提供管理和工程组织。 配置是设计实体VHDL语言描述的组成部分之一,但不是必不可少的。常用来描述层与层之间、实体与结构体之间的连接关系。,VHDL语言的库、程序包及配置,4.3 配置,配置可分为三种类型:, 默认配置 元件配置 结构体配置,14,默认配置是一种最为简单的配置,当设计实体中不含有任何其他元件和块语句时,可以使用默认配置。,VHDL语言的库、程序包及配置,1. 默认配置,基本格式:,CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名; END FOR; END 配置名;,15,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY COUNTER IS PORT (CLK,CLR: IN STD_LOGIC; Q: OUT INTEGER); END COUNTER;,VHDL语言的库、程序包及配置,【例4.2】设计两个计数位宽分别为4位和8位的计数器。,设两个计数器具有相同的功能和外部结构,只是计数位宽不同。用一个计数器实体来实现两个不同结构体的配置。,程序清单:,计数器的实体,16,VHDL语言的库、程序包及配置,【例4.2】设计两个计数位宽分别为4位和8位的计数器。,程序清单:,ARCHITECTURE COUNT4 OF COUNTER IS BEGIN PROCESS (CLK) VARIABLE QQ: INTEGER:= 0; BEGIN IF CLR=0 THEN QQ:= 0; ELSIF (CLK EVENT AND CLK=1) THEN IF QQ=15 THEN QQ:= 0; ELSE QQ:= QQ+1; END IF; END IF; Q = QQ; END PROCESS; END COUNT4;,计数器COUNT4的结构体,17,VHDL语言的库、程序包及配置,【例4.2】设计两个计数位宽分别为4位和8位的计数器。,程序清单:,ARCHITECTURE COUNT8 OF COUNTER IS BEGIN PROCESS (CLK) VARIABLE QQ: INTEGER:= 0; BEGIN IF CLR=0 THEN QQ:= 0; ELSIF (CLK EVENT AND CLK=1) THEN IF QQ=255 THEN QQ:= 0; ELSE QQ:= QQ+1; END IF; END IF; Q = QQ; END PROCESS; END COUNT8;,计数器COUNT8的结构体,18,VHDL语言的库、程序包及配置,【例4.2】设计两个计数位宽分别为4位和8位的计数器。,程序清单:,CONFIGURATION COUNT_4 OF COUNTER IS FOR COUNT4 END FOR; END COUNT_4; CONFIGURATION COUNT_8 OF COUNTER IS FOR COUNT8 END FOR; END COUNT_8;,计数器的配置,19,当结构体中含有多个引用元件时,可以采用元件配置,以指明引用元件的具体位置。,VHDL语言的库、程序包及配置,2. 元件配置,格式:,CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名 FOR 元件例化标号: 元件名 USE CONFIGURATION 库名.元件配置名; 或 USE ENTITY 库名.实体名(结构体名); END FOR; END FOR; END 配置名;,20,CONFIGURATION mux_ cfg OF mux21 IS FOR structure FOR U2,U3: and2 USE CONFIGURATION WORK.and2_cfg; END FOR; FOR U4: or2 USE CONFIGURATION WORK.or2_cfg; END FOR; END FOR; END mux_ cfg;,VHDL语言的库、程序包及配置,【例4.3】给例5.3.3中的二选一数据选择器进行元件配置。,程序清单:,21,结构体配置与元件配置具有相同的特征,都是对结构体中所引用的元件进行配置,但它们所处的位置和书写格式有很大的不同。 结构体配置通常直接放在结构体说明语句的位置,而元件配置则是与元件所在的结构体分开的。,VHDL语言的库、程序包及配置,3. 结构体配置,格式:,FOR 元件例化标号:元件名 US

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论