You are on page 1of 75

Sistemas digitales

Octubre '09- Febrero '10 MC Jacob J. Vsquez Sanjuan


1

JJVS-09

Diseo e implementacin de circuitos lgicos con WinCupl

Circuitos secuenciales Circuitos combinacionales

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

Implementacin mediante multiplexores


ABC AB C A B C A BC AB C= 0,1,2,3,6
A B C 5V
D7 D6 D5 D4 D3 D2 D1 D0
4

JJVS-09

Arquitectura de una PROM

JJVS-09

Implementacin mediante una ROM


C B A
1

Y = 0,1,2,3,6

U8A 74LS04

U8A 74LS04

U8A 74LS04

U7A 1 2 13 74LS11 DIODE 12 12

/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

74LS11 U7A 1 2 13 74LS11 U7A 1 2 13 74LS11 U7A 1 2 13 74LS11 12 12 12

A/B/C

A/BC

AB/C

U7A 1 2 13

12

ABC

74LS11

Y = (0,1,2,3,6)

Arquitectura PAL

JJVS-09

Implementacin con PAL


A
1

B
U8A 74LS04 U8A 74LS04 2 1

C
1

U8A 74LS04

D22

R2

DIODE

D22 R U7A R2 DIODE 1 2 13 D22 R R2 DIODE D22 R R2 74LS11 12

Y1=/A/B/C+/A/BC+/AB/C
DIODE D22

R U7A R2 DIODE 1 2 13 D22 R R2 DIODE 74LS11 74LS27 12 1 2 13 74LS04 12 1 U9A U10A 2

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 U7A R2 DIODE 1 2 13 R R2 DIODE 74LS11 12

R R2 DIODE

R U7A R2 DIODE 1 2 13 R R2 DIODE 74LS11 12 1 2 13 74LS04 74LS27 12 1 U9A U10A 2

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.

Combinacional con flip-flops a las salidas (R).


Las salidas que pueden ser combinacionales. Un nmero de salidas estn conectadas a flip - flops. 16R4=16 entradas/salidas con 4 flip-flops.

Configurable, combinacional o salida a flip - flop (V)


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

WinCUPL (Universal Compiler for Programmable Logic)


El WinCUPL es un software de Atmel que genera el archivo para programar PALs y GALS. Un programa en WinCUPL, consta de 3 bloques principales, que son:

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

Elementos del lenguaje CUPL

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
17

JJVS-09

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

Decimal Hexadecimal Octal Binario

dO hO oO bO

d21 h15 o25 b10101

d51 h33 o63 b110011

d7 h7 o7 b111
19

JJVS-09

Funciones lgicas
& * : ; @ # + . , ( [ ! $ ) ] /* ^ / */ =

Not ! And & Or # Xor $ /*JJVS-09 Comentario */

20

Operadores aritmticos

JJVS-09

21

Notacin de lista

Una lista es un mtodo corto para definir variables. Ejemplo:


[D0,D1,D2,D3,D4,D5,D6,D7] [ON, OFF] [ONE, TWO, THREE, FOUR]

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

Usando el comando FIELD

Una declaracin con FIELD asigna una variable a un grupo de bits.


JJVS-09 23

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

Deben escribirse todos los campos, si no, el compilador marca un error.

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

Comandos del procesador


El comando $DEFINE sirve para remplazar un operador, nmero, o smbolo con una cadena de caracteres que es ms consistente con una aplicacin especfica. $DEFINE ON b1 $DEFINE OFF b0 $DEFINE PORTA hC000 $DEFINE + # $DEFINE * &
JJVS-09 32

Comandos del procesador


$DEFINE $DEFINE $DEFINE $DEFINE Present STATE-a STATE-b STATE-c STATE-d b000 b001 b010 b100

STATE-d NEXT STATE-a

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

Decodificador BCD a 7 segmentos


Min 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 JJVS-09 B3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

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

