lógica programable - ahdl · dando “ok” se ingresan y aparecerán luego en el gráfico....

78
L L ó ó gica Programable gica Programable - - AHDL AHDL - - Introducci Introducci ó ó n a los Sistemas n a los Sistemas L L ó ó gicos y Digitales gicos y Digitales 2008 2008 Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

Upload: others

Post on 05-Aug-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

-- AHDL AHDL --

IntroducciIntroduccióón a los Sistemas n a los Sistemas LLóógicos y Digitalesgicos y Digitales

20082008

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

Page 2: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

HDL- Hardware Description Language -

( Lenguaje de Descripción de Hardware)

AHDL

Page 3: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

Qué es HDL?Es una herramienta formal para describir la estructura y comportamiento de sistemas usando un lenguaje del tipo textual.

Cuáles son sus características?- Posibilita dividir un proyecto en una estructura jerárquica permitiendo

combinar diferentes tipos de descripciones para diseñar los componentesde un sistema.

- Puede modelizar la respuesta temporal de sistemas electrónicos.

Cómo se lo puede utilizar?- Como herramienta de diseño: Posibilita la creación de componentes

parametrizados.Permite un diseño portable con independencia de la tecnología.

- Como herramienta de especificación: Se puede especificar un sistema ocualquiera de sus componentes.

- Como herramienta de simulación: Capacidad de generar tests complejos.Disponibilidad de modelos suministrados por fabricantes.

AHDL

Page 4: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

Tipos de HDL:

Bajo nivel: ABEL, PALASM, CUPL, etc..

Nivel medio: AHDL.

Nivel alto: VHDL, Verilog.

AHDL

Cuanto mas alto es el nivel de abstracción, en forma mas simplese puede especificar un diseño para generar lógica compleja.Sin embargo, es útil el conocimiento de las estructuras de hardware a utilizar ya que a veces la síntesis se realiza de modotal que el diseñador pierde la visión de cómo el compilador implementa lo especificado, con el riesgo de un uso quizás no muy eficiente del hardware que puede hasta comprometer laperformance de velocidad, consumo de potencia, etc..

Page 5: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDL:

Lenguaje de descripción de hardware propietario de Altera.Tiene característica de HDL que le permiten ser eficiente paradesarrollos de baja a media complejidad.

Es un paso intermedio entre los lenguajes de bajo a alto nivelde abstracción ó complejidad.

Utiliza el modelo “behavioral” (de comportamiento) para describirla lógica que se desea implementar.

AHDL

Page 6: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDL

EJEMPLO: compuertas01.tdf

El archivo de trabajo se ha denominado “compuertas01.tdf”.

Las declaraciones de entradas y salidas del circuito a implementar se hacen aquí

Esta es la parte dondese hace la especificaciónde la lógica que se quiere

IMPLEMENTACIÓN DE ALGEBRA DE BOOLE

“&” ≡ AND“#” ≡ OR“!” ≡ NOT“$” ≡ OR-EXCL.

Page 7: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Icono del compilador

Luego de salvar el proyecto se debe compilar, operación que realiza elsoftware para sintetizar la lógica en base a lo especificado.La compilación puede ser:Funcional: No se consideran los retardos.Temporizada: Se consideran los retardos internos generados.

Page 8: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Resultado de la compilación

Page 9: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Listado parcial del archivo de reporte (extensión “rpt”)

En este archivo se refleja toda la información que dá el compilador como:Pines empleados. Recursos utilizados y remanentes.Etc..

Page 10: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Listado parcial del archivo de reporte (extensión “rpt”)

Disposición de las variablessintetizadas.

Page 11: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Listado parcial del archivo de reporte (extensión “rpt”)

Información generalde recursos empleados.

Page 12: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Listado parcial del archivo de reporte (extensión “rpt”)

Page 13: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

El archivo tiene extensión “scf”

Page 14: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Método para ingresar las variables del circuito (entradas, salidasy eventualmente señales internas)

Gráfico de ventana para simulación del hardware sintetizado

Page 15: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Presionando “LIST” aparecen a la izquierda todas las variablesposibles de ingresar.

Gráfico de ventana para simulación del hardware sintetizado

Page 16: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Dando “OK” se ingresan y aparecerán luego en el gráfico.

Gráfico de ventana para simulación del hardware sintetizado

