Diseño jerárquico con VHDL

Slides:



Advertisements
Presentaciones similares
Lenguajes de Descripción de Hardware
Advertisements

Métodos de diseño en VHDL.
Modelando aplicaciones
Circuitos Digitales II
Introducción a la Programación
Presentación Asignatura POF030 Semana 1. Contenido En forma general, los conceptos que se estudiarán en la asignatura son: – Procedures – Functions –
Subprogramas: Procedimientos
Tipos de Datos Abstractos Modularidad
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Teoría de lenguajes y compiladores
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Circuitos Secuenciales
Circuitos Combinacionales Comunes
VHDL.
Sistemas Secuenciales
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.
Diseño de un Controlador de Luces de un Semáforo
Demultiplexor y Chip 74LS154
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
SISTEMAS DE NUMERACIÓN
Clase 10: Estructuras de datos y arreglos.
M.S.C. Ivette Hernández Dávila
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.
Codificador de convolución
FUNCIONAMIENTO BÁSICO Fuente inicial:. Arquitectura de computadores Los computadores digitales utilizan como modelo para su funcionamiento y organización.
Diseño lógico combinacional mediante VHDL
LENGUAJE DE PROGRAMACIÓN
PROGRAMACIÓN PROCEDIMENTAL
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Ing. Diego Barragán Guerrero
Introducción Lenguaje de Programación ING2101 SECC Ayud. Ariel Fierro Sáez.
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 13/05/2006.
Arquitectura de Von Neumann
APLICACIÓN EN VISUAL BASIC
Tecnologías de las computadoras
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Integración de entidades en VHDL
INGENIERÍA DE SOFTWARE
CLASE 5.
Programación Orientada a Objetos
Diseño lógico secuencial con VHDL
Ecuaciones Algebraicas
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Términos algoritmo diseñar algoritmo implementar algoritmo
Metodología de la programación
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Teoría de lenguajes y compiladores
Podemos utilizar modules para intercambiar datos entre diferentes unidades de un mismo programa. Por ejemplo entre diferentes subrutinas, sin la necesidad.
Modos de direccionamiento
M.S.C. Ivette Hernández Dávila
UNIDAD V Bibliotecas de Funciones L.I. & M.S.C. OSCAR RAMÍREZ CORTÉS PROGRAMACIÓN DE SISTEMAS.
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.
MATEMÁTICAS EN SECUNDARIA: LAS UNIDADES DIDÁCTICAS EN INTERNET
Compuertas lógicas INTRODUCCION
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
Clases “ Es una Abstracción de un elemento del mundo real ”
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Máquinas de estado con VHDL
Fuentes consultadas Fuentes consultadas Medios de Transmisión Medios de Transmisión Actividades de aprendizaje Actividades de aprendizaje Propósito Introducción.
Circuitos Combinacionales I
Circuitos secuenciales 2
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.
Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML.
Curso de programación Visual Chart 6 (1ªEd.)
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
Ing. Diego Barragán Guerrero Máquinas de estado con VHDL.
Transcripción de la presentación:

Diseño jerárquico con VHDL Ing. Diego Barragán Guerrero http://www.decom.fee.unicamp.br/~diego/

Introducción Durante el curso, se estudió temas como: Estructura de código: declaración de librerías, entidad, arquitectura. Tipos de datos. Operadores y atributos. Declaraciones concurrente y código concurrente. Declaraciones secuenciales y código secuencial. Señales, variables y constantes. Diseño de máquinas de estado finitas. En esta parte, se añadirán nuevos elementos principalmente para asignación de librerías, tales como: Packages (Paquetes) Components (componentes) Functions (Funciones)

Introducción

Introducción Estas nuevas unidades pueden ser colocadas dentro del mismo código. Sin embargo, debido a que su propósito principal es permitir que piezas comunes de código sean reusadas y compartidas, por lo que es más común colocarlas en una librería. Esto permite particionar el código, lo cual es de mucha ayuda en código extensos. Por lo tanto, piezas comunes de código son escritas en forma de COMPONENTES, FUNCIONES o PROCEDIMIENTOS, luego colocados en un PAQUETE, el cual es finalmente compilado dentro de una LIBRERÍA.

