Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-18 14:34:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好
5 T  G' Q. Z/ q1 {. N% x9 H我目前在使用vietex-4 的板子3 b, n5 U9 T5 o- h9 U: i3 }
關於板子上面clock source的訊號要怎麼給有點疑問# f4 H% o( N9 ?: L) v$ N
使用手冊上有寫說分成differetial,single-ended clock source 兩種
5 E  }9 V  `+ ]這是代表什麼意思
( l0 p1 G+ z1 D+ g/ s* g另外板子上有一個100M的震盪器,他說要使用DCMs可以產生不同的clock3 ~  n5 ?; y+ u( l- R
這是代表說我要另外再寫一些指令去達到我想要的clock嗎) H/ \3 D. z( s
有大大寫過這個程式嗎?   不知道要從何下手* n% k8 \5 E' Q/ l! o% U- I3 d

8 ?3 ^; t' ~9 I7 n2 D/ A8 q0 G另外有一個25M震盪器' M  l4 T3 c1 }
好像可以用調撥的方式將M,N兩組開關,調成我們要的clock& h' A+ F% Q7 @8 O/ q# O
out = 25x M/N
7 E% U- |+ n  y6 Y這是另外一種方式嗎7 U, g# k' d* d) z( e

, g$ s" w' j9 a, {( J我有點搞混了...使用手冊上面寫了很多的clock輸入4 O! _: V* [8 B: M+ w0 T
要怎麼分類呢??$ {' v. t" L# z3 x
請使用過的大大指導一下...感謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-20 11:14:56 | 只看該作者
virtex-4的版子不知是原廠網頁上的那塊?http://www.xilinx.com/products/devboards/index.htm) \' J- I7 `: y3 a( _& u7 O
關於DCM功能,建議先看一下Xilinx的clock manangement3 L0 v8 R9 m% ^6 {4 u* r
http://www.xilinx.com/support/do ... sign_clockmanag.htm% n8 v2 e+ L5 u& o8 d) m6 q
中的 XAPP132 - Using the Virtex Delay-Locked Loop
3#
發表於 2008-3-20 12:34:10 | 只看該作者
Single end--->單端輸入(從P端輸入)% o+ i" D2 D' ]6 t' y
Differential--->差動輸入(LVDS,,等)$ C' ?4 i+ Q/ }* g
如果CLOCK頻率不是很高,可採單端輸入GCLK pin,再從內部去除出所要的CLOCK頻率.( S# |. X; g1 r  s

5 h# L6 U# Z; T7 ^. n0 `: [若要用DCM,從Xilinx Architecture Wizard(在ISE Accessories--->Architecture Wizard)去自動產生所要的CLOCK頻率.Wizard 會產生 .vhd,.xaw,.ucf檔.把.xaw加入design.(利用ISE add source)以下是以單一個DCM instance作例子.
7 U+ N! t- n- s& z9 |
( Z3 ~4 \1 E" H: |: ?+ d: xEX: (輸入75MHz--->>輸出50MHz)% R4 T" [8 _! h% o1 o8 e
entity ClockManageris
7 X2 y) K  n  L) X4 b$ r: {Port ( clk_50mhz : in std_logic;9 L5 q( E$ h, ~8 ^6 ]! y4 I! A
clk_75mhz : out std_logic;
/ ~/ U7 O4 o5 I: \) X+ c# ^$ `3 hclk_75mhz_180 : out std_logic);, E! n  D. O3 F$ e+ D4 d  s9 A
end ClockManager;
8 E  D/ A( S0 Y6 E8 w! jarchitecture Behavioral of ClockManageris; B& e& ~+ G+ T2 e
component clkgen_75mhz
! n* v/ r8 t9 T! n+ nport ( CLKIN_IN : in std_logic;4 X  e5 ~: m+ V" d8 y# c
RST_IN : in std_logic;; S  C6 l2 B; K; m8 K, V" _
CLKFX_OUT : out std_logic;9 C% ?8 a* h3 ?% I2 Y
CLKFX180_OUT : out std_logic;
; R( u5 A$ U1 N. g5 fCLKIN_IBUFG_OUT : out std_logic;4 a8 ]1 `* W- z6 A3 l: H5 ]
LOCKED_OUT : out std_logic);
' ?% g/ E1 b9 W% H' f  Yend component;: C8 }5 f% z* x2 }, ?
begin
# J& \+ n: ?9 l- jgen_75mhz: clkgen_75mhz' X' e8 F7 \& A, p
port map( CLKIN_IN => clk_50mhz,
' M6 u2 V& F) H* g# b* j: MRST_IN => '0',
. u  X; W5 I7 D0 \3 B  KCLKFX_OUT => clk_75mhz,
$ [# H% |# L0 L$ _6 I/ X/ o) _' P4 l* `CLKFX180_OUT => clk_75mhz_180,
% j6 ~4 A/ @& fCLKIN_IBUFG_OUT => open,
. j0 r- \' D3 ]9 ?3 mLOCKED_OUT => open );& k# `* {, @% W( {
end Behavioral;
4#
 樓主| 發表於 2008-3-20 18:44:19 | 只看該作者
回復 2# 的帖子
2 k0 U! S+ C0 n6 e# U; G  o) Z
6 a5 }2 A1 H/ j$ Y( A. {/ W我們用的板子是VIRTEX-4  (LX60)
0 p) @% z: I4 J1 _% y我昨天有去網頁找了些關於DCM的資料來看
* R0 T! N6 M/ I9 w7 U6 w雖然有點複雜
9 C# d; o) e2 W- F& R; @* {不過還是看個大概8 y# G, Z# b: k7 v+ ~+ z4 w
/ A  U! A# [2 F7 m+ u; c& M) A
回復 3# 的帖子7 Y, i2 B; j" J5 b4 R+ H7 e, T* t7 K

+ m# C% _7 E; Q$ p+ ^9 \你講的這些動作; c  x8 U. Y9 l1 M, a
我昨天都有照著我在網路上找的資料大略的做過一次
: r* H% I8 V0 N6 [不過我還是有一些問題
/ b; X; j' L' N" c" I9 e& Q1 m1.像DCM的輸入   好像是由100M震出來的6 U7 F. x! {* g0 S' N9 @4 C
那我需要256M   利用DCM 可以做得到吧??
3 I1 T4 {+ X( Y0 m( D% G. C* |還是說只能產生比100M低的時脈
# h9 ^7 @3 s) g) e- E+ @' B- V6 \2 e; m1 o3 v; q( C3 t3 v* d8 a4 j# j
2. DCM是分成DLL,PS,DFS嗎??; T8 x8 ^* _5 i0 [8 h, Y1 n
因為我昨天看到DCM組成的block
) a" i" z- R* Z7 S裡面含有這些,每個功能都不太一樣. `+ I: M( e  P" @; @
如果我今天要產生一個單純的沒有相位移256M! A* x+ g5 k5 S4 ?- P
那參數的設定會不會不需要用到全部??0 K9 O5 ^3 z: a, X- E
還是只需要用到DLL就好) `+ ~' O3 `. J3 ?9 o

5 ^$ T* B* d1 R% G3.像你講的   Wizard 會產生 .vhd,.xaw,.ucf檔
. Q1 t4 K! j: Q* _   把.xaw加入design的意思是把這個檔也燒到FPGA板子裡嗎?; e( G; K4 x; E+ ^$ u2 V# C0 H/ C
   那我要設定接角嗎??
, p4 y& A* n6 |* t. c8 q   因為xaw的程式不像一般會有input  output
7 I8 p3 j- \6 D; A) }9 |, i; h   所以會有點搞混掉  l. q7 E; n" Z, ^: X  m
3 Q1 y/ m0 ]+ p; \3 l
以上是我小小的疑問: X' }' ~! \. z" O+ U# r8 b
先謝謝各位大大的解答  
6 x% A* G! [$ J/ F8 A7 g+ _
8 I# @; u9 |  D" W0 ?$ w4 f& ~5 ][ 本帖最後由 小人發 於 2008-3-20 06:51 PM 編輯 ]
5#
發表於 2008-3-20 22:10:47 | 只看該作者
要從100M產生一個單純的沒有相位移256M,要用DFS,CLKFX o/p功能,而且不是在做Deskew的話,CLKFB可不接.
: @1 u: h$ @! L2 E  B8 o6 @+ F5 {" e$ C3 `# C. j6 f
參數的設定可在Wizard內設定.以Virtex4-10來看,如果只用DFS o/p(CLKFX/CLKFX180),不用DLL o/p,
/ j5 D. {! q4 |' n1 F* minput clock 100M,ouput clock 256M,則只適用Maximum Speed/High Frequency 的Mode. Low frequency mode9 U7 S# r* s+ c! F2 e/ Y1 o
最多到210M,不夠用.
" k7 O/ [1 b- l  ^.xaw 檔是Xilinx architecture wizard(XAW)設定檔,像Xilinx coregen 產生memory block的 .XCO檔 一樣,
& q0 k1 }9 j2 h: C; p. B, f在ISE 的 project manager 裡把他加入跟其他source files 一起即可.然後在你的design source file 要去 instantiate它.可參考上次帖子的例子.
6#
 樓主| 發表於 2008-3-21 14:54:32 | 只看該作者

回復 5# 的帖子

我試了一下,大概知道怎麼用了
/ K  ~% X$ H1 n* V% C6 F不過還有一個問題9 j0 `8 W( K. n- m4 t$ ~0 q
在DFS裡面  好像沒辦法產生準確的256M- J3 `% R. D4 D2 b
因為它是用clock*M/D  (M跟D都是2~32的正整數)
- h4 ^; v6 w- R, Mclock=100M   那怎麼選M跟D都沒辦法達到256M
" x6 Q' `3 B7 R% f) o9 o這要怎麼辦    其他DCM的方式有辦法達到這個頻率嗎
7#
發表於 2008-3-21 19:05:27 | 只看該作者
要用2個DCM串在一起的方式.不過使用上要小心Timing及不Locked的問題.
  o) T/ u9 _) s6 T2 d) e- u2 z; w* G/ `0 F

本帖子中包含更多資源

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

x

評分

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

查看全部評分

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

回復 7# 的帖子

對於這兩個DCM相接的方塊圖2 m% D2 N0 }. J- `; c
就是第一個block輸出是CLKDV
/ A- S, W8 b% R- b1 J所以必須是100M除以CLKDV(2,2.5,3,3.5,4........16)
6 b. l$ I* |3 x: O8 E然後再把除完的頻率當作第二個的輸入
$ r" x" q$ ^6 m+ V第二個是使用DFS   輸出是CLK*M/D (M跟D都是2~32)
  z1 e$ P" m, `  c+ f. _
5 J& B( K7 f2 \8 X. D; A我好像湊不出來可以達到256M的參數耶. m8 C: Q/ F- P9 m
是我哪裡沒搞清楚嗎
4 P( L/ ^3 H, r$ Z麻煩大大在幫我解惑一下~~
9#
發表於 2008-3-24 10:22:16 | 只看該作者
這兩個DCM相接的方塊圖只是一個應用方式,你也可以用第一個DCM FX O/P,產生200MHz,再用第二個DCM FX O/P & o4 C$ [, v# y5 f' ^3 m
M/N=32/25,產生256MHz,要等第一個DCM FX O/P進入LOCK後幾個cycles,才能開始啟動第二個DCM.
10#
 樓主| 發表於 2008-3-24 13:44:38 | 只看該作者

回復 9# 的帖子

我想問一下; l# B  Q, P5 Q: T
兩個DCM相接的方法  是直接在裡面可以選擇的模式嗎
3 [. M4 L" |) F6 p7 q. l% j因為在clock wizard裡面有四種可以選擇
9 \- F$ G9 V/ f" m1.Board  Deskew with an internal  Deskew: X2 M: b8 P& L) _+ S& F, n  q
2.Cascading  in series  wuth two DCM_ADVs
) K6 ^- _( l9 g7 o7 O1 m( e1 K3.clock forwarding/board deskew
% R- u6 _' |* Z4.single DCM_ADV
$ G7 o. z, ~+ ~/ E) _) G2 [4 p
* x$ |" S3 ~$ z, h/ L2 {4 `& K1 `照你講的方法應該是選擇第二個串接的DCM$ _! I- K& E9 V9 N* ^% x$ W/ e
問題是我選完之後有一句話是! ]7 z) v1 J3 D& f5 X5 U
CLKFX and CLKFX180  are not recommended for either INST1 and INST2 because  of jitter requirement/ j( r- S2 p& S8 h: q$ b
所以裡面沒有CLKFX的選項
6 b3 S/ a: [8 N1 i9 Z) T/ T& N3 L那就沒辦法照著大大的步驟做了
8 H; t& Q' O" ]: o還是有其他的辦法可以選呢??
11#
發表於 2008-3-24 15:07:53 | 只看該作者
的確第二個DCM不recommend FX o/p,因為jitter 會累加過大,
8 r  i. e: r# V( K! I反過來產生,先用第一個DCM FX O/P,產生128MHz(M/N=32/25),
- K7 N; M+ ~& u再用第二個DCM 2X output 產生256MHz." ?, A, i3 [/ ]; ~, N7 @4 l5 N6 G( `# B
或第一個DCM 2X O/P 產生200MHz,第二個DCM FX O/P M/N=32/25,產生256MHz.
12#
 樓主| 發表於 2008-3-24 15:30:36 | 只看該作者

回復 11# 的帖子

但是會出現一個錯誤
) n6 A7 Y! Y1 U  q1 u因為我用的DCM是cascade in series
5 ~  U( ]2 N! i; x所以好像有限制在low frequency mode
7 G8 ?& x, C7 U6 \+ _所以在第一個輸出要達到200M會發生錯誤, B- D: x5 M, T* e4 T! `
$ d0 y+ C6 a; Q5 P6 Y
還是說我選的模式跟大大講的模式不一樣
8 j  _3 A6 @( c' u% x你說的也是要用內建的 clock wizard ->2.Cascading  in series  wuth two DCM_ADVs  嗎
13#
發表於 2008-3-24 16:58:28 | 只看該作者
第一個DCM 限制I/P frequency,32M<-->75M,# U9 ?1 W4 F  x, D% h% P3 M
不知25M震盪器可否調出來產生32M(M/N=32/25)或64M,再用一個DCM FX o/P 產生256MHz.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-3 03:16 AM , Processed in 0.165521 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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