新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 異步復位,同步釋放的方式,而且復位信號低電平有效

        異步復位,同步釋放的方式,而且復位信號低電平有效

        作者: 時間:2017-10-13 來源:網絡 收藏

        一、特點:

        同步復位:顧名思義,同步復位就是指復位信號只有在時鐘上升沿到來時,才能有效。否則,無法完成對系統的復位工作。用Verilog描述如下:
        always @ (posedge clk) begin
        if (!Rst_n)
        ...
        end
        :它是指無論時鐘沿是否到來,只要復位信號有效,就對系統進行復位。用Verilog描述如下:
        always @ (posedge clk,negedge Rst_n) begin
        if (!Rst_n)
        ...
        end

        本文引用地址:http://www.104case.com/article/201710/365654.htm

        二、各自的優缺點:

        1、總的來說,同步復位的優點大概有3條:
        a、有利于仿真器的仿真。
        b、可以使所設計的系統成為100%的同步時序電路,這便大大有利于時序分析,而且綜合出來的fmax一般較高。
        c、因為他只有在時鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的毛刺。
        他的缺點也有不少,主要有以下幾條:
        a、復位信號的有效時長必須大于時鐘周期,才能真正被系統識別并完成復位任務。同時還要考慮,諸如:clk skew,組合邏輯路徑延時,復位延時等因素。
        b、由于大多數的邏輯器件的目標庫內的DFF都只有端口,所以,倘若采用同步復位的話,綜合器就會在寄存器的數據輸入端口插入組合邏輯,這樣就會耗費較多的邏輯資源。
        2、對于來說,他的優點也有三條,都是相對應的:
        a、大多數目標器件庫的dff都有異步復位端口,因此采用異步復位可以節省資源。
        b、設計相對簡單。
        c、異步復位信號識別方便,而且可以很方便的使用FPGA的全局復位端口GSR。
        缺點:
        a、在復位信號釋放(release)的時候容易出現問題。具體就是說:倘若復位釋放時恰恰在時鐘有效沿附近,就很容易使寄存器輸出出現亞穩態,從而導致亞穩態。
        b、復位信號容易受到毛刺的影響。

        三、總結:

        所以說,一般都推薦使用異步復位,同步釋放的方式,而且復位信號有效。這樣就可以兩全其美了。

        always @(posedge clk or negedge rst_n)

        if(!rst_n) b = 1b0;

        else b = a;

        我們可以看到FPGA的寄存器都有一個異步的清零端(CLR),在異步復位的設計中這個端口一般就是接有效的復位信號rst_n。即使說你的設計中是高電平復位,那么實際綜合后會把你的復位信號反向后接這個CLR端。

        一個簡單的異步復位的例子

        always @ (posedge clk or negedge rst_n)

        if(!rst_n) b = 1b0;

        else b = a;

        我們可以看到FPGA的寄存器都有一個異步的清零端(CLR),在異步復位的設計中這個端口一般就是接有效的復位信號rst_n。即使說你的設計中是高電平復位,那么實際綜合后會把你的復位信號反向后接這個CLR端。

        一個簡單的同步復位的例子

        always @ (posedge clk)

        if(!rst_n) b = 1b0;

        else b = a;

        和異步復位相比,同步復位沒有用上寄存器的CLR端口,綜合出來的實際電路只是把復位信號rst_n作為了輸入邏輯的使能信號。那么,這樣的同步復位勢必會額外增加FPGA內部的資源消耗。

        那么同步復位和異步復位到底孰優孰劣呢?

        只能說,各有優缺點。同步復位的好在于它只在時鐘信號clk的上升沿觸發進行系統是否復位的判斷,這降低了亞穩態出現的概率;它的不好上面也說了,在于它需要消耗更多的器件資源,這是我們不希望看到的。FPGA的寄存器有支持異步復位專用的端口,采用異步復位的端口無需額外增加器件資源的消耗,但是異步復位也存在著隱患,特權同學過去從沒有意識到也沒有見識過。異步時鐘域的亞穩態問題同樣的存在與異步復位信號和系統時鐘信號之間。

        再看下面一個兩級寄存器異步復位的例子

        always @ (posedge clk or negedge rst_n)

        if(!rst_n) b = 1b0;

        else b = a;

        always @ (posedge clk or negedge rst_n)

        if(!rst_n) c = 1b0;

        else c = b;

        如此一來,既解決了同步復位的資源消耗問題,也解決了異步復位的亞穩態問題。其根本思想,也是將異步信號同步化。



        關鍵詞: 異步復位 低電平

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 德庆县| 庆阳市| 萍乡市| 渭源县| 宜阳县| 靖江市| 岳阳市| 保德县| 全南县| 吴旗县| 通化县| 勃利县| 望都县| 伊金霍洛旗| 东乌| 琼结县| 林周县| 屏山县| 兴国县| 灵璧县| 高碑店市| 康保县| 布尔津县| 三穗县| 大悟县| 廊坊市| 西安市| 如东县| 沙雅县| 六安市| 南木林县| 浙江省| 开远市| 康平县| 黎川县| 田林县| 乐业县| 乐山市| 弥勒县| 韩城市| 旬阳县|