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の操作系统学习札记》
内核态的出现,让计算机系统的权力向操作系统高度集中了. 操作系统分出内核态和用户态,就是为了进行不同等级的权限管理, 从而更好的适应多用户多任务并发的工作环境. 用户态和内核态的来源 在早期的单进程单 ...
随机推荐
- java多线程之计算数量
package Thread.Abort; import java.util.ArrayList; import java.util.List; import java.util.Random; im ...
- grep和sed替换文件中的字符串
sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...
- .NET 请求被挂起,前端轮询,委托
起因:因项目需要监控方法中计算进度,故而想通过AJAX调用,返回前端显示进度,结果开发中遇到第二个AJAX请求被挂起,需要等到第一个请求(计算)完成后,才会被处理到. 百度种种,知其原因是在Sessi ...
- printf("%*s\n", 1, ""); 使用"printf();" 的格式化输出动态制定等宽度输出。
#include <stdio.h> #include <string.h> int main() { const char the_text[] = "this i ...
- [ActionScript 3.0] AS3 绘制立方体
package { import flash.display.Sprite; import flash.events.Event; import flash.geom.Vector3D; import ...
- JAVA中复写equals方法
在JAVA中“==”用于比较两个引用对象的地址是否相同.但是如果我们想比较两个对象的内容是否相同,通常会覆写equals方法.equals方法用来比较两个对象的内容是否相等. package org. ...
- 理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM)
理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM) 参考链接:http://www.zhihu.com/question/20962240 参考链接:http://blog. ...
- rhel5 新建用户提示:the home directory already exists.
rhel5 新建用户提示:the home directory already exists.(as4不存在这个问题) 环境如下: [oracle@rhel5 ~]$ df -hFilesystem ...
- iOS 数据存储 - 归档和解归档
这里的归档主要是用于自定义类的归档和解档.我们这里使用NSKeyedArchiver和NSKeyedUnarchiver来归档和解档. 注意:自己定义的类需要实现<NSCoding>,如: ...
- 蓝桥杯---数独(模拟 || dfs)
[编程题](满分33分) "数独"是当下炙手可热的智力游戏.一般认为它的起源是"拉丁方块",是大数 学家欧拉于1783年发明的. 如图[1.jpg]所示:6x6 ...