<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è) > 嵌入式系統 > 牛人業(yè)話(huà) > 跨越鴻溝:同步世界中的異步信號

跨越鴻溝:同步世界中的異步信號

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

  握手與 FIFO

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

  在許多應用中,跨時(shí)鐘域傳送的不只是簡(jiǎn)單的信號,數據總線(xiàn)、地址總線(xiàn)和控制總線(xiàn)都會(huì )同時(shí)跨域傳輸。工程師們用一些其它的手段來(lái)處理這些情況,如握手協(xié)議和 等。

  當幾個(gè)電路不能預知相互的響應時(shí)間時(shí),握手方法能讓數字電路間實(shí)現有效的通信。例如,仲裁總線(xiàn)結構可以讓一個(gè)以上的電路請求使用單個(gè)的總線(xiàn),用仲裁方法來(lái)決定哪個(gè)電路可以獲得總線(xiàn)的訪(fǎng)問(wèn)權,例如 PCI 或 AMBA(高級微控制器總線(xiàn)架構)。每個(gè)電路都發(fā)出一個(gè)請求信號,由仲裁邏輯決定誰(shuí)是“贏(yíng)家”。獲勝的電路會(huì )收到一個(gè)應答,表示它可以訪(fǎng)問(wèn)總線(xiàn)。該電路于是中斷請求,開(kāi)始使用總線(xiàn)。

  不同時(shí)鐘域電路使用的握手協(xié)議有兩種基本類(lèi)型:全握手(Full-handshake)和部分握手(partial-handshake)。每種類(lèi)型的握手都要用同步器,每種都各有自己的優(yōu)缺點(diǎn)。對全握手信號,雙方電路在聲明或中止各自的握手信號前都要等待對方的響應(圖 4)。首先,電路 A 聲明它的請求信號,然后,電路 B 檢測到該請求信號有效后,聲明它的響應信號。當電路 A 檢測到響應信號有效后,中止自己的請求信號。最后,當電路 B 檢測到請求無(wú)效后,它中止自己的響應信號。除非電路 A 檢測到無(wú)效的響應信號,否則它不會(huì )再聲明新的請求信號。

  

對全握手信號

 

  圖4,對全握手信號,雙方電路在聲明或中止各自的握手信號前都要等待對方的響應。

  這種類(lèi)型的握手使用了電平同步器。設計人員將這種技術(shù)用在如下情況:響應電路(電路 B)需要告知請求電路(電路 A)它可以處理請求。這種握手方法要求請求電路延遲它的下一個(gè)請求,直到它檢測到響應信號無(wú)效??梢杂媒?jīng)驗估算法判斷這個(gè)協(xié)議的時(shí)序:信號跨越一個(gè)時(shí)鐘域要花兩個(gè)時(shí)鐘周期的時(shí)間,信號在跨越多個(gè)時(shí)鐘域前被電路寄存。全部的時(shí)間序列是:A 時(shí)鐘域中最多五個(gè)周期加上 B 時(shí)鐘域最多六個(gè)周期。全握手類(lèi)型很強健,因為通過(guò)檢測請求與響應信號,每個(gè)電路都清楚地知道對方的狀態(tài)。這種方式的不足之處是完成所有交互的整個(gè)過(guò)程要花費很多時(shí)鐘周期。

  另一種類(lèi)型是部分握手,它可以縮短這些事件的過(guò)程。使用部分握手信號時(shí),通信雙方的電路都不等對方的響應就中止各自的信號,并繼續執行握手命令序列。部分握手類(lèi)型比全握手類(lèi)型在健壯性方面稍弱,因為握手信號并不指示各自電路的狀態(tài),每一電路都必須保存狀態(tài)信息(在全握手信號里這個(gè)信息被送出去)。但是,由于無(wú)需等待其它電路的響應,完整的事件序列花費時(shí)間較少。

  當使用部

  分握手信號方式時(shí),響應的電路必須以正確的時(shí)序產(chǎn)生它的信號。如果響應電路要

  求先處理完一個(gè)請求,然后才能處理下一個(gè)請求,則響應信號的時(shí)序就很重要。電路用它的響應信號來(lái)指示它的處理任務(wù)何時(shí)完成。一種部分握手方法混合了電平與脈沖信號,而其它的方法則只使用脈沖信號。

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

  

在一種部分握手方法中,電路 A 發(fā)出它的請求信號,電路 B 則以一個(gè)單時(shí)鐘寬度脈沖作為響應

 

  圖5,在一種部分握手方法中,電路 A 發(fā)出它的請求信號,電路 B 則以一個(gè)單時(shí)鐘寬度脈沖作為響應。

  全部的序列為 A 時(shí)鐘域最多三個(gè)周期加上 B 時(shí)鐘域最多五個(gè)周期。這種部分握手方法比全握手方法在 A、B 兩個(gè)時(shí)鐘域分別少用了兩個(gè)和一個(gè)時(shí)鐘周期。如果采用第二種部分握手方法可以再減少一些時(shí)鐘周期,此時(shí)電路 A 用一個(gè)單時(shí)鐘寬度脈沖發(fā)出它的請求,而電路 B 也用一個(gè)單時(shí)鐘寬度脈沖響應這個(gè)請求。這種情況下,兩個(gè)電路都需要保存狀態(tài),以指示請求正待處理。

  

