这个如果按c语言的理解好像很奇怪 sync不管移几次不还是之前的不稳定状态的值么


    reg [2:0] sync;
    always @(posedge clk) begin
        if (!rst_n)
            sync <= 3'b0;
        else
            sync <= {sync[1:0], sig_in};
    end
    wire sig_sync = sync[2];  // 同步后的信号

其实 实际电路是这样的 sig_sync并不是当时的不稳定值复制了两次 而是经过两个触发器之后的值
image.png


o_ra
6 声望4 粉丝

记录工作中碰到的问题


引用和评论

0 条评论