参考:http://www.cnblogs.com/garylee/archive/2012/11/16/2773596.htmlhttp://

http://forums.xilinx.com/t5/High-Level-Synthesis-HLS/Getting-from-HLS-RTL-to-implementation-through-a-Tcl-script/td-p/368835

开发环境: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的更多相关文章

  1. BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计

    感觉自我表述能力有欠缺,技术也不够硬,所以之后的Windows8应用开发学习札记的文章就偏向于一些我认为较难的地方和重点了多有抱歉. 上节课是入门,这节课就已经开始进行视图设计了. Windows应用 ...

  2. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  3. SQL菜鸟学习札记(一)

    刚开始学SQL,从最基础的语句开始写,用一个LOL数据库做实验.目前使用的工具是MySQL Workbench,感觉比较顺手,界面没花多久时间就读懂的差不多了,所以目前就使用这个工具来做SQL的学习了 ...

  4. java学习札记

    java学习札记 0x0 学习原因  本来打算大三再去跟着课程去学习java的,但是现在题目越来越偏向java,所以迫于无奈开启了java的学习篇章,同时也正好写个笔记总结下自己学习一门语言的流程. ...

  5. Masonry学习札记

    Masnory学习札记 在之前的文章里有草草提到过Masonry自动布局,可这么重要第三方布局框架的怎么可以怎么随便带过呢!昨天在完成页面的时候刚好遇到了被Masorny功能惊叹的部分,所以趁热打铁写 ...

  6. Java 学习札记(三)免安装版TomCat中tomcat6w.exe的运行

    1.使用环境 很多时候我们用的是官网的解压免安装版的Tomcat,相比安装Tomcat除了少了安装步骤以外还少了tomcat6w.exe运行所需要的环境变量,所以一般Java开发免安装版的已经足够使用 ...

  7. Library Publication 时遇到 "more than one library with package name" 错误的解决方法

    Library Publication 是 Gradle 在0.9.0 时增加的一个新特性,它的作用是让Lib也能发布不同的版本 在这之前,Lib只能发布release版本,你的项目中依赖的所有Lib ...

  8. Python入门之面向对象module,library,package之间区别

    背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕. 此处,简单总结一下,module,library,package之间的大概区别. Python中的module的简介 ...

  9. 2.2.1 用户态、内核态的形成 -《zobolの操作系统学习札记》

    内核态的出现,让计算机系统的权力向操作系统高度集中了. 操作系统分出内核态和用户态,就是为了进行不同等级的权限管理, 从而更好的适应多用户多任务并发的工作环境. 用户态和内核态的来源 在早期的单进程单 ...

随机推荐

  1. mysqldump 数据库迁移并改换engine

    1. 导出数据库 mysqldump -h172.18.165.xxx -P3306 -uroot -pxxx --add-drop-database --default-character-set= ...

  2. 改变select组件的option选中状态的快捷方法

    以前我都是在<option>标签处通过判断value是否与其中一个相同然后输出selected="selected"来处理的,今天发现可以直接能过Js改变<sel ...

  3. Spring 的 BeanPostProcessor接口实现

    今天学习了一下Spring的BeanPostProcessor接口,该接口作用是:如果我们需要在Spring容器完成Bean的实例化,配置和其他的初始化后添加一些自己的逻辑处理,我们就可以定义一个或者 ...

  4. SQL行转列汇总

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P ...

  5. 页面设计--CheckBoxList

    CheckBoxList 下拉多选控件 控件属性如下图: 取值设置:多选只能从数据库表中来获取:支持过滤条件设置(支持权限条件值.控件值条件.系统变量值等做为过滤条件) web效果显示:

  6. java String 的方法 (01)

    1.int compareTo(String other) 按照字典的顺序,如果字符串位于String other 之前,则返回一个负数,如果字符串位于othere之后,则返回一个正数,如果两个字符串 ...

  7. @valid表单验证demo

    springMVC 表单验证demo  视图层使用的是jsp

  8. 自定义View的基本流程

    1.明确需求,确定你想实现的效果2.确定是使用组合控件的形式还是全新自定义的形式,组合控件即使用多个系统控件来合成一个新控件,你比如titilebar,这种形式相对简单,参考:http://blog. ...

  9. Win2008或IIS7的文件上传大小限制解决方案

    默认情况下,IIS7的上传限制为200K.当上传文件小于30M时,可以通过如下方法设置:在iis7中找到asp设置,在“asp”的“限制属性”中最后一行“最大请求主体限制”,修改该值为你所想要的,如2 ...

  10. oracle错误处理及实操-【INS-20802】

    服务器硬件要求:内存>1GB,如果是虚拟机,必须设置内存为1.5G以上. 确定好主机名,安装完成以后,不要再修改主机名,一旦修改会导致oracle启动失败,注意:使用默认的localhost.l ...