p. 1
5/11/2010 giteinco practicas de laboratorio basadas en el cpld coolrunnerii starter kit para el aprendizaje de diseÑo electronico utilizando lenguaje de descripcion de hardware vhdl universidad de cundinamarca cidei ilber ruge humberto numpaque
[close]
p. 2
practicas de laboratorio basadas en el cpld coolrunner-ii starter kit para el aprendizaje de diseÑo electronico utilizando lenguaje de descripcion de hardware vhdl universidad de cundinamarca grupo de investigación giteinco centro de investigación y desarrollo cidei ilber adonayt ruge ruge coinvestigador humberto numpaque lópez coinvestigador
[close]
p. 3
contenido presentación introducción · lógica programable · dispositivo lógico programable cpld · porque usar una cpld · arreglo lógico programable por campo fpga · descripción de la arquitectura del coolrunner-ii · kit de evaluación cpld coolrunner-ii de xilinx practica 1 introducción al lenguaje de descripción de hardware vhdl objetivo específico fundamentos teóricos · el paradigma de la programación vhdl · ¿cómo describir sistemas · unidades básicas del diseño en vhdl · operadores vhdl bibliografía practica 2 software de desarrollo integrate software environment ise 9.2i objetivo especifico materiales necesarios para el desarrollo de esta práctica fundamentos teoricos · project navigator · source in project window · process for current source window · console window · herramienta de síntesis bibliografía practica 3 diseño e implementación de un divisor de frecuencia mediante vhdl basado en cpld coolrunner-ii de la familia xilinx objetivos específicos materiales necesarios para el desarrollo de la práctica fundamentos teóricos procedimiento bibliografía
[close]
p. 4
practica 4 diseño e implementación de un registro de desplazamiento con entrada serial y carga paralela objetivos específicos materiales necesarios para el desarrollo de la práctica fundamentos teóricos procedimiento bibliografía practica 5 diseño e implementación de un sumador completo full adder utilizando el método de diseño esquemático objetivos específicos materiales necesarios para el desarrollo de la práctica fundamentos teóricos procedimiento bibliografía practica 6 síntesis en vhdl de un circuito sumador/restador a 16 bits objetivos específicos materiales necesarios para el desarrollo de la práctica fundamentos teóricos procedimiento bibliografía
[close]
p. 5
p resentacion el desarrollo de este material didáctico es resultado del proyecto fortalecimiento de la competitividad de las empresas del clúster de la industria electro electrónica de bogotá y cundinamarca mediante la apropiación de tecnologías fpga y cpld cofinanciado por colciencias ejecutado por el centro de investigaciones y desarrollo tecnológico cidei y coejecutado por la universidad de cundinamarca bajo el compromiso por parte de las entidades ejecutoras y participantes del proyecto de transferir el conocimiento generado durante la ejecución del proyecto se da origen a estas practicas de laboratorio para el aprendizaje en el manejo y desarrollo de aplicaciones basadas en dispositivos lógicos programables cpld utilizando lenguaje de descripción de hardware vhdl para esta ocasión se cuenta con el kit de evaluación coolrunner-ii de la familia xilinx esta plataforma de evaluación fue la base de los diseños realizados para la actualización de los productos de las empresas beneficiarias del proyecto ciel ingeniería zebra electrónica s.a y compañía industrial phoenix electromedicina ltda.
[close]
p. 6
i ntroduccion 1 logica programable a fines de los anos 70 los dispositivos lógicos estándar estaban de moda asi como la fabricación de tarjetas sobre circuitos impresos entonces alguien se preguntó ¿qué pasa si le damos a los diseñadores la capacidad de aplicar de implementar las interconexiones en un dispositivo mas grande esto permitirá a los diseñadores integrar muchos dispositivos de lógica estándar en uno solo para ofrecer dicha flexibilidad de diseño la empresa cline ron de signetics quien fuera más tarde comprada por philips y luego eventualmente por xilinx se le ocurrió la idea de dos planos programable estos dos planos proporcionan una combinación de compuertas and y or figura 1 arquitectura simple de un dispositivo lógico programable pld.
[close]
p. 7
2 dispositivo logico programable cpld los dispositivos lógicos programables complejos cpld amplia la densidad de los pld el concepto es tener uno o pocos bloques pld o macroceldas en un solo dispositivo con una matriz de interconexiones entre estos bloques figura 2 arquitectura de un dispositivo cpld 3 porque usar una cpld · · · · · · facilidad de diseño bajos costos de desarrollo mayor rentabilidad de producto reducción de área de desarrollo sobre la board bajo costo de mantenimiento alta confiabilidad de desempeño 4 arreglo logico programable por campo fpga un fpga es una estructura regular de celdas lógicas o módulos e interconexiones bajo completo control por parte del diseñador esto significa que se puede diseñar programar y realizar cambios en el circuito cuando se desee figura 3 arquitectura de una fpga.
[close]
p. 8
5 descripcion de la arquitectura del coolruner-ii el cpld coolrunner-ii es un dispositivo lógico programable rápido y de bajo consumo su arquitectura es similar a la arquitectura de las cpld tradicionales combinando bloques de macroceldas interconectadas entre si mediante una matriz de interconexión programable matriz de interconexión avanzada de xilinx aim figura 4 arquitectura de alto nivel del cpld coolrunner-ii 6 kit de evaluacion cpld coolruner-ii de xilinx figura 5 subsistemas del kit starter coolrunner-ii.
[close]
p. 9
prac ica cti a 1 de int trodu uccio on al len nguaje e de escrip pcion de ha ardwa are vh hdl ob bjetiv espe vo ecific co · conocer los conceptos básicos de lenguaje de descri c s s el e ipción de h hardware vhdl v para p síntesis y modelad de circuit electróni s do tos icos digitale es.
[close]
p. 10
fundamentos teoricos el lenguaje de descripción de hardware vhdl fue creado por ibm texas instrument e intermetrics como parte del programa vhsic estandarizado por la ieee en el año 1987 ieee 1076-1987 y nace como una herramienta que permite modelar circuitos digitales por medio de un algoritmo facilitando el diseño de circuitos integrados digitales amplios en espacio reducido el acrónimo vhdl significa lenguaje de descripción de hardware para circuitos integrados de muy alta velocidad very high speed integrate circuit hardware description language los simuladores lógicos basados en lenguaje de descripción de hardware vhdl cuentan con la opción de generar diagramas del modelo que permiten al diseñador desarrollar aplicaciones de forma gráfica esto hace que diseños complejos se conviertan en una simple conexión de bloques funcionales el paradigma de la programacion vhdl cuando se estudia la programación vhdl por primera vez la tendencia es compararlo con otros lenguajes de programación pero el lenguaje vhdl representa un aprovechamiento de la programación totalmente diferente el corazón de muchos de los lenguajes de programación son los estamentos ó código fuente estos estamentos representan una cantidad finita de acciones que representan una acción que debe realizar el procesador una vez el procesador ha ejecutado una instrucción continua con la siguiente de acuerdo al código fuente esto hace el algoritmo más comprensible para el programador ya que el procesador solo puede ejecutar una acción a la vez el lenguaje vhdl es diferente el vhdl tiene la virtud de ejecutar un número ilimitado de estamentos a la vez paralelismo la clave aquí es recordar que estamos diseñando hardware el paradigma de la programación vhdl se construye alrededor del concepto y la descripción textual del circuito el ejemplo de un circuito que opera en paralelo es el arreglo de compuertas lógicas que se muestran en la figura 5 se espera que para cualquier cambio en la entrada exista como resultado una respuesta en la salida esta regla se cumple para describir cualquier circuito en general.
[close]
p. 11
figura 5 operación paralela en un circuito digital el código que implementa el circuito de la figura 6 es g a and b h c and d i e and f j g or h or i figura 6 código vhdl para descripción del circuito de la figura 5 operador de asignacion de seÑal en lenguajes de programación convencional se tiene siempre un operador de asignación en lenguaje `c se cuenta con el operador igual el cual se interpreta como la transferencia de información del operando del lado derecho del operador hacia el lado izquierdo del operador en vhdl se utilizan dos caracteres consecutivos para representar el operador de asignación el operador es oficialmente reconocido como signal assignment este operador especifica la relación entre dos señales es así como la operación g a and b indica que el valor de la señal g representa la operación and entre la señal a y la señal b la forma general de un estamento de asignación se muestra en la figura 7 en este caso target es la señal que recibe el valor de la señal expression una expresión es definida por una variable un señal o por un set de operaciones entre señales target expression figura 7 sintaxis del estamento de asignación de señal ¿cÓmo describir sistemas la descripción de hardware en un sistema se compone de especificación del diseño definición de componentes e interfaces en un diseño simulación del diseño verificación del desempeño en un sistema previo a la implementación del diseño.
[close]
p. 12
síntesis del diseño generación automática del hardware correspondiente al diseño unidades basicas del diseÑo en vhdl la descripción de circuitos en vhdl se basa en el aprovechamiento del concepto de caja negra o bloque funcional existen dos partes importantes en un diseño basado en vhdl entidad entity define los puertos de entrada/salida del bloque funcional entity entity_name is [port clause end entity_name figura 8 forma genérica para declarar una entidad la entity_name provee el método para referenciar la entidad el port_clause especifica la interface actual de la entidad la sintaxis para el port_clause es port port_name mode data_type port_name mode data_type port_name mode data_type figura 9 sintaxis para el port_clause un port puerto es sencillamente una señal que interactúa con el mundo externo esta señal puede ser de tipo entrada o de tipo salida el port_name es un identificador usado para diferenciar diferentes señales el mode determina la dirección relativa de las señales dentro de la entidad donde pueden ser entradas o salidas estas señales son asociadas con las keyword in y out respectivamente el data_type hace referencia al tipo de dato que el puerto manipulará en vhdl existen diferentes tipos de datos disponibles donde std_logic es el tipo de dato básico cada puerto es único y tiene asociado un modo y un tipo el compilador vhdl permite nombrar diferentes puertos en una misma línea los nombres de los puertos son delimitados por comas las entradas y las salidas son listadas en forma consecutiva en la entidad la siguiente figura muestra un ejemplo de caja negra y el código vhdl usado para describirlo:
[close]
p. 13
figura 10 ejemplo de caja negra y código vhdl asociado para declarar la entidad los buses de datos son fácilmente descritos en la entidad vhdl magic_in_bus big_magic_in_bus tragic_in_bus data_bus_in_32 mux_out_bus_16 addr_out_bus_16 in std_logic_vector 0 to 3 in std_logic_vector 7 downto 0 in std_logic_vector 16 downto 1 in std_logic_vector 0 to 31 out std_logic_vector 0 to 15 out std_logic_vector 15 downto 0 figura 11 ejemplo declaración de buses en diferentes tipos dentro de la entidad la siguiente figura muestra la caja negra seguido de su respectiva declaración figura 12 declaración de entidad para caja negra que contiene buses de datos arquitectura architecture descripción de eventos sobre las señales de salida en términos de las señales de entrada existen diferentes modelos de arquitecturas que pueden ser usados para describir circuitos estos son modelo dataflow behavioral y structural el aprendizaje óptimo del lenguaje vhdl se basa en cada uno de estos modelos y de cómo el diseñador selecciona el modelo para utilizar el mínimo de recursos.
[close]
p. 14
estilo estructural vhdl dataflow un estilo de arquitectura dataflow especifica un circuito como una representación concurrente acciones secuenciales del flujo de datos a través del circuito aquí el circuito es representado como la interrelación de la entrada con la salida a través de varios componentes internos del lenguajes vhdl los componentes internos del vhdl incluye operadores lógicos como and or xor etc las tres formas de estamentos concurrentes son asignación de señal concurrente estamentos de asignación condicional y estamento de asignación selectiva la arquitectura de estilo dataflow tiene ventajes y desventajas lo bueno es que el programador puede ver el flujo de datos a través del circuito examinando el código vhdl por tal razón es muy utilizado para sintetizar hardware para descripción de circuitos más complejos la utilización del estilo de arquitectura dataflow no es recomendable estilo estructural vhdl behavior en comparación con el estilo de arquitectura dataflow el estilo behavior no provee detalles de cómo el diseño es implementado en el hardware el código vhdl escrito en estilo behavior no necesariamente refleja como el circuito es implementado cuando este es sintetizado es decir el estilo behavior modela como el circuito de salida reacciona ante las entradas del circuito es el sintetizador del vhdl quien decide la descripción del hardware actual el corazón del estilo de arquitectura behavior es el estamento process el estamento process la sintaxis para el estamento process se muestra en la figura 9 cualquier cambio que ocurra en alguna de las variables contenidas en sensitivity list del proceso todos los estamentos dentro del proceso son evaluados figura 13 sintaxis para el estamento process para describir la operación del estamento process se plantea el siguiente ejemplo:
[close]
p. 15
figura 14 declaración de la entidad para circuito xor figura 15 descripción dataflow y behavioral para la entidad my_xor_fun estamento secuencial el termino estamento secuencial se deriva del hecho que los estamentos dentro del cuerpo del proceso se ejecutan secuencialmente la ejecución de los estamentos secuenciales comienza cuando ocurre un cambio en una de las señales contenidas en la lista sensitiva del proceso la ejecución de los estamentos dentro del proceso continúa hasta el fin del cuerpo del proceso los dos tipos de estamentos secuenciales más utilizados son estamento if y estamento case la mejor parte de estos estamentos es que se manejan de la misma forma que en los otros lenguajes de programación convencional como c o java la estructura y función de los estamentos vhdl if y case son exactamente el mismo estamento if el estamento if es usado para crear una rama en el flujo de datos del estamento secuencial la forma general del estamento if se muestra en la figura 11 figura 16 sintaxis del estamento if.
[close]