Está en la página 1de 29

Técnicas de

Programación Hardware:
CAD para FPGAs y CPLDs

Clase 7: Diseño de placas para FPGAs


Por: Nelson Acosta & Daniel Simonelli

UNICEN - Tandil - 1999


1
Pines de una FPGA (1)
Características:
• Antes y durante la configuración, los pines de
salida no usados para la configuración, se los pone
en tri-estado con un pull-up de entre 50kΩ y
100KΩ.

• Luego de la configuración, si un IOB no se usa, se


lo define como entrada con un pull-up de entre
50kΩ y 100KΩ.

• Cualquier pin puede dedicarse a Set/Reset.


2
Pines de una FPGA (2)
Tres tipos de pines:
• Permanentemente dedicados. El usr no puede
utilizarlos nunca, bajo ningún concepto.

• De entrada/salida con otras funciones. Durante


la configuración tienen una función especial, y
luego se comportan como pines de I/O.

• Irrestrictos de entrada/salida. Son utilizados


para la entrada o salida de los datos del circuito
(completamente definidos por el usr).
3
Pines de una FPGA (3)
Pines permanentemente dedicados (a):
• VCC. 8 patas o más para llevar la alimentación
del chip (+5v).

• GND. 8 patas o más para llevar la referencia a


tierra del chip (0v).

4
Pines de una FPGA (4)
Pines permanentemente dedicados (b):
• CCLK. Reloj para la configuración, es de
entrada en la configuración en modo esclavo, y
de salida en los demás modos.

• Done. Pata bidireccional. Como salida indica la


terminación de la carga de la configuración.
Como entrada indica un retraso al circuito para
completar la configuración de muchas FPGAs.

5
Pines de una FPGA (5)
Pines permanentemente dedicados (c):
• ¬Program. Es una entrada. A nivel bajo borra
la memoria de configuración. Cuando su nivel
sube, inicia un nuevo ciclo de borrado de la
memoria de configuración, y genera la señal de
inicialización de la carga de la configuración por
el pin ¬INIT.

6
Pines de una FPGA (6)
Pines de I/O con otras funciones (a):
• RDY/¬ ¬Busy. Durante la configuración en modo
periférico indica cuando la FPGA está lista para
recibir otro byte por D0-D7. Luego pin de I/O.

• ¬RCLK. Durante la configuración en modo


maestro paralelo, cada cambio en A0-A15 es
precedido por un flanco ascendente de este pin. Se
usa para direccionar una ROM externa. Luego pin
de I/O.
7
Pines de una FPGA (7)
Pines de I/O con otras funciones (b):
• M0, M1, M2. Antes de la configuración estos
pines de entrada definen el modo de
configuración. Luego M0 y M2 son sólo entradas,
mientras que M1 es sólo salida triestado.

• TDO. Usado para debugging por medio de la


técnica boundary-scan. Si no se usa dicha técnica,
es una salida en triestado. Este pin sólo puede ser
salida.
8
Pines de una FPGA (8)
Pines de I/O con otras funciones (c):
• TDI, TCK, TMS. Si se usa la técnica de
debugging boundary-scan, estas patas significan:
Test Data In, Test ClocK y Test Mode Select. Si
no se usa esta técnica son pines de I/O.

• HDC. High During Configuration, indica que la


FPGA se está configurando, luego pin de I/O.

• ¬LDC. Low During Configuration. Idem HDC.


9
Pines de una FPGA (9)
Pines de I/O con otras funciones (d):
• ¬INIT. Señal bidireccional antes y durante la
configuración se recomienda un pull-up de entre 1
y 10 KΩ. Durante la configuración se tiene un
nivel 0 si hay un error de configuración. Luego se
usa como un pin de I/O.

• PGCK1-4. Cuatro líneas de reloj dedicadas


primarias, con mínimo retraso y bajo skew. Si no
se usan como reloj, se comportan como pines de
I/O.
10
Pines de una FPGA (10)
Pines de I/O con otras funciones (e):
• SGCK1-4. Cuatro líneas de reloj dedicadas
secundarias, con mínimo retraso y bajo skew. Si
no se usan como reloj, se comportan como pines
de I/O.

