Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-3-17 11:29:24 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
請問cpld可否能把一個input的frequency倍頻....
. m" c7 q" F& E4 H# k倍頻是否只能用PLL的方法?& W  n* S& R$ u" J. v4 j# h
最近遇到這個問題...想看看各位的看法..
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
30#
發表於 2008-10-4 00:04:50 | 只看該作者
嗯~~大大解答蠻詳細低~~~多謝喔~~~小第在研究看看~~~~~~~��
29#
 樓主| 發表於 2007-12-24 16:35:41 | 只看該作者
沒錯...; O7 `9 R2 _2 h9 p3 ]3 S! A1 ]
是要用在LED Backlight的....
, a+ s  I1 K" s; O9 X, I; |$ b9 m其實有問題可以在這個帖子直接討論..2 M# M& I$ D* @. E+ g
這個沒什麼秘密啦...
. c4 q1 m" O% s. A0 Y因為我已經申請專利了.....
28#
發表於 2007-12-24 14:50:48 | 只看該作者
請問一下你是要控制LED在顯示方面的應用嗎??) U$ \# e' q/ V1 v* r- s4 R4 H& G
$ W' K( G8 U9 C" f" u/ U- o# A
可以和你討論幾個問題嗎??; l- S/ x& B! f
- D* h8 T$ |$ \$ K1 o4 J* l% s
方便留MSN嗎??) {7 M# F7 l. z# A9 C& f- Y
# {6 M0 h. m8 J
感謝
27#
發表於 2007-9-10 17:20:59 | 只看該作者
有附 test bench
5 G5 |; m2 I$ Q% p/ B1 _2 N確實可用! 已實驗過,但我不會貼圖。
+ Y6 ]: d# a0 Y, E! u只要略加修改即可實現。
26#
發表於 2007-9-10 14:49:50 | 只看該作者
這個有趣了
! ~) v+ x. q8 g$ J+ Z) _有simulation的waveform嗎?7 x+ H8 d+ ]7 D* W
示波器量的更好~~~^^"
25#
發表於 2007-9-10 06:26:03 | 只看該作者
//可直接透過synthesis  tool用於PLD,FPGA不可 LUT delay則要採其他方式。' U# ^# ~- \5 k
//所有註解都要保留3 N# [7 w8 l/ ], l( H
. e% z+ {% y, }1 M) ?0 t
`timescale 1 ns / 1 ns
% H- B% F" }$ S# ^: k! `+ Lmodule xclk(sclk,ena,set,outp);
7 s$ Q6 T4 N: F) \3 g
+ u' {# `2 o1 G4 \/ w- a   {9 H& y# l0 A) x

