<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                同步復位:就是指復位信號只有在時鐘上升沿到來時,才能有效,否則,無法完成對系統的復位工作。 ~~~verilog module sync_rst( input clk_i, input rst_n, input din, output reg dout ); always @(posedge clk_i) begin if(!rst_n) dout <= 0; else dout <= din; end endmodule ~~~ ![](https://img.kancloud.cn/fa/9a/fa9a63388af3b1c5f9a1f1d501836fa3_342x120.png) 異步復位:無論時鐘是否到來,主要復位信號有效,就對系統進行復位。 ~~~verilog //Asynchronous Reset module async_rst( input clk_i, input rst_n, input din, output reg dout ); always @(posedge clk_i or negedge rst_n) begin if(!rst_n) dout <= 0; else dout <= din; end endmodule ~~~ ![](https://img.kancloud.cn/c6/4e/c64ed77d5270f44a30bcc55b36fc91b9_272x136.png) ## **同步復位異步復位優缺點比較** **同步復位的優點:** * 一般能夠確保電路是百分之百同步的。 * 確保復位只發生在有效時鐘沿,可以作為過濾掉毛刺的手段。 **同步復位的缺點:** * 復位信號的有效時長必須大于時鐘周期,才能真正被系統識別并完成復位。同時還要考慮如:時鐘偏移、組合邏輯路徑延時、復位延時等因素。 * 由于大多數的廠商目標庫內的觸發器都只有異步復位端口,采用同步復位的話,就會耗費較多的邏輯資源。 **異步復位優點:** * 異步復位信號識別方便,而且可以很方便的使用全局復位。 * 由于大多數的廠商目標庫內的觸發器都有異步復位端口,可以節約邏輯資源。 **異步復位缺點:** * 復位信號容易受到毛刺的影響。 * 復位結束時刻恰在亞穩態窗口內時,無法決定現在的復位狀態是1還是0,會導致亞穩態。 ## **異步復位同步釋放** 使用異步復位同步釋放就可以消除上述缺點。所謂異步復位,同步釋放就是在復位信號到來的時候不受時鐘信號的同步,而是在復位信號釋放的時候受到時鐘信號的同步。異步復位同步釋放的原理圖和代碼如下: ~~~verilog 1//Synchronized Asynchronous Reset 2 module sync_async_reset ( input clock, input reset_n, input data_a, input data_b, output out_a, output out_b ); reg reg1, reg2; reg reg3, reg4; assign out_a = reg1; assign out_b = reg2; assign rst_n = reg4; always @ (posedge clock, negedge reset_n) begin if (!reset_n) begin reg3 <= 1'b0; reg4 <= 1'b0; end else begin reg3 <= 1'b1; reg4 <= reg3; end end always @ (posedge clock, negedge rst_n) begin if (!rst_n) begin reg1 <= 1'b0; reg2 <= 1'b0; end else begin reg1 <= data_a; reg2 <= data_b; end end endmodule ~~~ ![](https://img.kancloud.cn/75/6d/756dc128819c3feb8687660c727ce01f_789x469.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看