




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章语言的库程序包及配置第1页,共22页,2023年,2月20日,星期三2
库(Library)是用于存放预先设计好的程序包和数据的集合体。
VHDL语言的库、程序包及配置
4.1VHDL库
1.常用的库
VHDL语言中常用的五种库:
①
IEEE库②
STD库③
WORK库④
VITAL库⑤
用户自定义库
——VHDL语言设计中最常见的库。
——VHDL语言的标准库。
——用户的VHDL语言工作库。
——VHDL语言的时序仿真库。
——用户自定义的资源库。
第2页,共22页,2023年,2月20日,星期三3VHDL语言的库、程序包及配置第3页,共22页,2023年,2月20日,星期三4VHDL语言的库、程序包及配置
2.资源库和设计库
VHDL语言所使用的库可以分成两类:
●资源库
●设计库
用于存放常规元件、标准模块、预定义数据类型等,如:IEEE库。
是一种符合VHDL标准的预定义库。
如:STD库定义了一些基本的数据类型、子类型和函数等;WORK库存放用户设计和定义的设计单元及程序包等。
第4页,共22页,2023年,2月20日,星期三5VHDL语言的库、程序包及配置
3.库的使用
关键字:LIBRARY格式:LIBRARY
库名称
库说明语句:
说明:用来指明所使用的库,库名称为一系列由逗号分隔的库名。
库说明语句总是位于设计实体的最前面,通常与USE语句一起使用。
第5页,共22页,2023年,2月20日,星期三6VHDL语言的库、程序包及配置
3.库的使用
格式1:USE
库名.程序包名.项目名;USE语句用来指明库中的程序包,有两种格式:
作用:为本设计实体开放指定库中的特定程序包内所选定的项目。
例如:LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.STD_ULOGIC;
USEIEEE.STD_LOGIC_1164.RISING_EDGE;
第6页,共22页,2023年,2月20日,星期三7VHDL语言的库、程序包及配置
3.库的使用
格式2:USE
库名.程序包名.ALL;
作用:为本设计实体开放指定库中的特定程序包内所有的内容。
例如:LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
第7页,共22页,2023年,2月20日,星期三8在VHDL语言中,用户可以将已定义的常数、信号、函数、数据类型、元件和子程序等收集在一起形成一个程序包,以便更多的设计实体利用和共享。VHDL语言的库、程序包及配置
4.2VHDL程序包
定义程序包的一般语句格式:
PACKAGE
程序包IS
程序包首说明
END
程序包名;
PACKAGEBODY
程序包IS
程序包体说明
END
程序包名;
程序包首程序包体第8页,共22页,2023年,2月20日,星期三9
程序包首收集了VHDL设计所需的公共信息,用来定义数据类型、元件和子程序等。
VHDL语言的库、程序包及配置
1.程序包首
一般格式:
PACKAGE
程序包IS
TYPE语句;
SUBTYPE语句;
CONSTANT语句;
SIGNAL语句;
COMPONENT语句;
FUNCTION语句;
SUBPROGRAM语句;
END
程序包名;
——用来定义数据类型——用来定义子类型
——用来定义常数
——用来定义信号
——用来定义元件
——用来定义函数
——用来定义子程序
第9页,共22页,2023年,2月20日,星期三10VHDL语言的库、程序包及配置
【例4.1】定义程序包。
PACKAGEmy_pkgIS
TYPEbyteIS
RANGE0TO255;
SUBTYPEnibyteISbyteRANGE0TO15;
CONSTANTbyte_ff:
bcd:=255;
SIGNALaddend:nibabc;
COMPONENTbyte_adder
PORT(a,b:INbyte;c:OUTbyte;overflow:OUTBOOLEAN);
ENDCOMPONENT;
FUNCTIONmy_fun(a:INbyte)RETURNbyte;
ENDmy_pkg;
程序清单:--程序包首,程序包名为my_pkg--
定义数据类型,byte的范围0~255--定义子类型nibyte--定义常数byte_ff--定义信号addend--定义元件byte_adder--定义函数my_fun第10页,共22页,2023年,2月20日,星期三11
用来描述已在程序包首中定义过的元件和子程序的内容。
VHDL语言的库、程序包及配置
2.程序包体
一般格式:
PACKAGEBODY
程序包IS
程序包体说明
END
程序包名;
程序包体说明可以是USE语句、子程序定义、子程序体、数据类型说明、子类型说明和常数说明等。第11页,共22页,2023年,2月20日,星期三12
常用的预定义的程序包有:
VHDL语言的库、程序包及配置
3.VHDL常用的程序包
①STD_LOGIC_1164
②STD_LOGIC_ARITH
③STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED
④STANDARD和TEXTIO第12页,共22页,2023年,2月20日,星期三13
配置是将特定的结构体与一个确定的实体相关联,为大型系统的设计提供管理和工程组织。
配置是设计实体VHDL语言描述的组成部分之一,但不是必不可少的。常用来描述层与层之间、实体与结构体之间的连接关系。
VHDL语言的库、程序包及配置
4.3配置
配置可分为三种类型:
●默认配置
●元件配置
●结构体配置
第13页,共22页,2023年,2月20日,星期三14
默认配置是一种最为简单的配置,当设计实体中不含有任何其他元件和块语句时,可以使用默认配置。
VHDL语言的库、程序包及配置
1.默认配置
基本格式:
CONFIGURATION
配置名OF
实体名IS
FOR
选配结构体名;
ENDFOR;
END
配置名;
第14页,共22页,2023年,2月20日,星期三15
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCOUNTERIS
PORT(CLK,CLR:INSTD_LOGIC;Q:OUTINTEGER);
ENDCOUNTER;VHDL语言的库、程序包及配置【例4.2】设计两个计数位宽分别为4位和8位的计数器。
设两个计数器具有相同的功能和外部结构,只是计数位宽不同。用一个计数器实体来实现两个不同结构体的配置。
程序清单:
计数器的实体
第15页,共22页,2023年,2月20日,星期三16VHDL语言的库、程序包及配置【例4.2】设计两个计数位宽分别为4位和8位的计数器。
程序清单:
ARCHITECTURECOUNT4OFCOUNTERIS
BEGIN
PROCESS(CLK)
VARIABLEQQ:INTEGER:=
0;
BEGIN
IFCLR='0'THENQQ:=
0;
ELSIF(CLK'EVENTANDCLK='1')THEN
IFQQ=15THENQQ:=
0;
ELSEQQ:=
QQ+1;
ENDIF;
ENDIF;Q<=
QQ;
ENDPROCESS;
ENDCOUNT4;计数器COUNT4的结构体
第16页,共22页,2023年,2月20日,星期三17VHDL语言的库、程序包及配置【例4.2】设计两个计数位宽分别为4位和8位的计数器。
程序清单:
ARCHITECTURECOUNT8OFCOUNTERIS
BEGIN
PROCESS(CLK)
VARIABLEQQ:INTEGER:=
0;
BEGIN
IFCLR='0'THENQQ:=
0;
ELSIF(CLK'EVENTANDCLK='1')THEN
IFQQ=255THENQQ:=
0;
ELSEQQ:=
QQ+1;
ENDIF;
ENDIF;Q<=
QQ;
ENDPROCESS;
ENDCOUNT8;计数器COUNT8的结构体
第17页,共22页,2023年,2月20日,星期三18VHDL语言的库、程序包及配置【例4.2】设计两个计数位宽分别为4位和8位的计数器。
程序清单:
CONFIGURATIONCOUNT_4OFCOUNTERIS
FORCOUNT4
ENDFOR;
ENDCOUNT_4;
CONFIGURATIONCOUNT_8OFCOUNTERIS
FORCOUNT8
ENDFOR;
ENDCOUNT_8;计数器的配置
第18页,共22页,2023年,2月20日,星期三19当结构体中含有多个引用元件时,可以采用元件配置,以指明引用元件的具体位置。
VHDL语言的库、程序包及配置
2.元件配置
格式:
CONFIGURATION
配置名OF
实体名IS
FOR
选配结构体名FOR
元件例化标号:元件名USECONFIGURATION
库名.元件配置名;或
USEENTITY
库名.实体名(结构体名);
ENDFOR;…
ENDFOR;END
配置名;
第19页,共22页,2023年,2月20日,星期三20
CONFIGURATIONmux_cfgOFmux21IS
FORstructure
FORU2,U3:and2
USECONFIGURATIONWORK.and2_cfg;
ENDFOR;
FORU4:or2
USECONFIGURATIONWORK.or2_cfg;
ENDFOR;
ENDFOR;
ENDmux_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《肾脏泌尿超声》课件
- 2025金融借款合同协议书
- 理发门面出租合同协议
- 电力通信专线合同协议
- 玉米收割劳务合同协议
- 瓦工转包合同协议书范本
- 电梯采购加装合同协议
- 电力施工担保合同协议
- 生物质供气合同协议
- 环保核查服务合同协议
- 普通高中学生综合素质评价档案
- 产品路标规划-综述2.1
- 2023年郑州工业应用技术学院单招考试面试题库及答案解析
- 《电子制造技术-电子封装》配套教学课件
- 二月份循证护理查房课件
- 粉笔国考行测模考大赛第八季
- JJF(湘) 09-2018 纯水-超纯水系统监测仪表(电导率)计量校准规范-(高清现行)
- 大一下【世界古代史】期末复习资料
- 延安市幼儿教师心理健康现状调查分析
- 中药斗谱排序
- 数学建模“如何进行人员分配”问题
评论
0/150
提交评论