Chip123 科技應用創新平台
標題:
精準式除頻設計??
[打印本頁]
作者:
gto10620
時間:
2008-5-17 01:32 PM
標題:
精準式除頻設計??
entity clk1 is
& q+ i4 ]: S4 A9 y$ n* Y+ m9 P
Port ( clk40 : in STD_LOGIC;
$ q7 [0 O* L% y! H, N+ ~* p! c2 a+ k
clk1 : out std_logic );
9 D$ ~ J7 w' {; u
end clk1;
; C5 p& X4 ]) B, [, @7 J) S4 L/ C1 O
8 u3 }; n, A4 w
architecture Behavioral of clk1 is
& k6 }+ d5 Q, e& Z- d9 ~
signal cnt :std_logic;
4 i: [$ k8 r* ?/ h# i* r4 B0 j% `
begin
) }0 r. M+ @8 C' H
' E. o! Y# Z }3 D4 H, w" g. u. u
process(clk40)
5 u9 a. z4 y" _
variable cnt:integer range 0 to 39999999;
5 e- o0 r5 k! A3 ~* a! `" a [
begin
/ v3 L2 f5 Q t5 J/ i
if clk40'event and clk40='1' then
/ I$ v' h; L9 |+ M/ }- S' G. T
if cnt<20000000 then
' W' T2 D5 ~9 j9 d, |% x
cnt:=0;
9 {: }/ U6 d' {6 h
else
- |3 N: @( F+ o- Z. V$ C3 v h
cnt:=cnt+1;
2 c, ]3 J" h9 s3 _* J$ e! y5 i
end if;
6 q# W$ e# X% P
end if;
' w! x* h+ k& K8 v2 |* J
clk1<= cnt;
2 {& I/ B' Q" H- R# X6 I i1 O
end process;
) O9 T# n8 f% Q) h" `9 p9 }1 M" ?
end Behavioral;
# m( Q3 _! U+ @# _9 p6 i+ O
為什麼CLK與CNT不相容?
& @ S( N" d5 y4 \- V5 G
還是我的設計是完全錯誤的?
- e% H2 R: K0 y B
0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
8 w/ j1 ]& l6 b
________________________________↑--------------------
8 p4 D( V2 Y& E( `! u5 [
此段'0' 此段'1'
* a2 J/ o# T0 S: u i
正緣觸發~
作者:
addn
時間:
2008-5-17 11:00 PM
您好
7 d2 F: a c0 @: l
1.
8 A3 x* h1 z6 R. M5 l6 _
請問你是要將40M HZ除頻到1 HZ嗎?
1 ]& |4 N8 R1 P9 d7 g
2.
, S# C' R- s' `( {, h- T: T) \3 l
CLK1是定義是1 BIT的輸出,跟cnt的定義integer不同
- u0 e5 s H O
當然不能CLK1<= cnt,
! Z3 y8 ?# K; W
3.
4 m# l( b$ h2 B1 I+ X
你的CODE有錯,請多想想
" Y! J) W5 l; k1 J. e# {5 z
4.
/ G" u* j: r% X2 `. }
當你解決上述問題後還要思考
6 v$ j- K% n4 b
COUNTER要能數到 39999999
" W2 g4 J8 r: @% D0 P# K
這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)
5 v& T3 J$ F; ?8 T
那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上
2 O6 h3 {- U' A* P, e& z1 y8 `! Q
一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
作者:
gto10620
時間:
2008-5-18 05:13 PM
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ
# J1 s2 c: r, l
除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??
6 }5 X5 M( f" D ^! N1 O
entity clk_95 is
" T$ \- J# T4 B& d
Port ( clk40 : in STD_LOGIC;
' E1 J4 H: ^; ~2 R% f3 w
enable : in STD_LOGIC;
L+ a; W! j4 s0 ^
switch : in STD_LOGIC;
6 B- s0 K1 J9 u) \/ W
a,b,c,d,e,f,g,p : out STD_LOGIC;
$ { k8 H) t# i- u% Y% e
SEL : OUT STD_LOGIC_VECTOR (5 DOWNTO 0));
' I( ?0 R) Q- \6 t
end clk_95;
/ b% z) D6 t3 P3 f# O/ \+ ]
# Q0 E! { v/ ?. k ^* Y
architecture Behavioral of clk_95 is
7 L' e& z0 N( t$ I7 u6 e; m! |. I0 w, D
signal clk1 : STD_LOGIC ;
+ s2 j+ T* C. ?
signal cnt : STD_LOGIC ;
) T: y5 z% V) e. f3 V
signal x1 : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
2 Y6 a) v4 l; g. D P
signal x2 : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
& d* l( s9 J5 `) l" s
signal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
+ h- \/ t% Y3 y! n( r: I5 a9 Z& a
signal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);
3 b3 F+ t5 u1 R, T+ |
signal y : STD_LOGIC_VECTOR (7 DOWNTO 0);
5 D9 d. e0 K: U2 p
begin
% J) R3 ]+ V k- c$ z
8 v+ X" y7 \8 q. Q( @
process(clk40)
6 G: R0 y" d1 F2 [- q3 g
variable cnt:integer range 0 to 39999999;
. B* ^, A% R+ X5 ]2 v: ]$ l
begin
X: W; S0 f6 R( Y$ I
if clk40'event and clk40='1' then
, W: S+ c) V5 s& k! l: k
if cnt<20000000 then
% S7 B' o% i7 M" t' s
cnt:= 0 ;
9 _0 ^" k! l; n$ a1 L% i/ R
else
2 d5 E2 X' a+ @+ H" I8 b) c
cnt:= 1 ;
2 K* I$ r2 y. M& K
end if;
8 G1 j8 J7 u# p& {
end if;
, Z0 n! q" b0 S+ _2 P
end process;
# J1 k$ d3 u4 |/ k
clk1<=cnt;
0 I) b: \- H/ P8 t3 Q! m% p
) F+ D9 g' {9 f4 M7 S- F
process(clk1)
0 N" T. G: x' _# e# e8 |, A
begin
! \( h6 V! ?/ ~% J% x
if clk1'event and clk1='1' then
3 d3 M w: G& |% e) [! [, O! }7 s8 @6 f
if switch='0' then
, Z! _& z& k' L. I
count1<=count1 + 1 ;
L' r1 e( f2 [' V% G4 j! V% U
if count1="0110" then
% H& c: F2 N+ i' `# X9 c. J
count1<="0000" ;
( _, F2 v: m9 P2 ~4 }
end if;
' G8 R. ~ U* V, @# b
else
0 q- h% ` |8 e3 X
count2<=count2 + 1;
6 F' D* N3 S; r% A0 O
if count2="1000" then
$ M4 u. G2 ?5 P1 m6 O
count2<="0000" ;
( a/ X; y% j, X
end if;
& r8 @# t- r( d: k# A! @5 e: M
end if;
3 t" T f, U2 |4 h d
end if;
n$ W; T9 r. s* ^8 V/ G) a d
end process;
& ^9 V5 y0 o* T" A+ H. c
後面是我自己要接出去的東西~所以我沒PO!!
作者:
addn
時間:
2008-5-18 05:58 PM
您好
( q! }# i% k; o6 }5 ^8 e1 f3 { B
這樣還是有問題
6 W m$ V, o4 G$ ]+ F# y0 B
可以試試
; k' A6 i" W' R" n
process(clk40)
5 P7 s) u9 O" |0 F" S2 D$ A
variable cnt:integer range 0 to 39999999;
+ ~& ~# h) P/ M
begin
6 t$ |1 y# Z% V G" V- K; k
if clk40'event and clk40='1' then
5 A7 e) n) R( E5 R1 P; O$ b4 [
if cnt=39999999 then
' A1 Z) [0 q% N1 {* F/ c
cnt:=0;
9 Z: V9 _8 l$ o: L3 c
else
# e, T2 l- L; u+ M7 E! Y2 [9 Y
cnt:=cnt+1;
7 V9 p; A2 @, p4 X' v
if cnt<20000000 then
$ V4 w, g0 E# ?
clk1<= 0 ;
p' V6 b2 w5 C( E3 P/ p: q
else
2 J. o4 h% t' ^# J7 f4 C9 ]
clk1<= 1 ;
. T D! Y6 o6 n; y% v
end if;
8 j. s# L4 a% M6 V* j( e
end if;
% M1 y0 ?3 H0 w$ ]! `
end if;
1 _0 @; W0 S6 W
end process;
3 M4 d- y/ [3 j2 s' p0 Z6 _9 R
& u# Q. P& t% ]" a. @
或者
: q2 \3 f+ q9 T8 R+ T
process(clk40)
: P! g$ u" Q5 L+ t: _3 X
variable cnt:integer range 0 to 39999999;
) F2 T2 O, {; r" m4 ]
begin
3 V. x& \: {' G% L5 U
if clk40'event and clk40='1' then
, N% G# j) V6 K! M3 S: ?7 ?5 d. k) X
- a O* c6 C& E1 o7 p
if cnt=39999999 then
. n$ R7 ^- k) a3 h8 g2 R1 _
cnt:=0;
" }1 h; V' n8 y9 g7 L& U9 O) k: {# i
clk1<= 0 ;
5 m q% ?8 y6 w7 V: ?
else
& y% ~" C( o3 j
cnt:=cnt+1;
5 O, x! R" ?' ?7 T
if cnt=20000000 then
- Q7 y# U" F7 Q1 Z$ w* P; ?
clk1<= 1;
/ m- [4 i- g% a# v7 u
end if;
/ k8 G% Y0 Y. p2 _8 t( O
end if;
4 p% t6 J* N8 V( c
end if;
`( X z! ^1 j3 `
end process;
- V0 E: r: B( i" l! k! R2 P% x
7 Y7 K& J, n8 s/ V; f
不過兩種方法都有我第4點的問題
. J( y9 R: N+ S2 {( X) |1 j h
如果你是用quartus2可以分析一下
, B/ K/ r! G. R
你的clk40可以跑多快
作者:
gto10620
時間:
2008-5-18 11:02 PM
40MHZ
( S% U. O& D6 J1 t/ V1 O
我想我只能實際去試試看燒在上面能不能跑~
$ ?4 S5 T/ ^' ?
因為我還是沒辦法用電腦模擬出來~
+ V+ }) x" ?. T! P( _$ y
感謝你~ 結果在跟你回報!!
作者:
tommywgt
時間:
2008-5-19 12:03 AM
gto10620 別忘了給addn "感謝哦"
# @/ i8 U) r$ }* R% i; u
: `6 R4 R6 G+ Q v$ u
按評分就可以了
作者:
gto10620
時間:
2008-5-19 05:04 PM
收到^^ 抱歉~
# u( M: y. D: i. @5 M4 d/ S _
下次清楚囉!!
作者:
tommywgt
時間:
2008-5-19 06:10 PM
現在補也來的及的, 不用等下次了
作者:
gto10620
時間:
2008-5-20 01:53 AM
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~
0 b5 n5 u$ i& g8 i
% M9 l0 M: V; J$ v" v2 i! F3 K
我希望我能在這領域學會!!
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com.tw/)
Powered by Discuz! X3.2