<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

全面剖析數字電路中的復位設計

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

4. 解決方案

本文引用地址:http://dyxdggzs.com/article/247850.htm

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

設計中的同步問(wèn)題

1. 問(wèn)題(I)

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

 

 

圖9:同步復位問(wèn)題時(shí)序圖

2. 解決方案

在復位階段啟用該模塊的時(shí)鐘且持續最短的時(shí)間,使該模塊內的所有觸發(fā)器都在復位過(guò)程中被初始化。 當系統復位被去斷言時(shí),模塊輸出不會(huì )有任何未初始化的值。

 

 

圖10:同步復位問(wèn)題已解決

3. 問(wèn)題(II)

在時(shí)鐘域交叉路徑使用兩個(gè)觸發(fā)同步器是常見(jiàn)做法。然而,有時(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

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

 

 

圖11:同步復位問(wèn)題2

4. 解決方案

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

always @(posedge clk )

if(!sync_rst_b) begin

sync1 <= 1‘b0;

end

else begin

sync1 <= async_in; sync2 <= sync1

end

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

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

1. 問(wèn)題

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

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

 

 

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

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

2. 解決方案

雖然這不是大問(wèn)題,但有時(shí)會(huì )在客戶(hù)一端造成混淆,因為該延遲對客戶(hù)不可見(jiàn)。 因此消除混淆的更好的方式是:

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

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

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

由于罕見(jiàn)的時(shí)鐘路徑導致復位去斷言時(shí)序問(wèn)題

1. 問(wèn)題

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

 

 

圖13:罕見(jiàn)時(shí)鐘路徑的問(wèn)題

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

2. 解決方案

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

 

 

圖14:解決方案

結束語(yǔ)

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

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

上一頁(yè) 1 2 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>