Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
VHDL surge a principios de los '80 de un proyecto DARPA (Departamento de Defensa
de los EE.UU.) llamado VHSIC Very High Speed Integrated Circuits VHDL aparece
como una manera de describir circuitos integrados
Hoy en da, el lenguaje de programacin VHDL es una de las herramientas
de programacin que tiene mayor uso en el sector industrial y en el mbito universitario,
debido a la permeabilidad con la cual se pueden describir y sintetizar circuitos y sistemas
digitales en la bsqueda de soluciones de aplicacin inmediata.
El uso correcto del lenguaje hace obsoleto el diseo tradicional, que organiza bloques
lgicos de baja y mediana escala de integracin, compuertas, contadores, registros,
decodificadores, etctera.
Al emplear dispositivos programables de muy bajo costo, conocidos como GAL
(ArreglosLgicos Genricos), los cuales se utilizan con mucha frecuencia en proyectos
donde lo que se requiere de manera primordial es la interconexin de algunos dispositivos
convencionales como multiplexores, comparadores, sumadores, etctera; estos chips
pueden adquirirse de manera individual y ser programados en grabadores convencionales
Esta seccin explora las diversas partes del marco Sonata. Una vez que est
familiarizado con el diseo general de la Sonata y el propsito / funcionalidad de las
distintas partes, que est listo para aprender acerca de Sonata de gestin de proyectos
conceptos. La siguiente es una interfaz de la Sonata:
Sonata se divide en cuatro grandes re-paneles de tamao considerable (reas). Es til estar
familiarizado con las funciones de estos cuatro paneles.
Panel de gestin de proyectos
Esta ventana (superior izquierda) muestra el estado del proyecto actual que se est
editando en Sonata. Este panel contiene las siguientes fichas dispuestos en una ventana con
pestaas:
Ficha Archivos:
Esta pestaa muestra el proyecto utilizando la vista "Archivo". En la vista Archivo",
se puede ver las diferentes bibliotecas registrados con el proyecto y para cada biblioteca,
tambin se muestran los archivos de origen asociados a ella. Anidado dentro de cada
archivo, se puede ver las distintas unidades de diseo (si los hay) que contiene el archivo.
Estas unidades de diseo se muestran en base a un anlisis rpido del archivo y esta
informacin se actualiza cada vez que el archivo se guarda.
Puede hacer doble clic con el botn izquierdo del ratn sobre un archivo o una unidad de
diseo para abrir el archivo en un editor de texto.
Pestaa Mdulos: Esta pestaa muestra el proyecto en su forma compilada. Mientras
que los "Ficheros" muestran informacin referente a proyecto desde el punto de vista del
cdigo fuente, esta pestaa muestra la informacin del proyecto en base a lo que realmente
estaba compilado en cada biblioteca.
Pestaa Jerarqua : Esta ficha slo se utiliza cuando una sesin de simulacin est
activo actualmente. Se muestra la estructura (jerarqua) de la unidad de diseo actual que se
est simulando.
Al hacer doble clic con el botn izquierdo del ratn sobre una seccin especfica de la
jerarqua mostrar los objetos contenidos en esa seccin de la jerarqua en el rea de la
pantalla "Seal / Variable".
Panel Documento
Esta ventana (superior derecha) se encarga de gestionar todos los documentos abiertos.
Un documento es un archivo de texto o un archivo de forma de onda. Todos los documentos
estn dispuestos en una ventana con pestaas porttil con cada ficha alberga un nico
documento de un tipo determinado. Los archivos de texto se muestran utilizando un editor
de texto que es capaz de realizar el resaltado de sintaxis. Las ondas se muestran utilizando
un visor de forma de onda que es capaz de mostrar millones de transiciones de la seal.
Panel de la consola
Esta ventana (parte inferior derecha) muestra todos los mensajes de diversas herramientas
(incluyendo el IDE en s). Sinfona EDA prev un futuro brillante para el panel de
"consola". Hay muchas cosas posibles utilizando la interfaz Tcl / Tk, pero esta
documentacin excluye intencionalmente, tales como la documentacin de la API est
todava en evolucin y puede causar problemas de compatibilidad para los usuarios que
dependen en gran medida de los comandos de Tcl / Tk. El rea de la consola contiene las
siguientes fichas:
Ficha Consola: La consola es en realidad un personalizado TCL ventana de
comandos (Tool Control Language). Uno puede entrar en varios comandos en la lnea de
mando y la consola evaluar estos comandos como si fueran comandos de TCL. Si el
comando introducido no es un comando vlido TCL, a continuacin, la consola se busque
un comando externo con el mismo nombre y que si es posible ejecutar. La consola tambin
cuenta con las siguientes caractersticas.
1.
comandos para el "registro del comando". Utilice la tecla de flecha arriba / abajo para
desplazarse por el historial de comandos. Al pulsar la tecla de funcin F9 muestra la lista
del historial de comandos.
2.
3.
Cdigo de color diferentes mensajes (como errores, avisos, etc.), siempre que sea
posible haga doble clic sobre estos mensajes especiales, intentar abrir el archivo (en el
panel de documento) que fue el origen del mensaje.
Es importante recordar que al introducir comandos en la ventana de consola que el
comando es en realidad interpretado por un intrprete Tcl. Como tal, una barra invertida,
individuales y dobles comillas, punto y coma, y {} [] son caracteres especiales. Siempre
que sea posible, utilizar una barra diagonal en lugar de una barra invertida dentro de las
rutas de acceso de Windows (la mayora de las herramientas de entender esta convencin).
Como alternativa, se puede usar dos barras invertidas para representar una sola barra
invertida. Las comillas simples y dobles son tiles para combinar palabras con espacios
incrustados en un solo argumento a favor de un comando.
Ficha de registro de comandos : En esta ventana se registra todos los comandos
introducidos en la pestaa de la consola. Mientras que la "ficha Consola" muestra toda la
entrada y la salida, la "ficha de registro de comandos" slo muestra los comandos
introducidos. Esta ventana puede ser til en la copia de comandos en un archivo de script.
Se puede utilizar la fuente de comando TCL para ejecutar los comandos almacenados en
dicho archivo.
Panel Objetos
Esta ventana contiene datos vlidos slo cuando una sesin de simulacin est activo
actualmente. El contenido de esta ventana se sincronizan con el alcance actual seleccionado
en la pestaa "Jerarqua". Esta ventana contiene las siguientes fichas:
Pestaa Signals: Esta pestaa muestra todas las seales y sus valores actuales en el
mbito actual. Usted puede arrastrar y soltar las seales seleccionadas de esta pestaa a la
ventana de forma de onda que se asocia con una simulacin activa.
VHDL su estructura
El lenguaje de descripcin en hardware VHDL se estructura en mdulos o unidades
funcionales, identificados mediante una palabra reservada y particular de este lenguaje
(vase figura 1.2). En tanto, a su vez, cada mdulo tiene
una secuencia de instrucciones o sentencias, las cuales, en conjunto con las declaraciones
de las unidades involucradas en el programa, permiten la descripcin, la comprensin, la
evaluacin y la solucin de un sistema digital.
Al interior de la estructura de un programa, las unidades Entidad (Entity) y Arquitectura
(Architecture) en conjunto forman la columna vertebral de este lenguaje. Por su parte,
los mdulos restantes, no necesariamente utilizados en la bsqueda de una solucin, sirven
entre otras cosas para optimizar y generalizar la aplicacin en futuros desarrollos, como se
ver cuando la ocasin se presente. Sin embargo, en este momento nuestra atencin se
centra en describir la funcin de la entidad y la arquitectura.
Entidad (entity)
Una entidad bsicamente representa la caracterizacin del dispositivo fsico; es decir,
exhibe las entradas y las salidas del circuito (llamados pins) que el diseador ha
considerado pertinentes para integrar su idea o aplicacin; en la figura 1.3, se puede
observar con detalle la secuencia de desarrollo.
Con base en esta idea, una entity por la palabra reservada del programa constituye
un bloque de diseo que puede ser analizado y programado como un elemento individual,
ya sea como una compuerta, un sumador o un decodificador, entre otros, incluso ser
considerado como un sistema a travs de su relacin entre entradas y salidas, las cuales
representan los puntos de observacin o de conexin a elementos perifricos propios de la
aplicacin.
Borrable por UV
la programacin del CPLD es borrada por emisin UV
tiene un encapsulado cermico con una ventana arriba del rea del chip
este encapsulado especial es bastante caro
normalmente se debe remover el CPLD del zcalo para borrarlo/reprogramarlo
programacin es retenida despus de cortar Vcc (no-volatile)
Programacin/borrado es limitada a unos 1000s ciclos
Borrable elctricamente
borrado y programado del CPLD se hace con una corriente elctrica
el CPLD puede ser programado/borrado en el PCB, no es necesario capsulado especial o
zcalo
tiempo de borrado es mucho menor que el borrado UV
no-voltil
Programacin/borrado es limitada a unos 1000s ciclos
Programacin/borrado se lleva a cabo mediante la conexin del CPLD a una
computadora (una PC cualquiera con un software del fabricante del CPLD).
Como el CPLD no necesita ser sacado del sistema/plaqueta en que esta soldado, esto es
conocido como In-System-Programmable (ISP).
Simulacin en VHDL
El primer y el segundo ejemplo simularemos asignaciones fuera del process, donde A tiene
valor 0 en el instante 0 ns y valor 1 en el instante 5 ns.
Asignaciones concurrentes
B <= A;
C <= B;
Asignaciones concurrentes
C <= B;
B <= A;
se escribe al menos un process, donde se describa como cambian los valores de las seales
a lo largo del tiempo. Ntese que slo hay que forzar el cambio de los valores de las seales
intermedias que se corresponden con entradas de la entity a estudio, ya que el valor de las
salidas ser el resultado de la simulacin.
architecture testbench_arch of simulacion is
component circuito
port (entrada: in std_logic;
salida: out std_logic);
end component;
-- seales intermedias, mismos nombres y tipo que los
-- de circuito
signal entrada: std_logic := '0';
----------------------------------------
---------------------------------------wait for
Dentro del fichero de simulacin existe tambin un process particular para definir el
reloj de una manera rpida y sencilla.
process
begin
wait for 10 ns;
CLOCK_LOOP : loop
clk <= '0';
wait for tiempo_en_baja ns;
clk <= '1';
wait for tiempo_ en_alta ns;
end loop CLOCK_LOOP;
end process;
Este process, gracias a la sentencia loop, genera una seal que vara constantemente de
valor segn los tiempos que se impongan. El primer wait tiene el mismo efecto que en el
ejemplo anterior, mantiene el valor inicial durante 10 ns. El segundo wait indica cuanto
tiempo va a estar el reloj en baja. Y el ltimo wait indica cuanto tiempo va a estar el reloj
en alta antes de repetir el loop. Por lo tanto periodo = tiempo_en_baja + tiempo_en_ alta,
en caso de que se quiera un reloj simtrico habr que poner el mismo valor de tiempo a baja
que a alta.
Conclusin
En la elaboracin de este reporte se pudo determinar que las simulaciones funcionales
en VHDL se pueden llevar a cabo fcilmente mediante la descripcin algortmica de los
bancos de prueba. Si bien las simulaciones exhaustivas llevan mucho tiempo, se pueden
realizar de manera sencilla, ya que las diferentes metodologas existentes para describir
bancos de prueba permiten generar gran cantidad de patrones de verificacin.
As tambin se observ que los diseos realizados con VHDL no slo pueden ser
simulados, sino tambin sintetizados con herramientas adecuadas y que los componentes
descriptos con VHDL para un diseo pueden reutilizarse posteriormente en otros diseos.
Con el lenguaje VHDL el diseo de sistemas digitales no slo est limitado a la
ingeniera, sino que abre inmensas posibilidades para programadores en general.
El uso de VHDL no slo es importante en la industria, sino tambin para la enseanza
ya que provee una forma legible y estndar de especificar y describir sistemas digitales.
Bibliografa
Floyd, Thomas. 2003. Fundamentos digitales con VHDL. Prentice Hall;
Pellerin, David y Taylor, Douglas. 1997. VHDL Made Easy! Prentice Hall;
Bhasker, Jayaram. 1999. A VHDL Primer, 3 ed. Prentice Hall