Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] PLL 的實現方法?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-3-17 11:29:24 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
請問cpld可否能把一個input的frequency倍頻....
+ j4 ?# ?& B: }+ o" p9 O9 g倍頻是否只能用PLL的方法?- p" @7 L, b. `  S! \
最近遇到這個問題...想看看各位的看法..
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
30#
發表於 2008-10-4 00:04:50 | 只看該作者
嗯~~大大解答蠻詳細低~~~多謝喔~~~小第在研究看看~~~~~~~��
29#
 樓主| 發表於 2007-12-24 16:35:41 | 只看該作者
沒錯...
+ a$ P" S; r( S4 S2 d$ D' F是要用在LED Backlight的....
0 A, O6 A! a4 N2 \, {; E其實有問題可以在這個帖子直接討論..
1 u* E$ h  u4 t" r) F* M4 v  j# r! o這個沒什麼秘密啦...
! P& j. j7 n" o- H因為我已經申請專利了.....
28#
發表於 2007-12-24 14:50:48 | 只看該作者
請問一下你是要控制LED在顯示方面的應用嗎??9 x) S! U9 ?7 O, z, Y" x
" Z, j0 B( r1 _5 I. V! W( _
可以和你討論幾個問題嗎??9 _( @  P2 H! h1 B8 K
0 I$ q5 ~- N! T( T/ K! {
方便留MSN嗎??
( C" Q3 d. I3 W! k* U5 S
- T+ J% K: U1 G1 Q  i8 ~- H3 j感謝
27#
發表於 2007-9-10 17:20:59 | 只看該作者
有附 test bench
9 G7 ~" k" W% v. ^% ]. A  o確實可用! 已實驗過,但我不會貼圖。
# E6 G2 {' |/ G0 j5 w3 J只要略加修改即可實現。
26#
發表於 2007-9-10 14:49:50 | 只看該作者
這個有趣了
) D# G. l8 Z) Z: s: Q+ d有simulation的waveform嗎?
+ Z& h- j9 w* p' A: S& M5 e示波器量的更好~~~^^"
25#
發表於 2007-9-10 06:26:03 | 只看該作者
//可直接透過synthesis  tool用於PLD,FPGA不可 LUT delay則要採其他方式。5 C, \# t* f  Q, \+ P5 o$ d  ]
//所有註解都要保留
- ^% C! g3 @2 R' A0 D; V5 q
2 @% i! D: F0 Q. P; m`timescale 1 ns / 1 ns/ C& }- n& K8 p# o4 Q
module xclk(sclk,ena,set,outp);
4 e! O* G8 H& u5 R! L
% {0 j& x; ?$ ~/ O, b0 O# T/ e
0 ~2 C2 ]0 Y; A
' W5 P* _: Q) s' n7 \input sclk,ena;
  E$ t+ w6 N/ vinput [1:0]set;/ Z; D! J" B) |3 a& r6 L3 F0 E
output outp;
0 ~# Q  O% @4 t. c' g$ N8 O! T' D  s8 ?5 p! b; Y' U
wire outp;
( b/ d1 a1 X2 N
6 K4 K7 m* k4 _/ b
! o- o1 u+ h- U3 r* \& R3 N$ F, r7 G' F- S9 ^) g( A* C! Y$ ^
/**** Node preservation for nodeA **************/% f2 }' d% R* h2 i- ~: R
- H! K! K& _1 r! [, K
+ Q) c$ E0 r( J, ]" p) N
//exemplar attribute nodeA_5 preserve_signal true& x* i. N4 [- {+ B6 z

6 L, ]4 J; Q' ]! P! e//exemplar attribute nodeA_4 opt keep9 F" e) T3 s& m0 o1 C& |9 Y
* ?; m8 R/ C$ J- X' |* D# H6 m, l& y
/**** The following comment form also works ****/5 P( z2 e( W& N- D

1 h9 C# q9 ?# a% x! d; W//exemplar attribute nodeA_3 preserve_signal true* A- T$ i3 t& @: e4 T
. {# O0 ?# {! m! g  W7 N  ~
//exemplar attribute nodeA_3 opt keep
$ R! \7 D* c- T6 L( R
. z1 G; `! ^) X- D$ c/**** The following comment form also works ****/
% v" x; M& K( b0 Q! x* ?+ y* r. |4 r% N* y8 r# W' F' e
//exemplar attribute nodeA_2 preserve_signal true6 O! s  ~: W7 R- W8 _3 u

4 o* z% l( \+ A* X. L//exemplar attribute nodeA_2 opt keep
# G; p- M* L7 e+ g, E9 f4 M+ T; N! `( v/ ?
/**** The following comment form also works ****/
* V7 L& `1 h! F. m' L+ O: e: Q8 S( O, _- i% ?/ }
//exemplar attribute nodeA_1 preserve_signal true
. Q) _$ I0 ~/ j; r" _- g  h" |# w, i1 E* c
//exemplar attribute nodeA_1 opt keep
1 {# b1 O- \& ?/ ~/ C
2 V( u& S2 H) z$ @. r  G: N" d7 j, a. w% I+ B7 y
/**** The following comment form also works ****/
0 y) V9 E" h4 a  J: B) Z/ |+ ^' C. R3 _0 |) A. b
/*exemplar attribute nodeA_0 preserve_signal true( j- ~$ R; Y: s" b

  w: o4 ^& Y3 C3 E9 [& G! O) ?exemplar attribute nodeA_0 opt keep*/ , X  p: F2 Y6 M# ~# X7 z" c6 U0 w

9 [& `; _) X* h6 r3 M
) a7 p; F! z7 i; v# C" R   r) ^# h  M0 b/ q
0 Z: @5 T: l# H# X( |$ c5 i2 e

