Está en la página 1de 7

Circuitos Digitales I

Práctica 4 – Diseño de un reloj digital simple 30 de agosto


de 2021

PRÁCTICA 4 – DISEÑO DE UN RELOJ DIGITAL SIMPLE

Objetivo: Diseñar e implementar un reloj digital simple empleando componentes de lógica


secuencial y combinacional.

Descripción:

Un reloj digital utiliza contadores de diferente número MOD para definir las secuencias de conteo.
Por ejemplo, si se utiliza un formato de 24 horas, las horas se cuentan de 0 a 23 y los minutos de 0
a 59. Los contadores utilizan una señal de reloj (clk) para realizar transiciones entre sus estados.
La Fig. 1 muestra un diagrama de bloques del reloj digital, utilicemos este diagrama como
estructura inicial de referencia para el diseño e implementación del sistema.

Requisitos:

• El reloj debe contar los minutos y las horas en formato 24 horas (0:00 - 23:59).
• Se deben utilizar contadores síncronos que deben codificarse en CUPL (Lenguaje de diseño
de dispositivos lógicos programables (PLDs)) y programarse en el PLD Gal22v10.
• La implementación de los componentes lógicos combinacionales, tales como codificador,
multiplexor, conversor de binario a 7 segmentos puede realizarse mediante las técnicas de
diseño combinacional empleando compuertas, utilizando circuitos integrados de mediana
escala de integración (MSI) o mediante CUPL. Para el registro de desplazamiento, puede
implementarlo en CUPL o puede utilizar un circuito MSI.
• En el diseño se debe tener en cuenta las diferentes frecuencias de reloj requeridas y
generadas por un divisor de frecuencia (no se muestra en la Fig. 1). clkRelojTst debe ser
una frecuencia que garantice una frecuencia aproximada a la función del reloj, sin
embargo, dado que algunos relojes requieren una frecuencia muy baja se debe generar
una señal de reloj de prueba que garantice que los relojes llegan al máximo en un minuto.
La última de las señales generadas por el divisor es el reloj para el Shift Register, que se
debe diseñar para garantizar que solo un ánodo de los cuatro displays se encuentre en ‘1’.
El multiplexor y el encoder se deben diseñar de modo que en el bus de datos de los
displays se encuentre el valor correcto dependiendo del ánodo seleccionado.

1
Circuitos Digitales I
Práctica 4 – Diseño de un reloj digital simple 30 de agosto
de 2021

Figura 1. Diagrama de bloques del reloj digital

Fundamentos de diseño e implementación de contadores:

1. Contador de 2 bits. Utilice el procedimiento de diseño de contadores síncronos visto en


clase para comprobar que el circuito de la Fig. 2 corresponde a un contador de 2 bits.
Puede verificar el funcionamiento de este contador utilizando el archivo de diseño Proteus
suministrado.

2
Circuitos Digitales I
Práctica 4 – Diseño de un reloj digital simple 30 de agosto
de 2021

Figura 2. Contador de 2 bits

2. Implementación del contador de 2 bits en CUPL. CUPL ofrece dos alternativas para
implementar contadores. La primera es mediante la descripción del circuito anterior. La
segunda es empleando la sintaxis de máquinas de estados finitos. Esta última ya la conoce
de la práctica 3 y será utilizada para implementar un contador de décadas (mod 10).
Veamos la primera alternativa.

