Está en la página 1de 14

División de C.B.I.

Departamento de Electrónica
Laboratorio de Diseño Lógico

PRÁCTICA 10
CONTADORES
CMIXT02

Prof. Francisco Javier Sanchez Rangel

EQUIPO 7:

2202005410 — RODRIGUEZ MELCHOR EDWIN


2173000365 — ROJAS ROJAS SALMA DARINA
2202000595 — ORTIZ AVILA NADIA FERNANDA

Trimestre Lectivo 22I 12 de Mayo del 2022


Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 1

OBJETIVOS:
1. Caracterizar contadores.
2. Diseñar contadores empleando bloques.
3. Diseñar contadores empleando VHDL.

MARCO TEÓRICO.
1. Explique que es un contador.
Contadores
Un circuito secuencial que pasa por una secuencia preestablecida de esta-
dos después de la aplicación de pulsos se llama contador. Los pulsos de
entrada llamados pulsos de cuenta pueden ser pulsos de reloj o ellos pueden
originarse en una fuente externa y pueden ocurrir a intervalos estableci-
dos de tiempo o aleatoriamente. Recordemos que los flip flops cambian de
estado por flanco de subida o de bajada.

2. Describa los distintos tipos de contadores que existen.


Un contador que sigue la secuencia binaria se llama contador binario y
tiene las siguientes propiedades fundamentales:
1. Un número máximo de cuenta (modulo del contador).
2. Cuenta ascendente o descendente.
3. Operación sı́ncrona o ası́ncrona.
4. De carrera libre o que se para solo.
Un contador de n bits consiste en n FF y puede contar en binario de 0
hasta -1 El módulo de un contador es el número de veces que cuenta para
llegar al máximo.
Los contadores se pueden dividir en dos categorı́as: contadores ası́ncronos
y contadores sı́ncronos.
Contador ası́ncrono
En un contador ası́ncrono, las transiciones de las salidas de los flip-flops
sirven como fuente para disparar los cambios en los otros flip-flops. En
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 2

otras palabras, las entradas C de algunos flip-flops no se disparan por un


pulso común de reloj, sino por transiciones que suceden en las salidas de
otros flip-flops.
Los pasos en el diseño de un contador en modo asincrónico son los siguien-
tes:
Representar el diagrama de estados a partir del enunciado o carac-
terı́sticas del contador.
Determinar el número de flip flops .
Se representa la tabla de excitación del contador a partir del código
de contaje.
Se obtienen las ecuaciones de las entradas sı́ncronas J, K,D,T, según
los flip flops utilizados y posteriormente se obtienen a través de la
tabla de verdad, simplificando por Karnaugh.
Con las expresiones de las entradas de los flip flops se realiza el diseño
del circuito contador.
Contador sı́ncrono
En un contador sı́ncrono, las entradas C de todos los flip-flops reciben
un pulso de reloj simultáneamente, y el cambio de estado se determina a
partir del estado presente del contador.
Los pasos en el diseño de un contador en modo sincrónico son los siguientes:
Representar el diagrama de estados a partir del enunciado o carac-
terı́sticas del contador.
Determinar el número de flip flops.
Para representar el funcionamiento del contador, se utiliza la tabla
de excitación, en ella, se disponen los estados binarios por los que
pasa el contador cada vez que se aplica un impulso a los flip flops.
Cuando se llega a la máxima capacidad, se vuelve al estado inicial.
A partir de la tabla de excitación y simplificación por Karnaugh, se
obtiene la ecuación de las entradas de los flip flops.
Con expresiones de las entradas de los flip flops se realiza el esquema
del circuito del contador.

DESARROLLO TEÓRICO.
1. Diseñe en VHDL un contador binario universal de 4 bits que tenga una
entrada de Reset ası́ncrona y la salida se debe desplegar en los LEDs y
en un display de 7 segmentos. Se deberá cumplir con la siguiente tabla
caracterı́stica:
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 3

