Beruflich Dokumente
Kultur Dokumente
Ck 1 2 3 4 5 6 7 8 9 10 11 12
Q0
Q1
Q2
CONTADOR ASINCRONO DESCENDENTE
Ck 1 2 3 4 5 6 7 8 9 10 11 12
Q0
Q1
Q2
CONTADORES SINCRONOS 1
(CONECTAR LAS ENTRADAS ASINCRONAS)
Q3
S
J Q2
S
J Q1
S
J Q0
S
J
0
1
Ck Ck Ck Ck
R R R R
Ck 1 2 3 4 5 6 7 8 9 10 11 12
Q0
Q1
Q2
Q3
MODELO VHDL CONTADOR ARQUITECTURA
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 ;
SE SE SE SE
E T T T T
J Q J Q J Q J Q
Resetn
Este contador es identico al anteriormente visto, solo que hemos agregado una
compuerta adicional con la funcion de establecer una entrada de habilitacion E.
Se muestra el circuito de un contador ascendente de 4 bit, (de la diapositiva
anterior) con una entrada reset Resetn , y una entrada de habilitacin, E . En el
cuerpo de la arquitectura los FFs en el contador estan representados por una seal
denominada Count (recordemos que una seal puede almacenar informacin y
representan conexiones o terminales fsicos en el circuito) La sentencia process
especifica un reset asncrono 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 cdigo explcitamente asigna Count <= Count. Las salidas Q estan
asignadas al valor de Count al final del cdigo
MODULO
LIBRARY ieee ; PROGRAMABLE
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 ;
ENTITY upcount IS
PORT ( R : IN INTEGER RANGE 0 TO 15 ;
Clock, Resetn, L : IN STD_LOGIC ;
Q : BUFFER INTEGER RANGE 0 TO 15 ) ;
END upcount ;
Figure 7.54 A four-bit counter with parallel load, using INTEGER signals
CONTADORES SINCRONOS 2 - UP
D Q Q0
ENABLE
Ck
SI enable =1 Q
D0 = Q0 = 1 Q0
D1 = Q1 Q0 D Q Q1
D2 = Q2 Q1 . Q 0 Ck
D3 = Q3 Q2 . Q1 . Q0
Q
D Q
Q2
Ck
D Q Q3
Ck
CLOCK Q CARRY
CONTADOR DE CARGA PARALELA
ENABLE
D Q Q0
D0 Ck
D Q Q1
D1
Ck
D Q Q2
D2
Ck
D Q Q3
D3
Ck
CLOCK Q CARRY
LOAD
CONTADOR MODULO 6 M : 6
1 Enable
0 D0 Q0
0 D1
0 D2 Q1
Load Q2
Clock
Clock
Ck 1 2 3 4 5 6 7 8 9 10 11 12
Q0
Q1
Q2
TABLA DE ESTADOS
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 fu
0 0 0 0 0 1 0 X 0 X 1 X 0
0 0 1 0 1 0 0 X 1 X X 1 0
0 1 0 0 1 1 0 X X 0 1 X 0
0 1 1 1 0 0 1 X X 1 X 1 0
1 0 0 0 0 0 X 1 0 X 0 X 0
1 0 1 X X X X X X X X X 1
1 1 0 X X X X X X X X X 1
1 1 1 X X X X X X X X X 1
EST EST. ENT
PRES FUT
Qt Qt + 1 J K
0 0 0 X
TABLA DE ESTADOS 0 1 1 X
1 0 X 1
1 1 X 0
IMPLEMENTACION
4) SIMPLIFICACION: UN DIAGRAMA PARA CADA ENTRADA JK DE TODOS LOS
F/F, MAS UNA FUNCION RESET (fu).
RESULTADO DE LA SIMPLIFICACIN
ALTERNATIVA PARA ESTADOS NO USADOS
LA ALTERNATIVA CONSISTE EN FORZAR AL CONTADOR CUANDO ENTRE EN
UN ESTADO NO USADO A IR POR EJEMPLO AL ESTADO 000 U OTRO
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0 X 0 X 1 X
0 0 1 0 1 0 0 X 1 X X 1
0 1 0 0 1 1 0 X X 0 1 X
0 1 1 1 0 0 1 X X 1 X 1
1 0 0 0 0 0 X 1 0 X 0 X
1 0 1 0 0 0 X 1 0 X X 1
1 1 0 0 0 0 X 1 X 1 0 X
1 1 1 0 0 0 X 1 X 1 X 1
CONTADOR UP/DW - M = 5
DIAGRAMA DE ESTADOS
X=0
000 001 010 011 X = 0, UP
X=1
X = 1, DW
Q1Q0
XQ2
00 01 11 10
00 0 0 1 0
01 X X X X
11 X X X X
10 1 0 0 0
J2 = XQ1Q0 + XQ1Q0
D Q D Q D Q
Clock
Q Q Q
Reset
4 bits
Contador 2 bits Decodificador 2:4
Clock Clock
Q1 W0 y0 Q0
y1 Q1
y2 Q2
Start Q0 W1 y3 Q3
Clear
CONTADOR JOHNSON
Q0 Q1 N bits Qn-1
D Q D Q D Q
Clock
Q Q Q
Reset
Q1
Q2
Q3
EJERCICIOS 1
EJERCICIO - 2
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 ;
ENTITY BCDcount IS
PORT ( Clock : IN STD_LOGIC ;
Clear, E : IN STD_LOGIC ;
BCD1, BCD0 : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;
END BCDcount ;