La Fig. 3 representa el diagrama de bloques funcional del PLD Gal22v10 (vean las especificaciones
en http://web.mit.edu/6.115/www/document/gal22v10.pdf). La matriz programable permite
describir cualquier función lógica en forma de suma de productos. Las macroceldas lógicas de
salida (OLMCs) agrupan términos de sumas de productos, cuya salida se lleva a un Flip-Flop (FF) D.
Este FF D permite la implementación de sistemas secuenciales. La Fig. 4 presenta una OLMC del
PLD Gal22v10.

1. La implementación del contador de 2 bits puede realizarse describiendo directamente las


entradas de control (D) del FF1 y FF2 (ver Fig. 2). Para el FF0, D=noSQ0. Mientras que, para
el FF1, D=SQ0 xor SQ1. El código de la Lista 1 corresponde a la descripción en CUPL del
contador de 2 bits. Verifique el funcionamiento de este contador mediante Proteus, utilice
el archivo de diseño Proteus suministrado.

3
Circuitos Digitales I
Práctica 4 – Diseño de un reloj digital simple 30 de agosto
de 2021

Figura 3. Diagrama de bloques Gal22v10

Figura 4. OLMC del PLD Gal22v10

4
Circuitos Digitales I
Práctica 4 – Diseño de un reloj digital simple 30 de agosto
de 2021

Name contador2 ;
Partno 00 ;
Revision 02;
Date 08/29/2021;
Designer Carlos Hernan Tobar Arteaga ;
Company Unicauca ;
Location None ;
Assembly None ;
Device g22v10 ;

Pin 1 = clock ;
Pin 2 = reset ;
/* Outputs : define outputs and output active levels */
Pin 22 = q0;
Pin 23 = q1;

/* Logic : two bit counter using expanded exclusive


ors with d- type flip - flop */
q0.d = ! reset & ! q0;
q1.d = ! reset & ( q0 $ q1 );
/* ANDed ! reset defines a synchronous register reset */

Lista 1. Contador de 2 bits en CUPL

3. Contador de décadas descrito en CUPL. Este contador emplea la sintaxis de máquinas de


estado finito (ver Lista 2). Verifique el funcionamiento de este contador utilizando el
archivo de diseño Proteus suministrado.

Name contador10;
Partno CA0018;
Date 12/19/99;
Revision 02;
Designer Kahl;
Company Logical Devices, Inc.;
Assembly None;
Location None;
Device g22v10;

/****************************************************************/
/* Compiling Note: For this Design , it will compile without any*/
/* Errors if you Click on Options from the Main WInCUPL tool window */
/* and Select Compiler option and set Minimization button to QUICK*/
/* */
/* Decade Counter */
/* */
/* This is a 4-bit up/down decade counter with synchronous */
/* clear capability. An asynchronous ripple carry output is */
/* provided for cascading multiple devices. CUPL state machine */
/* syntax is used. */
/****************************************************************/

5
Circuitos Digitales I
Práctica 4 – Diseño de un reloj digital simple 30 de agosto
de 2021

/** Inputs **/

Pin 1 = clk; /* Counter clock */


Pin 2 = clr; /* Counter clear input */
Pin 3 = dir; /* Counter direction input */

/** Outputs **/

Pin [14..17] = [Q3..0]; /* Counter outputs */


Pin 18 = carry; /* Ripple carry out */

/** Declarations and Intermediate Variable Definitions **/

field count = [Q3..0]; /* declare counter bit field */


$define S0 'b'0000 /* define counter states */
$define S1 'b'0001
$define S2 'b'0010
$define S3 'b'0011
$define S4 'b'0100
$define S5 'b'0101
$define S6 'b'0110
$define S7 'b'0111
$define S8 'b'1000
$define S9 'b'1001

field mode = [clr,dir]; /* declare mode control field */


up = mode:0; /* define count up mode */
down = mode:1; /* define count down mode */
clear = mode:[2,3]; /* define count clear mode */

/* Las cuatro lineas anteriores equivalen a */


/* p = !clr & !dir;
down = !clr & dir;
clear = (clr & !dir) # (clr & dir); */

/** Logic Equations **/

Sequenced count { /* free running counter */

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;
present S3 if up next S4;
if down next S2;
if clear next S0;
present S4 if up next S5;
if down next S3;
if clear next S0;
present S5 if up next S6;
if down next S4;
if clear next S0;
present S6 if up next S7;
if down next S5;
if clear next S0;

6
Circuitos Digitales I
Práctica 4 – Diseño de un reloj digital simple 30 de agosto
de 2021

present S7 if up next S8;


if down next S6;
if clear next S0;
present S8 if up next S9;
if down next S7;
if clear next S0;
present S9 if up next S0;
if down next S8;
if clear next S0;
if up out carry; /* assert carry output */
}

Lista 2. Contador de décadas en CUPL

Procedimiento de la práctica:

1. Diseñe, implemente y pruebe los módulos del reloj digital por separado.
2. Integre los módulos teniendo en cuenta las señales entre ellos.
3. Pruebe la solución final en Proteus.

Informe escrito:

Elabore un informe escrito que tenga las siguientes partes:

1. Portada.
2. Marco teórico. Consulten un poco más sobre contadores, registros de corrimiento, CUPL y
Gal22v10.
3. Desarrollo de la práctica. Diseño de los módulos, pruebas de cada uno de ellos, integración
de módulos, pruebas de la solución completa. Analicen los resultados de las pruebas
obtenidos.
4. Conclusiones y recomendaciones. Concluyan acerca del procedimiento y del sistema en sí
mismo, qué limitaciones tiene, qué complejidad tendría realizar un reloj digital con otras
funciones, etc.

Sustentación de la práctica:

Además del informe deben realizar una sustentación de la práctica en la clase del viernes 3 de
septiembre de 2021. Pueden trabajar en parejas.

También podría gustarte