SELECCIÓN
Reset FUNCIÓN
S1 S0
0 XX Reset
1 00 Mantener estado
1 01 Carga en paralelo
1 10 Cuenta ascendente
1 11 Cuenta descendente

Para este ejercicio usaremos 4 entradas y 2 salidas.


Entradas:
CLK entrada de reloj.
SEL1 , SEL0 Selector.
D(3 downto 0) Entrada de 4 bits.
Salidas:
Q(3 downto 0) Salida de 3 bits en modo inout.
Seven(6 downto 0) Salida de 7 segmentos.
Para usar el selector usaremos un postulado if - then - else, para poder
observar los cambios de reloj en la tarjeta Altera Cyclone II usaremos
señales y un postulado if - then con el discriminante ’event.
Para mantener estado haremos Q ¡= Q.
Para la carga en paralelo Q ¡= D.
Para la cuenta ascendente haremos Q ¡= Q + 1 y para la descendente Q
¡= Q - 1.
Para el reset haremos Q = ”0000”.
El código entonces nos quedarı́a de la siguiente manera:
library i e e e ;
use i e e e . s t d l o g i c 1 1 6 4 . a l l ;
use i e e e . s t d l o g i c u n s i g n e d . a l l ;

entity C U i s
port (CLK: in s t d l o g i c ;
RESET: in s t d l o g i c ;
SEL : in s t d l o g i c v e c t o r ( 1 downto 0 ) ;
D: in s t d l o g i c v e c t o r ( 3 downto 0 ) ;
Seven : out s t d l o g i c v e c t o r ( 6 downto 0 ) ;
Q: inout s t d l o g i c v e c t o r ( 3 downto 0 ) ) ;
end C U ;
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 4

architecture C U arch of C U i s
signal Reloj : s t d l o g i c ;
s i g n a l Div : s t d l o g i c v e c t o r ( 2 4 downto 0 ) ;

component D i s p l a y i s
port ( Bin : in s t d l o g i c v e c t o r ( 3 downto 0 ) ;
Seven : out s t d l o g i c v e c t o r ( 6 downto 0 ) ) ;
end component ;

begin
process (CLK)
begin
i f CLK’ e v e n t and CLK = ’ 0 ’ then
Div <= Div + 1 ;
end i f ;
end process ;

R e l o j <= Div ( 2 4 ) ;

process ( R e l o j , SEL , RESET)


begin
i f RESET = ’ 1 ’ then
i f R e l o j ’ e v e n t and R e l o j = ’ 0 ’ then
i f SEL = ” 00 ” then
Q <= Q;
e l s i f SEL = ” 01 ” then
Q <= D;
e l s i f SEL = ” 10 ” then
Q <= Q + 1 ;
else
Q <= Q − 1 ;
end i f ;
end i f ;
e l s e Q <= ” 0000 ” ;
end i f ;
end process ;
D i s p l a y 1 : D i s p l a y port map (Q, Seven ) ;
end C U arch ;

2. Diseñe en VHDL un contador módulo 60. La cuenta se lleva a cabo dos


displays de 7 segmentos, para poder utilizar los displays es necesario utili-
zar dos decodificadores de BCD a 7 segmentos. Recuerde que los displays
de la tarjeta DE2 son de ánodo común. El diagrama a bloques del circuito
se muestra en la Figura no. 1.
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 5

Figura 1: Contador módulo 60.

Para este ejercico usaremos 1 entrada y 4 salidas.