• ¬CS0, CS1, ¬WS, ¬RS. Pines usados en el


modo de configuración de Periférico Asincrónico.
Luego se usan como pines de I/O.

11
Pines de una FPGA (11)
Pines de I/O con otras funciones (f):
• A0-A17. Durante la configuración en modo
Paralelo Maestro se usan para direccionar la ROM
externa. Luego son pines de I/O.

• D0-D7. Durante la configuración en modo


Paralelo Maestro se usan para recibir el byte de
dato de la ROM externa. Luego son pines de I/O.

12
Pines de una FPGA (12)
Pines de I/O con otras funciones (g):
• Din. Durante la configuración en modo Serie
Esclavo o Serie Maestro, recibe el bit de dato de la
configuración que es leido al flanco ascendente de
la señal CCLK. Durante la configuración en
paralelo Din es D0. Luego pin de I/O.

• Dout. Durante cualquier modo de configuración


es el bit de configuración anterior al actual,
utilizado para esquemas daisy-chain. Luego es un
pin de I/O.
13
Pines de una FPGA (13)
Pines irrestrictos de I/O:
• I/O. Son pines que pueden se configurados como
entrada y/o salida luego de la configuración.
Durante la configuración estos pines tienen un
valor lógico de 1 con un pull-up interno de entre
50 KΩ y 100 KΩ. Luego de la configuración son
pines de I/O.

14
Alimentación (1)
Distribución de pines de alimentación.

Anillos de
Vcc y GND

15
Alimentación (2)

• La alimentación está organizada por


pares.

• Cada par de pines de alimentación (Vcc


y GND) debe tener conectado un
capacitor de 0.1 µF, para neutralizar los
picos de consumo y evitar oscilaciones
en la alimentación.
16
Configuración de una FPGA (1)
• Modos de configuración se establecen por 3 pines
(M0, M1, M2)

• Configuración:
• SERIE / PARALELO.

• MAESTRO / ESCLAVO.

• Periférico SINCRONO / ASINCRONO.


17
Configuración de una FPGA (2)
Modos:

18
Configuración de una FPGA (3)
• Modo MAESTRO

• Usan el oscilador interno para generar el


CCLK (para controlar dispositivos esclavos
y ROM serie).

• Si la configuración es PARALELA,
internamente se hace serie.

19
Configuración de una FPGA (4)
• Modo PERIFERICO

• Acepta el modo PARALELO.

• Usa el pin READY/BUZY como señal de


handshake.

• SINCRONO: recibe el CCLK


externamente. / ASINCRONO: genera el
CCLK con el oscilador interno.

20
Configuración de una FPGA (5)
• Modo ESCLAVO

• Recibe un bit de configuración serie con el


flanco ascendente de CCLK.
• Pasa el bit de configuración a DOUT,
sincronizandolo al próximo flanco de
CCLK.
• Permite configuraciones múltiples en
cascada (Daisy chain).
21
Configuración de una FPGA (6)
Modo:
MASTER
SERIAL
con posible cascada
serie de RAMs.

22
Configuración de una FPGA (7)
Modo: SLAVE SERIAL

23
Configuración de una FPGA (8)
Modo:
MASTER
PARALELO

24
Configuración de una FPGA (9)
Modo:
PERIFERICO
SINCRONO

25
Configuración de una FPGA (10)
Modo: PERIFERICO ASINCRONO

26
Configuración de una FPGA (11)

Diagrama de Señales de Configuración

27
Configuración de una FPGA (12)
Pseudocódigo de configuración:
• WHILE Vcc<3.5 volts DO ;
• IF (-program=LOW)&(Test_M012=OK) THEN
• clear_memory;
• IF es_master THEN WAIT UNTIL init=HIGH;
• REPEAT
• REPEAT
• Cargar un FRAME
• UNTIL Frame=OK;
• UNTIL memoria_cfg_IS_FULL;
• Secuencia de START-UP. 28
Fin

29

También podría gustarte