Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-3-17 11:29:24 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
請問cpld可否能把一個input的frequency倍頻....
1 i% E6 E$ [; }$ x( N倍頻是否只能用PLL的方法?, n2 r5 i3 R9 o/ N' O
最近遇到這個問題...想看看各位的看法..
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
30#
發表於 2008-10-4 00:04:50 | 只看該作者
嗯~~大大解答蠻詳細低~~~多謝喔~~~小第在研究看看~~~~~~~��
29#
 樓主| 發表於 2007-12-24 16:35:41 | 只看該作者
沒錯...5 D: u/ S! v1 P7 b! Z9 x
是要用在LED Backlight的....3 U6 V% `' K! A! ^8 q
其實有問題可以在這個帖子直接討論..$ ~$ }  Z2 _6 N- y0 R& U. Q, ]
這個沒什麼秘密啦...1 ?: a4 S; T" p
因為我已經申請專利了.....
28#
發表於 2007-12-24 14:50:48 | 只看該作者
請問一下你是要控制LED在顯示方面的應用嗎??/ ~; R- T) B- O) K& [2 Q

! @+ {9 b7 U- W( H9 v可以和你討論幾個問題嗎??- K& U9 `" A6 \% c1 Y/ q9 ?

; t8 G7 F$ X: h& J方便留MSN嗎??
! z( z9 T4 U  m0 [/ g4 }
- u: h4 C6 e# c4 h2 x, r0 d% i感謝
27#
發表於 2007-9-10 17:20:59 | 只看該作者
有附 test bench; P- \7 i1 O5 A* @( T
確實可用! 已實驗過,但我不會貼圖。
/ t7 V: b# @: z( o只要略加修改即可實現。
26#
發表於 2007-9-10 14:49:50 | 只看該作者
這個有趣了3 x0 r2 P. x& f; }
有simulation的waveform嗎?5 w$ j0 x3 I" A) v) ^
示波器量的更好~~~^^"
25#
發表於 2007-9-10 06:26:03 | 只看該作者
//可直接透過synthesis  tool用於PLD,FPGA不可 LUT delay則要採其他方式。, _8 i  V5 l% j
//所有註解都要保留
6 `0 i+ X" A2 N* f7 I: A: I) d
" f  N0 @; H% z2 F`timescale 1 ns / 1 ns
5 q0 h5 a5 ]: h- {9 ?' Bmodule xclk(sclk,ena,set,outp);
  X" r! ~; T& A* C8 j3 O; {: o& l( x, ?8 z) Z7 O# b, g

+ j. j3 E: n/ [1 x  a
( s- R% @! m9 U: H9 ]input sclk,ena;* w# U' V, N( \1 a  g: d" ?
input [1:0]set;: n0 O; i4 a8 v
output outp; - B- @3 ?3 Y6 [" J  x
( m; |! H# Q2 ]! y% d3 Z
wire outp;
. @! t( S  c( c
8 ?6 A! q% B! f' c3 w( B. |
  l8 u  P  f, A: m- c& P( l& @
  |6 @7 s) f( X( v/**** Node preservation for nodeA **************/9 ?, g: N) y: h7 z
8 g# U" p( ^1 E1 _2 ?% X; }+ s
* j* ^$ M/ u  Z2 Q% ^
//exemplar attribute nodeA_5 preserve_signal true" k2 @  Y8 X( ]" a5 g# p
. o2 b( f" j2 i0 W7 I
//exemplar attribute nodeA_4 opt keep
- S" ~$ z1 g/ F3 r$ J5 B
; I$ w5 d& o! R/**** The following comment form also works ****/" q. X6 K9 E% ]0 F) `" f
$ P: i% [& R, n6 J; j4 L8 B1 r
//exemplar attribute nodeA_3 preserve_signal true0 T' J; s6 i5 J1 a- {

" }/ m  I( F' V" ]. e% }/ o9 K//exemplar attribute nodeA_3 opt keep
' J1 d% h5 b3 B, z+ U' l& C
4 Q( Y0 W; ^( M. F2 ^! t/**** The following comment form also works ****/
& M- C  i0 w8 N! j4 W" s. ?' I! l& E) F, x7 u! x! }. q1 {/ h$ f: J
//exemplar attribute nodeA_2 preserve_signal true
* h4 S' _9 N* c( `! n8 i: S  V2 z# X& _' \4 P/ F. N4 J
//exemplar attribute nodeA_2 opt keep! Y8 A& c# l- B8 p9 `% y* ^
1 x( J2 ^& |9 ?2 M/ s% U* W
/**** The following comment form also works ****/
+ c. u/ V4 S3 _6 `
* E5 v+ X, M& }//exemplar attribute nodeA_1 preserve_signal true
  }$ l$ J/ F& }  A: I0 n1 Q
- ?+ K) j. \# m//exemplar attribute nodeA_1 opt keep7 z4 e6 O+ j# g% x' W) a

/ O! s- U% j  J6 H( j
* t% G2 B& X# b7 a1 G; \' \! }/**** The following comment form also works ****/8 `1 E5 ]  g( w: F
2 F$ x, E. e* j) N- ]" t6 m
/*exemplar attribute nodeA_0 preserve_signal true4 S5 X( y- U# W' o7 p, _- }
' S! O: }4 u: Z4 F
exemplar attribute nodeA_0 opt keep*/   _4 W$ x  U) K& G: @
2 b& }3 G/ h  G$ O5 s

5 X$ w" C, g, G% Q5 s6 ]8 \ + A, y5 |  v  z5 e7 k+ ]

! A5 q$ Q6 v8 ]4 ^( k& |9 W+ b4 q: P9 m6 p3 X1 O+ g

2 N- ~* V3 e  U$ Z$ `9 d
/ r, k7 I- H# L
( w+ ^! `& P( C% ]
# d, m1 C  ~, X8 b* _+ a9 J$ h0 i# e4 y$ X
wire nodeA/* synthesis syn_keep=1 opt="keep"*/;
2 W; d0 I6 g( C) m3 b  Y8 X6 awire nodeA_0/* synthesis syn_keep=1 opt="keep"*/;
& s5 i9 `1 R/ }" B7 Ewire nodeA_1/* synthesis syn_keep=1 opt="keep"*/;
4 ]5 v# H5 A+ J0 [9 Bwire nodeA_2/* synthesis syn_keep=1 opt="keep"*/;
% Q! q  z- z, kwire nodeA_3/* synthesis syn_keep=1 opt="keep"*/;4 j+ K) k7 F6 e  P6 [" Z5 F
wire nodeA_4/* synthesis syn_keep=1 opt="keep"*/;
: K( U4 ]0 L3 _" _
! u: @1 s6 C+ `* t8 G0 ~( Lassign#1 nodeA_0  = sclk & ena;5 z" G2 k/ ~' e$ {' P! a$ l9 b% x

& A. v2 ]& L3 g6 Massign#1 nodeA_1 = ~ nodeA_0;: `9 l+ a! B7 u3 E7 d2 c7 o
assign#1 nodeA_2 = ~ nodeA_1;' H; L; c9 B, E
assign#1 nodeA_3 = ~ nodeA_2;
8 |# t( }- M( B- J, U& Bassign#1 nodeA_4 = ~ nodeA_3;" x1 i) q2 V5 M& h- s
" {( Y8 w9 A& }9 G. e2 X
reg xout;
  S: \, |$ T/ K* |: z( {. o. }' l* ~' k) f4 ~0 z9 P+ P
always@(nodeA_1,nodeA_2,nodeA_3,nodeA_4,set)" D! W' m& N" s) V! q+ d
  casez(set)
8 o3 P$ F6 Y* p# f# g" K3 d) r) b    1: xout =#1 nodeA_2;
) U: ?8 [8 l- J( |    2: xout =#1 nodeA_3;: R; ^" e. o+ [& _' q* Z# o  J, H
    3: xout =#1 nodeA_4;% \6 N8 V- g  b% w' |/ {! l
    default: xout =#1 nodeA_1;
/ I; E0 m, D$ K8 d- ]' D  endcase5 d' D( ~) U: x9 j
  
: H4 ~% s0 }9 Y7 u4 c' n# Jassign#1 nodeA = xout;
  x1 B, m: x8 Z* g( @. \! Z0 Hassign#1 outp = ena ? nodeA^sclk : 1'bz;
7 Z8 {) i0 s; ]. X, G3 c7 ^) B" @0 c
. R" D  _8 V, Jendmodule1 o6 |9 y$ h! h
% s& K  n& C- S* b$ c
8 m4 J$ h5 G$ J- B; p* p0 i0 V

3 ?6 ?: [* A) J  P`timescale 1 ns / 1 ns' R3 ?/ H8 q6 |0 {. D" F
module xclk_tf();: G: O7 d8 b7 c& d. G# ~9 U2 w1 c
+ i, M3 H! b. D6 D, R
// Inputs
" l8 q6 w2 Z& I    reg sclk;" g$ n! Z2 q  n* e( Z7 N; I! M; O* y
    reg ena;
& w) m( H- \- _8 v( M6 B6 e' d    reg [1:0] set;
& Q4 e' R, k8 r9 [7 P6 i0 z0 H7 n; d; m2 V7 ^
6 r5 Z7 h- @/ C& U9 P/ u. @0 c
// Outputs, d' l. y5 \) x- B( j
    wire outp;
% {: W$ j! j  ]" A! m# r* ]8 e4 r  {. M9 q+ Z! |5 E4 P
' E' O& K! y0 i. s. y. M
( i" G0 S8 ]. N  D
    xclk UUT (% w2 K6 q+ x+ V0 v0 {9 j0 u/ j
        .sclk(sclk),
% Y, V& b! B+ E. u        .ena(ena), 9 V: j% h& s: R: {; A
        .set(set), & s* V8 ^) S) ~7 A/ N4 l! k' J
        .outp(outp)$ v( S% z& E) S% A6 _
        );
/ e) \. q  H) r3 k3 A5 E; I( k" H, m8 c9 k
  ^3 u) o3 {: D3 Z' G

- A) y4 [/ a3 D. E5 m7 r6 v    initial begin/ x1 g0 k' S' M1 h" D9 E  a0 V
            sclk = 0;
. P- h5 x, M1 m" G7 }            ena = 0;' i* d" k+ s( m3 }
            set = 0;7 G! Y. |/ M& |
    end
7 W9 E. y7 S7 V; R2 H/ L( L1 H
  l6 m1 l! {' ^- Q' Z" C/ Y$ Z8 a1 n3 Z' }0 \! l
always# 5 sclk = !sclk;
! c( j6 Q  _" q$ V$ Q+ J' ~# H
/ q# c- g5 |! |* W9 g+ c3 j& cinitial begin
/ O1 W* |9 e8 q/ ]        #100
3 `9 F- v/ P9 J          ena = 1;, b: T- H" I' J1 {8 l. j
        #2000 6 v% u/ @" u) _: B
          set = 2;2 J' o; B4 O8 b4 C8 _7 C
        #2000
3 S1 q2 F" X' w- t- A% ~+ j          set = 3;
" _( }, _* }6 I; o  #2000
% M8 z: Z2 e% s+ S& g" R( Q8 ^  $finish;
/ m* K; J: T9 Rend
' ]. t3 p& T% N4 j' Nendmodule // xclk_tf
24#
發表於 2007-6-20 13:39:55 | 只看該作者
不過我還是覺得也許會有更好的方法來設計這個東東的, 所以才會說介紹個人給之類的...哈
23#
 樓主| 發表於 2007-6-17 11:12:57 | 只看該作者
原帖由 tommywgt 於 2007-6-11 03:02 PM 發表
+ i% Z3 O% l% x) p) K; V- N這樣子做出來的phase error會很大也, 要先看規格的要求一下下
+ P4 T' [2 R" c

9 O% S! O$ b: C' T2 n+ b6 l7 K1 A0 W

/ f; S& I/ n/ v5 ]8 O嘿嘿....沒錯..0 g/ B5 u! {  ]; m$ `
所以我現在還是用60hz去產生600hz..
* }) N$ B3 l1 T/ k( b, }另外一個原因是因為客戶只會給我60hz的訊號啦...
22#
發表於 2007-6-11 15:02:01 | 只看該作者
這樣子做出來的phase error會很大也, 要先看規格的要求一下下
21#
發表於 2007-6-10 21:50:08 | 只看該作者
... 這樣說吧; u9 k: A$ k) O
如果有 PIXEL CLK 就用它除頻
' p0 L( `' Y# x. z9 L如果有 HSYNC 就用它倍個幾次
8 h; C  {. p* w4 O  m& X
" t# j8 F7 \: Q( P- G因為 PIXEL(DOT), HSYNC, VSYNC 之間有一定的倍數關係
* ]2 q8 G& v0 [) i4 X
) o6 D& v, R) F7 T" B. x7 A   640x480@60Hz => 25.175MHz (39.7ns); K3 o( c! ]) k5 p' G0 [  B
   DOTx800=HSYNC, 39.7ns x 800 = 31.469us+ n4 I! H9 C0 {& H9 B
   HSYNCx525=VSYNC, 31.469us x 525 = 16.52ms (60Hz)
$ V1 W$ A9 A7 `5 m, x+ ]  ?6 X所以這樣的CLK一定會和VSYNC同步 (詳見VESA Monitor Timing SPEC)
' \( O1 K3 m8 E" r) c% T1 M$ C( k: h; i2 f) E7 R  R- P' ~" a! h
接下來如果要VSYNC時不出CLK.. 那就用個AND閘吧 (看你用哪個MODE, SYNC有High或Low)
; ]/ `1 c$ g+ g/ t8 a2 z- I2 B5 I( O3 f0 R- @) z2 [
還是我想的清況和你不同呢?
20#
 樓主| 發表於 2007-6-10 18:39:08 | 只看該作者
原帖由 eject 於 2007-6-8 07:19 PM 發表
6 O" e6 }5 C% a問一下下...
8 p8 F: M% d: f" ]
: W* A+ k5 b2 u8 y你有HSYNC可用嗎? MODE 有固定嗎 ?
; o7 }7 `( L( a' u+ t4 X. Y: b有的話至少已經上 KHz3 @: h+ x$ H; L
而且就倍數來說一定也會跟VSYNC同步吧

. _2 g/ b  o9 @1 k& `) R& W8 P) k  a# I, u0 S" ~# W# d( y

