filp 同步复位 异步复位

本文对比了同步复位和异步复位在模块filp中的实现,通过示例代码探讨了它们在时钟周期内的行为差异。同步复位在特定posedge触发下确保初始化,而异步复位则不受时钟限制。测试bench中展示了复位信号的切换如何影响模块输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同步复位

module filp

input wire sys_clk;
input wire sys_rst;
input wire in;
output reg out;

always@(posedge sys_clk)//同步复位
    if(sys_rst == 1'b0)
        out <= 1'b0;
    else(sys_rst == 1'b1)
        out <= in;
endmodule

异步复位

module filp

input wire sys_clk;
input wire sys_rst;
input wire in;
output reg out;

always@(posedge sys_clk or negedge)//同步复位
    if(sys_rst == 1'b0)
        out <= 1'b0;
    else(sys_rst == 1'b1)
        out <= in;
endmodule

tb

`timescale 1ns/1ns
module tb_filp();

reg sys_clk;
reg sys_rst;
reg in;
wire out;

initial 
    begin
        sys_clk <= 1'b1;
        sys_rst <= 1'b0;
        in <= 1'b0;
        #20
        sys_rst <= 1'b1;
        #210
        sys_rst <= 1'b0;
        #40
        sys_rst <= 1'b1;
    end

always #10 sys_clk <= ~sys_clk;
always in <= {$random}%2;

filp filp_inst
(
    .sys_clk(sys_clk),
    .sys_rst(sys_rst),
    .in(in),
    .out(out)
);

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值