Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-18 14:34:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好
6 i% r9 P" z' `2 Z我目前在使用vietex-4 的板子) c/ o# q! @  c9 ^" D- R" X
關於板子上面clock source的訊號要怎麼給有點疑問
. K1 n, ^: E; Q0 A1 [+ T- {! L使用手冊上有寫說分成differetial,single-ended clock source 兩種; h3 {, L1 ?* L8 o' e* F% }3 @
這是代表什麼意思
9 @' }/ V- I1 {2 u  c6 m8 m) D另外板子上有一個100M的震盪器,他說要使用DCMs可以產生不同的clock; e1 S6 h5 ^# |: \$ Z
這是代表說我要另外再寫一些指令去達到我想要的clock嗎  L9 H  _7 g' {6 D- W
有大大寫過這個程式嗎?   不知道要從何下手
1 d/ S/ c; o, X2 v9 g$ b5 [/ F) Z5 y' r
另外有一個25M震盪器
, {0 |5 d7 |; W5 _好像可以用調撥的方式將M,N兩組開關,調成我們要的clock
- u7 u/ q+ s& U/ O. P2 ]9 f6 wout = 25x M/N
# p( K' J% r2 K) ?* i這是另外一種方式嗎
- r+ v$ a  N+ \: {9 L( f8 p3 i+ Z, |, t4 v6 Z
我有點搞混了...使用手冊上面寫了很多的clock輸入
8 M# \! d# A! @2 B1 r要怎麼分類呢??5 ], ~) |4 E. a) s
請使用過的大大指導一下...感謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-20 11:14:56 | 只看該作者
virtex-4的版子不知是原廠網頁上的那塊?http://www.xilinx.com/products/devboards/index.htm3 _. m* M4 z# j% H: k, ?
關於DCM功能,建議先看一下Xilinx的clock manangement8 y, a6 u, J, B2 g7 ~+ Q6 Y4 v( l
http://www.xilinx.com/support/do ... sign_clockmanag.htm
( O% s; L- L# [" T7 Z中的 XAPP132 - Using the Virtex Delay-Locked Loop
3#
發表於 2008-3-20 12:34:10 | 只看該作者
Single end--->單端輸入(從P端輸入)
: Q) {  e+ W0 I* F3 uDifferential--->差動輸入(LVDS,,等)
7 c: E3 {& S3 P) L2 @7 u9 h如果CLOCK頻率不是很高,可採單端輸入GCLK pin,再從內部去除出所要的CLOCK頻率.; @, E9 M8 r) I, v6 u
) O6 O0 |7 U% y: t- v
若要用DCM,從Xilinx Architecture Wizard(在ISE Accessories--->Architecture Wizard)去自動產生所要的CLOCK頻率.Wizard 會產生 .vhd,.xaw,.ucf檔.把.xaw加入design.(利用ISE add source)以下是以單一個DCM instance作例子.6 K4 |1 H' c* }9 y1 s: w( b. w8 n

2 X8 ^' `" }1 [( V* h/ gEX: (輸入75MHz--->>輸出50MHz)$ C( s, T5 q0 M. a1 e: h* C2 m
entity ClockManageris
5 L* E7 T- H% I) pPort ( clk_50mhz : in std_logic;' W. D1 i5 S4 G9 ^  U8 K
clk_75mhz : out std_logic;( E7 {1 C1 q, E0 O9 N6 V, y
clk_75mhz_180 : out std_logic);/ L4 P8 i) b% M! V2 X- q6 I
end ClockManager;
8 l$ d+ [/ B: V( carchitecture Behavioral of ClockManageris  k" P8 q2 V; e( w8 \  L7 X
component clkgen_75mhz0 o; H! T- c, i1 Q
port ( CLKIN_IN : in std_logic;& ?( Q9 J3 o  T
RST_IN : in std_logic;
- {3 f- d: D& v8 o% J# `  E& ^2 vCLKFX_OUT : out std_logic;
- }6 N5 M0 e2 F" R: I, UCLKFX180_OUT : out std_logic;
" @5 }) A8 I3 {CLKIN_IBUFG_OUT : out std_logic;" z' n1 V% o" t( i
LOCKED_OUT : out std_logic);
3 l  ?: D3 I* X3 Q/ yend component;
5 t4 D7 w1 Y1 I$ ^begin* U  R: u+ V# }
gen_75mhz: clkgen_75mhz
& G- X8 g2 h, u1 W- Fport map( CLKIN_IN => clk_50mhz,
% ]9 p" ~+ x/ a* O' |RST_IN => '0',
) b9 ]& @# k, }' z1 m1 K# e3 ^CLKFX_OUT => clk_75mhz,, e9 D, {* p, y/ t* m2 d9 r# V& k4 d
CLKFX180_OUT => clk_75mhz_180,
# e$ G5 q% i/ J% Q7 X- R( d" mCLKIN_IBUFG_OUT => open,
+ S/ C) k1 @- T' E, t6 g2 K) c9 FLOCKED_OUT => open );! o$ O' J2 X) T0 n1 K( P  i7 Y
end Behavioral;
4#
 樓主| 發表於 2008-3-20 18:44:19 | 只看該作者
回復 2# 的帖子9 H! K+ u# c& Y& |# g7 e0 N
3 K* E" |" s  q- G
我們用的板子是VIRTEX-4  (LX60)
# p3 z2 S* B' Q% ~3 A+ z; _- w我昨天有去網頁找了些關於DCM的資料來看% ]: r, {  f: Z! E4 L8 t6 N% R
雖然有點複雜; M8 o0 T' `7 S% c) G7 O" G
不過還是看個大概
! h, u# i: Z$ I* O) P  Y9 b& J9 b
回復 3# 的帖子
7 ]3 t; c9 G. f& A6 }; s
. X1 {: G- S1 t你講的這些動作2 q1 n: z  C' _9 M! C& T4 n
我昨天都有照著我在網路上找的資料大略的做過一次! l. Q7 H5 n' m2 A# d% W
不過我還是有一些問題
5 v* l6 S' U" n& l  I5 ]1.像DCM的輸入   好像是由100M震出來的9 Q9 ?- V2 g* Q8 K
那我需要256M   利用DCM 可以做得到吧??8 y5 N6 s, J" V* ?  W( z, T5 n
還是說只能產生比100M低的時脈) Y& v, g( J- D; r3 M. V
; v7 o2 O1 n  ^4 V* ~. q& Q
2. DCM是分成DLL,PS,DFS嗎??4 L. u1 ~9 L: W$ A4 d
因為我昨天看到DCM組成的block
5 H$ l( W) J9 |" z/ w* {裡面含有這些,每個功能都不太一樣
2 T( f1 V- g1 T! |$ g4 q9 t如果我今天要產生一個單純的沒有相位移256M
1 p  O/ r+ m; k1 i+ ~那參數的設定會不會不需要用到全部??
5 e1 L# @% p% s7 B  }5 Y, `還是只需要用到DLL就好
! B- W  r0 y  X* y) e) w; H
( v# y9 @' z* x3.像你講的   Wizard 會產生 .vhd,.xaw,.ucf檔8 u  l. v5 z7 L+ x3 H1 z' C' y* ]
   把.xaw加入design的意思是把這個檔也燒到FPGA板子裡嗎?
% R' J2 \5 B. r' z   那我要設定接角嗎??
4 G/ ~, O* O: a/ Q# }, E   因為xaw的程式不像一般會有input  output
  o. |( k; L- K& _   所以會有點搞混掉
. T, Z$ D2 W6 K" Q
3 N, n; G+ h: Z0 W: @以上是我小小的疑問, w/ u5 R" z" R* S6 i# O$ E
先謝謝各位大大的解答  & x! j! A; B: M! f& ^

7 k" y2 A  ?$ l7 o) X[ 本帖最後由 小人發 於 2008-3-20 06:51 PM 編輯 ]
5#
發表於 2008-3-20 22:10:47 | 只看該作者
要從100M產生一個單純的沒有相位移256M,要用DFS,CLKFX o/p功能,而且不是在做Deskew的話,CLKFB可不接.
8 d/ k" q8 e$ y9 L; B1 K; g' O' M2 ~* Y2 K
參數的設定可在Wizard內設定.以Virtex4-10來看,如果只用DFS o/p(CLKFX/CLKFX180),不用DLL o/p,+ [+ F( \- [8 ?3 m
input clock 100M,ouput clock 256M,則只適用Maximum Speed/High Frequency 的Mode. Low frequency mode6 H- Y3 G3 T# {3 A
最多到210M,不夠用.
7 E) d: K- e9 i/ @3 Y5 b1 T! E.xaw 檔是Xilinx architecture wizard(XAW)設定檔,像Xilinx coregen 產生memory block的 .XCO檔 一樣,
) |0 M  \2 @; `  H& S: d在ISE 的 project manager 裡把他加入跟其他source files 一起即可.然後在你的design source file 要去 instantiate它.可參考上次帖子的例子.
6#
 樓主| 發表於 2008-3-21 14:54:32 | 只看該作者

回復 5# 的帖子

我試了一下,大概知道怎麼用了
( r$ i& O& R& H& B& T: s) J) t不過還有一個問題3 a$ E2 Y' U: j) k  H. Z
在DFS裡面  好像沒辦法產生準確的256M" M0 G' A8 s% m3 i5 `  z: g5 x
因為它是用clock*M/D  (M跟D都是2~32的正整數)
$ L4 s) z1 @) J3 {* O  u& U- J0 c7 Rclock=100M   那怎麼選M跟D都沒辦法達到256M4 `# p# h3 w6 |1 i  f
這要怎麼辦    其他DCM的方式有辦法達到這個頻率嗎
7#
發表於 2008-3-21 19:05:27 | 只看該作者
要用2個DCM串在一起的方式.不過使用上要小心Timing及不Locked的問題.  Q- R6 k/ Y/ \! Q. m* N4 W
" [6 ^  V! d9 A- p3 I; L8 \

本帖子中包含更多資源

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

x

評分

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

查看全部評分

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

回復 7# 的帖子

對於這兩個DCM相接的方塊圖
. a1 K' e' V% m( f" K就是第一個block輸出是CLKDV
8 r# h8 A, R2 O所以必須是100M除以CLKDV(2,2.5,3,3.5,4........16), g6 Y+ u) D" ^( B: G0 b& ]! K
然後再把除完的頻率當作第二個的輸入; S# m5 l4 [  u
第二個是使用DFS   輸出是CLK*M/D (M跟D都是2~32)
/ z) u( N0 g) o, V/ e2 H, }- h. G2 O+ J+ D5 N, U& E
我好像湊不出來可以達到256M的參數耶% K6 l: M3 N, [3 z
是我哪裡沒搞清楚嗎7 v7 @. G; {; s' d: E9 O9 b' t  \% @
麻煩大大在幫我解惑一下~~
9#
發表於 2008-3-24 10:22:16 | 只看該作者
這兩個DCM相接的方塊圖只是一個應用方式,你也可以用第一個DCM FX O/P,產生200MHz,再用第二個DCM FX O/P
! n0 a9 Z" j/ rM/N=32/25,產生256MHz,要等第一個DCM FX O/P進入LOCK後幾個cycles,才能開始啟動第二個DCM.
10#
 樓主| 發表於 2008-3-24 13:44:38 | 只看該作者

回復 9# 的帖子

我想問一下
8 F% y4 z( ~) t. D# N5 e. T兩個DCM相接的方法  是直接在裡面可以選擇的模式嗎
' d5 k" R2 D; Y' H+ M* E因為在clock wizard裡面有四種可以選擇
% T5 L/ z) t2 S9 s. e. O3 u/ q# m; H1.Board  Deskew with an internal  Deskew
: @; x# L: {! V+ M7 @2.Cascading  in series  wuth two DCM_ADVs" g0 k) l) @& t
3.clock forwarding/board deskew
! U& |( t/ z9 [3 l/ h: Y4.single DCM_ADV
* T& y8 e5 V. Q2 N2 ?0 f* x# V  c( B; h
照你講的方法應該是選擇第二個串接的DCM* ?4 G: I2 q- M- R( ^+ I. d
問題是我選完之後有一句話是* t) Y; [2 _1 D  D, `' y
CLKFX and CLKFX180  are not recommended for either INST1 and INST2 because  of jitter requirement
+ R2 u; i. A/ y. D所以裡面沒有CLKFX的選項
2 C6 L+ {  k; n) ?那就沒辦法照著大大的步驟做了) A& \& X4 ?% N$ P
還是有其他的辦法可以選呢??
11#
發表於 2008-3-24 15:07:53 | 只看該作者
的確第二個DCM不recommend FX o/p,因為jitter 會累加過大,4 ]/ S' ]. S: K6 U. U7 L4 }
反過來產生,先用第一個DCM FX O/P,產生128MHz(M/N=32/25),1 U- R, u1 g5 r" `
再用第二個DCM 2X output 產生256MHz.# x" O9 |& P& G8 t: V3 @; x
或第一個DCM 2X O/P 產生200MHz,第二個DCM FX O/P M/N=32/25,產生256MHz.
12#
 樓主| 發表於 2008-3-24 15:30:36 | 只看該作者

回復 11# 的帖子

但是會出現一個錯誤
) }9 r! R: E/ Q: T4 [因為我用的DCM是cascade in series0 \6 R$ U0 c& _+ ^4 a& M' s
所以好像有限制在low frequency mode) G0 b6 m( l4 {5 C' `8 K2 r  {
所以在第一個輸出要達到200M會發生錯誤: {8 n  K9 N1 ]* Q% o. s
& u6 A2 _! S/ j& a6 \7 q4 @
還是說我選的模式跟大大講的模式不一樣
! G9 u* \/ O" r你說的也是要用內建的 clock wizard ->2.Cascading  in series  wuth two DCM_ADVs  嗎
13#
發表於 2008-3-24 16:58:28 | 只看該作者
第一個DCM 限制I/P frequency,32M<-->75M,
5 ?6 C. h" M! V- y/ J" j不知25M震盪器可否調出來產生32M(M/N=32/25)或64M,再用一個DCM FX o/P 產生256MHz.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-20 01:31 PM , Processed in 0.171601 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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