色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

跨時鐘域設計之控制信號傳輸工作原理

西西 ? 來源:博客園 ? 作者: IC_learner ? 2020-10-08 17:00 ? 次閱讀

最近我整理了一下跨時鐘域設計的一些知識,一方面這與亞穩態有關系,承接前面講到的內容,一方面當做復習吧。主要內容主要是是圍繞跨時鐘域展開的,主要內容概覽:

·跨時鐘域與亞穩態

·跨同步時鐘的控制信號傳輸

·時鐘同源,周期之間非整數倍的跨時鐘域

·跨異步時鐘域的控制信號傳輸

1、跨時鐘域與亞穩態

跨時鐘域通俗地講,就是模塊之間有數據交互,但是模塊用的不是同一個時鐘進行驅動,如下圖所示:

左邊的模塊1由clk1驅動,屬于clk1的時鐘域;右邊的模塊2由clk2驅動,屬于clk2的時鐘域。當clk1比clk2的頻率高時,則稱模塊1(相對于模塊2)為快時鐘域,而模塊2位為慢時鐘域。根據clk1和clk2是不是同步時鐘,可以將上面的跨時鐘域分為跨同步時鐘域(clk1與clk2是同步時鐘)和跨異步時鐘域(clk1和clk2不是同步時鐘)。根據信號是控制信號還是數據信號可以分為跨時鐘域的控制信號傳輸和數據信號的傳輸。

在跨時鐘域的信號傳輸過程中,可能出現亞穩態的情況,這個時候,需要同步器進行同步,減小亞穩態傳播下去的概率;注意這里的同步器只能減少亞穩態往下傳播的概率,如果產生亞穩態,亞穩態恢復穩定后的電平不一定是正確的電平,如果穩定后的電平是錯誤的,那么就很有可能引起后面的邏輯的錯誤,這是需要強調的;當然,一般情況下(我這里是說一般情況)很少發生亞穩態,不然后面的邏輯豈不是要掛?

根據上面的內容可知,跨時鐘域可能需要同步器來抑制亞穩態的往下傳播的概率,根據情況的不同需要不同的同步器,大致情況如下所示:

跨同步時鐘域 快時鐘域到慢時鐘域 控制信號傳輸
跨異步時鐘域 慢時鐘域到快時鐘域 數據信號傳輸

·跨同步時鐘域下,快時鐘域到慢時鐘域的控制信號傳輸;

·跨同步時鐘域下,慢時鐘域到塊時鐘域的控制信號傳輸;

·跨同步時鐘域下,快時鐘域到慢時鐘域的數據信號傳輸;

·跨同步時鐘域下,慢時鐘域到塊時鐘域的數據信號傳輸;

·跨異步時鐘域下,快時鐘域到慢時鐘域的控制信號傳輸;

·跨異步時鐘域下,慢時鐘域到塊時鐘域的控制信號傳輸;

·跨異步時鐘域下,快時鐘域到慢時鐘域的數據信號傳輸;

·跨異步時鐘域下,慢時鐘域到塊時鐘域的數據信號傳輸;

看著這八大類型,心里就虛,但是這里先劇透一下,在數據的傳輸(主要是多位數據的傳輸)里面,無論是跨同步還是跨異步,主要(注意是主要)都是使用比較大的同步隔離器,進行隔離緩沖數據,比如FIFO、RAM;因此一般就會分為控制信號(一般是1位信號)和數據這兩種情況設計同步器。跨時鐘域的數據傳輸我們放在最后講。今天主要整理跨時鐘域的控制信號傳輸。

我在前面的一篇博客中說到了同步電路與異步電路的區分:http://www.cnblogs.com/IClearner/p/6440488.html。這里我們要隨機應變,在這里更新一下傳統同步時鐘的概念:系統中的多個時鐘,如果他們的邊沿相對的時間差固定(或者說相位固定),那么就屬于同步時鐘。它們可以是不同時鐘源產生的,但是通過鎖相環把它們之間的相位進行固定,因此是同步時鐘。它們可能是同一時鐘源產生的,但是經過分頻之后,它們之間的相位隨著初始相位和時間變化,這類時鐘可以叫他同步時鐘,但是從這個傳統的概念出發,這就是異步時鐘(這個與我上面的那篇博客不一樣,要注意),在處理上當做異步時鐘進行處理。好了,說了這么多,接下來我們就根據時鐘的分類來進行說說吧。

