/*banco de pruebas para el biestable JK
En este archivo se describe un banco de pruebas que permite realizar un test
al flipflop JK*/
`timescale 1ns / 1ps //escala de tiempo de 1 ns con precisión de 1 ps
`define BTIME 10 //tiempo base para controlar el paso de simulación
module jk_tb; //nombre del módulo referente a test bench para el biestable JK
//entradas
reg clk = 0;		// reloj
reg j = 0;		// entrada puesta a 1
reg k = 0;		// entrada puesta a 0
//salidas	
wire q;	
//Reloj con periodo de 2*BITIME ns

always
#`BTIME clk=~clk;

//instanciar el biestable a testear

jk_flip_flop uut_jk(
      .clk (clk),
      .j(j),                 
      .k(k),
      .q(q));

//Generamos salida en formato texto
initial
begin
$display (" time ck j k q" );
$monitor ("%d %b %b %b %b", $stime,clk,j,k,q); 

// Realizamos cambios en j y k para realizar la simulación

#(2*`BTIME) j=0; k=1;
#(2*`BTIME) j=1; k=1;
#(10*`BTIME) j=0; k=0;
#(4*`BTIME) j=1; k=0;
#(2*`BTIME) $finish;
end
endmodule
