久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

DCM使用詳解 - FPGA DSP 經(jīng)驗交流 - 博客園

 CharlseLib 2011-04-14

   本文翻譯自Using Digital Clock Managers (DCMs) in Spartan-3 FPGAs 

http://www./html/EDAjishu/2009/0925/3933.html

 

DCM主要功能
1. 分頻倍頻:DCM可以將輸入時鐘進行multiply或者divide,從而得到新的輸出時鐘,。
2. 去skew:DCM還可以消除clock的skew,,所謂skew就是由于傳輸引起的同一時鐘到達不同地點的延遲差。
3. 相移:DCM還可以實現(xiàn)對輸入時鐘的相移輸出,,這個相移一般是時鐘周期的一個分數(shù),。
4. 全局時鐘:DCM和FPGA內(nèi)部的全局時鐘分配網(wǎng)絡緊密結合,因此性能優(yōu)異,。
5. 電平轉換:通過DCM,,可以輸出不同電平標準的時鐘。 

DCM的特點與能力(Spartan-3系列為例)

  • 數(shù)量:4 DCM / FPGA(也有例外)
    -- 應該夠用了
  • 數(shù)字頻率綜合器輸入(CLKIN):1-280MHz
  • 延遲鎖相環(huán)輸入(CLKIN):18-280MHz
  • 時鐘輸入源(CLKIN):
      Global buffer input pad
      Global buffer output
      General-purpose I/O (no deskew)
      Internal logic (no deskew)
    -- 上面最后兩個分別是外部的普通IO口和內(nèi)部的邏輯,,沒有deskew,,所以時鐘質量不會很好。
  • 頻率綜合器輸出(CLKFX、CLKFX180):是CLKIN的M/D倍,,其中
     M=2..32
     D=1..32
    -- 這樣看來最大能倍頻32倍,,最小能16分頻。
  • 時鐘dividor輸出(CLKDV):是CLKIN的下列分頻
      1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15, or 16
    -- 發(fā)現(xiàn)沒有,,最大的分頻也是16,。不過能支持半分頻,,比用頻率綜合器方便,。
  • 倍頻輸出(CLK2X、CLK2X180):CLKIN的2倍頻
  • 時鐘conditioning,、占空比調整:這個對所有時鐘輸出都施加,,占空比為50%。
  • 1/4周期相移輸出(CLK0/90/180/270):是CLKIN的1/4周期相移輸出,。
  • 半周期相移輸出(CLK0/180,、CLK2X/180、CLKFX/180):相差為180度的成對時鐘輸出,。
  • 相移精度:最高精度為時鐘周期的1/256,。
  • 時鐘輸出:9個
      到全局時鐘網(wǎng)的時鐘輸出:最多9個中的4個
      到General purpose互聯(lián):最多9個
      到輸出腳:最多9個
    -- 可見9個時鐘輸出可以隨意鏈接內(nèi)部信號或者外部輸出,但是進入全局時鐘網(wǎng)的路徑最多只有4個,。

DCM的位置在哪,?
我們以Spartan3系列為例。
FPGA看上去就是一個四方形,。最邊緣是IO pad了,。
除去IO pad,內(nèi)部還是一個四方形,。
四個角上各趴著一個DCM,。
上邊緣和下邊緣中間則各趴著一個全局Buffer的MUX。
這樣的好處是四個DCM的輸出可以直接連接到全局Buffer的入口,。
下面是手繪簡圖,,很丑是吧,呵呵,。
 
 

DCM是全局時鐘網(wǎng)絡可選的一部分
一般,,時鐘通過一個“全局輸入buffer”和“全局時鐘buffer” 進入全局時鐘網(wǎng)絡。如下所示
GCLK --->( IBUFG ---> BUFG) ---> low skew global clock network
在需要的時候,,DCM也成為全局時鐘網(wǎng)絡的一環(huán),。
 
 

