Está en la página 1de 6

Laboratorio 7.

Flip - flops tipo D

Introducción: Los flip-flops tipo D son elementos de memoria que pueden


almacenar información en forma de Bits, y que pueden cambiar en función de una
señal de reloj.

Para este laboratorio usted simulara un Flip-Flop tipo D con señal de habilitación y
señal de reset. Para ello siga las siguientes instrucciones:

 La señal de clk, tiene un periodo de 40 ns. De ese tiempo, solo 10


segundos esta en estado alto.
 La señal de reset, solo esta activa entre 10 y 30 ns.
 La señal de habilitación esta activa todo el tiempo de la simulación.
 La señal D tiene un periodo de 50 ns. De ese tiempo, esta en estado alto el
50%.

Este laboratorio tiene como propósito simular este dispositivo usando un código en
lenguaje VHDL y caracterizar su comportamiento. Siga las siguientes
instrucciones:

a. Genere las ondas digitales clk, reset, ena y D con las instrucciones dadas
por el docente. Usted puede guiarse del codigo que esta al final de este
documento, pero debe editarlo para que las entradas cumplan las
condiciones específicas mencionadas en este documento.
b. Describa que función tienen las señales, clk, reset, ena y D en el Flip –
Flop.
c. Muestre la salida Q, y describa sus cambios, de acuerdo con el
funcionamiento del Flip – Flop y las señales de entrada. (simular hasta 200
ns)

La actividad debe ser presentada en los grupos de laboratorio a más tardar el


día 18 de mayo por el enlace del aula extendida en el formato establecido.
Después de esa fecha se recibirá la actividad máximo hasta el 20 de mayo con
penalización por la entrega tardía y posteriormente no se recibirá.

--TestBench

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity Simulacion is

--

end Simulacion;

architecture Behavioral of Simulacion is

component flipflopD

Port ( clk: in STD_LOGIC;

reset : in STD_LOGIC;
D : in STD_LOGIC;

ena : in STD_LOGIC;

Q : out STD_LOGIC

);

end component;

-- Señales de las entradas

signal clksig : STD_LOGIC:= '0';

signal resetsig : STD_LOGIC:= '0';

signal Dsig : STD_LOGIC:= '0';

signal enasig : STD_LOGIC:= '0';

-- Señales de salidas

signal Qsig : STD_LOGIC;

constant clk_periodo: time:= 40 ns;

begin

UO: flipflopD Port map (

clk => clksig,

reset => resetsig,

D => Dsig,
ena => enasig,

Q=> Qsig

);

process begin --simulated clock signal

clksig<='1';

wait for clk_periodo/4;

clksig<='0';

wait for 3*clk_periodo/4;

end process;

process begin

enasig <='1';

Dsig <= '0';

wait for 10 ns;

Dsig <= '1';

wait for 5 ns;

Dsig <= '0';

wait for 15 ns;


Dsig <= '1';

wait for 5 ns;

resetsig<='1';

wait;

end process;

end Behavioral;

design.vhd

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.numeric_std.all;

use IEEE.std_logic_unsigned.all;

entity flipflopd is

Port ( clk: in STD_LOGIC;

reset : in STD_LOGIC;

D : in STD_LOGIC;

ena : in STD_LOGIC;

Q : out STD_LOGIC
);

end flipflopD ;

architecture Behavioral of flipflopd is

begin

process (clk)

begin

if clk'event and clk='1' then

if reset='1' then

Q <= '0';

elsif ena='1' then

Q<=D;

end if;

end if;

end process;

end Behavioral;

También podría gustarte