`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则输出保持;很简单的原理,我却搞了一晚上,有点烦,原因居然是非阻塞赋值写成了阻塞赋值,真是牛啊,我甚至找了代码一个个比对。细节决定成败啊