新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)

復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)

作者: 時(shí)間:2013-11-16 來(lái)源:網(wǎng)絡(luò) 收藏
px/25px 宋體, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align=center>  圖11:同步復(fù)位問(wèn)題2

  4. 解決方案

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

  always @(posedge clk )

  if(!sync_rst_b) begin

  sync1 = 1‘b0;

  end

  else begin

  sync1 = async_in; sync2 = sync1

  end

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

冗余復(fù)位同步器引起的問(wèn)題

  1. 問(wèn)題

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

  此外,如果系統(tǒng)時(shí)鐘和異步時(shí)鐘比非常高,冗余同步器甚至?xí)斐稍O(shè)計(jì)功能性問(wèn)題。下面描述了這個(gè)問(wèn)題。

  復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)

  圖12:冗余同步器的問(wèn)題

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

  2. 解決方案

  雖然這不是大問(wèn)題,但有時(shí)會(huì)在客戶一端造成混淆,因?yàn)樵撗舆t對(duì)客戶不可見(jiàn)。 因此消除混淆的更好的方式是:

  * 如果在全局復(fù)位去



評(píng)論


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

關(guān)閉