• No se han encontrado resultados

Lógica Programable - AHDL - Introducción n a los Sistemas Lógicos y Digitales 2008

N/A
N/A
Protected

Academic year: 2021

Share "Lógica Programable - AHDL - Introducción n a los Sistemas Lógicos y Digitales 2008"

Copied!
78
0
0

Texto completo

(1)

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

(2)

L

L

ó

ó

gica Programable

gica Programable

HDL

-

H

ardware

D

escription

L

anguage

-( Lenguaje de Descripción de Hardware)

(3)

L

L

ó

ó

gica Programable

gica Programable

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 componentes de 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 o cualquiera de sus componentes. - Como herramienta de simulación: Capacidad de generar tests complejos.

Disponibilidad de modelos suministrados por fabricantes.

(4)

L

L

ó

ó

gica Programable

gica Programable

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 simple se 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 modo tal 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 la performance de velocidad, consumo de potencia, etc..

(5)

L

L

ó

ó

gica Programable

gica Programable

AHDL:

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

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

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

(6)

L

L

ó

ó

gica Programable

gica Programable

AHDL

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 donde se hace la especificación de la lógica que se quiere

IMPLEMENTACIÓN DE ALGEBRA DE BOOLE

“&” ≡ AND “#” ≡ OR “!” ≡ NOT

(7)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

Icono del compilador

Luego de salvar el proyecto se debe compilar, operación que realiza el software para sintetizar la lógica en base a lo especificado.

La compilación puede ser:

Funcional: No se consideran los retardos.

(8)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

Resultado de la compilación

(9)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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..

(10)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

Disposición de las variables sintetizadas.

(11)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

Información general de recursos empleados.

(12)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

(13)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

Gráfico de ventana para simulación del hardware sintetizado El archivo tiene extensión “scf”

(14)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

(15)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

(16)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

(17)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

El gráfico es un conjunto de diagramas temporales para realizar la simulació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

(18)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

Zoom (+) Zoom (-) Asignación de: “1” ó “0” ó “Z”

(19)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

Se marca la variable de entrada a la cual se le quiere dibujar el

(20)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

Se marca por ejemplo la zona donde se quiere que “a” valga “1”.

Para que se efectivice, se debe presionar el icono

(21)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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.

(22)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

Icono del simulador

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

(23)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

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

(24)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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

(25)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: compuertas01.tdf

AHDL

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.

(26)

L

L

ó

ó

gica Programable

gica Programable

AHDL

EJEMPLO: deco01.tdf

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

(27)

L

L

ó

ó

gica Programable

gica Programable

AHDL

EJEMPLO: deco02.tdf

El diseño del decodificador se basa en una ecuación de equivalencia; 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.

(28)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: deco03.tdf

AHDL

(29)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: deco04.tdf

AHDL

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 algunos dispositivos lógicos programables NO TIENEN capacidad de corriente suficiente para manejar directamente a diodos emisores de luz (LED) por lo que se deben anteponer circuitos

(30)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: deco04.tdf

AHDL

(31)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: deco05.tdf

AHDL

Uso de sentencia CASE

Cuando hay opciones que no se cubren se puede usar la cláusura:

(32)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: encoder01.tdf

AHDL

(33)

L

L

ó

ó

gica Programable

gica Programable

AHDL

Diferencias importantes entre sentencias CASE y sentencias IF

Cualquier tipo de expresión Booleana puede ser usada dentro de una sentencia IF Then.

En cambio en CASE una expresión simple Booleana es comparada por 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.

(34)

L

L

ó

ó

gica Programable

gica Programable

AHDL

EJEMPLO: bidir01.tdf Q

DFF

D reloj oe in_out

TRI

(35)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: reg01.tdf

AHDL

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

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

(36)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: reg02.tdf

AHDL

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 parametrizado es genérico y se lo configura según las necesidades.

