题解 | 异步复位的串联T触发器
`timescale 1ns/1ns module Tff_2 ( input wire data, clk, rst, output reg q ); //*************code***********// reg q1; always@(posedge clk or negedge rst) if(!rst) begin q <= 1'b0 ; end else if (q1) begin q <= ~q ; end always@(posedge clk or negedge rst) if(!rst) begin q1 <= 1'b0 ; end else if (data) begin q1 <= ~q1 ; end //*************code***********// endmodule
T触发器:输入为1时,输出数据取反;
亦可模块化;(修改q为wire型)
`timescale 1ns/1ns module Tff_2 ( input wire data, clk, rst, output wire q ); //*************code***********// wire q1; tt t1( .clk(clk), .rst(rst), .t(data), .q(q1) ); tt t2( .clk(clk), .rst(rst), .t(q1), .q(q) ); //*************code***********// endmodule module tt( input wire clk,rst,t, output reg q ); always@(posedge clk or negedge rst) if(!rst) begin q <= 1'b0 ; end else if (t) begin q <= ~q ; end endmodule