You are on page 1of 18

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA

ESCUELA DE INGENIERIA ELECTRICA


SISTEMAS DIGITALES i SDI-115

CATEDRATICO:
ING. SALVADOR GERMAN

INSTRUCTORES:
BR. GUSTAVO ISAÍAS BARAHONA CERNA
BR. EDUARDO JOSÉ NOSTHAS DÍAZ

TAREA 3 “RELOJ.”

GRUPO TEORICO 01
GRUPO DE DISCUSION 03

ALUMNO

Godoy Majano, Alexis Eduardo GM10055@ues.edu.sv

CARRERA ING ELECTRICA.

DOMINGO 13 DE JUNIO DE 2021

1
OBJETIVOS.

Objetivo General.

Aprender a implementar los conocimientos obtenidos de la materia de SDI115 para la


implementación de un reloj digital de 24 horas.

Objetivos Especificos.

Conocer las características de los flipflops a través del codigo VHDL.

Aprender a crear tablas de entrada para los flipflops JK para determinar sus respectivas
ecuaciones de salida.

Familiarizarse con el programa TINA y las funciones de esta al usar los códigos generados en
Quartus II.

2
INTRODUCCION

El presene trabajo se aborda el tema de la creación de un reloj digital de 24 horas para lo que
se utilizaran contadores FFJK, convertidores de codigo binario a led de 7 segmentos, el uso de
compuertas AND y NAND, las tablas de verdad y tablas de entrada para la creación de estos
además la lógica para la conexión de los digitos para la creación de las horas, minutos y
segundos.

Con el apoyo de Quartus II y TINA 8 se simularan los resultados que se obtengan de las tablas
de entrada y tabla de verdad por lo que primero se crearan los diseños para poder correrlos
dentro de estos programas para así poder encontrar resolver el reloj digital a través de las
pruebas.

El presente trabajo consta de las asignaciones que son problemas dados en la guía de trabajo y
que se resuelven mostrando el método para la solución así también la simulación y código en
VHDL, luego están las preguntas de investigación que son teóricas acerca de diferentes temas
que buscan ampliar mas temas que no pudieron ser tan claros durante el desarrollo de las
asignaciones, después están las conclusiones que es lo que se logró alcanzar tras realizar la guía
de trabajo y por último la bibliografía que son los libros y sitios de internet consultados.

3
ASIGNACIÓN
Considerando lo aprendido en la asignatura Sistemas Digitales I: Desarrollar y simular un reloj en
TINA formato 24 horas en el cual se podrá modificar la hora utilizando pulsadores (3 en total para
horas, minutos y segundos). Utilizando los flip-flop que mejor les convenga en modo ASINCRONO o
SINCRONO. Asuma un CLK con periodo de 1 segundo y que el display a utilizar tiene integrado un
convertidor binario a 7 segmentos.

Para el diseño se crearon convertidores de codigo binario a 7 segmentos y los flipflops serán JK

El reloj digital de 24 horas tiene como número máximo 23:59:59 tendrá 6 digitos, de los cuales se
agrupan de 2 en 2:
El mas significativo de las horas hace un conteo de 0 a 2 ascendente y regresa a 0, y el menos
significativo hace un conteo de 0 a 9 ascendente 2 veces y un conteo de 0 a 3 y regresa a 0.
El más significativo de los minutos hace un conteo de 0 a 5 ascendente y regresa a 0, y el menos
significativo hace un conteo de 0 a 9 ascendente y regresa a 0.
El más significativo de los segundos hace un conteo de 0 a 5 ascendente y regresa a 0, y el menos
significativo hace un conteo de 0 a 9 ascendente y regresa a 0.

Partiendo de esa idea:


Se necesitarán tres contadores de 0 a 9 y el convertidor será de 4 bits a 7 segmentos y no se incluirán
los números binarios de 10 a 15 durante el conteo.
También se necesitarán 2 contadores de 0 a 5 y el convertidor será de 3 bits a 7 segmentos y no se
incluirán los números binarios 6 a 7 durante el conteo.
Luego se necesitará 1 contador de 0 a 2 y el convertidor será de 2 bits a 7 segmentos y no se incluirá
el binario 3 durante el conteo.

CONVERTIDOR BINARIO 4BITS A 7 SEGMENTOS

