Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
CAP´ITULO IV: L´OGICA PROGRAMABLE
Ing. Alcides Araujo Pacheco
ELECTR ´ONICA DIGITAL Y L ´OGICA PROGRAMABLE
Universidad de Cuenca
11 de julio de 2016
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
1 Introducci´on
2 VHDL
3 Circuitos Combinacionales en VHDL
4 Circuitos Secuenciales en VHDL
5 M´aquinas de Estados en VHDL
6 Triestados en VHDL
7 Dise˜no Jer´arquico en VHDL
8 Verificaci´on con Testbenches en VHDL
9 Referencias
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Introducci´on
Hasta ahora hemos visto un enfoque para sintetizar circuitos l´ogicos. Con
esta estrategia podr´ıamos realizar circuito peque˜nos. Sin embargo, los
circuitos l´ogicos complejos como los utilizados en una compu-
tadora no pueden ser realizados de manera manual. Estos se
realizan con herramientas CAD sofisticadas que de manera autom´atica
realizan t´ecnicas de s´ıntesis.
Para dise˜nar un circuito l´ogico, se
requieren varias de herramientas
CAD. Por lo general, estas se em-
paquetan en un solo sistema CAD,
que t´ıpicamente incluye herramien-
tas para las siguientes tareas: en-
trada de dise˜no, s´ıntesis y optimi-
zaci´on, simulaci´on y dise˜no f´ısico.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Entrada de dise˜no
El punto de partida en el proceso
de dise˜no de un circuito l´ogico es
la concepci´on de lo que el circui-
to se supone que debe hacer y la
formulaci´on de su estructura.
Este paso se realiza manualmente por el dise˜nador, ya que requiere ex-
periencia en el dise˜no y la intuici´on.
El resto del proceso de dise˜no se hace con la ayuda de herramientas
CAD. La primera etapa de este proceso implica que entra en
el sistema CAD una descripci´on del circuito que est´a siendo
dise˜nado. Esta etapa se llama la entrada de dise˜no. Vamos a des-
cribir dos m´etodos de entrada de dise˜no: el uso de captura esquem´atica
y la escritura de un c´odigo en un lenguaje de descripci´on de hardware.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Entrada de dise˜no: captura esquem´atica
Un circuito l´ogico se puede definir mediante la elaboraci´on de compuer-
tas l´ogicas, y la interconexi´on con cables. En una herramienta CAD, la
entrada de un circuito dise˜nado de esta manera se denomina captura
esquem´atica.
La palabra esquem´atica se refiere a un diagrama de un circuito en el
que los elementos de circuito, tales como puertas l´ogicas, son representa-
dos como s´ımbolos gr´aficos y las conexiones entre elementos de circuito
se dibujan como l´ıneas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Entrada de dise˜no: captura esquem´atica
Una herramienta de captura esquem´atica utiliza la capacidad gr´afica de
un ordenador y su mouse para permitir al usuario dibujar un diagrama
esquem´atico. Para facilitar la inclusi´on de las compuertas en el esquema,
la herramienta proporciona un conjunto de s´ımbolos gr´aficos que repre-
sentan compuertas de diversos tipos con diferente n´umero de entradas.
Esta colecci´on de s´ımbolos se denomina biblioteca. Las puertas de la
biblioteca se pueden importar en esquema del usuario, y la herramienta
proporciona una manera gr´afica de la interconexi´on de las puertas para
crear una red l´ogica.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Entrada de dise˜no: captura esquem´atica
Cualquier subcircuito que se ha creado previamente se pueden represen-
tar como s´ımbolos gr´aficos para incluirlos en el esquema. En la pr´actica
es com´un para un usuario del sistema CAD crear un circuito
que incluye en su interior otros circuitos m´as peque˜nos. Esta
metodolog´ıa es conocida como el dise˜no jer´arquico y proporciona una
buena manera de hacer frente a las complejidades de la gran circuitos.
La instalaci´on esquem´atica es f´acil de usar, pero se vuelve inc´omoda
cuando se trata de grandes circuitos. Un mejor m´etodo para tratar con
circuitos grandes es escribir el c´odigo fuente usando un lenguaje de des-
cripci´on de hardware para representar el circuito.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Entrada de dise˜no: Lenguajes de descripci´on de hardware
Un lenguaje de descripci´on de hardware (HDL) es similar a un lenguaje
de programaci´on com´un, excepto que un HDL se utiliza para describir
hardware en lugar de un programa ejecutado en un ordenador.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Entrada de dise˜no: Lenguajes de descripci´on de hardware
Muchos HDLs comerciales est´an disponibles. Algunos son de propiedad,
lo que significa que son proporcionados por una empresa en particular
y se pueden utilizar para implementar circuitos s´olo en la tecnolog´ıa
proporcionada por esa empresa.
Nos centraremos en un lenguaje que sea compatible con pr´acticamente
todos los proveedores que proporcionan la tecnolog´ıa de hardware digital
y est´a oficialmente aprobada como Instituto de Ingenieros El´ectricos y
Electr´onicos (IEEE) est´andar.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Entrada de dise˜no: Lenguajes de descripci´on de hardware
Existen dos est´andares IEEE para HDL: VHDL (Very High Speed IC
HDL) y Verilog HDL. Ambos lenguajes son de uso generalizado en la
industria. Utilizaremos VHDL.
Aunque los dos lenguajes difieren en muchos aspectos, la elecci´on de la
utilizaci´on de uno u otro en el estudio de los circuitos l´ogicos no es parti-
cularmente importante, porque ambos ofrecen caracter´ısticas similares.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
S´ıntesis
La s´ıntesis es el proceso de generar un circuito l´ogico a partir de una
especificaci´on inicial que puede ser dado en forma de un diagrama es-
quem´atico o c´odigo escrito en un lenguaje de descripci´on de hardware.
Las herramientas CAD de s´ıntesis generan implementaciones eficientes
de los circuitos a partir de las especificaciones.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
S´ıntesis
El proceso de la traducci´on, o compilaci´on, del c´odigo VHDL en una red
de compuertas l´ogicas es parte de la s´ıntesis. La salida es un conjunto de
expresiones l´ogicas que describen las funciones l´ogicas necesarias para
realizar el circuito.
Independientemente de qu´e tipo de entrada de dise˜no se utiliza, las ex-
presiones l´ogicas iniciales producidos por las herramientas de s´ıntesis, es
probable que sean de una forma ´optima, ya que reflejan la entrada del
dise˜nador para las herramientas CAD.
Es imposible que un dise˜nador genere manualmente resulta-
dos ´optimos para circuitos grandes. Por lo tanto, una de las tareas
importantes de las herramientas de s´ıntesis es manipular el dise˜no del
usuario para generar autom´aticamente un equivalente, pero de mejor
dise˜no.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Simulaci´on funcional
Un circuito representado en forma de expresiones l´ogicas puede ser si-
mulado para verificar que funcionar´a como se esperaba. La herramienta
que realiza esta tarea es un simulador funcional.
Utiliza las expresiones l´ogicas (a menudo referidas como ecuaciones) ge-
neradas durante la s´ıntesis, y asume que estas expresiones se implemen-
tar´an con compuertas l´ogicas perfectas a trav´es de las cuales las se˜nales
se propagan instant´aneamente.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Simulaci´on funcional
El simulador requiere que el usuario especifique los valores de las entra-
das del circuito que se deben aplicar durante la simulaci´on. Para cada
valoraci´on, el simulador eval´ua los resultados producidos por las expre-
siones. Los resultados de la simulaci´on se proporcionan generalmente en
forma de un diagrama de tiempo que el usuario puede examinar para
comprobar que el circuito funciona como es requerido.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Dise˜no f´ısico
Despu´es de la s´ıntesis l´ogica el siguiente paso en el flujo de dise˜no es
determinar exactamente c´omo implementar el circuito en un
chip dado. Este paso es a menudo llamado dise˜no f´ısico. Existen varias
tecnolog´ıas diferentes que se pueden utilizar para implementar circuitos
l´ogicos.
Las herramientas de dise˜no f´ısico correlacionan un circuito especificado
en forma de expresiones l´ogicas en una realizaci´on que hace uso de los
recursos disponibles en el chip de destino.
Las herramientas determinan la colocaci´on de elementos l´ogicos espec´ıfi-
cos, que no son necesariamente compuertas simples del tipo que hemos
encontrado hasta ahora. Tambi´en determinan las conexiones de los ca-
bles que han de ser realizadas entre estos elementos para implementar
el circuito deseado.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Simulaci´on temporal
Las puertas l´ogicas y otros elementos l´ogicos se implementan con cir-
cuitos electr´onicos. Un circuito electr´onico no puede realizar su funci´on
de manera instant´anea. Cuando los valores de las entradas al circuito
cambian, se necesita de una cierta cantidad de tiempo antes de que una
cambio correspondiente se produzca en la salida. Esto se conoce como
un retardo de propagaci´on del circuito.
El retardo de propagaci´on consta de dos tipos de retrasos. Cada elemen-
to l´ogico necesita un poco de tiempo para generar una se˜nal de salida
v´alida siempre que haya cambios en los valores de sus entradas. Adem´as
de este retraso, existe una demora causada por se˜nales que debe propa-
garse a trav´es de los cables que conectan los elementos l´ogicos. El efecto
combinado es que los circuitos exhiben retrasos reales, lo que tiene un
impacto significativo en su velocidad de operaci´on.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Simulaci´on temporal
Un simulador de tiempos eval´ua los retrasos esperados de un circuito
l´ogico dise˜nado.
Los resultados se puede utilizar para determinar si el circuito generado
cumple con los requisitos de temporizaci´on de la especificaci´on para el
dise˜no. Si no se cumplen los requisitos, el dise˜nador puede pedir al he-
rramientas de dise˜no f´ısico volver a intentarlo, indicando limitaciones de
tiempo espec´ıficos. Si esto no tiene ´exito, entonces el dise˜nador tiene que
probar diferentes optimizaciones en la etapa de s´ıntesis, o bien a mejorar
el dise˜no inicial que se presenta a las herramientas de s´ıntesis.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Entrada de dise˜no
S´ıntesis
Configuraci´on del chip
Luego de comprobar que el circuito dise˜nado cumple con todos los re-
quisitos de la especificaci´on, el circuito es implementado en un chip real.
Este paso se llama configuraci´on de chip o de programaci´on.
Las herramientas de CAD discutidos en esta secci´on son las partes esen-
ciales de un sistema CAD. El flujo completo de dise˜no que hemos dis-
cutido se ilustra en la Figura. Esto ha sido s´olo una breve discusi´on
introductoria. Una presentaci´on completa de las herramientas CAD se
da en el cap´ıtulo 12 del libro de Brown.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Introducci´on a VHDL
VHDL inicialmente cumpl´ıa dos prop´ositos principales.
En primer lugar, se utiliz´o como un lenguaje de documentaci´on para des-
cribir la estructura de los circuitos digitales complejos. Como est´andar
IEEE oficial, VHDL proporciona una forma com´un de documentar los
circuitos dise˜nados por numerosos dise˜nadores.
En segundo lugar, VHDL proporciona funciones para modelar el com-
portamiento de un circuito digital, lo que permiti´o su uso como entrada
para los programas de software que luego se utilizan para simular el
funcionamiento del circuito.
En los ´ultimos a˜nos, adem´as de su uso para la documentaci´on y la simulaci´on,
VHDL se ha vuelto popular para su uso en la entrada de dise˜no en sistemas
CAD. Las herramientas de CAD se utilizan para sintetizar el c´odigo VHDL
en una implementaci´on de hardware del circuito descrito.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Un sistema CAD t´ıpico
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Representaci´on de se˜nales digitales en VHDL
Cuando se utilizan herramientas CAD para sintetizar un circuito l´ogico,
el dise˜nador puede proporcionar la descripci´on inicial del circuito de
maneras diferentes. Una forma eficiente es escribir esta descripci´on en
forma de c´odigo VHDL.
El compilador VHDL traduce este c´odigo en un circuito l´ogico. Cada
se˜nal l´ogica en el circuito est´a representado en c´odigo VHDL como un
objeto de datos. Al igual que las variables declaradas en cualquier len-
guaje de programaci´on de alto nivel se han asociado datos de tipos, tales
como n´umeros enteros o caracteres.
La norma VHDL original, IEEE 1076, incluye un tipo de datos llamado
BIT. Un objeto de este tipo es muy adecuado para la representaci´on de
se˜nales digitales ya que los objetos de bits puede tener s´olo dos valores,
0 y 1
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
¿Para qu´e sirve el VHDL?
El VHDL permite modelar Sistemas Digitales.
A partir de estos modelos se puede:
Con VHDL modelamos el Hardware.
VHDL permite tambi´en programar Algoritmos (Software).
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Or´ıgenes e Historia de VHDL
VHDL surge a principios de los ’80 de un proyecto del DARPA (Departamen-
to de Defensa de los EEUU) llamado VHSIC (Very High Speed Integrated
Circuits).
VHDL aparece como una manera de describir circuitos integrados.
La crisis del ciclo de vida del HW: cada d´ıa los circuitos integrados eran
m´as complicados, y el coste de reponerlos cada vez era mayor, porque
no estaban correctamente documentados. VHDL naci´o como una manera
est´andar de documentar los circuitos.
Al mismo tiempo, se vio que la expresividad de VHDL permitir´ıa reducir
el tiempo de dise˜no de los circuitos, porque se podr´ıan crear directamente
de su descripci´on: utilidad de la s´ıntesis.
En 1987 el trabajo fue cedido al IEEE, y a partir de ese momento es un
est´andar abierto. Esa norma fue aprobada en 1993 y denominada IEEE 1164.
La norma fue actualizada posteriormente en 2000 y 2002.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Principios B´asicos de VHDL
Una unidad hardware se visualiza como una ’caja negra’.
La interfaz de la caja negra esta completamente definida.
El interior esta oculto.
En VHDL la caja negra se denomina entidad
La ENTITY describe la E/S del dise˜no
Para describir su funcionamiento se asocia una implementaci´on que se deno-
mina arquitectura
La ARCHITECTURE describe el contenido del dise˜no.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Entidad
Una entidad (entity) es el bloque ele-
mental de dise˜no en VHDL. Las enti-
dades son los elementos electr´onicos
que forman un sistema digital.
ENTITY nombreEntidad
La declaraci´on de una entidad en VHDL se hace con la palabra reservada
ENTITY seguido del nombre de la entidad.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Arquitectura
Una arquitectura (arquitecture) es el
circuito l´ogico dentro de la entidad
dise˜nada en VHDL. Los contenidos
de la entidad (el circuito) se mode-
lan dentro de la arquitectura.
ARQUITECTURE nombreArquitectura
La declaraci´on de una arquitectura en VHDL se hace con la palabra reservada
ARQUITECTURE seguido del nombre de la arquitectura.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Arquitectura
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Puertos
Las se˜nales de entrada y de salida para la entidad se llaman puertos, se
identifican por la palabra reservada en VHDL PORT. Ports = canales de
comunicaci´on
Este nombre se deriva de la jerga el´ectrica en la que la palabra se refiere a
un puerto de entrada o conexi´on de salida de un circuito electr´onico.
Cada puerto tiene un modo asociado que especifica si se trata de una entrada
(input IN) a la entidad o una salida (output OUT) de la entidad. Cada
puerto representa una se˜nal, por lo que tiene un tipo asociado.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Puertos
Los modos de un puerto indican la direcci´on y si el puerto puede leerse o
escribirse dentro de la entidad.
IN
Una se˜nal que entra en la entidad y no sale. La se˜nal puede
ser le´ıda pero no escrita.
OUT
Una se˜nal que sale fuera de la entidad y no es usada
internamente. La se˜nal no puede ser le´ıda dentro de la
entidad.
INOUT
Una se˜nal que es bidireccional, entrada/salida de la entidad.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Tipos de Datos en VHDL
El TIPO es la definici´on de los valores posibles que puede tomar un objeto.
Los tipos predefinidos en VHDL son:
Escalares
integer
floating point
enumerated
physical
Compuestos
array
record
Ficheros
access
Archivos
file
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Algunos tipos de Datos B´asicos
VHDL es fuertemente tipado. Un lenguaje de programaci´on es fuerte-
mente tipado si no se permiten violaciones de los tipos de datos.
INTEGER: tipo entero
Usado como valor ´ındice en lazos, constantes o valores gen´ericos
BOOLEAN: tipo l´ogico
Puede tomar como valores ’TRUE’ o ’FALSE’
ENUMERATED: Enumeraci´on
Conjunto de valores definido por el usuario. Por ejemplo: TYPE estados
IS (inicio, lento, rapido)
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Tipos: STD LOGIC y STD LOGIC VECTOR
Definidos en el paquete IEEE.standard logic 1164.
Son un est´andar industrial.
Se usan SIEMPRE para definir los puertos de las entidades.
Tipo Std logic: valor presente en un cable de 1 bit.
Tipo Std logic vector: para definir buses (array de std logic).
’0’ Salida de una puerta con nivel l´ogico bajo.
’1’ Salida de una puerta con nivel l´ogico alto.
’U’ No inicializado, valor por defecto.
’X’ Desconocido. Debido a un CORTOCIRCUITO.
’Z’ Alta Impedancia.
Existen m´as valores posibles, como: ’W’,’L’,’H’,’-’
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Tipos: STD LOGIC y STD LOGIC VECTOR
Se tiene la entidad ’mi componente’ en donde tenemos tres se˜nales de entrada
y una de salida.
Codificaci´on
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Asignaci´on de se˜nales en buses
Se define una se˜nal de 8 bits para trabajar con ella:
SIGNAL tmp: STD LOGIC VECTOR(7 downto 0);
Asignaci´on de un valor binario: tmp <= ”10100011”;
Asignaci´on de un valor en hexadecimal: tmp <= x”A3”;
Asignaci´on de un bit: tmp(7) <= ’1’;
Asignaci´on de un rango de bits: tmp(7 downto 4) <= ”1010”;
Asignaci´on de un rango de bits: tmp(7 downto 4) <= ”1010”;
Asignaci´on compacta: tmp <= (0=>’0’, 1=>c and b, others=>’Z’);
Notaci´on
1 bit : comilla simple (’)
multiples bits: comilla doble (”)
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Tipos: SIGNED y UNSIGNED
Las operaciones aritm´eticas est´andares est´an definidas para los tipos SIG-
NED y UNSIGNED en VHDL.
Est´an definidos en la librer´ıa IEEE.numeric std
USE ieee.numeric std.all;
Ejemplo de uso
Se define una variable de tipo unsigned, para implementar un contador:
VARIABLE contador: unsigned(7 downto 0);
Incrementamos la variable en 1:
contador:=contador + 1;
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Conversiones de tipos
Las operaciones aritm´eticas est´andares est´an definidas para los tipos SIG-
NED y UNSIGNED pero los puertos de las entidades se definen SIEMPRE
para los tipos STD LOGIC y STD LOGIC VECTOR por tanto hay que
hacer Conversiones de tipos.
Existen librer´ıas NO EST´ANDARES que permiten hacer operaciones direc-
tamente con el tipo std logic vector.
std logic signed
std logic unsigned
std logic arith
Si se quiere hacer un c´odigo VHDL portable, conviene no usarlas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Conversiones de tipos
Se usar´an estos objetos como ejemplo:
signal stdv: std logic vector(7 downto 0);
variable uns: unsigned(7 downto 0);
variable sig: signed(7 downto 0);
variable entero: Integer
Conversi´on de signed y unsigned a std logic vector:
stdv <= std logic vector(uns);
stdv <= std logic vector(sig);
Conversi´on de std logic vector a signed y unsigned:
uns := unsigned(stdv);
sig := signed(stdv);
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Conversiones de tipos
Conversi´on de signed y unsigned a Integer:
entero := to integer(sig);
entero := to integer(uns);
Conversi´on de Integer a signed y unsigned:
uns := to unsigned(entero,8);
sig := to signed(entero,8);
Conversi´on de std logic vector a Integer y vice-versa
stdv <= std logic vector(to unsigned(entero,8));
entero := to integer(unsigned(stdv));
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Operadores definidos en VHDL
L´ogicos
and, or, nor, xor, xnor
Relacionales
=igual, /=distinto, <menor, <=menor o igual, >mayor, >=mayor o igual
Miscel´aneos
abs valor absoluto, ** exponenciaci´on, not negaci´on (unario)
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Operadores definidos en VHDL
Adici´on
+ suma, – resta, & concatenaci´on de vectores
Multiplicativos
* multiplicaci´on, / divisi´on, rem resto, mod m´odulo
Signo (unarios)
+, –
Desplazamiento (signed y unsigned)
shift right, shift left
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
M´as sobre Operadores en VHDL
No todos los operadores est´an definidos para todos los tipos.
El operador de concatenaci´on se utiliza muy a menudo.
Las funciones shift right() y shift left() permiten hacer desplazamien-
tos, pero solo para los tipos unsigned y signed.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Procesos en VHDL
Un proceso en VHDL describe el comportamiento de un circuito.
Cuyo estado puede variar cuando cambian ciertas se˜nales
Utilizando construcciones muy expresivas: if..then..else, case, bucles
for y while, etc.
Y que adem´as puede declarar variables, procedimientos, etc.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Descripci´on de una Compuerta AND
El siguiente proceso nos permite
emular una compuerta AND, con
2 entradas A, B y una salida S.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
El problema de la concurrencia del Hardware
El HW es inherentemente concurrente, los circuitos coexisten f´ısicamente en
el tiempo
El chip tiene dos compuertas
que funcionan simult´aneamente
Este HW no se puede modelar en un
lenguaje secuencial como C:
S = A & B;
Q = C|D;
Ambas puertas funcionan al mismo
tiempo, ¡no una antes de la otra!
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Concurrencia: Una posible soluci´on
La soluci´on al problema anterior es que aunque la ejecuci´on sea secuencial,
las instrucciones no tarden ning´un tiempo en ejecutarse:
De esta manera aunque una instrucci´on se ejecuta despu´es de la otra, como las
dos se eval´uan en el mismo instante, desde el punto de vista de la modelizaci´on
del circuito ambas puertas est´an funcionando simult´aneamente.
Esta es la soluci´on que adopta VHDL (y Verilog).
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Necesidad de la concurrencia
Sin embargo, esta soluci´on ya no vale con este circuito:
¿Por qu´e? No hay que olvidar que se trata de modelizar circuitos reales,
no virtuales, y las se˜nales necesitan que transcurra el tiempo para tomar un
valor:
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
La soluci´on de VHDL
VHDL (y en general, todos los HDLs) solucionan este problema dando so-
porte explicito a la concurrencia.
En VHDL, una arquitectura puede tener tantos procesos como queramos, y
todos se ejecutan concurrentemente.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Dos procesos en paralelo como soluci´on
La soluci´on al problema se plantea usando 2 procesos en paralelo.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Procesos
Los procesos se disparan (su c´odigo se ejecuta) cuando cambia alguna
de las se˜nales en su lista de sensibilidad.
Las instrucciones dentro del proceso se ejecutan secuencialmente, una
detr´as de otra, pero sin dar lugar a que avance el tiempo durante su
ejecuci´on.
El tiempo s´olo avanza cuando se llega al final del proceso.
Las se˜nales modelan hilos del circuito, y como tales, s´olo pueden cambiar
de valor si se deja que avance el tiempo.
Una arquitectura puede tener tantos procesos como queramos, y todos
se van a ejecutar en paralelo.
Esta es la manera que tiene VHDL de expresar la concurrencia inherente
al hardware.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Instrucciones en Procesos
Las Estructuras de Control m´as usadas en VHDL son:
IF..THEN..ELSE
CASE
FOR
WHILE
NEXT Y EXIT
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Instrucciones en procesos: IF..THEN..ELSE
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Instrucciones en procesos: CASE
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Instrucciones en procesos: Bucle FOR
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Instrucciones en procesos: Bucle WHILE
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Bucles con Next & Exit
En VHDL se pueden crear bucles infinitos.
Todos los bucles pueden tener una condici´on de salida.
Con la instrucci´on next termina inmediatamente la iteraci´on actual y se
pasa a la siguiente.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Procesos: Dos opciones de funcionamiento
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Clausula WAIT
Una sentencia PROCESS siempre tiene que contener en su parte descriptiva
una sentencia WAIT. En caso contrario su ejecuci´on se interpreta como un
bucle infinito del que no se sale.
Suspender el proceso durante un tiempo:
WAIT for 10 ns;
Suspender el proceso hasta que ocurra una condici´on:
WAIT until rising edge(clk);
Esperar a que cambie alguna de las se˜nales de una lista:
WAIT on a, b, clk; Equivalente a emplear lista de sensibilidad
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Asignaci´on de valores a se˜nales
Las asignaciones a se˜nales dentro de procesos s´olo se ejecutan cuando se
suspende el proceso.
Las se˜nales modelan conexiones f´ısicas, y por tanto, no s´olo deben tener
en cuenta el valor, sino tambi´en el tiempo.
Para que un cable cambie de valor hace falta que el tiempo avance.
De la misma forma, para que una se˜nal cambie de valor hace falta que
el tiempo avance.
El tiempo s´olo avanza cuando se suspende el proceso.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Las Variables en VHDL
Cuando se modela un circuito viene bien tener un objeto cuyo valor se ac-
tualice inmediatamente.
Sin tener que esperar a que avance el tiempo, como en las se˜nales.
La soluci´on son las Variables.
Las variables se declaran dentro de los procesos.
S´olo se ven dentro del proceso que las ha declarado.
Toman el valor inmediatamente, son independientes del tiempo.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Soluci´on con Variables
El problema de la actualiza-
ci´on de la se˜nal S tiene muy
f´acil soluci´on con una variable.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Introducci´on a VHDL
Un sistema CAD t´ıpico
Representaci´on de se˜nales digitales en VHDL
¿Para qu´e sirve el VHDL?
Or´ıgenes e Historia de VHDL
Principios B´asicos de VHDL
Tipos de Datos en VHDL
Operadores definidos en VHDL
Procesos en VHDL
Instrucciones en Procesos
Asignaci´on de valores a se˜nales
Las Variables en VHDL
Sem´antica de variables y se˜nales
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
Modelar l´ogica combinacional con procesos
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
El problema de la memoria impl´ıcita
CAUSA
Las se˜nales en VHDL tienen un estado actual y un estado futuro.
EFECTOS
En un proceso, si el valor futuro de una se˜nal no puede ser determinado,
se mantiene el valor actual.
Se sintetiza un latch para mantener su estado actual.
VENTAJAS
Simplifica la creacion de elementos de memoria.
DESVENTAJAS
Pueden generarse latches no deseados, como por ejm cuando todas las
opciones de una sentencia condicional no est´an especificadas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
Un problema con la memoria impl´ıcita
Dise˜nar un circuito de acuerdo a esta tabla de verdad
La soluci´on es incorrecta, por no poner el caso ”11”no significa ”don’t
care”, simplemente est´a guardando el valor anterior, est´a generando un
latch.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
Reglas para evitar la memoria impl´ıcita
Para evitar la generaci´on de latches no deseados.
Se deber terminar la instrucci´on IF...THEN...ELSE... con la cl´ausula
ELSE
Especificar todas las alternativas en un CASE, definiendo cada alter-
nativa individualmente, o mejor terminando la sentencia CASE con la
cl´ausula WHEN OTHERS... Por ejemplo:
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
Asignaciones concurrentes
Las asignaciones concurrentes son asignaciones de valores a se˜nales, fuera de
proceso, que permiten modelar de una manera muy compacta l´ogica combi-
nacional
Funcionan como procesos (son procesos impl´ıcitos) y se ejecutan concu-
rrentemente con el resto de procesos y asignaciones.
Hay tres tipos de asignaciones concurrentes:
Asignaciones simples
Asignaciones condicionales
Asignaciones con selecci´on
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
Asignaciones concurrentes simples
A una se˜nal se le asigna un valor que proviene de una expresi´on, que puede
ser tan compleja como queramos.
s <= ((a + b) * c) and d;
Esta expresi´on es completamente equivalente a este proceso:
process(a,b,c,d)
begin
s <= ((a + b) * c) and d;
end process;
Se pueden utilizar todos los operadores que queramos, tanto los predefinidos
como los que importemos de las librer´ıas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
Asignaciones concurrentes condicionales
A la se˜nal se le asigna valores dependiendo de si se cumplen las condi-
ciones que se van evaluando:
Por su ejecuci´on en cascada es similar al IF..THEN..ELSE.
Pueden generarse problemas de memoria impl´ıcita si no se pone el ´ultimo
else.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Modelar l´ogica combinacional con procesos
El problema de la memoria impl´ıcita
Un problema con la memoria impl´ıcita
Reglas para evitar la memoria impl´ıcita
Asignaciones concurrentes
Asignaciones concurrentes simples
Asignaciones concurrentes condicionales
Asignaciones concurrentes con selecci´on
Asignaciones concurrentes con selecci´on
Se le asigna un valor a una se˜nal dependiendo del valor que tome una
expresi´on:
Por su ejecuci´on en paralelo (balanceada) es similar a un CASE.
Se pueden dar problemas de memoria impl´ıcita si no se pone el ´ultimo
when others.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
El fundamento: Modelo del flip-flop D
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
Flip-flop con reset as´ıncrono y clock enable
Es otro circuito fundamental.
El reset debe estar en la lista de
sensibilidad porque es as´ıncrono,
tiene efecto independientemente
del reloj.
En los circuitos secuenciales, la
lista de sensibilidad debe estar
compuesta como mucho por el
reloj y el reset (si es as´ıncrono).
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
El axioma del dise˜no s´ıncrono
El reloj es ´unico y est´a en todos
los flip-flops del dise˜no
No se pueden usar dos relojes en
el sistema.
Todas las se˜nales as´ıncronas se
deben muestrear (pasar por un
flip-flop D) nada m´as entrar al
sistema.
No se deben poner puertas en el
reloj, si se necesita deshabilitar
la carga de un flip-flop utilizar
la habilitaci´on de reloj.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
Ejemplo: Un contador de 8 bits
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
Ejemplo: Un registro de desplazamiento
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
Metodolog´ıa: Dise˜no circuitos secuenciales
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
Metodolog´ıa: Dise˜no circuitos secuenciales
Maquinas de estados: FSM
Utilizaci´on de subtipos: .
Definici´on de Estados
Tres Bloques Funcionales
L´ogica combinacional: Decisi´on
de cambio de estado.
Registros: Mantienen el estado.
L´ogica combinacional de defini-
ci´on de salidas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
Metodolog´ıa: Dise˜no circuitos secuenciales
Maquinas de estados: FSM
Utilizaci´on de subtipos: .
Definici´on de Estados
Tres Bloques Funcionales
L´ogica combinacional: Decisi´on
de cambio de estado.
Registros: Mantienen el estado.
L´ogica combinacional de defini-
ci´on de salidas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
El fundamento: Modelo del flip-flop D
Flip-flop con reset as´ıncrono y clock enable
El axioma del dise˜no s´ıncrono
Ejemplo: Un contador de 8 bits
Ejemplo: Un registro de desplazamiento
Metodolog´ıa: Dise˜no circuitos secuenciales
Metodolog´ıa: Dise˜no circuitos secuenciales
Maquinas de estados: FSM
Utilizaci´on de subtipos: .
Definici´on de Estados
Tres Bloques Funcionales
L´ogica combinacional: Decisi´on
de cambio de estado.
Registros: Mantienen el estado.
L´ogica combinacional de defini-
ci´on de salidas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
FSM: M´aquinas de Moore
FSM MOORE: Una maquina de estados en la que las salidas cambian solo
cuando cambia el estado. Las posibles implementaciones son:
Asignaci´on arbitraria del valor de los estados
Las salidas se decodifican a partir de los estados.
1 Decodificaci´on combinacional.
2 Decodificaci´on registrada.
Asignaci´on espec´ıfica de los valores de estado
Las salidas pueden ser codificadas directamente en los estados.
Codificaci´on one-hot.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Implementaci´on de una FSM de Moore
Salidas decodificadas a partir del valor de los estados.
1 Decodificaci´on Combinacional
Las salidas se decodifican a partir del estado actual.
Salidas = funci´on(estado actual).
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Implementaci´on de una FSM de Moore
Salidas decodificadas a partir del valor de los estados.
1 Decodificaci´on registrada
La decodificaci´on de las salidas se realiza en paralelo con la
decodificaci´on del siguiente estado.
Salidas = funci´on(estado anterior, entradas).
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Implementaci´on de una FSM de Moore
Salidas codificadas en los bits de los estados.
Nota: Los dos bits del estado son utilizados como salida.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Generador de ”wait states”
Diagrama de Estados
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Declaraci´on de la entidad
La declaraci´on de la entidad es la misma para todas las implementacio-
nes:
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Soluci´on 1
Salidas combinacionales decodificadas a partir de los estados.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Soluci´on 1 (continuaci´on)
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Solucion 2
Salidas registradas decodificadas desde el valor de los estados.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Soluci´on 2 (continuaci´on)
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Solucion 3
Salidas codificadas en el valor de los estados.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Soluci´on 3 (continuaci´on)
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
FSM: Codificaci´on One-hot
Un estado por flip-flop.
En FPGAs
reduce la l´ogica de c´alculo de estado siguiente
por tanto, menos profundidad de l´ogica
permitiendo m´aquinas muy r´apidas (>100MHz)
En CPLDs
reduce el n´umero de t´erminos producto
eliminando, si los hubiera, expasiones de productos, y mejorando por
tanto la velocidad
pero usa muchas m´as macroceldas, y el beneficio nunca es tan evidente
como en FPGAs
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Soluci´on One-hot
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Soluci´on One-hot (continuaci´on)
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
FSM Moore: Resumen
Salidas decodificadas de los bits de estado
Mayor flexibilidad en el proceso de dise˜no.
Utilizando tipos enumerados se permite que la asignaci´on de los estados
se realice durante la compilaci´on.
Salidas codificadas en los bits de estado
Asignaci´on manual del valor de los estados.
La salida se obtiene directamente de los registros.
Se reduce el n´umero de registros.
L´ogica adicional m´as compleja.
Codificaci´on One-Hot
Logica de siguiente estado mas sencilla.
Mejora la velocidad.
Necesita mas registros.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
FSM: M´aquinas de Mealy
FSM Mealy: Las salidas cambian por un cambio de estado o por un cambio
en el valor de las entradas.
Hay que tener mucho cuidado con las entradas as´ıncronas.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Generador de ”wait states”
Diagrama de Estados
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
FSM: M´aquinas de Moore
FSM: M´aquinas de Mealy
Ejemplo: Soluci´on
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Concepto de Driver de una Se˜nal
Inferencia de Triestado
Ejemplos de Inferencia de Buffers Triestado
Se˜nales Bidireccionales
Ejemplo con Se˜nales Bidireccionales
Concepto de Driver de una Se˜nal
El driver es el elemento que da valores a una se˜nal.
Para cada se˜nal que se le asigna un valor dentro de un proceso se crea un
driver para esa se˜nal.
Independientemente de cuantas veces se le asigne un valor a la se˜nal, se
crea un ´unico driver por proceso.
Tanto para procesos expl´ıcitos como impl´ıcitos.
Cuando hay m´ultiples drivers se usa la funci´on de resoluci´on.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Concepto de Driver de una Se˜nal
Inferencia de Triestado
Ejemplos de Inferencia de Buffers Triestado
Se˜nales Bidireccionales
Ejemplo con Se˜nales Bidireccionales
Inferencia de triestado
Cuando se quiere que un driver de una se˜nal se quede en alta impedancia, se
le asigna a la se˜nal el valor ’Z’.
S´olo vale si para el tipo std logic.
Igual que ocurre en la realidad, el estado de la se˜nal lo fijar´a el driver que no
est´e en alta impedancia.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Concepto de Driver de una Se˜nal
Inferencia de Triestado
Ejemplos de Inferencia de Buffers Triestado
Se˜nales Bidireccionales
Ejemplo con Se˜nales Bidireccionales
Ejemplos de Inferencia de Buffers Triestado
Con asignaci´on condicional:
Con un proceso:
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Concepto de Driver de una Se˜nal
Inferencia de Triestado
Ejemplos de Inferencia de Buffers Triestado
Se˜nales Bidireccionales
Ejemplo con Se˜nales Bidireccionales
Se˜nales Bidireccionales
En este caso la se˜nal tiene drivers externos, fuera de la entidad.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Concepto de Driver de una Se˜nal
Inferencia de Triestado
Ejemplos de Inferencia de Buffers Triestado
Se˜nales Bidireccionales
Ejemplo con Se˜nales Bidireccionales
Ejemplo con Se˜nales Bidireccionales
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Dise˜no Jer´arquico
´Arbol de Jerarqu´ıas
Ejemplo de Instanciaci´on de Componentes
Dise˜no Jer´arquico
Componentes peque˜nos son uti-
lizados como elementos de otros
m´as grandes.
Permite reutilizar c´odigo.
Dise˜nos m´as legibles y portables.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Dise˜no Jer´arquico
´Arbol de Jerarqu´ıas
Ejemplo de Instanciaci´on de Componentes
´Arbol de Jerarqu´ıas
Cada componente de la jerarqu´ıa es un archivo VHDL, con:
Entidad
Arquitectura
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Dise˜no Jer´arquico
´Arbol de Jerarqu´ıas
Ejemplo de Instanciaci´on de Componentes
Ejemplo de Instanciaci´on de Componentes
Se intenta dise˜nar la siguiente enti-
dad:
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Dise˜no Jer´arquico
´Arbol de Jerarqu´ıas
Ejemplo de Instanciaci´on de Componentes
Ejemplo de Instanciaci´on de Componentes
Se puede implementar a partir de la
conexi´on en serie de los componentes
mi comp.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Dise˜no Jer´arquico
´Arbol de Jerarqu´ıas
Ejemplo de Instanciaci´on de Componentes
Ejemplo de Instanciaci´on de Componentes
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Pasos de la Simulaci´on
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Bancos de Pruebas
Se debe hacer un Banco de Pruebas (Testbench) para cada componente di-
se˜nado.
La simulaci´on de un componente con-
siste en:
Generar unos est´ımulos.
Observar los resultados.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
C´omo hacer un Banco de Pruebas?
1 Instanciar el dise˜no que vamos
a verificar.
2 Escribir un proceso (o procesos)
para generar los est´ımulos.
3 Observar el resultado e
informar al usuario. Banco de Pruebas
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
C´omo hacer un Banco de Pruebas?
Es un dise˜no jer´arquico donde el
banco de pruebas ocupa el pri-
mer nivel.
El banco de pruebas es una EN-
TIDAD sin puertos.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Generando Est´ımulos
El proceso de pruebas generar´a est´ımulos de manera secuencial.
Se asignan valores a las entradas.
Se espera un tiempo a obtener la respuesta.
Ejm. Sumador de 8 bits.
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Comprobando las Respuestas
Las respuestas del circuito a probar se comprueban con la instrucci´on AS-
SERT.
ASSERT condicion REPORT string SEVERITY nivel;
Significa: ’Asegurar que se cumple la condici´on’.
Si se cumple, el proceso contin´ua ejecut´andose.
Si NO se cumple, se informa al usuario ’Report’ y se indica en nivel de
gravedad del error.
Los niveles de SEVERITY son:
NOTE
WARNING
ERROR (nivel por defecto si no se incluye SEVERITY)
FAILURE
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Algoritmo B´asico para los Testbenches
Algoritmo elemental de verificaci´on:
Dar valores a las se˜nales de entrada a la UUT
Esperar con WAIT FOR
Comprobar los resultados con ASSERT
Volver a dar valores a las se˜nales de entrada a la UUT y repetir
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Ejemplo: Sumador 1
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Ejemplo: Sumador 2
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Ejemplo: Sumador 3
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Ejemplo: Sumador 4
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Pasos de la Simulaci´on
Bancos de Pruebas
C´omo hacer un Banco de Pruebas?
Generando Est´ımulos
Comprobando las Respuestas
Algoritmo B´asico para los Testbenches
Ejemplo: Sumador 1
Ejemplo: Sumador 2
Ejemplo: Sumador 3
Ejemplo: Sumador 4
Ejemplo: Sumador 5
Ejemplo: Sumador 5
Es mejor hacer una prueba sistem´atica. Probamos todos los casos posibles:
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
Introducci´on
VHDL
Circuitos Combinacionales en VHDL
Circuitos Secuenciales en VHDL
M´aquinas de Estados en VHDL
Triestados en VHDL
Dise˜no Jer´arquico en VHDL
Verificaci´on con Testbenches en VHDL
Referencias
Referencias
Ing. Alcides Araujo Pacheco.
Presentaci´on VHDL Alcides Araujo
Stephen Brown, Zvonko Vranesic.
Fundamentals of DIGITAL LOGIC with VHDL Design
3rd ed - 2012.
David G. Maxines, Jessica Alcala.
VHDL El arte de programar sistemas digitales
2002.
Juan Gonz´ales.
Introducci´on al Lenguaje de Descripci´on de Hardware VHDL
http://arantxa.ii.uam.es/˜jgonzale/fco/curso07-
08/download/seminarios-vhdl.pdf
Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE

