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

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

3天內不再提示

時鐘同步的總線電路方案

CHANBAEK ? 來源:老戚的硬件筆記 ? 作者:老戚的硬件筆記 ? 2023-06-23 17:53 ? 次閱讀

高速數字電路模塊通常以 同步 (synchronous)電路的形式實現(xiàn),它們由一個或者多個時鐘驅動(觸發(fā))。對于 單一時鐘(域) 的同步電路而言,只要輸入和時鐘的關系滿足 建立(setup)時間 、保持(hold)時間的時序關系,電路的輸出(布爾值)就是可預測的,這是數字邏輯電路設計的基礎。如果 不能滿足建立保持時間 ,我們認為輸入是 異步 (asynchronous) 信號 。一個時鐘域的同步信號輸出到另一個時鐘域通常被認為是異步信號。

本文從同步電路的時序模型出發(fā),探討了兩種時鐘同步的總線電路方案:

共同時鐘 (common clock)總線

源同步 (source synchronous)總線

共同時鐘總線的收發(fā)端使用同一時鐘,結構簡單,由于物理限制和PVT效應,局限于時鐘速率比較低的應用;源同步總線增加 接口時鐘 ,并以 與數據相同的方式發(fā)送 ,大大提升了接口時鐘速率,由于引入了 不同的時鐘域 ,也增加了接口設計的復雜程度。

1. 時鐘同步電路的時序模型

wKgaomSRLJmAdlsvAABt7uLNKaE952.jpg

<圖1>

寄存器A在時鐘(launch clock)的上升沿打出數據,經過兩段飛行時間(傳輸延時)和組合邏輯電路延時之后,在下一個時鐘沿(capture clock)被寄存器B抓取,這里假設A、B的時鐘完全相同 - 頻率相同相位相同。在兩個時鐘上升沿之間,按照時間順序,發(fā)生了下列事件:

寄存器A打出輸出(QA)。QA在上升沿之后一段時間才能有效(valid),這個時間是tco(clock to output);

傳輸延時tflight1,組合邏輯電路引起的延時tlogic,傳輸延時tflight2;

寄存器B抓取輸入。輸入在時鐘上升沿之前必須提前穩(wěn)定(建立時間tsetup),在時鐘上升沿之后保持一段時間(保持時間thold)。假如不滿足建立、保持時間的要求,那么B的輸出可能會非0非1的亞穩(wěn)態(tài)(Metastability)。

wKgZomSRLJmAL345AAClCV0S1-E092.jpg

<圖2>

把這些事件銜接在一起,形成了時序預算(timing budget)分配圖。注意,‘X’表示不確定區(qū)間,通常是由PVT(制程電壓溫度)效應引起的偏差。

tsetup_margin = Period - tco(max)- tflight1 - tlogic(max) - tflight2 - tsetup

thold_margin = tco(min) + tflight1 + tlogic(min) + tflight2 - thold

tsetup_margin和thold_margin為 時序裕量 (margin),它>=0代表滿足建立保持時間要求。

2. 共同時鐘(common clock)系統(tǒng)總線

共同時鐘系統(tǒng)其實可以借用<圖1>,只需要把寄存器換成芯片(系統(tǒng))。

共同時鐘系統(tǒng)只有一個時鐘(域),無論發(fā)送端還是接收端。

回到時序計算公式,要使tsetup_margin >=0,可以得到:

Period >= tco(max) + tflight1 + tlogic(max) + tflight2 + tsetup

右邊這些參數代表了真實的物理局限,它們決定了時鐘可以跑多快(時鐘周期最小是多少)。

tflight1、tflight2來自于PCB走線,連接器,芯片封裝等等。

tco、tsetup、tlogic代表芯片的 物理特性參數 。不同的芯片在不同的溫度/電壓下由于PVT效應表現(xiàn)會有變化,形成了時序圖上的 不確定區(qū)間 。我們必須計算最惡劣(worst case)的情況,這會吃掉時序裕量。

而且,我們也做不到理想的單一同步時鐘。出于信號質量的考量,時鐘信號通常是點對點(point to point)的連接。不同模塊的時鐘,通常是連接同一個時鐘buffer的不同扇出(fanout)。在工程實踐上,理想的同步很難做到,只能把相位偏差(skew)控制在一定范圍內。

所有這些,都限制了時鐘速度或者數據吞吐量的提升,而優(yōu)化參數常常意味著成本的抬升。老戚看到的共同時鐘系統(tǒng)的時鐘沒有超過100MHz的。實現(xiàn)更高速總線的解決辦法是源同步時鐘方案。

3. 源同步(source synchronous)系統(tǒng)

源同步在芯片(系統(tǒng))接口上 同時輸出數據和(接口)時鐘 ,數據和時鐘采用完全相同的IO結構,從而最大程度的抵消tco,tflight等等。通常認為,同一個芯片上的PVT效應也是一致的。

