Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-18 14:34:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好
: ?: s- Z4 i2 j& E9 Y7 X; A& X我目前在使用vietex-4 的板子
, J/ v; v. i! {( u關於板子上面clock source的訊號要怎麼給有點疑問! z( ^6 A; p3 K) s, I
使用手冊上有寫說分成differetial,single-ended clock source 兩種( G% \# O" w! p
這是代表什麼意思
, F: s% I7 R! d4 N" m- o7 @' E另外板子上有一個100M的震盪器,他說要使用DCMs可以產生不同的clock
# e2 S+ U: k) F4 R, }5 [. _這是代表說我要另外再寫一些指令去達到我想要的clock嗎
" z1 E  p3 ~; g+ B: ~" [有大大寫過這個程式嗎?   不知道要從何下手
0 w7 V) ^0 }. v: X/ a$ d% W) b$ g. v* u1 R0 ?: {! p
另外有一個25M震盪器
+ e: K3 s' s1 j0 u好像可以用調撥的方式將M,N兩組開關,調成我們要的clock
/ j' H+ ?8 b" m- f3 t/ E2 A0 lout = 25x M/N
3 ]1 G( Y6 ~5 Y9 f' V( g這是另外一種方式嗎% n* g7 W  m  K% U

: u+ {6 O7 s. h+ ]' t* ?! o9 ~" E我有點搞混了...使用手冊上面寫了很多的clock輸入; r8 l- h9 ?+ {8 ]: d& j" @
要怎麼分類呢??( V+ H3 y7 x2 G. L  ^
請使用過的大大指導一下...感謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-20 11:14:56 | 只看該作者
virtex-4的版子不知是原廠網頁上的那塊?http://www.xilinx.com/products/devboards/index.htm9 r4 }! |, O+ C7 d. ]
關於DCM功能,建議先看一下Xilinx的clock manangement0 f2 ?: R: t6 r
http://www.xilinx.com/support/do ... sign_clockmanag.htm
- g2 V8 Q4 P/ l2 K: q8 [  {  O" K3 h5 C中的 XAPP132 - Using the Virtex Delay-Locked Loop
3#
發表於 2008-3-20 12:34:10 | 只看該作者
Single end--->單端輸入(從P端輸入)
3 T% X& V" [& _% ?! ?( ~Differential--->差動輸入(LVDS,,等)
, f/ J- W; n% q如果CLOCK頻率不是很高,可採單端輸入GCLK pin,再從內部去除出所要的CLOCK頻率.% L! n: v8 `8 ]( C! B9 t. i

+ d. d3 i( Q7 {2 z若要用DCM,從Xilinx Architecture Wizard(在ISE Accessories--->Architecture Wizard)去自動產生所要的CLOCK頻率.Wizard 會產生 .vhd,.xaw,.ucf檔.把.xaw加入design.(利用ISE add source)以下是以單一個DCM instance作例子.
0 t4 q  N! u9 \0 b  V, H
% m& ?2 }; ^1 {+ X# N" L" n% pEX: (輸入75MHz--->>輸出50MHz)
2 r! N/ w+ ~8 b9 X# mentity ClockManageris/ r, J! Q: m* f5 D4 H- d( D
Port ( clk_50mhz : in std_logic;
2 C3 a) g" b# a* X% b+ r* }clk_75mhz : out std_logic;
; l* D9 v' {8 G  y: F% v& p& `clk_75mhz_180 : out std_logic);4 E4 t9 o( ]) h# `* s6 e. Z
end ClockManager;/ X0 k7 k$ L, W% B" ~% S$ C
architecture Behavioral of ClockManageris. I9 K1 w* _2 ]% S3 O; X
component clkgen_75mhz0 ~; X  @5 x+ H
port ( CLKIN_IN : in std_logic;, |% d% \! W1 N  F
RST_IN : in std_logic;$ I0 [" K% ]) Y" M- ?2 c; v: ~
CLKFX_OUT : out std_logic;2 k& y# L/ G- a% M, b
CLKFX180_OUT : out std_logic;
2 }9 k1 l4 c9 K$ a7 }+ Z+ SCLKIN_IBUFG_OUT : out std_logic;
* U0 C, z" T+ H" s7 vLOCKED_OUT : out std_logic);
6 n  e5 C7 y2 w$ o2 A0 |- mend component;
6 ^1 r: B$ y9 ]' Vbegin
/ Z1 ?* m) w' [, ~gen_75mhz: clkgen_75mhz
; }( f; K, a2 O7 Bport map( CLKIN_IN => clk_50mhz,8 W1 `1 E3 T8 T4 E
RST_IN => '0',
! R* R) T9 s) hCLKFX_OUT => clk_75mhz,
* U" S7 ]# E6 A7 Y6 YCLKFX180_OUT => clk_75mhz_180,% X1 e) W: c* ^) O4 v  z
CLKIN_IBUFG_OUT => open,
, J1 y& z  b5 Z  XLOCKED_OUT => open );
6 [8 W+ `8 }& w) ?8 A' [9 C4 M9 c& qend Behavioral;
4#
 樓主| 發表於 2008-3-20 18:44:19 | 只看該作者
