已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、跨越鴻溝:同步世界中的異步信號2004-7-12 12:23:04 EDN CHINA 電子設(shè)計技術(shù) Mike Stein , Paradigm Works(華強電子世 界 網(wǎng)訊) 只有最初級的邏 輯電路 才使用單一的 時鐘。大多 數(shù)與 數(shù)據(jù)傳輸相關(guān)的應(yīng)用都有與生俱來的挑戰(zhàn),即 跨越多個時鐘域的數(shù)據(jù)移動,例 如磁盤 控制器 、 CDROM/DVD 控 制器、調(diào) 制解調(diào) 器、網(wǎng) 卡以及網(wǎng)絡(luò)處 理器等 。 當信號從一個時鐘域傳送到另一個時鐘域時,出 現(xiàn)在新時鐘域的信號是異步信 號。在現(xiàn)代 IC 、 ASIC 以及 FPGA 設(shè)計中,許 多軟件程序可以幫助工程師建 立幾百萬門的電路,但這些程序都無法

2、解決信號同步問題。設(shè)計者需要了解 可靠的設(shè)計技巧,以減少電路在跨時鐘域通信時的故障風險。基礎(chǔ)從 事 多 時 鐘 設(shè) 計 的 第 一 步 是 要 理 解 信 號 穩(wěn) 定 性 問 題 。當 一 個 信 號 跨 越 某 個 時鐘域時,對新時鐘域的電路來說它就是一個異步信號。接 收該信號的電路需 要對其進行同步。同步可以防止第一級存儲單元( 觸發(fā)器)的亞穩(wěn)態(tài)在新的時 鐘域里傳播蔓延。亞 穩(wěn) 態(tài) 是 指 觸 發(fā) 器 無 法 在 某 個 規(guī) 定 時 間 段 內(nèi) 達 到 一 個 可 確 認 的 狀 態(tài) 。當 一 個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預測該單元的輸出電平,也 無法預測何時輸出 才能穩(wěn) 定在某 個正確

3、的電平上 。在這個 穩(wěn)定期 間,觸發(fā)器 輸出一些中間 級電平 , 或者可能處于振蕩狀態(tài),并 且這種無用的輸出電平可以沿信號通道上的各個觸 發(fā)器級聯(lián)式傳播下去。對 任 何 一 種 觸 發(fā) 器 ,在 時 鐘 觸 發(fā) 沿 前 后 的 一 個 小 時 間 窗 口 內(nèi) ,輸 入 信 號 必 須穩(wěn)定。這一時間窗口是多種因素的函數(shù),包 括觸發(fā)器設(shè)計、實現(xiàn)技術(shù)、運 行 環(huán)境以及無緩沖輸出上的負載等。輸入信號陡峭的邊沿可以將此窗口減至最 小 。隨 著 時 鐘 頻 率 的 升 高 ,會 出 現(xiàn) 更 多 有 問 題 的 時 間 窗 口 ,而 隨 著 數(shù) 據(jù) 頻 率 的 提升,這種窗口的命中概率則會增加。FPGA制造

4、商和IC晶片廠用“ MTBF來標識合格的觸發(fā)器,并且確定它們 的特性?!?MTBF (平均無故障時間)用統(tǒng)計方法描述了一個觸發(fā)器的亞穩(wěn)態(tài)特 性, 即確定某個觸發(fā)器出現(xiàn)故障的概率。 在計算 MTBF 時, 制造商部分基于 輸入信號改變導致觸發(fā)器不穩(wěn)定期間的時間窗口長度。另外, MTBF 的計算還 使用了輸入信號的頻率以及驅(qū)動觸發(fā)器的時鐘頻率。在一個 ASIC 或 FPGA 庫中, 每種觸發(fā)器都有時序要求, 以幫助你確定 容易出問題的窗口。建立時間” (Setup time)是指在時鐘沿到來之前,觸發(fā)器 輸入信號必須保持穩(wěn)定的時間。 “保持時間” (Hold time) 則是指在時鐘沿之后, 信號

