Está en la página 1de 13

Lenguaje VHDL

Arquitecturas ( Descripcin por flujo de datos) Descripcin por flujo de datos mediante ecuaciones booleanas Otra forma de describir el circuito comparador de dos bits es mediante la obtencin de sus ecuaciones booleanas. En el listado se observa este desarrollo.

Lenguaje VHDL
Arquitecturas ( Descripcin por flujo de datos) Descripcin por flujo de datos mediante ecuaciones booleanas Describa mediante ecuaciones booleanas el circuito mostrado a continuacin.

Lenguaje VHDL
Arquitecturas ( Descripcin estructural) Basa su comportamiento en modelos (compuertas, sumadores, contadores, etc.). lgicos establecidos

El usuario puede disear estas estructuras y guardarlas para su uso posterior o tomarlas de los paquetes contenidos en las libreras.
En la figura se encuentra un esquema del circuito comparador de igualdad de 2 bits, est formado por compuertas nor-exclusivas y una compuerta AND.

Lenguaje VHDL
Arquitecturas ( Descripcin estructural) Cada compuerta (modelo lgico) se encuentra dentro del paquete gatespkg, del cual se toman para estructurar el diseo. Este tipo de arquitecturas estndares se conoce como componentes, que al interconectarse por medio de seales internas (xO, x l ) permiten proponer una solucin. En VHDL esta conectividad se conoce como netlist o listado de componentes. Para iniciar la programacin de una entidad de manera estructural, es necesario la descomposicin lgica del diseo en pequeos submdulos (jerarquizar), los cuales permiten analizar de manera prctica el circuito, ya que la funcin de entrada/salida es conocida. En el ejemplo se conoce la funcin de salida de las dos compuertas xnor, por lo que al unirlas a la compuerta and, la salida c es el resultado de la operacin and efectuada en el interior a travs de las seales xO y xl.

Lenguaje VHDL
Arquitecturas ( Descripcin estructural) Una jerarqua en VHDL se refiere al procedimiento de dividir en bloques y no a que un bloque tenga mayor jerarqua (peso) que otro. Dividir el problema hace de la descripcin estructural una forma sencilla de programar.

Lenguaje VHDL
Arquitecturas ( Descripcin estructural) Los componentes xnor y and no se declaran debido a que se encuentran en el paquete gatespkg, dentro de la librera work, (7). (8) inicia la arquitectura estructural. El algoritmo (11 a 13) describe la estructura as: cada compuerta es como un bloque lgico independiente (componente) del diseo original, que se le asigna una variable temporal (U0, U1 y U2); la salida de cada uno de estos bloques se maneja como una seal (9), signal x (xO y xl), las cuales se declaran dentro de la arquitectura y no en la entidad, debido a que no representan a una terminal (pin) y slo se utilizan para conectar bloques de manera interna.

Lenguaje VHDL
Arquitecturas ( Descripcin estructural) Ejemplo. Realice el programa correspondiente en VHDL para el circuito mostrado en la figura utilizando descripcin estructural.

Lenguaje VHDL
Arquitecturas ( Comparacin entre los estilos de diseo) El estilo de diseo utilizado en la programacin del circuito depende del diseador y de la complejidad del proyecto. Por ejemplo, un diseo puede describirse por medio de ecuaciones booleanas, pero si es muy extenso quiz sea ms apropiado emplear estructuras jerrquicas para dividirlo; ahora bien, si se requiere disear un sistema cuyo funcionamiento dependa slo de sus entradas y salidas, es conveniente utilizar la descripcin funcional, la cual presenta la ventaja de requerir menos instrucciones y el diseador no necesita un conocimiento previo de cada componente del circuito.

Lenguaje VHDL
Diseo lgico combinacional mediante VHDL Programacin de estructuras bsicas mediante declaraciones concurrentes. Como se mencion antes, las declaraciones concurrentes se encuentran fuera de la declaracin de un proceso y suelen usarse en las descripciones de flujo de datos y estructural. Esto se debe a que en una declaracin concurrente no importa el orden en que se escriban las seales, ya que el resultado para determinada funcin sera el mismo. En VHDL existen tres tipos de declaraciones concurrentes:

Declaraciones condicionales asignadas a una seal (when-else)


Declaraciones concurrentes asignadas a seales Seleccin de una seal (with-select-when)

Lenguaje VHDL
Diseo lgico combinacional mediante VHDL Declaraciones condicionales asignadas a una seal (whenelse). La declaracin when-else se utiliza para asignar valores a una seal, determinando as la ejecucin de una condicin propia del diseo. Para ejemplificar, consideremos la entidad mostrada en la figura, cuyo funcionamiento se define en la tabla de verdad.

Lenguaje VHDL
Diseo lgico combinacional mediante VHDL Declaraciones condicionales asignadas a una seal (whenelse). La entidad se puede programar mediante declaraciones condicionales (when-else), debido a que este modelo permite definir paso a paso el comportamiento del sistema

Lenguaje VHDL
Diseo lgico combinacional mediante VHDL Declaraciones condicionales asignadas a una seal (whenelse). Ntese que la funcin de salida f (lnea 10) depende directamente de las condiciones que presentan las variables de entrada, adems y dado que la ejecucin inicial de una u otra condicin no afecta la lgica del programa, el resultado es el mismo; es decir, la condicin de entrada "111", visualizada en la tabla de verdad, puede ejecutarse antes que la condicin "000" sin alterar el resultado final. La ventaja de la programacin en VHDL en comparacin con el diseolgico puede intuirse considerando que la funcin de salida f mediante lgebra booleana se representa con: f = abc+abc+abc+abc en el diseo convencional se utilizaran inversores, compuertas OR y compuertas AND; en VHDL la solucin es directa utilizando la funcin lgica and.

Lenguaje VHDL
Diseo lgico combinacional mediante VHDL Operadores lgicos Los operadores lgicos ms utilizados son los operadores and, or, nand, xor, xnor y not. Las operaciones que se efecten entre ellos (excepto not) deben realizarse con datos que tengan la misma longitud o palabra de bits. Al ser compilados los operadores lgicos presentan el siguiente orden y prioridad:

1) Expresiones entre parntesis


2) Complementos 3) Funcin AND

4) Funcin OR
Las operaciones xor y xnor son transparentes al compilador y las interpreta mediante la suma de productos correspondiente a su