广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第6章 VHDL设计共享

第六章 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 程序包名; 程序包的结构中少要包含数据类型声明、子类型声明、常数声明、信号 声明、元件声明、子程序声明其中的一种。 程序包结构中,程序包体并非总是必须的,程序包首可以独立定义和使 用。但是,当程序包首中作了子程序(函数和过程)或部件等声明后,程序 包体是必须的。 程序包的结构由程序包的说明部分,即程序包首,和程序包的具 体内容,即程序包体,两部分组成。一个完整的程序包中,程序包首 和程序包体是同一个名字

6.2 HDL程序包(续1) 例6.1程序包定义示例。 LIBRARY IEEE; USE IEEE.STD LOGIC 1164.ALL; USE IEEE.NUMERIC STD.ALL; PACKAGE my_pkg IS-程序包首声明 TYPE byte IS INTEGER RANGE 0 TO 255; SUBTYPE helf_byte IS byte RANGE 0 TO 15; CONSTANT byte_max:byte:=255; FUNCTION min(left,right:INTEGER)RETURN INTEGER; COMPONENT signed_adder-假定实体和结构体在WORK库中 GENERIC(data width:NATURAL:=8); PORT( IN SIGNED((data_width-1)DOWNTO0); b IN SIGNED((data_width-1)DOWNTO0); result OUT SIGNED((data_width-1)DOWNTO 0)); END COMPONENT; END my_pkg; PACKAGE BODY my pkg IS-程序包体声明 FUNCTION min(left,right:INTEGER)RETURN INTEGER IS BEGIN IF left right THEN RETURN left; ELSE RETURN right; END IF; END min; END my_pkg;
6.2 VHDL程序包(续1) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; PACKAGE my_pkg IS --程序包首声明 TYPE byte IS INTEGER RANGE 0 TO 255; SUBTYPE helf_byte IS byte RANGE 0 TO 15; CONSTANT byte_max: byte:= 255; FUNCTION min (left, right: INTEGER) RETURN INTEGER; COMPONENT signed_adder --假定实体和结构体在WORK库中 GENERIC(data_width : NATURAL := 8); PORT( a : IN SIGNED((data_width-1) DOWNTO 0); b : IN SIGNED((data_width-1) DOWNTO 0); result : OUT SIGNED ((data_width-1) DOWNTO 0)); END COMPONENT; END my_pkg; PACKAGE BODY my_pkg IS --程序包体声明 FUNCTION min (left, right: INTEGER) RETURN INTEGER IS BEGIN IF left < right THEN RETURN left; ELSE RETURN right; END IF; END min; END my_pkg; 例6.1 程序包定义示例

6.2 VHDL程序包(续2) 例6:2在设计实体前定义并立即使用的程序包示例。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE seg7 IS TYPE bcd IS INTEGER RANGE 0 TO 9; SUBTYPE segments IS STD_LOGIC_VECTOR(O TO 6); END seg7; USE WORK.seg7.ALL; ENTITY bcd_to_segments IS PORT( input:IN bcd; drive:OUT segments ) END bcd to_segments;
6.2 VHDL程序包(续2) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE seg7 IS TYPE bcd IS INTEGER RANGE 0 TO 9; SUBTYPE segments IS STD_LOGIC_VECTOR(0 TO 6); END seg7; USE WORK.seg7.ALL; ENTITY bcd_to_segments IS PORT( input: IN bcd; drive: OUT segments ); END bcd_to_segments; 例6.2 在设计实体前定义并立即使用的程序包示例

6.2 VHDL程序包(续3) 例6.2在设计实体前定义并立即使用的程序包示例。 ARCHITECTURE bev OF bcd_to_segments IS BEGIN WITH input SELECT drive <b0000001"WHEN 0 b"1001111"WHEN1, b"0010010"WHEN2, b"0000110"WHEN3 b"1001100"WHEN4 b"0010010"WHEN5, b"O010000"WHEN6 b"0001111"WHEN7, b"O000000"WHEN8, b"0001100"WHEN9 b1111111"WHEN OTHERS; END bev;
6.2 VHDL程序包(续3) ARCHITECTURE bev OF bcd_to_segments IS BEGIN WITH input SELECT drive <= b"0000001" WHEN 0, b"1001111" WHEN 1, b"0010010" WHEN 2, b"0000110" WHEN 3, b"1001100" WHEN 4, b"0010010" WHEN 5, b"0010000" WHEN 6, b"0001111" WHEN 7, b"0000000" WHEN 8, b"0001100" WHEN 9, b"1111111" WHEN OTHERS; END bev; 例6.2 在设计实体前定义并立即使用的程序包示例