Entradas:
CLK entrada de reloj.
Salidas:
Q(3 downto 0), Qn(3 downto 0) Salidas de 3 bits en modo inout.
SevenQ(6 downto 0), SevenQn(6 downto 0) Salidas de 7 segmentos.
Para poder observar los cambios de reloj en la tarjeta Altera Cyclone II
usaremos señales y un postulado if - then con el discriminante ’event.
Qn representará a las decenas y Q a las unidades.
En este sentido para que Qn aumente en 1, Q debe de pasar llegar al 9, o
1001 en binario.
Como este contador es módulo 60 el número máximo que observaremos
en las salidas de 7 segmentos es el 59, por lo que siguiendo esta lógica:
Si Q = 1001 entonces Qn = Qn + 1 y Q = 0.
Si Qn = 0101 y Q = 1001 entonces Qn = 0 y Q = 0.
Si Q = 0 entonces Q = Q + 1.
El código entonces nos quedarı́a de la siguiente manera:
library i e e e ;
use i e e e . s t d l o g i c 1 1 6 4 . a l l ;
use i e e e . s t d l o g i c u n s i g n e d . a l l ;

entity C 60 i s
port (CLK: in s t d l o g i c ;
Qn, Q: inout s t d l o g i c v e c t o r ( 3 downto 0 ) ;
SevenQn , SevenQ : out s t d l o g i c v e c t o r ( 6 downto 0 ) ) ;
end C 60 ;
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 6

architecture C 6 0 a r c h of C 60 i s
signal Reloj : s t d l o g i c ;
s i g n a l Div : s t d l o g i c v e c t o r ( 2 4 downto 0 ) ;

component D i s p l a y i s
port ( Bin : in s t d l o g i c v e c t o r ( 3 downto 0 ) ;
Seven : out s t d l o g i c v e c t o r ( 6 downto 0 ) ) ;
end component ;

begin
process (CLK)
begin
i f CLK’ e v e n t and CLK = ’ 0 ’ then
Div <= Div + 1 ;
end i f ;
end process ;

R e l o j <= Div ( 2 4 ) ;

process ( R e l o j )
begin
i f R e l o j ’ e v e n t and R e l o j = ’ 1 ’ then
i f Qn = ” 0101 ” and Q = ” 1001 ” then
Qn <= ” 0000 ” ; Q <= ” 0000 ” ;
e l s i f Q = ” 1001 ” then
Qn <= Qn + 1 ; Q <= ” 0000 ” ;
e l s e Q <= Q + 1 ;
end i f ;
end i f ;
end process ;

D i s p l a y 1 : D i s p l a y port map (Qn, SevenQn ) ;


D i s p l a y 0 : D i s p l a y port map (Q, SevenQ ) ;

end C 6 0 a r c h ;
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 7

Experimental
i) Implemente en VHDL el contador binario universal diseñado y compruebe
su funcionamiento.

Figura 2: Implementación del código en VHDL del contador binario universal.

Figura 3: Simulación del contador binario universal.


Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 8

Figura 4: RTL del contador binario universal.

Figura 5: Asignación de pines del contador binario universal.

Figura 6: Compilación del contador binario universal en la tarjeta Altera Cy-


clone II. El Reset esta en 0, el SEL en 01 y D en 11.
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 9

Figura 7: Compilación del contador binario universal en la tarjeta Altera Cy-


clone II. El Reset esta en 1, el SEL en 01 y D en 11.

Figura 8: Compilación del contador binario universal en la tarjeta Altera Cy-


clone II. El Reset esta en 1 y el SEL en 10.
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 10

ii) Implemente en VHDL el contador módulo 60 diseñado y compruebe su


funcionamiento.

Figura 9: Implementación del código en VHDL del contador módulo 60.

Figura 10: Simulación del contador módulo 60.

Figura 11: RTL del contador módulo 60.


Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 11

Figura 12: Asignación de pines del contador módulo 60..

Figura 13: Compilación del contador módulo 60 en la tarjeta Altera Cyclone II.

MATERIAL Y EQUIPO.
Computadora PC.
Software Quartus II.
Tarjeta de desarrollo ALTERA DE2.
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 12

BIBLOGRAFÍA Y/O PÁGINAS WEB.