2 c2 z5 v! H, _  O$ K0 {: P' B) R) d! v: T

7 @5 a- @/ }! @4 p5 G  _/ J0 b- t" c# ~

$ ^% m- B2 A% b
# y1 ~4 J; x2 U: n! q% d5 k# Gwire nodeA/* synthesis syn_keep=1 opt="keep"*/;
- P1 x' q! x* L2 m! E! Ywire nodeA_0/* synthesis syn_keep=1 opt="keep"*/;
+ M4 w; E' q) l6 T" ^wire nodeA_1/* synthesis syn_keep=1 opt="keep"*/;4 [. U  I+ b4 L
wire nodeA_2/* synthesis syn_keep=1 opt="keep"*/;
/ U5 S, o; `5 O' b+ }# k& pwire nodeA_3/* synthesis syn_keep=1 opt="keep"*/;
8 D! R" e5 Z% ?" @/ kwire nodeA_4/* synthesis syn_keep=1 opt="keep"*/;; U- L1 c+ l+ j9 T! D: A

5 G# o7 D7 l6 P' _# Z, l% l0 y2 \assign#1 nodeA_0  = sclk & ena;
" D. ]; D/ D* D  x- k, e* T9 V1 `9 _/ |# j2 t5 k
assign#1 nodeA_1 = ~ nodeA_0;
( M8 T3 t/ e' `% J/ jassign#1 nodeA_2 = ~ nodeA_1;
  G8 w  Y; n9 D; A& u2 x' @assign#1 nodeA_3 = ~ nodeA_2;
% j4 B7 \9 [$ G4 Z# k2 Kassign#1 nodeA_4 = ~ nodeA_3;
5 W7 ?% y, z% b7 T% o$ y! w
% c0 g: s; P+ Y; d, K7 D: }reg xout;
9 |3 F7 X$ Z. u. P+ ^- O+ r# B: t  j3 f( c
always@(nodeA_1,nodeA_2,nodeA_3,nodeA_4,set)
: I5 [- X7 i8 p9 e3 ~* T  casez(set)
/ c5 F3 ?% @; W1 |& }, g    1: xout =#1 nodeA_2;. G6 y0 O3 }' C
    2: xout =#1 nodeA_3;
- q( d) E! `4 g* [) K8 y# h1 K* L    3: xout =#1 nodeA_4;$ t5 q4 Q: N5 c; A+ H% ^' D+ B
    default: xout =#1 nodeA_1;
, t0 x* p* q' r# T4 ?. I( y  endcase0 n8 g. W8 T, J3 p: k8 y
  
: I4 F' k% T* b. Nassign#1 nodeA = xout;
: ~& I. g8 n% _assign#1 outp = ena ? nodeA^sclk : 1'bz;. n2 o! C' v* d# h' n+ v/ e1 t3 w

6 G: k, u% t5 O/ H' oendmodule
; o/ l+ P1 R  k$ `$ `( Z" J8 [! k3 y. S  H; `( ]

+ w! }7 B) t. {4 C* Y# X7 D
6 g# [4 o% ]) f0 T4 p# {`timescale 1 ns / 1 ns" N  G! v8 a7 l
module xclk_tf();
, p5 P7 G( M, _( f
* k. p& ], \- D// Inputs
: S$ L$ }/ i, L6 o; S8 J* m    reg sclk;0 L( N# p, f" r6 c
    reg ena;
9 [7 c; M' t0 ]1 f4 h" _: U  q    reg [1:0] set;+ \  u1 J8 \" C$ z- ^
5 V' g3 i- F7 g2 o7 Z7 |( S4 ]1 }4 H% a
# E& j0 a& B0 E. d  t
// Outputs' H' y6 P: D' T
    wire outp;
9 a3 W7 l/ m4 w- ?3 Y
7 U; V! e, K5 z" n$ o4 Z2 R+ r. l1 M' ^' b
$ M/ J% ]7 j* W, W3 d0 B% G
    xclk UUT ($ K4 ]- N# s1 G7 @$ Z( I5 p% d) a
        .sclk(sclk), ! h8 F! |  j- {2 c7 v' w( H
        .ena(ena),
/ b; F8 n* T0 ~1 n" y- j1 l        .set(set), 1 Y  u  `' C( ^: j
        .outp(outp)2 ^6 y4 k' k0 R0 B- ?% p- Q! |$ j
        );# n( q; p5 Z; ]. G( ~

' U) h4 {2 G1 A- a- D: [% s& ?- S! H1 h$ U* o) h

  l- d: J0 G% a$ n    initial begin, c& X2 q3 o+ C, L1 a/ D9 A
            sclk = 0;5 O. g; `5 L' s. x) Y1 z+ ~; U+ |& U
            ena = 0;% q% \  u# U; w! U5 E
            set = 0;
0 F( ?/ N2 R& ], x: H2 [3 \- Z    end
% L1 G: v2 P% Q) i
4 j4 G# C. E# E+ }' c7 X+ k4 G: D2 h* t. X7 y7 p  I
always# 5 sclk = !sclk;6 ?1 g  e1 A  F& B

: b% B% z* r, i( b6 i" l. W$ @initial begin
! Z/ h! _, N* E        #100
6 R- J4 Q/ l4 o8 d! ^9 D5 C' {7 {" |          ena = 1;  W; y7 x/ h8 J
        #2000
& a) f  j  i+ C4 W7 h  `  o5 p3 T          set = 2;7 B5 a2 f! ?  I$ i. x2 ?
        #2000 $ T' ~) B( _9 O, d2 g7 }
          set = 3;5 v9 P  Q! i0 \1 b) P
  #2000
1 K* n$ r  E. d, L8 A6 P9 D+ P3 U  $finish;+ V. {' w  O/ m) A2 q
end" u. \# a4 ?) r. I4 T& Y( \/ o+ c
endmodule // xclk_tf
24#
發表於 2007-6-20 13:39:55 | 只看該作者
不過我還是覺得也許會有更好的方法來設計這個東東的, 所以才會說介紹個人給之類的...哈
23#
 樓主| 發表於 2007-6-17 11:12:57 | 只看該作者
原帖由 tommywgt 於 2007-6-11 03:02 PM 發表 9 I' A" f' S, P, }
這樣子做出來的phase error會很大也, 要先看規格的要求一下下
% E' R! u4 S' _* f' C

, E; k% w: N2 ~' D
- Y, y9 ~* ~! |# h( Z" w/ s! s% K" K* A1 Q8 c% l* n. I6 ?" }! l
嘿嘿....沒錯..9 T8 s! ]% U/ |  s: t5 k
所以我現在還是用60hz去產生600hz..5 n1 {+ f, a% W' L  d
另外一個原因是因為客戶只會給我60hz的訊號啦...
22#
發表於 2007-6-11 15:02:01 | 只看該作者
這樣子做出來的phase error會很大也, 要先看規格的要求一下下
21#
發表於 2007-6-10 21:50:08 | 只看該作者
... 這樣說吧* Z5 `! A2 {; _% R% t
如果有 PIXEL CLK 就用它除頻# S, a. ?& {- h6 T# a8 z
如果有 HSYNC 就用它倍個幾次
: K4 h* ~! @! ~
" s. g( g1 t4 t4 J- F- }因為 PIXEL(DOT), HSYNC, VSYNC 之間有一定的倍數關係  F7 P; q" e& A) X# c; }

) K0 l. I' l7 c$ P   640x480@60Hz => 25.175MHz (39.7ns)
6 U/ F0 U8 p5 l# \" U- i5 d   DOTx800=HSYNC, 39.7ns x 800 = 31.469us" f8 ]; q3 {& r& c2 w
   HSYNCx525=VSYNC, 31.469us x 525 = 16.52ms (60Hz)! c1 K: Z- D' s8 }# }8 p/ S
所以這樣的CLK一定會和VSYNC同步 (詳見VESA Monitor Timing SPEC)
6 ^6 I; s0 F% a' T5 S
0 M! V0 h  d0 h1 \# N/ f+ m/ H% R接下來如果要VSYNC時不出CLK.. 那就用個AND閘吧 (看你用哪個MODE, SYNC有High或Low)
, `8 R+ Q, D* D) X2 h) h8 B6 S- x9 o/ d8 N) a  Z; V
還是我想的清況和你不同呢?
20#
 樓主| 發表於 2007-6-10 18:39:08 | 只看該作者
