【问题标题】:T-flip flop in VerilogVerilog 中的 T 型触发器
【发布时间】:2017-03-26 01:19:43
【问题描述】:

我想在 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 型触发器:

【问题讨论】:

    标签: verilog flip-flop


    【解决方案1】:

    我认为有几个改进范围。

    • reset 信号不存在,这是初始化 FF 所必需的。
    • 始终对顺序逻辑使用非阻塞赋值,对组合逻辑使用阻塞。

    这是您的代码。

    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
    

    【讨论】:

    • 谢谢。您能否为信号从 Q1 = 0 和 Q0 = 0 开始的标度 T 编写代码?我是初学者,我的老师认为有些东西是给定的,我只能通过观察来学习。
    • 您可以在reset块中添加所有信号及其起始值(if语句lf always block)
    • 但是我在case或if里面写什么?我有点失落。我真的需要帮助。我从未在 Verilog 中看到过 T-scale 的代码。我从头开始。
    • T 比例是什么意思?如果你从verilog基础开始,然后写这段代码会更好。
    • T 比例 = T 触发器。我英语说得不太好,但我总是努力学习。我把触发器T的代码附在帖子上。请您检查一下代码是否正确?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2019-04-14
    • 1970-01-01
    相关资源
    最近更新 更多