Tabla de la verdad
8 4 2 1
A B C D S0 S1 S2 S3 S4 S5 S6
0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 1 1 0 0 1 1 1 1
2 0 0 1 0 0 0 1 0 0 1 0
3 0 0 1 1 0 0 0 0 1 1 0
4 0 1 0 0 1 0 0 1 1 0 0
5 0 1 0 1 0 1 0 0 1 0 0
6 0 1 1 0 0 1 0 0 0 0 0
7 0 1 1 1 0 0 0 1 1 1 1
8 1 0 0 0 0 0 0 0 0 0 0
9 1 0 0 1 0 0 0 0 1 0 0
10 1 0 1 0 d d d d d d d
11 1 0 1 1 d d d d d d d
12 1 1 0 0 d d d d d d d
13 1 1 0 1 d d d d d d d
14 1 1 1 0 d d d d d d d
15 1 1 1 1 d d d d d d D

4
ECUACIONES DE SALIDA:
S0 = A’B’C’D + BC’D’
S1 = BC’D + BCD’
S2 = B’CD’
S3 = A’B’C’D + BC’D’ + BCD
S4 = BC’ + D
S5 = A’B’D + CD + B’C
S6 = BCD + A’B’C’

Codigo VHDL

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;

ENTITY CONV8421 IS
PORT
A, B, C, D : IN STD_LOGIC; --VARIABLES DE ENTRADA 8421
S0,S1,S2,S3,S4,S5,S6 : OUT STD_LOGIC); --VARIABLES DE SALIDA AL DISPLAY
END CONV8421;
--------------------------
ARCHITECTURE RTL OF CONV8421 IS
BEGIN
S0 <= (NOT A AND NOT B AND NOT C AND D) OR (B AND NOT C AND NOT D);
S1 <= (B AND NOT C AND D) OR (B AND C AND NOT D);
S2 <= (NOT B AND C AND NOT D);
S3 <= (NOT A AND NOT B AND NOT C AND D) OR (B AND NOT C AND NOT D) OR (B AND C AND D);
S4 <= (B AND NOT C)OR D;
S5 <= (NOT A AND NOT B AND D) OR (C AND D) OR (NOT B AND C);
S6 <= (B AND C AND D) OR (NOT A AND NOT B AND NOT C);
END RTL;

Codigo en Quartus II

5
CONTADOR SÍNCRONO MOD 10 ASCENDENTE BINARIO

Para el flip flop será un contador mod 10 (0 – 9) para el numero menos significativo de las horas, los
minutos y los segundos.

Tabla de entrada
QA QB QC QD QA* QB* QC* QD* JA KA JB KB JC KC JD KD
0 0 0 0 0 0 0 0 1 0 X 0 X 0 X 1 X
1 0 0 0 1 0 0 1 0 0 X 0 X 1 X X 1
2 0 0 1 0 0 0 1 1 0 X 0 X X 0 1 X
3 0 0 1 1 0 1 0 0 0 X 1 X X 1 X 1
4 0 1 0 0 0 1 0 1 0 X X 0 0 X 1 X
5 0 1 0 1 0 1 1 0 0 X X 0 1 X X 1
6 0 1 1 0 0 1 1 1 0 X X 0 X 0 1 X
7 0 1 1 1 1 0 0 0 1 X X 1 X 1 X 1
8 1 0 0 0 1 0 0 1 X 0 0 X 0 X 1 X
9 1 0 0 1 0 0 0 0 X 1 0 X 0 X X 1

ECUACIONES DE SALIDA:
JA = QA’ QB QC QD
KA = QB’ QC’ QD
JB = KB = QA’ QC QD
JC = KC = QA’ QD
JD = KD = QB’ QC’ + QA’ pero para un reloj síncrono tomara el valor de 1(de acuerdo a las
clases teóricas)

Circuito contador síncrono mod 10 ascendente binario en tina con 4 flipflops JK

Flip flop más a la derecha MSB (QA) y mas a la izquierda LSB(QD) en sus salidas respectivamente

6
CONVERTIDOR BINARIO 3BITS A 7 SEGMENTOS

