Introducción a los circuitos lógicos
programables
Miguel Melgarejo
Facultad de Ingeniería
Universidad Distrital Francisco José de Caldas
Agenda
• Memorias RAM
• Field Programmable Gate Arrays ( FPGAs)
• Herramientas de síntesis
• Herramientas de Implementación para FPGAs.
• Síntesis e implementación en una FPGA.
Organización de una memoria semiconductora
para datos binarios
Dirección de columna (cajón)
1 …. m
2m
Dirección de fila (carpeta)
Arreglo de memoria
1 …. n
2n
Celda de memoria
Controladores de escritura y
Multiplexores de entrada/salida
Salida
Entrada
Celdas de memoria RAM
Vdd
dato dato
Q1 Q3
Q5 Q6
Q2 Q4
Tierra
Linea de bit Linea de bit
Celda estática
Memoria RAM: modelo digital
D Q D Q
Decodificador de fila
Bus de direcciones
D Q D Q
D Q D Q
D Q D Q
Enable
WE
Datos(1) Datos(0)
Ciclo de lectura en una memoria RAM
El cambio en la
Dirección no tiene efecto
En la salida Porque CS
Ts To Tv Td está inactivo
WE
ENA
Dirección X Dirección valida X
Datos Z Datos validos Z
Ts : Tiempo de establecimiento de dirección antes de habilitar
Tc : Retraso en la salida de datos
Td : Tiempo de establecimiento para deshabilitar.
Tv : Tiempo de lectura (seguro)
Tv + Td : Tiempo lectura con posibilidad de falla.
Ciclo de escritura en una memoria RAM
Ts To Te Tw
WE
Pulso de escritura
Ena
Dirección X Dirección valida X
Datos Z X Z
Sale de Sale de Entra a
la memoria la memoria memoria
Field Programmable Gate Array
Arreglo
RAM de
compuertas
• El arreglo de compuertas tiene los elementos
Combinacionales y sincrónicos para construir
un circuito digital cualquiera.
Procesador
JTAG • En la memoria RAM se almacenan cadenas de
bits que configuran funciones y conexiones en
el arreglo de compuertas.
• El procesador JTAG maneja la memoria RAM.
Permite que el usuario cambie su contenido y
por tanto modifique el circuito implementado en
el arreglo de compuertas
Arreglo de compuertas
Bloque Bloque de entrada
y salida
Lógico
configurable
Canales
De interconexión
Bloque lógico configurable
(sencillo)
Multiplexor
Flip-Flop
Flip-Flop tipo Data con Reset,clk
Y enable
Memoria
16 x 1
Aquí se implementa cualquier función Booleana
De 4 variables y una salida
FPGAs: Cajas de conexión
6Transistores de
interconexión
Línea
De conexión V
60 transistores en
Cada caja de interconexión Línea de
Conexión H
FPGAs: IOBs
Hacia la matriz de CLBs Pin de
entrada /
salida
De la matriz de CLBs
Herramientas de síntesis
Especificación
VHDL
Compilador Revisa :
Sintaxis
Revisa:
Pre-Sintetizador Coherencia
Normas de diseño
Pre-Sintetizador Extrae el circuito
Net-List
Herramientas de implementación para FPGAs
NETList
Place Ubica flip-flops y funciones combinacionales
en los CLBs
Route Configura las matrices de interconexión
configure Genera la cadena de bits de configuración de la FPGA
10010101101
10101011011
…..
Configuración de la FPGA
Opción 1
Aquí el PC transmite al procesador JTAG la
PC Cadena de bits de configuración de la FPGA
Opción 2
Aquí el procesador JTAG extrae
La cadena de configuración de una
Memoria Memoria tipo FLASH ( no volátil)
FLASH
Ejemplo de un proceso de síntesis e
implementación sobre FPGA
Process(clk,reset)
Begin
if reset = ‘1’ then
x<= “00”;
elsif clk’event and clk = ‘1’ then
x<=x+1;
end if;
End process;
S<= x(0) or x(1);
P<= x(0) and x(1);
Resultado de la síntesis
Generación de la lista de componentes
X(1) X(0) f2 f1
00 0 1 f1 y f2 son las sumas
01 1 0 correspondientes a cada salida
del sumador y a la vez son las
10 1 1
entradas a cada flip-flop.
11 0 0
f1 no es mas que una negación del flip-flop X(1).
f2 depende de los dos flip-flops X(1) y X(0).
Generación de la lista de componentes
X(1) X(0) S
00 0
01 1
10 1
11 1
X(1) X(0) P
00 0
01 0
10 0
11 1
Place & Route
Orden de ubicación de componentes:
1. Flip-Flops
2. Funciones combinacionales de entrada
3. Funciones combinacionales de salida
Interconexión:
1. En los cruces tan solo se pueden establecer
interconexiones en la diagonal derecha –
izquierda.
Place & Route
S
1 0
0 0
1 0 1 0
1 1
0 1 1 1
D Q D Q
0 0
0 clk 0 clk
0 0
0 0
1 0
1 0
0 0 0 0
1 0
0 1 1 1
D Q D Q
0 0
0 clk 0 clk
0 0
0 0
El 1 en el mux2to1 selecciona el registro, el cero permite el paso de la señal que viene del circuito combinacional
Flujo de diseño e implementación
Problema
Diseño de
La solución
Especificación VHDL
Simulación Adicional
Industria
Síntesis
Place & Route
configuración Diseño y
construcción del
PCB
Sistema de
PCB + FPGA
desarrollo
FPGA
Referencias
• D. Gasjki, Principios de diseño digital,
Prentice Hall, 1994
• C. Maxfield, The design warrior’s guide
to FPGAs,Elsevier , 2004.