5、必須保持穩(wěn)定的時間。這 些指標通常比較保守,以 應(yīng)對電源電壓、工 作溫 度 、信 號 質(zhì) 量 以 及 制 造 工 藝 等 各 種 可 能 的 差 異 。如 果 一 個 設(shè) 計 滿 足 了 這 些 時 序 要求, 則觸發(fā)器出現(xiàn)錯誤的可能性可以忽略不計?,F(xiàn)代 IC 與 FPGA 設(shè)計中使用的綜合工具可以保證設(shè)計能滿足每個數(shù)字 電路觸發(fā)器對建立與保持時間的要求。 然而, 異步信號卻給軟件提出了難題。 對新的時鐘域來說,從其它時鐘域傳來的信號是異步的。大 多數(shù)綜合工具在判 定異步信號是否滿足觸發(fā)器時序要求時遇到了麻煩。因為它們不能確定觸發(fā)器 處于非穩(wěn)態(tài)的時間,所以它們也就不能確定從一個觸發(fā)器通過組合邏

6、輯到達下 一個觸發(fā)器的總延遲時間。所以,最好的辦法是使用一些電路來減輕異步信號 的 影響 。信號同步信號同步的目的是防止新時鐘域中第一級觸發(fā)器的亞穩(wěn)態(tài)信號對下級邏 輯造成影響。簡單的同步器由兩個觸發(fā)器串聯(lián)而成,中間沒有其它組合電路。 這種設(shè)計可以保證后面的觸發(fā)器獲得前一個觸發(fā)器輸出時,前 一個觸發(fā)器已退 出了亞穩(wěn)態(tài),并 且輸出已穩(wěn)定。設(shè) 計中要注意將兩個觸發(fā)器放得盡可能近,以 確保兩者間有最小的時滯(clock skew)。IC 制造廠提供同步單元,幫助完成 信號同步工作。這些單元通常包括一 個有非常高增益的觸發(fā)器,它 比普通觸發(fā)器耗電更高,也 比較大。這 種觸發(fā)器 降低了對輸入信號建立-保持

7、時間的要求,并且當輸入信號導致亞穩(wěn)態(tài)時,它可 以防止出現(xiàn)振蕩。另 一種同步器單元包括兩個觸發(fā)器,省 去了將兩個單獨觸發(fā) 器靠近放置的工作,也防止設(shè)計人員誤在兩個觸發(fā)器間加入任何其它的組合邏 輯。為 了 使 同 步 工 作 能 正 常 進 行 ,從 某 個 時 鐘 域 傳 來 的 信 號 應(yīng) 先 通 過 原 時 鐘 域 上的一個觸發(fā)器,然后不經(jīng)過兩個時鐘域間的任何組合邏輯,直接進入同步器 的第一個觸發(fā)器中(圖 1)。這 一要求非常重要,因 為同步器的第一級觸發(fā)器 對組合邏輯所產(chǎn)生的毛刺非常敏感。如 果一個足夠長的信號毛刺正好滿足建立 -保持時間的要求,則同步器的第一級觸發(fā)器會將其放行,給新時鐘域