Tabla de la verdad
A B C S0 S1 S2 S3 S4 S5 S6
0 0 0 0 0 0 0 0 0 0 1
1 0 0 1 1 0 0 1 1 1 1
2 0 1 0 0 0 1 0 0 1 0
3 0 1 1 0 0 0 0 1 1 0
4 1 0 0 1 0 0 1 1 0 0
5 1 0 1 0 1 0 0 1 0 0
6 1 1 0 0 1 0 0 1 0 0
7 1 1 1 0 0 0 1 1 1 1

ECUACIONES DE SALIDA:
S0 = AB’C’ + A’B’C
S1 = ABC’ + AB’C
S2 = A’BC’
S3 = AB’C’ + A’B’C + ABC
S4 = C + A
S5 = A’C + BC + A’B
S6 = ABC + A’B’

Codigo VHDL

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;

ENTITY BIN7SEG IS
PORT (
A, B, C : IN STD_LOGIC; --VARIABLES DE ENTRADA
S0,S1,S2,S3,S4,S5,S6 : OUT STD_LOGIC); --VARIABLES DE SALIDA AL DISPLAY
END BIN7SEG;
--------------------------
ARCHITECTURE RTL OF BIN7SEG IS
BEGIN
S0 <= (A AND NOT B AND NOT C) OR (NOT A AND NOT B AND C) ;
S1 <= (A AND B AND NOT C) OR (A AND NOT B AND C);
S2 <= NOT A AND B AND NOT C;
S3 <= (A AND NOT B AND NOT C) OR (NOT A AND NOT B AND C) OR (A AND B AND C);
S4 <= (C OR A);
S5 <= (NOT A AND C) OR (B AND C) OR (NOT A AND B);
S6 <= (A AND B AND C) OR (NOT A AND NOT B);
END RTL;

Codigo en Quartus II

7
CONTADOR SÍNCRONO MOD 6 ASCENDENTE BINARIO

Para el flip flop será un contador mod 6 (0 – 5) para el numero más significativo de los minutos y
segundos.

Tabla de entrada
QA QB QC QA* QB* QC* JA KA JB KB JC KC
0 0 0 0 0 0 1 0 X 0 X 1 X
1 0 0 1 0 1 0 0 X 1 X X 1
2 0 1 0 0 1 1 0 X X 0 1 X
3 0 1 1 1 0 0 1 X X 1 X 1
4 1 0 0 1 0 1 X X 0 X 1 X
5 1 0 1 0 0 0 X 1 0 X X 1

ECUACIONES DE SALIDA:
JA = QA’ QB QC
KA = QB’ QC
JB = KB = QA’ QC
JC = KC = QA’ + QB’ pero para un reloj síncrono tomara el valor de 1(de acuerdo a las clases
teóricas)

Circuito contador síncrono mod 6 ascendente binario en tina con 3 flipflops JK

Flip flop más a la derecha MSB (QA) y más a la izquierda LSB(QC) en sus salidas respectivamente

8
CONVERTIDOR BINARIO 2BITS A 7 SEGMENTOS

Tabla de la verdad
A B S0 S1 S2 S3 S4 S5 S6
0 0 0 0 0 0 0 0 0 1
1 0 1 1 0 0 1 1 1 1
2 1 0 0 0 1 0 0 1 0
3 1 1 0 0 0 0 1 1 0

ECUACIONES
S0 = A’B
S1 = 0
S2 = AB’
S3 = A’B
S4 = B
S5 = B + A
S6 = A’

Codigo VHDL
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;

ENTITY MOD4 IS
PORT (
A, B : IN STD_LOGIC; --VARIABLES DE ENTRADA
S0,S1,S2,S3,S4,S5,S6 : OUT STD_LOGIC); --VARIABLES DE SALIDA AL DISPLAY
END MOD4;
--------------------------
ARCHITECTURE RTL OF MOD4 IS
BEGIN
S0 <= NOT A AND B;
S1 <= '0';
S2 <= A AND NOT B;
S3 <= NOT A AND B;
S4 <= B;
S5 <= B OR A;
S6 <= NOT A;
END RTL;

Codigo en Quartus II

9
CONTADOR SÍNCRONO MOD 3 ASCENDENTE BINARIO

Para el flip flop será un contador mod3 (0 – 2) para el numero más significativo de las horas.

