Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-18 14:34:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好, ~- Y: g4 y2 C0 t$ [
我目前在使用vietex-4 的板子, K7 `- s# G# o, _2 d
關於板子上面clock source的訊號要怎麼給有點疑問
: S  o2 M. H8 h  h使用手冊上有寫說分成differetial,single-ended clock source 兩種
" z/ E; `+ u/ f# a/ x/ U4 x0 L這是代表什麼意思
5 o/ X9 O  @1 r! \; I" c: t另外板子上有一個100M的震盪器,他說要使用DCMs可以產生不同的clock
  }" g$ h* V' G; w* U這是代表說我要另外再寫一些指令去達到我想要的clock嗎
7 x" g/ ^# [( \4 b有大大寫過這個程式嗎?   不知道要從何下手
" E3 c9 |7 Q. _- Y: T% f& o9 M; ?, |7 W+ U, f3 w- T
另外有一個25M震盪器2 l, r) O/ f3 k- J3 \8 i
好像可以用調撥的方式將M,N兩組開關,調成我們要的clock8 E' y% O. X  M& k+ B* _& W% q
out = 25x M/N
1 a7 g/ o* N/ g( s" F這是另外一種方式嗎: n" R% P. {8 ~8 h5 O8 ^1 T
; f% ~0 y! n- |
我有點搞混了...使用手冊上面寫了很多的clock輸入5 G0 y. V9 d# u; n7 Z# E6 e  ]
要怎麼分類呢??
3 x9 Z* `- d$ H% Y請使用過的大大指導一下...感謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-20 11:14:56 | 只看該作者
virtex-4的版子不知是原廠網頁上的那塊?http://www.xilinx.com/products/devboards/index.htm5 @: l+ e' N# ^6 |4 D$ _7 V, h
關於DCM功能,建議先看一下Xilinx的clock manangement9 u, m9 X  \/ ~/ }9 k
http://www.xilinx.com/support/do ... sign_clockmanag.htm
% ^$ e) u. j8 I) ^中的 XAPP132 - Using the Virtex Delay-Locked Loop
3#
發表於 2008-3-20 12:34:10 | 只看該作者
Single end--->單端輸入(從P端輸入)
% _! C9 u& u# V% b% m, wDifferential--->差動輸入(LVDS,,等)
% }" w. h3 Q, h( l7 D* x: k如果CLOCK頻率不是很高,可採單端輸入GCLK pin,再從內部去除出所要的CLOCK頻率.4 V5 s! t7 K* G6 j' v$ @/ }7 V

/ N+ [$ [' h- Q( g若要用DCM,從Xilinx Architecture Wizard(在ISE Accessories--->Architecture Wizard)去自動產生所要的CLOCK頻率.Wizard 會產生 .vhd,.xaw,.ucf檔.把.xaw加入design.(利用ISE add source)以下是以單一個DCM instance作例子.5 Q" u8 y$ @3 e* Z  M; o: m
" f  v! X: \5 f" Y, h
EX: (輸入75MHz--->>輸出50MHz)0 Y6 D+ V( f6 H$ q' ]6 v
entity ClockManageris
- p( q- h  ^+ }; M1 o6 a5 [; Z5 LPort ( clk_50mhz : in std_logic;/ J0 I% l1 J) B0 q% x( {1 r6 Y
clk_75mhz : out std_logic;+ ?) F, _/ [! {
clk_75mhz_180 : out std_logic);
' L: q3 X* c* g  v8 N7 `- Wend ClockManager;) M% r- [0 x: n) [3 K5 `
architecture Behavioral of ClockManageris% P- C9 u. ~/ k4 m1 L
component clkgen_75mhz3 m) ^2 L8 e7 P3 A3 U& N
port ( CLKIN_IN : in std_logic;  z7 e  V) ^( j0 ^- i( P  k2 c
RST_IN : in std_logic;
7 l4 \3 m1 B2 q' i; TCLKFX_OUT : out std_logic;
& i5 j! S+ {/ Z& [CLKFX180_OUT : out std_logic;+ t* |% w# V* Y' ]8 I1 w
CLKIN_IBUFG_OUT : out std_logic;
' O& Q' D% i7 p& ~' FLOCKED_OUT : out std_logic);- Q6 @3 P: C, }! \+ y" @+ V* h
end component;+ Z  j3 T% B, D# g0 l" u/ M
begin0 J' Z  H/ [, w
gen_75mhz: clkgen_75mhz% s& v: W3 p" q
port map( CLKIN_IN => clk_50mhz,
$ v* R4 y- S; oRST_IN => '0',
4 A$ G! W2 r! N" E0 l$ q1 \CLKFX_OUT => clk_75mhz,
9 `# k7 f7 L2 Q9 y) N: O4 x/ pCLKFX180_OUT => clk_75mhz_180,
3 y7 F. O2 \( U) x$ G- H; ~% UCLKIN_IBUFG_OUT => open,
! j# w) ^4 v5 U) v7 i: f5 N+ c/ vLOCKED_OUT => open );9 K$ m& Q8 `9 @% ^
end Behavioral;
4#
 樓主| 發表於 2008-3-20 18:44:19 | 只看該作者
回復 2# 的帖子
3 K6 ?$ ], w: x
* O4 [3 f) o4 \( m: U& X我們用的板子是VIRTEX-4  (LX60)
4 }. l% ^) G1 T5 W7 R' a我昨天有去網頁找了些關於DCM的資料來看! ?% ]3 j3 s2 o% B; M1 _
雖然有點複雜
; H5 b, m/ T$ w0 R% R! ]" M不過還是看個大概1 d5 W4 r( G. i. }2 U