8、的后續(xù)邏 輯送出一個虛假的信號。(M1PL1圖1,在一個全同步器電路中,從某個時鐘域傳來的信號應(yīng)先通過原時鐘域上 的一個觸發(fā)器,然后不經(jīng)過原觸發(fā)器和同步器的第一個觸發(fā)器兩個時鐘域間的 任何組合邏輯,直接進入同步器的第一個觸發(fā)器中。一個經(jīng)同步后的信號在兩個時鐘沿以后就成為新時鐘域中的有效信號。信 號的延遲是新時鐘域中的一到兩個時鐘周期。一種粗略的估算方法是同步器電 路在新時鐘域中造成兩個時鐘周期的延遲,設(shè)計者需要考慮同步延遲將對跨時 鐘域的信號時序造成的影響。同步器有許多種設(shè)計方法,因為一種同步器不能滿足所有應(yīng)用的需求。同 步器的類型基本上有三種:電平、邊沿檢測和脈沖(表1)。雖 然還存在著其

9、它類型的同步器,但這三種類型的同步器可以解決設(shè)計者遇到的多數(shù)應(yīng)用問 題。在 電平同步器中,跨 時鐘域的信號在新時鐘域中要保持高電平或低電平兩 個時鐘周期以上。這種電路的要求是,在再次成為有效信號前,信號需要先變 成無效狀態(tài)。每一次信號有效時,接收邏輯都會把它看作一個單個事件,而不 管信號的有效狀態(tài)保持了多久。這種電路是所有同步器電路的核心。«|的舉型導應(yīng)削竽廿1總GllMI士LnH淚曲"lb由 blcam尊 usto# ewi.晦 士g書DMks fingerhJJti-irfJ Dera jt iftn w-hhttrtpdhm d HiUt *:-Cftrtfl UKT

10、 t TKV*邊沿檢測同步器在電平同步器的輸出端增加了一個觸發(fā)器(圖2)。新增 觸發(fā)器的輸出經(jīng)反相后和電平同步器的輸出進行與操作。這一電路會檢測同步 器輸入的上升沿,產(chǎn)生一個與時鐘周期等寬、高電平有效的脈沖。如果將與門 的兩個輸入端交換使用,就可以構(gòu)成一個檢測輸入信號下降沿的同步器。將與 門改為與非門可以構(gòu)建一個產(chǎn)生低電平有效脈沖的電路。圖2,邊沿檢測同步器在電平同步器的輸出端增加了一個觸發(fā)器。當一個脈沖進入更快的時鐘域中時,邊沿檢測同步器可以工作得很好。這 一電路會產(chǎn)生一個脈沖,用來指示輸入信號上升或下降沿。這種同步器有一個 限制,即輸入脈沖的寬度必須大于同步時鐘周期與第一個同步觸發(fā)器所需保

11、持 時間之和。最保險的脈沖寬度是同步器時鐘周期的兩倍。如果輸入是一個單時 鐘寬度脈沖進入一個較慢的時鐘域,則這種同步器沒有作用,在這種情況下, 就要采用脈沖同步器。脈沖同步器的輸入信號是一個單時鐘寬度脈沖,它觸發(fā)原時鐘域中的一個 翻轉(zhuǎn)電路(圖3 )。每當翻轉(zhuǎn)電路接收到一個脈沖時,它就會在高、低電平間 進行轉(zhuǎn)換,然后通過電平同步器到達異或門的一個輸入端,而另一個信號經(jīng)一 個時鐘周期的延遲進入異或門的另一端,翻轉(zhuǎn)電路每轉(zhuǎn)換一次狀態(tài),這個同步 器的輸出端就產(chǎn)生一個單時鐘寬度的脈沖。/ 匚口 HW仙11 s4J1.ila .l F TT 'fi Ji i WIAij-ELT圖3,脈沖同步器的輸

12、入信號是一個單時鐘寬度脈沖,它觸發(fā)原時鐘域中的一 個翻轉(zhuǎn)電路。脈沖同步器的基本功能是從某個時鐘域取出一個單時鐘寬度脈沖,然后在 新的時鐘域中建立另一個單時鐘寬度的脈沖。脈沖同步器也有一個限制,即輸 入脈沖之間的最小間隔必須等于兩個同步器時鐘周期。如果輸入脈沖相互過 近,則新時鐘域中的輸出脈沖也緊密相鄰,結(jié)果是輸出脈沖寬度比一個時鐘周 期寬。當輸入脈沖時鐘周期大于兩個同步器時鐘周期時,這個問題更加嚴重。 這種情況下,如果輸入脈沖相鄰太近,則同步器就不能檢測到每個脈沖。握手與FIFO在許多應(yīng)用中,跨時鐘域傳送的不只是簡單的信號,數(shù)據(jù)總線、地址總線 和控制總線都會同時跨域傳輸。工程師們用一些其它的手

13、段來處理這些情況, 如握手協(xié)議和FIFO等。當幾個電路不能預知相互的響應(yīng)時間時,握手方法能讓數(shù)字電路間實現(xiàn)有 效的通信。例如,仲裁總線結(jié)構(gòu)可以讓一個以上的電路請求使用單個的總線, 用仲裁方法來決定哪個電路可以獲得總線的訪問權(quán),例如PCI或 AMBA (高 級微控制器總線架構(gòu))。每個電路都發(fā)出一個請求信號,由仲裁邏輯決定誰是 贏家”獲勝的電路會收到一個應(yīng)答,表示它可以訪問總線。該電路于是中斷 請求,開始使用總線。不同時鐘域電路使用的握手協(xié)議有兩種基本類型:全握手(Full-ha ndshake)和部 分握手(partial-ha ndshake)。每 種類型 的握手 都要用同步器,每種都各有自己

14、的優(yōu)缺點。對全握手信號,雙方電路在聲明或中止各自的 握手信號前都要等待對方的響應(yīng)(圖4)。首先,電路 A聲明它的請求信號, 然后,電路B檢測到該請求信號有效后,聲明它的響應(yīng)信號。當電路 A檢測 到響應(yīng)信號有效后,中止自己的請求信號。最后,當電路B檢測到請求無效 后,它中止自己的響應(yīng)信號。除非電路A檢測到無效的響應(yīng)信號,否則它不 會再聲明新的請求信號。圖4,對全握手信號,雙方電路在聲明或中止各自的握手信號前都要等待對方的響應(yīng)。這種類型的握手使用了電平同步器。設(shè)計人員將這種技術(shù)用在如下情況: 響應(yīng)電路(電路 B)需要告知請求電路(電路 A)它可以處理請求。這種握手 方法要求請求電路延遲它的下一個請

15、求,直 到它檢測到響應(yīng)信號無效???以用 經(jīng)驗估算法判斷這個協(xié)議的時序:信 號跨越一個時鐘域要花兩個時鐘周期的時 間 ,信 號 在 跨 越 多 個 時 鐘 域 前 被 電 路 寄 存 。全 部 的 時 間 序 列 是 : A 時 鐘 域 中 最 多五個周期加上 B 時鐘域最多六個周期。 全握手類型很強健,因為通過檢測 請求與響應(yīng)信號,每個電路都清楚地知道對方的狀態(tài)。這種方式的不足之處是 完成所有交互的整個過程要花費很多時鐘周期。另一種類型是部分握手,它 可以縮短這些事件的過程。使 用部分握手信號 時 ,通 信 雙 方 的 電 路 都 不 等 對 方 的 響 應(yīng) 就 中 止 各 自 的 信 號

16、,并 繼 續(xù) 執(zhí) 行 握 手 命 令序列。部分握手類型比全握手類型在健壯性方面稍弱,因 為握手信號并不指 示各自電路的狀態(tài),每 一電路都必須保存狀態(tài)信息( 在全握手信號里這個信息 被送出去)。但 是,由 于無需等待其它電路的響應(yīng),完 整的事件序列花費時間 較少。當使用部分握手信號方式時,響應(yīng)的電路必須以正確的時序產(chǎn)生它的信 號。如果響應(yīng)電路要求先處理完一個請求,然后才能處理下一個請求,則 響應(yīng) 信號的時序就很重要。電 路用它的響應(yīng)信號來指示它的處理任務(wù)何時完成。一 種部分握手方法混合了電平與脈沖信號,而其它的方法則只使用脈沖信號。在第一種部分握手方法中,電路 A 以有效電平聲明其請求信號,電路

17、 B 則以一個單時鐘寬度脈沖作為響應(yīng)。此時,電路 B 并不關(guān)心電路 A 何時中止 它的請求信號。但為了使這種方法成立,電路 A中止請求信號至少要有一個 時鐘周期長,否則,電路B就不能區(qū)別前一個請求和新的請求。在這種握手 方式下,電路B為請求信號使用一個電平同步器,電路 A為響應(yīng)信號使用一 個脈沖同步器。只有當電路B檢測到請求信號時才發(fā)出響應(yīng)脈沖。這種情況 可以使電路A通過控制其請求信號的時序,控制同步器接收到的脈沖間隔(圖 5)。同樣可以用經(jīng)驗估算法確定時序,即信號跨越一個時鐘域要花兩個時鐘 周期并且在跨越時鐘域前被電路寄存。圖5,在一種部分握手方法中,電路 A發(fā)出它的請求信號,電路B則以一個

18、 單時鐘寬度脈沖作為響應(yīng)。全部的序列為 A時鐘域最多三個周期加上B時鐘域最多五個周期。這種 部分握手方法比全握手方法在 A、B兩個時鐘域分別少用了兩個和一個時鐘周 期。如果采用第二種部分握手方法可以再減少一些時鐘周期,此時電路 A用 一個單時鐘寬度脈沖發(fā)出它的請求,而電路B也用一個單時鐘寬度脈沖響應(yīng) 這個請求。這種情況下,兩個電路都需要保存狀態(tài),以指示請求正待處理。圖6,這種握手類型使用的是脈沖同步器,但如果其中一個電路時鐘比另一個電路時鐘快兩倍,則可以用邊沿檢測同步器來代替。這種握手類型使用的是脈沖同步器,但如果其中一個電路時鐘比另一個電 路時鐘快兩倍,則可以用邊沿檢測同步器來代替(圖6 )

19、。完整的時序是:A時 鐘域最多兩個周期加上B時鐘域最多三個周期。所以這種部分握手技術(shù)與全 握手方法相比,在 A時鐘域少用三個時鐘周期,在B時鐘域也少用三個時鐘 周期。同時,也比第一種部分握手方法分別在 A、B時鐘域快了一個和兩個周 期(表2)。這些握手協(xié)議針對的都是跨越時鐘域的單一信號。但當幾組信號 要跨越時鐘域時,設(shè)計人員就需要使用更加復雜的信號傳送方法。數(shù)據(jù)路徑設(shè)計在進行信號同步時有一個重要的規(guī)則,那就是不應(yīng)當在設(shè)計中的多個地方 對同一信號進行同步,即單個信號扇出至多個同步器。因為同步要花一到兩個 時鐘周期,設(shè) 計者不能確切地預測到每個信號何時跨越一個時鐘域。此外,在 新時鐘域中一組經(jīng)同步

20、后的信號其時序是不定的,因為同步延遲可以是一到兩 個時鐘周期,這與輸入信號到達同步器的時間有關(guān)。這種情況會在各個同步信 號間形成一種 競爭狀況” 這種競爭狀況在需要跨越時鐘域傳輸?shù)亩嘟M信號間 也會發(fā)生,例如數(shù)據(jù)總線、地 址總線和控制總線等。因此,不 能對組中的每個 信號單獨使用同步器,也不能對數(shù)據(jù)或地址總線的每一位單獨使用同步器,因 為在新的時鐘域中,要求每個信號同時有效。一種解決總線同步問題的方法是使用一個保持寄存器和握手信號。這種電 路包括一個保持信號總線的寄存器,以及一個握手機制(圖7)。握手信號指 示新時鐘域的電路何時可以對總線采樣,以及源電路何時可以更換當前寄存器 中保存的內(nèi)容。&#

