Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-18 14:34:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好
5 F) f, L* p, U% \! H我目前在使用vietex-4 的板子
" W0 V* D  H: N1 D! y/ D# w關於板子上面clock source的訊號要怎麼給有點疑問
8 ?1 @" t3 N; ~  b" Y0 H3 X使用手冊上有寫說分成differetial,single-ended clock source 兩種
7 G5 f) l( P5 Q! \+ z這是代表什麼意思
' V1 S# J; l1 {7 J另外板子上有一個100M的震盪器,他說要使用DCMs可以產生不同的clock
7 Y% U0 A1 l  M) t. r+ j# A$ s這是代表說我要另外再寫一些指令去達到我想要的clock嗎, U  e) B% y9 {. u% h9 N) ^
有大大寫過這個程式嗎?   不知道要從何下手
( `3 T) f0 G, F. a8 i
. d) k" f9 [! Q& Z, U另外有一個25M震盪器
+ L6 h; p' r* P! F# S' }好像可以用調撥的方式將M,N兩組開關,調成我們要的clock& m5 |. s6 D+ D3 B5 x
out = 25x M/N
* ]/ W6 @8 R) p! c6 \' M這是另外一種方式嗎/ D7 d  P( J+ G" U1 S( P% q# S
9 c, D+ t! k- A" Q2 R( s" |
我有點搞混了...使用手冊上面寫了很多的clock輸入
+ F, e: M  A# O  I9 ^9 h( A要怎麼分類呢??3 p, u7 N9 s/ S5 q) v- W
請使用過的大大指導一下...感謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-20 11:14:56 | 只看該作者
virtex-4的版子不知是原廠網頁上的那塊?http://www.xilinx.com/products/devboards/index.htm# g1 E3 h6 o& r4 k4 w% s/ N2 [1 M
關於DCM功能,建議先看一下Xilinx的clock manangement5 _% r' a% g: G* V) W6 A4 i
http://www.xilinx.com/support/do ... sign_clockmanag.htm# r9 M- `% `9 x7 g
中的 XAPP132 - Using the Virtex Delay-Locked Loop
3#
發表於 2008-3-20 12:34:10 | 只看該作者
Single end--->單端輸入(從P端輸入)) c5 O8 [+ J3 _% [
Differential--->差動輸入(LVDS,,等)7 I- y2 [5 i6 q
如果CLOCK頻率不是很高,可採單端輸入GCLK pin,再從內部去除出所要的CLOCK頻率.' X7 Y, [8 H, P" w

# o% `8 @& S1 k& [, ~  {若要用DCM,從Xilinx Architecture Wizard(在ISE Accessories--->Architecture Wizard)去自動產生所要的CLOCK頻率.Wizard 會產生 .vhd,.xaw,.ucf檔.把.xaw加入design.(利用ISE add source)以下是以單一個DCM instance作例子.
) [! [1 o& T. ^; F0 \/ S% V9 G# X" x6 a2 R1 t3 x9 s
EX: (輸入75MHz--->>輸出50MHz)3 c* ]; b8 J1 e4 c& a/ h' u
entity ClockManageris
2 u4 r' E6 \3 [7 fPort ( clk_50mhz : in std_logic;
( N8 @' V) o: ?5 B8 oclk_75mhz : out std_logic;
* j7 h' h4 `( q) f3 F  V$ Z2 o% L; Xclk_75mhz_180 : out std_logic);* H/ i9 X. F0 c  K, a
end ClockManager;) q) }* Z1 h! M6 E- g8 q8 T
architecture Behavioral of ClockManageris1 o! J; u1 [$ ~7 `2 V$ q
component clkgen_75mhz
0 m, _, W$ n& x0 w- lport ( CLKIN_IN : in std_logic;
) V' G5 O# i, N- sRST_IN : in std_logic;
& {% y  c. ]$ C+ Y) W: [: yCLKFX_OUT : out std_logic;
9 |# l% ?7 C/ `4 u0 nCLKFX180_OUT : out std_logic;
' u0 C$ A# m+ ]9 v- h; HCLKIN_IBUFG_OUT : out std_logic;$ U* ~: B! f8 g& b4 A& _
LOCKED_OUT : out std_logic);
4 K! z+ c. V; Y' c% [end component;
% J6 C. H7 T3 F9 _" bbegin5 |; M9 X2 w) S$ A( Y/ I# T
gen_75mhz: clkgen_75mhz
/ r% m! t! X! s* xport map( CLKIN_IN => clk_50mhz,
1 E+ G! F: ~+ K4 y. I, T: ~' `RST_IN => '0',
4 B5 L( p) V+ JCLKFX_OUT => clk_75mhz,, j# @1 Y% _. E7 e1 Q  S+ a
CLKFX180_OUT => clk_75mhz_180,
; r/ b; b% {* [9 V" wCLKIN_IBUFG_OUT => open,
* S2 T$ l- f9 V. L: x$ z1 ~8 tLOCKED_OUT => open );) M) t) ]" ^3 ]  e/ [
end Behavioral;
4#
 樓主| 發表於 2008-3-20 18:44:19 | 只看該作者