Cap iv.-lógica-programable-ing.-alcides-araujo-pacheco

  • 1.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias CAP´ITULO IV: L´OGICA PROGRAMABLE Ing. Alcides Araujo Pacheco ELECTR ´ONICA DIGITAL Y L ´OGICA PROGRAMABLE Universidad de Cuenca 11 de julio de 2016 Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 2.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis 1 Introducci´on 2 VHDL 3 Circuitos Combinacionales en VHDL 4 Circuitos Secuenciales en VHDL 5 M´aquinas de Estados en VHDL 6 Triestados en VHDL 7 Dise˜no Jer´arquico en VHDL 8 Verificaci´on con Testbenches en VHDL 9 Referencias Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 3.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Introducci´on Hasta ahora hemos visto un enfoque para sintetizar circuitos l´ogicos. Con esta estrategia podr´ıamos realizar circuito peque˜nos. Sin embargo, los circuitos l´ogicos complejos como los utilizados en una compu- tadora no pueden ser realizados de manera manual. Estos se realizan con herramientas CAD sofisticadas que de manera autom´atica realizan t´ecnicas de s´ıntesis. Para dise˜nar un circuito l´ogico, se requieren varias de herramientas CAD. Por lo general, estas se em- paquetan en un solo sistema CAD, que t´ıpicamente incluye herramien- tas para las siguientes tareas: en- trada de dise˜no, s´ıntesis y optimi- zaci´on, simulaci´on y dise˜no f´ısico. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 4.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Entrada de dise˜no El punto de partida en el proceso de dise˜no de un circuito l´ogico es la concepci´on de lo que el circui- to se supone que debe hacer y la formulaci´on de su estructura. Este paso se realiza manualmente por el dise˜nador, ya que requiere ex- periencia en el dise˜no y la intuici´on. El resto del proceso de dise˜no se hace con la ayuda de herramientas CAD. La primera etapa de este proceso implica que entra en el sistema CAD una descripci´on del circuito que est´a siendo dise˜nado. Esta etapa se llama la entrada de dise˜no. Vamos a des- cribir dos m´etodos de entrada de dise˜no: el uso de captura esquem´atica y la escritura de un c´odigo en un lenguaje de descripci´on de hardware. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 5.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Entrada de dise˜no: captura esquem´atica Un circuito l´ogico se puede definir mediante la elaboraci´on de compuer- tas l´ogicas, y la interconexi´on con cables. En una herramienta CAD, la entrada de un circuito dise˜nado de esta manera se denomina captura esquem´atica. La palabra esquem´atica se refiere a un diagrama de un circuito en el que los elementos de circuito, tales como puertas l´ogicas, son representa- dos como s´ımbolos gr´aficos y las conexiones entre elementos de circuito se dibujan como l´ıneas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 6.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Entrada de dise˜no: captura esquem´atica Una herramienta de captura esquem´atica utiliza la capacidad gr´afica de un ordenador y su mouse para permitir al usuario dibujar un diagrama esquem´atico. Para facilitar la inclusi´on de las compuertas en el esquema, la herramienta proporciona un conjunto de s´ımbolos gr´aficos que repre- sentan compuertas de diversos tipos con diferente n´umero de entradas. Esta colecci´on de s´ımbolos se denomina biblioteca. Las puertas de la biblioteca se pueden importar en esquema del usuario, y la herramienta proporciona una manera gr´afica de la interconexi´on de las puertas para crear una red l´ogica. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 7.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Entrada de dise˜no: captura esquem´atica Cualquier subcircuito que se ha creado previamente se pueden represen- tar como s´ımbolos gr´aficos para incluirlos en el esquema. En la pr´actica es com´un para un usuario del sistema CAD crear un circuito que incluye en su interior otros circuitos m´as peque˜nos. Esta metodolog´ıa es conocida como el dise˜no jer´arquico y proporciona una buena manera de hacer frente a las complejidades de la gran circuitos. La instalaci´on esquem´atica es f´acil de usar, pero se vuelve inc´omoda cuando se trata de grandes circuitos. Un mejor m´etodo para tratar con circuitos grandes es escribir el c´odigo fuente usando un lenguaje de des- cripci´on de hardware para representar el circuito. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 8.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Entrada de dise˜no: Lenguajes de descripci´on de hardware Un lenguaje de descripci´on de hardware (HDL) es similar a un lenguaje de programaci´on com´un, excepto que un HDL se utiliza para describir hardware en lugar de un programa ejecutado en un ordenador. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 9.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Entrada de dise˜no: Lenguajes de descripci´on de hardware Muchos HDLs comerciales est´an disponibles. Algunos son de propiedad, lo que significa que son proporcionados por una empresa en particular y se pueden utilizar para implementar circuitos s´olo en la tecnolog´ıa proporcionada por esa empresa. Nos centraremos en un lenguaje que sea compatible con pr´acticamente todos los proveedores que proporcionan la tecnolog´ıa de hardware digital y est´a oficialmente aprobada como Instituto de Ingenieros El´ectricos y Electr´onicos (IEEE) est´andar. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 10.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Entrada de dise˜no: Lenguajes de descripci´on de hardware Existen dos est´andares IEEE para HDL: VHDL (Very High Speed IC HDL) y Verilog HDL. Ambos lenguajes son de uso generalizado en la industria. Utilizaremos VHDL. Aunque los dos lenguajes difieren en muchos aspectos, la elecci´on de la utilizaci´on de uno u otro en el estudio de los circuitos l´ogicos no es parti- cularmente importante, porque ambos ofrecen caracter´ısticas similares. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 11.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis S´ıntesis La s´ıntesis es el proceso de generar un circuito l´ogico a partir de una especificaci´on inicial que puede ser dado en forma de un diagrama es- quem´atico o c´odigo escrito en un lenguaje de descripci´on de hardware. Las herramientas CAD de s´ıntesis generan implementaciones eficientes de los circuitos a partir de las especificaciones. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 12.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis S´ıntesis El proceso de la traducci´on, o compilaci´on, del c´odigo VHDL en una red de compuertas l´ogicas es parte de la s´ıntesis. La salida es un conjunto de expresiones l´ogicas que describen las funciones l´ogicas necesarias para realizar el circuito. Independientemente de qu´e tipo de entrada de dise˜no se utiliza, las ex- presiones l´ogicas iniciales producidos por las herramientas de s´ıntesis, es probable que sean de una forma ´optima, ya que reflejan la entrada del dise˜nador para las herramientas CAD. Es imposible que un dise˜nador genere manualmente resulta- dos ´optimos para circuitos grandes. Por lo tanto, una de las tareas importantes de las herramientas de s´ıntesis es manipular el dise˜no del usuario para generar autom´aticamente un equivalente, pero de mejor dise˜no. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 13.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Simulaci´on funcional Un circuito representado en forma de expresiones l´ogicas puede ser si- mulado para verificar que funcionar´a como se esperaba. La herramienta que realiza esta tarea es un simulador funcional. Utiliza las expresiones l´ogicas (a menudo referidas como ecuaciones) ge- neradas durante la s´ıntesis, y asume que estas expresiones se implemen- tar´an con compuertas l´ogicas perfectas a trav´es de las cuales las se˜nales se propagan instant´aneamente. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 14.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Simulaci´on funcional El simulador requiere que el usuario especifique los valores de las entra- das del circuito que se deben aplicar durante la simulaci´on. Para cada valoraci´on, el simulador eval´ua los resultados producidos por las expre- siones. Los resultados de la simulaci´on se proporcionan generalmente en forma de un diagrama de tiempo que el usuario puede examinar para comprobar que el circuito funciona como es requerido. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 15.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Dise˜no f´ısico Despu´es de la s´ıntesis l´ogica el siguiente paso en el flujo de dise˜no es determinar exactamente c´omo implementar el circuito en un chip dado. Este paso es a menudo llamado dise˜no f´ısico. Existen varias tecnolog´ıas diferentes que se pueden utilizar para implementar circuitos l´ogicos. Las herramientas de dise˜no f´ısico correlacionan un circuito especificado en forma de expresiones l´ogicas en una realizaci´on que hace uso de los recursos disponibles en el chip de destino. Las herramientas determinan la colocaci´on de elementos l´ogicos espec´ıfi- cos, que no son necesariamente compuertas simples del tipo que hemos encontrado hasta ahora. Tambi´en determinan las conexiones de los ca- bles que han de ser realizadas entre estos elementos para implementar el circuito deseado. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 16.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Simulaci´on temporal Las puertas l´ogicas y otros elementos l´ogicos se implementan con cir- cuitos electr´onicos. Un circuito electr´onico no puede realizar su funci´on de manera instant´anea. Cuando los valores de las entradas al circuito cambian, se necesita de una cierta cantidad de tiempo antes de que una cambio correspondiente se produzca en la salida. Esto se conoce como un retardo de propagaci´on del circuito. El retardo de propagaci´on consta de dos tipos de retrasos. Cada elemen- to l´ogico necesita un poco de tiempo para generar una se˜nal de salida v´alida siempre que haya cambios en los valores de sus entradas. Adem´as de este retraso, existe una demora causada por se˜nales que debe propa- garse a trav´es de los cables que conectan los elementos l´ogicos. El efecto combinado es que los circuitos exhiben retrasos reales, lo que tiene un impacto significativo en su velocidad de operaci´on. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 17.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Simulaci´on temporal Un simulador de tiempos eval´ua los retrasos esperados de un circuito l´ogico dise˜nado. Los resultados se puede utilizar para determinar si el circuito generado cumple con los requisitos de temporizaci´on de la especificaci´on para el dise˜no. Si no se cumplen los requisitos, el dise˜nador puede pedir al he- rramientas de dise˜no f´ısico volver a intentarlo, indicando limitaciones de tiempo espec´ıficos. Si esto no tiene ´exito, entonces el dise˜nador tiene que probar diferentes optimizaciones en la etapa de s´ıntesis, o bien a mejorar el dise˜no inicial que se presenta a las herramientas de s´ıntesis. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 18.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Entrada de dise˜no S´ıntesis Configuraci´on del chip Luego de comprobar que el circuito dise˜nado cumple con todos los re- quisitos de la especificaci´on, el circuito es implementado en un chip real. Este paso se llama configuraci´on de chip o de programaci´on. Las herramientas de CAD discutidos en esta secci´on son las partes esen- ciales de un sistema CAD. El flujo completo de dise˜no que hemos dis- cutido se ilustra en la Figura. Esto ha sido s´olo una breve discusi´on introductoria. Una presentaci´on completa de las herramientas CAD se da en el cap´ıtulo 12 del libro de Brown. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 19.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Introducci´on a VHDL VHDL inicialmente cumpl´ıa dos prop´ositos principales. En primer lugar, se utiliz´o como un lenguaje de documentaci´on para des- cribir la estructura de los circuitos digitales complejos. Como est´andar IEEE oficial, VHDL proporciona una forma com´un de documentar los circuitos dise˜nados por numerosos dise˜nadores. En segundo lugar, VHDL proporciona funciones para modelar el com- portamiento de un circuito digital, lo que permiti´o su uso como entrada para los programas de software que luego se utilizan para simular el funcionamiento del circuito. En los ´ultimos a˜nos, adem´as de su uso para la documentaci´on y la simulaci´on, VHDL se ha vuelto popular para su uso en la entrada de dise˜no en sistemas CAD. Las herramientas de CAD se utilizan para sintetizar el c´odigo VHDL en una implementaci´on de hardware del circuito descrito. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 20.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Un sistema CAD t´ıpico Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 21.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Representaci´on de se˜nales digitales en VHDL Cuando se utilizan herramientas CAD para sintetizar un circuito l´ogico, el dise˜nador puede proporcionar la descripci´on inicial del circuito de maneras diferentes. Una forma eficiente es escribir esta descripci´on en forma de c´odigo VHDL. El compilador VHDL traduce este c´odigo en un circuito l´ogico. Cada se˜nal l´ogica en el circuito est´a representado en c´odigo VHDL como un objeto de datos. Al igual que las variables declaradas en cualquier len- guaje de programaci´on de alto nivel se han asociado datos de tipos, tales como n´umeros enteros o caracteres. La norma VHDL original, IEEE 1076, incluye un tipo de datos llamado BIT. Un objeto de este tipo es muy adecuado para la representaci´on de se˜nales digitales ya que los objetos de bits puede tener s´olo dos valores, 0 y 1 Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 22.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL ¿Para qu´e sirve el VHDL? El VHDL permite modelar Sistemas Digitales. A partir de estos modelos se puede: Con VHDL modelamos el Hardware. VHDL permite tambi´en programar Algoritmos (Software). Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 23.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Or´ıgenes e Historia de VHDL VHDL surge a principios de los ’80 de un proyecto del DARPA (Departamen- to de Defensa de los EEUU) llamado VHSIC (Very High Speed Integrated Circuits). VHDL aparece como una manera de describir circuitos integrados. La crisis del ciclo de vida del HW: cada d´ıa los circuitos integrados eran m´as complicados, y el coste de reponerlos cada vez era mayor, porque no estaban correctamente documentados. VHDL naci´o como una manera est´andar de documentar los circuitos. Al mismo tiempo, se vio que la expresividad de VHDL permitir´ıa reducir el tiempo de dise˜no de los circuitos, porque se podr´ıan crear directamente de su descripci´on: utilidad de la s´ıntesis. En 1987 el trabajo fue cedido al IEEE, y a partir de ese momento es un est´andar abierto. Esa norma fue aprobada en 1993 y denominada IEEE 1164. La norma fue actualizada posteriormente en 2000 y 2002. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 24.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Principios B´asicos de VHDL Una unidad hardware se visualiza como una ’caja negra’. La interfaz de la caja negra esta completamente definida. El interior esta oculto. En VHDL la caja negra se denomina entidad La ENTITY describe la E/S del dise˜no Para describir su funcionamiento se asocia una implementaci´on que se deno- mina arquitectura La ARCHITECTURE describe el contenido del dise˜no. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 25.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Entidad Una entidad (entity) es el bloque ele- mental de dise˜no en VHDL. Las enti- dades son los elementos electr´onicos que forman un sistema digital. ENTITY nombreEntidad La declaraci´on de una entidad en VHDL se hace con la palabra reservada ENTITY seguido del nombre de la entidad. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 26.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Arquitectura Una arquitectura (arquitecture) es el circuito l´ogico dentro de la entidad dise˜nada en VHDL. Los contenidos de la entidad (el circuito) se mode- lan dentro de la arquitectura. ARQUITECTURE nombreArquitectura La declaraci´on de una arquitectura en VHDL se hace con la palabra reservada ARQUITECTURE seguido del nombre de la arquitectura. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 27.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Arquitectura Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 28.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Puertos Las se˜nales de entrada y de salida para la entidad se llaman puertos, se identifican por la palabra reservada en VHDL PORT. Ports = canales de comunicaci´on Este nombre se deriva de la jerga el´ectrica en la que la palabra se refiere a un puerto de entrada o conexi´on de salida de un circuito electr´onico. Cada puerto tiene un modo asociado que especifica si se trata de una entrada (input IN) a la entidad o una salida (output OUT) de la entidad. Cada puerto representa una se˜nal, por lo que tiene un tipo asociado. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 29.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Puertos Los modos de un puerto indican la direcci´on y si el puerto puede leerse o escribirse dentro de la entidad. IN Una se˜nal que entra en la entidad y no sale. La se˜nal puede ser le´ıda pero no escrita. OUT Una se˜nal que sale fuera de la entidad y no es usada internamente. La se˜nal no puede ser le´ıda dentro de la entidad. INOUT Una se˜nal que es bidireccional, entrada/salida de la entidad. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 30.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Tipos de Datos en VHDL El TIPO es la definici´on de los valores posibles que puede tomar un objeto. Los tipos predefinidos en VHDL son: Escalares integer floating point enumerated physical Compuestos array record Ficheros access Archivos file Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 31.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Algunos tipos de Datos B´asicos VHDL es fuertemente tipado. Un lenguaje de programaci´on es fuerte- mente tipado si no se permiten violaciones de los tipos de datos. INTEGER: tipo entero Usado como valor ´ındice en lazos, constantes o valores gen´ericos BOOLEAN: tipo l´ogico Puede tomar como valores ’TRUE’ o ’FALSE’ ENUMERATED: Enumeraci´on Conjunto de valores definido por el usuario. Por ejemplo: TYPE estados IS (inicio, lento, rapido) Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 32.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Tipos: STD LOGIC y STD LOGIC VECTOR Definidos en el paquete IEEE.standard logic 1164. Son un est´andar industrial. Se usan SIEMPRE para definir los puertos de las entidades. Tipo Std logic: valor presente en un cable de 1 bit. Tipo Std logic vector: para definir buses (array de std logic). ’0’ Salida de una puerta con nivel l´ogico bajo. ’1’ Salida de una puerta con nivel l´ogico alto. ’U’ No inicializado, valor por defecto. ’X’ Desconocido. Debido a un CORTOCIRCUITO. ’Z’ Alta Impedancia. Existen m´as valores posibles, como: ’W’,’L’,’H’,’-’ Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 33.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Tipos: STD LOGIC y STD LOGIC VECTOR Se tiene la entidad ’mi componente’ en donde tenemos tres se˜nales de entrada y una de salida. Codificaci´on Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 34.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Asignaci´on de se˜nales en buses Se define una se˜nal de 8 bits para trabajar con ella: SIGNAL tmp: STD LOGIC VECTOR(7 downto 0); Asignaci´on de un valor binario: tmp <= ”10100011”; Asignaci´on de un valor en hexadecimal: tmp <= x”A3”; Asignaci´on de un bit: tmp(7) <= ’1’; Asignaci´on de un rango de bits: tmp(7 downto 4) <= ”1010”; Asignaci´on de un rango de bits: tmp(7 downto 4) <= ”1010”; Asignaci´on compacta: tmp <= (0=>’0’, 1=>c and b, others=>’Z’); Notaci´on 1 bit : comilla simple (’) multiples bits: comilla doble (”) Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 35.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Tipos: SIGNED y UNSIGNED Las operaciones aritm´eticas est´andares est´an definidas para los tipos SIG- NED y UNSIGNED en VHDL. Est´an definidos en la librer´ıa IEEE.numeric std USE ieee.numeric std.all; Ejemplo de uso Se define una variable de tipo unsigned, para implementar un contador: VARIABLE contador: unsigned(7 downto 0); Incrementamos la variable en 1: contador:=contador + 1; Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 36.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Conversiones de tipos Las operaciones aritm´eticas est´andares est´an definidas para los tipos SIG- NED y UNSIGNED pero los puertos de las entidades se definen SIEMPRE para los tipos STD LOGIC y STD LOGIC VECTOR por tanto hay que hacer Conversiones de tipos. Existen librer´ıas NO EST´ANDARES que permiten hacer operaciones direc- tamente con el tipo std logic vector. std logic signed std logic unsigned std logic arith Si se quiere hacer un c´odigo VHDL portable, conviene no usarlas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 37.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Conversiones de tipos Se usar´an estos objetos como ejemplo: signal stdv: std logic vector(7 downto 0); variable uns: unsigned(7 downto 0); variable sig: signed(7 downto 0); variable entero: Integer Conversi´on de signed y unsigned a std logic vector: stdv <= std logic vector(uns); stdv <= std logic vector(sig); Conversi´on de std logic vector a signed y unsigned: uns := unsigned(stdv); sig := signed(stdv); Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 38.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Conversiones de tipos Conversi´on de signed y unsigned a Integer: entero := to integer(sig); entero := to integer(uns); Conversi´on de Integer a signed y unsigned: uns := to unsigned(entero,8); sig := to signed(entero,8); Conversi´on de std logic vector a Integer y vice-versa stdv <= std logic vector(to unsigned(entero,8)); entero := to integer(unsigned(stdv)); Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 39.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Operadores definidos en VHDL L´ogicos and, or, nor, xor, xnor Relacionales =igual, /=distinto, <menor, <=menor o igual, >mayor, >=mayor o igual Miscel´aneos abs valor absoluto, ** exponenciaci´on, not negaci´on (unario) Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 40.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Operadores definidos en VHDL Adici´on + suma, – resta, & concatenaci´on de vectores Multiplicativos * multiplicaci´on, / divisi´on, rem resto, mod m´odulo Signo (unarios) +, – Desplazamiento (signed y unsigned) shift right, shift left Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 41.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL M´as sobre Operadores en VHDL No todos los operadores est´an definidos para todos los tipos. El operador de concatenaci´on se utiliza muy a menudo. Las funciones shift right() y shift left() permiten hacer desplazamien- tos, pero solo para los tipos unsigned y signed. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 42.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Procesos en VHDL Un proceso en VHDL describe el comportamiento de un circuito. Cuyo estado puede variar cuando cambian ciertas se˜nales Utilizando construcciones muy expresivas: if..then..else, case, bucles for y while, etc. Y que adem´as puede declarar variables, procedimientos, etc. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 43.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Descripci´on de una Compuerta AND El siguiente proceso nos permite emular una compuerta AND, con 2 entradas A, B y una salida S. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 44.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL El problema de la concurrencia del Hardware El HW es inherentemente concurrente, los circuitos coexisten f´ısicamente en el tiempo El chip tiene dos compuertas que funcionan simult´aneamente Este HW no se puede modelar en un lenguaje secuencial como C: S = A & B; Q = C|D; Ambas puertas funcionan al mismo tiempo, ¡no una antes de la otra! Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 45.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Concurrencia: Una posible soluci´on La soluci´on al problema anterior es que aunque la ejecuci´on sea secuencial, las instrucciones no tarden ning´un tiempo en ejecutarse: De esta manera aunque una instrucci´on se ejecuta despu´es de la otra, como las dos se eval´uan en el mismo instante, desde el punto de vista de la modelizaci´on del circuito ambas puertas est´an funcionando simult´aneamente. Esta es la soluci´on que adopta VHDL (y Verilog). Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 46.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Necesidad de la concurrencia Sin embargo, esta soluci´on ya no vale con este circuito: ¿Por qu´e? No hay que olvidar que se trata de modelizar circuitos reales, no virtuales, y las se˜nales necesitan que transcurra el tiempo para tomar un valor: Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 47.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL La soluci´on de VHDL VHDL (y en general, todos los HDLs) solucionan este problema dando so- porte explicito a la concurrencia. En VHDL, una arquitectura puede tener tantos procesos como queramos, y todos se ejecutan concurrentemente. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 48.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Dos procesos en paralelo como soluci´on La soluci´on al problema se plantea usando 2 procesos en paralelo. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 49.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Procesos Los procesos se disparan (su c´odigo se ejecuta) cuando cambia alguna de las se˜nales en su lista de sensibilidad. Las instrucciones dentro del proceso se ejecutan secuencialmente, una detr´as de otra, pero sin dar lugar a que avance el tiempo durante su ejecuci´on. El tiempo s´olo avanza cuando se llega al final del proceso. Las se˜nales modelan hilos del circuito, y como tales, s´olo pueden cambiar de valor si se deja que avance el tiempo. Una arquitectura puede tener tantos procesos como queramos, y todos se van a ejecutar en paralelo. Esta es la manera que tiene VHDL de expresar la concurrencia inherente al hardware. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 50.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Instrucciones en Procesos Las Estructuras de Control m´as usadas en VHDL son: IF..THEN..ELSE CASE FOR WHILE NEXT Y EXIT Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 51.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Instrucciones en procesos: IF..THEN..ELSE Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 52.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Instrucciones en procesos: CASE Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 53.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Instrucciones en procesos: Bucle FOR Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 54.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Instrucciones en procesos: Bucle WHILE Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 55.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Bucles con Next & Exit En VHDL se pueden crear bucles infinitos. Todos los bucles pueden tener una condici´on de salida. Con la instrucci´on next termina inmediatamente la iteraci´on actual y se pasa a la siguiente. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 56.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Procesos: Dos opciones de funcionamiento Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 57.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Clausula WAIT Una sentencia PROCESS siempre tiene que contener en su parte descriptiva una sentencia WAIT. En caso contrario su ejecuci´on se interpreta como un bucle infinito del que no se sale. Suspender el proceso durante un tiempo: WAIT for 10 ns; Suspender el proceso hasta que ocurra una condici´on: WAIT until rising edge(clk); Esperar a que cambie alguna de las se˜nales de una lista: WAIT on a, b, clk; Equivalente a emplear lista de sensibilidad Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 58.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Asignaci´on de valores a se˜nales Las asignaciones a se˜nales dentro de procesos s´olo se ejecutan cuando se suspende el proceso. Las se˜nales modelan conexiones f´ısicas, y por tanto, no s´olo deben tener en cuenta el valor, sino tambi´en el tiempo. Para que un cable cambie de valor hace falta que el tiempo avance. De la misma forma, para que una se˜nal cambie de valor hace falta que el tiempo avance. El tiempo s´olo avanza cuando se suspende el proceso. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 59.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Las Variables en VHDL Cuando se modela un circuito viene bien tener un objeto cuyo valor se ac- tualice inmediatamente. Sin tener que esperar a que avance el tiempo, como en las se˜nales. La soluci´on son las Variables. Las variables se declaran dentro de los procesos. S´olo se ven dentro del proceso que las ha declarado. Toman el valor inmediatamente, son independientes del tiempo. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 60.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Soluci´on con Variables El problema de la actualiza- ci´on de la se˜nal S tiene muy f´acil soluci´on con una variable. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 61.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Introducci´on a VHDL Un sistema CAD t´ıpico Representaci´on de se˜nales digitales en VHDL ¿Para qu´e sirve el VHDL? Or´ıgenes e Historia de VHDL Principios B´asicos de VHDL Tipos de Datos en VHDL Operadores definidos en VHDL Procesos en VHDL Instrucciones en Procesos Asignaci´on de valores a se˜nales Las Variables en VHDL Sem´antica de variables y se˜nales Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 62.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on Modelar l´ogica combinacional con procesos Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 63.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on El problema de la memoria impl´ıcita CAUSA Las se˜nales en VHDL tienen un estado actual y un estado futuro. EFECTOS En un proceso, si el valor futuro de una se˜nal no puede ser determinado, se mantiene el valor actual. Se sintetiza un latch para mantener su estado actual. VENTAJAS Simplifica la creacion de elementos de memoria. DESVENTAJAS Pueden generarse latches no deseados, como por ejm cuando todas las opciones de una sentencia condicional no est´an especificadas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 64.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on Un problema con la memoria impl´ıcita Dise˜nar un circuito de acuerdo a esta tabla de verdad La soluci´on es incorrecta, por no poner el caso ”11”no significa ”don’t care”, simplemente est´a guardando el valor anterior, est´a generando un latch. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 65.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on Reglas para evitar la memoria impl´ıcita Para evitar la generaci´on de latches no deseados. Se deber terminar la instrucci´on IF...THEN...ELSE... con la cl´ausula ELSE Especificar todas las alternativas en un CASE, definiendo cada alter- nativa individualmente, o mejor terminando la sentencia CASE con la cl´ausula WHEN OTHERS... Por ejemplo: Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 66.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on Asignaciones concurrentes Las asignaciones concurrentes son asignaciones de valores a se˜nales, fuera de proceso, que permiten modelar de una manera muy compacta l´ogica combi- nacional Funcionan como procesos (son procesos impl´ıcitos) y se ejecutan concu- rrentemente con el resto de procesos y asignaciones. Hay tres tipos de asignaciones concurrentes: Asignaciones simples Asignaciones condicionales Asignaciones con selecci´on Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 67.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on Asignaciones concurrentes simples A una se˜nal se le asigna un valor que proviene de una expresi´on, que puede ser tan compleja como queramos. s <= ((a + b) * c) and d; Esta expresi´on es completamente equivalente a este proceso: process(a,b,c,d) begin s <= ((a + b) * c) and d; end process; Se pueden utilizar todos los operadores que queramos, tanto los predefinidos como los que importemos de las librer´ıas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 68.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on Asignaciones concurrentes condicionales A la se˜nal se le asigna valores dependiendo de si se cumplen las condi- ciones que se van evaluando: Por su ejecuci´on en cascada es similar al IF..THEN..ELSE. Pueden generarse problemas de memoria impl´ıcita si no se pone el ´ultimo else. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 69.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Modelar l´ogica combinacional con procesos El problema de la memoria impl´ıcita Un problema con la memoria impl´ıcita Reglas para evitar la memoria impl´ıcita Asignaciones concurrentes Asignaciones concurrentes simples Asignaciones concurrentes condicionales Asignaciones concurrentes con selecci´on Asignaciones concurrentes con selecci´on Se le asigna un valor a una se˜nal dependiendo del valor que tome una expresi´on: Por su ejecuci´on en paralelo (balanceada) es similar a un CASE. Se pueden dar problemas de memoria impl´ıcita si no se pone el ´ultimo when others. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 70.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales El fundamento: Modelo del flip-flop D Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 71.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales Flip-flop con reset as´ıncrono y clock enable Es otro circuito fundamental. El reset debe estar en la lista de sensibilidad porque es as´ıncrono, tiene efecto independientemente del reloj. En los circuitos secuenciales, la lista de sensibilidad debe estar compuesta como mucho por el reloj y el reset (si es as´ıncrono). Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 72.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales El axioma del dise˜no s´ıncrono El reloj es ´unico y est´a en todos los flip-flops del dise˜no No se pueden usar dos relojes en el sistema. Todas las se˜nales as´ıncronas se deben muestrear (pasar por un flip-flop D) nada m´as entrar al sistema. No se deben poner puertas en el reloj, si se necesita deshabilitar la carga de un flip-flop utilizar la habilitaci´on de reloj. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 73.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales Ejemplo: Un contador de 8 bits Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 74.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales Ejemplo: Un registro de desplazamiento Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 75.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales Metodolog´ıa: Dise˜no circuitos secuenciales Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 76.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales Metodolog´ıa: Dise˜no circuitos secuenciales Maquinas de estados: FSM Utilizaci´on de subtipos: . Definici´on de Estados Tres Bloques Funcionales L´ogica combinacional: Decisi´on de cambio de estado. Registros: Mantienen el estado. L´ogica combinacional de defini- ci´on de salidas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 77.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales Metodolog´ıa: Dise˜no circuitos secuenciales Maquinas de estados: FSM Utilizaci´on de subtipos: . Definici´on de Estados Tres Bloques Funcionales L´ogica combinacional: Decisi´on de cambio de estado. Registros: Mantienen el estado. L´ogica combinacional de defini- ci´on de salidas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 78.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias El fundamento: Modelo del flip-flop D Flip-flop con reset as´ıncrono y clock enable El axioma del dise˜no s´ıncrono Ejemplo: Un contador de 8 bits Ejemplo: Un registro de desplazamiento Metodolog´ıa: Dise˜no circuitos secuenciales Metodolog´ıa: Dise˜no circuitos secuenciales Maquinas de estados: FSM Utilizaci´on de subtipos: . Definici´on de Estados Tres Bloques Funcionales L´ogica combinacional: Decisi´on de cambio de estado. Registros: Mantienen el estado. L´ogica combinacional de defini- ci´on de salidas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 79.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy FSM: M´aquinas de Moore FSM MOORE: Una maquina de estados en la que las salidas cambian solo cuando cambia el estado. Las posibles implementaciones son: Asignaci´on arbitraria del valor de los estados Las salidas se decodifican a partir de los estados. 1 Decodificaci´on combinacional. 2 Decodificaci´on registrada. Asignaci´on espec´ıfica de los valores de estado Las salidas pueden ser codificadas directamente en los estados. Codificaci´on one-hot. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 80.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Implementaci´on de una FSM de Moore Salidas decodificadas a partir del valor de los estados. 1 Decodificaci´on Combinacional Las salidas se decodifican a partir del estado actual. Salidas = funci´on(estado actual). Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 81.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Implementaci´on de una FSM de Moore Salidas decodificadas a partir del valor de los estados. 1 Decodificaci´on registrada La decodificaci´on de las salidas se realiza en paralelo con la decodificaci´on del siguiente estado. Salidas = funci´on(estado anterior, entradas). Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 82.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Implementaci´on de una FSM de Moore Salidas codificadas en los bits de los estados. Nota: Los dos bits del estado son utilizados como salida. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 83.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Generador de ”wait states” Diagrama de Estados Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 84.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Declaraci´on de la entidad La declaraci´on de la entidad es la misma para todas las implementacio- nes: Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 85.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Soluci´on 1 Salidas combinacionales decodificadas a partir de los estados. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 86.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Soluci´on 1 (continuaci´on) Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 87.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Solucion 2 Salidas registradas decodificadas desde el valor de los estados. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 88.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Soluci´on 2 (continuaci´on) Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 89.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Solucion 3 Salidas codificadas en el valor de los estados. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 90.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Soluci´on 3 (continuaci´on) Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 91.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy FSM: Codificaci´on One-hot Un estado por flip-flop. En FPGAs reduce la l´ogica de c´alculo de estado siguiente por tanto, menos profundidad de l´ogica permitiendo m´aquinas muy r´apidas (>100MHz) En CPLDs reduce el n´umero de t´erminos producto eliminando, si los hubiera, expasiones de productos, y mejorando por tanto la velocidad pero usa muchas m´as macroceldas, y el beneficio nunca es tan evidente como en FPGAs Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 92.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Soluci´on One-hot Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 93.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Soluci´on One-hot (continuaci´on) Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 94.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy FSM Moore: Resumen Salidas decodificadas de los bits de estado Mayor flexibilidad en el proceso de dise˜no. Utilizando tipos enumerados se permite que la asignaci´on de los estados se realice durante la compilaci´on. Salidas codificadas en los bits de estado Asignaci´on manual del valor de los estados. La salida se obtiene directamente de los registros. Se reduce el n´umero de registros. L´ogica adicional m´as compleja. Codificaci´on One-Hot Logica de siguiente estado mas sencilla. Mejora la velocidad. Necesita mas registros. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 95.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy FSM: M´aquinas de Mealy FSM Mealy: Las salidas cambian por un cambio de estado o por un cambio en el valor de las entradas. Hay que tener mucho cuidado con las entradas as´ıncronas. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 96.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Generador de ”wait states” Diagrama de Estados Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 97.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias FSM: M´aquinas de Moore FSM: M´aquinas de Mealy Ejemplo: Soluci´on Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 98.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Concepto de Driver de una Se˜nal Inferencia de Triestado Ejemplos de Inferencia de Buffers Triestado Se˜nales Bidireccionales Ejemplo con Se˜nales Bidireccionales Concepto de Driver de una Se˜nal El driver es el elemento que da valores a una se˜nal. Para cada se˜nal que se le asigna un valor dentro de un proceso se crea un driver para esa se˜nal. Independientemente de cuantas veces se le asigne un valor a la se˜nal, se crea un ´unico driver por proceso. Tanto para procesos expl´ıcitos como impl´ıcitos. Cuando hay m´ultiples drivers se usa la funci´on de resoluci´on. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 99.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Concepto de Driver de una Se˜nal Inferencia de Triestado Ejemplos de Inferencia de Buffers Triestado Se˜nales Bidireccionales Ejemplo con Se˜nales Bidireccionales Inferencia de triestado Cuando se quiere que un driver de una se˜nal se quede en alta impedancia, se le asigna a la se˜nal el valor ’Z’. S´olo vale si para el tipo std logic. Igual que ocurre en la realidad, el estado de la se˜nal lo fijar´a el driver que no est´e en alta impedancia. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 100.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Concepto de Driver de una Se˜nal Inferencia de Triestado Ejemplos de Inferencia de Buffers Triestado Se˜nales Bidireccionales Ejemplo con Se˜nales Bidireccionales Ejemplos de Inferencia de Buffers Triestado Con asignaci´on condicional: Con un proceso: Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 101.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Concepto de Driver de una Se˜nal Inferencia de Triestado Ejemplos de Inferencia de Buffers Triestado Se˜nales Bidireccionales Ejemplo con Se˜nales Bidireccionales Se˜nales Bidireccionales En este caso la se˜nal tiene drivers externos, fuera de la entidad. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 102.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Concepto de Driver de una Se˜nal Inferencia de Triestado Ejemplos de Inferencia de Buffers Triestado Se˜nales Bidireccionales Ejemplo con Se˜nales Bidireccionales Ejemplo con Se˜nales Bidireccionales Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 103.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Dise˜no Jer´arquico ´Arbol de Jerarqu´ıas Ejemplo de Instanciaci´on de Componentes Dise˜no Jer´arquico Componentes peque˜nos son uti- lizados como elementos de otros m´as grandes. Permite reutilizar c´odigo. Dise˜nos m´as legibles y portables. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 104.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Dise˜no Jer´arquico ´Arbol de Jerarqu´ıas Ejemplo de Instanciaci´on de Componentes ´Arbol de Jerarqu´ıas Cada componente de la jerarqu´ıa es un archivo VHDL, con: Entidad Arquitectura Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 105.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Dise˜no Jer´arquico ´Arbol de Jerarqu´ıas Ejemplo de Instanciaci´on de Componentes Ejemplo de Instanciaci´on de Componentes Se intenta dise˜nar la siguiente enti- dad: Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 106.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Dise˜no Jer´arquico ´Arbol de Jerarqu´ıas Ejemplo de Instanciaci´on de Componentes Ejemplo de Instanciaci´on de Componentes Se puede implementar a partir de la conexi´on en serie de los componentes mi comp. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 107.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Dise˜no Jer´arquico ´Arbol de Jerarqu´ıas Ejemplo de Instanciaci´on de Componentes Ejemplo de Instanciaci´on de Componentes Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 108.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Pasos de la Simulaci´on Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 109.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Bancos de Pruebas Se debe hacer un Banco de Pruebas (Testbench) para cada componente di- se˜nado. La simulaci´on de un componente con- siste en: Generar unos est´ımulos. Observar los resultados. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 110.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 C´omo hacer un Banco de Pruebas? 1 Instanciar el dise˜no que vamos a verificar. 2 Escribir un proceso (o procesos) para generar los est´ımulos. 3 Observar el resultado e informar al usuario. Banco de Pruebas Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 111.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 C´omo hacer un Banco de Pruebas? Es un dise˜no jer´arquico donde el banco de pruebas ocupa el pri- mer nivel. El banco de pruebas es una EN- TIDAD sin puertos. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 112.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Generando Est´ımulos El proceso de pruebas generar´a est´ımulos de manera secuencial. Se asignan valores a las entradas. Se espera un tiempo a obtener la respuesta. Ejm. Sumador de 8 bits. Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 113.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Comprobando las Respuestas Las respuestas del circuito a probar se comprueban con la instrucci´on AS- SERT. ASSERT condicion REPORT string SEVERITY nivel; Significa: ’Asegurar que se cumple la condici´on’. Si se cumple, el proceso contin´ua ejecut´andose. Si NO se cumple, se informa al usuario ’Report’ y se indica en nivel de gravedad del error. Los niveles de SEVERITY son: NOTE WARNING ERROR (nivel por defecto si no se incluye SEVERITY) FAILURE Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 114.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Algoritmo B´asico para los Testbenches Algoritmo elemental de verificaci´on: Dar valores a las se˜nales de entrada a la UUT Esperar con WAIT FOR Comprobar los resultados con ASSERT Volver a dar valores a las se˜nales de entrada a la UUT y repetir Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 115.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Ejemplo: Sumador 1 Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 116.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Ejemplo: Sumador 2 Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 117.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Ejemplo: Sumador 3 Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 118.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Ejemplo: Sumador 4 Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 119.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Pasos de la Simulaci´on Bancos de Pruebas C´omo hacer un Banco de Pruebas? Generando Est´ımulos Comprobando las Respuestas Algoritmo B´asico para los Testbenches Ejemplo: Sumador 1 Ejemplo: Sumador 2 Ejemplo: Sumador 3 Ejemplo: Sumador 4 Ejemplo: Sumador 5 Ejemplo: Sumador 5 Es mejor hacer una prueba sistem´atica. Probamos todos los casos posibles: Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE
  • 120.
    Introducci´on VHDL Circuitos Combinacionales enVHDL Circuitos Secuenciales en VHDL M´aquinas de Estados en VHDL Triestados en VHDL Dise˜no Jer´arquico en VHDL Verificaci´on con Testbenches en VHDL Referencias Referencias Ing. Alcides Araujo Pacheco. Presentaci´on VHDL Alcides Araujo Stephen Brown, Zvonko Vranesic. Fundamentals of DIGITAL LOGIC with VHDL Design 3rd ed - 2012. David G. Maxines, Jessica Alcala. VHDL El arte de programar sistemas digitales 2002. Juan Gonz´ales. Introducci´on al Lenguaje de Descripci´on de Hardware VHDL http://arantxa.ii.uam.es/˜jgonzale/fco/curso07- 08/download/seminarios-vhdl.pdf Ing. Alcides Araujo Pacheco CAP´ITULO IV: L ´OGICA PROGRAMABLE