25
CONTADORES Ck 1 2 3 4 5 6 7 8 Q0 Q1 Q2 CONTADORES ASINCRONOS ASCENDENTE S Q2 J ck Q2 K R S Q1 J ck Q1 K R S Q0 J ck Q0 K R Vdd Vdd Vdd Las entradas asincronas S y R estan desactivadas -- CI : 0 0 0

CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

  • Upload
    dangbao

  • View
    226

  • Download
    5

Embed Size (px)

Citation preview

Page 1: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADORES

Ck 1 2 3 4 5 6 7 8 9 10 11 12

Q0

Q1

Q2

CONTADORES ASINCRONOS ASCENDENTE

SQ2 J

ckQ2 K

R

SQ1 J

ckQ1 K

R

SQ0 J

ckQ0 K

R

Vdd Vdd Vdd

Las entradas asincronas S y R estan desactivadas -- CI : 0 0 0

Page 2: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADOR ASINCRONO DESCENDENTE

Ck 1 2 3 4 5 6 7 8 9 10 11 12

Q0

Q1

Q2

SQ2 J

ckQ2 K

R

SQ1 J

ckQ1 K

R

SQ0 J

ckQ0 K

R

Vdd Vdd Vdd

Las entradas asincronas S y R estan desactivadas -- CI : 0 0 0

Page 3: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADORES SINCRONOS 1(CONECTAR LAS ENTRADAS ASINCRONAS)

Ck 1 2 3 4 5 6 7 8 9 10 11 12

Q0

Q1

Q2

Q3

SQ3 J

Ck

----Q3 K

R

SQ2 J

Ck

----Q2 K

R

SQ1 J

Ck

----Q1 K

R

SQ0 J

Ck

----Q0 K

R

0

1

Page 4: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

MODELO VHDL – CONTADOR – ARQUITECTURA

ARCHITECTURE Behavior OF upcount ISSIGNAL Count : STD_LOGIC_VECTOR (3 DOWNTO 0) ;

BEGINPROCESS ( Clock, Resetn )BEGIN

IF Resetn = ´0´ THENCount <= “0000” ;

ELSIF (Clock’EVENT AND Clock = ´1´) THENIF E = ´1´ THEN

Count <= Count + 1;ELSE

Count <= Count ;END IF ;

END IF ;END PROCESS ;Q <= Count ;

END Behavoir ;

LIBRARY ieee ;USE ieee.std_logic_1164.all ;USE ieee.std_logic_unsigned.all ;

