精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

使用DCM怎樣消除時鐘Skew?

電子工程師 ? 來源:網絡整理 ? 作者:工程師曾暄茗 ? 2018-07-15 11:28 ? 次閱讀

使用DCM可以消除時鐘Skew

什么叫DCM(Digital Clock Management)?

DCM內部是DLL(Delay Lock Loop(?)結構,對時鐘偏移量的調節是通過長的延時線形成的。DCM的參數里有一個PHASESHIFT(相移),可以從0變到255。所以我們可以假設內部結構里從Clkin到Clk_1x之間應該有256根延時線(實際上,由于對不同頻率的時鐘都可以從0變到255,延時線的真正數目應該比這個大得多)。DCM總會把輸入時鐘Clkin和反饋時鐘Clkfb相比較,如果它們的延時差不等于所設置的PHASESHIFT,DCM就會改變在Clkin和Clk_1x之間的延時線數目,直到相等為止。這個從不等到相等所花的時間,就是輸出時鐘鎖定的時間,相等以后,Lock_flag標識才會升高。

當DCM發現Clkin和Clkfb位相差不等于PHASESHIFT的時候,卻去調節Clk_1x和Clkin之間延時,所以如果Clk_1x和Clkfb不相關的話,那就永遠也不能鎖定了。呵呵。

如何使用DCM

DCM一般和BUFG配合使用,要加上BUFG,應該是為了增強時鐘的驅動能力。DCM的一般使用方法是,將其輸出Clk_1x接在BUFG的輸入引腳上,BUFG的輸出引腳反饋回來接在DCM的反饋時鐘腳CLKFB上。另外,在FPGA里,只有BUFG的輸出引腳接在時鐘網絡上,所以一般來說你可以不使用DCM,但你一定會使用BUFG。有些兄弟總喜歡直接將外部輸入的時鐘驅動內部的寄存器,其實這個時候雖然你沒有明顯地例化BUFG,但工具會自動給你加上的。

使用DCM可以消除時鐘Skew

使用DCM可以消除時鐘Skew。這個東西一直是我以前所沒有想清楚的,時鐘從DCM輸出開始走線到寄存器,這段Skew的時間總是存在的,為什么用DCM就可以消除呢?直到有一天忽然豁然開朗,才明白其原委。對高手來說,也許是極為Easy的事情,但也許有些朋友并不一定了解,所以寫出來和大家共享。

為說明方便起見,我們將BUFG的輸出引腳叫做Clk_o,從Clk_o走全局時鐘布線到寄存器時叫做Clk_o_reg,從Clk_o走線到DCM的反饋引腳CLKFB上時叫Clkfb,如圖所示。實際上Clk_o, Clk_o_reg, Clkfb全部是用導線連在一起的。所謂時鐘Skew,指的就是Clk_o到Clk_o_reg之間的延時。如果打開FPGA_Editor看底層的結構,就可以發現雖然DCM和BUFG離得很近,但是從Clk_o到Clkfb卻繞了很長一段才走回來,從而導致從Clk_o到Clk_o_reg和Clkfb的延時大致相等。總之就是Clk_o_reg和Clkfb的相位應該相等。所以當DCM調節Clkin和Clkfb的相位相等時,實際上就調節了Clkin和Clk_o_reg相等。而至于Clk_1x和Clk_o的相位必然是超前于Clkin, Clkfb, Clk_o_reg的,而Clk_1x和Clk_o之間的延時就很明顯,就是經過那個BUFG的延遲時間。

對時鐘Skew的進一步討論

最后,說一說時鐘Skew的概念。時鐘Skew實際上指的是時鐘驅動不同的寄存器時,由于寄存器之間可能會隔得比較遠,所以時鐘到達不同的寄存器的時間可能會不一樣,這個時間差稱為時鐘Skew。這種時鐘Skew可以通過時鐘樹來解決,也就是使時鐘布線形成一種樹狀結構,使得時鐘到每一個寄存器的距離是一樣的。很多FPGA芯片里就布了這樣的時鐘樹結構。也就是說,在這種芯片里,時鐘Skew基本上是不存在的。

說到這里,似乎有了一個矛盾,既然時鐘Skew的問題用時鐘樹就解決了,那么為什么還需要DCM+BUFG來解決這個問題?另外,既然時鐘Skew指的時時鐘驅動不同寄存器之間的延時,那么上面所說的Clk_o到Clk_o_reg豈非不能稱為時鐘Skew?

先說后一個問題。在一塊FPGA內部,時鐘Skew問題確實已經被FPGA的時鐘方案樹解決,在這個前提下Clk_o到Clk_o_reg充其量只能叫做時鐘延時,而不能稱之為時鐘Skew。可惜的是FPGA的設計不可能永遠只在內部做事情,它必然和外部交換數據。例如從外部傳過來一個32位的數據以及隨路時鐘,數據和隨路時鐘之間滿足建立保持時間關系(Setup Hold Time),你如何將這32位的數據接收進來?如果你不使用DCM,直接將Clkin接在BUFG的輸入引腳上,那么從你的Clk_o_reg就必然和Clkin之間有個延時,那么你的Clk_o_reg還能保持和進來的數據之間的建立保持關系嗎?顯然不能。相反,如果你采用了DCM,接上反饋時鐘,那么Clk_o_reg和Clkin同相,就可以利用它去鎖存進來的數據。可見,DCM+BUFG的方案就是為了解決這個問題。而這個時候Clk_o到Clk_o_reg的延時,我們可以看到做內部寄存器和其他芯片傳過來的數據之間的時鐘Skew。

由此,我們可以得出一個推論,從晶振出來的時鐘作為FPGA的系統時鐘時,我們可以不經過DCM,而直接接到BUFG上就可以,因為我們并不在意從Clkin到Clk_o_reg的這段延時。

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

    關注

    10

    文章

    1720

    瀏覽量

    131364
  • DCM
    DCM
    +關注

    關注

    0

    文章

    157

    瀏覽量

    26417
收藏 人收藏

    評論

    相關推薦

    基于FPGA的DCM時鐘管理單元概述

    DCM一般和BUFG配合使用,要加上BUFG,應該是為了增強時鐘的驅動能力。DCM的一般使用方法是,將其輸出clk_1x接在BUFG的輸入引腳上,BUFG的輸出引腳反饋回來接在DCM
    發表于 05-11 03:53 ?1746次閱讀

    哪些因此會導致時鐘skew過大呢?FPGA中降低時鐘skew的幾種方法

    在時序報告中,會顯示出clock path skew,如果時鐘偏移超過0.5ns,就需要額外關注了。
    的頭像 發表于 03-13 09:06 ?1349次閱讀
    哪些因此會導致<b class='flag-5'>時鐘</b><b class='flag-5'>skew</b>過大呢?FPGA中降低<b class='flag-5'>時鐘</b><b class='flag-5'>skew</b>的幾種方法

    DCM產生時鐘的邊緣過沖~~

    求助大神們,由晶振產生的30Mhz時鐘使用DCM輸出108Mhz時鐘,用示波器檢測輸出波形,周期沒問題,但是上升和下降邊緣都有很大的過沖,幅值占到脈沖本身的50%,請問下有什么辦法能消除
    發表于 05-25 22:10

    轉載----DCM使用詳解

    ]時鐘。2. 去skewDCM還可以消除clock的skew,所謂skew就是由于傳輸引起的同
    發表于 09-24 15:04

    如何減小clock skew

    求助大神,clock skew太大,導致時序違規怎么破?時鐘DCM輸出,已經過BUFG
    發表于 01-14 17:00

    DCM在FPGA中指的是什么?

    DCM就是數字時鐘管理單元( Digital Clock Manager)。DCM 當中包含一個 DLL(延遲鎖定電路 Delay-Locked Loop),可以提供對時鐘信號的二倍頻
    發表于 08-31 09:08

    怎么消除5ns偏斜

    嗨......我有2個定制FPGA板。主FPGA具有100MHz的osc,用作參考時鐘。這將進入主FPGA芯片上的DCM,用于所有時鐘操作。相同的時鐘被緩沖并從主板驅動出來并發送到類似
    發表于 03-15 07:17

    DCM外部反饋路徑有什么問題?

    對齊的,因為它們是DCM的CLKIN和CLKFBA,B早于C,D(IBUFG延遲),它們也是相位對齊的該外部反饋結構的目標是消除FPGA輸入時鐘的偏移和外部器件的輸入時鐘,因此A,F對
    發表于 07-17 13:58

    Spartan 6 DCM LOCKED沒有輸出時鐘

    所以這很奇怪而且很間歇。我有一個S6LX45的設計。它使用一個PLL和八個DCM。 8個DCM時鐘輸入來自饋送BUFIO2的GCLK引腳。 BUFIO2分頻器被禁用,DIVCLK輸出進入DCM
    發表于 07-26 13:04

    DCM輸出時鐘約束的示例

    使用dcm_20Mhz_100Mhz DCM獲得100 MHz模塊。然后,來自第一DCM的CLKFX_OUT輸出用作第二DCM的輸入,以導出三個輸出
    發表于 05-01 15:08

    如何使用DCM減少時鐘偏差?如何使用DCM來增加時鐘?

    大家好..我是xilinx的新手。實際上我需要知道如何使用DCM減少時鐘偏差,我還需要知道如何使用DCM來增加時鐘。謝謝和關心JITHESH A R
    發表于 06-09 09:09

    如何使用DCM,DCM使用說明

    DCM主要功能1. 分頻倍頻:DCM可以將輸入時鐘進行multiply或者divide,從而得到新的輸出時鐘。2. 去skew
    發表于 06-05 11:48 ?8170次閱讀
    如何使用<b class='flag-5'>DCM</b>,<b class='flag-5'>DCM</b>使用說明

    FPGA DCM時鐘管理單元簡介及原理

    DCM概述??? DCM內部是DLL(Delay Lock Loop(?)結構,對時鐘偏移量的調節是通過長的延時線形成的。DCM的參數里有一個PHASESHIFT(相移),可以從0變到
    發表于 06-05 12:09 ?2665次閱讀
    FPGA <b class='flag-5'>DCM</b><b class='flag-5'>時鐘</b>管理單元簡介及原理

    賽靈思DCM概述和應用技巧

    DCM:即 Digital Clock Manager 數字時鐘管理,關于DCM的作用: 顧名思義DCM的作用就是管理,掌控時鐘的專用模塊。
    發表于 02-11 11:30 ?1428次閱讀

    FPGA的DCM時鐘管理單元概述

    有些FPGA學習者,看Xilinx的Datasheet會注意到Xilinx的FPGA沒有PLL,其實DCM就是時鐘管理單元。 1、DCM概述 DCM內部是DLL(Delay Lock
    的頭像 發表于 05-25 15:43 ?8296次閱讀
    FPGA的<b class='flag-5'>DCM</b><b class='flag-5'>時鐘</b>管理單元概述