回復 2# 的帖子) q. Q9 {. @, m
0 s1 J( O  y5 L+ l
我們用的板子是VIRTEX-4  (LX60)
2 K7 r# O+ D! v4 V) y% L5 N  x+ M我昨天有去網頁找了些關於DCM的資料來看2 f, E1 p: p* P. r
雖然有點複雜
8 A$ `9 _7 [9 z( ^* j不過還是看個大概% ]$ o" |, l. \9 O
0 u/ Z" ^: J$ [( R* o! H
回復 3# 的帖子( t- Z6 N; A; ~6 w' Y' g. e* D4 p
1 J7 {% V( V3 P+ o' w0 Q
你講的這些動作8 o: W7 h. F6 J+ H: k" W
我昨天都有照著我在網路上找的資料大略的做過一次8 s' h$ J9 [- w: j
不過我還是有一些問題3 O/ Y/ \4 X7 U: ]; F+ U( X
1.像DCM的輸入   好像是由100M震出來的- |7 M5 V$ T1 p# f* }% p9 R/ A
那我需要256M   利用DCM 可以做得到吧??
5 A4 L) r& D) K, T/ V) `還是說只能產生比100M低的時脈
0 M, q: q) e( r8 ?- F4 s: q1 w5 z
2. DCM是分成DLL,PS,DFS嗎??
6 k/ c! ]+ _# T+ I& C5 o5 y因為我昨天看到DCM組成的block
! Z5 Q" N  E8 B裡面含有這些,每個功能都不太一樣/ |: B$ ^7 s3 a) r( l
如果我今天要產生一個單純的沒有相位移256M5 G4 y' V% e) X/ j+ t% ^
那參數的設定會不會不需要用到全部??- W* X9 u7 L. J
還是只需要用到DLL就好: h3 ?8 g! b& H8 L+ g# Q) A' d

