第六章 VHDL设计共享
第六章 VHDL设计共享
主要内容 ·VHDL设计库 ·VHDL程序包 ·VHDL子程序与并行过程调用
主要内容 • VHDL设计库 • VHDL程序包 • VHDL子程序与并行过程调用
6.1HDL设计库 6,1.1库的种类 。IEEE库 IEEE标准的程序包主要有STD LOGIC1164、NUMERIC _STD和 NUMERIC_BIT3个准程序包,无其是STD LOG1C1164是最重要 的数字系统标谁程序包 部分基宇数字系统设计的程序包都 程序包中设是的棕准为基础 ·STD库 包含了两个标准程序包STANDARD和TEXTIO程序包。 ·WORK库 S的养不9度 设计单元和程序包。 ·VITAL库 VITAL程序包已经成为IEEE标准,并且已经并到IEEE库中,库中包含 有VITAL_TIMING:和VITAL PRIMITIVES两个时序程序包
6.1 VHDL设计库 6.1.1 库的种类 • IEEE库 IEEE标准的程序包主要有STD_LOGIC_1164、NUMERIC_STD和 NUMERIC_BIT 3个标准程序包,尤其是STD_LOGIC_1164是最重要 的数字系统标准程序包,大部分基于数字系统设计的程序包都是以此 程序包中设定的标准为基础的。 • STD库 包含了两个标准程序包STANDARD和TEXTIO程序包。 • WORK库 WORK库只是一个逻辑名,不存在WORK库的实名。 WORK库 是用户的VHDL设计的现行工作库,用于存放用户设计和定义的一些 设计单元和程序包。 • VITAL库 VITAL程序包已经成为IEEE标准,并且已经并到IEEE库中,库中包含 有VITAL_TIMING和VITAL_PRIMITIVES两个时序程序包
6.1 VHDL设计库(续) 61.2库的使用方法 库使用声明语句由关键词LIBRARY引导,指明所使用的库名;程 序包使前语句由关键词USE引导,指明使用库中的哪一个程序包。 程序包使用语句USE的使用将其所说明的程序包对本设计实体可 以部分开放或者全部开放,相应的也有两种使用格式: USE库名.程序包名,项目名: USE库名,程序包名.ALL: 库和程序包正确使用的示例: LIBRARY IEEE; USE IEEE.STD LOGIC 1164.ALL; USE IEEE.STD LOGIC UNSIGNED.ALL;
6.1 VHDL设计库(续) 6.1.2 库的使用方法 库使用声明语句由关键词LIBRARY引导,指明所使用的库名;程 序包使用语句由关键词USE引导,指明使用库中的哪一个程序包。 程序包使用语句USE的使用将其所说明的程序包对本设计实体可 以部分开放或者全部开放,相应的也有两种使用格式: USE 库名.程序包名.项目名; USE 库名.程序包名.ALL; 库和程序包正确使用的示例: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;
6.2VHDL程序包 程序包的结构由程序包的说明部分,即程序包首,和程序包的具 体内容,即程序包体,两部分组成。一个完整的程序包中,程序包首 和程序包体是同一个名字。 PACKAGE程序包名 PACKAGE BODY程序包名IS -Type Declaration (optional) --Type Declaration (optional) Subtype Declaration (optional) --Subtype Declaration (optional) --Constant Declaration (optional) Constant Declaration (optional) --Function Declaration (optional) Signal Declaration(optional) --Procedure Declaration (optional) --Component Declaration (optional) --Function Body (optional) =-Subprogram Declaration (optional) --Procedure Body (optional) END程序包名; END程序包名: 程序包的结构中少要包含数据类型声明、子类型声明、常数声明、信号 声明、元件声明、子程序声明其中的一种。 程序包结构中,程序包体并非总是必须的,程序包首可以独立定义和使 用。但是,当程序包首中作了子程序(函数和过程)或部件等声明后,程序 包体是必须的
6.2 VHDL程序包 PACKAGE 程序包名 -- Type Declaration (optional) -- Subtype Declaration (optional) -- Constant Declaration (optional) -- Signal Declaration (optional) -- Component Declaration (optional) -- Subprogram Declaration (optional) END 程序包名; PACKAGE BODY 程序包名 IS -- Type Declaration (optional) -- Subtype Declaration (optional) -- Constant Declaration (optional) -- Function Declaration (optional) -- Procedure Declaration (optional) -- Function Body (optional) -- Procedure Body (optional) END 程序包名; 程序包的结构中少要包含数据类型声明、子类型声明、常数声明、信号 声明、元件声明、子程序声明其中的一种。 程序包结构中,程序包体并非总是必须的,程序包首可以独立定义和使 用。但是,当程序包首中作了子程序(函数和过程)或部件等声明后,程序 包体是必须的。 程序包的结构由程序包的说明部分,即程序包首,和程序包的具 体内容,即程序包体,两部分组成。一个完整的程序包中,程序包首 和程序包体是同一个名字