6 C4 N7 J9 h5 D% M) |  j是有H-sync啦...% e. Y4 C+ ^/ t2 P. M8 C
不過不能用h-sync來做...+ ^, u+ Y7 a. K  v' k- d4 s& V
因為用h-sync來當triger所造出來的訊號不一定會跟v-sync同步.
19#
發表於 2007-6-8 19:19:44 | 只看該作者
問一下下...
4 u/ ^! c: a) ^/ B' Z- ~2 W) v5 F5 X9 F9 e2 c
你有HSYNC可用嗎? MODE 有固定嗎 ?) x$ `$ M8 p2 n' v) Y  c' q
有的話至少已經上 KHz
" E" i" b8 m+ \! Q而且就倍數來說一定也會跟VSYNC同步吧
18#
 樓主| 發表於 2007-5-9 21:02:13 | 只看該作者
RGB三組pwm要用到12bitx34 r5 A" \9 X: y$ n
output也要三組RGB 12bitx3* r$ Q& v/ C2 Z( [9 k/ c
同步需要一組12bit counter
* a7 r0 T3 B" m. J$ x  k: u+ E# v, F/ \5 e3 r
其實我用到的reg..大概就要180個了7 {4 A  A  W! w2 E5 G* k
所以64 microcell是不太可能啦...
17#
發表於 2007-4-24 10:25:35 | 只看該作者
願意把所有的規格列出嗎?
6 R5 y5 j% S" ^) E8 b也許可以放到64 micro cell也說不定...
16#
 樓主| 發表於 2007-4-23 19:49:01 | 只看該作者
原帖由 tommywgt 於 2007-4-23 04:30 PM 發表
& @/ f$ @) X/ s7 A; t; E/ p/ ?也...回到你回的問題...9 {- }* g1 h1 ^% Q
要做phase shift可不用改到duty cycle啊...
$ B9 C% z$ b7 ~- m+ J
, k: s' t$ j! S3 `% I7 C* ^/ D4 Y
+ `3 _9 G* P1 Z4 H* L4 R
其實我shift要做....duty 也要改..
* _5 x& A1 N5 ^5 A( U9 C所以才需要那麼多的counter...
15#
發表於 2007-4-23 16:30:00 | 只看該作者
也...回到你回的問題...8 W, U& X! F  c. C" G# X+ V. P3 [
要做phase shift可不用改到duty cycle啊...
14#
發表於 2007-4-23 16:18:35 | 只看該作者
128microcell在一般的應用可以放一大堆東東也...
* L# Y7 m/ \" K9 e& A$ T你的design很大嗎?
13#
 樓主| 發表於 2007-4-18 20:13:09 | 只看該作者
原帖由 tommywgt 於 2007-4-16 02:14 PM 發表
. [# _/ t7 \' G1 Q& L如果倍頻是成功的, 那phase shift就只是調整cycle中的1->0, 0->1的時間, 不是嗎?

. C/ L+ M/ g- K6 [4 W3 Z
( ]) k+ H* n2 f
. f2 F9 h  k4 b) Q$ @8 g想法是這樣沒錯啦..  S! Q7 ~7 |! I0 s/ K0 F: X8 q5 ?
以2.457MHz的clock來說...
  Y& I% e3 d% W9 ]你會需要12bit的counter來數high是多少跟low是多少..(因為pwm的duty是會變的)
: v: R+ S# B+ M/ t3 ushift-->one counter0 |: x! S' |  T/ B  a' Q; v& E" `
memory high-->one counter; ^/ e3 q$ P+ S" ]! F1 C+ w1 m
memory low-->one counter
' e& W: |" N! W5 H4 g7 p" L5 I3 l我目前是要用到四個counter...
( ~$ `" G' X3 ?" L5 E+ g# ~# B$ l不過這樣做起來感覺很不好...8 _, L$ D8 J  r2 c

& i/ t, W- a+ F# D而R G B各要一組shift..) g* z1 b5 w% T  a! |0 f
128microcell已經被我寫爆了...唉....
. K) V+ s. y5 J7 H+ N" l
7 ^9 H8 j+ ^* p& Y' B2 Q. U. G其實光是寫同步的的code...128microcell就已經被我寫爆了呀
6 \; B" ~% M: z# l+ j2 O, @(目前是用lattice的 iM4A5 128/64)( [7 P; J6 I# q$ d9 I- Q6 M& }
9 A6 x" c$ K/ e2 c0 q' E7 V1 y
所以才會問各位先進是否有其他的想法.....
12#
發表於 2007-4-17 13:09:06 | 只看該作者
如果 jitter 要求不是很嚴格的話,% S9 S9 q( I( Y, I
利用 74297 的電路來參考 60Hz 或許可以;6 b) V9 t$ r$ ^" v
DCO (ID counter) 跑在 2.457M * 32 對 CPLD 應該是很容易作到...
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-22 10:18 AM , Processed in 0.126516 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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