题解 | 异步复位的串联T触发器

异步复位的串联T触发器

https://www.nowcoder.com/practice/9c8cb743919d405b9dac28eadecddfb5

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
//*************code***********//
wire q_temp,qout;
Tff_1 tff1(.t(data),.clk(clk),.rst(rst),.q(q_temp));
Tff_1 tff2(.t(q_temp),.clk(clk),.rst(rst),.q(qout));

always @(*) begin
    q=qout;
end


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

module Tff_1(
    input wire t,clk,rst,
    output reg q
);

always@(rst) begin
    if(!rst) begin
        assign q=0;
    end
    else deassign q;
end
always@(posedge clk) begin
    if(t) begin
        q<=~q;
    end
    else begin
        q<=q;
    end
end

endmodule

注意及时释放deassign q,不然会因为连续赋值始终为0

如果没clk触发reg,那么普通的reg在always块中的幅值需要用阻塞型=赋值

全部评论

相关推荐

09-19 12:15
门头沟学院 Java
猫头夜鹰:请问收到意向要点接受拒绝吗,还是开奖之后再接受拒绝
点赞 评论 收藏
分享
驼瑞驰_招募评论官版...:把对方打入公司库是吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务