21、39;M;我圖7, 種數(shù)據(jù)路徑同步器設(shè)計使用一個保持寄存器和握手信令。在 這種設(shè) 計中,傳 輸電路 將數(shù)據(jù)( 信號 總線)存 儲在保 持寄存 器,同 時發(fā) 出請求信號。這 兩個動作可以同時發(fā)生,因 為請求信號至少要花一個時鐘周期 才能讓 接收電 路檢測 到它(最小 的握手 -同步延遲)。當接收電路 采樣到數(shù) 據(jù)(信 號總線 )時 ,它 發(fā)出一 個響應(yīng) 信號。這 種設(shè) 計使用了 全握手 方法,所 以要 花較 長時間才能完成整個傳輸。對 接收電路而言,使用全握手信號的設(shè)計有較大的 時間窗口用于對信號總線采樣,因而效率較低。如 用部分握手方法代替全握手 方法則可以加快傳輸速度。用 這 種 總 線 同

22、 步 方 式 ,你 可 以 同 步 握 手 信 號 ,但 不 能 同 步 信 號 總 線 。信 號 總線來自于保持寄存器,它在接收電路采樣前一直保持穩(wěn)定。注 意,如果傳輸 電路向接收電路提交數(shù)據(jù)太快以致來不及處理,則 應(yīng)用中的總線同步可能不起 作用。高級數(shù)據(jù)路徑設(shè)計在 許 多 情 況 下 , 數(shù) 據(jù) 在 跨 越 時 鐘 域 時 需 要 “堆 積 ”起 來 , 因 此 使 用 單 個 保 持 寄存器 無法完 成工作 。例 如一 種情況 是某個 傳輸電 路猝發(fā)式 發(fā)送數(shù)據(jù),接 收電 路來不及采樣。另一種情況是接收電路采樣速度超出傳輸電路發(fā)送數(shù)據(jù)的速 度,但 采樣的 數(shù)據(jù)寬 度不夠。 這些情 況就要

