Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 5122|回復: 12
打印 上一主題 下一主題

[問題求助] 關於virtex-4的Digital Clock Manager

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-18 14:34:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好
, ~5 Q: r. d3 ]! o我目前在使用vietex-4 的板子
; v0 s. w2 f' p. O, ~關於板子上面clock source的訊號要怎麼給有點疑問8 @! g0 ]0 H' n" l
使用手冊上有寫說分成differetial,single-ended clock source 兩種
) g" Q& @/ |2 Z0 C0 ^這是代表什麼意思& q& B/ q- l+ Q# i
另外板子上有一個100M的震盪器,他說要使用DCMs可以產生不同的clock/ B& `9 E' q/ K3 e  Y+ e
這是代表說我要另外再寫一些指令去達到我想要的clock嗎, l, h" K. o+ e: |
有大大寫過這個程式嗎?   不知道要從何下手; V! W8 X0 ]- n  I) E0 c5 \( V( r7 C: x

6 [& |6 w0 z$ W3 V- e! |7 }" R% \另外有一個25M震盪器
* P  S$ a4 d) f. ^* n好像可以用調撥的方式將M,N兩組開關,調成我們要的clock
- N8 q% C) o  l7 B; w9 m6 U8 ?8 j& Qout = 25x M/N
) M" c6 Z" O- e7 P2 m這是另外一種方式嗎
& o2 N$ L! v* z" m/ I3 z& `7 n- \/ H& R2 [6 _  C; m
我有點搞混了...使用手冊上面寫了很多的clock輸入
+ S, c4 G! J! L& @( R要怎麼分類呢??! r3 n! r" N* s  a" P  x
請使用過的大大指導一下...感謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-20 11:14:56 | 只看該作者
virtex-4的版子不知是原廠網頁上的那塊?http://www.xilinx.com/products/devboards/index.htm9 W" W. b2 z5 k
關於DCM功能,建議先看一下Xilinx的clock manangement& V; ^; u! M& L: f  j
http://www.xilinx.com/support/do ... sign_clockmanag.htm
& z: _' P' U' ?" s, x% _中的 XAPP132 - Using the Virtex Delay-Locked Loop
3#
發表於 2008-3-20 12:34:10 | 只看該作者
Single end--->單端輸入(從P端輸入)
9 g2 D* M* |3 Q% uDifferential--->差動輸入(LVDS,,等)
- C& h# P. ]' R8 Q1 b3 |4 b如果CLOCK頻率不是很高,可採單端輸入GCLK pin,再從內部去除出所要的CLOCK頻率.
  {+ x% B5 l7 j. l8 A* r( p1 e3 E+ @& i/ m* h
若要用DCM,從Xilinx Architecture Wizard(在ISE Accessories--->Architecture Wizard)去自動產生所要的CLOCK頻率.Wizard 會產生 .vhd,.xaw,.ucf檔.把.xaw加入design.(利用ISE add source)以下是以單一個DCM instance作例子.
7 g! u4 T# E( Z8 \' l: T( G7 j  W1 @. Y% ?
EX: (輸入75MHz--->>輸出50MHz)% R! a" t" }% e& ~: u( {) E
entity ClockManageris- ?9 g7 g6 G: ]) x- T, o
Port ( clk_50mhz : in std_logic;
; |" J$ o2 Z6 Q, sclk_75mhz : out std_logic;
- r8 I$ j- o- X. v  J- x& Y/ U( _# kclk_75mhz_180 : out std_logic);3 }' @( U. @+ y" F6 d# k
end ClockManager;3 x& Y3 F  t+ ]
architecture Behavioral of ClockManageris$ h& G. |& d& M0 E
component clkgen_75mhz# O6 ]8 j# i+ m% r* K
port ( CLKIN_IN : in std_logic;* @( r0 h) Q. O5 [( |' h
RST_IN : in std_logic;
7 h3 F7 e5 L1 u' tCLKFX_OUT : out std_logic;7 w1 M' {+ [8 U
CLKFX180_OUT : out std_logic;
, A9 c4 S7 [% [) N1 iCLKIN_IBUFG_OUT : out std_logic;# G' z+ k# d" o3 v! r1 c
LOCKED_OUT : out std_logic);; c5 w# W6 D) a% Y  M  ]( ^
end component;1 R8 S* i+ @$ V. y4 m
begin
8 A) B* p- f1 u3 D1 v! K' `gen_75mhz: clkgen_75mhz
- Y9 D& f+ f& K4 H1 V; Tport map( CLKIN_IN => clk_50mhz,
2 p+ y& C2 J& k3 }9 x" c5 S% [% _RST_IN => '0',
7 }+ ^( _. a0 A. \  CCLKFX_OUT => clk_75mhz,) r% e" w6 R; e6 I. o9 |
CLKFX180_OUT => clk_75mhz_180,' I% Y6 e9 ]( M
CLKIN_IBUFG_OUT => open,
3 x3 ?9 _3 u" Y/ l9 P6 m6 S) W" nLOCKED_OUT => open );
$ W0 s0 U  R! Z$ O4 nend Behavioral;
4#
 樓主| 發表於 2008-3-20 18:44:19 | 只看該作者
回復 2# 的帖子
3 o# u7 L1 A0 i" T* ]+ c
/ C3 y/ l: p  T7 H5 g我們用的板子是VIRTEX-4  (LX60)" R. J" \4 ^* Z
我昨天有去網頁找了些關於DCM的資料來看7 x$ n& H( x6 I7 X$ U% z
雖然有點複雜5 V; ^- H: D1 W3 L0 N
不過還是看個大概6 ^7 c4 A) `, H0 _

+ K2 w" f- s% {9 X5 W! S回復 3# 的帖子7 Q' o4 X' h) S; A( _2 g% y/ X7 `

$ V; T0 \* w8 l" j; a. f你講的這些動作, x6 p& Y: M: M6 P% {: p
我昨天都有照著我在網路上找的資料大略的做過一次, V" o  v( s% G
不過我還是有一些問題3 K+ `" q1 e+ l8 p
1.像DCM的輸入   好像是由100M震出來的$ R& y% j- x; ]! f2 n1 @. k7 h
那我需要256M   利用DCM 可以做得到吧??6 e# _" t# S: S) F
還是說只能產生比100M低的時脈
. j+ C9 T6 m, m' j
  d0 X- M2 s: w5 L' Y! S# ]! |' G2. DCM是分成DLL,PS,DFS嗎??
$ Y$ f$ s- d* I7 f* T因為我昨天看到DCM組成的block
: O1 O% _' j7 O; p+ L裡面含有這些,每個功能都不太一樣
: U8 x& l& Z6 M. Q; R  k+ I& O如果我今天要產生一個單純的沒有相位移256M+ u! Z/ U4 Z8 N0 V  ^
那參數的設定會不會不需要用到全部??. [8 k( D5 I- z, d# c* ?
還是只需要用到DLL就好' d. X! A. E4 e+ d5 z! B

/ U3 e( {$ Q3 [- v3.像你講的   Wizard 會產生 .vhd,.xaw,.ucf檔2 F  X2 d; B) o0 O- |/ O( K% t
   把.xaw加入design的意思是把這個檔也燒到FPGA板子裡嗎?& r' }. Z: T& y% o% }5 m( b
   那我要設定接角嗎??0 e; l* ~" a( E' P3 n+ C5 P- ]
   因為xaw的程式不像一般會有input  output
3 _$ m) r6 Z9 t   所以會有點搞混掉
/ t5 b; W, K# L& g8 J7 }
( {5 z% _0 u/ A8 U8 A" r以上是我小小的疑問
) N. N8 n3 b  ]. T- W& a先謝謝各位大大的解答  
# O5 e) L6 c& r2 b+ q5 E; L+ g
$ Y/ f9 R& E! W; S# r. _- Q/ e[ 本帖最後由 小人發 於 2008-3-20 06:51 PM 編輯 ]
5#
發表於 2008-3-20 22:10:47 | 只看該作者
要從100M產生一個單純的沒有相位移256M,要用DFS,CLKFX o/p功能,而且不是在做Deskew的話,CLKFB可不接.
! h; B- f" a# I. U7 x+ ]! w; w3 d7 l9 p9 e" ^, O1 ]
參數的設定可在Wizard內設定.以Virtex4-10來看,如果只用DFS o/p(CLKFX/CLKFX180),不用DLL o/p,
( X, I! u: J; ]/ E1 jinput clock 100M,ouput clock 256M,則只適用Maximum Speed/High Frequency 的Mode. Low frequency mode2 x; E9 C* e8 i: w$ y9 S& A' p8 g4 p
最多到210M,不夠用.2 l) u2 [/ W% c- i/ S3 l( B
.xaw 檔是Xilinx architecture wizard(XAW)設定檔,像Xilinx coregen 產生memory block的 .XCO檔 一樣,
+ Q) J! O% v) [6 u' v9 G/ e5 V在ISE 的 project manager 裡把他加入跟其他source files 一起即可.然後在你的design source file 要去 instantiate它.可參考上次帖子的例子.
6#
 樓主| 發表於 2008-3-21 14:54:32 | 只看該作者

回復 5# 的帖子

我試了一下,大概知道怎麼用了" O& O* @  Y* ^4 `2 V
不過還有一個問題
& \8 \' Z. g0 }8 m在DFS裡面  好像沒辦法產生準確的256M! b4 i4 Z1 v1 K) K/ m
因為它是用clock*M/D  (M跟D都是2~32的正整數)
9 y0 a/ @( C3 g! q  }/ J; gclock=100M   那怎麼選M跟D都沒辦法達到256M
( h+ [; \! k5 G: R8 j3 s# ^這要怎麼辦    其他DCM的方式有辦法達到這個頻率嗎
7#
發表於 2008-3-21 19:05:27 | 只看該作者
要用2個DCM串在一起的方式.不過使用上要小心Timing及不Locked的問題.
1 p+ L% X6 p1 k# S, L: L4 ~; |& B& M, C0 `' e0 [3 N4 n, }( V

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x

評分

參與人數 1 +2 收起 理由
小人發 + 2 感謝你的回覆

查看全部評分

8#
 樓主| 發表於 2008-3-23 16:35:08 | 只看該作者

回復 7# 的帖子

對於這兩個DCM相接的方塊圖" y0 Q) b" ^* K7 d0 _+ l0 E
就是第一個block輸出是CLKDV& C6 l7 U% M. J- H
所以必須是100M除以CLKDV(2,2.5,3,3.5,4........16); v, M: F( j4 S% k" }: V, P
然後再把除完的頻率當作第二個的輸入+ E/ k, G" o8 j7 _2 \& i0 b
第二個是使用DFS   輸出是CLK*M/D (M跟D都是2~32)$ h" e4 c( F9 u& v- a
5 P* H0 i, n/ P/ ~5 o1 S" F; K# {( b( }
我好像湊不出來可以達到256M的參數耶
1 t7 Z. [3 F1 [- }0 b8 U是我哪裡沒搞清楚嗎2 S  g9 w: v( B+ c, F
麻煩大大在幫我解惑一下~~
9#
發表於 2008-3-24 10:22:16 | 只看該作者
這兩個DCM相接的方塊圖只是一個應用方式,你也可以用第一個DCM FX O/P,產生200MHz,再用第二個DCM FX O/P ; ^) o9 P7 U, ~6 }
M/N=32/25,產生256MHz,要等第一個DCM FX O/P進入LOCK後幾個cycles,才能開始啟動第二個DCM.
10#
 樓主| 發表於 2008-3-24 13:44:38 | 只看該作者

回復 9# 的帖子

我想問一下
: p9 C$ j. O# z" {" S兩個DCM相接的方法  是直接在裡面可以選擇的模式嗎8 y2 S' |: S9 F
因為在clock wizard裡面有四種可以選擇4 w/ a0 R; _/ |) {$ D- c' g
1.Board  Deskew with an internal  Deskew% g; p8 E  C3 }! @9 Q+ @
2.Cascading  in series  wuth two DCM_ADVs
9 V/ J3 s9 A+ n; j+ ^; v3.clock forwarding/board deskew
* s+ ]' R/ m" q' c4.single DCM_ADV
2 e1 z8 p6 g# E0 \
  |- |- D7 a8 ~$ L照你講的方法應該是選擇第二個串接的DCM3 t: k0 q; g2 ^. h8 O- ?
問題是我選完之後有一句話是
3 v, U) Y: I; GCLKFX and CLKFX180  are not recommended for either INST1 and INST2 because  of jitter requirement  P7 A8 P( {% m# H* J( a
所以裡面沒有CLKFX的選項
  f& }9 m" m% j; U那就沒辦法照著大大的步驟做了0 T* T* G7 Z  g9 j2 @% D
還是有其他的辦法可以選呢??
11#
發表於 2008-3-24 15:07:53 | 只看該作者
的確第二個DCM不recommend FX o/p,因為jitter 會累加過大,% j* [' ]+ n6 M! ~1 i
反過來產生,先用第一個DCM FX O/P,產生128MHz(M/N=32/25),
! A% E/ Y, O; L* F6 p再用第二個DCM 2X output 產生256MHz." i5 s" g* g5 F7 Q
或第一個DCM 2X O/P 產生200MHz,第二個DCM FX O/P M/N=32/25,產生256MHz.
12#
 樓主| 發表於 2008-3-24 15:30:36 | 只看該作者

回復 11# 的帖子

但是會出現一個錯誤
6 W  V! R% t, H+ u因為我用的DCM是cascade in series
4 B! C  k' i2 P# l5 a所以好像有限制在low frequency mode9 c+ _2 v' k1 P  b
所以在第一個輸出要達到200M會發生錯誤/ T+ c# b8 _7 L- k4 T

) d% S$ u8 x' B還是說我選的模式跟大大講的模式不一樣
/ W) {, `' ?9 \8 y' v( n+ U5 J- B你說的也是要用內建的 clock wizard ->2.Cascading  in series  wuth two DCM_ADVs  嗎
13#
發表於 2008-3-24 16:58:28 | 只看該作者
第一個DCM 限制I/P frequency,32M<-->75M,
6 k% G3 l$ v. e9 g: h( ^不知25M震盪器可否調出來產生32M(M/N=32/25)或64M,再用一個DCM FX o/P 產生256MHz.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2025-1-20 05:00 PM , Processed in 0.171601 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表