日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]一直以為DCM和DLL說得都是一個東西,使用了才知道Xilinx的時鐘管理策略還真得蠻多的,雖說基本的原理上都有點大同小異。     圖1  先說DCM,字面上理解就是數(shù)字時鐘管理單元,主要完成時鐘的同步、移相、分頻、

一直以為DCM和DLL說得都是一個東西,使用了才知道Xilinx的時鐘管理策略還真得蠻多的,雖說基本的原理上都有點大同小異。

  

   圖1

  先說DCM,字面上理解就是數(shù)字時鐘管理單元,主要完成時鐘的同步、移相、分頻、倍頻和去抖動等。而DLL是數(shù)字延遲鎖相環(huán)的意思,是通過長的延時線達到對時鐘偏移量的調(diào)節(jié),而這個調(diào)節(jié)是通過比對反饋回來的時鐘信號實現(xiàn)同步輸出的。DCM實際上不止DLL結(jié)構(gòu)這么簡單,它還包括了DFSDPSDSS等組件。官方的說法如下:

  The digital clock manager (DCM) component implements a clock delay locked loop (DLL), a digital frequency synthesizer (DFS), digital phase shifter (DPS), and a digital spread spectrum (DSS).

  Xilinx早期的Virtex器件不提供DCM資源,只有CLKDLL,這個CLKDLL實現(xiàn)的時鐘輸出相對單一,但是基本的時鐘偏斜的優(yōu)化效果還是可以達到的。簡單的插入語言模板進行例化就可以了。需要注意的是時鐘反饋信號CLKFB不能夠直接和時鐘輸出CLK0連接,必須讓CLK0先BUFG一下??梢匀缦逻M行例化(不使用的時鐘可以空著):

  CLKDLL #(

  .CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,4.0,5.0,8.0 or 16.0

  .DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE

  .FACTORY_JF(16'hC080), // FACTORY JF Values

  .STARTUP_WAIT("FALSE") // Delay config DONE until DLL LOCK, TRUE/FALSE

  )

  CLKDLL_inst (

  .CLK0(clk0), // 0 degree DLL CLK output

  .CLK180(clk180), // 180 degree DLL CLK output

  .CLK270(clk270), // 270 degree DLL CLK output

  .CLK2X(clk2x), // 2X DLL CLK output

  .CLK90(clk90), // 90 degree DLL CLK output

  .CLKDV(clkdv), // Divided DLL CLK out (CLKDV_DIVIDE)

  .LOCKED(locked), // DLL LOCK status output

  .CLKFB(clk00), // DLL clock feedback

  .CLKIN(clk), // Clock input (from IBUFG, BUFG or DLL)

  .RST(!rst_n) // DLL asynchronous reset input

  );  // BUFG : In order to incorporate this function into the design,

  // Verilog : the following instance declaration needs to be placed

  // instance : in the body of the design code. The instance name

  // declaration : (BUFG_inst) and/or the port declarations within the

  // code : parenthesis may be changed to properly reference and

  // : connect this function to the design. All inputs

  // : and outputs must be connected.

  // <-----Cut code below this line---->

  // BUFG: Global Clock Buffer (source by an internal signal)

  // All FPGAs

  // Xilinx HDL Language Template, version 9.1i

  BUFG BUFG_inst (

  .O(clk00), // Clock buffer output

  .I(clk0) // Clock buffer input

  );

  // End of BUFG_inst instantiation

  黃色:clk00 綠色:clkdv(2分頻時鐘)

  

圖2黃色:clk00 綠色:clk0(BUFG前)

 

 

 

 

 

 

  圖3

  黃色:clk00 綠色:clk2x(2倍頻時鐘)

  

 

  圖4

  黃色:clk00 綠色:clk90(90度相移)  

 

  圖5

  黃色:clk00 綠色:clk180(180度相移)

 

  圖6

  

 

  圖7

  對于時鐘偏斜的改善也是顯而易見的,原先的clock path skew/delay(也即clock network latency)一般在1到2ns,現(xiàn)在都在-0.5ns到0ns。至于為什么這個skew值可以是負值呢?特權(quán)同學(xué)看了很多資料,都只是輕描淡寫的說DLL是通過外部的反饋時鐘,然后調(diào)節(jié)內(nèi)部的延時實現(xiàn)最終的skew的減小。從clock skew的定義來看,時鐘從輸入到各個寄存器的延時不可能是負數(shù)的,惟一的可能是經(jīng)過DLL后的時鐘被整個的延時了大約1個時鐘周期,從而達到下一個時鐘沿和上一個時鐘沿對齊的效果,那么這個clock skew為負值就不難解釋了。

  特權(quán)同學(xué)也特意從上電開始捕獲了DLL輸出時鐘(引到了輸出PAD上,這個延時也不小),和時鐘的輸入(FPGA的輸入PAD)做了對比。發(fā)現(xiàn)確確實實有那么一個相位的調(diào)整過程。而且這個相位的調(diào)整是在DLL輸出開始時,輸出時鐘滯后輸入時鐘將近270度,如圖9所示;圖10捕獲到了更為明顯的相位調(diào)整,即從中線左側(cè)到右側(cè)的變化。正常穩(wěn)定后的輸出如圖11和圖12所示,相位依然滯后而不是負值那是因為我所捕獲的這個輸出時鐘是拉到了PAD上的緣故,延時大了一些也在所難免。綠色為輸入時鐘,黃色為DLL輸出時鐘引到PAD上?! ?/span>

 

 

  圖8 上電的整體信號捕獲

  

 

  圖9 產(chǎn)生DLL輸出時鐘

  

 

  圖10 明顯的相位調(diào)整

  

 

  圖11 穩(wěn)定的輸出時鐘

  

 

   圖12

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