




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章 亞穩(wěn)態(tài)的世界當(dāng)信號(hào)在一個(gè)時(shí)鐘域里變化,在另一個(gè)時(shí)鐘域里采樣時(shí),就會(huì)導(dǎo)致輸出變成亞穩(wěn)態(tài)。這就是所謂的同步失敗。亞穩(wěn)態(tài)窗口具有特定的時(shí)間長(zhǎng)度,在這段時(shí)間內(nèi)輸入信號(hào)和時(shí)鐘都應(yīng)該保持不變,如果他們發(fā)生變化,輸出就可能變成亞穩(wěn)態(tài)窗口越大進(jìn)入亞穩(wěn)態(tài)的概率就變大1.4計(jì)算MTBF當(dāng)系統(tǒng)的故障率恒定時(shí),MTBF(mean/average time between failure,平均無(wú)故障時(shí)間)就是故障率的倒數(shù)。對(duì)于一個(gè)具有給定時(shí)鐘頻率和在該時(shí)鐘周期內(nèi)具有均勻概率密度的異步數(shù)據(jù)信號(hào)邊沿的單級(jí)同步器,亞穩(wěn)態(tài)事件的發(fā)生率可以用建立、保持事件窗口和時(shí)鐘周期的比值乘以信號(hào)觸發(fā)頻率來(lái)計(jì)算1故障率=MTBF=e(
2、tr)Wfcfd1.5 避免亞穩(wěn)態(tài)下列條件中,信號(hào)可能違背是需要求:1、輸入信號(hào)是異步信號(hào)。2、時(shí)鐘偏移/擺動(dòng)(上升/下降時(shí)間)高于榮限值。3、信號(hào)在兩個(gè)不同頻率或者相同頻率但是相位和偏移不同的時(shí)鐘域下跨時(shí)鐘域工作。3、組合延遲使觸發(fā)器的數(shù)據(jù)輸入在亞穩(wěn)態(tài)窗口內(nèi)發(fā)生變化。避免亞穩(wěn)態(tài)的方法是使用同步器避免亞穩(wěn)態(tài)最常見(jiàn)的方法是在跨時(shí)鐘域的信號(hào)上加上一個(gè)或多個(gè)同步觸發(fā)器,這方法用一個(gè)完整的時(shí)鐘周期來(lái)解決第一級(jí)同步觸發(fā)器的亞穩(wěn)態(tài)問(wèn)題,但增加了觀察同步輸入的延時(shí)。多級(jí)同步器的一個(gè)局限就是系統(tǒng)需要花費(fèi)較長(zhǎng)時(shí)間去響應(yīng)一步輸入。解決辦法就是使用倍頻時(shí)鐘作為兩個(gè)同步觸發(fā)器的時(shí)鐘輸入Altera的FPGA中具有這項(xiàng)
3、技術(shù)稱為時(shí)鐘倍頻技術(shù)兩種方法都不能保證同步器阻止亞穩(wěn)態(tài)傳播下去,他們僅僅減少了亞穩(wěn)態(tài)發(fā)生的概率。1.6亞穩(wěn)態(tài)測(cè)試電路每當(dāng)觸發(fā)器采樣一個(gè)異步輸入時(shí),觸發(fā)器輸出都可能產(chǎn)生一個(gè)不可預(yù)測(cè)的延遲,雖然概率很低。這不僅會(huì)在輸入違反建立、保持時(shí)間要求時(shí)發(fā)生,而且在觸發(fā)器接收新的輸入這一小段時(shí)序窗口內(nèi)也會(huì)發(fā)生,在這些情況下,觸發(fā)器都會(huì)進(jìn)入亞穩(wěn)態(tài)。1.7同步器的類型一個(gè)異步輸入電路的MTBF和用于從亞穩(wěn)態(tài)恢復(fù)的時(shí)間呈指數(shù)關(guān)系,用同步器構(gòu)成的時(shí)間緩沖器可以幫組從亞穩(wěn)態(tài)中恢復(fù)。模式A是一個(gè)標(biāo)準(zhǔn)電路,當(dāng)異步輸入信號(hào)比時(shí)鐘周期大得多時(shí)最有效注意:即使異步輸入在建立時(shí)間區(qū)間之外穩(wěn)定,它任然需要由時(shí)鐘驅(qū)動(dòng)產(chǎn)生兩個(gè)周期的延遲
4、,否則FF1可能進(jìn)入亞穩(wěn)態(tài)如果亞穩(wěn)態(tài)在不到一個(gè)時(shí)鐘內(nèi)就解析了,F(xiàn)F2會(huì)有穩(wěn)定輸入,否則就需要更深層次的級(jí)聯(lián)。當(dāng)輸入異步信號(hào)的寬度小于時(shí)鐘周期的情況,則使用模式B對(duì)于同步器的模式B,第一級(jí)觸發(fā)器的輸入D與Vcc相連同時(shí)時(shí)鐘信號(hào)是異步輸入信號(hào),另外兩個(gè)觸發(fā)器直接由系統(tǒng)時(shí)鐘控制。一個(gè)短脈沖讓Q1變成高電平,這個(gè)高電平在經(jīng)過(guò)兩個(gè)時(shí)鐘沿后從sync_out輸出總結(jié):1、 當(dāng)信號(hào)必須跨時(shí)鐘域工作時(shí),要采用同步器。2、 如果clk1Tcq1+Trdq1-THOLD2Tcq1:第一個(gè)觸發(fā)器的時(shí)鐘輸出延遲;Trdq1:從第一個(gè)觸發(fā)器的輸出到第二個(gè)觸發(fā)器輸入的傳播延遲;Tck2:第二個(gè)觸發(fā)器的時(shí)鐘到達(dá)時(shí)間與第一個(gè)
5、觸發(fā)器時(shí)鐘到達(dá)時(shí)間之差。為了識(shí)別帶有該問(wèn)題的路徑,設(shè)計(jì)者必須提出時(shí)鐘偏移(Tck2)和短路徑延遲(Tcq1+Trdq1-THOLD2)。2.7.3時(shí)鐘偏移最小化將時(shí)鐘偏移減至最小值是解決短路徑問(wèn)題的最好方式。將設(shè)計(jì)中的時(shí)鐘偏移保持在觸發(fā)器的最小延遲之下能提高設(shè)計(jì)對(duì)所有短路徑問(wèn)題的健壯性。2.7.3.1在數(shù)據(jù)路徑上加入延遲通過(guò)在數(shù)據(jù)路徑上增加延遲Trdq1而最終使整個(gè)數(shù)據(jù)路徑的延遲大于時(shí)鐘偏移,可以消除短路徑問(wèn)題。在數(shù)據(jù)路徑中插入的延遲必須足夠大以保證數(shù)據(jù)路徑延遲一定能大于時(shí)鐘偏移。2.7.3.2時(shí)鐘反轉(zhuǎn)時(shí)鐘反轉(zhuǎn)是避免出現(xiàn)短路徑和時(shí)鐘偏移問(wèn)題的另一種方法。在這種技術(shù)中,將時(shí)鐘相對(duì)于數(shù)據(jù)反轉(zhuǎn)使用,
6、這樣就自動(dòng)消除了時(shí)鐘偏移。在發(fā)送寄存器到接收到時(shí)鐘沿前,時(shí)鐘會(huì)先驅(qū)動(dòng)觸發(fā)器讀入發(fā)送(源)值,在插入足夠多的延遲后,接收觸發(fā)器會(huì)比源觸發(fā)器先接收到有效的時(shí)鐘沿,這是一種以先犧牲建立時(shí)間為代價(jià)提高保持時(shí)間的方法。時(shí)鐘逆轉(zhuǎn)方法對(duì)于約翰遜計(jì)數(shù)器和線性反饋移位寄存器這樣的環(huán)路結(jié)構(gòu)并不是很有效,因?yàn)閷?duì)這種類型很難明確定義下一級(jí)觸發(fā)器。2.7.3.3交替相位時(shí)鐘避免時(shí)鐘偏移問(wèn)題的已知方法之一就是使用交替相位時(shí)鐘。1)交替使用時(shí)鐘沿在使用這種方法中,順序相鄰的觸發(fā)器使用相反的時(shí)鐘沿觸發(fā),這種方法為時(shí)鐘偏移提供了約半個(gè)周期的短路徑時(shí)鐘偏移余量。2)交替使用時(shí)鐘相位相鄰觸發(fā)器組分別由同一時(shí)鐘的兩個(gè)不同相位驅(qū)動(dòng),在
7、這種情況下,任意兩個(gè)相鄰的觸發(fā)器之間都有雨;兩個(gè)相位的相位差大致相同的安全余量。必須注意的一點(diǎn)是,交替使用時(shí)鐘相位要求對(duì)原始時(shí)鐘信號(hào)使用完全不同的是種約束。在交替使用時(shí)鐘邊沿時(shí),由于相鄰觸發(fā)器由同一個(gè)時(shí)鐘周期相反的邊沿時(shí)鐘驅(qū)動(dòng),因此時(shí)鐘頻率的約束值應(yīng)該是初始約束頻率的一半。3)行波時(shí)鐘結(jié)構(gòu)在行波時(shí)鐘結(jié)構(gòu),每個(gè)觸發(fā)器的輸出驅(qū)動(dòng)下一個(gè)觸發(fā)器的時(shí)鐘端,這與行波計(jì)數(shù)器的實(shí)現(xiàn)方式類似,只有在原觸發(fā)器翻轉(zhuǎn)時(shí),下一級(jí)觸發(fā)器才會(huì)被時(shí)鐘驅(qū)動(dòng)。每個(gè)計(jì)數(shù)觸發(fā)器的輸出驅(qū)動(dòng)下一個(gè)觸發(fā)器的時(shí)鐘端,而不是數(shù)據(jù)輸入端。由于觸發(fā)器不在同一個(gè)時(shí)鐘翻轉(zhuǎn),這就消除了時(shí)鐘偏移。第一個(gè)觸發(fā)器由CLK信號(hào)的正沿驅(qū)動(dòng),第二個(gè)和第三個(gè)觸發(fā)器由
8、前一個(gè)觸發(fā)器輸出信號(hào)的正沿驅(qū)動(dòng)。根據(jù)設(shè)計(jì)復(fù)雜度和所使用的方法學(xué),可以使用上面所提到的不同技術(shù)來(lái)最小化時(shí)鐘偏移和避免短路徑問(wèn)題。2.7.3.4 平衡線路長(zhǎng)度在前幾節(jié)提到的技術(shù)都應(yīng)在項(xiàng)目前期就計(jì)劃使用,當(dāng)然作為上述方案的替代,設(shè)計(jì)者也可以使用平衡線長(zhǎng)度的方式保證低時(shí)鐘驅(qū)動(dòng)器偏移。除了保證所有時(shí)鐘線長(zhǎng)度相同等,也保證各終端負(fù)載相同,這樣可以保證線路長(zhǎng)度恰當(dāng)?shù)仄胶?。下面是?yīng)當(dāng)遵守的指南:1) 緊密關(guān)注驅(qū)動(dòng)器上的輸入-輸出延遲規(guī)范。2) 在時(shí)鐘各級(jí)層次上使用同樣的驅(qū)動(dòng)器。3) 平衡各級(jí)標(biāo)稱的線路延遲。4) 在各條線路上使用同樣的終端策略。5) 平衡各線路的負(fù)載,這可能意味著需要在一條支路上添加多余的電容
9、以與其他分支平衡。第三章 處理多個(gè)時(shí)鐘3.1 介紹只涉及單個(gè)時(shí)鐘的設(shè)計(jì)是易于實(shí)現(xiàn)的,在實(shí)踐中,很少有設(shè)計(jì)只在一個(gè)時(shí)鐘下運(yùn)作。本章將會(huì)涉及使用多個(gè)時(shí)鐘的設(shè)計(jì),并介紹在設(shè)計(jì)過(guò)程中所遇到的問(wèn)題和處理方法,最后得到可以工作在多個(gè)時(shí)鐘下的簡(jiǎn)裝設(shè)計(jì)。單時(shí)鐘設(shè)計(jì)(更確切地說(shuō),也就是同步時(shí)鐘設(shè)計(jì)),在單時(shí)鐘域中,有單個(gè)時(shí)鐘貫穿整個(gè)設(shè)計(jì)。同多時(shí)鐘設(shè)計(jì)相比,這樣的設(shè)計(jì)更易于實(shí)現(xiàn),并且更少產(chǎn)生與亞穩(wěn)態(tài)、建立和保持時(shí)間違背方面發(fā)的問(wèn)題。3.2 多時(shí)鐘域?qū)τ诠こ處焷?lái)說(shuō),開(kāi)發(fā)多個(gè)時(shí)鐘的設(shè)計(jì)是一種挑戰(zhàn)。這樣的設(shè)計(jì)中可能有以下任何一個(gè)或者全部類型的時(shí)鐘關(guān)系:1、 時(shí)鐘平率不同。2、 時(shí)鐘頻率相同,相位不同。3.3多時(shí)鐘域設(shè)計(jì)
10、的難題多時(shí)鐘設(shè)計(jì)將面臨下列問(wèn)題:1、 建立時(shí)間和保持時(shí)間的違背;2、 亞穩(wěn)態(tài);3.3.1 違背建立時(shí)間和保持時(shí)間建立時(shí)間:在時(shí)鐘脈沖到來(lái)前,輸入數(shù)據(jù)需要保持 穩(wěn)定的時(shí)間。保持時(shí)間:在脈沖到達(dá)后,輸入數(shù)據(jù)仍需保持穩(wěn)定的時(shí)間。建立時(shí)間要求數(shù)據(jù)必須在時(shí)鐘上升沿到來(lái)前保持穩(wěn)定,保持時(shí)間要求在時(shí)鐘上升沿到來(lái)后數(shù)據(jù)必須仍然保持穩(wěn)定。在多時(shí)鐘域情況下,很容易出現(xiàn)一個(gè)時(shí)鐘域的輸出在另一個(gè)時(shí)鐘域中的時(shí)鐘上升沿到來(lái)時(shí)發(fā)生改變的現(xiàn)象,這將會(huì)引起第二個(gè)時(shí)鐘域中觸發(fā)器的輸出處于亞穩(wěn)態(tài),由此導(dǎo)致一系列錯(cuò)誤的結(jié)果。3.3.2亞穩(wěn)態(tài)3.4多時(shí)鐘設(shè)計(jì)的處理技術(shù)在進(jìn)行一個(gè)含有多個(gè)時(shí)鐘的設(shè)計(jì)中,在仿真和綜合過(guò)程中遵循一定的準(zhǔn)則將會(huì)
11、帶來(lái)很大的好處。一些通用的準(zhǔn)則如下:1、 時(shí)鐘命名規(guī)則;2、 分模塊設(shè)計(jì)。3.4.1時(shí)鐘命名法為了保證綜合腳本可以更輕松地處理所有的時(shí)鐘信號(hào),有必要對(duì)整個(gè)設(shè)計(jì)使用一個(gè)確定的命名步驟。系統(tǒng)時(shí)鐘可以命名為sys_clk,發(fā)送時(shí)鐘可以命名為tx_clk,接收時(shí)鐘可以命名為rx_clk等,這樣就可以在腳本中使用通配符來(lái)對(duì)所有時(shí)鐘進(jìn)行操作。屬于同一個(gè)時(shí)鐘域的信號(hào),也應(yīng)該在命名時(shí)使用同樣的前綴。由系統(tǒng)時(shí)鐘驅(qū)動(dòng)的信號(hào)可以類似于sys_rom_addr、sys_rom_data這樣的方式作為起始。使用這種命名法,團(tuán)隊(duì)中每位工程師便可以分辨出每個(gè)特定的信號(hào)所屬的時(shí)鐘域,并決定是應(yīng)該直接使用該信號(hào),還是需要先將其
12、通過(guò)同步器后再使用。這樣的命名過(guò)程能極大地減少對(duì)信號(hào)的混淆,并在各模塊之間提供簡(jiǎn)單的接口,因此提高了團(tuán)隊(duì)工作效率。3.4.2分塊化設(shè)計(jì)這是設(shè)計(jì)含多時(shí)鐘的模塊是常用的另一種有效技術(shù)。如下所述:1) 每個(gè)模塊只應(yīng)當(dāng)在單個(gè)時(shí)鐘下工作;2) 在信號(hào)跨時(shí)鐘域傳輸時(shí),使用同步器模塊(該模塊的作用是將信號(hào)從一個(gè)時(shí)鐘域傳遞到另一個(gè)時(shí)鐘域),以使所有信號(hào)在進(jìn)入某個(gè)時(shí)鐘域內(nèi)的模塊時(shí),與該模塊的時(shí)鐘保持同步。3) 同步器模塊的規(guī)模應(yīng)盡可能小。將整個(gè)設(shè)計(jì)分割成模塊的優(yōu)點(diǎn)在于使得靜態(tài)時(shí)序分析變得簡(jiǎn)單,因?yàn)樗休敵龌蜉斎肽硞€(gè)時(shí)鐘域的信號(hào)都與使用該時(shí)鐘的模塊保持同步。所以設(shè)計(jì)完全是同步的。對(duì)于同步模塊是不需要做靜態(tài)書(shū)序分析
13、的,但是要保證滿足保持時(shí)間的要求。所有跨時(shí)鐘域傳輸?shù)男盘?hào)都要經(jīng)過(guò)一個(gè)額外的同步模塊,該同步模塊的作用是將信號(hào)從原來(lái)所在的時(shí)鐘域轉(zhuǎn)化到將使用該信號(hào)的時(shí)鐘域。3.4.3跨時(shí)鐘域跨時(shí)鐘域信號(hào)的傳輸可以分為兩類:控制信號(hào)的傳輸和數(shù)據(jù)信號(hào)的傳輸。3.4.3.1控制信號(hào)的傳輸(同步化)在設(shè)計(jì)中,如果將一個(gè)異步信號(hào)直接送給若干個(gè)并行工作的觸發(fā)器,就會(huì)大大增加亞穩(wěn)態(tài)事件發(fā)生的概率,因?yàn)橛锌赡苡卸鄠€(gè)觸發(fā)器進(jìn)入亞穩(wěn)態(tài)。為了避免形成這種情況下的亞穩(wěn)態(tài),我們常常使用同步觸發(fā)器的輸出信號(hào)來(lái)取代異步信號(hào)。為了減少亞穩(wěn)態(tài)的影響,設(shè)計(jì)者最常用的方式時(shí)使用多級(jí)同步器,即將兩個(gè)或多個(gè)觸發(fā)器串聯(lián)起來(lái)組成的同步電路。如果同步器的第一
14、級(jí)觸發(fā)器產(chǎn)生亞穩(wěn)態(tài),那么這個(gè)亞穩(wěn)態(tài)會(huì)在同步器的第二個(gè)觸發(fā)器 取樣前進(jìn)入穩(wěn)態(tài)。這種方法無(wú)法保證第二級(jí)觸發(fā)器的輸出不會(huì)出現(xiàn)亞穩(wěn)態(tài),但是它的確降低出現(xiàn)亞穩(wěn)態(tài)的可能性。如果為同步器增加更多級(jí)觸發(fā)器,就會(huì)進(jìn)一步降低出現(xiàn)亞穩(wěn)態(tài)的可能性。這個(gè)方法的缺點(diǎn)是同步器的電路不可避免的開(kāi)銷,增加了電路的整體延時(shí)。有些情況下,第一級(jí)同步器觸發(fā)器的輸出信號(hào)從亞穩(wěn)態(tài)進(jìn)入穩(wěn)定態(tài)所需要的時(shí)間可能需要不止一個(gè)時(shí)鐘周期,這意味著第二級(jí)同步觸發(fā)器的輸出仍然亞穩(wěn)定,這是為安全起見(jiàn),應(yīng)當(dāng)使用三級(jí)同步器電路。三級(jí)同步觸發(fā)器電路由三個(gè)串聯(lián)的觸發(fā)器組成,第二級(jí)觸發(fā)器可能輸出的亞穩(wěn)態(tài)信號(hào)在第三級(jí)觸發(fā)器采樣前會(huì)進(jìn)入穩(wěn)定狀態(tài)。在大多數(shù)時(shí)鐘域設(shè)計(jì)中,
15、使用兩級(jí)同步電路就足以滿足以避免亞穩(wěn)態(tài)的出現(xiàn)。只有在時(shí)鐘域頻率非常高的設(shè)計(jì)中才要求使用三級(jí)同步器電路。3.4.3.2 數(shù)據(jù)信號(hào)的傳輸在多時(shí)鐘域設(shè)計(jì)中,數(shù)據(jù)經(jīng)常會(huì)從一個(gè)時(shí)鐘域傳輸?shù)搅硪粋€(gè)時(shí)鐘域。以下是保證數(shù)據(jù)正常地在不同時(shí)鐘域間傳輸?shù)膬煞N方法:使用握手信號(hào)方式和使用異步FIFO.3.5 跨時(shí)鐘域如果多個(gè)時(shí)鐘都起源于同一個(gè)時(shí)鐘,并且它們的相位和頻率關(guān)系都是已知的,那么這些時(shí)鐘可以看成是跨同步時(shí)鐘域的時(shí)鐘。按照相位和頻率的關(guān)系,可以將這些時(shí)鐘分成以下類型:同頻零相位差時(shí)鐘、同頻恒相位差時(shí)鐘和非同頻可變相位差時(shí)鐘。其中非同頻可變相位差時(shí)鐘可分為整數(shù)倍時(shí)鐘和有理數(shù)倍時(shí)鐘。3.5.1 同頻零相位時(shí)鐘在此情
16、況下,兩個(gè)完全相同的時(shí)鐘“clk1”和“clk2”具有相同的頻率和相位差。“clk1”和“clk2”是完全相同的,并由同一個(gè)時(shí)鐘源產(chǎn)生,在“clk1”和“clk2”之間的數(shù)據(jù)傳輸并不算是跨時(shí)鐘域的。實(shí)際上,這種情況就是單時(shí)鐘設(shè)計(jì),這里僅僅是出于全面考慮才提及它。無(wú)論何時(shí),從“clk1”和“clk2”的數(shù)據(jù)都有一個(gè)完整的有效時(shí)鐘周期用于傳輸,以保證數(shù)據(jù)可以正常捕捉。只要在源觸發(fā)器和目的觸發(fā)器之間的組合邏輯的延遲能滿足電路的建立時(shí)間和保持時(shí)間的要求,數(shù)據(jù)就能正確地傳輸。在這種情況下,對(duì)涉及的唯一要求只是保證STA(靜態(tài)時(shí)序分析)通過(guò)。如果滿足這一條件,就不會(huì)出現(xiàn)亞穩(wěn)態(tài)問(wèn)題和數(shù)據(jù)丟失或不一致的問(wèn)題。
17、3.5.2 同頻恒定電位差這些時(shí)鐘有相同的時(shí)鐘周期,但是相位差恒定。典型的例子是對(duì)某個(gè)始終機(jī)器反向時(shí)鐘的使用。另一個(gè)例子是某個(gè)時(shí)鐘相對(duì)于其上級(jí)時(shí)鐘發(fā)生了相位移動(dòng)。每當(dāng)數(shù)據(jù)從“clk1”傳輸?shù)健癱lk2”時(shí),由于更小的建立時(shí)間/保持時(shí)間裕量,對(duì)組合邏輯的延時(shí)約束會(huì)變得更緊。如果組合邏輯的延時(shí)能保證滿足采樣沿處建立時(shí)間和保持時(shí)間的要求,數(shù)據(jù)就可以正確的傳輸,并不會(huì)產(chǎn)生亞穩(wěn)態(tài)。這種情況下是不需要同步器的,只需要是設(shè)計(jì)的STA通過(guò)就可以了。一般會(huì)在STA中創(chuàng)建這種情況以保證滿足時(shí)序要求。如果組合邏輯有更多延時(shí),通過(guò)在發(fā)射邊沿和捕獲邊沿加入偏移(例如使時(shí)許有相同頻率和不同相位),會(huì)有助于滿足時(shí)序的要求。
18、3.5.3 非同頻、可變相位差時(shí)鐘這類時(shí)鐘具有不同的頻率,并且相位差也是可變的。將這類時(shí)鐘分為兩類,第一類中各時(shí)鐘周期之間是整數(shù)倍的關(guān)系,第二類中各時(shí)鐘周期是非整數(shù)倍(有理數(shù)倍)的關(guān)系。3.5.3.1整數(shù)倍頻率的時(shí)鐘在這種情況下,一個(gè)時(shí)鐘的頻率是另一個(gè)時(shí)鐘頻率的整數(shù)倍,并且它們有效邊沿的相位差是可變的。這兩個(gè)時(shí)鐘的有效邊沿之間可能的最小相位差始終等于其中較快的那個(gè)時(shí)鐘的時(shí)間周期。任意路徑的最差延遲都應(yīng)在時(shí)鐘邊沿相位差為T是滿足建立時(shí)間的要求。最差保持時(shí)間檢查應(yīng)當(dāng)在時(shí)鐘邊沿相位差為零時(shí)進(jìn)行。在以上所有情況下,都有較快時(shí)鐘的一個(gè)完整的周期用來(lái)傳輸數(shù)據(jù),以使其能正確地捕捉,所以它通常都可以保證滿足建
19、立時(shí)間和保持時(shí)間的要求。因此就不會(huì)存在亞穩(wěn)態(tài)或數(shù)據(jù)不一致的問(wèn)題,也就不必使用同步器了。既然這里數(shù)據(jù)由較快時(shí)鐘發(fā)出,并由較慢時(shí)鐘捕獲,那么為了避免數(shù)據(jù)丟失,源數(shù)據(jù)應(yīng)該保持至少一個(gè)目的時(shí)鐘周期的穩(wěn)定狀態(tài),可以使用一些控制電路來(lái)滿足這一要求(例如使用一個(gè)簡(jiǎn)單的有限狀態(tài)機(jī))。3.5.3.2非整數(shù)倍頻率的時(shí)鐘這種情況指一個(gè)時(shí)鐘的頻率是另一個(gè)時(shí)鐘的非整數(shù)倍,而且它們有效邊沿的相位差是可變的。與前邊提到的各時(shí)鐘之間保持整數(shù)倍關(guān)系不同,因此兩個(gè)時(shí)鐘之間的最小相位差足以使亞穩(wěn)態(tài)產(chǎn)生。至于亞穩(wěn)態(tài)是否真的發(fā)生,取決于實(shí)際的頻率倍數(shù)和設(shè)計(jì)工藝。下面介紹三種不同的情況:第一種情況,在源時(shí)鐘有效沿和目的時(shí)鐘有效沿之間有足
20、夠大的相位差,所以不會(huì)有亞穩(wěn)態(tài)產(chǎn)生。第二種情況,源時(shí)鐘和目的時(shí)鐘有效沿非常接近,導(dǎo)致產(chǎn)生亞穩(wěn)態(tài)問(wèn)題。然而在這里時(shí)鐘頻率倍數(shù)關(guān)系需要滿足以下條件。即一旦有時(shí)鐘邊沿接近出現(xiàn),下一個(gè)時(shí)鐘周期就會(huì)留出足夠大的時(shí)間冗余,時(shí)的數(shù)據(jù)的捕獲不會(huì)出現(xiàn)違背建立時(shí)間或保持時(shí)間的要求。第三種情況,兩個(gè)時(shí)鐘的時(shí)鐘沿在許多連續(xù)的周期中都非常接近。這與異步時(shí)鐘的行為很相似,但因?yàn)檫@兩個(gè)時(shí)鐘的源頭是相同的,所以它們之間的相位差是可以計(jì)算出來(lái)的。然而,由于該相位差很小,應(yīng)該避免在跨越兩個(gè)時(shí)鐘的位置使用任何組合邏輯。對(duì)于增加的任何組合邏輯,必須滿足建立和保持時(shí)間的要求以避免亞穩(wěn)態(tài),因此必須使用同步器。進(jìn)一步說(shuō),在數(shù)據(jù)從慢時(shí)鐘域傳
21、遞到快時(shí)鐘域時(shí),必須增加邏輯以保證數(shù)據(jù)在快時(shí)鐘域中只取樣一次,這時(shí)不會(huì)出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象。在快時(shí)鐘域向慢時(shí)鐘域傳遞數(shù)據(jù)時(shí),就可能出現(xiàn)數(shù)據(jù)丟失。為了解決這個(gè)問(wèn)題,必須將源數(shù)據(jù)保持至少一個(gè)目標(biāo)周期,以保證在兩個(gè)連續(xù)變換的源數(shù)據(jù)之間至少有一個(gè)目標(biāo)始終到達(dá)。對(duì)于從快時(shí)鐘域到慢時(shí)鐘域的傳輸,可能會(huì)出現(xiàn)數(shù)據(jù)丟失,為了防止這種現(xiàn)象,原數(shù)據(jù)應(yīng)該保持至少一個(gè)目標(biāo)時(shí)鐘周期不變。可以通過(guò)使用一個(gè)簡(jiǎn)單的FSM實(shí)現(xiàn)這一目的。在前兩個(gè)時(shí)鐘周期中可能違背建立時(shí)間(源時(shí)鐘在目的時(shí)鐘之前),而在后兩個(gè)時(shí)鐘周期可能違背保持時(shí)間(目的時(shí)鐘在源時(shí)鐘之前)。在這種情況下將會(huì)出現(xiàn)亞穩(wěn)態(tài)問(wèn)題,因此需要進(jìn)行同步。除了亞穩(wěn)態(tài)的問(wèn)題,數(shù)據(jù)從慢時(shí)
22、鐘域傳遞到快時(shí)鐘域是也可能丟失。為了不丟失數(shù)據(jù),數(shù)據(jù)需要保持穩(wěn)定至少兩個(gè)目的時(shí)鐘周期。這既適合于從快到慢的傳輸,也適用于從慢到快的傳輸??梢酝ㄟ^(guò)簡(jiǎn)單的FSM對(duì)源數(shù)據(jù)產(chǎn)生進(jìn)行控制完成這一任務(wù),但不連貫的問(wèn)題仍然存在。這時(shí)以標(biāo)準(zhǔn)化的技術(shù)(如握手和FTFO)對(duì)于傳輸數(shù)據(jù)更為有效,因?yàn)樗鼈兘鉀Q了數(shù)據(jù)不連貫問(wèn)題。3.6握手信號(hào)方法使用握手信號(hào)是最古老的在不同域之間傳輸數(shù)據(jù)的方式。下圖是有兩個(gè)時(shí)鐘信號(hào)分割成的兩個(gè)單獨(dú)的系統(tǒng):使用握手信號(hào)“xack”和“yreq”,“系統(tǒng)X”將數(shù)據(jù)發(fā)送給“系統(tǒng)Y”。下面是使用握手信號(hào)傳輸數(shù)據(jù)的例子:1) 發(fā)送器“系統(tǒng)X”將數(shù)據(jù)放到數(shù)據(jù)總線上并發(fā)出“xreq”(請(qǐng)求)信號(hào),表
23、示有效數(shù)據(jù)已經(jīng)發(fā)到接收器“系統(tǒng)Y”的數(shù)據(jù)總線上。2) 把“xreq”信號(hào)同步到接收器的時(shí)鐘域“yclk”上。3) 接收器在識(shí)別“xreq”同步的信號(hào)“yreq2”后,鎖存數(shù)據(jù)總線上的信號(hào)。4) 接收器發(fā)出確認(rèn)信號(hào)“yack”,表示其已經(jīng)接收了數(shù)據(jù)。5) 接收器發(fā)出的“yack”信號(hào)同步到發(fā)送時(shí)鐘“xclk”上。6) 發(fā)送器在識(shí)別同步的“xack2”信號(hào)后,將下一個(gè)數(shù)據(jù)放到數(shù)據(jù)總線上。握手信號(hào)序列的時(shí)序圖由上圖可以看出,安全地將一個(gè)數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌餍枰?個(gè)時(shí)鐘周期。3.6.1握手信號(hào)的要求數(shù)據(jù)應(yīng)該在發(fā)送時(shí)鐘域內(nèi)穩(wěn)定至少兩個(gè)時(shí)鐘上升沿。請(qǐng)求信號(hào)“xreq”的寬度應(yīng)該超過(guò)兩個(gè)上升沿時(shí)鐘,否則
24、從高速時(shí)鐘域向低速時(shí)鐘域傳遞可能無(wú)法捕捉到該信號(hào)。3.6.2 握手信號(hào)的缺點(diǎn)跨時(shí)鐘域傳輸單個(gè)數(shù)據(jù)的延遲比使用FIFO傳輸相同的數(shù)據(jù)要大得多。3.7 使用同步FIFO傳輸數(shù)據(jù)在設(shè)計(jì)系統(tǒng)時(shí),會(huì)包含工作在不同時(shí)鐘頻率下的元件(處理器、外設(shè))。有時(shí)它們有自己的時(shí)鐘振蕩器。數(shù)據(jù)在這些元件之間傳輸時(shí)先進(jìn)先出(FIFO)陣列起到了重要作用。FIFO是用于在通信總線上傳輸?shù)臄?shù)據(jù)進(jìn)行排列的簡(jiǎn)單存儲(chǔ)結(jié)構(gòu)。因此,F(xiàn)IFO常用來(lái)傳輸跨不同時(shí)鐘域的數(shù)據(jù)。3.7.1同步FIFO架構(gòu)下圖展示了一個(gè)同步FIFO的通用架構(gòu)。DPRAM(雙端口RAM)用作FIFO的存儲(chǔ)器以使讀、寫可以獨(dú)立進(jìn)行。通過(guò)讀、寫指針產(chǎn)生各自的讀、寫地址
25、,送到讀、寫端口。寫指針指向下個(gè)一個(gè)寫入的地址,讀指針指向下一個(gè)讀取的地址。有效寫使能使寫指針遞增,而有效的讀使能使讀指針遞增。上圖中的“狀態(tài)模塊”“產(chǎn)生fifo_empty”和“fifo_full”信號(hào)。如果“fifo_full”有效,說(shuō)明FIFO內(nèi)的空間已滿不能再寫入數(shù)據(jù)。如果“fifo_empty”有效說(shuō)明FIFO內(nèi)沒(méi)有可供讀取的下一個(gè)有效數(shù)據(jù)。通過(guò)對(duì)兩個(gè)指針進(jìn)行相同的邏輯,該模塊也指示出任意時(shí)刻FIFO中空或滿區(qū)域的個(gè)數(shù)。雙端口存儲(chǔ)器(DPRAM)可以同步讀取或異步讀取。對(duì)同步讀操作,應(yīng)該在數(shù)據(jù)在FIFO輸出端有效前提供明確的讀信號(hào)。對(duì)于異步讀操作,DPRAM沒(méi)有寄存的數(shù)據(jù)輸出;有效數(shù)
26、據(jù)在寫入后即可用(先讀數(shù)據(jù)然后遞增指針值)。3.7.2同步FIFO的工作方式復(fù)位后讀寫指針都?xì)w零。此時(shí)“fifo_empty”信號(hào)置為有效而“fifo_full”保持低電平。因?yàn)镕IFO為空,所以阻止對(duì)FIFO的讀操作,只能進(jìn)行寫操作。后續(xù)的寫操作會(huì)增加寫指針的值,并將“fifo_empty”信號(hào)置為無(wú)效。在沒(méi)有空間可寫數(shù)據(jù)時(shí),寫指針等于RAM_SIZE-1。此時(shí)進(jìn)行一個(gè)寫操作會(huì)使寫指針回滾到0,并將“fifo_full”信號(hào)置為高電平??傊谧x、寫指針相等時(shí),F(xiàn)IFO要么空要么滿,所以需要對(duì)這兩種情況進(jìn)行區(qū)分。3.7.2.1 FIFO空和滿的產(chǎn)生下圖為深度為4的FIFO出現(xiàn)滿的情況圖中轉(zhuǎn)換發(fā)
27、生在隨后的時(shí)鐘中。在寫操作是兩個(gè)指針在下一個(gè)始終保持相等時(shí),F(xiàn)IFO滿。這使得在以下情況下會(huì)發(fā)出“fifo_full”信號(hào)。fifo_full=(read_pointer=(write_pointer+1)ANDwrite類似地,當(dāng)讀操作使兩個(gè)指針在下一個(gè)時(shí)鐘相等時(shí),F(xiàn)IFO變空。以下情況會(huì)產(chǎn)生“fifo_empty”信號(hào)。fifo_empty=(write_pointer=(read_pionter+1)ANDread3.7.2.2 另一種方法另一種產(chǎn)生“fifo_full”和“fifo_empty”狀態(tài)的方法是使用計(jì)數(shù)器來(lái)持續(xù)指示FIFO中空或滿位置的個(gè)數(shù)。計(jì)數(shù)器的寬度要與FIFO的深度相
28、等以使其能記錄FIFO中數(shù)據(jù)的最大個(gè)數(shù)。計(jì)數(shù)器在復(fù)位時(shí)初始化為0,隨后的任何寫操作將會(huì)遞增1,任何讀操作會(huì)使其遞減1。現(xiàn)在,在計(jì)數(shù)器值為0時(shí),很容易就判斷FIFO處于空狀態(tài),而當(dāng)計(jì)數(shù)器的值等于FIFO的大小時(shí),就能判斷出FIFO處于滿狀態(tài)。本節(jié)提到的這種方法雖然在原理上簡(jiǎn)單,但是與3.7.2.1節(jié)中所提到的方法相比效率要低一些,因?yàn)檫@種方法要求增加額外的硬件(比較器)來(lái)產(chǎn)生FIFO空和 滿的條件。隨著FIFO深度的增加,比較器的寬度也會(huì)增加,因此產(chǎn)生FIFO空、滿信號(hào)需要更高級(jí)的序列比較器。這最終會(huì)降低FIFO操作的最高頻率。3.8異步FIFO(或雙時(shí)鐘FIFO)異步FIFO用來(lái)在兩個(gè)異步時(shí)鐘
29、域間傳輸數(shù)據(jù)。兩個(gè)系統(tǒng),分別為“system X”和“system Y”,從“system X”向“system Y”傳輸數(shù)據(jù),兩個(gè)系統(tǒng)工作在不同時(shí)鐘域中?!皊ystem X”使用“xclk”將數(shù)據(jù)寫入FIFO ,并由“system Y”使用“yclk”讀出?!癴ifo_full”和”fifo_empty”信號(hào)負(fù)責(zé)對(duì)上溢和下溢情況的監(jiān)視。“fifo_full”信號(hào)指示上溢情況。在“fifo_full”置起時(shí)數(shù)據(jù)不應(yīng)寫入FIFO,否則會(huì)將FIFO內(nèi)的數(shù)據(jù)覆蓋掉。由“fifo_empty”信號(hào)指示下溢情況,如在“fifo_empty”時(shí)不應(yīng)讀取FIFO,否則會(huì)讀出垃圾數(shù)據(jù)。與握手信號(hào)方式不同,異步
30、FIFO用于對(duì)性能要求較高的設(shè)計(jì)中,尤其是時(shí)鐘延遲比系統(tǒng)資源更為重要的環(huán)境中。簡(jiǎn)單的同步FIFO可以通過(guò)使用雙端口RAM和單獨(dú)的讀、寫端口來(lái)實(shí)現(xiàn),讀寫操作使用同一個(gè)時(shí)鐘??梢允褂猛瑯拥脑碓O(shè)計(jì)異步FIFO,但是要特別注意當(dāng)產(chǎn)生FIFO空和FIFO滿信號(hào)時(shí)避免出現(xiàn)亞穩(wěn)態(tài)現(xiàn)象。3.8.1避免使用二進(jìn)制計(jì)數(shù)器實(shí)現(xiàn)指針以寫指針為例。在寫請(qǐng)求有效時(shí),寫指針在寫時(shí)鐘作用下遞增。同樣,在讀請(qǐng)求有效時(shí)讀指針在讀時(shí)鐘作用下遞增。在產(chǎn)生FIFO滿信號(hào)時(shí),要將寫指針與讀指針進(jìn)行比較,由于兩個(gè)指針與分別與其各自的時(shí)鐘同步,但是彼此之間異步,在使用二進(jìn)制計(jì)數(shù)器實(shí)現(xiàn)指針時(shí),就會(huì)導(dǎo)致用于比較的指針值取樣錯(cuò)誤。例如,二進(jìn)制計(jì)數(shù)器的值會(huì)從FFF變?yōu)?00.這時(shí)所有位會(huì)同時(shí)改變。雖然能通過(guò)同步計(jì)數(shù)器避免亞穩(wěn)態(tài),但是仍然能得到極不相關(guān)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項(xiàng)7 語(yǔ)法和病句(原卷版)
- 智慧應(yīng)急響應(yīng)管理平臺(tái)解決方案
- 江蘇省徐州市東苑中學(xué)2024-2025學(xué)年八年級(jí)下學(xué)期3月月考地理試題(原卷版+解析版)
- 2025屆江蘇省蘇州市決勝新高考高三下學(xué)期2月開(kāi)學(xué)聯(lián)考地理含答案
- 內(nèi)鏡下注射硬化劑治療乙型肝炎肝硬化并發(fā)食管靜脈曲張破裂出血患者的臨床效果研究
- 安徽省淮南市東部地區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末考試地理試題(原卷版+解析版)
- 二零二五年度北京市體育俱樂(lè)部運(yùn)動(dòng)員招募合同范本
- 二零二五年度保健服務(wù)貸款居間服務(wù)與客戶反饋合同
- 房地產(chǎn)項(xiàng)目開(kāi)發(fā)建設(shè)合同書(shū)
- 公司股權(quán)激勵(lì)機(jī)制設(shè)計(jì)指南
- 2025屆高考英語(yǔ)二輪復(fù)習(xí)備考策略課件
- 醫(yī)學(xué)課件-兒童2型糖尿病診治指南(2025)解讀
- 《結(jié)構(gòu)平法與鋼筋算量》課件-梁平法施工圖識(shí)讀
- 山東大學(xué)外科學(xué)歷年試題要點(diǎn)【表格版】
- 2025年南京機(jī)電職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年福建福州市城市多邊合作中心招聘3人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 課題申報(bào)書(shū):GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計(jì)研究
- 中考第一輪復(fù)習(xí)人教七年級(jí)英語(yǔ)上冊(cè)Unit5-Unit9詞匯短語(yǔ)復(fù)習(xí)課件
- 高階思維能力培養(yǎng)教學(xué)策略
- 駱駝祥子-(一)-劇本
- 新版環(huán)氧乙烷安全技術(shù)說(shuō)明書(shū)SDS模版
評(píng)論
0/150
提交評(píng)論