回復 2# 的帖子
2 j1 d% k8 U5 C" \
  M: V4 k! e& W) G我們用的板子是VIRTEX-4  (LX60)  x' a; R( G2 Z- M2 i
我昨天有去網頁找了些關於DCM的資料來看( `2 ]3 E" M8 q- z" l
雖然有點複雜/ U' Q3 p$ }  |/ c0 @
不過還是看個大概
( Y+ v5 J1 k$ I- I& p" N" Z
& L0 z3 L9 d) o: X, H回復 3# 的帖子
6 \! Y! s! ]8 M& q( t
& A( p2 q/ P; e1 k你講的這些動作; S/ Y* x* c3 e6 k1 g3 {
我昨天都有照著我在網路上找的資料大略的做過一次! J. }& g* c: {% Q
不過我還是有一些問題
6 y' Y0 d: o2 A4 m# U1.像DCM的輸入   好像是由100M震出來的
& b& {2 y6 U% K' `" F. X0 f那我需要256M   利用DCM 可以做得到吧??
( Y5 K/ W  U$ b( h5 t! q還是說只能產生比100M低的時脈* V9 @  O" O; w( D
* v# s, A& s" p- }8 ?
2. DCM是分成DLL,PS,DFS嗎??' r" N$ u+ k8 i6 F, Z, F9 G
因為我昨天看到DCM組成的block8 V+ v0 Z+ z0 F: Z8 e
裡面含有這些,每個功能都不太一樣
( G6 I9 Z5 d; @7 B/ _如果我今天要產生一個單純的沒有相位移256M& @: o, I  k& ^
那參數的設定會不會不需要用到全部??4 F6 Q+ I5 ~* n& O# T3 \9 f
還是只需要用到DLL就好
6 w% J" w: {9 q& }. @) g4 ?
: A7 F' A  O, b# a1 ~& h8 o$ }3.像你講的   Wizard 會產生 .vhd,.xaw,.ucf檔
: i5 _) G7 [  R$ d. x# |: o: ]! J   把.xaw加入design的意思是把這個檔也燒到FPGA板子裡嗎?2 g6 k! \# n& W
   那我要設定接角嗎??4 E& _3 A* ]2 m* c. @
   因為xaw的程式不像一般會有input  output$ T# i3 p7 ]; w- [% G
   所以會有點搞混掉
: w! a# F8 Z8 M# g) b( N5 q: \) B4 N& B* q! y# G5 p8 z
以上是我小小的疑問
# ?, z* s6 Y7 ?" ?先謝謝各位大大的解答  2 v( q8 x7 b: v  n2 `
% V" h0 w9 X7 H4 _$ E  l2 Y
[ 本帖最後由 小人發 於 2008-3-20 06:51 PM 編輯 ]
5#
發表於 2008-3-20 22:10:47 | 只看該作者
要從100M產生一個單純的沒有相位移256M,要用DFS,CLKFX o/p功能,而且不是在做Deskew的話,CLKFB可不接.
5 D4 i! W% w9 g3 w" o4 v+ g2 P
! b& G- y$ u6 N+ r參數的設定可在Wizard內設定.以Virtex4-10來看,如果只用DFS o/p(CLKFX/CLKFX180),不用DLL o/p,  W: ]9 {) w# H5 q
input clock 100M,ouput clock 256M,則只適用Maximum Speed/High Frequency 的Mode. Low frequency mode
. `2 S. n# q! a( X最多到210M,不夠用.
/ i3 u' d( j2 D* l.xaw 檔是Xilinx architecture wizard(XAW)設定檔,像Xilinx coregen 產生memory block的 .XCO檔 一樣,2 B9 O. U9 T2 C0 H. A
在ISE 的 project manager 裡把他加入跟其他source files 一起即可.然後在你的design source file 要去 instantiate它.可參考上次帖子的例子.
6#
 樓主| 發表於 2008-3-21 14:54:32 | 只看該作者

回復 5# 的帖子

我試了一下,大概知道怎麼用了
& h( e( S( m. G) y% I$ Y+ b不過還有一個問題
9 s& V8 }, y' [在DFS裡面  好像沒辦法產生準確的256M/ O' I6 N' l& N: E" n. j
因為它是用clock*M/D  (M跟D都是2~32的正整數)5 L/ j) G4 r9 B& M
clock=100M   那怎麼選M跟D都沒辦法達到256M* _6 L( Z+ n9 _/ E4 ?
這要怎麼辦    其他DCM的方式有辦法達到這個頻率嗎
7#
發表於 2008-3-21 19:05:27 | 只看該作者
要用2個DCM串在一起的方式.不過使用上要小心Timing及不Locked的問題.5 v6 y( s1 g& w8 G: J7 S& B

3 {8 k; j( ~% [3 M' o2 `$ b7 B8 G; _

本帖子中包含更多資源

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

x

評分

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

查看全部評分

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

回復 7# 的帖子

對於這兩個DCM相接的方塊圖* ^' j, v/ |/ J. A
就是第一個block輸出是CLKDV
) w' Z" X  L& S0 \9 v2 T4 ^所以必須是100M除以CLKDV(2,2.5,3,3.5,4........16)) ^) z/ C1 d, ]
然後再把除完的頻率當作第二個的輸入/ S2 a( N0 I& z" H
第二個是使用DFS   輸出是CLK*M/D (M跟D都是2~32)
$ T( \2 g: @) |5 R+ ^4 v" }. {3 s! a  L) n8 u4 v! L  X% U
我好像湊不出來可以達到256M的參數耶" R! u. M% p9 h  C3 A! @
是我哪裡沒搞清楚嗎5 X- y; {7 B1 w6 U
麻煩大大在幫我解惑一下~~
9#
發表於 2008-3-24 10:22:16 | 只看該作者
這兩個DCM相接的方塊圖只是一個應用方式,你也可以用第一個DCM FX O/P,產生200MHz,再用第二個DCM FX O/P
: I1 U0 ?; Y8 [  }# V" R( JM/N=32/25,產生256MHz,要等第一個DCM FX O/P進入LOCK後幾個cycles,才能開始啟動第二個DCM.
10#
 樓主| 發表於 2008-3-24 13:44:38 | 只看該作者

回復 9# 的帖子

我想問一下% [0 I: H3 d: w, G4 L: ]
兩個DCM相接的方法  是直接在裡面可以選擇的模式嗎* B- u, X# j$ m  |5 I) B: i
因為在clock wizard裡面有四種可以選擇
" A9 \: w+ k6 U" t1.Board  Deskew with an internal  Deskew8 \1 [3 ?1 Z* X' ?" v6 X
2.Cascading  in series  wuth two DCM_ADVs
9 Y4 [2 T9 B8 J$ h3.clock forwarding/board deskew! s! W) ~; n( F2 X
4.single DCM_ADV
7 Q$ }! [6 S& ?- P# p8 ~) w6 }' M2 I" J" {- ]5 E! J
照你講的方法應該是選擇第二個串接的DCM1 Q  Y1 y3 ^. p2 e( I5 r4 [
問題是我選完之後有一句話是
4 l4 H+ Y# C7 ]/ N  \) Y* aCLKFX and CLKFX180  are not recommended for either INST1 and INST2 because  of jitter requirement
: y2 t  t  F1 j6 H所以裡面沒有CLKFX的選項
( F+ ~' g) y! O. O& t* B- j0 S那就沒辦法照著大大的步驟做了
# p7 h9 S3 p. V4 H5 ^) M6 d還是有其他的辦法可以選呢??
11#
發表於 2008-3-24 15:07:53 | 只看該作者
的確第二個DCM不recommend FX o/p,因為jitter 會累加過大,1 ]( V8 w9 H3 B* L+ E& K
反過來產生,先用第一個DCM FX O/P,產生128MHz(M/N=32/25),
. o- a0 t  \: |% x再用第二個DCM 2X output 產生256MHz.  E$ p# h( N* b% s7 D3 Y
或第一個DCM 2X O/P 產生200MHz,第二個DCM FX O/P M/N=32/25,產生256MHz.
12#
 樓主| 發表於 2008-3-24 15:30:36 | 只看該作者

回復 11# 的帖子

但是會出現一個錯誤
! a3 p7 N5 Q2 O7 N因為我用的DCM是cascade in series
& z+ }# g1 n# }  N$ S所以好像有限制在low frequency mode9 z$ P# |8 W$ B" X
所以在第一個輸出要達到200M會發生錯誤! C; k" t9 i  b6 ~
; l! L8 \5 I3 w5 Z1 b
還是說我選的模式跟大大講的模式不一樣
: M$ `* q5 ~; ~% i: f" m& w; S* d你說的也是要用內建的 clock wizard ->2.Cascading  in series  wuth two DCM_ADVs  嗎
13#
發表於 2008-3-24 16:58:28 | 只看該作者
第一個DCM 限制I/P frequency,32M<-->75M,
5 w) `- v& P! F+ Y" ~5 h不知25M震盪器可否調出來產生32M(M/N=32/25)或64M,再用一個DCM FX o/P 產生256MHz.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-20 09:23 AM , Processed in 0.126516 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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