Tabla de entrada
QA QB QA* QB* JA KA JB KB
0 0 0 0 1 0 X 1 X
1 0 1 1 0 1 X X 1
2 1 0 0 0 X 1 0 X

ECUACIONES DE SALIDA
JA = QA’ QB
KA = QB’
JB = KB = QA’

Circuito contador síncrono mod 3 ascendente binario en tina con 2 flipflops JK

Para las conexiones entre los diferentes circuitos se procedió de la siguiente manera:

10
Para la conexión entre los 2 dígitos de los minutos/segundos entre si se utilizo una compuerta
AND.

La compuerta AND se conecta a la salida del flipflop mas significativo y menos significativo en
su salida sin negar para ambos en el circuito de 0 a 9 en segundos/minutos, esto es debido a
que los flipflop se activan con salidas de flanco ascendente y entraría un 1 en los clk de los flip
flop siguientes que es el contador de 0 a 5 en el contador segundos/minutos, y las demás
entradas en esa compuerta AND serán 0 por lo que los clk no cambiaran, y las entradas del
flipflop JK menos significativo del contador 0 – 5 se conectaran a 1 que es el mismo switch en
alto para ambos.

Y la misma conexión será para conectar el MSB de los segundos con el LSB de los minutos la
salida QA y QC de los segundos 0 – 5 se conecta con el clk de los minutos de 0 – 9. Y el JK del
FF LSB de los minutos se conectaran al switch alto general.

Para la conexión entre los digitos de las horas se uso una compuerta AND conectada de tal
forma que en el digito 0 – 9 marque en la entrada A y D un 1 para activar el conteo en los MSB
de las horas, para el control de las 23 horas se conecto una puerta NAND a la entrada A del
convertidor de 2 a 7 segmentos (existiría un 102 en las entradas del convertidor) y la otra se
conecto a la entrada B del convertidor de 4 a 7 segmentos (existiria un 01002 en la entrada
del convertidor) y esa se conecta a todos los flipflops por la entrada C’ del contador MOD3, y
otra NAND en paralelo con la anterior se conecta con los flipflops del QA (MSB) y QB en la
entrada C’ en el contador del MOD10 y en las entradas P’ de todos los flipflops (tanto los del
MOD3 y el MOD10) se conectan al 1 lógico.

11
12
INVESTIGAR
✓ Investigue las librerías de ALTERA, que permiten usar flip-flop ya diseñados, escriba el código
necesario para usar estos componentes.

Para utilizar flip flops en VHDL solamente se necesita el uso de la librería ieee y a su vez utilizar
el paquete de expansión ieee.std_logc_1164.all. Así por ejemplo para un flip flop tipo D el
código fuente será de la siguiente forma:

El flip flop D se activa con el flanco de subida. Para un flip flop tipo D será de la siguiente
forma:

LIBRARY ieee;
USE ieee.std_logc_1164.all;
ENTITY ff_tipod IS PORT (
d, reloj : IN std_logic;
q : OUT std_logic);
END ff_tipod;

ARCHITECTURE tipo_reloj1 OF ff_tipod IS BEGINPROCESS


