Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-3-17 11:29:24 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
請問cpld可否能把一個input的frequency倍頻....
! \( ^9 E  J( y: c, v7 E倍頻是否只能用PLL的方法?
1 a7 L3 E( w* N/ p9 k5 @最近遇到這個問題...想看看各位的看法..
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
30#
發表於 2008-10-4 00:04:50 | 只看該作者
嗯~~大大解答蠻詳細低~~~多謝喔~~~小第在研究看看~~~~~~~��
29#
 樓主| 發表於 2007-12-24 16:35:41 | 只看該作者
沒錯...
, `0 V1 v, ^: t* N, D$ v是要用在LED Backlight的....- P/ |6 l" h/ q
其實有問題可以在這個帖子直接討論..
1 D% z" e0 \" L5 O) W這個沒什麼秘密啦...
) O) o8 P/ J) _& P9 v) @1 _. C2 r" E' g因為我已經申請專利了.....
28#
發表於 2007-12-24 14:50:48 | 只看該作者
請問一下你是要控制LED在顯示方面的應用嗎??- R( c5 e+ F5 c) A/ X
1 a1 g* F' L/ Q' m- F+ T, }; v
可以和你討論幾個問題嗎??
6 u+ Q' K2 h. V6 E- ?
4 }7 L" ]5 B& n( x( W方便留MSN嗎??6 W5 Z: S1 O% a9 i( F( w# D

" |" k0 U" h& t' O感謝
27#
發表於 2007-9-10 17:20:59 | 只看該作者
有附 test bench
0 P! I4 t" ^; n確實可用! 已實驗過,但我不會貼圖。
1 @$ ~: J& k' {( k只要略加修改即可實現。
26#
發表於 2007-9-10 14:49:50 | 只看該作者
這個有趣了
9 v( E, b4 U  [4 T3 b有simulation的waveform嗎?# ?0 l& C% [) A, z1 F, w' j
示波器量的更好~~~^^"
25#
發表於 2007-9-10 06:26:03 | 只看該作者
//可直接透過synthesis  tool用於PLD,FPGA不可 LUT delay則要採其他方式。
. Y) c' f( L+ v//所有註解都要保留8 _' j. r/ R7 H' M: D
" u* c4 f  H: @' l- E7 S/ F
`timescale 1 ns / 1 ns  |/ o# U* K6 E0 i2 g' ^2 L
module xclk(sclk,ena,set,outp);
- M: B7 n% [, }& i
: ^0 E6 U" q4 Z" o
) p* \4 f$ A3 [+ F- v8 d6 J, c- a5 G
input sclk,ena;& B+ y) I1 u$ Y# K9 S& @* o& P
input [1:0]set;
5 F  t( e) A) G$ {, S! Aoutput outp;
6 L. g# E, @. T+ W, j
3 B/ i  F9 Q4 o9 twire outp;
- Y7 B" |7 |- w; C" ~! ]6 v7 |" n  \% R

2 u: B" u. O! s) C6 Z: @: N0 T
$ P% B+ a: L0 Y# t/**** Node preservation for nodeA **************/
1 x4 ^7 Z. k3 I/ E2 j% c: r
, r  c* S: @' D% |, l5 |# S0 R( t7 R5 h1 j! h6 Y# i: s$ X
//exemplar attribute nodeA_5 preserve_signal true3 u/ a- s, D+ |5 @: Y( S5 W# ^

+ t" r) S5 b9 J5 J+ P# p4 M! b, I//exemplar attribute nodeA_4 opt keep1 Q1 }; V* A( v9 Y" o* `5 e

6 d* H: p- U  Q9 }' a4 t- j! _/**** The following comment form also works ****/
7 o' h7 m, J# Q: q$ ]5 E* {* l) R& S; y, G$ f! w5 z2 A, ]
//exemplar attribute nodeA_3 preserve_signal true: q0 z5 ^4 Y; K- W; c# b
1 g2 A' T$ l1 [  W; A
//exemplar attribute nodeA_3 opt keep9 E1 ^1 ^& D2 ^; k1 K
0 c2 I. f) x; C9 x4 t- R
/**** The following comment form also works ****/% B' S. H" B! n/ k" Z6 k
1 S" V6 u# P" Q7 y& J7 P3 d
//exemplar attribute nodeA_2 preserve_signal true9 W) _/ t- z& f4 ~9 T9 p* n
9 Z  `  J5 S0 z# O
//exemplar attribute nodeA_2 opt keep
9 Z2 z% S/ C8 L+ B4 z8 F  R& F
' o4 ~* J; V8 y5 l/ u5 V4 l6 f/**** The following comment form also works ****/9 q* B  U- v$ }" I# Y
1 `, U; s( l! `6 b" X) @  ^
//exemplar attribute nodeA_1 preserve_signal true) J6 o0 O$ Z" {
7 b* ]& g( S# F& b/ C. |/ {
//exemplar attribute nodeA_1 opt keep
0 g. k' v1 _2 C, o5 ~6 n
6 u0 P( p- {0 R0 Q. U# [& r9 G" K1 U; z; R" R* c( K
/**** The following comment form also works ****/
! ?! y3 p0 _! @
0 N. m3 t2 D* [0 A' Q2 l0 ?/*exemplar attribute nodeA_0 preserve_signal true
6 }* ^$ r2 Y* w) U8 K. S+ m  p' u, G1 Q! C6 X. p  _- x+ l9 p7 I
exemplar attribute nodeA_0 opt keep*/
* H. J7 x# E- ~, m8 p
1 h- T! I, {; a; ^9 K4 Y  o- G. S/ |0 w4 @, C, s1 q' T' z5 ]
% a. l/ }# F- a  f

  P$ C; n' W: e: R1 i, m, t3 O" Y
0 m+ g6 f9 v! ]& R0 V7 m  f  _( f7 J
- W! M: W" o9 R6 H+ Y# ~
$ b  v, f' ^% \
- o, r' |' [# o; S6 X8 e" z

$ E& R& t3 o6 s8 l: q( g, v! mwire nodeA/* synthesis syn_keep=1 opt="keep"*/;( P5 c3 e; Y0 l! v$ }- X' K
wire nodeA_0/* synthesis syn_keep=1 opt="keep"*/;/ U( O) A% |+ H
wire nodeA_1/* synthesis syn_keep=1 opt="keep"*/;
! F. e2 t, P8 X' y  X6 ]$ Nwire nodeA_2/* synthesis syn_keep=1 opt="keep"*/;
4 M, }& F5 j8 K  Fwire nodeA_3/* synthesis syn_keep=1 opt="keep"*/;1 c  v. T( r: A4 w! Z
wire nodeA_4/* synthesis syn_keep=1 opt="keep"*/;
/ Y/ [, L! I! l# n7 O6 W  e# T) z  v( ]2 _8 F
assign#1 nodeA_0  = sclk & ena;
( _! P4 H1 p* b5 G& X; x# p- i) T! B1 _) ]
assign#1 nodeA_1 = ~ nodeA_0;
5 H7 v3 }, v. V0 W5 s! V7 R' Jassign#1 nodeA_2 = ~ nodeA_1;
& E. s7 |. m$ j8 i2 uassign#1 nodeA_3 = ~ nodeA_2;- c" j& {3 Y( @. a- z% b
assign#1 nodeA_4 = ~ nodeA_3;
; w1 Y% R5 y5 B2 h! `2 j2 V
* W' _" N' r# A) k4 M6 E) F, kreg xout;: i( D5 ]+ e  ~* S" _3 t; A) U

" N2 S$ d7 H0 Z- ^always@(nodeA_1,nodeA_2,nodeA_3,nodeA_4,set)
5 ^) _$ Q! O8 i# F3 g! d  casez(set)
9 n: F% f' k( u" o+ u. |    1: xout =#1 nodeA_2;
( k$ A' @8 e; a5 u2 F    2: xout =#1 nodeA_3;: M6 V/ S: v) c  r  s
    3: xout =#1 nodeA_4;! r" q7 _8 w2 T, ~5 x  t
    default: xout =#1 nodeA_1;
7 p8 C* p1 [- O% R0 t  endcase7 I% I% [/ Y/ w# D& l% V
  : b0 I9 q9 `2 l
assign#1 nodeA = xout;
! _. s! u; B- x" B/ kassign#1 outp = ena ? nodeA^sclk : 1'bz;) n0 X) |2 v% [; D

5 J/ Z0 [( v; {  _endmodule2 Y  c& I* [) K( {9 `! R
  h) A/ y# {" y# p  {2 f: L- \
" Z3 t5 ^# K6 b* r8 o9 S" m* A

6 O. v( a  F7 E4 l) b* v+ O`timescale 1 ns / 1 ns/ w% E  [6 }! F8 X4 ~1 o
module xclk_tf();
( \3 \  N7 \% @/ _2 C# E; j: ?1 ~! k: R; @0 l2 w" q3 }
// Inputs% O! H7 I" A: C" t
    reg sclk;8 I8 ?4 k& h9 s9 V5 S
    reg ena;: W6 G  |. F" |/ _7 |
    reg [1:0] set;
; i1 D" r" ?1 O
$ j, l( L2 p9 i1 E5 Q0 Y$ F: k1 N4 v" |! \
// Outputs/ f  ]: t  K8 r& o3 G
    wire outp;/ C5 o1 i4 a8 [, S9 k

6 j& _% c1 H% c& A7 F( s+ {6 Y. x3 ~

: @; U  Q, p, f. t4 P. X    xclk UUT (
7 N* Y: t) i3 Z9 N) `- r        .sclk(sclk),
7 y9 k, f9 n0 k) Y* H5 T8 x        .ena(ena), " H& [3 {  z/ O8 N+ ^" M
        .set(set),
6 e# V1 O8 w: Y( T1 R3 B        .outp(outp)( X' Z; R2 M) Y6 v# o" W8 Y
        );
) A! m3 a2 s3 Z- S) [" o: g: X$ E: i# Q/ a5 M: @3 _5 X
1 |2 t* w- ^$ G! f8 ~7 V- p3 S$ b
, b/ D: R1 [; f/ {
    initial begin# I# l! W% W% y+ j& T; s2 |( v& [8 [
            sclk = 0;
! s, ?- C" z7 ~% z# t            ena = 0;
- b! j: s5 |) N2 r: w            set = 0;3 x0 \# l1 _  B  ^8 j- w
    end2 V; ^, @: r5 l) a2 a: j

& v5 N- @5 P2 A/ K- l
; x5 W9 f7 e8 V+ P, u5 W2 y* D7 Ralways# 5 sclk = !sclk;% ]* r9 `- u+ P* v& T! ~
/ H2 \% ^* e. I, [# J; R
initial begin# n2 b& ]9 N$ Z9 y
        #100
% E5 c# P- e' F4 i          ena = 1;
  V7 ^1 c2 Z& u        #2000 , b( y$ ?; l; ~! Q& ?. J
          set = 2;
" J) s' i3 \/ A0 a/ K' B3 q2 z& l        #2000
* o) F9 @! A( a6 l+ ~! W          set = 3;$ _9 H5 u% w& A4 a
  #20004 W2 s, W4 G0 N- Z
  $finish;* c5 E0 s/ ^& K; `4 K( b
end" e# {; X" ?  q/ |1 A
endmodule // xclk_tf
24#
發表於 2007-6-20 13:39:55 | 只看該作者
不過我還是覺得也許會有更好的方法來設計這個東東的, 所以才會說介紹個人給之類的...哈
23#
 樓主| 發表於 2007-6-17 11:12:57 | 只看該作者
原帖由 tommywgt 於 2007-6-11 03:02 PM 發表 % V1 F$ I8 p0 l
這樣子做出來的phase error會很大也, 要先看規格的要求一下下

$ @0 }" r# y& T' r" i4 i
0 y  q3 k8 J4 A8 R! u/ A3 h
! i$ @% N( d. K$ b4 G$ q( R, }4 H9 a7 Q; E3 H6 u5 o& @( q  |. A# m
嘿嘿....沒錯..
" T2 ^9 X; Y: H% P% K- m. Q所以我現在還是用60hz去產生600hz..
7 [6 A8 j) s! H8 }: i% z( @另外一個原因是因為客戶只會給我60hz的訊號啦...
22#
發表於 2007-6-11 15:02:01 | 只看該作者
這樣子做出來的phase error會很大也, 要先看規格的要求一下下
21#
發表於 2007-6-10 21:50:08 | 只看該作者
... 這樣說吧
7 R! N! S/ @1 o; Y如果有 PIXEL CLK 就用它除頻
/ }$ R3 d9 P- G' [; z* q3 |2 B& {如果有 HSYNC 就用它倍個幾次
9 Y6 T7 v1 e( E: p! V0 i* |7 x% g0 b5 {- Y2 v& P: ~
因為 PIXEL(DOT), HSYNC, VSYNC 之間有一定的倍數關係3 m* P% V" Q2 O

" k: L, S# j' R  N1 C. o8 F* o! s   640x480@60Hz => 25.175MHz (39.7ns)
* i, u& W4 U% o( [: h7 l   DOTx800=HSYNC, 39.7ns x 800 = 31.469us
- i4 g. ^! o; i! T  C   HSYNCx525=VSYNC, 31.469us x 525 = 16.52ms (60Hz)
1 S0 X. y  J1 V1 ]: }' ]0 A所以這樣的CLK一定會和VSYNC同步 (詳見VESA Monitor Timing SPEC)6 k5 Q! k. j2 o) L  H" [$ W

' Z$ I9 z1 C; T& E0 b( z接下來如果要VSYNC時不出CLK.. 那就用個AND閘吧 (看你用哪個MODE, SYNC有High或Low)- o4 H2 z* c; @# v7 d/ H0 b4 }
7 ~3 Q7 E( g+ m" {# ~! u+ N
還是我想的清況和你不同呢?
20#
 樓主| 發表於 2007-6-10 18:39:08 | 只看該作者
原帖由 eject 於 2007-6-8 07:19 PM 發表 ( z5 _& }$ H" {6 S  u: V$ V6 G
問一下下..." a; q$ G/ _8 B0 t# A/ V  \
2 g1 D2 I( F% \. \
你有HSYNC可用嗎? MODE 有固定嗎 ?
2 o8 V1 l) Q; z# G! H有的話至少已經上 KHz
" }1 `4 e! H: V# T" Y而且就倍數來說一定也會跟VSYNC同步吧
! u3 e/ Z8 _# z: x7 F  p: |/ |7 V
8 [+ {! x) F7 _0 Z' R3 f  L

" u# N: u& T) t/ W2 j是有H-sync啦...% d# m" g, W8 b0 M7 P6 a+ p& [
不過不能用h-sync來做...
& z1 w2 p% W% E) M& ~3 V/ Q因為用h-sync來當triger所造出來的訊號不一定會跟v-sync同步.
19#
發表於 2007-6-8 19:19:44 | 只看該作者
問一下下...
- H  u& l, R. h
7 L. r9 P- z) \1 s6 g* p) V* ]你有HSYNC可用嗎? MODE 有固定嗎 ?4 Y0 L/ A2 _% L7 y5 k
有的話至少已經上 KHz
2 P% A# n" E7 t- E而且就倍數來說一定也會跟VSYNC同步吧
18#
 樓主| 發表於 2007-5-9 21:02:13 | 只看該作者
RGB三組pwm要用到12bitx39 |& @0 [. _+ V% y! X) X) a
output也要三組RGB 12bitx3, \' A9 _2 M" L: `$ z4 w' G, y, E* [
同步需要一組12bit counter
$ _) f$ [: B; j2 N8 }& d0 E6 k- c
% i+ [; t  B6 ^! g; F+ G其實我用到的reg..大概就要180個了
. g0 S2 v8 o" H% _% ^所以64 microcell是不太可能啦...
17#
發表於 2007-4-24 10:25:35 | 只看該作者
願意把所有的規格列出嗎?
1 i6 i/ o- j; z* K+ g. ?+ O/ C也許可以放到64 micro cell也說不定...
16#
 樓主| 發表於 2007-4-23 19:49:01 | 只看該作者
原帖由 tommywgt 於 2007-4-23 04:30 PM 發表 , Z9 X% c$ Q# t7 f* X" Q# f' c
也...回到你回的問題...( l7 B* x+ p7 o$ w0 e
要做phase shift可不用改到duty cycle啊...
0 j' a# |% Z5 I+ _% W- k

$ p' d3 `/ a1 g6 s. \
4 p" U; k  @/ p% u其實我shift要做....duty 也要改..  T  n8 I/ V) K
所以才需要那麼多的counter...
15#
發表於 2007-4-23 16:30:00 | 只看該作者
也...回到你回的問題...
; n9 e. L6 [3 a$ b; P$ ]9 z4 K要做phase shift可不用改到duty cycle啊...
14#
發表於 2007-4-23 16:18:35 | 只看該作者
128microcell在一般的應用可以放一大堆東東也...9 t1 V8 S1 D3 Z  Z- l! y
你的design很大嗎?
13#
 樓主| 發表於 2007-4-18 20:13:09 | 只看該作者
原帖由 tommywgt 於 2007-4-16 02:14 PM 發表 ! v  I. E5 Q  Z' X' p
如果倍頻是成功的, 那phase shift就只是調整cycle中的1->0, 0->1的時間, 不是嗎?
- ^. X5 t% q$ U+ c4 ~# [
3 o% H5 X/ u6 U( T/ o: [
, [) l2 w5 q& o' B7 A  ]/ k
想法是這樣沒錯啦..+ d# {! R9 c4 ^1 W
以2.457MHz的clock來說...' q* }" \9 }% H$ `
你會需要12bit的counter來數high是多少跟low是多少..(因為pwm的duty是會變的)6 x; O: E6 _3 m& S# S0 Z8 k: L1 i5 ?
shift-->one counter7 ^$ ~3 n5 _! l/ D- b  R' e: h- a8 U  E
memory high-->one counter) v. b" ]' k4 R0 {
memory low-->one counter0 ]  w. L' M8 w% }' R# P7 m
我目前是要用到四個counter...) k9 V9 d  ]1 T6 J, f6 A) R+ q
不過這樣做起來感覺很不好...0 w( f& f+ _1 a/ w4 d9 [

6 I; i( N' ?+ g5 S而R G B各要一組shift..
* s( R6 p3 I& R5 Q8 C; q, I128microcell已經被我寫爆了...唉.... 1 ~# X0 P6 a! y) i$ g! f; H0 J" |
8 W; _3 C+ P% Y# u
其實光是寫同步的的code...128microcell就已經被我寫爆了呀6 D* Z! ]# o8 y* n6 {, }
(目前是用lattice的 iM4A5 128/64)4 |* o+ K/ m4 z# ^3 X/ [7 C
6 B( X; g& I' N8 z5 H2 O
所以才會問各位先進是否有其他的想法.....
12#
發表於 2007-4-17 13:09:06 | 只看該作者
如果 jitter 要求不是很嚴格的話,% C/ W, [/ |% p; Y" R, _4 P
利用 74297 的電路來參考 60Hz 或許可以;$ F# n) r/ ~+ l% _/ t2 e! @
DCO (ID counter) 跑在 2.457M * 32 對 CPLD 應該是很容易作到...
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-21 11:14 AM , Processed in 0.201000 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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