ENTITY upcount IS PORT ( Clock, Resetn, E : IN STD_LOGIC ;

Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;END upcount ;

Page 5: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

MODELO VHDL - CONTADOR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

J

Q

Q

K

SET

CLR

E

Clock

Resetn

Este contador es identico al anteriormente visto, solo que hemos agregado unacompuerta adicional con la funcion de establecer una entrada de habilitacion E. Se muestra el circuito de un contador ascendente de 4 bit, (de la diapositivaanterior) con una entrada reset Resetn , y una entrada de habilitación, E . En el cuerpo de la arquitectura los FFs en el contador estan representados por una señal denominada Count (recordemos que una señal puede almacenar información y representan conexiones o terminales físicos en el circuito) La sentencia processespecifica un reset asíncrono de Count si Resten = 0 . La clausula ELSIF especifica que en el flanco positivo del Clock, si E = 1, la cuenta es incrementada .. Si E = 0 , el código explícitamente asigna Count <= Count. Las salidas Q estanasignadas al valor de Count al final del código

Page 6: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

Figure 7.55 Code for a down-counter

LIBRARY ieee ;USE ieee.std_logic_1164.all ;ENTITY downcnt IS

GENERIC ( modulus : INTEGER := 8 ) ;PORT ( Clock, L, E : IN STD_LOGIC ;

Q : OUT INTEGER RANGE 0 TO modulus-1 ) ;END downcnt ;

ARCHITECTURE Behavior OF downcnt ISSIGNAL Count : INTEGER RANGE 0 TO modulus-1 ;

BEGINPROCESSBEGIN

WAIT UNTIL (Clock'EVENT AND Clock = '1') ;IF E = '1' THEN

IF L = '1' THENCount <= modulus-1 ;

ELSECount <= Count-1 ;

END IF ;END IF ;

END PROCESS;Q <= Count ;

END Behavior ;

MODULO PROGRAMABLE

Page 7: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

Figure 7.54 A four-bit counter with parallel load, using INTEGER signals

LIBRARY ieee ;USE ieee.std_logic_1164.all ;

ENTITY upcount ISPORT ( R : IN INTEGER RANGE 0 TO 15 ;

Clock, Resetn, L : IN STD_LOGIC ;Q : BUFFER INTEGER RANGE 0 TO 15 ) ;

END upcount ;

ARCHITECTURE Behavior OF upcount ISBEGIN

PROCESS ( Clock, Resetn )BEGIN

IF Resetn = '0' THENQ <= 0 ;

ELSIF (Clock'EVENT AND Clock = '1') THENIF L = '1' THEN

Q <= R ;ELSE

Q <= Q + 1 ;END IF;

END IF;END PROCESS;

END Behavior;

PROGRAMABLE

Page 8: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADORES SINCRONOS 2 - UP

D Q

Ck

Q

D Q

Ck

Q

D Q

Ck

Q

D Q

Ck

Q

ENABLE

CLOCK

Q0

Q1

Q2

Q3

CARRY

SI enable =1

D0 = Q0 = 1 Q0

D1 = Q1 Q0

D2 = Q2 Q1 . Q0

D3 = Q3 Q2 . Q1 . Q0

Page 9: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADOR DE CARGA PARALELA

D Q

Ck

Q

D Q

Ck

Q

D Q

Ck

Q

D Q

Ck

Q

ENABLE

CLOCK

Q0

Q1

Q2

Q3

CARRY

LOAD

D0

D1

D2

D3

Page 10: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADOR MODULO 6 – M : 6

Enable

D0 Q0D1D2 Q1

Load Q2Clock

1

00

0

Clock

Cuando comienza el Ck – 5 si bien es cierto que en Load hay un 1, dichacarga no se hace efectiva hasta que ingresa el Ck – 6. Alli los Qi = 0

Ck 1 2 3 4 5 6 7 8 9 10 11 12

Q0

Q1

Q2

Page 11: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

DISEÑO CONTADOR CRECIENTE M=5MODULO: N DE ESTADOS POR LOS QUE ATRAVIESA EL CONTADOR

n = CANTIDAD DE FLIP-FLOP NECESARIOS PARA EL DISEÑO

1) CANTIDAD DE FLIP-FLOP n = 3

2) DIAGRAMA DE ESTADOS 2exp (n) > M

ESTPRES

Qt

EST. FUT

Qt + 1

ENT

J K

0 0 0 X

0 1 1 X

1 0 X 1

1 1 X 0

TABLA DE ESTADOS

Page 12: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

TABLA DE ESTADOS

ESTADO PRESENTE

ESTADO FUTURO

ENTRADAS DE LOS FLIP-FLOP

FUNCION DE

RESET

Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 fu

00001111

00110011

01010101

00010XXX

01100XXX

10100XXX

0001XXXX

XXXX1XXX

01XX0XXX

XX01XXXX

1X1X0XXX

X1X1XXXX

00000111

ESTPRES

Qt

EST. FUT

Qt + 1

ENT

J K

0 0 0 X

0 1 1 X

1 0 X 1

1 1 X 0

TABLA DE ESTADOS

Page 13: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

IMPLEMENTACION4) SIMPLIFICACION: UN DIAGRAMA PARA CADA ENTRADA JK DE TODOS LOS

F/F, MAS UNA FUNCION RESET (fu).

RESULTADO DE LA SIMPLIFICACIÓN

Page 14: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

ALTERNATIVA PARA ESTADOS NO USADOSLA ALTERNATIVA CONSISTE EN FORZAR AL CONTADOR CUANDO ENTRE EN UN ESTADO NO USADO A IR POR EJEMPLO AL ESTADO 000 U OTRO

ESTADO PRESENTE

ESTADO FUTURO

ENTRADAS DE LOS FLIP-FLOP

Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0

00001111

00110011

01010101

00010000

01100000

10100000

0001XXXX

XXXX1111

01XX00XX

XX01XX11

1X1X0X0X

X1X1X1X1

Page 15: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADOR UP/DW - M = 5DIAGRAMA DE ESTADOS

000 001 010 011

111 110 101 100

X = 0

X = 1X = 0, UP

X = 1, DW

XXXX1 X 0 X 0 X1 0 00 0 010 X 0 X 1 X0 0 00 0 110 X X 1 1 X0 0 10 1 010 X X 0 X 10 1 00 1 11X 1 1 X 1 X0 1 11 0 01X 1 0 X 0 X0 0 01 0 001 X X 1 X 11 0 00 1 100 X X 0 1 X0 1 10 1 000 X 1 X X 10 1 00 0 100 X 0 X 1 X0 0 00

J2 K2 J1 K1 J0 K0Q2 Q1 Q0Q2 Q1 Q0X

ENTRADASFUTUROPRESENTECONTROL

0 0 1

Page 16: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADOR UP/DW – MAPA K

000110

XXXX11

XXXX01

010000

10110100XQ2Q1Q0

J2 = XQ1Q0 + XQ1Q0