2、跨同步時鐘的控制信號傳輸

(1)同頻同相位的兩個同步時鐘

波形如下所示:

這兩個時鐘可以看做是同一個時鐘,也就是單時鐘設計,允許有1個時鐘的周期進行傳輸數據,因此只要滿足普通的同步電路設計要求(滿足建立時間和保持時間,控制信號的傳輸延時要在一定范圍內)就可以了,不會出現亞穩態,也不會出現數據丟失的情況,一般不需要同步器。

(2)同頻不同相位的兩個同步時鐘

波形如下所示:

這個固定的相位可以看成是時鐘的偏移,允許的傳輸時間小于一個時鐘周期,但是只要滿足控制信號的輸出是在clk1的控制下進行翻轉的,因此只要滿足同步設計的一般要求(滿足建立時間和保持時間,控制信號的傳輸延時要在一定范圍內),就可以滿足時序,不會出生亞穩態,也不會出現數據丟失的情況,因此一般不需要同步器。

(3)不同頻,但是存在整數倍的關系

假設沒有初始相位差(或者即使有初始相位差固定,也可以通過后期修復),clk1的時鐘頻率是clk2的3倍。

·當從快時鐘域跨到慢時鐘域時(也就是控制信號從clk1的模塊傳輸到clk2的模塊),波形如下所示:

如果是clk1在第2個上升沿進行發送信號,只要控制信號在3個clk1的周期內到達,就不會出現亞穩態;...如果clk1在第4個上升沿進行發送信號,就需要控制信號在1個clk1的周期內到達,就不會出現亞穩態。因此只要控制信號從發送時鐘域出發到達目的時鐘域的時間小于clk1的時鐘周期,就不需要同步器;一般情況下,控制信號是觸發器觸發,觸發器捕獲,一般滿足這個關系,如下所示:

然而需要注意的,這個是從快傳到慢,慢時鐘域可能會采樣不到控制信號從而丟失控制信號,也就是說,我控制信號在從clk1跑到clk2,并且保持一個時鐘(clk1)周期,但是你clk2的時鐘沿還沒有來,等到clk2的上升沿來了,我這個控制信號就已經更新(或者失效)了,上面恰好在時鐘clk2上升沿的前一個時鐘周期clk1發出信號才采到,如果不是那個時候發送,就會丟失控制信號,如下所示:

在第2個時鐘沿發送信號的時候,只持續了一個時鐘周期,因此clk2捕捉不到(這樣就是功能性錯誤了,不單單是時序上的亞穩態而已了);只有在第4個時鐘沿的時候發送控制信號,clk2才捕捉得到。因此我們就需要把這個控制信號的周期延遲到clk1周期的3倍,這個可以通過計數器或者狀態機進行實現,延長后的波形如下所示:

可見,這時候不論在上面時候進行發送數據,clk2都能捕捉得到。

因此一般情況下不需要同步器,但是需要把快時鐘域的控制信號根據進行延長合適的時間(根據時鐘之間的倍數關系進行確定,控制信號的長度要≥捕獲時鐘的周期,一般取1.5倍,上圖只是1倍),避免慢時鐘域丟失信號。

·當慢時鐘到快時鐘域時(也就是控制信號從clk2的模塊傳輸到clk1的模塊),波形如下所示:

很顯然,快時鐘能夠采樣得到慢時鐘的控制信號,而且采樣了三次,輸出為:

Clock2的控制信號就達到了clk2周期的3倍,如果只需要1個clk周期的控制信號,可以通過上升沿檢測電路實現,其輸出波形如下所示:

3、時鐘同源,周期之間非整數倍的跨時鐘域

