




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、隨著數(shù)字化設(shè)計(jì)和SoC的日益復(fù)雜,復(fù)位架構(gòu)也變得非常復(fù)雜。在實(shí)施如此復(fù)雜的架構(gòu)時(shí),設(shè)計(jì)人員往往會(huì)犯一些低級(jí)錯(cuò)誤,這些錯(cuò)誤可能會(huì)導(dǎo)致亞穩(wěn)態(tài)、干擾或其他系統(tǒng)功能故障。本文討論了一些復(fù)位設(shè)計(jì)的基本的結(jié)構(gòu)性問(wèn)題。在每個(gè)問(wèn)題的最后,都提出了一些解決方案。復(fù)位域交叉問(wèn)題1. 問(wèn)題在一個(gè)連續(xù)設(shè)計(jì)中,如果源寄存器的異步復(fù)位不同于目標(biāo)寄存器的復(fù)位,并且在起點(diǎn)寄存器的復(fù)位斷言過(guò)程中目標(biāo)寄存器的數(shù)據(jù)輸入發(fā)生異步變化,那么該路徑將被視為異步路徑,盡管源寄存器和目標(biāo)寄存器都位于同一個(gè)時(shí)鐘域,在源寄存器的復(fù)位斷言過(guò)程中可能導(dǎo)致目標(biāo)寄存器出現(xiàn)亞穩(wěn)態(tài)。這被稱為復(fù)位域交叉,其中啟動(dòng)和捕捉觸發(fā)的復(fù)位是不同的。在這種情況下,C寄存
2、器和A寄存器的起點(diǎn)異步復(fù)位斷言是不同的。在C寄存器復(fù)位斷言過(guò)程中而A觸發(fā)器沒(méi)有復(fù)位,如果A寄存器的輸入端有一些有效數(shù)據(jù)交易,那么C寄存器的起點(diǎn)異步復(fù)位斷言引起的異步變更可能導(dǎo)致目標(biāo)A寄存器發(fā)生時(shí)序違規(guī),從而可能產(chǎn)生亞穩(wěn)態(tài)。 圖1:復(fù)位域交叉問(wèn)題在上面的時(shí)序圖中,當(dāng)有一些有效數(shù)據(jù)交易通過(guò)C1進(jìn)行時(shí),rst_c_b獲得斷言,導(dǎo)致C1發(fā)生異步改變,w.r.t clk從而使QC1進(jìn)入亞穩(wěn)態(tài),這可能導(dǎo)致設(shè)計(jì)發(fā)生功能故障。2. 解決方案* 使用異步復(fù)位、不可復(fù)位觸發(fā)器或D1觸發(fā)器POR.* 如果復(fù)位源rst_c_b是同步的,那么則認(rèn)為來(lái)自C_CLR -> Q的用于從rst_c_
3、b_reg ->C_CLR->C_Q1->C1->A_D進(jìn)行設(shè)置保持檢查的時(shí)序弧能夠避免設(shè)計(jì)亞穩(wěn)態(tài)。然而,通常在默認(rèn)情況下 C_CLR->Q時(shí)序弧在庫(kù)中不啟用,需要在定時(shí)分析過(guò)程中明確啟用。* 在目的地(A)使用雙觸發(fā)器同步器,以避免設(shè)計(jì)中發(fā)生亞穩(wěn)態(tài)傳播。然而,設(shè)計(jì)人員應(yīng)確保安裝兩個(gè)觸發(fā)器引入的延遲不會(huì)影響預(yù)期功能。由于組合環(huán)路導(dǎo)致復(fù)位源干擾1. 問(wèn)題在SoC 中,全局系統(tǒng)復(fù)位在設(shè)備中組合了軟件或硬件生成的各種復(fù)位源。LVD復(fù)位、看門狗復(fù)位、調(diào)試復(fù)位、軟件復(fù)位、時(shí)鐘丟失復(fù)位是導(dǎo)致全局系統(tǒng)復(fù)位斷言的一些示例。 然而,如果由于任何復(fù)位源導(dǎo)致的全局復(fù)位斷言是完全異步的,
4、且復(fù)位發(fā)生源邏輯被全局復(fù)位清零,那么設(shè)計(jì)中會(huì)產(chǎn)生組合環(huán)路,這會(huì)在該復(fù)位源產(chǎn)生干擾。組合路徑的傳播延遲會(huì)根據(jù)不同的流程、電壓或溫度以及干擾范圍而不同。如果設(shè)計(jì)中使用了組合信元用于復(fù)位斷言和去斷言,那么也會(huì)導(dǎo)致模擬中出現(xiàn)紊亂情況。這被視為設(shè)計(jì)人員的非常低級(jí)的錯(cuò)誤。 圖2:復(fù)位源干擾(基本問(wèn)題)在上圖中,當(dāng)復(fù)位源SW_Q斷言時(shí),會(huì)導(dǎo)致rst_b斷言,這是全局復(fù)位。現(xiàn)在,如果全局復(fù)位本身被用于清除 “SW_Q” 復(fù)位斷言,那么會(huì)在設(shè)計(jì)中在SW_Q輸出和全局復(fù)位時(shí)產(chǎn)生干擾。此外,在模擬中,這會(huì)導(dǎo)致紊亂情況,因?yàn)閺?fù)位源斷言試圖通過(guò)該組合邏輯去斷言。然而,如果復(fù)位源(SW_Q)在復(fù)位狀
5、態(tài)機(jī)(觸發(fā)器的SET/CLR輸入)為全局復(fù)位斷言被異步使用,那么復(fù)位干擾可能能夠復(fù)位整個(gè)系統(tǒng)(通過(guò)斷言全局復(fù)位),因?yàn)槿窒到y(tǒng)復(fù)位去斷言不僅僅與復(fù)位源去斷言相關(guān)。當(dāng)該復(fù)位源(有干擾)被同步使用或在觸發(fā)器D輸入使用的情況下可能依然有一個(gè)問(wèn)題。干擾范圍可能無(wú)法在至少一個(gè)周期內(nèi)保持穩(wěn)定,因此這不會(huì)被目標(biāo)觸發(fā)器捕獲。此外,該復(fù)位源不能被用作任何電路的時(shí)鐘(除了脈沖捕捉電路),因?yàn)樗赡苓`反時(shí)鐘寬度。 圖3:復(fù)位源干擾(問(wèn)題2)在上圖中,復(fù)位源SW_Q將出現(xiàn)干擾。雖然如果復(fù)位源SW_Q的干擾在某個(gè)觸發(fā)器被捕捉作為復(fù)位事件狀態(tài)(在S)或用于其他目的,全局復(fù)位輸出(rst_b)都沒(méi)有干
6、擾,但它將導(dǎo)致時(shí)序違反/亞穩(wěn)態(tài),或根本不可能被捕獲。2. 解決方案* 設(shè)計(jì)人員永遠(yuǎn)都不應(yīng)犯下上述(圖2)低級(jí)錯(cuò)誤。* 如果復(fù)位實(shí)現(xiàn)如圖3所示,那么設(shè)計(jì)人員應(yīng)保證復(fù)位源(在該示例中為SW_Q)總是在觸發(fā)器的SET/CLR輸入使用,而不在D或CLK使用。* 解決這個(gè)問(wèn)題的最好的方法是在復(fù)位狀態(tài)機(jī)中使用之前注冊(cè)該復(fù)位源。 雖然它將導(dǎo)致時(shí)鐘依靠全局復(fù)位斷言,但是無(wú)論如何,如果沒(méi)有時(shí)鐘,該內(nèi)部復(fù)位(SW_Q)都不會(huì)斷言。請(qǐng)參見(jiàn)圖4. 圖4:解決方案1此外,用戶也可以擴(kuò)展SW_Q斷言,然后再在設(shè)計(jì)中使用它,復(fù)位斷言與時(shí)鐘無(wú)關(guān)。 請(qǐng)參見(jiàn)圖5. 圖5:解決方案2復(fù)位
7、路徑的組合邏輯1. 問(wèn)題(I)如果組合邏輯輸入大約在同一時(shí)間發(fā)生變化,那么使用復(fù)位路徑中的組合邏輯可能產(chǎn)生干擾,這可能在設(shè)計(jì)中觸發(fā)虛假?gòu)?fù)位。下面是一個(gè)RTL代碼,它會(huì)在設(shè)計(jì)中意外復(fù)位。assign module_a_rstb = !(slave_addr7:0=8'h02 & write_enable & (wdata7:0=00)always (posedge clk or negedge module_rst_b)if(!module_rst_b) data_q <= 1'b0;else data_q <= data_d;在上面的示例中,slav
8、e_addr,write_enable和wdata改變它們的值 w.r.t system clock,使用靜態(tài)時(shí)序分析,設(shè)計(jì)人員可以保證在目標(biāo)觸發(fā)器的設(shè)置時(shí)間窗口之前這些信號(hào)在一個(gè)時(shí)鐘周期內(nèi)的穩(wěn)定性。然而,在該示例中,這些信號(hào)直接用作觸發(fā)器的異步清零輸入。因此,即使在特定的時(shí)間slave_addr7:0在邏輯上將其值從“00000110”改為“01100000”,但由于組合邏輯的傳播延遲(凈延遲和信元延遲)它可以用一個(gè)序列“00000110 -> 00000010 -> 00000000 -> 01000000 -> 01100000”生成過(guò)渡。在這段時(shí)間里,salve
9、_addr為“00000010”,如果wdata7:0始終為零且“write_enable” 已經(jīng)被斷言,那么它將在module_rst_b創(chuàng)建一個(gè)無(wú)用脈沖,從而導(dǎo)致虛假?gòu)?fù)位。 圖6:復(fù)位路徑的組合邏輯2. 解決方案首先注冊(cè)組合輸出,然后再將其用作復(fù)位源(如圖7所示)。 圖7:復(fù)位路徑的組合邏輯解決方案3. 問(wèn)題(II)在上面的示例中,復(fù)位路徑的組合邏輯解決方案并不完善。如果組合邏輯輸入大約在同一時(shí)間發(fā)生變化,那么它可能在設(shè)計(jì)中觸發(fā)虛假?gòu)?fù)位。然而,如果組合邏輯的輸入信號(hào)變化相互排斥,那么它可能不會(huì)引起任何設(shè)計(jì)問(wèn)題。例如,測(cè)試模式和功能模式相互排斥。因
10、此復(fù)位路徑的測(cè)試復(fù)用是有效的設(shè)計(jì)實(shí)踐。然而,對(duì)于某些情況,變化相互排斥的靜態(tài)信號(hào)或信號(hào)可能會(huì)導(dǎo)致設(shè)計(jì)出現(xiàn)虛假?gòu)?fù)位觸發(fā)。下面的示例描述了此類設(shè)計(jì)可能出現(xiàn)問(wèn)題。 圖8:復(fù)位路徑的組合邏輯(問(wèn)題 2).在上面的示例中,多路復(fù)用結(jié)構(gòu)用于復(fù)位路徑,同時(shí)進(jìn)行RTL編碼。其中“mode” 是一個(gè)控制信號(hào),不頻繁改變,而mode0_rst_b和mode_1_rst_b是兩個(gè)復(fù)位事件,然而在合成RTL時(shí),在門控級(jí)它被分解成不同的復(fù)雜的組合(And-Or-InvertAOI)信元。雖然在邏輯上它相當(dāng)于一個(gè)多路復(fù)用器,但由于不同的信元和凈延遲,每當(dāng)信號(hào)“mode”從 1->0變化時(shí),fi
11、nal_rst_b都會(huì)產(chǎn)生干擾。4. 解決方案* 在合成過(guò)程中在復(fù)位路徑保留多路復(fù)用結(jié)構(gòu),因?yàn)槎嗦窂?fù)用結(jié)構(gòu)與其他組合邏輯相比易于產(chǎn)生干擾。MUX Pragma可以在編碼RTL時(shí)使用,這將有助于合成工具在復(fù)位路徑中保留任何多路復(fù)用器。設(shè)計(jì)中的同步復(fù)位問(wèn)題1. 問(wèn)題(I)在許多地方,設(shè)計(jì)人員在時(shí)鐘方面喜歡同步復(fù)位設(shè)計(jì)。原因可能是為了節(jié)省一些芯片面積(帶有異步復(fù)位輸入的觸發(fā)器比任何不可復(fù)位觸發(fā)器都大)或讓系統(tǒng)與時(shí)鐘完全同步,也可能有一些其他原因。對(duì)于此類設(shè)計(jì),當(dāng)復(fù)位源被斷言時(shí)需要向設(shè)計(jì)的觸發(fā)器提供時(shí)鐘,否則,這些觸發(fā)器可能會(huì)在一段時(shí)間內(nèi)都不進(jìn)行初始化。但當(dāng)該模塊被插入一個(gè)系統(tǒng)時(shí),系統(tǒng)設(shè)計(jì)人員可能選擇
12、在復(fù)位階段禁用其時(shí)鐘(如果在一開(kāi)始不需要激活該模塊),以節(jié)省整個(gè)系統(tǒng)的動(dòng)態(tài)功耗。因此,該模塊甚至在復(fù)位去斷言后一段時(shí)間內(nèi)都不進(jìn)行初始化。如果該模塊的任何輸出直接在系統(tǒng)中使用,那么將捕獲未初始化和未知的值(X),這可能會(huì)導(dǎo)致系統(tǒng)功能故障。 圖9:同步復(fù)位問(wèn)題時(shí)序圖2. 解決方案在復(fù)位階段啟用該模塊的時(shí)鐘且持續(xù)最短的時(shí)間,使該模塊內(nèi)的所有觸發(fā)器都在復(fù)位過(guò)程中被初始化。 當(dāng)系統(tǒng)復(fù)位被去斷言時(shí),模塊輸出不會(huì)有任何未初始化的值。 圖10:同步復(fù)位問(wèn)題已解決3. 問(wèn)題(II)在時(shí)鐘域交叉路徑使用兩個(gè)觸發(fā)同步器是常見(jiàn)做法。然而,有時(shí)設(shè)計(jì)人員對(duì)這些觸發(fā)器使用同步復(fù)位
13、。相同的RTL代碼是always (posedge clk )if(!sync_rst_b) beginsync1 <= 1'b0; sync2 <= 1'b0 ;endelse beginsync1 <= async_in; sync2 <= sync1end在硬件中進(jìn)行了RTL合成后,上面的代碼會(huì)在雙觸發(fā)器同步器的同步鏈中引入組合邏輯,這會(huì)帶來(lái)風(fēng)險(xiǎn),并縮短sync2觸發(fā)器輸入進(jìn)入亞穩(wěn)態(tài)的時(shí)間。 圖11:同步復(fù)位問(wèn)題22. 解決方案可用以下方式編寫RTL代碼,以避免同步鏈的組合邏輯。always (posedge clk )if(
14、!sync_rst_b) beginsync1 <= 1'b0;endelse beginsync1 <= async_in; sync2 <= sync1end在上面的代碼中,對(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ò)
15、程中有目標(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)題。 圖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_c
16、lk,以節(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ù)位去斷言過(guò)程中沒(méi)有時(shí)鐘,則在設(shè)計(jì)中繞過(guò)/刪除冗余復(fù)位同步器。 這當(dāng)然會(huì)節(jié)省一定的門控?cái)?shù)。* 如果動(dòng)態(tài)功耗不是問(wèn)題,用戶可以在mod_clk域邏輯開(kāi)始運(yùn)作之前很長(zhǎng)時(shí)間在啟動(dòng)代碼選擇啟用mod_clk.
17、因此,復(fù)位去斷言將有足夠的時(shí)間傳播。* 這也可以在軟件中處理,在任何有效操作之前啟用了mod_clk后,設(shè)置兩三個(gè)mod_clk周期的延遲。由于罕見(jiàn)的時(shí)鐘路徑導(dǎo)致復(fù)位去斷言時(shí)序問(wèn)題1. 問(wèn)題設(shè)計(jì)的復(fù)位架構(gòu)根據(jù)系統(tǒng)而不同。在一些安全關(guān)鍵設(shè)備中,整個(gè)復(fù)位狀態(tài)機(jī)在安全時(shí)鐘上工作,安全時(shí)鐘默認(rèn)啟用。 該時(shí)鐘也被用作設(shè)備的默認(rèn)系統(tǒng)時(shí)鐘。 圖13:罕見(jiàn)時(shí)鐘路徑的問(wèn)題在上圖中,復(fù)位狀態(tài)機(jī)(R觸發(fā)器)在default_clk上工作。此外,在復(fù)位去斷言過(guò)程中,default_clk是sys clk的源。因此,在邏輯上,這兩個(gè)時(shí)鐘(clk1和clk2)在復(fù)位去斷言過(guò)程中同步。但是,由于clk1和clk2之間存在巨大的罕見(jiàn)路徑,因此很難平衡這兩個(gè)時(shí)鐘并視其為同步。 因此,滿足A觸發(fā)器的復(fù)位去斷言變得具有挑戰(zhàn)性。2.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家裝水電安裝合同范本
- 光纖熔接工程外包勞務(wù)合同
- 承租機(jī)械設(shè)備租賃合同
- 提高辦公效率的策略與方法研究
- 2025年青海貨運(yùn)從業(yè)資格證考試500題
- 出租房房屋租賃合同
- 個(gè)人加工合同協(xié)議書
- 抗滑樁基礎(chǔ)勞務(wù)施工合同
- 股份制公司運(yùn)營(yíng)優(yōu)化方案
- 2025年黑龍江貨運(yùn)從業(yè)資格證模擬考試題庫(kù)及答案大全
- 《水電廠應(yīng)急預(yù)案編制導(dǎo)則》
- GB/T 2471-2024電阻器和電容器優(yōu)先數(shù)系
- 國(guó)際安保行業(yè)分析
- 成人住院患者靜脈血栓栓塞癥預(yù)防護(hù)理
- 三年級(jí)道德與法治3.我很誠(chéng)實(shí) 說(shuō)課一等獎(jiǎng)
- 緩解抑郁和焦慮的心理技巧
- 疼痛科門診小針刀療法知情同意書
- 燒傷病人查房版
- 《發(fā)行債券》課件
- 二房東可行性方案計(jì)劃書
- 環(huán)境設(shè)計(jì)就業(yè)需求分析報(bào)告
評(píng)論
0/150
提交評(píng)論