-James W. Bignell, Robert I. Donovan, (1997). “Electrónica Digital”. COM-
PAÑÍA EDITORIAL CONTINENTAL S.A. de C.V., México, D.F
-Thomas L. Floyd (2006). “Fundamentos de sistemas digitales”. Pearson edu-
cación, S.A., Madrid

CONCLUSIONES.
ORTIZ AVILA NADIA FERNANDA
En la práctica 10 vimos el tema de contadores y los diferentes tipos que hay.
En el desarrollo teórico para poder diseñar los dos contadores correspondientes,
primero prestamos atención a las caracterı́sticas que debı́a tener nuestro con-
tador para ası́ poder representarlo en un diagrama de estados, posteriormente
realizamos una tabla de estados ordenados de menos a mayor, después realiza-
mos la tabla de excitación y a partir de ella se obtuvieron las ecuaciones de las
entradas de nuestro contador simplificando por Karnaugh, una vez obtenidas
las expresiones de las entradas realizamos el diagrama del circuito del contador,
Algo muy importante que debimos realizar en el diseño de cada contador fue di-
señarlos empleando bloques para que en el desarrollo experimental fuera mucho
más sencillo poder hacer su código correspondiente, también empleamos nues-
tros conocimientos adquiridos en practicas anteriores como lo fue en la practica
5 de codificadores y decodificadores.
Al final se implementó en VHDL los dos contadores y se realizó la simulación
con una tarjeta de desarrollo ALTERA DE2 observamos el funcionamiento de
estos,
RODRÍGUEZ MELCHOR EDWIN
Esta práctica se centró totalmente en los contadores de manera especial en
diseñarlos tanto empleando coloques y empleando VHDL. Los contadores tienen
muchas aplicaciones por lo cual es importante comprenderlos como por ejemplo
el temporizador, que son utilizados como parte de circuitos de tiempo donde
es necesario llevar la secuencia temporal de ejecución de diferentes procesos.
Como parte del desarrollo teórico se realizaron dos tipos de contadores uno
binario universal de 4 bits que tenı́a una entrada de reset ası́ncrona y una
salida que debió desplegar en los LEDs y en un display 7 segmentos además
que debı́a cumplir con cierta tabla caracterı́stica, el siguiente fue un contador
módulo 60 que llevaba la cuenta en dos displays de 7 segmentos y para esto era
necesario utilizar dos decodificadores de BCD a 7 segmentos tomando en cuenta
un diagrama de bloques especı́fico.
Se implementó en VHDL el contador binario universal diseñado y el contador
módulo 60 diseñado y se comprobó de ambos su funcionamiento mediante la
tarjeta de desarrollo ALTERA DE2.
Lab. de Diseño Lógico — Prof. Francisco Javier Sanchez Rangel— CMIXT02— 13

ROJAS ROJAS SALMA DARINA


Los objetivos de esta práctica fueron caracterizar contadores y diseñarlos em-
pleando bloques y VHDL, para poder realizar esto primero se necesitó recordar
qué es un contador y los tipos de estos, posteriormente con esta información
se diseñó un contador binario universal de 4 bits que tenı́a una entrada reset
ası́ncrona y la salida debe desplegar en los LED en un display de 7 segmentos, el
diseño debı́a de cumplir con una tabla caracterı́stica especifica. Posteriormente
se diseñó en VHDL un contador de módulo 60 que lleva la cuenta en dos dis-
plays de 7 segmentos, para esto fueron necesarios dos decodificadores BCD a 7
segmentos.
Pudimos implementar en VHDL ambos diseños a y se compró su funcionamiento
mediante el software Quartus II y la tarjeta de desarrollo ALTERA DE2. Cabe
destacar que los contadores tienen muchas aplicaciones en la vida cotidiana, por
lo cual es importante esta práctica ya que muy comúnmente lo podemos ver en
nuestro entorno, un ejemplo de estos pueden ser los mismos relojes.

También podría gustarte