T触发器: 输入是1,输出翻转; 输入是0,输出保持;

两个这种T触发器串联起来,第一个的输出作为第二个的输入。

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
    
   // 1. 复位
    //2. T触发器,D触发器
//*************code***********//
    reg q1;
    always @ (posedge clk or negedge rst)
        begin
            if(!rst) begin
                q1 <= 1'b0;
            end 
            else begin
                if( data )
                    q1 <= ~q1;
                else 
                    q1 <= q1;
            end 
        end 
    
        always @ (posedge clk or negedge rst)
        begin
            if(!rst) begin
                q <= 1'b0;
            end 
            else begin
                if( q1 )
                    q <= ~q;
                else 
                    q <= q;
            end 
        end 

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