DCM 內(nèi)部構成一覽
1. DLL 延遲鎖定環(huán)
    說是延遲鎖定環(huán),但是我覺得叫做延遲補償環(huán)更加貼切,。因為DLL的主要功能是消除輸入時鐘和輸出時鐘之間的延遲,,使得輸入輸出在外部看來是透明連接。
    實現(xiàn)這種功能的原理是:DLL通過輸出時鐘CLK0或者CLK2X觀察實際的線路延遲,然后在內(nèi)部進行補償,。
    一句話,,DLL的核心功能是無延遲。
    DLL的輸出是CLK0, CLK90, CLK180, CLK270, CLK2X, CLK2X180, 和 CLKDV,。

2. DFS 數(shù)字頻率綜合
    DFS的主要功能是利用CLKIN合成新的頻率,。
    合成的參數(shù)是:M(multiplier)和 D(divisor)。通過MD的組合實現(xiàn)各種倍頻和分頻,。
    如果不使用DLL,,則DFS的合成頻率和CLKIN就不具有相位關系,因為沒有延遲補償,,相位就不再同步,。

3. PS 相位偏移
    注意這個相位偏移不是DLL中輸出CLK90/180/270用的。這個PS可以令DCM的所有9個輸出信號都進行相位的偏移,。偏移的單位是CLKIN的一個分數(shù),。
    也可以在運行中進行動態(tài)偏移調整,調整的單位是時鐘的1/256,。
這個功能我們平時不常用,。

4. 狀態(tài)邏輯
    這個部分由 LOCKED 信號和 STATUS[2:0] 構成。LOCKED信號指示輸出是否和CLKIN同步(同相),。STATUS則指示DLL和PS的狀態(tài),。 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

DCM_BASE
DCM_BASE 是基本數(shù)字時鐘管理模塊的縮寫,是相位和頻率可配置的數(shù)字鎖相環(huán)電路,,常用于FPGA系統(tǒng)中復雜的時鐘管理,。如果需要頻率和相位動態(tài)重配置,則可以選用 DCM_ADV原語,;如果需要相位動態(tài)偏移,,可使用DCM_PS原語。DCM系列原語的RTL結構如圖3-8所示,。
模塊接口信號的說明如表3-8所列,。 
 
DCM_BASE組件可以通過Xilinx的IP Wizard向導產(chǎn)生,也可以直接通過下面的例化代碼直接使用,。其Verilog的例化代碼模板為:

