题解 | 异步复位的串联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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务