23、使用 FIFO 了?;?本 上 ,設(shè) 計 者 使 用 FIFO 有 兩 個 目 的 :速 度 匹 配 或 數(shù) 據(jù) 寬 度 匹 配 。在 速 度匹配 時, FIFO 較快的 端口處 理猝發(fā) 的數(shù)據(jù) 傳輸,而較慢的 端口則 維持恒定 的數(shù)據(jù)流。但是,雖然訪問方式和速度不同,但 進出 FIFO 的平均數(shù)據(jù)速率必 須是相同的,否貝U FIFO 就會出現(xiàn)上溢(overflow) 或下溢(underflow) 問題。與 單寄存 器設(shè)計 相同, FIFO 將數(shù) 據(jù)保存 在寄存 器或存儲器中, 同時同 步狀態(tài)信 號,判 斷何時 可以把 數(shù)據(jù)寫入 FIFO 或從 FIFO 中讀出 。在 速 度 匹 配 應(yīng) 用

24、中 , 每 個 端 口 ( 讀 或 寫 ) 的 時 鐘 不 同 。 FIFO 中 的 寄 存 器 使用寫端口時鐘,就像保持寄存器使用電路時鐘來改變寄存器內(nèi)容一樣。信 號 同步發(fā)生在指針邏輯中,而且比握手信號要復雜得多。現(xiàn)在指針邏輯的設(shè)計有多種方法。第一種方法是將讀、寫選通進行同步, 同時在 各個時 鐘域使 用計數(shù)器 來跟蹤 FIFO 中可 用的項 。計 數(shù)器反 映出可 用于 讀寫的 FIFO 項目 號,計 數(shù) 器也與相 應(yīng)的端 口同步 。讀 計數(shù) 器跟蹤 包含有 效數(shù) 據(jù)的項 數(shù),而寫計數(shù)器則 跟蹤可 以存儲 數(shù)據(jù)的 項數(shù)。當對 指針邏輯進行 復位時 , 由于沒有數(shù)據(jù)可讀,讀 計數(shù)器從零起始。

