Verilog中的T触发器

时间:2017-03-26 01:19:44

标签: verilog flip-flop

我想在Verilog中构建一个T触发器。到目前为止,我已经编写了以下代码,但我希望他们能够看到它是否正确。我用来制作代码的机器在图像中。

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

Verilog中的T触发器: enter image description here

1 个答案:

答案 0 :(得分:1)

我认为有几个改进范围。

  • module flopJK (q,j,k,c, r); input j,k,c, r; output q; reg q; always @(posedge c, negedge r) begin if (r != 1) q <= 1'b0; else 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 end endmodule 信号不存在,这是初始化FF所必需的。
  • 始终对顺序逻辑使用非阻塞分配,对组合逻辑使用阻塞。

这是你的代码。

fp-auto-height