當兩個時鐘都來源于同一個時鐘,經過PLL分頻之后,產生兩個時鐘時鐘,一個時鐘是另外一個時鐘的非整數倍,相位是隨時間變化的。在這種情況下,我們可以把這兩個時鐘當做同步時鐘,也可以當做異步時鐘;在傳統的設計中,這樣的時鐘會當做異步時鐘進行處理。下面我們就來看看這樣的時鐘處理要不要加同步器吧。

假如時鐘源的時鐘頻率為clk,經過PLL后,產生一個時鐘clk1和一個時鐘clk2:

假設clk1是快時鐘,clk2是慢時鐘。由于控制信號僅僅在兩個時鐘域的觸發器之間傳輸,觸發器之間不存在任何邏輯,因此控制信號從發送觸發器到捕獲觸發器的時間很小,假設為t ps,當發送沿與捕獲沿之間的間距大于tps,就不會產生亞穩態(理論情況,不考慮時鐘偏移、翻轉等因素)。當clk1的頻率不是clk2的整數倍的時候,他們的相位是隨著時間的改變而改變的,在知道了clk1和clk2的頻率后,就可以知道理論下clk1和clk2的相位關系,那么就會有下面的情況:

(其實也就分為要不要加同步器的的情況)

(1)(跨時鐘域無論是快到慢還是慢到快)兩個時鐘存在最小相位差,且最小相位差大于t。如下所示:

這里的這種情況下,時鐘最小最小的相位差T>t,也就是說,控制信號不會違反捕獲寄存器的建立時間和時間。需要注意的是,這是快時鐘到慢時鐘域的控制信號傳輸,要防止信號丟失的情況,也就是需要將控制信號延長到一定的長度。

從慢時鐘到時鐘的波形就不畫了, 但是主要符合兩個時鐘(無論是快到慢還是慢到快)存在最小相位差,且最小相位差大于t,就不會違反建立時間和保持時間,基本不會產生亞穩態。因此在這種情況下,是不需要同步器的。

(2)(跨時鐘域無論是快到慢還是慢到快)兩個時鐘中,發送沿到接收沿的相位很窄,小于t,也就是違反捕獲寄存器的建立時間和保持時間,但是下一次的發送沿到接收沿的相位很大(不違反捕獲寄存器的建立時間和保持時間)的情況,如下所示:

在相位小的地方,建立時間不足,引起了亞穩態,這時候就要上我們的同步器了,這里隆重推出我們的同步器——雙D觸發器,其電路圖如下所示:

要注意,其中間不能有任何組合邏輯,電路圖與對于的時序關系如下所示(代碼就不寫了,電路簡單):

再次強調,雙D觸發器(觸發器鏈)只能抑制亞穩態往下傳輸(或者減小其往下傳輸的概率),并不一定能夠同步正確的控制信號的值,這與亞穩態穩定后的值有關,上圖中一級觸發器的亞穩態穩定后的值恰好是高電平,因此二級觸發器采樣后的輸出值為高電平。如果上圖中一級觸發器的亞穩態穩定后的值是低電平,那么二級觸發器采樣后的輸出值將為低電平,也就是輸出了錯誤的控制信號。

這里再啰嗦一下,在這種情況下(也就是有亞穩態的情況下),從慢到快,只有亞穩態的問題;而從快傳輸到慢,不僅有要抑制亞穩態往下傳播的問題,還有控制信號丟失的問題,這里就需要延長控制信號的長度或者采取其他措施(后面會講)。

(3)兩個時鐘相鄰的幾次發送沿和接收沿的相位差都很小的情況,如下圖所:

這種情況可以說就基本是異步時鐘域之間的控制信號傳輸了,在這種情況下,必定要加觸發器鏈同步器,抑制亞穩態往下傳播。跟前面的情況一樣,從慢到快,只有亞穩態的問題;而從快傳輸到慢,不僅有要抑制亞穩態往下傳播的問題,還有控制信號丟失的問題,這里就需要延長控制信號的長度或者采取其他措施(后面會講)。

