Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 精準式除頻設計??

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
entity clk1 is
8 d' U4 c/ Z$ Q$ u/ q    Port ( clk40 : in  STD_LOGIC;
6 H' o( t' l5 M. q. _$ L+ p& X                          clk1  : out std_logic );- C# O0 L: i% m1 x  ^0 X; D5 r4 \
end clk1;
% g. @* X: X4 X6 f/ H. s
; x! n! Y, w/ ^. h- L/ O$ Parchitecture Behavioral of clk1 is
! S+ u5 ^+ `% wsignal cnt :std_logic;
- z- |9 [' U" [$ G5 V8 S" Sbegin
3 S5 |; N7 X$ W5 j
3 ], @9 ^+ V1 |) U        process(clk40)5 s- U  }. w, {( M+ g, x
        variable cnt:integer range 0 to 39999999;! V+ Y5 z7 i, R: I
        begin' E% U6 g( m. s: k* V" ?( f* Q
                        if clk40'event and clk40='1' then
; P$ f% G* V% {0 `8 R+ Q1 w                                if cnt<20000000 then% x! L5 v' Z& e: \) D& R
                                        cnt:=0;) ?' K; e& @# j' n
                                        else
; B% j- E2 @( ~$ Q2 {7 j9 N& T                                        cnt:=cnt+1;                                         
$ a! Y' x; ?# \3 Z$ Y# q7 u6 K" ]                                end if;! x. |6 J6 I! P
                        end if;; n3 F5 l% E3 l: K- U. W
                        clk1<= cnt;7 q+ G4 E  i- h
        end process;7 H6 z/ H8 e; \: O. ?
end Behavioral;
0 K( k9 l; y' n2 b為什麼CLK與CNT不相容?8 p1 N5 b& t1 E. `: E. k4 c, m
還是我的設計是完全錯誤的?
( I# k! C5 b7 N& t3 q5 F7 N; d) |) v0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ' Y# g3 Y$ L7 E; q) g. T( y
________________________________↑--------------------
, ^5 m" Q9 i) u4 G          此段'0'                        此段'1'
; B* h( I7 s" u正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好
% U! c7 V! o/ s% q: y; V6 L9 q1.
  f! @  v9 a: ^% {請問你是要將40M HZ除頻到1 HZ嗎?
1 A: w/ |  F: [. [/ g3 w- r2.* |$ s. h, t- F( P9 T1 G
CLK1是定義是1 BIT的輸出,跟cnt的定義integer不同1 [* \, E4 w+ @" Q+ w/ P
當然不能CLK1<= cnt,9 S0 p. g5 k2 P' s$ g: s7 A
3.$ Q' P2 ]2 W% y% o' I$ ^9 x$ t4 |
你的CODE有錯,請多想想
! }' t/ D' ?& \1 c0 b; C4.# ]2 X! ^0 S' }& ~4 `6 W9 C; v3 j/ i
當你解決上述問題後還要思考" y8 Z8 D4 L) _3 S+ R) ?$ o
COUNTER要能數到 39999999
: G8 Q% n/ M& t" }這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)9 i7 W/ m, z/ c# W% O7 M
那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上/ W/ q! a& h4 i" b
一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ, Y- y( B7 P9 a+ q- e/ o
除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??1 t0 X3 v; r4 h7 [: n
entity clk_95 is
& G' U- C, C: w6 W4 r3 I0 S# o! ~% H    Port ( clk40  : in  STD_LOGIC;5 Q- b* B: P; N% u6 D0 q1 P1 [
                          enable : in  STD_LOGIC;0 W( ^2 r( g2 C0 \& X0 E
                          switch : in        STD_LOGIC;" h  z& h% h0 k
           a,b,c,d,e,f,g,p : out STD_LOGIC;
; T3 z6 m% c4 g/ ?* A0 H4 f                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));" z  J" X0 [" O
end clk_95;# i7 G! z" c( q4 `: [8 o0 g

# c( g! w3 G. e7 M/ Tarchitecture Behavioral of clk_95 is
0 h: C4 p( n' ^- F8 t5 C- psignal clk1 : STD_LOGIC  ;
/ ]4 r8 P3 n1 h6 isignal cnt  : STD_LOGIC ;% F) L9 R  `! n4 f9 c  h  d
signal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);1 ^1 t2 u- g$ b( G6 w3 K  g% n
signal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
! L- K& w/ U) v1 G, L9 k( Vsignal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
; {& m1 Y! S2 f- i; f7 Xsignal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);$ q2 Q( x4 j3 ~( n2 X) s3 \& i
signal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);
+ ^5 k5 `  k- f9 b# b4 Ebegin; Q4 }+ m4 \) }3 C+ \+ l/ ?
' h8 L3 n# C7 \4 n& |/ X
        process(clk40)
  ]' K, J! k! Y( C1 E        variable cnt:integer range 0 to 39999999;
- x9 {$ a8 `" a% {$ d" Q8 E        begin
/ d+ Q9 S  {- P* `: ?7 [7 [                        if clk40'event and clk40='1' then
% e& ^- V# z7 S- R0 z                                if cnt<20000000 then$ b9 l) r. I& |$ h' u
                                cnt:= 0 ;
7 J6 A( t% e  i7 d  k/ l                                else * t) G$ Z. j" D) f4 \
                                cnt:= 1 ;
1 \) \6 O8 h* ]  V+ ]) D. u& v                                end if;
" Y  l' _% p( m5 g                        end if;
4 w, X  c. b1 E7 V) k        end process;/ n! R) Y$ L! @% F2 I8 a& t9 s- R
        clk1<=cnt;0 ^4 g% F6 I& i9 o$ D
        * n6 V5 a2 K9 f; M' L3 W  \
        process(clk1)
" h- }' ]$ D6 r( e+ _        begin
: x) Y7 k  ~3 w                                if clk1'event and clk1='1' then
, k$ ]& T, i$ k9 T+ e, O                                        if switch='0' then
- j- b! I1 k6 W2 t                                                count1<=count1 + 1 ;. M$ F( U- h  |
                                                        if count1="0110" then3 b  S+ O, F' ]
                                                        count1<="0000" ;
2 A  u- u$ }% |8 m3 O  V                                                        end if;
7 T& G! j* w" E0 H. p; K; b( |                                                else* x# g0 y- n0 u# s7 r
                                                count2<=count2 + 1;
) p* X! {, |6 }: K                                                        if count2="1000" then* _3 R  q8 w. E- V  ~
                                                        count2<="0000" ;
, k+ y( F; h. K' A                                                        end if;1 N$ c3 e7 a9 ~/ f3 |( c
                                        end if;               
& A3 Z7 d, ~9 K* L" Y4 H$ Q/ y                                end if;8 S/ n5 b, F$ s1 K- O! h. z3 p
        end process;8 G, c9 O, g$ T8 @* |' Y! i  Y
後面是我自己要接出去的東西~所以我沒PO!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好, d. @  D, A( @, @3 Q2 t: H/ d/ H
這樣還是有問題
' q$ K+ k* ^4 e3 M可以試試
) H. B) a6 F; \& Aprocess(clk40)
* I9 L2 ?$ A' U1 F# R1 y; X        variable cnt:integer range 0 to 39999999;4 Q8 i9 g6 r+ {
        begin, X" x; u0 @3 G1 L
                        if clk40'event and clk40='1' then
9 L) e: h# z! j9 Y# P1 Y                                if cnt=39999999 then2 i' h, k; q# b8 }3 X8 V! l
                                     cnt:=0;
) E& t4 |2 V+ a1 U6 Z" O" V1 ~) a                               else  _8 p7 `9 ~/ H. p5 Z* x
                                  cnt:=cnt+1;$ W, F2 K1 f4 z6 ^
                                  if cnt<20000000 then) c& L" k) e" c/ [* D2 j0 f  V, x
                                       clk1<= 0 ;
7 @* x0 Y$ ]/ i( w4 V: i                                  else ; I' s1 j) y. ?! f
                                       clk1<= 1 ;% W5 S+ ^1 z7 I
                                 end if;
) Y# b5 g& _. s0 N/ ~) y. C$ I                             end if;: A! E* J, x* ?; j" o* T" ?5 j
                        end if;" r8 H! r( x2 c% O  ]% Z
        end process;  b% z5 b+ s* j( o
       ( F2 _' _( n$ B, Q: Q- ?
或者# T/ ^) _% V) h; W
process(clk40)
7 N% }( e7 O6 q; s/ }        variable cnt:integer range 0 to 39999999;
! x7 b1 Y. e6 d/ P5 P, i        begin
* m' v! S( L5 t& ]9 i* K7 s- s                        if clk40'event and clk40='1' then" u8 S) L7 a- X6 \  a( j* {
                                
6 _2 S4 O- q3 X- o6 O5 D                                if cnt=39999999 then
7 p0 s5 K% f. b1 M+ F" \                                     cnt:=0;
& @* p, J* y: k  F( X                                     clk1<= 0 ;3 E& J; d; l# _7 g2 N- ?  r: w
                                else
4 ?( }: G) f" z6 D: S- d                                     cnt:=cnt+1;
$ {: r1 T3 S9 V+ j                                     if cnt=20000000 then9 a3 s0 W  ~" m( d- }
                                         clk1<= 1;9 F3 K1 c% }* P, p4 d6 N
                                     end if;
9 K- k- H9 H& d9 n: s/ O                               end if;
' }# S( o5 Y; g( k9 ^                        end if;
- M2 x0 k! y3 i        end process;
: G# j2 R* F9 D" z, _
/ e0 E$ g" o! V) K9 L3 K0 q# \不過兩種方法都有我第4點的問題; b4 o$ \! Y& O! G/ E
如果你是用quartus2可以分析一下
( S+ k' z7 I" _0 Q& u$ n' }# p  E你的clk40可以跑多快
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ
3 s. F4 T/ f  Z, F我想我只能實際去試試看燒在上面能不能跑~
  M& o+ f- P1 B# \+ t* A因為我還是沒辦法用電腦模擬出來~
, k7 I! I9 W4 m* i4 }: }感謝你~ 結果在跟你回報!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦"
) O* h  L3 w9 V  s+ g5 g
" P0 q/ b9 h& O; b6 |: P. Q+ {按評分就可以了

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      # O( |* |; x- d, n  N
下次清楚囉!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~
, W# U2 Q/ \0 m6 G+ p+ K! g; w& N2 r( m- [* |2 X- A
我希望我能在這領域學會!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-15 04:25 PM , Processed in 0.139517 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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