CONSTRUYENDO EL RESTO DE LOS MAPAS, ENCONTRAMOS:

J1 = XQ2 + XQ0 ; J0 = XQ2 +XQ2 + Q1

K2 = 1; K1 = XQ0 + XQ0 ; K0 = 1

SIGUIENTE PASO LA IMPLEMENTACION Y PRUEBA DE FUNCIONAMIENTO

Page 17: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADOR ANILLO

D Q

Q

D Q

Q

D Q

Q

Start

Clock

Q0 Q1 Qn-1Set

Reset

N bits

ClockQ1

Q0Clear

W0 y0 y1y2

W1 y3

Q0Q1Q2Q3Start

Clock

Contador 2 bits Decodificador 2:4

4 bits

Page 18: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

CONTADOR JOHNSON

D Q

Q

D Q

Q

D Q

Q

Clock

Q0 Q1 Qn-1

Reset

N bits

Ck

Q0

Q1

Q2

Q3

CONTADOR JOHNSON - 4 BITS

Page 19: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

EJERCICIOS – 1

Page 20: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

EJERCICIO - 2

Page 21: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

Figure 7.55 Code for a down-counter

LIBRARY ieee ;USE ieee.std_logic_1164.all ;ENTITY downcnt IS

GENERIC ( modulus : INTEGER := 8 ) ;PORT ( Clock, L, E : IN STD_LOGIC ;

Q : OUT INTEGER RANGE 0 TO modulus-1 ) ;END downcnt ;

ARCHITECTURE Behavior OF downcnt ISSIGNAL Count : INTEGER RANGE 0 TO modulus-1 ;

BEGINPROCESSBEGIN

WAIT UNTIL (Clock'EVENT AND Clock = '1') ;IF E = '1' THEN

IF L = '1' THENCount <= modulus-1 ;

ELSECount <= Count-1 ;

END IF ;END IF ;

END PROCESS;Q <= Count ;

END Behavior ;

Page 22: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

Figure 7.53 Code for a four-bit up-counter

LIBRARY ieee ;USE ieee.std_logic_1164.all ;USE ieee.std_logic_unsigned.all ;ENTITY upcount IS

PORT ( Clock, Resetn, E : IN STD_LOGIC ;Q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)) ;

END upcount ;

ARCHITECTURE Behavior OF upcount ISSIGNAL Count : STD_LOGIC_VECTOR (3 DOWNTO 0) ;

BEGINPROCESS ( Clock, Resetn )BEGIN

IF Resetn = '0' THENCount <= "0000" ;

ELSIF (Clock'EVENT AND Clock = '1') THENIF E = '1' THEN

Count <= Count + 1 ;ELSE

Count <= Count ;END IF ;

END IF ;END PROCESS ;Q <= Count ;

END Behavior ;

Page 23: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

Figure 7.78a Code for a two-digit BCD counter

LIBRARY ieee ;USE ieee.std_logic_1164.all ;USE ieee.std_logic_unsigned.all ;

ENTITY BCDcount ISPORT ( Clock : IN STD_LOGIC ;

Clear, E : IN STD_LOGIC ;BCD1, BCD0 : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;

END BCDcount ;

ARCHITECTURE Behavior OF BCDcount ISBEGIN

PROCESS ( Clock )BEGIN

IF Clock'EVENT AND Clock = '1' THENIF Clear = '1' THEN

BCD1 <= "0000" ; BCD0 <= "0000" ;… con’t

Page 24: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

Figure 7.78b Code for a two-digit BCD counter (con’t)

ELSIF E = '1' THENIF BCD0 = "1001" THEN

BCD0 <= "0000" ;IF BCD1 = "1001" THEN

BCD1 <= "0000";ELSE

BCD1 <= BCD1 + '1' ;END IF ;

ELSEBCD0 <= BCD0 + '1' ;

END IF ;END IF ;

END IF;END PROCESS;

END Behavior ;

Page 25: CONTADORES CONTADORES ASINCRONOS … muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva anterior) con una entrada reset Resetn, y una entrada de habilitación,

Figure 7.73 Code for a two-bit up-counter with asynchronous reset

LIBRARY ieee ;USE ieee.std_logic_1164.all ;USE ieee.std_logic_unsigned.all ;ENTITY upcount IS

PORT ( Clear, Clock : IN STD_LOGIC ;Q : BUFFER STD_LOGIC_VECTOR(1 DOWNTO 0) ) ;

END upcount ;

ARCHITECTURE Behavior OF upcount ISBEGIN

upcount: PROCESS ( Clock )BEGIN

IF (Clock'EVENT AND Clock = '1') THENIF Clear = '1' THEN

Q <= "00" ;ELSE

Q <= Q + '1' ;END IF ;

END IF;END PROCESS;

END Behavior ;