25、寫計數(shù)器則從 FIFO 中項的總數(shù)開始 計數(shù),即所有項均可用來存儲數(shù)據(jù)。讀 選 通 信 號 累 減 讀 計 數(shù) 器 ,并 與 寫 時 鐘 域 同 步 ,因 為 它 同 時 也 累 加 寫 計 數(shù) 器 。寫 選 通 信 號 則 累 減 寫 計 數(shù) 器 ,并 與 讀 時 鐘 域 同 步 ,因 為 它 同 時 也 累 加 讀 計 數(shù)器。這 種 設(shè) 計 需 要 單 時 鐘 寬 度 脈 沖 以 及 用 于 讀 、寫 選 通 的 脈 沖 同 步 器 ,因 為 當 一個電平信號從一個時鐘域跨越到另一個更快的時鐘域時,在 較快時鐘域中它 能在更多的時鐘周期中保持有效。由 于只要讀或?qū)懶盘柺怯行У模總€計數(shù)器

26、就會發(fā)生變化,因此較快的時鐘域就檢測到更多的讀、寫,超 出較慢時鐘域?qū)?際發(fā)生的數(shù)量。脈 沖同步器可以將一個時鐘域的時鐘寬度脈沖轉(zhuǎn)換為新時鐘域 的時鐘 寬度脈 沖,每 個脈沖都 表示一 次 FIFO 的 讀或?qū)?。這 種 FIFO 狀 態(tài) 技 術(shù) 對 讀 、 寫 狀 態(tài) 都 不 太 有 利 。 當 FIFO 中 所 有 項 均 充 滿時,寫 端口狀態(tài)指示為滿,并 在讀選通觸發(fā)后繼續(xù)指示 FIFO 滿,因 為同步 過程會使選通信號延遲送給寫計數(shù)器。讀端口為空時也會出現(xiàn)這種情況,因 為 同步過程會使寫選通信號延遲到達讀計數(shù)器。這 種 設(shè) 計 的 另 一 種 考 慮 是 及 時 檢 測 全 滿 /

