中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 全面剖析數(shù)字電路中的復位設(shè)計

        全面剖析數(shù)字電路中的復位設(shè)計

        作者: 時間:2014-06-05 來源:網(wǎng)絡(luò) 收藏

        4. 解決方案

        本文引用地址:http://www.antipu.com.cn/article/247850.htm

        * 在合成過程中在路徑保留多路復用結(jié)構(gòu),因為多路復用結(jié)構(gòu)與其他組合邏輯相比易于產(chǎn)生干擾。MUX Pragma可以在編碼RTL時使用,這將有助于合成工具在路徑中保留任何多路復用器。

        設(shè)計中的同步問題

        1. 問題(I)

        在許多地方,設(shè)計人員在時鐘方面喜歡同步復位設(shè)計。原因可能是為了節(jié)省一些芯片面積(帶有異步復位輸入的觸發(fā)器比任何不可復位觸發(fā)器都大)或讓系統(tǒng)與時鐘完全同步,也可能有一些其他原因。對于此類設(shè)計,當復位源被斷言時需要向設(shè)計的觸發(fā)器提供時鐘,否則,這些觸發(fā)器可能會在一段時間內(nèi)都不進行初始化。但當該模塊被插入一個系統(tǒng)時,系統(tǒng)設(shè)計人員可能選擇在復位階段禁用其時鐘(如果在一開始不需要激活該模塊),以節(jié)省整個系統(tǒng)的動態(tài)功耗。因此,該模塊甚至在復位去斷言后一段時間內(nèi)都不進行初始化。如果該模塊的任何輸出直接在系統(tǒng)中使用,那么將捕獲未初始化和未知的值(X),這可能會導致系統(tǒng)功能故障。

         

         

        圖9:同步復位問題時序圖

        2. 解決方案

        在復位階段啟用該模塊的時鐘且持續(xù)最短的時間,使該模塊內(nèi)的所有觸發(fā)器都在復位過程中被初始化。 當系統(tǒng)復位被去斷言時,模塊輸出不會有任何未初始化的值。

         

         

        圖10:同步復位問題已解決

        3. 問題(II)

        在時鐘域交叉路徑使用兩個觸發(fā)同步器是常見做法。然而,有時設(shè)計人員對這些觸發(fā)器使用同步復位。相同的RTL代碼是

        always @(posedge clk )

        if(!sync_rst_b) begin

        sync1 <= 1‘b0; sync2 <= 1’b0 ;

        end

        else begin

        sync1 <= async_in; sync2 <= sync1

        end

        在硬件中進行了RTL合成后,上面的代碼會在雙觸發(fā)器同步器的同步鏈中引入組合邏輯,這會帶來風險,并縮短sync2觸發(fā)器輸入進入亞穩(wěn)態(tài)的時間。

         

         

        圖11:同步復位問題2

        4. 解決方案

        可用以下方式編寫RTL代碼,以避免同步鏈的組合邏輯。

        always @(posedge clk )

        if(!sync_rst_b) begin

        sync1 <= 1‘b0;

        end

        else begin

        sync1 <= async_in; sync2 <= sync1

        end

        在上面的代碼中,對sync2觸發(fā)器不使用復位,因此在同步鏈中不會實現(xiàn)組合信元。然而,需要注意sync2需要一個額外的周期才能復位,這不應導致設(shè)計出現(xiàn)任何問題。

        冗余復位同步器引起的問題

        1. 問題

        在使用多個異步時鐘的設(shè)計中,設(shè)計人員需要確保在目標寄存器使用的時鐘方面,異步復位的同步去斷言,否則可能導致目標觸發(fā)器發(fā)生時序違反,從而產(chǎn)生亞穩(wěn)態(tài)。復位同步器被用來復位去斷言,與目標時鐘域同步。然而,只有在系統(tǒng)復位去斷言過程中有目標時鐘時才會發(fā)生復位去斷言時序違反。如果在復位去斷言時沒有時鐘,那么便不會有任何時序違反。因此,在設(shè)計多時鐘域模塊時,設(shè)計人員可以讓編譯時間選項繞過該模塊中的那些復位同步器,并讓系統(tǒng)集成商根據(jù)對該模塊的時鐘可用性決定是否需要使用復位同步器。

        此外,如果系統(tǒng)時鐘和異步時鐘比非常高,冗余同步器甚至會造成設(shè)計功能性問題。下面描述了這個問題。

         

         

        圖12:冗余同步器的問題

        在上面的設(shè)計中,去斷言與sys clk同步的系統(tǒng)復位被饋送到(mod_clk域)的復位同步器,然后在mod_clk域邏輯中使用該復位。讓我們假定sys clk : mod_clk的時鐘頻率比大于6:1.默認不啟用mod_clk,以節(jié)省動態(tài)功率。當用戶想要啟用mod_clk域邏輯的功能時,便啟用該時鐘。在啟用了該時鐘后,有兩個mod_clk周期的延遲,其中,由于復位同步器導致整個mod_clk域邏輯都處于復位狀態(tài)。在該階段,如果一些數(shù)據(jù)交易從sys clk域開始,將在mod_clk域丟失。

        2. 解決方案

        雖然這不是大問題,但有時會在客戶一端造成混淆,因為該延遲對客戶不可見。 因此消除混淆的更好的方式是:

        * 如果在全局復位去斷言過程中沒有時鐘,則在設(shè)計中繞過/刪除冗余復位同步器。 這當然會節(jié)省一定的門控數(shù)。

        * 如果動態(tài)功耗不是問題,用戶可以在mod_clk域邏輯開始運作之前很長時間在啟動代碼選擇啟用mod_clk. 因此,復位去斷言將有足夠的時間傳播。

        * 這也可以在軟件中處理,在任何有效操作之前啟用了mod_clk后,設(shè)置兩三個mod_clk周期的延遲。

        由于罕見的時鐘路徑導致復位去斷言時序問題

        1. 問題

        設(shè)計的復位架構(gòu)根據(jù)系統(tǒng)而不同。在一些安全關(guān)鍵設(shè)備中,整個復位狀態(tài)機在安全時鐘上工作,安全時鐘默認啟用。 該時鐘也被用作設(shè)備的默認系統(tǒng)時鐘。

         

         

        圖13:罕見時鐘路徑的問題

        在上圖中,復位狀態(tài)機(R觸發(fā)器)在default_clk上工作。此外,在復位去斷言過程中,default_clk是sys clk的源。因此,在邏輯上,這兩個時鐘(clk1和clk2)在復位去斷言過程中同步。但是,由于clk1和clk2之間存在巨大的罕見路徑,因此很難平衡這兩個時鐘并視其為同步。 因此,滿足A觸發(fā)器的復位去斷言變得具有挑戰(zhàn)性。

        2. 解決方案

        異步對待clk1和clk2,并在A觸發(fā)器中使用復位之前放置復位同步器?,F(xiàn)在需要從S2--》A滿足復位去斷言時序(見圖14)。這不應是個問題。

         

         

        圖14:解決方案

        結(jié)束語

        這部分主要專注于復位設(shè)計中的故障以及克服這些問題的可能的解決方案。然而,上述解決方案并非唯一的解決方案,也不普遍適用于所有設(shè)計。這些是一些通用的解決方案和建議的指導方針,在特殊情況下可能需要進行修改。在這些情況下,此類問題不僅導致功能故障,還會增加一些額外的調(diào)試時間和工作,從而增加執(zhí)行周期時間。因此,設(shè)計人員需要在設(shè)計的早期階段考慮此類問題。

        數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理

        上一頁 1 2 下一頁

        關(guān)鍵詞: SoC 復位

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