9 M! l. n* c" C3 Z: z3 O回復 3# 的帖子0 }, {4 w; i1 z  Y
! A- U! N8 l7 O
你講的這些動作2 X$ u  Y+ n' T
我昨天都有照著我在網路上找的資料大略的做過一次
) e4 L/ }4 E( G不過我還是有一些問題
2 |, H. B& `- e! p+ ?& J1 j1.像DCM的輸入   好像是由100M震出來的
5 ]' g2 `! Z; x; a( o那我需要256M   利用DCM 可以做得到吧??
, z# J2 C- i4 F4 i6 S3 l3 Y* a還是說只能產生比100M低的時脈4 H, I( E* e4 ]
  n9 I3 p/ a) z1 H) y: p% f4 K
2. DCM是分成DLL,PS,DFS嗎??: a# l2 J; o+ o( q+ k  Y
因為我昨天看到DCM組成的block
( F+ U! B) t) H$ D/ @6 Q; g+ U裡面含有這些,每個功能都不太一樣
- X$ B+ w0 u/ L- p" e如果我今天要產生一個單純的沒有相位移256M
% G8 x6 o6 y0 p$ h' K那參數的設定會不會不需要用到全部??
) C. ^$ Q3 U+ s( [9 v1 b還是只需要用到DLL就好
* O: v; h" o) `1 H) ~5 F- R, Y7 }! ~5 G0 d; o0 o8 M, F
3.像你講的   Wizard 會產生 .vhd,.xaw,.ucf檔3 p+ c. f& K  G3 X
   把.xaw加入design的意思是把這個檔也燒到FPGA板子裡嗎?/ F# t7 d7 B! @: W( ]! g
   那我要設定接角嗎??
; D1 [9 \1 A0 p1 t   因為xaw的程式不像一般會有input  output
/ Z+ D' R$ \( T) Q6 F! F   所以會有點搞混掉
0 @) F, h1 I" j' D( g4 H" W, M8 \6 f& m3 U6 J% M
以上是我小小的疑問
1 Z" e) K0 X3 H5 W$ D先謝謝各位大大的解答  ) S( g) ~# F. P# R) t! U) a

5 P+ t& U3 m! o# I[ 本帖最後由 小人發 於 2008-3-20 06:51 PM 編輯 ]
5#
發表於 2008-3-20 22:10:47 | 只看該作者
要從100M產生一個單純的沒有相位移256M,要用DFS,CLKFX o/p功能,而且不是在做Deskew的話,CLKFB可不接.
$ y2 A4 i4 c) g2 K2 F3 q7 \% S9 t# d! q* m$ W6 ?. ]& n
參數的設定可在Wizard內設定.以Virtex4-10來看,如果只用DFS o/p(CLKFX/CLKFX180),不用DLL o/p,
- l8 s# J# X/ P$ _input clock 100M,ouput clock 256M,則只適用Maximum Speed/High Frequency 的Mode. Low frequency mode( \& {8 m- ?& j# h  l  y9 Z
最多到210M,不夠用.
% S  |# l2 h8 Z.xaw 檔是Xilinx architecture wizard(XAW)設定檔,像Xilinx coregen 產生memory block的 .XCO檔 一樣,
; Q( B" w  j8 J( g6 R( ]在ISE 的 project manager 裡把他加入跟其他source files 一起即可.然後在你的design source file 要去 instantiate它.可參考上次帖子的例子.
6#
 樓主| 發表於 2008-3-21 14:54:32 | 只看該作者

回復 5# 的帖子

我試了一下,大概知道怎麼用了! r& p6 @( ?# p: V6 x0 `
不過還有一個問題
8 r2 M2 e4 a5 c在DFS裡面  好像沒辦法產生準確的256M0 V" Y# O: ]' O. V- r
因為它是用clock*M/D  (M跟D都是2~32的正整數)$ ?# _0 X6 t- |6 ?: G
clock=100M   那怎麼選M跟D都沒辦法達到256M: |' E" s3 u; T6 D
這要怎麼辦    其他DCM的方式有辦法達到這個頻率嗎
7#
發表於 2008-3-21 19:05:27 | 只看該作者
要用2個DCM串在一起的方式.不過使用上要小心Timing及不Locked的問題.
/ {! _4 Y2 z9 W# ~( s9 |" c: ?
# r+ p8 v3 e* j4 N9 P0 w3 [

本帖子中包含更多資源

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

x

評分

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

查看全部評分

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

回復 7# 的帖子

對於這兩個DCM相接的方塊圖7 ^! {, S9 O) c+ F: u3 w- t* Y5 k: S1 a
就是第一個block輸出是CLKDV
9 h' J) d& \" M6 j' |9 P) j所以必須是100M除以CLKDV(2,2.5,3,3.5,4........16)5 U) M9 ^/ {# d6 s
然後再把除完的頻率當作第二個的輸入8 }( k+ [0 S; s4 J, j1 {, y  m
第二個是使用DFS   輸出是CLK*M/D (M跟D都是2~32)
  E; U5 ^  t/ _$ o2 B% R* p7 ?6 A0 N% H( u2 |7 L
我好像湊不出來可以達到256M的參數耶; p0 R% d8 O# ^+ I+ s! i9 e; b
是我哪裡沒搞清楚嗎2 O. U" M0 b- H) D/ r
麻煩大大在幫我解惑一下~~
9#
發表於 2008-3-24 10:22:16 | 只看該作者
這兩個DCM相接的方塊圖只是一個應用方式,你也可以用第一個DCM FX O/P,產生200MHz,再用第二個DCM FX O/P
" W# k* S4 ?3 x" M" e4 nM/N=32/25,產生256MHz,要等第一個DCM FX O/P進入LOCK後幾個cycles,才能開始啟動第二個DCM.
10#
 樓主| 發表於 2008-3-24 13:44:38 | 只看該作者

回復 9# 的帖子

我想問一下" e6 f1 X/ t6 g( f6 T1 o  c
兩個DCM相接的方法  是直接在裡面可以選擇的模式嗎
- n! ]. w. G/ d2 j, L) [因為在clock wizard裡面有四種可以選擇1 j- {* e: f" p$ o* Q
1.Board  Deskew with an internal  Deskew
6 ?5 r& y/ v/ O8 S, @& t2.Cascading  in series  wuth two DCM_ADVs, k' y$ F+ b) K& t* T5 \
3.clock forwarding/board deskew% y4 V2 ?  f9 G; T
4.single DCM_ADV* e) H% `# p; A( i$ @8 {
  b* P* `8 P) a6 U# f
照你講的方法應該是選擇第二個串接的DCM1 R+ B3 N, v4 e/ R$ |6 Z
問題是我選完之後有一句話是
" A0 C) c8 m3 sCLKFX and CLKFX180  are not recommended for either INST1 and INST2 because  of jitter requirement+ q* a1 e; D- D1 d- u" y8 X- v' J
所以裡面沒有CLKFX的選項3 G. Z" p2 R; }% n$ L
那就沒辦法照著大大的步驟做了% _9 c7 L$ }9 S  L& D$ a
還是有其他的辦法可以選呢??
11#
發表於 2008-3-24 15:07:53 | 只看該作者
的確第二個DCM不recommend FX o/p,因為jitter 會累加過大,
/ A8 f- G" p5 [1 n) f# E3 o0 x反過來產生,先用第一個DCM FX O/P,產生128MHz(M/N=32/25),/ m/ y' t. v5 n% i
再用第二個DCM 2X output 產生256MHz.
* V9 I. b9 U1 @% C或第一個DCM 2X O/P 產生200MHz,第二個DCM FX O/P M/N=32/25,產生256MHz.
12#
 樓主| 發表於 2008-3-24 15:30:36 | 只看該作者

回復 11# 的帖子

但是會出現一個錯誤
9 ^7 H% G* L, ?# k( i因為我用的DCM是cascade in series
' N" C6 Q+ t: u3 h( X; p$ @1 E所以好像有限制在low frequency mode
4 _- G6 ?( V5 C$ D, Z: i8 l所以在第一個輸出要達到200M會發生錯誤
3 q5 r6 x) D2 i8 r& A' x5 F1 n$ I) d3 t, |! r
還是說我選的模式跟大大講的模式不一樣- w  R  A: m. E/ |9 c# s
你說的也是要用內建的 clock wizard ->2.Cascading  in series  wuth two DCM_ADVs  嗎
13#
發表於 2008-3-24 16:58:28 | 只看該作者
第一個DCM 限制I/P frequency,32M<-->75M,
( |3 n# e& Y" v不知25M震盪器可否調出來產生32M(M/N=32/25)或64M,再用一個DCM FX o/P 產生256MHz.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-16 04:19 AM , Processed in 0.152519 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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