Decodificador de 3 a 8 activo en bajo


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 0 1 1 1 1 1 1 1 Y1 1 0 1 1 1 1 1 1 Y2 1 1 0 1 1 1 1 1 Salidas Y3 1 1 1 0 1 1 1 1 Y4 1 1 1 1 0 1 1 1 Y5 1 1 1 1 1 0 1 1 Y6 1 1 1 1 1 1 0 1 Y7 1 1 1 1 1 1 1 0

JJVS-09

40

Comparador de dos datos de 3 bits

Dato a

Mayor Igual

Dato b Compara

Menor

TAREA2: Realice un comparador de 4 bits.


JJVS-09 41

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

Clasificacin de la lgica digital


Logic ASIC Aplicattion Specific ICs Cell-Based ICs Full Custom ICs

Standard Logic Programmable Logic Gate Arrays Devices (PLDs) SPLDs (PALs) 80s CPLDs 90 -

FPGAs 90 43

JJVS-09

Simple Programmable Logic Device


SPLD PAL PLA PLD Arreglos

AND-OR con salidas directas o a registros (flip-flops). Contienen de 10 a 100 circuitos TTL en un solo chip
JJVS-09 44

Complex Programmable Logic Device


Contiene

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

Modos para sustituir dispositivos con la GAL16V8

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

Diagrama de *********************/ estados /* *************** INPUT PINS


PIN 1 = CLOCK ; /* */ PIN 2 = R ; /* */ PIN 3 = S ; /* */ PIN 4 = T ; /* */ PIN 5 = RESET ; /* */ PIN 6 = PRESET ; /* */ /* *************** OUTPUT PINS *********************/ PIN 14 = A ; /* */ PIN 15 = B ; /* */ PIN 16 = C ; /* */ SEQUENCE [A,B,C] { PRESENT 6 IF R NEXT 2; DEFAULT NEXT 4; PRESENT 4 IF S NEXT 6; DEFAULT NEXT 5; PRESENT 2 IF S NEXT 3; DEFAULT NEXT 6; PRESENT 5 IF T NEXT 7; DEFAULT NEXT 4; PRESENT 7 NEXT 6; PRESENT 3 IF T NEXT 2; DEFAULT NEXT 7; } A.AR=RESET;B.AR=RESET;C.AR=RESET; A.SP=PRESET;B.SP=PRESET;C.SP=PRESET;
JJVS-09 56

Evitando niveles lgicos indeseados (glitches)


No
00 0 1 b d 01 a e 11 c f 10

permitir ms de un cambio de bit entre cada estado.

0001-0101-01001100-1000-10011011-1111-11100110-0111-0011-0001

JJVS-09

57

Mltiples entradas en un diagrama de estados


SEQUENCE [A,B,C]{ PRESENT 0 IF (R & !S) NEXT 1; IF (!R & S) NEXT 2; DEFAULT NEXT 0; PRESENT 1 IF !T NEXT 1; DEFAULT NEXT 2; PRESENT 2 IF (S & !T) NEXT 4; DEFAULT NEXT 0; PRESENT 4 NEXT 0;
JJVS-09

58

Diseo lgico con salidas

JJVS-09

59

Ejemplo de salidas

JJVS-09

60

Diagrama de tiempo

JJVS-09

61

Generacin de los pulsos de salida

JJVS-09

62

Otras salidas

JJVS-09

63

Diagrama de tiempos

JJVS-09

64

Ejercicio : Encuentre el diagrama de estado.

JJVS-09

65

Diagrama de tiempos

JJVS-09

66

Un controlador para una mquina de refrescos


Entrega

light. Acepta solo monedas de 5 pesos. Si existen monedas depositadas, estas se pueden regresar 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

dos tipos de refrescos: sangra y

Circuitos integrados programables con diferentes densidades

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

Programacin con memorias de solo lectura

JJVS-09

69

Mquina de estados basada en ROM

JJVS-09

70

Diseo de diagramas de estado con entradas de decisin

JJVS-09

71

Diseo de diagramas de estado con mltiples entradas

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

Generador/Sintetizador de seales digitales

JJVS-09

74

Generador/Sintetizador de seales digitales

JJVS-09

75

You might also like