BEGIN
WAIT UNTIL reloj = `1 ;
́ q <= d;
END PROCESS;
END tipo_reloj1;

Para un flip flop JK sera de la siguiente forma:

LIBRARY ieee;
USE ieee.std_logc_1164.all;

entity FF is Port (
clk,j,k,prn,clrn : in bit;
q : out bit);
end FF;

architecture sintaxis1 of FF is
SIGNAL qestado: bit;
Begin

PROCESS (clk,prn,clrn) --Responde a cualquiera de estas entradas


BEGIN
IF prn = '1' THEN QESTADO <= '1';
ELSIF clrn = '1' THEN QESTADO <= '0';
ELSIF CLK = '0' AND CLK'EVENT THEN --Bajo activo

IF J = '1' AND K = '1' THEN QESTADO <= NOT QESTADO;


ELSIF J = '1' AND K = '0' THEN QESTADO <= '1';
ELSIF J = '0' AND K = '1' THEN QESTADO <= '0';
ELSIF J = '0' AND K = '0' THEN QESTADO <= QESTADO;

END IF;

END IF;
END PROCESS;
Q <= QESTADO; --Guarda el valor de la señal en la salida de los leds
end sintaxis1;

13
Para un flip flop tipo T será de la siguiente forma:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity T_FF is port(


T : in std_logic;
Clock : in std_logic;
Q : out std_logic);
end T_FF;

architecture Behavioral of T_FF is


signal tmp: std_logic;
begin
process (Clock)
begin
if Clock'event and Clock='1' then
if T='0' then
tmp <= tmp;
elsif T='1' then
tmp <= not (tmp);
end if;
end if;
end process;
Q <= tmp;
end Behavioral;

14
✓ Investigue algunas formas de crear un tren de pulsos.

1-PULSO IRREGULAR REPETITIVO

Se genera de la siguiente forma:

constantpulsos:
std_logic_vector_(7downto0):="10110100";
signal estimulo:
std_logic:='0';

for i in pulsos'rangeloop;
estimulo<= pulsos(i);
wait for30ns;
end loop;

2-PULSO REGULAR Y REPETITIVO

Se genera de la siguiente forma:

signalCLK : std_logic:='0';
wait for 10ns;
clk <= notclk;

3-PULSO IRREGULAR FINITO

Se genera de la siguiente forma:

constantpulsos:std_logic_vector_(7downto0):="10110100”;
signal estimulo: std_logic:='0';
for i in pulsos'rangeloop;
estimulo<= pulsos(i);
wait for30ns;
end loop;
wait;

15
4-PULSO SIMPLE

Se genera de la siguiente forma:

signalreset: std_logic:='0';
wait for15ns;
reset <='1';
wait for20ns;
reset <='0';
wait;

16
CONCLUSIONES

Se concluyo que para la construcción de un reloj digital es necesario conocer el


funcionamiento lógico de este primero para la conversión de códigos a un led de 7 segmentos
pero antes de eso era necesario crear contadores y condiciones para los cambios de reloj de
segundos a minutos, para esas conexiones se utilizaron compuertas AND y NAND.

Las características de los flipflops al ser utilizados son necesarias las librerías adicionales IEEE
para utilizarlos dentro de TINA 8 así también era necesario incluir esta librería dentro de los
contadores ya que si no se incluían generaba error el programa y no se lograba la simulación,
aunque en Quartus II hubiera compilado de manera correcta.

Se concluyo que para la creación de las tablas de los flipflops JK se utilizan las proporcionadas
dentro de la asignatura y que estas se ordenaran por medio de compuertas AND en la mayor
parte de los casos para los flipflops que se utilizaron que son los que de por si trae por defecto
el simulador TINA 8.

Se observo que el programa TINA no puede correr un código .vhd que no incluya las librerías
IEE y que es necesario utilizar la señal STD_LOGIC ya que usando la combinación simple de
BIT no compilaba en Quartus II aunque solo se incluyeran las librerías, el programa generaba
error de que esas señales no eran soportadas.

17
BIBLIOGRAFIA

Guias de trabajo
Tarea 2: “Simulación de circuitos MSI en TINA codificado en VHDL.” Facultad de ingeniería y
arquitectura Escuela de ingeniería eléctrica Sistemas digitales 1.

Guias de estudio.
Guias de estudio de la asignatura SDI115 UES, FIA, EIE, ing Salvador German.

Fuentes de libros
Fundamentos se sistemas digitales, Thomas L. Floid, 9ª edición capitulo 6.
Analisis y diseño de circuitos lógicos digitales, Victor P. Nelson, 1ª edición capitulo 4.
RTL Hardware design using VHDL, Pong P. Chu, Cleveland state University chapter 2, 3, 4.
Digital Desing using digilent FPGA Boards, Richard E. Haskell, oukland university, second printing 2010,
chapter 5.

Sitios de internet
https://www.youtube.com/watch?v=MAC1eeY1aYE&list=PLrSvVLGSE9rmrmBfdn-93iMyVig--
RSIE&index=4
https://www.youtube.com/watch?v=VdHNO1Z2Sqk&list=PLrSvVLGSE9rmrmBfdn-93iMyVig--
RSIE&index=7&t=29s
content://0@media/external/file/102619
https://academic.csuohio.edu/chu_p/rtl/sopc_vlog.html
https://www.youtube.com/watch?v=4E3FW0I1Xws
https://www.youtube.com/watch?v=OIj59kyR7wU

18

You might also like