1 - SPLD y CPLD
1 - SPLD y CPLD
1 - SPLD y CPLD
JJVS-09
JJVS-09
Circuitos secuenciales
Considere la siguiente ecuacin
Y =ABC AB C A B C A BC ABC
reduzca la ecuacin anterior empleando mapas de Karnaugh.
Y =A BC
JJVS-09 3
JJVS-09
JJVS-09
Y = 0,1,2,3,6
U8A 74LS04
U8A 74LS04
U8A 74LS04
/A/B/C
U7A 1 2 13
/A/BC
U7A 1 2 13
74LS11
12
/AB/C
Direccin 0 1 2 3 4 5 6 7
JJVS-09
Dato 1 1 1 1 0 0 1 0
U7A 1 2 13
74LS11
12
/ABC
A/B/C
A/BC
AB/C
U7A 1 2 13
12
ABC
74LS11
Y = (0,1,2,3,6)
Arquitectura PAL
JJVS-09
B
U8A 74LS04 U8A 74LS04 2 1
C
1
U8A 74LS04
D22
R2
DIODE
Y1=/A/B/C+/A/BC+/AB/C
DIODE D22
R R2 DIODE
R R2 DIODE 1 2 13 R R2 DIODE
U7A
12
74LS11
Y = 0,1,2,3,6
R R2
DIODE
R R2 DIODE
Y1=/ABC+AB/C
R R2
R R2 1 2 13 R R2
U7A
12
74LS11
JJVS-09
0
Arquitectura PLA
JJVS-09
FPGA
JJVS-09
10
Tipos de PAL
El circuito de salida de una PAL se llama MACROCELDA. En general, existen 3 tipos de macroceldas:
Combinacional (L).
nicamente genera funciones lgicas. Las salidas pueden ser tomadas como entradas. 16L8 = 16 entradas/salidas y 8 salidas, cada salida se forma con 8 minitrminos.
Las salidas que pueden ser combinacionales. Un nmero de salidas estn conectadas a flip - flops. 16R4=16 entradas/salidas con 4 flip-flops.
Cada una de las salidas es configurable, a ser de flip - flop o puramente combinacional. 22V10 = 22 entradas/salidas y 10 salidas configurables.
11
JJVS-09
Macrocelda configurable
JJVS-09
12
GAL 22V10
Tiene 12 entradas (Terminales 1-11 y 13). Tiene 10 salidas/entradas (14 - 23). La terminal 1 siempre es la fuente de reloj para circuitos secuenciales. Se puede generar hasta 120 minitrminos: 8 en las salidas 14 y 23. 10 en las salidas 15 y 22. 12 en las salidas 16 y 21. 14 en las salidas 17 y 20. 16 en las salidas 18 y 19. Permite Reset sncrono y asncrono, y se puede hacer retroalimentacin de las salidas a las entradas.
JJVS-09 13
GAL 22V10
JJVS-09
14
Encabezado. Se indica el nombre del programa, el dispositivo a ser programado, el autor, la fecha y otros datos. Asignacin de terminales. Se indican la asignacin de las terminales de entrada y salida del dispositivo. Ecuaciones lgicas. Define la relacin entre las terminales asignadas.
15
JJVS-09
Implementacin en WinCUPL
Y = 0,1,2,3,6
Encabezado
Name Name ; PartNo 00 ; Date 03/10/2006 ; Revision 01 ; Designer Engineer ; Company UTM ; Assembly None ; Location ; Device g22v10 ; /* *************** INPUT PINS *********************/ PIN 1 = A ; /* */ PIN 2 = B ; /* */ PIN 3 = C ; /* */ /* *************** OUTPUT PINS *********************/ PIN 23 = Y ; /* */ /* ************** ECUACIN LGICA ******************/ Y=(!A&!B&!C)#(!A&!B&C)#(!A&B&!C)#(!A&B&C)#(A&B&!C);
Asignacin de terminales
Ecuaciones lgicas
JJVS-09
16
Variables Son cadenas de caracteres alfanumricos que especifican terminales del dispositivo, nodos intermedios, constantes, seales de entrada y salida, seales intermedias o conjuntos de estas. Son sensibles a las maysculas. Indexadas Es posible usar nombres de variables para representar un grupo de variables terminando estas con un numero indexado del 0 al 31. Ejemplo: D0 D1 D2 D3 D4 D5 D6 D7
JJVS-09
17
Palabras reservadas
JJVS-09
18
Constantes numricas
La
base por omisin en CUPL para todos los nmeros es el hexadecimal. Excepto para los nmeros de las terminales y variables indexadas, las cuales siempre estn en decimal. Ejemplos
dO hO oO bO
d7 h7 o7 b111
19
JJVS-09
Funciones lgicas
& * : ; @ # + . , ( [ ! $ ) ] /* ^ / */ =
20
Operadores aritmticos
JJVS-09
21
Notacin de lista
Cuando todos los nombres de las variables en la lista son secuencialmente numerados, el siguiente formato puede ser usado:
[D0..D7] [D0..7] [A00..A15] [A7..0] [INPUT3..INPUT0] [I2..1]
JJVS-09
22
Extensiones de variables
JJVS-09
24
Operaciones de igualdad
Estas expresiones
son equivalentes a :
JJVS-09
25
Tablas de verdad
JJVS-09
26
Mquinas de estados
JJVS-09
27
Mquinas de estados
Sequenced count { present S0 if up next S1; if down next S9; if clear next S0; if down out carry; present S1 if up next S2; if down next S0; if clear next S0; present S2 if up next S3; if down next S1; if clear next S0; }
JJVS-09
28
Condicin
JJVS-09
29
Encabezado
Name PartNo Date Revision Designer Company Assembly Location Device Name ; 00 ; 03/10/2006 ; 01 ; Engineer ; UTM ; None ; Huajuapan; g22v10 ;
JJVS-09
30
Declaracin de terminales
El formato general para esta declaracin es: PIN pin_number = [ ! ] var Ejemplos: PIN 1 = Clock; PIN 2 = S; PIN 11 = !O; PIN [3..6] = [D0..D3];
Declaracin de nodos
PIN_NODE pin_number = [!]var; Se usan para dispositivos que cuentan con terminales internas
JJVS-09
31
JJVS-09
33
Simulacin
JJVS-09
34
Multiplexor de 2 a 1
Min C0 0 0 0 0 1 1 1 1 D1 0 0 1 1 0 0 1 1 D0 0 1 0 1 0 1 0 1 Y 0 1 0 1 0 0 1 1
D0 D1 C0
1 2 3 4 5 6 7
Y=/C0*D0 + C0*D1
Tarea 1: Realice un decodificadro 2 a 4, empleando WinCupl
JJVS-09 35
Generador de paridad
Disee
un circuito que determine la paridad par en una palabra de entrada de 8 bits. Existe paridad si se tiene un nmero par de unos a la entrada. el programa para el WinCUPL.
Escriba
JJVS-09
36
Entradas
B2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
B0 0 1 0 1 0 1 0 1 0 1 0 1 X X X X
A 1 0 1 1 0 1 1 1 1 1 1 X X X X X
B 1 1 1 1 1 0 0 1 1 1 1 X X X X X
Salidas
C D 1 0 1 1 0 1 1 0 1 0 0 X X X X X 1 1 0 1 1 1 1 1 1 1 1 X X X X X
E 1 0 1 0 0 0 1
F 1 0 0 0 1 1 1 0 1 1 1 X X X X X
G 0 0 1 1 1 1 1 0 1 1 1 X X X X X
A F E D G B C
0 1 0 1 X X X X X
37
Name bcd7seg ; PartNo 00 ; Date 04/10/2006 ; Revision 01 ; Designer Engineer ; Company UTM ; Assembly None ; Location ; Device g22v10 ; /* *************** INPUT PINS */ PIN 1 = B0 ; PIN 2 = B1 ; PIN 3 = B2 ; PIN 4 = B3 ; */ /* *************** OUTPUT PINS*/ PIN 14 = A ; PIN 15 = B ; PIN 16 = C ; PIN 17 = D ; PIN 18 = E ; PIN 19 = F ; PIN 20 = G ;
JJVS-09
FIELD ENTRADA = [B3..0]; FIELD SALIDA = [A,B,C,D,E,F,G]; TABLE ENTRADA=>SALIDA { 0=>'b'1111110; 1=>'b'0110000; 2=>'b'1101101; 3=>'b'1111001; 4=>'b'0110011; 5=>'b'1011011; 6=>'b'1011111; 7=>'b'1110000; 8=>'b'1111111; 9=>'b'1110011; }
38
Decodificador de 3 a 8
Entradas A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Y0 1 0 0 0 0 0 0 0 Salidas Y1 Y2 Y3 Y4 Y5 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 Y6 Y7 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
JJVS-09
Y = /A/B/C+/A/B C+/AB/C+/ABC+A/B/C+A/BC+AB/C+ABC 39
JJVS-09
40
Dato a
Mayor Igual
Dato b Compara
Menor
Sumador
Cin 0 0 0 0 1 1 1 1 A 0 0 1 1 0 0 1 1 B 0 1 0 1 0 1 0 1 suma 0 1 1 0 1 0 0 1 Cout 0 0 0 1 0 1 1 1
JJVS-09
42
Standard Logic Programmable Logic Gate Arrays Devices (PLDs) SPLDs (PALs) 80s CPLDs 90 -
FPGAs 90 43
JJVS-09
AND-OR con salidas directas o a registros (flip-flops). Contienen de 10 a 100 circuitos TTL en un solo chip
JJVS-09 44
varios elementos reconfigurables tipo PLA interconectados por una matriz de conmutacin. Equivale de 4 a 64 PLAs. Circuitos de 1000 a 10000 compuertas en un solo chip. Tiempos de retardo de terminal a terminal fijos del orden de nanosegundos.
JJVS-09 45
PAL12L10
Tiene 12 entradas (Terminales 1-11 y 13). Tiene 10 salidas combinacionales (14 - 23). Se puede generar hasta 20 minitrminos,2 en cada salida de hasta 12 productos .
JJVS-09
46
PAL 20C1
Tiene 20 entradas. Tiene 1 salida complementada. Se puede generar hasta 16 minitrminos de 20 entradas cada uno.
JJVS-09
47
PAL16R4
Tiene 16 entradas de las cuales 8 pueden retroalimentarse de las salidas. Tiene 8 salidas y cuatro de estas pueden ser con salida a flip-flop tipo D. Se puede generar hasta 8 minitrminos de hasta 8 variables (salida combinacional) y 7 para combinacional. Permite Reset sncrono y asncrono, y se puede hacer retroalimentacin de las salidas a las entradas.
JJVS-09
48
GAL16V8
Tiene 10 entradas. Tiene 8 salidas (que pueden ser entradas). En modo de registro la terminal 1 y 11, son configuradas como la seal de reloj y la habilitacin de salida (OE). En modo complejo se retroalimentan las terminales 12 y 19. En modo simple se retroalimentan las terminales adjacentes y las salidas quedan en las terminales 15 y 16. Se puede generar hasta 80 minitrminos: 8 en cada una de las salidas. Permite Reset sncrono y asncrono, y se puede hacer retroalimentacin de las salidas a las entradas.
JJVS-09 49
GAL16V8
JJVS-09
50
Presentaciones
JJVS-09
51
JJVS-09
52
PLS 153
JJVS-09
53
PLS 153
8 entradas lgicas, I0 a I7. El dispositivo tiene 10 salidas, B0 a B9. Cada salida es programable usando una compuerta XOR. Todas las salidas son retroalimentadas al arreglo de compuertas, proporcionando un total de 18 entradas al arreglo. Si las salidas no son habilitadas, se pueden usar como entradas. Cada una de las 10 salidas es combinacional y puede generar expresiones de hasta 32 minitrminos usando algunas o las 8 entradas o 10 salidas como operandos.
54
JJVS-09
PLS 167
JJVS-09
55
JJVS-09
56
JJVS-09
58
JJVS-09
59
Ejemplo de salidas
JJVS-09
60
Diagrama de tiempo
JJVS-09
61
JJVS-09
62
Otras salidas
JJVS-09
63
Diagrama de tiempos
JJVS-09
64
JJVS-09
65
Diagrama de tiempos
JJVS-09
66
light. Acepta solo monedas de 5 peso. Si existen monedas depositadas, estas pueden regresarse en cualquier momento mediante un botn. El usuario puede tomar el tiempo que sea necesario para hacer su seleccin. El precio del refresco es de 10 pesos. Ms de una entrada no puede ser reconocida al mismo tiempo.
JJVS-09 67
SPLD (Simple Programmable Logic Device) PROM (Programmable Read Only Memory) PLA (Programmable Logic Array) PAL (Programmable AND-Array Logic) CPLD (Complex Programmable Logic Device) FPGA (Field Programmable Logic Device)
68
JJVS-09
JJVS-09
69
JJVS-09
70
JJVS-09
71
JJVS-09
72
THINGS TO THINK...
He
who asks is a fool for five minutes, but he who does not ask remains a fool forever. Chinese proverb. is what we ask for when we already know the answer but wish we didn't. -- Erica Jong
73
Advice
JJVS-09
JJVS-09
74
JJVS-09
75
Un CPLD es un dispositivo lgico programable complejo (Complex Programmable Logic Device) Son circuitos programables construidos con base en arreglos de bloques lgicos (LABs) Cada LAB contiene un conjunto de Macro celdas Con cada macro celda se puede realizar una funcin lgica independiente Los LABs se conectan entre si a travs de un arreglo de interconexiones programable Es posible realizar sistemas con mayor complejidad
JJVS-09
76
Multiple PLDs can be combined on a single chip by using programmable interconnect structures. These PLDs are called CPLDs.
JJVS-09
77
CPLDs de Altera
El dispositivo puede ser considerado como un arreglo de SPLDs. Existen en tecnologa EPROM y EPROM. Se programan en el circuito.
JJVS-09
78
Cada LAB consiste de dos macroceldas (OLMC), que comprende un conjunto de trminos de productos programables que alimentan una compuerta OR y un flip-flop (D,JK,T o SR).
JJVS-09
79
Las entradas a la OLMC son variables, la compuerta OR puede recibir 5 SOP y 15 extras de otras macroceldas, la salida OR puede variarse.
JJVS-09
80
Existen diversas categoras Match 1-5. La M-1 utiliza PALs 22v16. La M-4 utiliza de 6 a 16 PALs (2K-5K comp).
JJVS-09 81
Match 4 de AMD
Existen 2 diferencias con un PAL: existe un seleccionador de salidas y una matriz de conmutacin entre las OR y los pines de E/S. Las salidas OR son flexibles a diferencia de los PAL.
JJVS-09
82
CPLDs de Lattice
Su primera generacin de CPLDs, son las Plsi e ispLSI 1000 (rango de 1200 a 4000 compuertas), retardo de 10ns. Serie 2000, rango de 600-2000 compuertas, la cual tiene ms macroceldas por terminales de entrada/salida y menor velocidad de retardo que la serie 1000 (5.5ns). El estado del arte de en cuanto a velocidad. La serie 3000 representa los CPLDs ms grandes con hasta 5000 compuertas y retardos de 10-15ns. Se compara a la Mach 4 de AMD. Ofrece otras caractersticas mejoradas, como el JTAG boundary scan.
JJVS-09
83
JJVS-09
84
basa en tecnologa FLASH y EEPROM, ofrece retardos de terminal a terminal de 8.5 a 15 ns. No se programan en el circuito. Proporcionan ms entradas/salidas que sus competidores. Las partes pequeas tienen 32 macroceldas (grandes:256) y 32 entradas/salidas (grandes:256).
JJVS-09 85
JJVS-09
86
Cuentan con capacidad de 600 a 1500 compuertas. Retardos de 25 ns. Cada CI consiste de una coleccin de bloques compuesto de 9 macroceldas. La serie 7200 incluye dos compuertas OR y cada una de ellas es entrada a una ALU de dos bits. La ALU genera cualquier funcin que se conecta a un flip-flop reconfigurable. La serie 7300 es una versin mejorada de la 7200, ofreciendo mayor capacidad (3000 compuertas) y alta velocidad. Hasta 6200 compuertas y retardos de 5 ns.
XC9500
87
JJVS-09
JJVS-09
88
JJVS-09
89
Aplicaciones de CPLDs
Controladores
JJVS-09
90