wKgaomSRLJmAVx4-AACHKcgr_uk307.jpg

<圖3>

<圖3>是典型的中心對齊(center aligned)的源同步DDR輸出。內部PLL的輸出兩路相位相差90度的時鐘,經過同等的傳輸延時,到達接收端的時候,時鐘剛好處在數據的中心(假定接收端建立保持時間的要求也是對等的)。接收端使用接口時鐘clock_out抓取數據data_out,緊接著把數據同步到本地時鐘。 接口時鐘和本地時鐘并不一致 ,屬于 不同的時鐘域 。

現(xiàn)有的高速并行接口無一例外都是源同步,最典型的當然是內存接口。以DDR4為例,地址/命令/片選信號和主時鐘形成了一組源同步總線,內存數據DQ每8位就會有一個DQS信號作為接口時鐘,形成源同步的數據時鐘總線。在接收端,數據會先被抓取到相應DQS的時鐘域,然后同步到主時鐘。

源同步很好的解決了接口總線的速度問題,卻也引入了不同的時鐘域, 增加了收發(fā)接口設計的復雜度 。(系統(tǒng)攻城獅成功甩鍋給了芯片)

4.跨時鐘域(clock domain crossing)

實現(xiàn)跨時鐘域的信號傳遞要回到時鐘域C0的輸出到時鐘域C1的輸入的建立保持時間的基本問題。

假如時鐘C0/C1 同源 (不同頻,例如分頻/倍頻關系)而且相位差固定的 可以直接用本地時鐘抓取 ;同頻(源)但是不知道相位關系不確定的可以以FIFO的方式解決;有頻差的也可以用 FIFO解決 ,但要防止溢出(overrun,underrun)。

還是以DDR4內存接口為例,假設主時鐘是1600MHz,那么DQS則是倍頻 --- 3200MHz。由于時鐘(包括地址/命令/片選)信號的fly-by拓撲,時鐘到達不同內存顆粒存在先后順序。對于寫操作(write),控制器通過write leveling偵測到未經調整的DQS和主時鐘的相位關系,相應的調整輸出DQS的相位,保證內存顆粒接收的DQS和主時鐘保持 特定的相位關系 ,從而在顆粒內部能夠以最簡單的方式(同時延時latency最小)完成跨時鐘域。對于讀操作,似乎有read leveling來實現(xiàn)相似的功能(這方面資料不詳)。有趣的是,在DDR4內存接口,控制器(通常邏輯更為復雜)承擔了所有時序調整的責任,內存(存儲廠商的邏輯設計能力要差一些)接口則以最簡化的方式工作。

以太網領域,處理跨時鐘域更常用的方法是FIFO(First In First Out)。FIFO不僅能夠處理同頻時鐘的跨時鐘域數據轉換,也能處理不同頻率(有限頻差)的跨時鐘域處理,從而獲得了廣泛的應用。PCIe協(xié)議和以太網協(xié)議都運用基于FIFO的 彈性緩沖 (elastic buffer)來處理系統(tǒng)時鐘的PPM偏差問題,這個話題咱們下回分解。

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

    關注

    31

    文章

    5268

    瀏覽量

    119640
  • DDR
    DDR
    +關注

    關注

    11

    文章

    701

    瀏覽量

    65093
  • 總線
    +關注

    關注

    10

    文章

    2848

    瀏覽量

    87839
  • 數字電路
    +關注

    關注

    193

    文章

    1590

    瀏覽量

    80287
  • 時鐘同步
    +關注

    關注

    0

    文章

    83

    瀏覽量

    12740