6.3VDL子程序与并行过程调用 6.3.1 VHDL函数 1.函数首 函数首由函数名、参数表和返回值的数据类型三部分组成。 FUNCTION函数名(参数表)RETURN数据类型: 2,函数体 函数体是函数具有实质性内容的部分,包含一个对数据类型、常 数、变量等的局部说明,以及用以完成规定算法或转换的顺序语句部 分。 FUNCTION函数名(参数表)RETURN数据类型IS-函数体开始 说明部分 BEGIN 顺序语句: END FUNCTION函数名; 一函数体结束 3.函数调用 函数名(实参数表)
6.3 VHDL子程序与并行过程调用 6.3.1 VHDL函数 1.函数首 函数首由函数名、参数表和返回值的数据类型三部分组成。 FUNCTION 函数名(参数表) RETURN 数据类型; 2.函数体 函数体是函数具有实质性内容的部分,包含一个对数据类型、常 数、变量等的局部说明,以及用以完成规定算法或转换的顺序语句部 分。 FUNCTION 函数名(参数表) RETURN 数据类型 IS --函数体开始 说明部分 BEGIN 顺序语句; END FUNCTION 函数名; --函数体结束 3.函数调用 函数名(实参数表)

6.3.1 VHDL函数(续1) 例6.3程序包中定义函数的示例。 LIBRARY IEEE; USE IEEE.STD LOGIC 1164.ALL; -函数首声明 PACKAGE pack exam IS FUNCTION max(a,b:IN STD_LOGIC_VECTOR RETURN STD_LOGIC_VECTOR; END pack exam; -函数体声明 PACKAGE BODY pack_exam IS FUNCTION max(a,b:IN STD_LOGIC_VECTOR RETURN STD_LOGIC_VECTOR IS BEGIN IF a b THEN RETURN a;-使用了返回语句 ELSE RETURN b; END IF; END FUNCTION C; END pack_exam;
6.3.1 VHDL函数(续1) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; --函数首声明 PACKAGE pack_exam IS FUNCTION max(a, b: IN STD_LOGIC_VECTOR ) RETURN STD_LOGIC_VECTOR; END pack_exam; --函数体声明 PACKAGE BODY pack_exam IS FUNCTION max(a, b: IN STD_LOGIC_VECTOR ) RETURN STD_LOGIC_VECTOR IS BEGIN IF a > b THEN RETURN a; --使用了返回语句 ELSE RETURN b; END IF; END FUNCTION C; END pack_exam; 例6.3 程序包中定义函数的示例
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第5章 VHDL主要描述语句.ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第4章 VHDL编程基础.ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第3章 集成开发平台QuartusII操作基础.ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第2章 可编程逻辑器件.ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第1章 概述.ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)前言(负责人:张健).ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验十 An Enhanced Processor.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验九 A Simple Processor.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验八 Memory Blocks.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验七 Finite State Machines.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验六 Adders, Subtractors, and Multipliers.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验五 Clocks and Timers.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验四 Counters.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验三 Latches, Flip-flops, and Registers.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验二 Numbers and Displays.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(实验指导)实验一 Switches, Lights, and Multiplexers.pdf
- 中国科学技术大学:《计算机图形学》课程教学资源(讲义)第六章 观察(主讲:黄章进).pdf
- 中国科学技术大学:《计算机图形学》课程教学资源(讲义)第四章 输入与交互.pdf
- 中国科学技术大学:《计算机图形学》课程教学资源(讲义)第五章 几何对象与变换.pdf
- 中国科学技术大学:《计算机图形学》课程教学资源(讲义)第二章 计算机图形系统.pdf
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第7章 基本逻辑电路设计.ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第8章 有限状态机的VHDL设计.ppt
- 广东海洋大学:《VHDL程序设计语言》课程教学资源(PPT课件)第10章 EDA设计的仿真与测试.ppt
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)第二章 物理层.pptx
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)第三章 数据链路层.pptx
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)第四章 网络层.pptx
- 上饶师范学院:《数据库系统原理》课程教学资源(试卷习题)数据库系统原理模拟试卷(考试模拟试题,共十套,含参考答案).doc
- 上饶师范学院:《数据库系统原理》课程教学资源(资料讲义)数据库系统原理总复习(负责人:颜清).doc
- 上饶师范学院:《数据库系统原理》课程教学资源(试卷习题)数据库系统原理习题集及答案.doc
- 上饶师范学院:《数据库系统原理》课程教学资源(资料讲义)数据库系统原理实验讲义(上机实验讲义).doc
- 上饶师范学院:《数据库系统原理》课程教学资源(电子教案)数据库系统原理电子教案(共九章).doc
- 上饶师范学院:《数据库系统原理》课程教学资源(PPT课件)数据库系统概论 An Introducation to Database System(完整版).ppt
- The Not So Short Introduction to LaTeX2ε(Or LATEX 2ε in 139 minutes).pdf
- 同济大学:《大学计算机基础》课程教学资源(试卷习题)试卷样本及答案.doc
- 同济大学:《大学计算机基础》课程教学资源(教案讲义)Data Representation.ppt
- 同济大学:《大学计算机基础》课程教学资源(教案讲义)Basics of Computer System.ppt
- 同济大学:《大学计算机基础》课程教学资源(教案讲义)Database.ppt
- 同济大学:《大学计算机基础》课程教学资源(教案讲义)Microsoft Excel.ppt
- 同济大学:《大学计算机基础》课程教学资源(教案讲义)Fundamentals of Computers Introduction(负责人:臧笛).ppt
- 同济大学:《大学计算机基础》课程教学资源(教案讲义)Basics of Multimedia 1.ppt