4、跨異步時鐘域的控制信號傳輸

其實跨異步時鐘域的波形跟前面的3.(3)類似,只不過兩個時鐘域的時鐘是完全沒有關系的時鐘而已。在這樣的情況下,我們可以采取跟前面類似的方法:首先觸發器鏈抑制亞穩態的傳輸一定是要的,然后是快時鐘到慢時鐘的問題,也就是采樣短脈沖的控制信號問題,除了對控制信號進行延長之外,我們還可以其他的方法,下面就來整理整理吧:

(1)握手/反饋機制

采用握手反饋機制,即可以抑制亞穩態的傳輸,又可以正確地傳輸控制信號。這種握手/反饋機制對所有的跨異步時鐘的控制信號都有用,不過主要用在快到慢時鐘、易產生亞穩態的情況。說了那么多,都沒有實在的,下面就來看點實在的吧——握手/反饋機制電路圖:

波形如下所示(手繪....):

其實原理很簡單,當控制信號變高時(adat與adat1),慢時鐘域的觸發器鏈(bdat1和bdat2)進行采樣,采樣得到的高電平(bdat2)后,也就是確認采樣得到控制信號后,再通過觸發器鏈反饋給快時鐘域(abdat1和abdat2),讓快時鐘域把控制信號拉低(拉低的或者處理時長在后面有電路),就完成控制信號的正確跨時鐘傳輸。本來不想寫代碼了的,畢竟有電路了,但是想想還是貼一下代碼吧,畢竟最近整理過程中都沒有寫代碼了,感覺有點生疏了,代碼如下(如果有錯請指出):

當然,在慢時鐘域階段,我們也可以添加邊沿檢測(上升沿)電路,一方面讓輸出只有一個脈沖的控制信號,另一方面準確地進行控制,以防止亞穩態的干擾。

在上面的握手方案中,我們通過反饋信號進行控制信號的延時來讓慢時鐘域充分采樣得到控制信號,本質上是也是對控制信號的延時。這個延時的具體實現,需要對控制信號的產生邏輯進行處理,來滿足延時的要求,如下所示:

除了上面對控制信號處理之外,我們還可以對快時鐘域的時鐘動點手腳,具體電路如下所示:

這里通過讓快時鐘域觸發器(特指rd_en觸發器)的時鐘停止工作的方式,讓控制信號保持一定的時間。時鐘停止之后,rd_en觸發器的輸出就會保持不變,等到反饋信號回來,告知慢時鐘域采樣得到高電平后,再恢復快時鐘域的時鐘,波形如下所示:

時鐘停止的邏輯電路(類門控電路)的代碼如下所示(代碼如果有錯,歡迎指出):

當然,這是一個組合電路。這樣子會令后面的輸出電路產生毛刺,類似于門控時鐘那樣,于是乎我們就可以使用門控時鐘那樣的技巧,防止輸出產生毛刺。這里就不詳細說明了。

(2)窄脈沖捕捉電路

前面的控制信號,它都需要反饋信號來把有效拉為無效,可以說這個控制信號是不“自由”的。有時候,我們需要捕捉異步短脈沖控制信號,這個控制信號完全由前面的邏輯電路生成,與我后面的電路信號無關,也就是說沒有反饋信號,你也需要采樣到這個短脈沖控制信號。下面的窄脈沖捕捉電路可以捕捉到快時鐘域產生的異步窄脈沖控制信號,電路如下所示:

波形圖如下所示:

從波形圖中可以知道,這是利用了脈沖信號的上升沿進行輸出脈沖信號,然后通過后面反饋回來的信號進行清零,從而為下一次脈沖控制信號做好準備。需要注意的是,窄脈沖控制信號的產生頻率不能太快,也就是需要等到清零信號無效(三個觸發器的延時)后才能發出下一個脈沖控制信號,不然后面的慢時鐘域采樣電路無法識別兩次控制信號,而只當成一次控制信號處理。代碼根據電路圖寫就好了=.=。

