`timescale 1ns/1ns module Tff_2 ( input wire data, clk, rst, output reg q ); //*************code***********// reg reg_q; always@(posedge clk or negedge rst)begin if(!rst)begin reg_q <= 1'b0; end else begin if(data)begin reg_q <= ~reg_q; end else begin reg_q <= reg_q; end end end always@(posedge clk or negedge rst)begin if(!rst)begin q <= 1'b0; end else begin if(reg_q)begin q <= ~q; end else begin q <= q; end end end //*************code***********// endmodule
T触发器啊~T为1则输出反转,T为0则输出保持;很简单的原理,我却搞了一晚上,有点烦,原因居然是非阻塞赋值写成了阻塞赋值,真是牛啊,我甚至找了代码一个个比对。细节决定成败啊