VHDL

download VHDL

of 7

Transcript of VHDL

VHDLVHDLes el acrnimo que representa la combinacin deVHSICyHDL, dondeVHSICes el acrnimo deVery High Speed Integrated CircuityHDLes a su vez el acrnimo de Hardware Description Language.Es unlenguajedefinido por elIEEE, usado por ingenieros para describir circuitos digitales. Otros mtodos para disear circuitos son la captura de esquemas y los diagramas de bloques, pero stos no son prcticos en diseos complejos. Otros lenguajes para el mismo propsito sonVerilogyABEL.Aunque puede ser usado de forma general para describir cualquier circuito se usa principalmente para programar PLD,FPGA,ASICy similares.Formas de describir un circuitoDentro del VHDL hay varias formas con las que podemos disear el mismo circuito y es tarea del diseador elegir la ms apropiada. Funcional: Describimos la forma en que se comporta el circuito. Esta es la forma que ms se parece a los lenguajes de software ya que la descripcin es secuencial. Estas sentencias secuenciales se encuentran dentro de los llamados procesos en VHDL. Los procesos son ejecutados en paralelo entre s, y en paralelo con asignaciones concurrentes de seales y con las instancias a otros componentes. Flujo de datos: describe asignaciones concurrentes (en paralelo) de seales. Estructural: se describe el circuito con instancias de componentes. Estas instancias forman un diseo de jerarqua superior, al conectar los puertos de estas instancias con las seales internas del circuito, o con puertos del circuito de jerarqua superior. Mixta: combinacin de todas o algunas de las anteriores.En VHDL tambin existen formas metdicas para el diseo de mquinas de estados, filtros digitales, bancos de pruebas etc.Procedimientos de diseoEl primer paso del diseo consiste en la construccin del diagrama en bloque del sistema. En diseos complejos como en software los programas son generalmente jerrquicos y VHDL ofrece un buen marco de trabajo para definir los mdulos que integran el sistema y sus interfaces, dejando los detalles para pasos posteriores. El segundo paso es la elaboracin del cdigo en VHDL para cada mdulo. El prximo paso es la simulacin, la cual le permite establecer los estmulos a cada mdulo y observar su respuesta. El VHDL da la posibilidad de crear bancos de prueba que automticamente aplica entradas y compara las salidas con las respuestas deseadas.Encontrar errores en este paso del diseo es mejor que al final, en donde hay que repetir entonces una gran cantidad de pasos del diseo. Hay dos dimensiones a verificar: Su comportamiento funcional, en donde se estudia su comportamiento lgico independiente de consideraciones de tiempo, como las demoras en las compuertas. Su verificacin en el tiempo, en donde se incluyen las demoras de las compuertas y otras consideraciones de tiempo, como los tiempos de establecimiento (set-up time) y los tiempos de mantenimiento (hold time).Para entrar en la fase final del diseo. La naturaleza y herramientas en esta fase dependen de la tecnologa, pero hay tres pasos bsicos. El primero es la sntesis, que convierte la descripcin en VHDL en un conjunto de componentes que pueden ser realizados en la tecnologa seleccionada. En el siguiente paso de ajuste los componentes se ajustan a la capacidad del dispositivo que se utiliza. En el ltimo paso se realiza la verificacin temporal, ya que a esta altura es que se pueden calcular los elementos parsitos, como las capacidades de las conexiones.Estructura del programa VHDL fue diseado en base a los principios de la programacin estructurada. La idea es definir la interfaz de un mdulo de hardware mientras deja invisible sus detalles internos.Muchos diseadores conciben la Entity como una funda de la arquitectura dejando invisible los detalles de lo que hay dentro. Esto forma la base de un sistema de diseo jerrquico, la arquitectura de la entidad de ms nivel puede usar otras entidades, dejando invisible los detalles de la arquitectura de la identidad de menos nivel. En la siguiente se muestra la estructura de un modelo en VHDL.ENTITY Nombre_entidad ISPORT ( Nombre de seal: modo tipo de seal; . . . Nombre de seal: modo tipo de seal ) ;END nombre_entidad ;

