1 / 12

Librerías y  packages (paquetes)

Librerías y  packages (paquetes). Diseño de circuitos digitales con VHDL Iliana maria rumbo barros. Librerías. Los componentes compilados se almacenan en librerías. Los componentes compilados del propio diseño se almacenan en una librería por defecto denominada  work .

titus
Download Presentation

Librerías y  packages (paquetes)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Librerías y packages (paquetes) Diseño de circuitos digitales con VHDL Iliana maria rumbo barros

  2. Librerías • Los componentes compilados se almacenan en librerías. • Los componentes compilados del propio diseño se almacenan en una librería por defecto denominada work. • El nombre lógico de la librería de trabajo no tiene por qué coincidir con el nombre del directorio

  3. Packages • Unpackage es un fichero VHDL que contiene declaraciones, constantes, tipos, funciones y procedimientos que se usan en el diseño. • Lospackages también se almacenan en una librería. libraryieee; -- Definición de librería a usar use ieee.std_logic_1164.all; -- Definición de package a usar use ieee.numeric_std.all;-- Definición de package a usar

  4. Estructura de un Package package <NOMBRE_PAQUETE> is [type_decl] [subtype_decl] [constant_decl] [deferred_constant_decl] [subprogram_header_decl] [component_decl] end<NOMBRE_PAQUETE>;

  5. Definición para el cuerpo de un package package body<NOMBRE_PAQUETE> is [deferred_constant_value] [subprogram_body] end <NOMBRE_PAQUETE>; • Inclusión de un packege en un diseño: • Syntax: • the default library is WORK use [library_name.]package_name.all; • Si la librería no es work, hay que incluir una línea definiendo a la librería.

  6. Declaración de una Librería • Las librerías y los packages han de ser declarados antes de ser usados: • library <nombreLibrería>;use <nombreLibrería>.<nombrePackage>.ALL; • Todos los tipos y las funciones predefinidas vienen definidas en el package standard: • librarystd;usestd.standard.ALL; • Entre las librerías más usadas existe la ieeeque actualmente se ha convertido en estándar para todos los usuarios de VHDL. Tanto es así, que usualmente se trabaja con la librería ieee. En ella se encuentran definidos los tipos std_logic, std_ulogic y sus derivados.

  7. Declaración de un Package • Contiene constantes, tipos, funciones y procedimientos y Consta de: • Declaración: Determina (como la entidad) las constantes, tipos, y subprogramas que se verán desde el exteriorCuerpo: programación de las funciones y procedimientos • Sintaxis: • package <nombrePackage> is[declaraciones, atributos, ... a ser exportados]end;package body <nombrePackage> is[cuerpos]end;

  8. Ejemplo de la estructura 1 package<package_name>is 2         [subprograma_declarations]; 3         [constant_declarations]; 4         [type_declarations]; 5         [component_declarations]; 6         [attribute_declarations]; 7         [attribute_specifications]; 8 end<package_name>; 910 packagebody<package_name>is11         [subprogram_bodies];12         [internal_subprogram_declarations];13         [internal_constant_declaration];14         [internal_type_declaration];15 end<package_name>;

  9. Ejemplo: Memoria ROM 1 libraryieee; 2 use ieee.std_logic_1164.all; 3 useieee.numeric_std.all; 4 5 packagepkg_romis 6 7  constantdata_length:natural:= 16; 8  constantaddr_length:natural:= 10; 9  constantmem_size:natural:= 2**addr_length;10  subtyperom_wordisstd_logic_vector(data_length-1 downto 0);11  typemem_typeisarray (mem_size-1 downto 0) ofrom_word;12 13  constantmem:mem_type:=14        (0 =>x"abcd", 1 =>x"beef", 2 => x"5555",3 => x"1010",15         4 => x"5a6b", 5 => x"f0f0", 6 => x"1234",7 =>x"fabc",16         8 => x"2345", 9 => x"9876", 10=> x"5432",11=> x"6666",17        12 => x"0101",18        13 =>std_logic_vector(to_unsigned (1234,16)),19        others=> x"4247");2021 endpackagepkg_rom;

  10. Como usar el paquete anterior  1 libraryieee; 2 use ieee.std_logic_1164.all; 3 useieee.numeric_std.all; 4 usework.pkg_rom.all; 5 6 entitysync_romis 7    port ( 8      clk:instd_logic; 9      address:instd_logic_vector(addr_length-1 downto 0);10      data_out:outstd_logic_vector(data_length-1 downto 0)11           );12 endsync_rom;1314 architecturesynthofsync_romis1516 begin17    rom_proc:process (clk)18    begin19       ifrising_edge(clk) then20          data_out<=mem(to_integer(unsigned(address)));21        endif;22    endprocessrom_proc;2324 endarchitecturesynth;

  11. Tenga en cuenta que: • En primer lugar el paquete en sí debe ser guardado con una extensión .vhde importado en el proyecto que se está trabajando como si fuera un componente más del proyecto. • En segundo lugar, debemos decirle a la herramienta de síntesis que se quiere hacer uso del paquete dentro de la síntesis del componente que se está sintetizando. • En tercer lugar se usan las declaraciones del paquete dentro del componente como si  se hubieran declarado dentro del mismo componente.

  12. Bibliografía • http://www.cannic.uab.es/docencia/vhdli06/VHDLI06.htm • http://www.dte.us.es/ing_inf/dise_comp/disenio_y_simulacion__vhdl_08_09_ISE.pdf • http://hdl-fpga.blogspot.com/2011/06/paquetes-declaracion-y-uso.html

More Related