Librerías y packages (paquetes)

Slides:



Advertisements
Presentaciones similares
Lenguajes de Descripción de Hardware
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Métodos de diseño en VHDL.
Curso de java básico (scjp)
2 Estructuras lineales.. Qué es una estructura? La estructura es una manera de conectar los valores y de manera automática conectarlos de manera que tengan.
SENTENCIAS SECUENCIALES
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo Introducción a PL/SQL Conceptos básicos.
Síntesis Lógica con HDL
Circuitos Digitales II
LA COMPUTADORA.
Introducción al VHDL VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables.
Programación de sistemas reconfigurables
Temas Operaciones básicas Instalando el compilador
Subprogramas: Procedimientos
Historia La base del C proviene del BCPL (lógica programable en codigo binario), escrito por Martin Richards, y del B escrito por Ken Thompson en 1970.
EXCEPCIÓN DE ERRORES.
Seminario de Lenguajes A – Opción Ada Seminario de Lenguajes A – Opción Ada – Raúl Champredonde1 Tipos definidos por el usuario –Parámetros array ilimitados.
Programación 1 Presentación de c++
COMPUTACION 2009 C lase 11 9/17/2014 Computación - Fac. Ingeniería - UNMDP2 Paradigma de programación estructurada  La programación estructurada trata.
MÓDULO DE PROCEDIMIENTOS Los módulos también pueden contener subrutinas y funciones → MÓDULO DE PROCEDIMIENTOS  PROCEDIMIENTOS → son compilados como parte.
VHDL.
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
HERRAMIENTAS CAD Jorge Felipe Blanco Medina Rafael Duran Oscar Pizza.
Interfaces de entrada / salida
Interfases de Entrada / Salida
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
GESTION DE LA JERARQUIA
Capítulo.2 - Fundamentos del Lenguaje VHDL
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
VHDL Breve introducción.
Others, soporte para síntesis. Los agregados tienen la habilidad de usar la sentencia others, la cual asignará un valor a todos los otros elementos de.
Programación en Pascal
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Diseño lógico combinacional mediante VHDL
Programación Básica con NQC Patricio A. Castillo Pizarro 25/08/2007.
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Unidad II Introducción a la programación en C++
Introducción a las Interfaces de entrada / salida.
Diseño Lógico Combinacional con VHDL
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Integración de entidades en VHDL
Capítulo.3 - Diseño Lógico Combinacional con VHDL
Diseño lógico secuencial con VHDL
DIPLOMADO EN SISTEMAS DIGITALES USO DE LOS PERIFERICOS DEL SISTEMA DE DESARROLLO SPARTAN 3E Instructor: MC. Rodrigo Lucio Maya Ramírez.
FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García.
Definición de software
Podemos utilizar modules para intercambiar datos entre diferentes unidades de un mismo programa. Por ejemplo entre diferentes subrutinas, sin la necesidad.
Diseño jerárquico con VHDL
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo Uso de Procedimiento y Funciones Conceptos básicos.
BANCOS DE PRUEBAS CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Ada 2º Parte (variables, ámbitos, subrutinas, tipos abstractos de datos y excepciones)
Algorítmica y Programación
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
5 Paquetes ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
VHDL. Indice Sistemas Digitales - FIUBA VHDL Lenguajes descriptores de hardware VHDL - Introducción - Entidad de diseño (declaración de entidad y cuerpo.
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
6 Triggers ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
BANCOS DE PRUEBA CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Asignación de señales en VHDL. VHDL: Asignación de señales La asignación a una señal establece una o más transacciones sobre la misma Cada señal tiene.
U.M.S.A. ETN-601 Sistemas Digitales Decodificador 3 a 8 Aux. David Marza Herrera.
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
Hardware Description Language
Programación en VHDL.
ispLSI1032E- Estructura Disseny Electrònic Assistit per Ordinador
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
(Numerically Controlled Oscillator)
Transcripción de la presentación:

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. El nombre lógico de la librería de trabajo no tiene por qué coincidir con el nombre del directorio

Packages Un package es un fichero VHDL que contiene declaraciones, constantes, tipos, funciones y procedimientos que se usan en el diseño. Los packages también se almacenan en una librería. library ieee; -- 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

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>;

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.

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: library std; use std.standard.ALL; Entre las librerías más usadas existe la ieee que 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.

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 exterior Cuerpo: programación de las funciones y procedimientos Sintaxis: package <nombrePackage> is [declaraciones, atributos, ... a ser exportados] end; package body <nombrePackage> is [cuerpos] end;

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>;  9 10 package body <package_name> is 11         [subprogram_bodies]; 12         [internal_subprogram_declarations]; 13         [internal_constant_declaration]; 14         [internal_type_declaration]; 15 end <package_name>;

Ejemplo: Memoria ROM  1 library ieee;  2 use ieee.std_logic_1164.all;  3 use ieee.numeric_std.all;  4  5 package pkg_rom is  6  7  constant data_length : natural := 16;  8  constant addr_length : natural := 10;  9  constant mem_size    : natural := 2**addr_length; 10  subtype rom_word is std_logic_vector(data_length-1 downto 0); 11  type mem_type is array (mem_size-1 downto 0) of rom_word; 12  13  constant mem : 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"); 20 21 end package pkg_rom;

Como usar el paquete anterior  1 library ieee;  2 use ieee.std_logic_1164.all;  3 use ieee.numeric_std.all;  4 use work.pkg_rom.all;  5  6 entity sync_rom is  7    port (  8      clk     :in  std_logic;  9      address :in  std_logic_vector(addr_length-1 downto 0); 10      data_out:out std_logic_vector(data_length-1 downto 0) 11           ); 12 end sync_rom; 13 14 architecture synth of sync_rom is 15 16 begin 17    rom_proc : process (clk) 18    begin 19       if rising_edge(clk) then 20          data_out <=mem(to_integer(unsigned(address))); 21        end if; 22    end process rom_proc; 23 24 end architecture synth;

Tenga en cuenta que: En primer lugar el paquete en sí debe ser guardado con una extensión .vhd e 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.

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