Chip123 科技應用創新平台
標題:
精準式除頻設計??
[打印本頁]
作者:
gto10620
時間:
2008-5-17 01:32 PM
標題:
精準式除頻設計??
entity clk1 is
, i' |7 B8 t" C5 B
Port ( clk40 : in STD_LOGIC;
( }/ k5 o" s Z; ]
clk1 : out std_logic );
0 C' n$ u9 X, x& E, }9 z# n& G; b
end clk1;
" E5 H+ W2 `: e- n6 k) d
$ g! j3 z- R, R+ I0 h# U d! ?* f
architecture Behavioral of clk1 is
W7 E) T0 @9 ]6 ^2 w, f7 f8 N
signal cnt :std_logic;
7 ?% e! J4 c$ w2 {+ {
begin
$ m) \0 v7 O/ S( i9 O
9 ?& k. L2 j. {( k% K
process(clk40)
* \! c" ]/ x/ `% `, V! `7 s
variable cnt:integer range 0 to 39999999;
# x. l: S. V @2 H
begin
B# n: [$ X, w3 ]; {" |
if clk40'event and clk40='1' then
6 @1 j7 Y. Y* t5 R9 ?
if cnt<20000000 then
C4 {0 W' u2 C1 Y: d3 h* o- `5 X
cnt:=0;
E) m' H8 a) n% R4 P- j- C+ ^% N
else
& `: m' Q5 \% j5 v" w
cnt:=cnt+1;
* L6 E, [. O: ]/ {0 J( o
end if;
7 p- {% T" Q* b' v* m; C2 l
end if;
! P8 | F+ P5 \0 b0 P5 x
clk1<= cnt;
6 S" d" @( Q; W+ z
end process;
& Y5 [- `2 u2 t
end Behavioral;
* E0 f% B: U0 h0 z0 }
為什麼CLK與CNT不相容?
2 U- l8 H/ G+ o+ F& x2 T
還是我的設計是完全錯誤的?
; ?, T& e# T, j/ N
0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
' W0 w0 W+ K1 q! u& B
________________________________↑--------------------
1 _, e# I* m4 H
此段'0' 此段'1'
- u, t$ y6 E8 H$ w% @- U8 G
正緣觸發~
作者:
addn
時間:
2008-5-17 11:00 PM
您好
6 B# P* x% ?/ S3 F5 q
1.
" `8 ?2 t. I( C
請問你是要將40M HZ除頻到1 HZ嗎?
" j1 R7 h/ ~& w
2.
$ j- i7 ~- Y( Z9 x$ z
CLK1是定義是1 BIT的輸出,跟cnt的定義integer不同
9 ]9 @9 O" |# {
當然不能CLK1<= cnt,
0 P9 X4 {# b5 x8 k; b
3.
& K- @# M. G$ M$ q, u6 K) {
你的CODE有錯,請多想想
6 x4 Z" l! [4 e5 D6 V6 D& h
4.
2 ~8 P3 I. f$ j; \1 f- M0 H0 v
當你解決上述問題後還要思考
. w9 x `0 O: c& q @. K5 G
COUNTER要能數到 39999999
2 h; \& R) Z5 v1 n" \! |
這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)
: l/ F6 `, l2 G
那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上
0 [* p( z7 |8 d; n5 M
一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
作者:
gto10620
時間:
2008-5-18 05:13 PM
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ
$ ^' ~1 w' X" @( b
除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??
) Y/ J% D! t/ j0 T0 C
entity clk_95 is
: I: S$ f' w: [
Port ( clk40 : in STD_LOGIC;
( O$ J6 `; O9 [5 a3 k( z3 O) H# p2 D
enable : in STD_LOGIC;
* _, k' f; J' \- @+ R% U
switch : in STD_LOGIC;
+ L% Z9 o5 ~, P9 k. W1 P' X% g
a,b,c,d,e,f,g,p : out STD_LOGIC;
! h+ A2 @1 P7 }2 B, q2 Y
SEL : OUT STD_LOGIC_VECTOR (5 DOWNTO 0));
. Q0 ^8 q# u5 k2 U% A a1 Z
end clk_95;
1 r p/ I/ A5 G
) D Y( [$ @! j f$ v$ t9 a
architecture Behavioral of clk_95 is
* S1 N( u% ~4 b- M4 x+ i1 ?7 h& ]2 b; H
signal clk1 : STD_LOGIC ;
. b$ `7 o" }" M5 M: {3 c
signal cnt : STD_LOGIC ;
3 g+ R4 P7 T/ ~( e4 I
signal x1 : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
9 f* u% ~ r; ?& ^* M, O
signal x2 : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
% {# _# J! r0 |6 z7 a* z- ~( X
signal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
* q3 f" J- n" P# m
signal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);
- E( d1 a. N, q
signal y : STD_LOGIC_VECTOR (7 DOWNTO 0);
% ~1 N$ \: i/ m2 h# w) g! z! }
begin
' U! _3 M# A+ y; c
/ ]" f' F5 Z) o( \) W
process(clk40)
! g) h0 A6 q8 `. v9 b, i
variable cnt:integer range 0 to 39999999;
2 K! m5 |" }3 {" ]
begin
& B' Z) N; r k
if clk40'event and clk40='1' then
. z# k" a, {4 t+ m0 Z
if cnt<20000000 then
$ V" o6 C2 w- t0 q1 x* _
cnt:= 0 ;
* X4 p" A0 |; ]- E3 J7 S! W8 D
else
- }( d% j3 t7 K& z: }& l# n
cnt:= 1 ;
" K! f8 s7 m& S7 [' g3 c/ N
end if;
7 R3 b- u: |- `4 N: H" k
end if;
! \. d* ~) t, s& L$ p6 R: `
end process;
6 z# V4 C1 X0 ~
clk1<=cnt;
) M' F& ?/ N" n9 n+ }2 c: o% ^
, M* t4 |! K! P( N2 F) w. {
process(clk1)
! q+ N X( D9 f& G: |4 \3 k
begin
: I$ |- H8 f! j _! p
if clk1'event and clk1='1' then
0 v8 g' T2 w9 |4 ?
if switch='0' then
6 E. q% I% p, Y" ]6 Y- F& W
count1<=count1 + 1 ;
" Q d! |4 k# k" B$ a* U0 R+ q# P
if count1="0110" then
3 ]9 J* h$ f6 q
count1<="0000" ;
7 [& f+ ]0 j( j( s. y/ |; Z6 I
end if;
/ X9 E4 c# D9 k; h; U% j4 `
else
: q4 d# D/ u7 g& _, n& V7 l5 R
count2<=count2 + 1;
. l; c3 j2 h) K# X1 h8 o9 H, ~
if count2="1000" then
: _+ [/ N8 H$ [# @
count2<="0000" ;
7 S& ?# g% k: f% ]' t8 m
end if;
5 k% {4 L" c+ x k
end if;
6 w2 u0 z8 n& X' S0 _2 h4 l
end if;
- e, z* H. L- K; D) v: Z
end process;
- N& E- Y9 B! Z4 b3 F
後面是我自己要接出去的東西~所以我沒PO!!
作者:
addn
時間:
2008-5-18 05:58 PM
您好
0 H) @( a5 z3 B, \
這樣還是有問題
' X+ u+ N0 F* K# A7 G* f
可以試試
# {# B3 C7 u) x, n5 H/ }
process(clk40)
* Q% _+ ~. [# _
variable cnt:integer range 0 to 39999999;
- f1 ]" i/ `9 V- T2 ~
begin
! A3 |7 E/ w( Q; U* \' c6 e6 E+ e
if clk40'event and clk40='1' then
/ T' s7 f; u( U: e5 @& t. d
if cnt=39999999 then
9 {, e" l: l, I/ ~* k
cnt:=0;
. |, o+ d# h6 g9 x* p3 |
else
7 ~- f" ~" g& L ^
cnt:=cnt+1;
9 o2 b) Y3 M0 u9 V4 L# D: x8 H! ]
if cnt<20000000 then
( S# ?# h. |! Y/ y- v/ ~- B
clk1<= 0 ;
/ Q& J( P/ |: s
else
" I: b2 @/ F4 U
clk1<= 1 ;
7 I8 k; E2 c' a2 n6 a1 I, C7 A
end if;
. m6 d8 F K. }
end if;
5 ~$ Q3 H% u4 v; c5 {( f
end if;
, x8 ~% p7 I& a' R4 Z
end process;
! N' k+ z- a. z+ ?/ q- S3 j
2 b! F+ y! p0 W
或者
: m' w. G* U, A' g3 _- U2 P4 F
process(clk40)
7 f# ^1 ^& ]# \
variable cnt:integer range 0 to 39999999;
1 V/ b3 P7 m+ Y: p: O: ~* s
begin
) S# G8 |3 E! [- J9 I, z
if clk40'event and clk40='1' then
% ] e+ f6 Q5 {; Z0 u4 p
; j M& e2 x4 |5 T6 I: M& Y
if cnt=39999999 then
0 ~* H$ r# [1 E
cnt:=0;
7 @' `, }1 r$ ^' ` @3 c5 x
clk1<= 0 ;
& C+ Y3 }4 X, y/ R0 P# p
else
1 b: k4 H3 x* X# T
cnt:=cnt+1;
' ?# |4 ]1 h# S& D" U5 J% e% Q6 B# ?
if cnt=20000000 then
* x3 O j1 ^1 I
clk1<= 1;
1 Q6 l4 T& o$ Q% V! ?, X8 c
end if;
6 G" m. w/ Z! K& t: g d
end if;
' W0 e9 I( d$ {" ^- K* R
end if;
- J7 Q4 W$ q4 S' q7 f3 L; r
end process;
! f+ t2 i" S8 C, e3 W7 h6 u
5 a. W0 c8 }4 q, O. A4 Y
不過兩種方法都有我第4點的問題
5 f# U( i8 H, S0 c; {
如果你是用quartus2可以分析一下
$ G8 v6 T' ^) C
你的clk40可以跑多快
作者:
gto10620
時間:
2008-5-18 11:02 PM
40MHZ
% m' m0 [: P" e0 y
我想我只能實際去試試看燒在上面能不能跑~
% [0 P! q. d# u( L1 y) s9 J4 S/ n" S
因為我還是沒辦法用電腦模擬出來~
! p0 L+ D u9 o s/ W; S" `! x
感謝你~ 結果在跟你回報!!
作者:
tommywgt
時間:
2008-5-19 12:03 AM
gto10620 別忘了給addn "感謝哦"
. d- o" n- W( F& Y# s+ r
% U- O* G" p# f# K* m$ V
按評分就可以了
作者:
gto10620
時間:
2008-5-19 05:04 PM
收到^^ 抱歉~
' {. T: o0 s& \) e: x4 A
下次清楚囉!!
作者:
tommywgt
時間:
2008-5-19 06:10 PM
現在補也來的及的, 不用等下次了
作者:
gto10620
時間:
2008-5-20 01:53 AM
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~
8 D6 k* `1 v: \0 \! _% W* y
0 _! d# s7 l% M D% Q2 `0 q
我希望我能在這領域學會!!
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2