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の操作系统学习札记》
内核态的出现,让计算机系统的权力向操作系统高度集中了. 操作系统分出内核态和用户态,就是为了进行不同等级的权限管理, 从而更好的适应多用户多任务并发的工作环境. 用户态和内核态的来源 在早期的单进程单 ...
随机推荐
- $.ajax获取不到数据问题解决
$("#updateflow").click(function () { $.ajaxSetup({ contentType: "application/json;cha ...
- svn: Can't convert string from 'UTF-8' to native encoding 的解决办法
http://www.leakon.com/archives/610 http://www.toplee.com/blog/566.html http://svnbook.red-bean.com/e ...
- 第一个jave程序-helloworld
1.打开myeclipse,其中有个select a workspase的过程,即选择工作空间,这里需要更换空间,不要放C盘,防止项目越来越大占用C盘的空间 2.创建java工程 3.取工程名,填写自 ...
- [kuangbin带你飞]专题七 线段树
ID Origin Title 228 / 440 Problem A HDU 1166 敌兵布阵 207 / 438 Problem B HDU 1754 I Hate It ...
- Oracle Cluster Registry Location to be Added is not Accessible
APPLIES TO: Oracle Server - Enterprise Edition - Version 11.2.0.1 and laterInformation in this docum ...
- DP走方格型
Hrbust 1812 http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1812 有 ...
- VC让对话框显示就最大化
方法一:在OnInitDialog()函数中 ShowWindow(SW_SHOWMAXIMIZED); 初始化的时候 方法二: 当然,你可以获取屏幕大小,然后设置窗口位置/大小 //ShowWind ...
- C#中char[]与string之间的转换
string 转换成 Char[] string ss = "abcdefg"; char[] cc = ss.ToCharArray(); Char[] 转换成string st ...
- 增量升级(省流量更新)的Android客户端实现
转载与 zhouhuiah的专栏 http://blog.csdn.net/zhouhuiah/article/details/16939937 本文在以上两篇博客的基础上再增加了异常处理,并将生成的 ...
- Python实现顺时钟回形矩阵
无意间在网上看到了一个面试题是,写出一个回形矩阵.实现的效果大致如下: [ 1, 2, 3, 4, 5] [16, 17, 18, 19, 6] [15, 24, 25, 20, 7] [ ...