Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-18 14:34:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好4 d0 C7 I- H3 [7 `
我目前在使用vietex-4 的板子, P7 D+ L4 ~8 `. t/ m
關於板子上面clock source的訊號要怎麼給有點疑問4 V/ U; a9 Q+ ^& K2 p
使用手冊上有寫說分成differetial,single-ended clock source 兩種$ ~3 I. E- [4 X/ i
這是代表什麼意思  u# {3 z- O1 {# w0 r7 `4 E6 H& x, a
另外板子上有一個100M的震盪器,他說要使用DCMs可以產生不同的clock
4 b* k5 o) g# T, _8 m- m這是代表說我要另外再寫一些指令去達到我想要的clock嗎
' ~% Z9 f. _1 X4 G0 l5 l有大大寫過這個程式嗎?   不知道要從何下手! V+ c" {1 R1 Y# H9 a: }. X& [: p

1 _  c$ h" j  A5 k+ M另外有一個25M震盪器
" f% P) s$ T4 i: @( w) d3 a9 ~好像可以用調撥的方式將M,N兩組開關,調成我們要的clock
% P9 u/ p2 O+ Y  H0 O/ cout = 25x M/N+ q2 W4 s7 M& s( l
這是另外一種方式嗎
+ V- q" R- a, }; P
# P; P$ P5 q+ z  m6 ?我有點搞混了...使用手冊上面寫了很多的clock輸入
, U' W" m/ V. M要怎麼分類呢??2 l0 ~' w! C; i: N) z2 l1 X
請使用過的大大指導一下...感謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-20 11:14:56 | 只看該作者
virtex-4的版子不知是原廠網頁上的那塊?http://www.xilinx.com/products/devboards/index.htm
* ~7 B2 R3 {4 e, d' b9 ^# k關於DCM功能,建議先看一下Xilinx的clock manangement
' L+ U3 n1 b; ^8 L! z4 A0 Phttp://www.xilinx.com/support/do ... sign_clockmanag.htm/ P; u( N$ K5 G% K
中的 XAPP132 - Using the Virtex Delay-Locked Loop
3#
發表於 2008-3-20 12:34:10 | 只看該作者
Single end--->單端輸入(從P端輸入)5 l# c# c, J- r0 q0 K. U. d* z0 K
Differential--->差動輸入(LVDS,,等)3 }* |& ]% y$ C8 s  l7 `
如果CLOCK頻率不是很高,可採單端輸入GCLK pin,再從內部去除出所要的CLOCK頻率.
! L' F$ k7 T" |
3 t* ~( F* n8 ?* B% B& w, ?& L$ X若要用DCM,從Xilinx Architecture Wizard(在ISE Accessories--->Architecture Wizard)去自動產生所要的CLOCK頻率.Wizard 會產生 .vhd,.xaw,.ucf檔.把.xaw加入design.(利用ISE add source)以下是以單一個DCM instance作例子.
; {1 U/ A7 D8 v' ]: _8 U, r
& Z: C/ T( }" e$ v- EEX: (輸入75MHz--->>輸出50MHz); J3 \' G5 P8 H% F& H: Z  F8 j4 d
entity ClockManageris
, `8 ]! C% P% T& p* Y! mPort ( clk_50mhz : in std_logic;
( b, H! P$ t" a2 g3 H# `8 b, t& s. yclk_75mhz : out std_logic;
5 b6 @' x+ P' N1 s. g" bclk_75mhz_180 : out std_logic);. x0 C5 R1 M  r. Q, }
end ClockManager;+ v5 F7 D9 K. u& |; `& z' ]! u1 B
architecture Behavioral of ClockManageris0 N' K+ L/ c7 X
component clkgen_75mhz) e3 @4 ~: F, x. F- P  U) C  C
port ( CLKIN_IN : in std_logic;
4 |& I3 E$ q5 T  s  z6 _RST_IN : in std_logic;* D+ C: i, s7 {3 X& _0 h/ o0 |! Q9 u& m
CLKFX_OUT : out std_logic;) n' t+ A3 }$ ]6 `& X& f
CLKFX180_OUT : out std_logic;
8 m: I/ {; L& a  m0 Z& `CLKIN_IBUFG_OUT : out std_logic;
  S- J- w. [! e; g  o8 sLOCKED_OUT : out std_logic);7 d. f% o- e% q) i
end component;
5 ]+ W& Y; S6 @* v( _begin2 P7 h# |0 t/ _
gen_75mhz: clkgen_75mhz
+ U* s' g. C0 Q0 P1 W8 F2 Gport map( CLKIN_IN => clk_50mhz,+ w% k$ |: l" I3 o
RST_IN => '0',
9 k* i0 R2 u7 m& NCLKFX_OUT => clk_75mhz,' w5 a; p* E" h# z# M5 L0 X5 I8 {
CLKFX180_OUT => clk_75mhz_180,
5 j, [" _+ `- z0 j0 R1 P6 [CLKIN_IBUFG_OUT => open,
. C1 ^2 N8 ^, ?! n1 mLOCKED_OUT => open );
' u  O2 s8 s- S1 J7 w. |7 `9 dend Behavioral;
4#
 樓主| 發表於 2008-3-20 18:44:19 | 只看該作者
回復 2# 的帖子: ~7 P0 W( P3 u* }% u
- b+ I* _7 L: i+ u" i* L# o* Z- X
我們用的板子是VIRTEX-4  (LX60)! H/ K' i' f  q* \
我昨天有去網頁找了些關於DCM的資料來看0 @0 b3 N* |. e# M1 \1 E
雖然有點複雜) v" q5 @0 s3 C1 }9 L* Y
不過還是看個大概
+ b: L( S8 b. L3 S0 j, e+ T! Z4 q: V! ?& V+ t- q# J! R! A
回復 3# 的帖子
8 m* P- J5 e) a) k( e5 z9 G' }7 F
5 t9 |7 k& W4 n) m$ `, \7 c你講的這些動作6 x' T) l6 w) Y: R6 `
我昨天都有照著我在網路上找的資料大略的做過一次5 |- F  _& N9 r, y) O$ Q
不過我還是有一些問題: W, X9 \% V& A; |- U7 m/ D( R
1.像DCM的輸入   好像是由100M震出來的
% t! B9 h. y9 n/ n& O/ I那我需要256M   利用DCM 可以做得到吧??
1 Y/ O  n8 p+ y8 S' R還是說只能產生比100M低的時脈' N) j3 _  N3 y- E
$ k1 s3 ^, V) C# p6 M- d1 |. N; `
2. DCM是分成DLL,PS,DFS嗎??% f# }+ t- t- v1 e( T+ q' V' K
因為我昨天看到DCM組成的block
$ Q+ N3 O* B7 ?. U  X裡面含有這些,每個功能都不太一樣) K/ I: O8 P5 K* L# q
如果我今天要產生一個單純的沒有相位移256M  `) B2 U0 c+ s! f- x7 D: x
那參數的設定會不會不需要用到全部??5 S& x$ |& q6 ~4 ~- L6 C& U
還是只需要用到DLL就好
# D- J) z' w" F9 C
0 _- ^6 V. b9 f6 x1 K3.像你講的   Wizard 會產生 .vhd,.xaw,.ucf檔
: ^7 ^- z. a" h( N0 }   把.xaw加入design的意思是把這個檔也燒到FPGA板子裡嗎?
7 t: z% E0 @7 X   那我要設定接角嗎??
9 y+ G2 b2 e/ F0 A9 J. n   因為xaw的程式不像一般會有input  output, |& k1 K, k" q, B5 m* E% o
   所以會有點搞混掉% c9 Z- s6 c7 y! Z5 Q0 p: `
) G; Z/ m" N; M  q; k* g
以上是我小小的疑問9 q4 S7 ^, e( }, v! ]% r5 d
先謝謝各位大大的解答  , ?: o5 F- q, i
4 y" a6 U7 D1 b# [& j, W& W* i5 `, C
[ 本帖最後由 小人發 於 2008-3-20 06:51 PM 編輯 ]
5#
發表於 2008-3-20 22:10:47 | 只看該作者
要從100M產生一個單純的沒有相位移256M,要用DFS,CLKFX o/p功能,而且不是在做Deskew的話,CLKFB可不接.: a4 q5 X0 @% n5 H, \; o