27、全 空 狀 態(tài) 。 如 果 FIFO 還 有 一 項 可用,并 且有寫選通觸發(fā),則 FIFO 必須立即置為全滿狀態(tài)。這樣才能提前一 個時鐘 給出全 滿標志 ,使 FIFO 有 足夠時 間防止 下一個 數(shù)據(jù)寫入 而產(chǎn)生 溢出。 對 FIFO 的 讀 端 口 也 是 這 樣 。 這 種 情 況 下 , 如 果 FIFO 里 只 有 一 個 數(shù) , 并 且 有讀選通觸發(fā),則必須置全空狀態(tài),以給讀電路足夠的時間防止讀空 FIFO 。這 種 指 針 邏 輯 限 制 電 路 在 每 個 時 鐘 周 期 中 訪 問 FIFO , 即 使 在 慢 速 時 鐘 域 中也是 這樣。這 一功能的 優(yōu)點在 于訪問 F

28、IFO 的電路 至少有 一個時 鐘周期 來評 估 FIFO 的 狀 態(tài) 。 FIFO 可 以 將 所 有 項 都 填 滿 數(shù) 據(jù) , 而 不 會 出 現(xiàn) 數(shù) 據(jù) 被 覆 蓋 或 全空無數(shù)據(jù)可讀的情況。這 種設(shè)計的另一個優(yōu)點是每一端都可以讀其相應(yīng)的計 數(shù)器,來 判斷 FIFO 中還有多少項可用。設(shè) 計者可以將這種 FIFO 設(shè)計用在進 行多次數(shù)據(jù)讀/寫的電路中,而不會造成上溢或下溢的情況。這 種設(shè)計 的不足 之處是由 計數(shù)器 來判斷狀態(tài),而不是直接 比較讀 、寫指針 。 對大型 FIFO 來說,這些計數(shù)器也很大。而 且,由于使用脈沖同步時,來自較 快時鐘域的讀、寫脈沖在較慢時鐘域的脈沖間至少必須

29、有兩個時鐘周期,因 此 平均數(shù)據(jù)速率為最低時鐘頻率的一半。解 決這些問題的一種方法是采用直接指 針比較法。在這種FIFO 設(shè)計中,讀、寫指針的比較決定了 FIFO 的狀態(tài)。異步設(shè) 計中的指針比較更富有挑戰(zhàn)性,因為每個指針位于不同的時鐘域中,對信號總 線的同步要求在同步握手信號期間總線不發(fā)生改變。將這種技術(shù)用于指針同步 的FIFO 設(shè)計可能會很慢。要解決這個問題,F(xiàn)IFO 指針邏輯使用了格雷碼, 代替指針使用的二進制碼。格雷碼在每一次計數(shù)增減時只改變其中的一位(表3)。你 可以在格雷碼 總線上使用同步器,因為每一次總線改變時只有一根信號線有變化,于是就消 除了格雷碼總線各位通過不同同步器時的競爭

30、情況。這種設(shè)計的指針為格雷碼 計數(shù)器。使用二進制指針時需要將其變換成格雷碼后的同步指針,而使用變換 邏輯會違反對同步信號的限制,即同步的信號在跨越時鐘域前要來自觸發(fā)器。格雷碼與二進制碼出較DecinHlBinary0D01121071311104w1105101111BIT1011111IDO81900110QP113011XF1KUO11Hnran11X)12nooKUO門itnK1114hidW151111KDC格雷碼計數(shù)器是一個二進制累加器,在累加器前、后各帶有一個轉(zhuǎn)換器, 分別用于格雷碼轉(zhuǎn)換為二進制碼,和二進制碼轉(zhuǎn)換為格雷碼(圖8)。格 雷碼與二進制碼的轉(zhuǎn)換是一個異或運算,所以只需比一個二進制計數(shù)器多幾個邏輯 電平。在格雷碼轉(zhuǎn)換成二進制碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論