PACKAGE La sintaxis está compuesta de dos partes: PACKAGE y PACKAGE BODY. La primera parte es obligatoria y contiene todas las declaraciones. La segunda parte es necesario solo cuando uno o más subprogramas son declarados. PACKAGE y PACKAGE BODY deben tener el mismo nombre. La lista de declaraciones del proceso puede contener: COMPONENTES, FUNCIONES, PROCEDIMIENTOS, TYPOS, CONSTANTES, etc.

Package: Ejemplo 1 El siguiente ejemplo muestra un paquete llamada my_package. Contiene solo declaraciones de tipos y constantes, de modo que el cuerpo del paquete (package body) no es necesario.

Package: Ejemplo 2

Package: Ejemplo 2 Cualquiera de los paquetes anteriores pueden ahora ser compilados, llegando a ser parte de la librería WORK (o cualquier otra). Para hacer uso de esta librería en el código VHDL, se añade una nueva sentencia USE al código principal, tal como se muestra:

COMPONENT Un COMPONENT es simplemente una pieza de código convencional (esto es, declaración de librería + entidad + arquitectura). Sin embargo, por declarar dicho código como un componente, puede ser utilizado dentro de otro circuito, lo que permite la construcción de diseños jerárquicos. Un COMPONENT es también otra forma de particionar el código de tal forma que pueda ser compartido y reutilizado. Por ejemplo, circuitos comunes como FF, multiplexores, sumadores, compuerta básica pueden ser colocados dentro de una librería, de modo que cualquier proyecto puede hacer uso de ellos sin necesidad de volver a escribirlos.

Modos de declaración de componentes Existen dos maneras para declarar un componente. Una es diseñarlo y colocarlo en una librería (luego declarar el componente en el código principal). Otra forma es usando un paquete (PACKAGE), lo que evita el uso de repetición de declaraciones cada vez que se haga uso del componente.

Declaración del componente en el código principal Se implementará el diseño de la figura usando solo COMPONENTS (inverter, nand_2, nand_3), sin crear un PACKAGE. Serán necesarios cuatro módulos VHDL: uno para cada componente y otro para el proyecto. Debido a que no se crea un paquete, los componentes deben ser declarados en el código principal (parte declarativa de la arquitectura).

Declaración del componente en el código principal

Declaración del componente en el código principal w w

Declaración del componente en un PACKAGE Creando un paquete, serán necesarios cinco módulos VHDL: uno para cada componente, uno para el paquete y otro para el proyecto.

Declaración del componente en un paquete A pesar de crear un módulo adicional (PACKAGE), el módulo extra solo se crea una vez, así se evita la necesidad de declarar los componentes en el código principal cada vez que sean de usarse.

PORT MAP Existen dos formas de mapear los puertos de un componente durante su instalación: mapeo posicional y mapeo nominal. Este mapeo es posicional, esto es, los puertos 'x' y 'y' corresponden a 'a' y 'b', respectivamente. Por otro lado, el mapeo nominal es: El mapeo posicional es fácil de escribir, pero el mapeo nominal tiene menos posibilidad de error. Los puertos pueden quedar sin conexión (usando la sentencia OPEN). Por ejemplo:

GENERIC MAP El uso de genéricos en componentes se logra con la sentencia GENERIC MAP para pasar información al parámetro genérico. La sintaxis es la siguiente: Vamos a considerar un generador de paridad genérico el cual añade un bit al vector de entrada (en su parte izquierda). Tal bit será '0' si el número de unos en el vector de entrada es par, y será '1' si el número de bits es impar, de modo que el vector siempre tenga un número par de unos.

GENERIC MAP - Driver

GENERIC MAP – Programa principal

Referencias: Volnei A. Pedroni. 2004. Circuit Design with VHDL. MIT Press, Cambridge, MA, USA. Maxinez, D.G., Alcalá, J. 2003. VHDL: el arte de programar sistemas digitales. Compañía Editorial Continental.