VHDL语言的库、程序包及配置

上传人:tia****nde 文档编号:244989781 上传时间:2024-10-06 格式:PPT 页数:22 大小:392KB
返回 下载 相关 举报
VHDL语言的库、程序包及配置_第1页
第1页 / 共22页
VHDL语言的库、程序包及配置_第2页
第2页 / 共22页
VHDL语言的库、程序包及配置_第3页
第3页 / 共22页
点击查看更多>>
资源描述
*,*,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,;,USE,;,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,的范围,0,255,-,定义子类型,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】,给例中的二选一数据选择器进行元件配置。,程序清单:,21,结构体配置与元件配置具有相同的特征,都是对结构体中所引用的元件进行配置,但它们所处的位置和书写格式有很大的不同。,结构体配置通常直接放在结构体说明语句的位置,而元件配置则是与元件所在的结构体分开的。,VHDL,语言的库、程序包及配置,3.,结构体配置,格式:,FOR,元件例化标号:元件名,USE ENTITY,库名,.,实体名(结构体名);,或,FOR,元件例化标号:元件名,USE,CONFIGURATION,库名,.,元件配置名;,22,VHDL,语言的库、程序包及配置,3.,结构体配置,例如,,对例中的元件可采用结构体配置。,FOR,U2,,,U3:and2,USE CONFIGURATION,WORK.and2_cfg,;,FOR,U4:or2,USE CONFIGURATION,WORK.or2_cfg,;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!