库是VHDL程序设计的公共资源,可以把库看成是一种用来存储预先完成的程序包、数据集合体和元件的仓库。为了使已定义的常数、数据类型、元件调用说明以及子程序能被其他的设计实体方便地访问和共享,可以将它们收集在一个VHDL程序包中。多个程序包可以并入一个VHDL库,使之适用于更一般的访问和调用范围。
1.库(library)
库语句:
library 库名; --打开指定的库
例8.1.1源程序中的第一句表示打开ieee库。ieee库是VHDL设计中最重要的库,其中包括std_logic_1164,std_logic_unsigned,std_logic_arith等程序包。库分为5种:ieee库、std库、asic库、work库和用户定义库。
因为在ieee库中符合IEEE标准的程序包并非符合VHDL标准,如std_logic_1164程序包和std_logic_unsigned程序包,所以在使用时必须声明。例如例8.1.1源程序中的第1,2句,如果不给予声明则例8.1.1源程序中端口CP和Q的数据类型因未定义而无意义;如果没有第3句则不能进行运算Q1+1,因为两个加数的数据类型不一致。而std库符合VHDL标准,故在使用时不必声明。work库是用户的VHDL设计的现行工作库,用于存放用户设计和定义的一些设计单元和程序包,自动满足VHDL标准,在使用时不必声明。
2.程序包(package)
在VHDL中,常数说明、数据类型说明、元件调用说明以及子程序说明等在某设计实体说明后,不能为其他设计实体所引用,程序包就是为了使一组常数说明、数据类型说明、元件调用说明以及子程序说明等内容能够被所有的设计实体所引用,前提是先打开此程 序包。
(1)程序包由包首和包体组成,其一般格式为:
package 程序包名 is
程序包首说明部分
end 程序包名;
package body 程序包名 is(www.daowen.com)
程序包体说明部分以及包体内容
end 程序包名;
(2)程序包打开语句:
use 库名.程序包名.项目名; --打开指定库中特定程序包所选定的项目
use 库名.程序包名.all; --打开指定库中特定程序包内所有的内容
3.配置(configuration)
配置可以把特定的结构体指定给一个确定的实体。通常在大而复杂的VHDL工程设计中,配置语句可以为实体配置一个结构体。配置语句还能用于对元件的端口连接进行重新安排,用端口映射把新元件映射到相应的信号上去,这种功能为设计选用和修改元件增加了灵活性。
配置语句:
configuration 配置名 of 实体名 is
配置说明
end 配置名;
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。