T-flip flop en Verilog

0

Quiero crear un flip-flop en T de Verilog. Hasta ahora he escrito el siguiente código, pero me gustaría que pudieran ver si es correcto, por favor. La máquina que estaba usando para hacer el código está en la imagen.

module flopJK(q,j,k,c);
 input j,k,c;
 output q;
 reg q;
 always @(posedge c)
 begin
  case ({j,k})
   {1'b0,1'b0}:begin q=q; end
   {1'b0,1'b1}:begin q=1'b0; end
   {1'b1, 1'b0}:begin q=1'b1; end
   {1'b1, 1'b1}:begin q=~q; end
  endcase
 end
endmodule
    
pregunta Carmen González

2 respuestas

1

Para responder a la pregunta, debe hacer un banco de pruebas y conectar su módulo a testbech y luego ver cómo funciona o no. Tu código parece correcto

    
respondido por el Roman
1

Tu título y tu pregunta se refieren a un flip flop T, pero luego publicas el código para un JKFF.

Si bien se puede crear un TFF a partir de un JKFF (al unir las entradas), puede lograr un TFF con un código mucho más simple:

module tff_sync_reset (
    data, clk, reset, q
);
 input data, clk, reset; 
 output q;
 reg q;

 always @ ( posedge clk)
 if (~reset) begin
     q <= 1'b0;
 end else if (data) begin
     q <= !q;
 end

 endmodule
    
respondido por el Blair Fonville

Lea otras preguntas en las etiquetas