// DCM_BASE: 基本數(shù)字時鐘管理電路(Base Digital Clock Manager Circuit)
// 適用芯片:Virtex-4/5
// Xilinx HDL庫向導版本,,ISE 9.1
DCM_BASE #(
.CLKDV_DIVIDE(2.0),
// CLKDV分頻比可以設置為: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
// 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
.CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
// CLKFX信號的分頻比,可為1到32之間的任意整數(shù)
.CLKFX_MULTIPLY(4),
// CLKFX信號的倍頻比,,可為2到32之間的任意整數(shù)
.CLKIN_DIVIDE_BY_2("FALSE"),
// 輸入信號2分頻的使能信號,,可設置為TRUE/FALSE
.CLKIN_PERIOD(10.0),
// 指定輸入時鐘的周期,單位為ns,,數(shù)值范圍為1.25~1000.00,。
.CLKOUT_PHASE_SHIFT("NONE"),
// 指定移相模式,,可設置為NONE或FIXED
.CLK_FEEDBACK("1X"),
// 指定反饋時鐘的頻率,可設置為NONE,、1X或2X,。相應的頻率關系都是針對CLK0而言的。
.DCM_PERFORMANCE_MODE("MAX_SPEED"),
// DCM模塊性能模式,,可設置為 MAX_SPEED 或 MAX_RANGE
.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"),
// 抖動調整,,可設置為源同步、系統(tǒng)同步或0~15之間的任意整數(shù)
.DFS_FREQUENCY_MODE("LOW"),
// 數(shù)字頻率合成模式,,可設置為LOW或HIGH 兩種頻率模式
.DLL_FREQUENCY_MODE("LOW"),
// DLL的頻率模式,,可設置為LOW、HIGH或HIGH_SER
.DUTY_CYCLE_CORRECTION("TRUE"),
// 設置是否采用雙周期校正,,可設為TRUE或FALSE
.FACTORY_JF(16'hf0f0),
// 16比特的JF因子參數(shù)
.PHASE_SHIFT(0),
// 固定相移的數(shù)值,,可設置為 -255 ~ 1023之間的任意整數(shù)
.STARTUP_WAIT("FALSE")
// 等DCM鎖相后再延遲配置DONE管腳,,可設置為TRUE/FALSE
) DCM_BASE_inst (
.CLK0(CLK0), // 0度移相的DCM時鐘輸出
.CLK180(CLK180), // 180度移相的DCM時鐘輸出
.CLK270(CLK270), // 270度移相的DCM時鐘輸出
.CLK2X(CLK2X), // DCM模塊的2倍頻輸出
.CLK2X180(CLK2X180), // 經(jīng)過180度相移的DCM模塊2倍頻輸出
.CLK90(CLK90), // 90度移相的DCM時鐘輸出
.CLKDV(CLKDV), // DCM模塊的分頻輸出,,分頻比為CLKDV_DIVIDE
.CLKFX(CLKFX), // DCM合成時鐘輸出,分頻比為(M/D)
.CLKFX180(CLKFX180), // 180度移相的DCM合成時鐘輸出
.LOCKED(LOCKED), // DCM鎖相狀態(tài)輸出信號
.CLKFB(CLKFB), // DCM模塊的反饋時鐘信號
.CLKIN(CLKIN), // DCM模塊的時鐘輸入信號
.RST(RST) // DCM 模塊的異步復位信號
);
// 結束DCM_BASE模塊的例化過程
在綜合結果分析時,,DCM系列原語的RTL結構如圖3-36所示,。
 
圖3-36 DCM模塊的RTL級結構示意圖 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

Spartan-3 DCM的兼容性
    S3 的DCM和 Virtex-II 以及pro的DCM 功能基本相同。但是S3 DCM的技術屬于3代技術,,因此在抗噪性能,、相移能力方面有進一步提高。(客觀的說,,對我們的普通應用,,不是特別重要。)
    但是和Spartan-2系列相比,,有很大改進,。S2系列不叫DCM叫DLL,可見DFS和PS等功能完全是新加入的,,所以S2系列其實除了二倍頻幾乎沒有倍頻和分頻能力,。從這點來講,S3真的是用起來很爽了,。 

 

DCM 輸入時鐘的限制
   
和所有物理器件一樣,,DCM的工作范圍也是受限的。由于DLL和DFS的要求各不相同,,因此DCM的輸入頻率的限制也視乎是否同時使用DLL和DFS還是單獨使用其中之一,。如果同時使用,則取限制較嚴格者作為整個DCM系統(tǒng)的限制,。我們來看兩者的獨立限制,。
 
    呵呵,,這部分內(nèi)容不用記哦,需要的時候查一下軟件或者手冊就可以了,。只要明白“CLKIN輸入頻率有限制,,而且DLL、DFS同時使用時取其嚴格者” 這些道理就可以了,。
    除了時鐘限制之外,,對于時鐘的質量也有一定限制,主要有3個:
1. CLKIN cycle-to-cycle jitter:約束了前后兩個CLKIN周期的差異,;
2. CLKIN period jitter:約束了100萬個cycle中最大周期和最小周期之間的差異,;
3. CLKFB path delay variation:約束了從外部進來的反饋回路的延遲波動,這種延遲波動在概念上其實和jitter如出一轍,。
具體數(shù)值請查手冊,,知道有這么回事就可以了。

LOCKED信號的行為方式
LOCKED信號用于指示整個DCM系統(tǒng)已經(jīng)和CLKIN同步,,從LOCKED信號有效開始,,輸出時鐘才可以使用,在此之前,,輸出時鐘可能會處于各種復雜的不穩(wěn)定狀態(tài),。我們來看一下LOCKED信號的行為狀態(tài)機。
FPGA配置:
    if (CLKIN已經(jīng)穩(wěn)定) next_state = 判斷同步,;
    else                         next_state = RST_DCM,;
