VHDL学习札记:library and Package
参考:http://www.cnblogs.com/garylee/archive/2012/11/16/2773596.htmlhttp://
开发环境:VHDL, Leon3, Quartus
应用场合:在VHDL设计文件中,常见到如下代码出现在首段,作为类似头文件的作用(例如Verilog中的include),本文阐述的是这段语句如何在工程中使用:

1 library ieee;
2 use ieee.std_logic_1164.all;
3
4 --Leon库
5 library grlib;
6 use grlib.amba.all;
7 use grlib.stdlib.all;
8 library techmap;
9 use techmap.gencomp.all;
10 library gaisler;
11 use gaisler.memctrl.all;
12 use gaisler.leon3.all;
13 use gaisler.uart.all;
14 use gaisler.misc.all;
15 use gaisler.jtag.all;
16 library esa;
17 use esa.memoryctrl.all;
18 use work.config.all;
19
20 -- 用户自定义库
21 library rcq;
22 use rcq.seg.all;

1. library
例如:library grlib
则系统首先在项目文件中寻找相关的文件路径(查看是否有该文件名),例如项目中文件有:
当搜素到有grlib时,会把grlib申明为一个库,把grlib目录下的文件当作库中的文件。
2. Package
当申明了库grlib后,一般会有:
use grlib.amba.all;
其中amba是Package,所以能被调用。amba.vhd部分代码如下:

1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.all;
4 -- pragma translate_off
5 use std.textio.all;
6 -- pragma translate_on
7 library grlib;
8 use grlib.config.all;
9 use grlib.stdlib.all;
10
11 package amba is
12
13
14 constant CORE_ACDM : integer := CFG_AHB_ACDM;
15
16 constant NAHBMST : integer := 16; -- maximum AHB masters
17 constant NAHBSLV : integer := 16; -- maximum AHB slaves
18 constant NAPBSLV : integer := 16; -- maximum APB slaves
19 constant NAHBIRQ : integer := 32; -- maximum interrupts
20 constant NAHBAMR : integer := 4; -- maximum address

由于申明了amba为package,因此能通过use grlib.amba.all来调用amba.vhd文件,使用其内部申明的变量。
3. 用户自定义库
那用户如何把自己的文件作为库添加到工程里面呢?步骤如下:
1) 用户编写VHDL设计代码,然后在Quartus里面把文件导入至工程中,如下:
其中seg.vhd申明了seg为Package,以便调用
1 package seg is
2
3 -- Design Code
4
5 end package;
2)在工程顶层文件leon3mp.vhd中,申明如下代码:
1 -- 用户自定义库
2 library rcq; //定义了库rcq,系统查找项目中的目录
3 use rcq.seg.all; //调用了rcq目录包含的seg(Package),则相当于
4 //include了seq.vhd文件
这样,通过library及use语句把头文件(申明变量等)加进设计文件中,以便使用其中的模块及变量。
VHDL学习札记:library and Package的更多相关文章
- BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计
感觉自我表述能力有欠缺,技术也不够硬,所以之后的Windows8应用开发学习札记的文章就偏向于一些我认为较难的地方和重点了多有抱歉. 上节课是入门,这节课就已经开始进行视图设计了. Windows应用 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- SQL菜鸟学习札记(一)
刚开始学SQL,从最基础的语句开始写,用一个LOL数据库做实验.目前使用的工具是MySQL Workbench,感觉比较顺手,界面没花多久时间就读懂的差不多了,所以目前就使用这个工具来做SQL的学习了 ...
- java学习札记
java学习札记 0x0 学习原因 本来打算大三再去跟着课程去学习java的,但是现在题目越来越偏向java,所以迫于无奈开启了java的学习篇章,同时也正好写个笔记总结下自己学习一门语言的流程. ...
- Masonry学习札记
Masnory学习札记 在之前的文章里有草草提到过Masonry自动布局,可这么重要第三方布局框架的怎么可以怎么随便带过呢!昨天在完成页面的时候刚好遇到了被Masorny功能惊叹的部分,所以趁热打铁写 ...
- Java 学习札记(三)免安装版TomCat中tomcat6w.exe的运行
1.使用环境 很多时候我们用的是官网的解压免安装版的Tomcat,相比安装Tomcat除了少了安装步骤以外还少了tomcat6w.exe运行所需要的环境变量,所以一般Java开发免安装版的已经足够使用 ...
- Library Publication 时遇到 "more than one library with package name" 错误的解决方法
Library Publication 是 Gradle 在0.9.0 时增加的一个新特性,它的作用是让Lib也能发布不同的版本 在这之前,Lib只能发布release版本,你的项目中依赖的所有Lib ...
- Python入门之面向对象module,library,package之间区别
背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕. 此处,简单总结一下,module,library,package之间的大概区别. Python中的module的简介 ...
- 2.2.1 用户态、内核态的形成 -《zobolの操作系统学习札记》
内核态的出现,让计算机系统的权力向操作系统高度集中了. 操作系统分出内核态和用户态,就是为了进行不同等级的权限管理, 从而更好的适应多用户多任务并发的工作环境. 用户态和内核态的来源 在早期的单进程单 ...
随机推荐
- CentOS yum安装和配置MySQL(转载)
From:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html] 一.MySQL简介 说到数据库,我们大多想到 ...
- Salted Password Hashing
Here are some examples of poor wacky hash functions I've seen suggested in forums on the internet. m ...
- 第4章 管道和FIFO
4.1 管道 管道是由pipe函数创建的,提供一个单向数据流. 头文件 #include <unistd.h> 函数原型 int pipe(int fd[2]); 返回值 成功则为0,出错 ...
- IDEA激活服務器
IDEA: http://www.iteblog.com/idea/key.php webstorm11:http://15.idea.lanyus.com/
- [ActionScript 3.0] 根据xml属性查找相应xml节点,递归函数。
import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; var xml:XML; var ...
- ecmall程序结构图与常用数据库表
ecm_acategory:存放的是商城的文章分类.ecm_address:存放的是店长的地址ecm_article:存放的是商城的相关文章ecm_brand:存放的是商城的品牌分类(注意与表ecm_ ...
- IOS插件管理器: alcatraz
官网 http://alcatraz.io/ 推荐几个应用,均可以由alcatraz来进行安装: 1. 格式化 clangformat. 插入自定义的格式化文件:https://raw.githubu ...
- xcode C++一些简单设置
下面是一个要用到mysql库的C++程序设置: 添加用户头文件: 双击项目-Build Settings-Search Paths: Library Search Paths: /usr/local/ ...
- Java将Unix时间戳转换成指定格式日期
public String TimeStamp2Date(String timestampString, String formats){ Long timestamp = Long.pars ...
- Android设置透明、半透明等效果
设置透明效果 大概有三种 1.用android系统的透明效果Java代码 android:background="@android:color/transparent" 例如 设 ...