Page 17: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

El gráfico es un conjunto de diagramas temporales para realizar lasimulación. Por lo tanto se deben especificar temporalmente los valores que tomaran las entradas en todo el tiempo de simulación.Luego se corre el programa asociado y se ven los resultados.

Gráfico de ventana para simulación del hardware sintetizado

señales de entrada

señales de salida

Page 18: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Zoom (+)Zoom (-)

Asignación de:“1”

ó “0”ó “Z”

Page 19: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Se marca la variable deentrada a la cual se lequiere dibujar eldiagrama de tiempos

Page 20: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Se marca por ejemplola zona donde se quiereque “a” valga “1”.

Para que se efectivice,se debe presionar el iconocorrespondiente.

Page 21: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Se puede observar con detalle empleando el zoom, las marcaciones de las variables para dibujar con precisión la evolución de las mismas.

Page 22: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Icono del simulador

Terminada la etapa de dibujar las variables de entrada, se procede acorrer la simulación.

Page 23: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Al inicio, el simulador presenta una ventana como esta donde indicalos tiempos de inicio y de fin.

Page 24: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Si todo está correcto debe aparecer una ventana como esta.

Page 25: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: compuertas01.tdf

Gráfico de ventana para simulación del hardware sintetizado

Aquí se puede observar los diagramas de las funciones:Or-Exclusiva, OR, Nor-Exclusiva, NOR, NAND y AND respectivamente.Los retardos son los propios del dispositivo seleccionado.

Page 26: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDL

EJEMPLO: deco01.tdf

El diseño del decodificador se basa en una ecuación deequivalencia; cuando es cierta “chip_hab” vale “1”.

Page 27: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDL

EJEMPLO: deco02.tdf

El diseño del decodificador se basa en una ecuación deequivalencia; cuando es cierta “chip_hab” vale “1”.La diferencia con lo anterior es que se usó una sentencia “CONSTANT” para definir el número de comparación.

Page 28: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: deco03.tdf

El diseño del decodificador se basa en una tabla de asignaciónde valores. Nótese la posibilidad de emplear “dont´care”.

Page 29: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: deco04.tdf

Decodificador BCD a 7 segmentos

Con el empleo de la función TABLE es posible realizar una innumerable cantidad de decodificadores.

En este caso la entrada es un dígito en BCD y las salidas alimentan a un display de 7 segmentos.

Es importante aclarar que algunosdispositivos lógicos programablesNO TIENEN capacidad de corrientesuficiente para manejar directamente a diodos emisores de luz (LED) por lo que se deben anteponer circuitos adicionales (por ejemplo el ULN2803).

Page 30: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: deco04.tdf

“0” = todos los segmentos en “1” excepto el “g”

“8” = todos los segmentos en “1”

Page 31: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: deco05.tdf

Uso de sentencia CASE

Cuando hay opciones que no se cubrense puede usar la cláusura:“WHEN OTHERS”

Page 32: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: encoder01.tdf

Uso de sentencia IF

Page 33: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDiferencias importantes entre sentencias CASE y sentencias IF

Cualquier tipo de expresión Booleana puede ser usada dentro deuna sentencia IF Then.En cambio en CASE una expresión simple Booleana es comparadapor una constante en cada cláusura WHEN.

Usando la cláusura ELSEIF se puede generar lógica muy complicada(innecesaria) debido a que cada ELSEIF debe ser chequeada si la anterior IF/ELSEIF ha sido Falsa.

Page 34: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: bidir01.tdf

QDFF

D

reloj

oein_out

TRI

Posible síntesis del compilador

Page 35: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: reg01.tdf

Este registro de 8 bits está formadopor 8 FFs tipo “D” DFFE sincrónicos disparados por flanco ascendentey con entrada de habilitación.

Estos DFFE forman parte de la libreríainterna “primitiva” del MAX-Plus II.

Page 36: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: reg02.tdf

Este ejemplo sintetiza exactamente lo mismo que “reg01.tdf”.La gran diferencia es que se utiliza la librería de componentes parametrizados ( en este caso un FF tipo “D”).

Un componente parametrizadoes genérico y se lo configurasegún las necesidades.Por ejemplo con LPM_WIDTHse le indica la longitud depalabra (en este caso elcompilador generará 8 FFs).