5 `2 ^. y# B, x/ p$ s, R1 }% i3.像你講的   Wizard 會產生 .vhd,.xaw,.ucf檔6 A# s3 O' Y1 H! B
   把.xaw加入design的意思是把這個檔也燒到FPGA板子裡嗎?: q6 F/ V9 Q/ J
   那我要設定接角嗎??6 u; u$ K2 S% t7 \( J( ^/ M
   因為xaw的程式不像一般會有input  output* I7 Y6 T: V+ d( d3 [& L
   所以會有點搞混掉
! M% E0 ^) A# a  w* e
' S" s6 m3 g# i( J以上是我小小的疑問
, O/ S1 n9 w9 T3 g9 L先謝謝各位大大的解答  
$ _7 C4 d% i/ g" e8 a6 B' m5 Y2 ~: {5 a/ @
[ 本帖最後由 小人發 於 2008-3-20 06:51 PM 編輯 ]
5#
發表於 2008-3-20 22:10:47 | 只看該作者
要從100M產生一個單純的沒有相位移256M,要用DFS,CLKFX o/p功能,而且不是在做Deskew的話,CLKFB可不接.
; g7 b+ l3 Q, O' b0 \1 H0 q
+ r. m9 ?5 |/ x. J. t. `  w8 p參數的設定可在Wizard內設定.以Virtex4-10來看,如果只用DFS o/p(CLKFX/CLKFX180),不用DLL o/p,
1 ]+ i, k% ^1 h& Vinput clock 100M,ouput clock 256M,則只適用Maximum Speed/High Frequency 的Mode. Low frequency mode
# q+ p3 V! O4 ]' @最多到210M,不夠用.
+ B- ]2 a8 `8 `: s.xaw 檔是Xilinx architecture wizard(XAW)設定檔,像Xilinx coregen 產生memory block的 .XCO檔 一樣,( B4 l* k! [4 T" V- Z4 A
在ISE 的 project manager 裡把他加入跟其他source files 一起即可.然後在你的design source file 要去 instantiate它.可參考上次帖子的例子.
6#
 樓主| 發表於 2008-3-21 14:54:32 | 只看該作者

回復 5# 的帖子

我試了一下,大概知道怎麼用了
% k2 G& a/ ~3 M不過還有一個問題
( g4 i  q* W& N0 }& h, x" p4 O! l在DFS裡面  好像沒辦法產生準確的256M
" d5 k2 ]) N9 [$ N因為它是用clock*M/D  (M跟D都是2~32的正整數)/ H& }$ ^' n1 n( q
clock=100M   那怎麼選M跟D都沒辦法達到256M2 l' f8 j8 r4 g" Z! \; G; R
這要怎麼辦    其他DCM的方式有辦法達到這個頻率嗎
7#
發表於 2008-3-21 19:05:27 | 只看該作者
要用2個DCM串在一起的方式.不過使用上要小心Timing及不Locked的問題.7 G% S. I: r' \, z! D. a  v' E2 h

/ V/ }/ l# ?7 E! d) Y1 D7 Y

本帖子中包含更多資源

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

x

評分

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

查看全部評分

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

回復 7# 的帖子

對於這兩個DCM相接的方塊圖6 w/ @4 v* D/ F% p* Q
就是第一個block輸出是CLKDV( S  r5 D; J& K# B
所以必須是100M除以CLKDV(2,2.5,3,3.5,4........16), m. Y3 t4 M0 Q7 t1 m
然後再把除完的頻率當作第二個的輸入. x4 m  |. r' u* h, V/ ~. n; H
第二個是使用DFS   輸出是CLK*M/D (M跟D都是2~32)  b0 F+ d, d; a- n! h! y: r
) p7 V  r8 \, ^! d2 O; R; h  K7 _% E
我好像湊不出來可以達到256M的參數耶
* e4 |9 z  O; t, U是我哪裡沒搞清楚嗎
; s6 p8 R2 D8 g% G- ?" ~1 W麻煩大大在幫我解惑一下~~
9#
發表於 2008-3-24 10:22:16 | 只看該作者
這兩個DCM相接的方塊圖只是一個應用方式,你也可以用第一個DCM FX O/P,產生200MHz,再用第二個DCM FX O/P
& q8 |' `9 }* P( @- Z" m4 k; MM/N=32/25,產生256MHz,要等第一個DCM FX O/P進入LOCK後幾個cycles,才能開始啟動第二個DCM.
10#
 樓主| 發表於 2008-3-24 13:44:38 | 只看該作者

回復 9# 的帖子

我想問一下
% |' t: }' O: U1 Z2 H0 c兩個DCM相接的方法  是直接在裡面可以選擇的模式嗎4 f8 t5 N# Y& Z7 R: S# t! ~6 V
因為在clock wizard裡面有四種可以選擇
8 z3 k1 T7 y6 L% x& S+ h1.Board  Deskew with an internal  Deskew, N- t. s; }8 h' g+ K& c
2.Cascading  in series  wuth two DCM_ADVs# D' Q6 I9 V8 ^
3.clock forwarding/board deskew( u/ ^) D9 v) q' u$ @
4.single DCM_ADV
1 E/ x) N3 L: V3 M% ?9 ^6 K) o
3 f$ Q* S5 N/ E# p3 d照你講的方法應該是選擇第二個串接的DCM
- S  e/ G! M6 Q$ ^! O# Y! d) M0 t$ q問題是我選完之後有一句話是4 V3 O3 F3 P8 p4 n( }) E# s: C- e
CLKFX and CLKFX180  are not recommended for either INST1 and INST2 because  of jitter requirement/ t8 X' m: Z! @" r' f
所以裡面沒有CLKFX的選項* n: X+ f0 D/ `4 z) D5 s
那就沒辦法照著大大的步驟做了
: N7 x, B( V: G- z7 G還是有其他的辦法可以選呢??
11#
發表於 2008-3-24 15:07:53 | 只看該作者
的確第二個DCM不recommend FX o/p,因為jitter 會累加過大,
  a  L% M4 @7 y, ]) F反過來產生,先用第一個DCM FX O/P,產生128MHz(M/N=32/25),/ a7 G9 e0 v+ R0 K1 F% D" S% Q) _9 Q
再用第二個DCM 2X output 產生256MHz.
" v( g0 V) x/ J& A, z, Q或第一個DCM 2X O/P 產生200MHz,第二個DCM FX O/P M/N=32/25,產生256MHz.
12#
 樓主| 發表於 2008-3-24 15:30:36 | 只看該作者

回復 11# 的帖子

但是會出現一個錯誤8 `: R2 A8 F3 _1 Y
因為我用的DCM是cascade in series! _, `8 O" s  _7 ]! P! l1 N" u
所以好像有限制在low frequency mode
3 j5 w5 l( T3 E" X( i' Z& ]所以在第一個輸出要達到200M會發生錯誤2 G  {/ T  L5 P* _! {

0 @  o/ j9 r# c0 ~5 o還是說我選的模式跟大大講的模式不一樣
# D6 P. Q! m. Q( R- ?你說的也是要用內建的 clock wizard ->2.Cascading  in series  wuth two DCM_ADVs  嗎
13#
發表於 2008-3-24 16:58:28 | 只看該作者
第一個DCM 限制I/P frequency,32M<-->75M,
- Z/ x7 ?! L' r3 N: u" z" [不知25M震盪器可否調出來產生32M(M/N=32/25)或64M,再用一個DCM FX o/P 產生256MHz.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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