Tutorial VHDL 17: Projete um flip-flop JK (com preset e clear) usando VHDL

Tutorial VHDL 17: Diseñe un flip-flop JK (con preset y clear) usando VHDL

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

En el tutorial anterior, VHDL Tutorial 16 , diseñamos un circuito flip-flop D usando VHDL.

Para este proyecto, haremos:

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

El flip-flop JK con un circuito claro y predefinido:

Mesa de la verdad

  • Nota 1: cuando J=1 y K=1, la salida Q siempre alterna (de 0 a 1 y de 1 a 0)
  • Nota 2: cuando J=0 y K=0, la salida Q mantiene su estado anterior

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.

Aquí. Usamos un estilo de modelado de comportamiento para escribir el programa VHDL y construir el circuito flip-flop porque es el modelo preferido para circuitos digitales secuenciales.

Programa VHDL

biblioteca ieee;
utilice ieee.std_logic_1164.all;

La entidad JK_flip_flop es
puerto (clk,J,K,prs,clr: en std_logic;
P: fuera std_logic;
Qnot: fuera std_logic);
finalizar JK_flip_flop;

La arquitectura JKFF_arch de JK_flip_flop es
señal nxt_state, prv_state: std_logic;
entrada de señal: std_logic_vector(1 a 0);
para comenzar
entrada <= J y K;
proceso(clk, prs,clr) es
para comenzar
si (clr='1′) entonces
nxt_state <= '0';
elsif (prs='1′) entonces
nxt_state <= '1';
elsif (clk'event y clk='1′) entonces
caso (entrada) es
cuando “10” => nxt_state <= '1';
cuando “01” => nxt_state <= '0';
cuando “00” => nxt_state <= prv_state;
cuando “11” => nxt_state <= no prv_state;
cuando otros => nulo;
fin del caso;
terminara si;
fin del proceso;
Q <= estado_nxt;
Qnot <= no nxt_state;
estado_prv <= estado_nxt;
finalizar JKFF_arch;

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

Luego compila el programa anterior, creando y guardando un archivo de forma de onda con todas las entradas y salidas necesarias enumeradas (y asegúrate de aplicar todas las diferentes combinaciones de entradas). Luego simule el proyecto. Deberías obtener el siguiente resultado...

Forma de onda de simulación Como se muestra en esta figura, hay tres casos resaltados en rojo, verde y azul:

  • Caso 1: cuando prs=1 -> Q = 1 y Qnot = 0 (el flip-flop está configurado)
  • Caso 2: cuando clr=1 -> Q=0 y Qnot = 1 (el flip-flop está claro)
  • Caso 3: cuando J=1, K=0 y clk=1 – > Q = 1 y Qnot = 0

Asegúrese de verificar las diferentes combinaciones de entrada y salida con la tabla de verdad proporcionada.

En el siguiente tutorial, aprenderemos cómo construir un circuito flip-flop T usando VHDL.

Regresar al blog

Deja un comentario

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