Page 37: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador01.tdf

En este diseño se sintetiza uncontador basado en un conjuntode 16 FF´s tipo “D” DFF.

Con el uso de sentencia IF se sintetiza el contador con entradasde carga y habilitación además degenerar la secuencia de conteoascendente binaria usando lasentencia: “cuenta[].q + 1”

Este es un ejemplo donde se puedeapreciar la “potencia” del HDLpara sintetizar lógica.

Cómo hacemos para implementar un contador regresivo…????

Page 38: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador01.tdf

Page 39: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador02.tdf

Con el empleo de la librería de componentes parametrizados (en este caso un contador) seimplementa un contador binario progresivo-regresivo con reset y habilitación.Comparado con el ejemplo anterior, se puede observar la simplicidad del código para la implementación.

Contador binario de 4 bitssincrónico disparado porflanco ascendente y conentradas de habilitaciónde reloj, reset y sentidode conteo (progresivo óregresivo)

Page 40: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador02.tdf

Page 41: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador03.tdf

Contador BCD de un dígito sincrónico disparado por flanco ascendente y con entradas de habilitación de reloj, reset y sentido de conteo (progresivo ó regresivo)

Aquí se especifica que el contador sea BCD

En el ejercicio anteriorera LPM_MODULUS=16para binario

Page 42: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDL

Las mismas excitaciones al contador nos dá la respuesta de uno deltipo BCD.

EJEMPLO: contador03.tdf

Page 43: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador04.tdf

Este ejemplo muestracomo se puede realizaruna cascada sincrónicade contadores binariosde 12 bits en total

Se emplea la entradade habilitación paraque: contador1 sólo cuente cuando el contador0 llegue a “15”.contador2 lo mismopero cuando los dosanteriores lleguen a esemismo valor.Idem con contador3 quedebe cambiar sólocuando los 3 anterioreslleguen a “15” (desborde)

Page 44: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador04.tdf

Page 45: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador05.tdf

Lo mismo que antesexcepto que es unacascada de contadores BCD.

Aquí el desborde es luego de llegar a “9”.

El mismo resultado sellega si en el archivoanterior sólo se cambia“15” por el “9” en lassentencias de habilitaciónde los contadores.

Page 46: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador05.tdf

Page 47: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador06.tdf

Este es un ejemplo deun divisor de frecuenciasincrónico que tiene unaentrada de 8 MHz ysale una señal de 1 KHz(divide x 8.000).

Observar que los 3primeros contadores sonBCD por lo que ya setiene una división x1000.El último contador esbinario de 3 bits y lasalida se obtiene deQ2 donde la señal esla 8va parte del conteoque ese contador hace.En total divide x 8000.

Page 48: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador06.tdf

Page 49: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador07.tdf

En este ejemplo sediseña un generador debase de tiempos BT de 1 seg de tiempo en alto y 1mseg de tiempo en bajo.

La señal de entrada es unreloj de 1mseg de período.

Un contador “cuenta” y unFFD “salida” componen elgenerador de BT.

Con la ayuda de cláusuraIF se puede implementarun circuito que genere unaseñal asimétrica entiempo.

Page 50: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador07.tdf

QDFF

D

CLK

Vcc

GNDcuenta

salidasalida_1seg

reloj_1KHz borrar

reset

Esquematización de la posible síntesis que realiza el compilador

La salida del BT es la del FFD “cuenta”. El contador cuenta desde “0”hasta que llega a “1000” conteos manteniendo la señal interna “borrar”en “GND”. En esas condiciones el FFD siempre copia un “1” y salida_1segsigue en “1”.Cuando “cuenta” alcanza el conteo “1000”, por un lado se resetea y por elotro carga a FFD con “0”. Esto dura un ciclo de reloj de 1mseg.De esta manera “salida_1seg” quedará en “0” 1mseg y volverá a repetirsetodo en los siguientes 1000 ciclos de reloj_1KHz.

Page 51: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador07.tdf

Page 52: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: contador08.tdf

Este ejemplo es un divisor de frecuenciaprogramable que emplea un contadorsincrónico de 4 bits y un MUX 4:1.Ambos son componentes parametrizados.

Page 53: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: mux03.tdf

En nuestro ejemplo debemos sintetizar un MUX 4:1 con bus de 1 bit.