收藏 人收藏

    評論

    相關推薦

    基于D觸發(fā)器實現(xiàn)時鐘電路同步設計

    時鐘使能電路同步設計的重要基本電路,在很多設計中,雖然內部不同模塊的處理速度不同,但是由于這些時鐘是同源的,可以將它們轉化為單一的
    發(fā)表于 08-06 10:35 ?4714次閱讀
    基于D觸發(fā)器實現(xiàn)<b class='flag-5'>時鐘</b><b class='flag-5'>電路</b><b class='flag-5'>同步</b>設計

    請問什么PSoC組件與系統(tǒng)總線時鐘同步?

    我已經嘗試了一些使用計數器的UDB組件,但看起來它們與ButhLoCH同步。我們的應用需要一個異步時鐘,因為數字PLL通常會產生太多的抖動(或者相反地,我們可能想要運行一個慢速的系統(tǒng)總線來節(jié)省功率
    發(fā)表于 09-11 11:33

    基于CAN現(xiàn)場總線同步控制解決方案

    系統(tǒng)維護和使用。隨著機電一體化技術的發(fā)展,現(xiàn)場總線技術不斷應用到各個領域并得到了廣泛的應用。本文針對機組式印刷機械的同步需求,提出了一種基于CAN現(xiàn)場總線同步控制解決
    發(fā)表于 01-29 06:37

    基于FPGA的GPS同步時鐘裝置的設計

    在介紹了GPS 同步時鐘基本原理和FPGA 特點的基礎上,提出了一種基于FPGA 的GPS同步時鐘裝置的設計方案,實現(xiàn)了高精度
    發(fā)表于 07-30 11:51 ?45次下載

    總線時鐘結構

    總線時鐘結構科利登系統(tǒng)有限公司大部分并行總線和高速串行總線的區(qū)別主要在于發(fā)送端和接收端不同的同步方式。由于其很高的復雜性,
    發(fā)表于 12-19 15:25 ?17次下載

    時鐘同步的振蕩器電路

    時鐘同步的振蕩器電路
    發(fā)表于 05-16 16:59 ?769次閱讀
    與<b class='flag-5'>時鐘</b><b class='flag-5'>同步</b>的振蕩器<b class='flag-5'>電路</b>圖

    基于總線同步時鐘卡設計與實現(xiàn)(PCI Express)

    各個設備之間時間的一致性和準確性,系統(tǒng)中配備時鐘源進行授時,同步時鐘卡從時鐘源獲取高精度的時間,使系統(tǒng)中各個設備與主機時鐘源保持高精度的
    發(fā)表于 10-30 13:25 ?1次下載
    基于<b class='flag-5'>總線</b><b class='flag-5'>同步</b><b class='flag-5'>時鐘</b>卡設計與實現(xiàn)(PCI Express)

    嵌入式同步時鐘系統(tǒng)的設計方案

    時鐘的管理。本文詳細介紹了利用嵌入式微控制器MSP430單片機和數字鎖相環(huán)(DPLL)來實現(xiàn)嵌入式同步時鐘系統(tǒng)的方案和設計實例。 系統(tǒng)總體結構 同步
    發(fā)表于 11-04 10:21 ?6次下載
    嵌入式<b class='flag-5'>同步</b><b class='flag-5'>時鐘</b>系統(tǒng)的設計<b class='flag-5'>方案</b>

    基于FPGA的高精度同步時鐘系統(tǒng)設計

    介紹了精密時鐘同步協(xié)議(PTP)的原理。本文精簡了該協(xié)議,設計并實現(xiàn)了一種低成本、高精度的時鐘同步系統(tǒng)方案。該
    發(fā)表于 11-17 15:57 ?7283次閱讀
    基于FPGA的高精度<b class='flag-5'>同步</b><b class='flag-5'>時鐘</b>系統(tǒng)設計

    微波時鐘同步設計方案

    微波作為無線和傳輸設備的重要接入設備,在網絡設計和使用中要針對接入業(yè)務的類型,提供滿足其需求的時鐘同步方案。當前階段,微波主要支持的時鐘同步
    發(fā)表于 12-07 20:51 ?689次閱讀

    簡談異步電路中的時鐘同步處理方法

    大家好,又到了每日學習的時候了。今天我們來聊一聊異步電路中的時鐘同步處理方法。 既然說到了時鐘同步處理,那么什么是
    的頭像 發(fā)表于 05-21 14:56 ?1.3w次閱讀
    簡談異步<b class='flag-5'>電路</b>中的<b class='flag-5'>時鐘</b><b class='flag-5'>同步</b>處理方法

    總線半握手跨時鐘域處理

    總線半握手跨時鐘域處理 簡要概述: 在上一篇講了單bit脈沖同步器跨時鐘處理,本文講述控制信號基于脈沖同步機制的
    的頭像 發(fā)表于 04-04 12:32 ?2706次閱讀
    <b class='flag-5'>總線</b>半握手跨<b class='flag-5'>時鐘</b>域處理

    探討兩種時鐘同步總線電路方案

    高速數字電路模塊通常以同步(synchronous)電路的形式實現(xiàn),它們由一個或者多個時鐘驅動(觸發(fā))。
    的頭像 發(fā)表于 06-27 15:18 ?1693次閱讀
    探討兩種<b class='flag-5'>時鐘</b><b class='flag-5'>同步</b>的<b class='flag-5'>總線</b><b class='flag-5'>電路</b><b class='flag-5'>方案</b>

    時鐘信號的同步 在數字電路里怎樣讓兩個不同步時鐘信號同步?

    時鐘信號的同步 在數字電路里怎樣讓兩個不同步時鐘信號同步? 在數字
    的頭像 發(fā)表于 10-18 15:23 ?1393次閱讀

    異步電路中的時鐘同步處理方法

    異步電路中的時鐘同步處理方法? 時鐘同步在異步電路中是至關重要的,它確保了
    的頭像 發(fā)表于 01-16 14:42 ?961次閱讀