Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
entity clk1 is
' {- R. r4 L3 X    Port ( clk40 : in  STD_LOGIC;
6 I& K- s7 _& @  A$ n  @                          clk1  : out std_logic );
* F6 Q, {- W" k* `3 tend clk1;
7 f9 [% e# G/ s. S7 h9 V8 R* `
) C# @- b0 e/ marchitecture Behavioral of clk1 is
/ A% R) X' N: Dsignal cnt :std_logic;
& m8 z/ r9 M. p; S" hbegin
* s3 E* V: \( g# m- E/ z7 E6 X) k$ R% D
        process(clk40)& E- W* F2 r: i. D+ S
        variable cnt:integer range 0 to 39999999;7 i$ j+ a$ Q! ?" Z6 N
        begin& o! z/ D" ~0 S' V: E* {# k. r
                        if clk40'event and clk40='1' then
8 i* k; ^3 l* ]7 z                                if cnt<20000000 then5 O! O2 a+ ^% b" b: r
                                        cnt:=0;) u8 [/ J- ~* C3 M& m
                                        else/ N( e  J# [- M& `  i4 A
                                        cnt:=cnt+1;                                         
, J# ~7 d# @6 u; A/ ?; \                                end if;
7 n- p! j5 a$ K# M) {                        end if;- s" E% L- [" P
                        clk1<= cnt;
& A0 ?- l0 J3 N+ B) k0 S, b3 L        end process;# N' N: h' q: w# z1 N
end Behavioral;
6 C1 a" e4 \0 s$ v& Y3 g0 l為什麼CLK與CNT不相容?
) z$ Z( ^& E4 g. N. n/ M- l  z0 x/ b7 y還是我的設計是完全錯誤的?+ i$ e9 }0 |' ~, N9 Z0 \; f
0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
9 M+ s+ V( u; y________________________________↑--------------------! q0 A$ g5 t8 K1 N' g; G
          此段'0'                        此段'1'- ]' t1 r+ J, ?  I7 U# b7 l7 A4 b
正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~
& [7 x1 c+ S3 p" ~
# \& j( {, ]. n8 g7 c5 J我希望我能在這領域學會!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      
0 b. u$ X) x0 k& l  v下次清楚囉!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦"
' f5 X# A. v3 }9 y1 @$ t5 J1 A' \/ a8 A, N. P) ]
按評分就可以了

本帖子中包含更多資源

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

