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

异步复位的串联T触发器

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

Verilog Tips
纯组合always程序块中的语句强烈推荐只使用阻塞赋值符号,而时序always程序块中推荐只使用非阻塞赋值符号,否则会带来非常多的隐患。
Verilog Code

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
//*************code***********//
    reg tmp;
    always @(posedge clk or negedge rst)
        begin
            if(~rst)
                begin
                    tmp<=0;
                end
            else if(data)
                begin
                    tmp<=~tmp;
                end
            else
                begin
                    tmp<=tmp;
                end
        end
    always @(posedge clk or negedge rst)
        begin
            if(~rst)
                begin
                    q<=0;
                end
            else if(tmp)
                begin
                    q<=~q;
                end
            else
                begin
                    q<=q;
                end
        end 
//*************code***********//
endmodule

Testbench Code

`timescale 1ns/1ns
module testbench();
	reg clk=0;
	always #5 clk = ~clk;  // Create clock with period=10
// A testbench
    reg data=0,rst=0;
    initial begin
        #10 rst = 1;
        #210 $finish;
    end
    always
        begin
            #60 data = ~data;
        end
//end    
    initial begin
        $dumpfile("out.vcd");
        $dumpvars(0, testbench);
    end  
    Tff_2 test(.data(data),
               .clk(clk),
               .rst(rst),
               .q(q));
endmodule
全部评论
牛客网这个测试仿真时间最多显示到99,兄弟这个有什么解决办法不
点赞 回复 分享
发布于 2023-03-27 20:23 四川

相关推荐

不愿透露姓名的神秘牛友
07-07 13:46
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

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