* x- l2 A' U+ U$ Q3 k: ~8 oinput sclk,ena;
9 \9 w& l' }+ T* p  P; o$ iinput [1:0]set;; R0 K2 [6 h' Q1 K/ U! \8 _! [
output outp; 6 i* M% u# R) O- u( w( t; b4 q3 k4 B
# d# e. @! R: y8 D. \- l
wire outp;2 o% Y0 A6 _) d; @4 A1 Q; s
: s6 J. e0 w$ [. S( q: Y

5 \; K& N0 K+ l8 |
6 s% ~8 J: H8 i# ?, Z/ G/**** Node preservation for nodeA **************/
- P0 w1 \  p8 Q, H
# R) [# V# r/ A* p0 y- }! F# r* Q2 L0 E
* u: A2 S; z# [, q//exemplar attribute nodeA_5 preserve_signal true
2 F" ?. `# t& q6 z$ L0 u! i# J5 s" j" L. n: H' L1 Q
//exemplar attribute nodeA_4 opt keep
! y$ V. S+ P5 t. E% J( G8 F8 E+ y! w% M% [2 M7 P' s
/**** The following comment form also works ****/5 Y7 V5 u& J5 r( l

3 J" ^* [/ d& z7 t//exemplar attribute nodeA_3 preserve_signal true
6 R$ b. E+ K( V; a( E; m  T
5 i# A3 x1 \$ q, r( O7 l//exemplar attribute nodeA_3 opt keep% e+ F( q) G( m# c0 b% O9 h4 z  A
4 v5 H, Q! w/ `# t6 `* B
/**** The following comment form also works ****/9 F$ k1 t  \4 C

" |; g" m$ ?& v0 @" M& I//exemplar attribute nodeA_2 preserve_signal true
5 ]- Z0 S' N6 r: h
! m6 W6 N. p+ k6 _" y//exemplar attribute nodeA_2 opt keep' R. e9 |; y1 Z) V' L5 y9 t- e7 ]
6 A* z: ^. [, d& n# N
/**** The following comment form also works ****/
1 d/ P4 z5 [( S! L! i" o  W$ C! e2 E8 Y2 ~& E( A
//exemplar attribute nodeA_1 preserve_signal true
) s: R/ Q, ?/ k9 m0 o: i# h' K: N9 _& S1 i+ Q% ?# M7 U9 [- K
//exemplar attribute nodeA_1 opt keep. r$ ]+ z6 S5 c7 O2 z8 z& x; a
/ C/ b1 x( [; e

5 Q/ X1 R. o* n- D+ Y! m! \/**** The following comment form also works ****/
' T+ S- Z+ |3 @* W% P0 |, Q
% x9 J( Y7 R2 a: J+ p; P/*exemplar attribute nodeA_0 preserve_signal true- L! {) c% O; B& D) c
8 L1 ~+ Y* s) K" A1 F) r
exemplar attribute nodeA_0 opt keep*/
/ M. m; b3 q( ]/ h$ M# k2 o: x9 O! {# ?! ^& x. `
: q$ ^) n5 l: c9 h9 M1 Q
# o! P$ V% R& Y- o
  V( y; r1 W, [' J7 A$ T' f4 _  K
/ p& I8 [5 J% T. x/ j
' ^; k8 b" B- m  u
- ?; S8 e8 h6 n/ X$ B6 n
. W+ \1 m6 K: m& V$ }5 L

7 ^7 p; y! v5 @% P( g6 o. d* k$ q- C) y1 @3 D- z$ A
wire nodeA/* synthesis syn_keep=1 opt="keep"*/;% n/ r% o% q, f. u
wire nodeA_0/* synthesis syn_keep=1 opt="keep"*/;% \- F# R2 i5 Y
wire nodeA_1/* synthesis syn_keep=1 opt="keep"*/;' ~8 W3 d, }0 c
wire nodeA_2/* synthesis syn_keep=1 opt="keep"*/;  m( b7 y' D6 w! z# g* e2 |! D. z
wire nodeA_3/* synthesis syn_keep=1 opt="keep"*/;
% X! k1 Y* S& r1 Uwire nodeA_4/* synthesis syn_keep=1 opt="keep"*/;
9 k0 n/ c  N# Y$ [6 M+ t3 W( z9 e/ \4 m. d
assign#1 nodeA_0  = sclk & ena;
; B- x1 U$ n. v* i& ~. p/ F& _- ]$ }, ?; S1 H. h  A
assign#1 nodeA_1 = ~ nodeA_0;% Z: A8 ?  h% `2 Y; y8 U
assign#1 nodeA_2 = ~ nodeA_1;
! v( g* c! v3 B; {! H! fassign#1 nodeA_3 = ~ nodeA_2;2 f$ u8 h) Q% K* B/ W, Q$ V
assign#1 nodeA_4 = ~ nodeA_3;
# U8 u1 q! U% z7 H3 x, R( Q
. M  p: o8 F* ]reg xout;
' `7 _/ G% Y6 i7 G5 H8 m. G, C# v2 y* |" k  O# I( `, F: y
always@(nodeA_1,nodeA_2,nodeA_3,nodeA_4,set)! E; [; @$ i1 B) U" S
  casez(set)( m# Z7 x7 X' _9 y* A& @6 F
    1: xout =#1 nodeA_2;: y( V! {0 j( ]1 C. p6 V
    2: xout =#1 nodeA_3;
% a: o/ q1 |, C4 n  y/ X    3: xout =#1 nodeA_4;. G  ?& o( o1 O2 q0 M3 r
    default: xout =#1 nodeA_1;/ v( H2 T( f$ G# @1 Q7 r5 K$ h+ J; [( P
  endcase. v! _( r3 M! F! O
  % A: C  R. F1 C- i- _
assign#1 nodeA = xout;6 O. B9 z' ?" a& B2 w: |9 O5 |
assign#1 outp = ena ? nodeA^sclk : 1'bz;
/ E% L+ R$ @6 s0 p% @
+ M' q' ~9 s6 f3 b! ]endmodule
1 D3 H+ U3 _5 _* [/ Y
( T( F9 P& v  N  F, L
" S' z' V3 c0 A& \4 |' c# O' G/ D' X  r/ I7 B
`timescale 1 ns / 1 ns# e+ L. Z# k3 J' E$ f/ v0 P& P
module xclk_tf();
8 I3 e. C* u9 b$ g& ^5 _2 |
/ {- L" H" C2 F+ \// Inputs* U' M$ ?% u6 C3 _0 {
    reg sclk;
* b% I0 m4 C9 Y6 D    reg ena;2 F( K0 P' F) y6 H" n8 u* ?, \
    reg [1:0] set;
% P7 A& O2 Q6 {. J0 b
2 k! U3 `: t5 M, b
7 x- F* c+ E9 Z1 d# k// Outputs
3 ?# n. q+ R) ^* j7 M    wire outp;
# @, O2 n1 L- j; c. K0 \. V1 a+ J: r+ c
  E2 ?/ n; S2 x# {9 A. J

3 ]. A0 G1 T7 O0 I. e9 p; Y    xclk UUT (; Q; c! _; @% L# S# Y" S5 ~. M" Q: B0 F
        .sclk(sclk),
! x) L/ ~: p  _1 h9 f+ z( ]3 H        .ena(ena),
1 W/ [: G! N% ~5 t        .set(set),
+ b7 _8 x8 P: J" F% L' P1 R        .outp(outp)4 r& T) H4 M7 u7 Y
        );
# l7 q% A4 t8 U% K1 y: k4 N& ?  e6 M# s
- m  o& V/ {. ?- p7 q9 m+ p7 J3 r* z

$ i1 F9 c' [3 ]% R4 [! [9 n    initial begin* ^6 \4 D- J/ z! P, ]
            sclk = 0;
+ G0 z$ |& i0 g1 C2 A! I# ^! @* |            ena = 0;+ f1 w( ~8 P$ E2 a5 G4 z
            set = 0;
0 }  B: g7 m2 T. i! X, N; @    end+ }7 c2 I4 f, B

3 {; @. D* ^4 k, Q  L3 P; L' Z* O" n
always# 5 sclk = !sclk;
# S2 O  G& H7 j" o3 q5 P6 c
& k2 w9 @  g+ w7 s# kinitial begin8 Q9 y+ W, {5 k, }+ {
        #100
( r1 [; T2 L: g- W! X          ena = 1;7 P' F% u! j+ K& _2 U' m3 b
        #2000
+ }7 [( x5 _4 Y; B          set = 2;
9 `7 J$ m  i1 [% [# w& L5 f' |/ A) ^        #2000 2 Y6 T: S* Q7 X' n& P: q
          set = 3;
2 d2 h# X6 A( T; u7 w! _  #2000% k. s7 l) M4 }8 ?" P+ N! M
  $finish;3 q2 b6 h) w3 [2 [9 `( ]  d
end
/ \. i2 ]1 y. i+ e0 b' v4 {) @0 _endmodule // xclk_tf
24#
發表於 2007-6-20 13:39:55 | 只看該作者
不過我還是覺得也許會有更好的方法來設計這個東東的, 所以才會說介紹個人給之類的...哈
23#
 樓主| 發表於 2007-6-17 11:12:57 | 只看該作者
原帖由 tommywgt 於 2007-6-11 03:02 PM 發表
6 M& V$ M2 a. ~" Y: O$ G這樣子做出來的phase error會很大也, 要先看規格的要求一下下
7 \' M2 p: h, I9 B7 J- k

/ U) z: _; ]% J! K( x! b
! v3 d5 U9 m! f& z! D
+ E/ a. m3 B& R' a: o' o嘿嘿....沒錯../ j7 D& o: @" x7 B. |4 r9 a1 G7 K
所以我現在還是用60hz去產生600hz..$ D1 t( w; b5 [5 }7 _* w
另外一個原因是因為客戶只會給我60hz的訊號啦...
22#
發表於 2007-6-11 15:02:01 | 只看該作者
這樣子做出來的phase error會很大也, 要先看規格的要求一下下
21#
發表於 2007-6-10 21:50:08 | 只看該作者
... 這樣說吧. F3 \4 x! a8 D8 S/ j$ C* \
如果有 PIXEL CLK 就用它除頻7 S) a1 j4 ~0 o& c
如果有 HSYNC 就用它倍個幾次
' u- l1 v4 _* L+ ^! n6 _$ t% P2 j6 I; W, d7 @0 D. V- i0 C
因為 PIXEL(DOT), HSYNC, VSYNC 之間有一定的倍數關係2 M6 C( n8 J, s; T6 E% O
0 i' R0 r( u5 n% D2 X6 @
   640x480@60Hz => 25.175MHz (39.7ns)
% c, I6 t3 g" n" h8 r$ n3 l   DOTx800=HSYNC, 39.7ns x 800 = 31.469us2 p, [" m1 F' ?& s! n7 s% c
   HSYNCx525=VSYNC, 31.469us x 525 = 16.52ms (60Hz)  P2 e8 B: I7 D" G! p
所以這樣的CLK一定會和VSYNC同步 (詳見VESA Monitor Timing SPEC)0 ~6 u0 m3 G/ I! a% y$ C. m
% m* L& e$ z9 ?$ A
接下來如果要VSYNC時不出CLK.. 那就用個AND閘吧 (看你用哪個MODE, SYNC有High或Low), V7 r! \6 m+ {8 x" r# o3 J& T

; r8 \5 H; Y# @* Z8 O+ u( M還是我想的清況和你不同呢?
20#
 樓主| 發表於 2007-6-10 18:39:08 | 只看該作者
原帖由 eject 於 2007-6-8 07:19 PM 發表 ; |& _# n5 j3 E$ i
問一下下...
# D" |& ^4 K" H7 O0 t: s0 K
2 o' i8 g8 [* {$ E  P6 m你有HSYNC可用嗎? MODE 有固定嗎 ?
6 u! a8 J( `- n) U- q有的話至少已經上 KHz3 h' X! D- e: c* [- [' |" i7 Q0 z
而且就倍數來說一定也會跟VSYNC同步吧

1 W3 ]3 T  A! q; w% G3 W% l
( D5 q- t4 V# p- ?* p* `
" @6 m+ F( D/ \1 n& O  e/ N是有H-sync啦...& u& D1 a0 I( K
不過不能用h-sync來做...
) `; v! ~) c8 X  b2 b4 }: Z/ ?; j因為用h-sync來當triger所造出來的訊號不一定會跟v-sync同步.
19#
發表於 2007-6-8 19:19:44 | 只看該作者
問一下下...
& f; |7 z2 j& {$ T9 d  v4 q( n2 c+ y2 u) h+ {1 g- ~
你有HSYNC可用嗎? MODE 有固定嗎 ?
# H" ^7 J2 d; ^有的話至少已經上 KHz
- l+ M. w/ U! X1 n: n8 t1 V) I而且就倍數來說一定也會跟VSYNC同步吧
18#
 樓主| 發表於 2007-5-9 21:02:13 | 只看該作者
RGB三組pwm要用到12bitx34 V# [4 o+ b6 A) k4 ]! X
output也要三組RGB 12bitx3
% x+ X, w5 R: f) [4 a" _/ E  ` 同步需要一組12bit counter
" q3 |3 h2 Y/ Q. D" T: d
0 j- p' E" v3 i  z3 W$ h其實我用到的reg..大概就要180個了
" u- z* ~% V5 g/ @% A/ L+ h所以64 microcell是不太可能啦...
17#
發表於 2007-4-24 10:25:35 | 只看該作者
願意把所有的規格列出嗎?0 y- E. }; ]  h1 B0 l3 c5 @5 O
也許可以放到64 micro cell也說不定...
16#
 樓主| 發表於 2007-4-23 19:49:01 | 只看該作者
原帖由 tommywgt 於 2007-4-23 04:30 PM 發表 & r0 {- b( f  M; o' T9 Q% s1 g/ K
也...回到你回的問題...
/ L" |, R9 |/ O3 g" p" J要做phase shift可不用改到duty cycle啊...

1 x' G1 r" N  m$ d! p
% W+ j% j2 ]9 U- {. Y. t6 L6 z# i5 _# _7 R+ j" ]
其實我shift要做....duty 也要改..& F  }; B, I& b7 R5 m
所以才需要那麼多的counter...
15#
發表於 2007-4-23 16:30:00 | 只看該作者
也...回到你回的問題...
1 X- _8 a) s2 S/ K要做phase shift可不用改到duty cycle啊...
14#
發表於 2007-4-23 16:18:35 | 只看該作者
128microcell在一般的應用可以放一大堆東東也...
: s2 T" g9 K, L3 k你的design很大嗎?
13#
 樓主| 發表於 2007-4-18 20:13:09 | 只看該作者
原帖由 tommywgt 於 2007-4-16 02:14 PM 發表   X! U9 l  d( G* Y& Q( }; }
如果倍頻是成功的, 那phase shift就只是調整cycle中的1->0, 0->1的時間, 不是嗎?
: w& }9 ?% K/ Q9 R( O
; [; X1 T, A, B6 Q( d% d# t
$ k5 ^. W& c3 x2 L4 z
想法是這樣沒錯啦..
# k: W! t# h2 v, [  r. ~& v8 ]. l& d以2.457MHz的clock來說...+ V8 ]9 O' u. ^& y1 T% _: `3 `9 e1 ~
你會需要12bit的counter來數high是多少跟low是多少..(因為pwm的duty是會變的)0 _- ~/ s# I: d) S# n& y
shift-->one counter4 U9 {! `8 B6 X9 u# p0 w
memory high-->one counter
& O0 Y& p6 ^- D$ @9 e0 {( pmemory low-->one counter
% e3 g* q8 y' c3 T/ k我目前是要用到四個counter...
2 Y' [+ V) N% h* Q& |, A不過這樣做起來感覺很不好...( w4 K; C6 F0 F* f9 c) a

+ x* @; e! x/ X+ A8 M而R G B各要一組shift.." Y- G' t( [+ ^; e
128microcell已經被我寫爆了...唉....
0 b5 D' u- }: \. k) U7 }' j3 l( B
+ `4 b0 S: z% _  S. l/ n; s, ?其實光是寫同步的的code...128microcell就已經被我寫爆了呀! ^: f' H6 `( y3 `8 Q
(目前是用lattice的 iM4A5 128/64)* U7 v% |# N/ M

6 P, o4 o5 y/ G0 C$ `+ c& i5 I5 d所以才會問各位先進是否有其他的想法.....
12#
發表於 2007-4-17 13:09:06 | 只看該作者
如果 jitter 要求不是很嚴格的話,
2 E2 `. L, h4 m利用 74297 的電路來參考 60Hz 或許可以;1 U6 N) s; _+ K- J
DCO (ID counter) 跑在 2.457M * 32 對 CPLD 應該是很容易作到...
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-11 11:52 AM , Processed in 0.149009 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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