原帖由 eject 於 2007-6-8 07:19 PM 發表
( N$ C- M" N9 v/ R, ^9 v4 ?7 H& V' e問一下下...  a* J6 ~) F; e& x5 h% {

, n2 T. M: I& e  j% W7 s. y你有HSYNC可用嗎? MODE 有固定嗎 ?
' T! c9 F8 b" Q* ^- X有的話至少已經上 KHz
; E" _  b. H/ I. [& h/ X4 A而且就倍數來說一定也會跟VSYNC同步吧
+ w; \! ]+ n: w" @; M* g! |# W" y4 ^
+ S( Y$ o: F8 |% m$ Z1 n

8 s! T, a/ p% r4 n5 Y9 Q是有H-sync啦...
% U4 W; ]% ]8 \1 V" w不過不能用h-sync來做...
* T, n, \6 |5 ^4 A4 z3 h! w因為用h-sync來當triger所造出來的訊號不一定會跟v-sync同步.
19#
發表於 2007-6-8 19:19:44 | 只看該作者
問一下下...7 N& i# ?; k  s. O* [
0 @' @0 f" H  T1 p
你有HSYNC可用嗎? MODE 有固定嗎 ?- r& ^, m, e4 y; r- i$ N# N! T
有的話至少已經上 KHz! ?6 i* Y! i1 q9 g( J, n; w
而且就倍數來說一定也會跟VSYNC同步吧
18#
 樓主| 發表於 2007-5-9 21:02:13 | 只看該作者
RGB三組pwm要用到12bitx35 ^$ X- n: _* J& r+ y- _  }
output也要三組RGB 12bitx3
$ i0 d0 j' X) e! S0 }7 J/ q) i& @ 同步需要一組12bit counter( l1 A# c5 J, j# {* C" ^+ l1 d3 F