==========================================分割線=====================================================

控制信號的跨時鐘域傳輸到這里就講完了,下面進行總結一下:

·在跨時鐘域的時候,不一定需要跨時鐘域電路(同步器或者握手信號),接近異步時鐘或者就是異步時鐘的時候跨時鐘域就得加上了。

·在慢到快的時鐘域中,加上觸發器鏈基本上就可以了,主要是抑制亞穩態的傳播。

·但是在快到慢的時鐘域中,不僅需要觸發器鏈進行抑制亞穩態的傳播,還要防止慢時鐘域采不到快時鐘域的數據,因此就添加反饋/握手電路(這個反饋信號是指跨時鐘域的反饋信號)。

·在最后,介紹了窄脈沖控制信號捕捉電路,這個電路不需要添加反饋信號,也就是說只要控制信號的頻率不是快,只要有窄脈沖(不是毛刺),就可以捕捉得到,而不需要反饋信號控制脈沖寬度(這個反饋信號是指跨時鐘域的反饋信號,其實還是需要反饋清0的)。

整理了好久才整理完=.=累,終于可以發了......

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 波形
    +關注

    關注

    3

    文章

    379

    瀏覽量

    31578
  • 信號傳輸
    +關注

    關注

    4

    文章

    428

    瀏覽量

    20194
  • 控制信號
    +關注

    關注

    0

    文章

    166

    瀏覽量

    11978
  • 異步時鐘
    +關注

    關注

    0

    文章

    17

    瀏覽量

    9409