Por ejemplo con LPM_WIDTH se le indica la longitud de palabra (en este caso el

(37)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador01.tdf

AHDL

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

Con el uso de sentencia IF se

sintetiza el contador con entradas de carga y habilitación además de generar la secuencia de conteo ascendente binaria usando la sentencia: “cuenta[].q + 1”

Este es un ejemplo donde se puede apreciar la “potencia” del HDL

para sintetizar lógica.

(38)

L

(39)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador02.tdf

AHDL

Con el empleo de la librería de componentes parametrizados (en este caso un contador) se implementa 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 bits sincrónico disparado por flanco ascendente y con entradas de habilitación de reloj, reset y sentido de conteo (progresivo ó regresivo)

(40)

L

(41)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador03.tdf

AHDL

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 anterior era LPM_MODULUS=16 para binario

(42)

L

L

ó

ó

gica Programable

gica Programable

AHDL

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

(43)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador04.tdf

AHDL

Este ejemplo muestra como se puede realizar una cascada sincrónica

de contadores binarios de 12 bits en total

Se emplea la entrada de habilitación para que:

contador1 sólo cuente cuando el contador0 llegue a “15”.

contador2 lo mismo pero cuando los dos

anteriores lleguen a ese mismo valor.

Idem con contador3 que debe cambiar sólo

cuando los 3 anteriores lleguen a “15” (desborde)

(44)

L

(45)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador05.tdf

AHDL

Lo mismo que antes excepto que es una

cascada de contadores BCD.

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

El mismo resultado se llega si en el archivo anterior sólo se cambia “15” por el “9” en las

sentencias de habilitación de los contadores.

(46)

L

(47)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador06.tdf

AHDL

Este es un ejemplo de un divisor de frecuencia sincrónico que tiene una entrada de 8 MHz y

sale una señal de 1 KHz (divide x 8.000).

Observar que los 3

primeros contadores son BCD por lo que ya se

tiene una división x1000. El último contador es

binario de 3 bits y la salida se obtiene de Q2 donde la señal es la 8va parte del conteo que ese contador hace. En total divide x 8000.

(48)

L

(49)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador07.tdf

AHDL

En este ejemplo se

diseña un generador de base de tiempos BT de 1 seg de tiempo en alto y 1mseg de tiempo en bajo. La señal de entrada es un reloj de 1mseg de período. Un contador “cuenta” y un FFD “salida” componen el generador de BT.

Con la ayuda de cláusura IF se puede implementar un circuito que genere una señal asimétrica en

(50)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador07.tdf

AHDL

Q

DFF

D CLK Vcc GND cuenta salida salida_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_1seg sigue en “1”.

Cuando “cuenta” alcanza el conteo “1000”, por un lado se resetea y por el otro 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 repetirse todo en los siguientes 1000 ciclos de reloj_1KHz.

(51)

L

(52)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: contador08.tdf

AHDL

Este ejemplo es un divisor de frecuencia programable que emplea un contador sincrónico de 4 bits y un MUX 4:1.

(53)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: mux03.tdf

AHDL

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 la cantidad de líneas de selección del MUX con el dato de LPM_SIZE

(54)

L

(55)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: alu01.tdf

AHDL

Unidad Aritmético-Lógica de 4 bits

(56)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: alu01.tdf

AHDL

Parte aritmética

La ALU tiene dos relojes:uno para cargar los datos A y B y el otro que maneja al sumador parametrizado.

La parte aritmética realiza la operación “A + B” si suma_resta = 0 El diseño se basa en un sumador

parametrizado para la síntesis de la parte aritmética.

Para la parte de lógica binaria se

emplean directamente una sentencia tipo CASE con los operadores lógicos normales.

(57)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: alu01.tdf

AHDL

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 realizar 8 funciones lógicas diferentes: AND, NAND, OR, NOR,

OR-EXCL, NOR-EXCL,

(58)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: alu01.tdf

AHDL

(59)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: alu01.tdf

AHDL

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

(60)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: alu01.tdf

AHDL

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

(61)

L

L

ó

ó

gica Programable

gica Programable

AHDL

DISEÑO CON MÁQUINAS DE ESTADOS

EJEMPLO: moore01.tdf

Detector de secuencia

"1000" sin solapamiento

(62)

L

L

ó

ó

gica Programable

gica Programable

AHDL

DISEÑO CON MÁQUINAS DE ESTADOS

EJEMPLO: moore01.tdf

Detector de secuencia

"1000" sin solapamiento

(63)

L

L

ó

ó

gica Programable

gica Programable

EJEMPLO: moore02.tdf

AHDL

Diseño de contador binario

progresivo-regresivo de 2 bits

DISEÑO CON MÁQUINAS DE ESTADOS

(64)

L

L

ó

ó

gica Programable

gica Programable

AHDL

DISEÑO CON MÁQUINAS DE ESTADOS

EJEMPLO: moore02.tdf

(65)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

(66)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

(67)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

(68)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

(69)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(70)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(71)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(72)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(73)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

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

(74)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(75)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(76)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(77)

L

L

ó

ó

gica Programable

gica Programable

DISEÑO CON MÁQUINAS

AHDL

DE ESTADOS

Diseño de un contador

de dos dígitos BCD con

salida a display

(78)

L

L

ó

ó

gica Programable

gica Programable

AHDL

Bibliografí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.

Referencias

Documento similar

La heterogeneidad clínica de esta patolo- gía hizo que se considerasen a numerosos genes de pro- teínas de la matriz extracelular (elastina, fibronectina, genes de los colágenos de

Las lecturas de francobordo/calado se toman para establecer la posición de la flotación y determinar a su vez el desplazamiento del buque en el momento de realizar la prueba

Imparte docencia en el Grado en Historia del Arte (Universidad de Málaga) en las asignaturas: Poéticas del arte español de los siglos XX y XXI, Picasso y el arte español del

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

El Equipo Provincial de Dirección y la Comisión Provincial de Mejora de Ávila se organizaron y ejercieron sus funciones y tareas de acuerdo con lo establecido en la Orden de 29 de

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Algún poeta del grupo (Gerardo Diego) comienza siendo estrictamente un poeta ultraísta y creacionista pero, de una manera u otra, en todos los demás se perciben las huellas

m) Capacidad de reflexionar sobre las prácticas de aula para mejorar la tarea docente y utilizar la evaluación como elemento regulador y promotor de la mejora de la enseñanza,