4 [9 \- M: J  _8 ?5 Y參數的設定可在Wizard內設定.以Virtex4-10來看,如果只用DFS o/p(CLKFX/CLKFX180),不用DLL o/p,8 n, s. j! U. x8 a
input clock 100M,ouput clock 256M,則只適用Maximum Speed/High Frequency 的Mode. Low frequency mode6 y9 G  @1 |, Z. |
最多到210M,不夠用.
4 A! N' h$ ^6 [& K.xaw 檔是Xilinx architecture wizard(XAW)設定檔,像Xilinx coregen 產生memory block的 .XCO檔 一樣,
. s7 ?0 Z7 `/ k$ ]' R# x在ISE 的 project manager 裡把他加入跟其他source files 一起即可.然後在你的design source file 要去 instantiate它.可參考上次帖子的例子.
6#
 樓主| 發表於 2008-3-21 14:54:32 | 只看該作者

回復 5# 的帖子

我試了一下,大概知道怎麼用了
9 D! Z- ~# x$ U+ B8 ~% ^不過還有一個問題
1 R  i+ T' b1 F4 ]% }* [! ~4 Z在DFS裡面  好像沒辦法產生準確的256M8 P' Y" z) G: l
因為它是用clock*M/D  (M跟D都是2~32的正整數)/ \. Y5 u" x3 l4 |% r8 L+ b
clock=100M   那怎麼選M跟D都沒辦法達到256M
0 g$ C. R. B+ t+ ^1 E( c5 ~這要怎麼辦    其他DCM的方式有辦法達到這個頻率嗎
7#
發表於 2008-3-21 19:05:27 | 只看該作者
要用2個DCM串在一起的方式.不過使用上要小心Timing及不Locked的問題.
4 X( m; M, J$ X! N
6 ]9 f8 T3 F7 x5 A- `% b

本帖子中包含更多資源

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

x

評分

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

查看全部評分

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

回復 7# 的帖子

對於這兩個DCM相接的方塊圖
3 h4 ]# @3 R: t0 t& b0 c就是第一個block輸出是CLKDV( M+ F4 B  z. e3 H: o4 O
所以必須是100M除以CLKDV(2,2.5,3,3.5,4........16); A/ s2 h3 `; c" i/ Z1 f
然後再把除完的頻率當作第二個的輸入
5 H5 o( w2 ]" y- D( `- a9 z第二個是使用DFS   輸出是CLK*M/D (M跟D都是2~32)
3 Q0 q( u6 B+ Z+ A2 q7 x$ l+ f4 q: G& w
我好像湊不出來可以達到256M的參數耶( f# P& e6 ?2 Z( h: r
是我哪裡沒搞清楚嗎6 q: [8 C1 c! D9 s
麻煩大大在幫我解惑一下~~
9#
發表於 2008-3-24 10:22:16 | 只看該作者
這兩個DCM相接的方塊圖只是一個應用方式,你也可以用第一個DCM FX O/P,產生200MHz,再用第二個DCM FX O/P
2 I2 J5 h! t3 w. N# NM/N=32/25,產生256MHz,要等第一個DCM FX O/P進入LOCK後幾個cycles,才能開始啟動第二個DCM.
10#
 樓主| 發表於 2008-3-24 13:44:38 | 只看該作者

回復 9# 的帖子

我想問一下
4 a8 G+ G/ m/ B5 W% A兩個DCM相接的方法  是直接在裡面可以選擇的模式嗎
3 F+ l* G) x- P9 Z+ n) h9 w3 ?" H4 Q因為在clock wizard裡面有四種可以選擇
- R3 ~3 B3 I6 B" `3 M1.Board  Deskew with an internal  Deskew
- ~7 n: _2 T5 k. V' @/ `# m2.Cascading  in series  wuth two DCM_ADVs
! i6 u9 @7 t2 @& M- d3.clock forwarding/board deskew+ x" x; Y$ v1 d' A
4.single DCM_ADV
& t' j: Q" r! F+ `- `, v; J( ~5 o+ _8 Y7 B' U
照你講的方法應該是選擇第二個串接的DCM  F( i! B( T$ y
問題是我選完之後有一句話是
. X% [' g, y9 B$ T) F8 L, W3 lCLKFX and CLKFX180  are not recommended for either INST1 and INST2 because  of jitter requirement
0 r: G7 r' K8 B* \" W( c$ S3 i所以裡面沒有CLKFX的選項. X5 ~" G& y: _4 p
那就沒辦法照著大大的步驟做了5 D1 q! n( O9 N" B/ _3 ]# {- Y
還是有其他的辦法可以選呢??
11#
發表於 2008-3-24 15:07:53 | 只看該作者
的確第二個DCM不recommend FX o/p,因為jitter 會累加過大,
' w" B$ y) f: x+ q8 m; I; }反過來產生,先用第一個DCM FX O/P,產生128MHz(M/N=32/25),
# m5 d$ D9 }4 A2 h1 x8 e; d再用第二個DCM 2X output 產生256MHz.
+ `5 S7 u3 d* d9 w) x9 `5 R或第一個DCM 2X O/P 產生200MHz,第二個DCM FX O/P M/N=32/25,產生256MHz.
12#
 樓主| 發表於 2008-3-24 15:30:36 | 只看該作者

回復 11# 的帖子

但是會出現一個錯誤
4 W9 k+ @& E2 y因為我用的DCM是cascade in series/ G$ y7 J7 k7 x  i  o( Y
所以好像有限制在low frequency mode
2 G; J/ V3 @' F, k所以在第一個輸出要達到200M會發生錯誤( M8 R  |9 ]  F; |$ D7 h
" s( o: }2 F" ~# D
還是說我選的模式跟大大講的模式不一樣
* s) s5 z! D( K9 U你說的也是要用內建的 clock wizard ->2.Cascading  in series  wuth two DCM_ADVs  嗎
13#
發表於 2008-3-24 16:58:28 | 只看該作者
第一個DCM 限制I/P frequency,32M<-->75M,
2 _3 e0 e7 `0 {. E( M. F不知25M震盪器可否調出來產生32M(M/N=32/25)或64M,再用一個DCM FX o/P 產生256MHz.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-20 07:05 AM , Processed in 0.171600 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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