当前课程知识点:EDA技术与应用 > 第四章 VHDL语言概述 > 4.3 库和库声明 > 4.3.2 库和库声明 教学视频
同学们好
本讲我们来学习
VHDL中的库和库的声明
VHDL语言中的库
Library是一些常用代码的集合
库的建立和应用
可以使我们编写的代码
结构更加简洁流畅,效率更高
首先,我们来看什么是库
再利用VHDL进行电路设计的时候
为了提高设计效率
并且使我们的设计
能够遵循某些统一的
语言标准或数据格式
有必要将一些经常使用的代码
存放到库中
以便于设计的重用和代码的共享
这些代码通常会以函数(FUNCTION)
过程(PROCESS)
或元件(COMPONENT)
等标准形式保存在程序包(PACKAGE)中
而这些程序包又分别存放在不同的库中
VHDL中常用的库主要有三个
ieee库、std库和work库
ieee库是VHDL设计中最常用的库
它包含了许多ieee标准的程序包
和其他一些支持工业标准的程序包
通常,对于FPGA和CPLD的开发来说
ieee库中的四个程序包就已经足够用了
这四个程序包分别是
std_logic_1164程序包
在这个程序包中定义了
std_logic等多值逻辑系统
第二个是std_logic_arith程序包
这个程序包主要定义了
sigend(有符号数)和
unsigend(无符号数)等数据类型
以及相关的算术运算和比较运算操作符
另外,这个程序包中
还包含许多用于数据类型转换的函数
可以实现不同数据类型之间的转换
第三个是std_logic_signed程序包
这个程序包内部包含一些函数
可以使std_logic_vector类型的数据
像signed(有符号数)类型的数据一样
很方便地进行运算操作
第四个是std_logic_unsigned程序包
这个程序包内部包含一些函数
可以使std_logic_vector类型的数据
像unsigned(无符号)类型的数据一样
进行运算操作
在这些程序包中
std_logic_1164程序包
是最重要和最常用的
大部分数字系统的设计
都要用到这个程序包
std库是VHDL设计环境的标准资源库
主要包括数据类型和输入输出文本等内容
std库中包含standard
和textio两个程序包
work库是当前工作库
用户当前设计的所有代码
都存放在work库中
在使用库之前
需要首先对库进行声明
经过声明之后
在设计中就可以调用库中的代码了
库声明的方式非常简单
主要是由LIBRARY语句和
USE语句来完成的
其中LIBRARY和USE
是VHDL语言中保留的关键字
用于进行库声明
和库中包含的程序包的声明
library_name
是需要声明的库的名称
package_name
是库中某个程序包的名称
package_parts是该程序包中
所包含的一些项目的名称
如果需要调用该程序包中的所有项目
就可以用“all”代替项目名
例如, LIBRARY ieee;
USE ieee.std_logic_1164.all;
上述两条语句就完成了对ieee库的声明
和对ieee库中
ieee.std_logic_1164程序包的声明
以及该程序包中所包含的全部项目的声明
在VHDL语言中,
用分号表示一个语句和声明的结束
当出现“--”时
表示后面的文字是对程序的注解
综上所述
库声明需要用到两条语句
分别用关键字LIBRARY和USE开头
第一条语句声明了设计中可以使用ieee库
第二条语句声明使用ieee库的
ieee.std_logic_1164程序包的所有项目
需要注意的是ieee库
是按照国际ieee组织
制定的工业标准进行编写的
是内容丰富的标准资源库
但是ieee库
并非符合VHDL标准的库
所以在使用前必须进行上述的声明
而std库和work库
是符合未VHDL标准的库
在VHDL代码中是默认可见的
因此在使用前无需作上述声明
在VHDL语言中
库就像是一种用来存储预先完成的程序包
数据类型和元件的“仓库”
库里的元素
可以帮助我们更有效的编写VHDL代码
因此,我们需要了解
在设计中有哪些“仓库”是经常用到的
以及这些“仓库”里都有哪些东西
如果要使用库里的元素
就必须在设计中
首先打开这个“仓库”的大门
这就是库声明的功能
好,本讲到这里就结束了
同学们,再见!
-1.1 EDA技术概述
--1.1.3 EDA技术概述 单元测验
-2.1 可编程逻辑器件(PLD)概述
--2.1.3 可编程逻辑器件概述 单元测验
-2.2 CPLD的结构和原理
--2.2.3 CPLD的结构和原理 单元测验
-2.3 FPGA的结构和原理
--2.3.3 FPGA的结构和原理 单元测验
-2.4 FPGA和CPLD的选用
--2.4.3 FPGA和CPLD的选用 单元测验
-2.5 FPGA与CPLD的编程和配置
--2.5.3 FPGA与CPLD的编程与配置 单元测验
-3.1 QuartusII概述
--3.1.3 Quartus Ⅱ概述 单元测验
-3.2 新建工程
--3.2.3 新建工程 单元测验
-3.3 设计输入
--3.3.3 设计输入 单元测验
-3.4 设计编译
--3.4.3 设计编译 单元测验
-3.5 仿真验证
--3.5.3 仿真验证 单元测验
-3.6 器件编程
--3.6.4 器件编程 单元测验
-3.7层次化设计
--3.7.3 层次化设计 单元测验
-3.8 宏功能模块的使用
--3.8.3 宏功能模块的使用 单元测验
-4.1 VHDL语言概述
--4.1.3 VHDL语言概述 单元测验
-4.2 VHDL代码的结构
--4.2.3 VHDL代码的结构 单元测验
-4.3 库和库声明
--4.3.3 库和库声明 单元测验
-4.4 实体说明
--4.4.3 实体说明 单元测验
-4.5 结构体
--4.5.3 结构体 单元测验
-4.6 VHDL预定义数据类型
--4.6.3 VHDL预定义数据类型 单元测验
-4.7 常量、变量和信号
--4.7.3 常量、变量和信号 单元测验
-4.8 运算操作符和属性
--4.8.3 运算操作符和属性 单元测验
-4.9 IF语句和WAIT语句
--4.9.3 IF语句和WAIT语句 单元测验
-4.10 CASE语句
--4.10.3 CASE语句 单元测验
-4.11 LOOP循环语句
--4.11.3 LOOP循环语句 单元测验
-4.12 进程
--4.12.3 进程 单元测验
-4.13 条件信号赋值语句
--4.13.3 条件信号赋值语句 单元测验
-4.14 选择信号赋值语句
--4.14.3 选择信号赋值语句 单元测验
-4.15 元件例化语句
--4.15.3 元件例化语句 单元测验
-4.16 VHDL模块化设计
--4.16.3 VHDL模块化设计 单元测验
-5.1 设计方法概述
--5.1.3 设计方法概述 单元测验
-5.2 EDA综合设计案例(1)— 数字钟的设计
--5.2.2 EDA综合设计设计案例1— 数字钟的设计 教学视频
--5.2.3 EDA综合设计案例1 单元测验
-5.3 EDA综合设计案例(2)—16×16点阵控制器设计
--5.3.2 EDA综合设计案例2—16×16点阵控制器设计 教学视频
--5.3.3 EDA综合设计案例2 单元测验