Adems de las palabras reservadas o clavesENTITY,IS,PORTandEND, una ENTITY tiene los siguientes elementos. Nombre_entidad; es un identificador seleccionado por el usuario para seleccionar la entidad. Nombre de seal; es una lista de uno o ms identificadores separados por una coma y seleccionados por el usuario para identificar las seales externas de la interfaz. MODO es una de las 4 siguientes palabras reservadas para indicar la direccin de la seal:ModoDescripcin

INEn este modo las seales solo entran en la entidad

OUTLas seales salen de la entidad

BUFFEREste modo se utiliza para las seales que adems de salir de la entidad pueden usarse como entradas realimentadas

INOUTEste modo se utiliza para seales bidireccionales. Se emplea en salida con tres estados. Se puede asignar como sustituto de los tres modos anteriores, pero no se aconseja pues dificulta la comprensin del programa.

Tipo de seal; en VHDL, hay varios tipos de seales predefinidas por el lenguaje, tales como:TIPOCaractersticas

BITEn este tipo las seales solo toman los valores de "1" y "0"

BooleanaEn este tipo las seales solo toman los valores de True y False

Std_logicEn este tipo las seales toman 9 valores, entre ellos tenemos: "1", "0", "Z" (para el 3er estado), "-" (para los opcionales).

IntegerEn este tipo las seales toman valores enteros. Los 1 y los 0 se escriben sin

Bit_VectorEn este tipo los valores de las seales son una cadena de unos y ceros. Ejemplo: 1000

Std_Logic_VectorEn este tipo los valores de las seales son una cadena de los nueve valores permisibles para el tipo std_logic.

CharacterContiene todos los caracteres ISO de 8 bits, donde los primeros 128 son los caracteres ASCII.

Ejemplo: 1-0Z -231 + 1 231 - 1 Integer -2 147 483 647 2 147 483 647Bit Character Severity_level Bit_vector Integer String Boolean Real timeOperadores

TipoStd_logic

UUninitialized

XForcing Unknown

0Forcing 0

1Forcing 1

ZHigh Impedance

WWeak Unknown

LWeak 0

HWeak 1

-Dont care

Adems el usuario puede definir otros tipos de seales, lo que resulta muy conveniente en algunos casos, como en el diseo de mquinas de estados. El lenguaje VHDL concede mxima importancia a los tipos de seales, no se admite realizar una asignacin mezclando tipos diferentes. Un PORT de una entidad y sus modos y tipos pueden ser vistos por otros mdulos que la utilicen. La operacin interna de la entidad est definida en la architecture cuya sintaxis general se muestra a continuacin.ENTITY ejemplo1 ISPORT ( a, b : IN bit; F : OUT bit );END ejemplo1 ;

La sintaxis para la declaracin de la arquitectura es la ARCHITECTURE nombre_arquitectura OF nombre_entidad ISDeclaracin de tiposDeclaracin de seales.Declaracin de constantesDeclaracin de componentesDefinicin de funcionesDefinicin de procedimientos BEGINEnunciado concurrente. . . Enunciado concurrenteEND nombre_arquitectura;

Las declaraciones y definiciones que preceden al BEGIN, pueden estar presentes todas, algunas o ninguna. Esto depende del tipo de diseo que se est realizando. No obstante la declaracin de seales se utiliza mucho, pues contribuye entre otras cosas a la claridad del diseo. Las declaraciones en la arquitectura pueden aparecer en diferente orden, pero lo ms usual es comenzar por la declaracin de las seales. Signal signal-name: signal-type Variables en VHDL son similares a las seales excepto que ellas no tienen significado fsico en el circuito.Operadores en VHDLEn VHDL existen diferentes operadores entre los que tenemos:Operadores Definidos en VHDL para los tipos: Lgicos AND, OR, XOR, NOT, NAND, NOR, XNOR Bit y Booleanos De relacin =, /=, , >=,