x
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ' x/ a6 Q' q0 n# a& t" Z
我想我只能實際去試試看燒在上面能不能跑~
+ \, K1 j6 ^- `8 S9 W1 E1 F, g! Q' [# K+ u因為我還是沒辦法用電腦模擬出來~2 L" s$ v9 b8 q  h4 g8 z  s: Q
感謝你~ 結果在跟你回報!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好
* Z+ I! g% P/ m* g, [9 u這樣還是有問題9 x3 f& o  b+ Z" C7 n, i1 B
可以試試+ @) ]- m5 L' G0 x4 K3 |/ p
process(clk40)0 s5 Z  E( W& e8 }+ N. \
        variable cnt:integer range 0 to 39999999;" ^3 u6 a5 D* m% ?  Q  B$ u
        begin1 U; L1 I( R+ {3 Y
                        if clk40'event and clk40='1' then
" a7 S' h: y& k* f0 J: S                                if cnt=39999999 then
/ L- ?2 p8 b2 z; m" u1 t                                     cnt:=0;8 g2 @" y0 J& ]# X; {
                               else
* `5 b1 [4 a& G- ~# t9 u                                  cnt:=cnt+1;, B5 K5 Y/ Z8 O6 }
                                  if cnt<20000000 then, x9 ~, X8 f, Y6 X8 \+ q
                                       clk1<= 0 ;
3 m# R; t6 }& \- Y. b" ]1 u! z                                  else
+ p+ V' m+ R) k- l' i: E/ |                                       clk1<= 1 ;2 b: \( {! E- \. S) y
                                 end if;9 L* L, b" x; N6 A
                             end if;( ?: k  e' E, L8 C/ `
                        end if;
. m7 {* S' A- G0 [$ W; o        end process;
: G; [1 ~. z& K8 X0 y6 v' l       ) N6 {$ C  q( N; a
或者" m8 Y; G/ h3 K' }- p) Q
process(clk40)
: w) B. X+ _7 ?        variable cnt:integer range 0 to 39999999;- M+ T; v$ @- v& w3 c$ Z2 p  k
        begin
( |0 j# `7 [. O                        if clk40'event and clk40='1' then
" O# u2 I4 e4 f9 e" V8 S, a$ a  K4 J                                + e: @8 i* L( V( l  C+ H
                                if cnt=39999999 then
. {' t5 d' u9 S# P                                     cnt:=0;) Y) v( f0 _" y2 U2 ~
                                     clk1<= 0 ;
+ ~* c- g, ^1 {/ i! C2 I2 M" ]                                else3 Q/ R0 R& Y9 O4 d. F: t
                                     cnt:=cnt+1;7 k& u; Q2 x" C0 y" y
                                     if cnt=20000000 then+ n* T0 w5 X; T# k/ z2 Z0 n4 P
                                         clk1<= 1;8 s/ G& J0 S2 j! j
                                     end if;) I7 u5 |2 h* x1 i  R
                               end if;" H! F% g& x& M& ~
                        end if;
5 q! h, e5 V( q1 G& S3 `$ h        end process;, E; g9 }# Z5 U% F
- T3 u/ w! ]9 F. q4 t3 e
不過兩種方法都有我第4點的問題9 I: p0 D$ ^- e) z0 I" O$ J
如果你是用quartus2可以分析一下$ r3 O' F; b$ {" Z' ~2 R4 k3 M
你的clk40可以跑多快
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ
& b) T% m2 Y4 Z. b5 K3 H除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??
6 s5 h! [3 |4 i) z# t/ `entity clk_95 is
9 s0 ^0 l0 Q. z: `; I5 h" a    Port ( clk40  : in  STD_LOGIC;
; P5 \4 u' j, Z5 c: E. F- \                          enable : in  STD_LOGIC;
$ I# U1 x8 b! f- ]# u4 g7 d                          switch : in        STD_LOGIC;, X: g3 }5 x. b
           a,b,c,d,e,f,g,p : out STD_LOGIC;
# d2 c7 c8 F8 P: N$ D: S                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));" R# m% p  Z3 K# {& \& r- b
end clk_95;( X) l) A9 L' r2 o
6 H7 [. y+ o, T- }* {6 `6 {9 o* m
architecture Behavioral of clk_95 is
+ ^) G* ]5 y% l4 j4 ?+ Csignal clk1 : STD_LOGIC  ;( A- n# y) ]6 Z1 f
signal cnt  : STD_LOGIC ;# r2 d4 r+ l+ m9 z
signal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
9 t1 j6 s: o" m7 E6 v- H, Isignal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);- ]" Q2 B1 e) s2 c: l1 L  n
signal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
6 P' V" d$ }- R2 \& ?/ vsignal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);
' [, |1 O" x8 Q5 P$ Xsignal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);
+ Q6 G2 W5 w. G* A: pbegin
, m* @5 l2 ]& a  }
7 m$ S3 I3 \/ {4 v        process(clk40)- G+ m2 n* s4 G5 |7 U% L0 p7 }
        variable cnt:integer range 0 to 39999999;
0 t$ u+ h. f$ R9 W/ N% \4 B0 z1 N        begin
0 q& d+ g8 K4 v. v; z( s                        if clk40'event and clk40='1' then( v1 ]; k9 B6 d0 P& ]$ \5 f
                                if cnt<20000000 then* Y7 ~3 T- o) j* h$ ^5 v" X
                                cnt:= 0 ;
; P  p9 }9 g/ F$ [                                else 9 J, L# z3 R! `; b
                                cnt:= 1 ;# r0 V- J8 s. F- J
                                end if;! \9 |. i! X% f# W8 r, b: |$ K
                        end if;
1 k/ z' z4 i# p8 q/ }( P6 y        end process;# A: g$ l' ~1 L9 M& X5 D" \6 o: D( ^
        clk1<=cnt;( g# \$ m  l8 `
        " R7 u8 r- J" F! `
        process(clk1)& W. ?$ J5 u( {% F  Y% z
        begin. @) c( U9 U9 m
                                if clk1'event and clk1='1' then6 ]4 O1 `( t% M- J5 T" W0 V1 C
                                        if switch='0' then$ \6 o7 B: \; ~& r7 s/ B- G
                                                count1<=count1 + 1 ;
; `3 U3 N9 d" D& Y9 a5 L. u5 ^                                                        if count1="0110" then0 w( k) _) B$ b. W! z/ a" l
                                                        count1<="0000" ;
2 o# v2 d3 q- n3 y9 b                                                        end if;
3 e% f' }$ x% h4 x                                                else- Q% T7 t& \( [0 [! E2 E5 Q5 X' O/ j9 i7 J
                                                count2<=count2 + 1;
  v( S4 O9 d! m4 ^/ I+ H# s' u                                                        if count2="1000" then: Q# _7 G8 _9 u: V/ E
                                                        count2<="0000" ;
. A( f+ s8 S7 l6 N$ r* p                                                        end if;
2 G+ o% F6 S6 ?. y7 e( X9 v                                        end if;                6 s& M4 h5 ]# a
                                end if;; M$ }) V7 t7 `, X' y
        end process;
; l" l8 v, ?* }6 V! F- i3 F! t. T/ o+ C9 {後面是我自己要接出去的東西~所以我沒PO!!
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好
( G9 I: Z$ @( }/ P1 M& g+ X& p1.
2 p  M* ~$ ?+ j5 I! ~3 _: s% A3 ^/ n請問你是要將40M HZ除頻到1 HZ嗎?
4 k* B+ K' F7 J2.. v) ]' W, e4 `+ ^" o
CLK1是定義是1 BIT的輸出,跟cnt的定義integer不同
7 l$ U5 j' V6 v# q  W* C4 o當然不能CLK1<= cnt,
( P- f/ W! i( b2 G0 c3.
5 F5 L3 ]( R: o  c你的CODE有錯,請多想想
' k* s7 V" Y" A; n5 y4.
- Z; n  t6 j% l) ~' Y5 H當你解決上述問題後還要思考; i) ^" j- C, q8 B" t6 M
COUNTER要能數到 39999999
3 O9 |1 W" F' H! N& x) `) g# X: B; H這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT). K8 ?/ s/ \+ ]2 C; N
那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上! c$ j/ E4 [2 l8 z3 z% A
一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-28 03:12 AM , Processed in 0.169010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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