�LPM_SIZE=4 (4 buses de entrada) �LPM_WIDTH=1 (cada bus de 1 bit de ancho)�LPM_WITHS=2 (2 líneas de selección)

En este gráfico se dá un ejemplo de un MUX 8:1 que maneja 8 buses de 24 bits cada uno.

LPM_WIDTHS=CEIL(LOG2(LPM_SIZE) es una sentencia que calcula lacantidad de líneas de selección del MUX con el dato de LPM_SIZE

Page 54: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: mux03.tdf

Page 55: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: alu01.tdf

Unidad Aritmético-Lógica de 4 bits

Declaraciones

Page 56: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: alu01.tdf

Parte aritmética

La ALU tiene dos relojes:uno para cargar los datos A y B y el otroque maneja al sumador parametrizado.La parte aritmética realiza la operación “A + B” si suma_resta = 0 ó “A – B” en complemento a 2 (si suma_resta = 1).

El diseño se basa en un sumadorparametrizado para la síntesis dela parte aritmética.

Para la parte de lógica binaria seemplean directamente una sentenciatipo CASE con los operadores lógicosnormales.

Page 57: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: alu01.tdf

Parte de lógica binaria

El diseño queda definido a la salida con un MUX que selecciona si la salida de la ALU presenta el resultado de la parte aritmética ó lógica.El MUX es inferido ya que la cláusura utilizada es del tipo “IF ELSE”

Dependiendo de la entrada“sel_logica” se pueden realizar8 funciones lógicas diferentes:AND, NAND, OR, NOR,OR-EXCL, NOR-EXCL,negación de A ó negación de B

Page 58: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: alu01.tdf

Simulación completa

Page 59: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: alu01.tdf

Porción de la simulación del circuito aritmético

Se suma primero 5 + 3 y luego se realiza 5 - 3

Page 60: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: alu01.tdf

Porción de la simulación de las funciones lógicas

Se realizan en forma consecutiva todas las operaciones lógicas

Page 61: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS

DE ESTADOS

EJEMPLO: moore01.tdf

Detector de secuencia

"1000" sin solapamiento

Page 62: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS

DE ESTADOS

EJEMPLO: moore01.tdf

Detector de secuencia

"1000" sin solapamiento

Resultado de la simulación

Page 63: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLEJEMPLO: moore02.tdf

Diseño de contador binario

progresivo-regresivo de 2 bits

DISEÑO CON MÁQUINAS DE ESTADOS

Page 64: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS

DE ESTADOS

EJEMPLO: moore02.tdf

Resultado de la simulación

Page 65: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

EJEMPLO: moore03.tdf

Page 66: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

EJEMPLO: moore03.tdf

Page 67: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

EJEMPLO: moore04.tdf

Page 68: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

EJEMPLO: moore04.tdf

Page 69: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

Page 70: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

Page 71: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

Page 72: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

Page 73: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

Qué es lo que se puede mejoraren el diseño del prescaler???

Page 74: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

Page 75: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

Page 76: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

“b” no debería cambiar entre “0” y “1”Hacemos un zoom para investigar……..

Page 77: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLDISEÑO CON MÁQUINAS DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

GLITCH en la salida “b”

Page 78: Lógica Programable - AHDL · Dando “OK” se ingresan y aparecerán luego en el gráfico. Gráfico de ventana para simulación del hardware sintetizado. Lógica Programable

LLóógica Programablegica Programable

Sergio Noriega – Introducción a los Sistemas Lógicos y Digitales - 2008

AHDLBibliografía:Apuntes de teoría:• Trabajo Final “Introducción a los Dispositivos FPGA: Análisis y Ejemplos

de Diseño ”. Autor: Eduardo Bozich. Año 2005.

Libros:• “Sistemas Digitales”. R. Tocci, N. Widmer, G. Moss. Ed. Prentice Hall.• “Diseño Digital”. M. Morris Mano. Ed. Prentice Hall. 3ra edición. • “Digital Design:Principles & Practices”. John Wakerly. Ed. Prentice Hall.• “Fundamentos de Diseño Lógico y Computadoras”. M. Mano, C. Kime.

Ed. Prentice Hall.• “Notas de aplicación varias sobre AHDL de Altera en www.altera.com”.