Tutorial VHDL 16: Projete um flip-flop D usando VHDL

Tutorial VHDL 16: Diseñe un flip-flop D usando VHDL

Nota: Se recomienda seguir esta serie de tutoriales de VHDL en orden, comenzando con el primer tutorial .

En el tutorial anterior diseñamos circuitos de pestillo SR sincronizados usando VHDL (que es un lenguaje de descripción de hardware de circuito integrado de muy alta velocidad).

Para este proyecto, haremos:

  • Escriba un programa VHDL para construir un circuito flip-flop D
  • Verifique la forma de onda de salida del programa (circuito digital) con la tabla de verdad de este circuito flip-flop.

El circuito flip-flop D

Mesa de la verdad

Ahora escribamos, compilemos y simulemos un programa VHDL. Luego obtendremos la salida de la forma de onda y la verificaremos con la tabla de verdad proporcionada.

Antes de comenzar, asegúrese de revisar el procedimiento paso a paso proporcionado en el Tutorial VHDL – 3 para diseñar adecuadamente el proyecto, así como editar y compilar el programa y el archivo de forma de onda, incluido el resultado final.

Para este tutorial, utilizamos un estilo de modelado de comportamiento para escribir el programa VHDL que construirá el circuito flip-flop. Este es el estilo de modelado preferido para circuitos digitales secuenciales.

Programa VHDL

biblioteca ieee;
utilice ieee.std_logic_1164.all;
entidad D_flip_flop es
puerto (clk,Din: en std_logic;
P: fuera std_logic;
Qnot: fuera std_logic);
finalizar D_flip_flop;
La arquitectura DFF_arch de D_flip_flop es
para comenzar
proceso (clk,Din)
para comenzar
si(clk'event y clk='1′) entonces
Q <= Ruido;
Qnot <= (no Din);
terminara si;
fin del proceso;
finalizar DFF_arch;

Para refrescar su memoria sobre cómo funciona esto, lea los dos primeros tutoriales de VHDL ( 1 y 2 ) de esta serie.

A continuación, compile el programa anterior, cree un archivo de forma de onda con todas las entradas y salidas necesarias enumeradas y simule el proyecto. Deberías obtener el siguiente resultado...

Forma de onda de simulación

Como se muestra en esta figura, hay dos casos resaltados en rojo y azul.

  • Caso 1: cuando clk=1 y Din=1 -> Q = 1 y Qnot = 0
  • Caso 2: cuando clk=1 y Din = 0 -> Q=0 y Qnot = 1

Este programa para el circuito flip-flop D parece bastante simple. Así que compliquemos un poco más las cosas agregando dos señales de entrada más:

1. Restablecer: Se activa el reinicio de la entrada alta, de modo que cuando la entrada sea '1', el flip-flop se restablecerá y Q=0, Qnot=1

2. Habilitar: Habilita la entrada al circuito flip-flop, por lo que si se establece en '0', el flip-flop se deshabilitará y ambas salidas estarán en alta impedancia (donde '1' es cuando el flip-flop funciona normalmente)

Tabla de verdad para el flip-flop D

Ahora, aquí está el programa del flip-flop D con las entradas habilitadas y activas de reinicio alto.

biblioteca ieee;
utilice ieee.std_logic_1164.all;
entidad D_flip_flop es
puerto (clk,Din,rst,en: en std_logic;
P: fuera std_logic;
Qnot: fuera std_logic);
finalizar D_flip_flop;
La arquitectura DFF_arch de D_flip_flop es
para comenzar
proceso (clk,en,Din,rest)
para comenzar
si(pt='0′) entonces
Q <='z';
Qnot <= 'z';
elsif(primero='1′) entonces
Q<='0′;
Qnot <='1′;
elsif(clk'event y clk='1′) entonces
Q <= Din;
Qnot <= no Din;
terminara si;
fin del proceso;
finalizar DFF_arch;

Al compilar y simular el programa anterior, obtendrá la siguiente salida de forma de onda...

Formas de onda de simulación

Como se muestra en esta figura, hay tres casos resaltados en rojo, azul y verde.

  • Caso 1: Cuando en = 0, ambas salidas Q y Qnot son de alta impedancia (z)
  • Caso 2: cuando en=1 y rst=1 -> Q=0 y Qnot=1 (el flip-flop se reinicia)
  • Caso 3: cuando en=1, rst=0 y Din=1 -> Q=1 y Qnot=0

En el próximo tutorial construiremos un circuito flip-flop JK usando VHDL.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.