Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
entity clk1 is1 n3 s0 Z: p, S! I
    Port ( clk40 : in  STD_LOGIC;
5 W: u1 u5 Q* J5 S; j                          clk1  : out std_logic );: q8 r1 Y8 x/ T
end clk1;7 t# }% c! r: s" f; Z) U' Q
' A. G, [# f' U( h  z
architecture Behavioral of clk1 is/ x( f7 W6 X' \, T; u- f' U
signal cnt :std_logic;
9 r$ A( Z4 _$ D. s/ X, Z1 @: Ebegin
* z6 k/ o/ u( d5 R5 ]) g) F. f% J" T4 S: \. G( [0 k: ~& i' E- X
        process(clk40)
- O+ i7 Q" ?; q, @8 }. M6 O        variable cnt:integer range 0 to 39999999;# @. w$ ^+ c$ N+ J( A' e( j
        begin! t8 t) T/ j8 G) |3 d1 c5 N
                        if clk40'event and clk40='1' then
; M. x# G6 L6 a$ _. k                                if cnt<20000000 then" ?1 _7 |7 G: v) n" \0 {8 }
                                        cnt:=0;
% A( Y0 w0 Y$ T# a" H                                        else
# Q- ]; I( p8 E: j                                        cnt:=cnt+1;                                         
9 n! k# }. S; B" h                                end if;4 O( A' F& P- _
                        end if;
1 x( z  A! I6 ]! m                        clk1<= cnt;" k, _" n8 r3 a  e
        end process;2 B9 v7 ^$ Z9 v0 S! [# g
end Behavioral;
5 v% [' d; v2 H( \: }  s* H為什麼CLK與CNT不相容?* T$ l6 E" r2 i( H
還是我的設計是完全錯誤的?. y- e! }( _, a
0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
0 m( G$ f% U# W. E________________________________↑--------------------
9 i" P$ R; r) O% o) h( j          此段'0'                        此段'1'4 y* U) o( y  o4 i0 M
正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好! v* B1 ~9 Y1 ?4 `1 a# z
1.
& a& e  H) c# {3 @請問你是要將40M HZ除頻到1 HZ嗎?
/ T7 H/ f8 E  Q: \7 o2.
$ X2 ]% `/ {- X, L% g* o$ TCLK1是定義是1 BIT的輸出,跟cnt的定義integer不同( W6 P- a( K% B' j. ^( h- q
當然不能CLK1<= cnt,
) R* b, W" G" t) N; S+ m5 _' Q8 {3.( ~+ _9 o5 B. H5 C6 @' R
你的CODE有錯,請多想想
# R$ Y: h3 O' F3 g: @7 U4.- C. w7 O& a# G& x9 P3 B
當你解決上述問題後還要思考& g; U8 r0 @0 j( \1 k
COUNTER要能數到 39999999/ v$ N" p! |  B
這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT), G& t8 O" q. e0 Q8 H; ?: x1 M& T
那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上
0 Z2 r* ^: L: G( ~4 `% D一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ$ A+ I2 N# F) Y* ~& ]: o, y( O- s
除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??
7 M+ A& u3 D9 hentity clk_95 is
7 c. Q: ^+ S/ [# ^, v    Port ( clk40  : in  STD_LOGIC;1 a) a% P$ ^5 Z) |/ R& y7 X5 J
                          enable : in  STD_LOGIC;9 ~% }; M& P' g! J" C# U
                          switch : in        STD_LOGIC;6 F( i6 m) c: @% c" P! |
           a,b,c,d,e,f,g,p : out STD_LOGIC;
. ]- y* H/ y" |! @3 u                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
* ^& }# ~7 S9 m/ [end clk_95;
0 f& n) b" r) K5 Y7 U% ]
! e, @5 J- G, U" i! b# n4 B+ K, d" barchitecture Behavioral of clk_95 is: A( \8 S& Y# n6 S
signal clk1 : STD_LOGIC  ;
- {* D: B. v: k4 Wsignal cnt  : STD_LOGIC ;1 G# c! q7 B; C, y! D
signal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);. y* p5 ^. H7 m( i
signal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);+ ]/ T0 ~( y8 D3 @7 W
signal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
- I, ~3 c* i6 e& Dsignal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);3 w3 s# A; G$ ?) c) _' o
signal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);
2 h7 ]; \. k0 ebegin
2 ]/ H- Y/ l; M4 ^( w3 F  P
  Q7 D8 T( A0 I# Z5 C        process(clk40)0 H" X/ `" L7 k! A( z. F- z
        variable cnt:integer range 0 to 39999999;$ V8 l/ X/ x5 \  Y9 |" T7 J
        begin
4 A6 Q, \' {! t                        if clk40'event and clk40='1' then
0 k. }0 N% Y/ a- F* y' f                                if cnt<20000000 then* u& h( D+ b+ H7 x1 W) u
                                cnt:= 0 ;
1 o) b+ r0 V3 W                                else
( Q6 G7 F; q0 }, W! d; r                                cnt:= 1 ;
5 V% M8 ^8 D. q1 O, A* K1 w7 `                                end if;8 l% W4 Z, K' r2 x. Q
                        end if;
0 U/ \  |/ i0 T; R        end process;
2 K6 _2 L! ]  d- B- b: ^4 y        clk1<=cnt;
+ ^# ~# E4 a8 J0 Q6 t: g! O+ m* ^       
/ K8 _2 b: x, }( K) m' @        process(clk1)% ]6 o8 j8 A1 @/ |
        begin- u( N4 P* z4 F  W
                                if clk1'event and clk1='1' then' @/ o3 r! }5 Q' U9 L
                                        if switch='0' then/ d3 q, k7 W6 @7 r  L; C7 I
                                                count1<=count1 + 1 ;4 @, d3 X; Z3 @7 w
                                                        if count1="0110" then$ j  L8 m; a) g5 B% |2 J
                                                        count1<="0000" ;
6 @' [/ R* a3 m0 U6 @& ]! W                                                        end if;
, I( e1 v' {  A6 ^" B7 A* u& B7 X                                                else( s& n& r* @) @4 N. O# y7 h; y: J
                                                count2<=count2 + 1;
' d2 w6 L, R  B0 N5 o( q2 H                                                        if count2="1000" then2 U+ X1 |- H! g
                                                        count2<="0000" ;
9 v" C8 p( y' }& W6 @3 u4 i                                                        end if;/ [. ]. h2 i( z; ~$ k
                                        end if;               
6 f1 M$ \3 P# y& N! f* Z" Q                                end if;
( y) w/ [! V" v- C! w* V6 M$ J* u        end process;
  r, ?/ R9 d, Y7 \- l4 I後面是我自己要接出去的東西~所以我沒PO!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好" Z% K3 E- e* L
這樣還是有問題! ~( k6 B1 O' H3 n
可以試試
3 I; @% Q! o/ L5 l2 F+ eprocess(clk40)
4 |0 \2 R3 |2 _        variable cnt:integer range 0 to 39999999;* \7 u5 v0 V: w$ `" R; w5 v; j5 e
        begin9 g$ F# `$ r) X* M0 i$ W
                        if clk40'event and clk40='1' then
6 d3 w7 s& b+ Y, Z9 F, T                                if cnt=39999999 then
. @$ C1 L* p7 [- F) ?                                     cnt:=0;0 W8 D# S; L, e; Z2 A. ]( W
                               else, v7 U3 B8 a3 G  @* w
                                  cnt:=cnt+1;
# I7 o# Y1 \: z7 g                                  if cnt<20000000 then7 J6 b5 F) |8 O
                                       clk1<= 0 ;: a* j5 A8 [2 @  }3 P5 {
                                  else ' M( |1 y3 j4 D$ @0 N
                                       clk1<= 1 ;
# ?* I7 D$ ]& D7 v6 P7 H6 ~9 y                                 end if;- O! X! y. A, ?+ J$ y2 Z( h
                             end if;
& u0 \  y3 l' K0 q& S                        end if;
  _8 @6 W* i5 U3 |        end process;
% k0 q# D5 s% S8 C0 c      
( H0 }$ P5 ]# R或者
& A( H* j* W' M" N7 I% Rprocess(clk40): f% N) Z( D' T0 i
        variable cnt:integer range 0 to 39999999;
! [/ w3 L# U7 \$ W0 B        begin
' K! _% ^1 E, ?! d/ w  ^7 j: V  x                        if clk40'event and clk40='1' then" I" J1 M1 F/ {, c+ U: A  S
                                
5 j* t) C8 g% Z" y  O1 Q/ T                                if cnt=39999999 then
1 U/ ]4 b5 U2 h' f. ^6 v3 _                                     cnt:=0;
' N8 X6 ^$ `% o                                     clk1<= 0 ;  o3 K* T9 g# t/ [9 A2 T$ f
                                else, K( Q* b2 f; K# e8 A7 r" S
                                     cnt:=cnt+1;
2 U! n9 p) R8 |: I                                     if cnt=20000000 then
+ r# ?' U6 ~' x( S/ P                                         clk1<= 1;
4 w' t" j$ P; f. \4 w5 W# f/ R) g) P- M                                     end if;, d: R3 j% T# W+ v+ P! g' y& d& a
                               end if;! S8 T4 R/ H0 f% j
                        end if;
# F# Z6 H( {! Y) c8 d$ W        end process;+ m4 F+ V% U# g" @* e. M# T

8 z# ]4 U' }0 Y% I- A不過兩種方法都有我第4點的問題1 {9 n' B) B; L) h6 |
如果你是用quartus2可以分析一下
, I! [* R1 o/ i- A; T+ J你的clk40可以跑多快
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ4 E( _7 @; t* d' x7 g+ H
我想我只能實際去試試看燒在上面能不能跑~
) X# H. Y9 m- y4 V4 J因為我還是沒辦法用電腦模擬出來~; f" B6 \/ F0 g0 r
感謝你~ 結果在跟你回報!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦"
) b( n% O/ s. A6 y3 Y& }; n2 v+ y3 J
按評分就可以了

本帖子中包含更多資源

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

x
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      
7 \: E1 J7 B0 n, H7 @5 e; g下次清楚囉!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~
8 _  J* d6 m# ]2 c4 f  Q3 [+ A3 O5 O( c8 J- g5 ~- X
我希望我能在這領域學會!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-3 12:48 AM , Processed in 0.123516 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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