! v' w/ e/ V6 c' N& _5 t# p其實我用到的reg..大概就要180個了
2 C/ E% `( ~0 a# |7 `, i所以64 microcell是不太可能啦...
17#
發表於 2007-4-24 10:25:35 | 只看該作者
願意把所有的規格列出嗎?
1 X! G3 c: v+ ^1 N$ k也許可以放到64 micro cell也說不定...
16#
 樓主| 發表於 2007-4-23 19:49:01 | 只看該作者
原帖由 tommywgt 於 2007-4-23 04:30 PM 發表 # v8 p& d0 b+ l! n& ?! Z1 m1 N
也...回到你回的問題...
8 l0 n( E3 B+ E- P0 R  a# N要做phase shift可不用改到duty cycle啊...
3 e# k# `! @  J* D) g

& l( G2 u1 M9 V0 R! a- g% g" y/ W9 o1 ^/ j$ s( T: V: G; A% x
其實我shift要做....duty 也要改..
  ~- r# v/ n1 h3 K$ o4 T3 O! z9 I所以才需要那麼多的counter...
15#
發表於 2007-4-23 16:30:00 | 只看該作者
也...回到你回的問題...( u/ r, B* f$ H- W
要做phase shift可不用改到duty cycle啊...
14#
發表於 2007-4-23 16:18:35 | 只看該作者
128microcell在一般的應用可以放一大堆東東也...
" [/ K0 E9 H  C# l; y* Y你的design很大嗎?
13#
 樓主| 發表於 2007-4-18 20:13:09 | 只看該作者
原帖由 tommywgt 於 2007-4-16 02:14 PM 發表
1 X. d) B2 C; T如果倍頻是成功的, 那phase shift就只是調整cycle中的1->0, 0->1的時間, 不是嗎?
# x/ I$ l" r6 s# X) g+ ]. v% V+ _
. X" S5 ]* D6 ]: ~& L  o- \

5 o$ m1 i8 F0 P2 K% y  O4 s想法是這樣沒錯啦..4 o# w. t  E6 s1 Y
以2.457MHz的clock來說...
# [& t' \5 @: m8 E0 i你會需要12bit的counter來數high是多少跟low是多少..(因為pwm的duty是會變的). S+ |, C" o: ?
shift-->one counter
# L6 x0 e# D8 t- ~3 \$ ]% _. ~memory high-->one counter
+ j7 l; a4 L% b" jmemory low-->one counter; y8 q  B/ s* v' u4 v: ?. S1 |1 ~0 y
我目前是要用到四個counter...! |  S( [; E! I
不過這樣做起來感覺很不好...
0 W, b- t1 K, I$ t" _) U0 V5 g+ K3 e' a. k
而R G B各要一組shift..5 ?) @0 v% \# _3 g0 z( ~" T5 N" O
128microcell已經被我寫爆了...唉....
7 f  s7 X8 n+ x% k7 B& F! v4 g/ w
" @1 W4 C1 W$ ?5 p8 ?其實光是寫同步的的code...128microcell就已經被我寫爆了呀+ T+ p3 ?: W. U  e4 w7 u
(目前是用lattice的 iM4A5 128/64)( T" t' h+ |$ e7 H% B( A3 ]
% W& J8 B- i6 U4 a3 V* `
所以才會問各位先進是否有其他的想法.....
12#
發表於 2007-4-17 13:09:06 | 只看該作者
如果 jitter 要求不是很嚴格的話,
8 [. X3 u1 @1 w利用 74297 的電路來參考 60Hz 或許可以;& k) T1 h* t; U3 R) I& p
DCO (ID counter) 跑在 2.457M * 32 對 CPLD 應該是很容易作到...
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-9-22 09:11 AM , Processed in 0.204011 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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