收藏 人收藏

    評論

    相關推薦

    伺服電機的工作原理控制方式

    伺服電機的工作原理 伺服電機是一種能夠將電信號轉換為精確的機械運動的設備。它的工作原理基于電磁感應原理,通過精確控制電機的轉速和轉矩來實現對機械系統的精確
    的頭像 發表于 12-05 15:18 ?574次閱讀

    DDR內存的工作原理與結構

    電子設備的內存技術。以下是對DDR內存的工作原理與結構的介紹: 一、工作原理 時鐘同步 :DDR內存是同步的,這意味著數據傳輸與系統時鐘同步
    的頭像 發表于 11-20 14:32 ?523次閱讀

    一文解析時鐘傳輸

    一、單比特CDC傳輸1.1 慢到快 快時鐘相比慢時鐘采樣速度更快,也就是說從慢時鐘
    的頭像 發表于 11-16 11:55 ?570次閱讀
    一文解析<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b><b class='flag-5'>傳輸</b>

    CAN總線控制器的工作原理

    CAN(Controller Area Network,控制器局域網)總線控制器的工作原理涉及多個方面,包括消息傳輸、沖突檢測與解決、總線仲裁等關鍵機制。以下是對CAN總線
    的頭像 發表于 09-30 11:33 ?926次閱讀

    sdi接口傳輸什么信號

    SDI接口,全稱Serial Digital Interface(串行數字接口),主要用于傳輸 數字信號 ,特別是非壓縮的視頻信號。其工作原理是將視頻和音頻
    的頭像 發表于 08-20 15:03 ?1251次閱讀

    控制與保護開關的工作原理及結構特點

    開關主要由主觸點、輔助觸點、過載保護裝置、短路保護裝置等部分組成。其工作原理如下: 主觸點:主觸點是控制與保護開關的核心部件,負責接通和斷開電路。當控制信號輸入時,主觸點閉合,電路接通
    的頭像 發表于 07-31 15:03 ?1570次閱讀

    RTC實時時鐘的基本概念和工作原理

    精確的實時時間,并為電子系統提供精確的時間基準。本文將詳細闡述RTC實時時鐘的基本概念、工作原理以及其在現代電子設備中的應用。
    的頭像 發表于 05-27 15:43 ?3783次閱讀

    頻譜分析儀的工作原理

    頻譜分析儀的工作原理基于傅里葉變換,這是一種將時間信號轉換為頻率信號的數學算法。通過傅里葉變換,頻譜分析儀可以將待測
    的頭像 發表于 05-08 16:12 ?726次閱讀

    信號發生器的工作原理

    信號發生器的工作原理主要是基于電路中的振蕩器和放大器來產生、調整和輸出所需的電信號
    的頭像 發表于 05-07 15:39 ?1435次閱讀

    GPS衛星同步時鐘工作原理及應用場景介紹

    等領域得到了廣泛應用。 1. GPS衛星同步時鐘工作原理 GPS衛星同步時鐘工作原理可以分為以下幾個步驟: GPS衛星信號接收:GPS接
    的頭像 發表于 03-19 10:28 ?1893次閱讀
    GPS衛星同步<b class='flag-5'>時鐘</b>的<b class='flag-5'>工作原理</b>及應用場景介紹

    介紹一個IC設計錯誤案例:可讀debug寄存器錯誤時鐘

    本文將介紹一個時鐘錯誤的案例如圖所示,phy_status作為一個多bit的phy_clk時鐘信號,需要輸入csr模塊作為一個可讀狀態
    的頭像 發表于 03-11 15:56 ?547次閱讀
    介紹一個IC設計錯誤案例:可讀debug寄存器錯誤<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b>

    芯片為什么要時鐘信號 時鐘芯片的作用是什么?

    基準,使得整個芯片能夠以協調一致的方式進行工作時鐘信號的重要性主要表現在以下幾個方面: 1. 同步功能:芯片內部的各個模塊需要以同步的方式進行操作,以確保數據的準確傳輸和處理。
    的頭像 發表于 01-29 18:11 ?4280次閱讀

    芯片時鐘設計案例簡析(一)

    最經典的2DFF 1-bit同步器如下,下圖結構通常用于單bit控制信號的異步處理
    的頭像 發表于 01-18 09:24 ?1070次閱讀
    芯片<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>設計案例簡析(一)

    時鐘的解決方案

    在很久之前便陸續談過亞穩態,FIFO,復位的設計。本次亦安做一個簡單的總結,從宏觀上給大家展示時鐘的解決方案。
    的頭像 發表于 01-08 09:42 ?917次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的解決方案

    如何處理時鐘這些基礎問題

    對于數字設計人員來講,只要信號從一個時鐘跨越到另一個時鐘,那么就可能發生亞穩態。我們稱為“
    發表于 01-08 09:39 ?657次閱讀
    如何處理<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>這些基礎問題
    主站蜘蛛池模板: xxx性欧美在线观看| 久久精品国产欧美日韩99热| 免费国产成人高清在线看软件| 最新无码国产在线视频2020| 暖暖视频免费观看视频| 东北小伙FREECHINESE野外| 亚洲高清中文字幕免费| 狼人大香伊蕉国产WWW亚洲| 99精品国产第一福利网站| 日韩中文网| 精品一区二区三区AV天堂| 99热国产这里只有精品6| 无码不卡中文字幕在线观看| 久久人妻少妇嫩草AV蜜桃35I| 扒开女生尿口| 亚洲欧美一级久久精品| 欧美国产在线一区| 国产在线精品亚洲二品区| 91麻豆精品国产一级| 忘忧草在线社区WWW日本-韩国| 久久vs国产综合色| 动漫人物差差差30分钟免费看| 亚洲综合网国产精品一区| 欧美亚洲国产专区在线| 好大太快了快插穿子宫了| 菠萝蜜国际一区麻豆| 亚洲免费视频日本一区二区| 欧美日韩中文国产一区| 精品国产品国语在线不卡| 吃奶摸下的激烈免费视频| 中国少妇内射XXXHD免费| 午夜福利电影网站鲁片大全| 欧美乱码卡一卡二卡四卡免费| 精品亚洲一区二区三区在线播放| 俄罗斯12一15处交| 52av我爱| 亚洲一区二区免费看| 视频专区亚洲欧美日韩| 女人被躁到高潮嗷嗷叫免费| 精品国产乱码久久久久久下载 | 久久久久久天天夜夜天天|