判斷同步:
    if (已經(jīng)同步)          next_state = 判斷同步;
    else                         next_state = 同步失??;
同步失敗:                    next_state = RST_DCM,;
RST_DCM:                  next_state = FPGA配置,;

現(xiàn)在來看看各個狀態(tài)下的輸出。

case (state)
    FPGA配置: LOCKED = 0,;
    判斷同步:   LOCKED = 1,;
    同步失敗:   LOCKED = 0,;
    RST_DCM:LOCKED = 0,;
endcase

RST 信號——重啟鎖定
   
RST信號用于在時鐘不穩(wěn)定或者失去鎖定時,將DCM的相關功能重置,,從而重新啟動鎖定追蹤,。
    作為一個輸入信號,RST無法被DCM自身置位,,因此需要我們的應用設計來控制這個RST信號,,否則需將其接地,。
    置位RST會將延遲tap的位置置0,因此可能會產(chǎn)生glitch或者是duty cycle 發(fā)生變化,,另外相位偏移也會重置回到默認值,。

DCM 生成向導
安裝了ISE就能得到一系列accessories。利用其中的Architecture Wizard 我們可以生成DCM模塊,。生成的DCM將產(chǎn)生3種輸出:
1. 一個例化了DCM的邏輯綜合文件(采用生產(chǎn)商特定格式的VHDL / Verilog)
2. 一個UCF文件控制特定實現(xiàn)
3. 所有其他用戶設置都保存到XAW(Xilinx Architecture Wizard)文件中,。

接下來描述一下向導使用步驟。
1. 從ISE或者Arch wizard中啟動界面,;
2. 第一個頁面做基本配置:路徑,、XAW文件名、VHDL / Verilog選擇,、綜合工具,、FPGA型號;
3. 進行General setup,,一看就明白,,不細說,注意一下幾點:
    - CLKIN source 如果選 external 則 DCM 的 CLKIN 會自動連接到 IBUFG,。
    - Feedback如果選 internal 則反饋來自 BUFG,。
4. 高級設置
    - 選擇FPGA的配置過程是否包含DCM的鎖定,,如果是,,則配置完成信號DONE將在LOCKED信號有效后方能有效。
    - 選擇CLKIN是否要除2,。由于DCM的輸入頻率有限,,對于過高的輸入時鐘通過除2使之可用。
    - Deskew調整,,這個選項建議在咨詢xilinx工程師后再使用,。
5. 時鐘輸出口 Buffer 設置
    - 默認情況下所有輸出口都鏈接 BUFG 全局時鐘網(wǎng)絡入口
    - 由于全局時鐘網(wǎng)絡的入口有限,用戶可以定制時鐘輸出口連接到其他類型的Buffer
       - Global Buffer:進入全局時鐘網(wǎng)絡的入口Buffer,,共有4個,,簡稱BUFG
       - Enabled Buffer:還是上面的4個全局時鐘Buffer,但是配置為有使能信號控制,,簡稱BUFGCE
       - Clock MUX:還是上面的4個全局時鐘Buffer,,但是配置為 2-to-1 MUX類型,由S信號控制選出,,簡稱BUFGMUX
       - Low skew line:沒有buffer了,,只能使用 skew 比較小的連線
       - Local Routing:連到本地,skew的要求不是很嚴格
       - None:禁止輸出
    - 對于Enabled Buffer類型和Clock Mux類型,,需要指定En口的名字
    - 需要為輸出時鐘信號指定名字或者使用默認
6. 設置DFS
    - 設置目標輸出頻率,,然后按calculate,,自動生成 M/D 值和 Jitter 值
    - 或者手動設置 M/D 值,然后按calculate,,自動生成頻率和 Jitter 值
7. 最后輸出所需的3種文件,。



 

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多