VHDL学习札记:library and Package

您所在的位置:网站首页 VHDL文件 VHDL学习札记:library and Package

VHDL学习札记:library and Package

2023-09-04 23:39| 来源: 网络整理| 查看: 265

开发环境: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语句把头文件(申明变量等)加进设计文件中,以便使用其中的模块及变量。

* 感谢曾博

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3