`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
//*************code***********//


reg  q_reg ;

always@(posedge clk or negedge rst) begin
    if(~rst)  begin
        q_reg <= 0;
        q     <= 0;
    end
    else begin
        q_reg <= data ^q_reg;
        q     <= q_reg ^  q ;
    end
end


//*************code***********//
endmodule

首先我们来分析题目, 异步复位的T 触发器,那T触发器是什么呢 ? T -flip-flop的基本原理 , T 为控制信号 , 当T=1时, 触发器输出翻转 , 当T=0时,输出保持不变 。

T 触发器的实现逻辑 , Q<=T XOR Q ;

第一级则实现TFF基础功能 , 由T控制翻转;

第二级以第一级输出作为自己的控制信号,相当于TFF的级联结构 !