這種握手類(lèi)型使用的是脈沖同步器

 

  圖6,這種握手類(lèi)型使用的是脈沖同步器,但如果其中一個(gè)電路時(shí)鐘比另一個(gè)電路時(shí)鐘快兩倍,則可以用邊沿檢測同步器來(lái)代替。

  這種握手類(lèi)型使用的是脈沖同步器,但如果其中一個(gè)電路時(shí)鐘比另一個(gè)電路時(shí)鐘快兩倍,則可以用邊沿檢測同步器來(lái)代替(圖 6)。完整的時(shí)序是:A 時(shí)鐘域最多兩個(gè)周期加上 B 時(shí)鐘域最多三個(gè)周期。所以這種部分握手技術(shù)與全握手方法相比,在 A 時(shí)鐘域少用三個(gè)時(shí)鐘周期,在 B 時(shí)鐘域也少用三個(gè)時(shí)鐘周期。同時(shí),也比第一種部分握手方法分別在 A、B 時(shí)鐘域快了一個(gè)和兩個(gè)周期(表 2)。這些握手協(xié)議針對的都是跨越時(shí)鐘域的單一信號。但當幾組信號要跨越時(shí)鐘域時(shí),設計人員就需要使用更加復雜的信號傳送方法。

  

握手技術(shù)

 

  表 2

  數據路徑設計

  在進(jìn)行信號同步時(shí)有一個(gè)重要的規則,那就是不應當在設計中的多個(gè)地方對同一信號進(jìn)行同步,即單個(gè)信號扇出至多個(gè)同步器。因為同步要花一到兩個(gè)時(shí)鐘周期,設計者不能確切地預測到每個(gè)信號何時(shí)跨越一個(gè)時(shí)鐘域。此外,在新時(shí)鐘域中一組經(jīng)同步后的信號其時(shí)序是不定的,因為同步延遲可以是一到兩個(gè)時(shí)鐘周期,這與輸入信號到達同步器的時(shí)間有關(guān)。這種情況會(huì )在各個(gè)同步信號間形成一種“競爭狀況”。這種競爭狀況在需要跨越時(shí)鐘域傳輸的多組信號間也會(huì )發(fā)生,例如數據總線(xiàn)、地址總線(xiàn)和控制總線(xiàn)等。因此,不能對組中的每個(gè)信號單獨使用同步器,也不能對數據或地址總線(xiàn)的每一位單獨使用同步器,因為在新的時(shí)鐘域中,要求每個(gè)信號同時(shí)有效。

  一種解決總線(xiàn)同步問(wèn)題的方法是使用一個(gè)保持寄存器和握手信號。這種電路包括一個(gè)保持信號總線(xiàn)的寄存器,以及一個(gè)握手機制(圖 7)。握手信號指示新時(shí)鐘域的電路何時(shí)可以對總線(xiàn)采樣,以及源電路何時(shí)可以更換當前寄存器中保存的內容。

  

一種數據路徑同步器設計使用一個(gè)保持寄存器和握手信令

 

  圖7,一種數據路徑同步器設計使用一個(gè)保持寄存器和握手信令。

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

  用這種總線(xiàn)同步方式,你可以同步握手信號,但不能同步信號總線(xiàn)。信號總線(xiàn)來(lái)自于保持寄存器,它在接收電路采樣前一直保持穩定。注意,如果傳輸電路向接收電路提交數據太快以致來(lái)不及處理,則應用中的總線(xiàn)同步可能不起作用。

  高級數據路徑設計

  在許多情況下,數據在跨越時(shí)鐘域時(shí)需要“堆積”起來(lái),因此使用單個(gè)保持寄存器無(wú)法完成工作。例如一種情況是某個(gè)傳輸電路猝發(fā)式發(fā)送數據,接收電路來(lái)不及采樣。另一種情況是接收電路采樣速度超出傳輸電路發(fā)送數據的速度,但采樣的數據寬度不夠。這些情況就要使用 了。

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

  在速度匹配應用中,每個(gè)端口(讀或寫(xiě))的時(shí)鐘不同。FIFO 中的寄存器使用寫(xiě)端口時(shí)鐘,就像保持寄存器使用電路時(shí)鐘來(lái)改變寄存器內容一樣。信號同步發(fā)生在指針邏輯中,而且比握手信號要復雜得多。

模擬信號相關(guān)文章:什么是模擬信號


電路相關(guān)文章:電路分析基礎


脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理


關(guān)鍵詞: FPGA 異步信號 FIFO

評論


相關(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>