Está en la página 1de 9

Entregable 2

Contador aleatorio

Eduardo González Gutiérrez


Alu0101461588@ull.edu.es
1º Grado Informática
Universidad de La Laguna
7/4/2022
Índice
1. Introducción y objetivos 1
2. Tabla de transiciones 1
3. Mapas de Karnaugh 2
4. Circuito del contador implementado 3
5. Código VHDL del contador 3
6. Cronograma de simulación 5
1.- Introducción y objetivos
En esta práctica se va a proceder a la implementar un contador aleatorio. Éste tendrá
como señales de control una señal de reinicio (reset) y una señal de reloj; y como salidas
se muestra la cuenta en binario y codificada para su representación en un display de 7
segmentos.

El contador aleatorio asignado es el siguiente:

Alumno Secuencia Flip-flops Cíclico


90 Eduardo González Gutiérrez 7,0,6,1,8,9,4,2,5,3 T T D D No

2.- Tabla de transiciones


La tabla de transiciones del contador aleatorio asignado es:

Estado actual Estado siguiente


+¿¿ +¿¿ +¿¿ +¿¿
QA QB QC QD Q A QB QC Q D TA TB DC DD
0 0 0 0 0 0 1 1 0 0 1 1 0
1 0 0 0 1 1 0 0 0 1 0 0 0
2 0 0 1 0 0 1 0 1 0 1 0 1
3 0 0 1 1 0 0 1 1 0 0 1 1
4 0 1 0 0 0 0 1 0 0 1 1 0
5 0 1 0 1 0 0 1 1 0 1 1 1
6 0 1 1 0 0 0 0 1 0 1 0 1
7 0 1 1 1 0 0 0 0 0 1 0 0
8 1 0 0 0 1 0 0 1 0 0 0 1
9 1 0 0 1 0 1 0 0 1 1 0 0
1 1 0 1 0 X X X X X X X X
0
1 1 0 1 1 X X X X X X X X
1
1 1 1 0 0 X X X X X X X X
2
1 1 1 0 1 X X X X X X X X
3
1 1 1 1 0 X X X X X X X X
4
1 1 1 1 1 X X X X X X X X
5

1
3.- Mapas de Karnaugh
Los mapas de Karnaugh de las entradas de los biestables son:

(IMPORTANTE: HAY QUE INDICAR QUÉ AGRUPACIÓN SE CORRESPONDE


CON QUÉ TÉRMINO, TAL COMO SE MUESTRA LOS MAPAS DEL EJEMPLO)

Ta= B´C´D

Tb = B + A´D´ + AD

Dc = BC´+ B´CD + A´C´D´

2
Dd = CD´ + AD´ + B´C + BC´D

3
4.- Circuito del contador implementado
A continuación, se muestra el circuito del contador que se ha implementado:

4
5.- Código VHDL del contador
En este apartado se muestra el código VHDL del contador implementado:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity contador90 is
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
ce : in STD_LOGIC;
count : out STD_LOGIC_VECTOR (3 downto 0));
end contador90;

architecture Behavioral of contador90 is

COMPONENT ffT_reset
PORT(
reset : IN std_logic;
clk : IN std_logic;
ce : IN std_logic;
t : IN std_logic;
q : OUT std_logic
);
END COMPONENT;

COMPONENT ffT_preset
PORT(
preset : IN std_logic;
clk : IN std_logic;
ce : IN std_logic;
t : IN std_logic;
q : OUT std_logic
);
END COMPONENT;

COMPONENT ffD_preset
PORT(
clk : IN std_logic;
preset : IN std_logic;
ce : IN std_logic;
d : IN std_logic;
q : OUT std_logic

5
);
END COMPONENT;

signal qa, qb, qc, qd : std_logic;


signal ta, tb, dc, dd : std_logic;

begin

unit_A: ffT_reset PORT MAP(


reset => reset,
clk => clk,
ce => ce,
t => ta,
q => qa
);

unit_B: ffT_preset PORT MAP(


preset => reset,
clk => clk,
ce => ce,
t => tb,
q => qb
);

unit_C: ffD_preset PORT MAP(


clk => clk,
preset => reset,
ce => ce,
d => dc,
q => qc
);

unit_D: ffD_preset PORT MAP(


clk => clk,
preset => reset,
ce => ce,
d => dd,
q => qd
);

dd <= (not qb and qc) or (qc and not qd) or (qa and
not qd) or (qb and not qc and qd);
dc <= (qb and not qc) or (not qa and not qc and not
qd) or (not qb and qc and qd);
tb <= qb or (not qa and not qd) or (qa and qd);
ta <= not qb and not qc and qd;

count <= qa & qb & qc & qd;

end Behavioral;

6
6.- Cronograma de simulación
A continuación, se muestra el cronograma de simulación del sistema implementado con
las salidas del contador y del decodificador de 7 segmentos.

Se aprecia que los resultados son consistentes con la secuencia que aparece en la tabla
del apartado 1.

7.- Enlace Video

https://drive.google.com/file/d/19LwTQ1J29o9mQUSn2kEBYjvQCI_-uKH-/
view?usp=sharing

También podría gustarte