Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
entity clk1 is
" ^) H  M/ D. e1 m/ O    Port ( clk40 : in  STD_LOGIC;
# d- ~& `+ j( C  L9 ~( d                          clk1  : out std_logic );: m6 N# ?) O; o; }4 z
end clk1;6 @/ D+ j( C5 ~3 u

. b7 }7 y8 Z/ _3 `- g- barchitecture Behavioral of clk1 is" f. F( y) ]4 D8 x5 I5 z) D; ]
signal cnt :std_logic;: \6 m% q8 k. s, @- f8 Z- q" d
begin# Q$ ~8 w+ m& r3 {
# B, a2 L6 y( v$ Y
        process(clk40): a7 ?8 @6 V! S' h8 z- ~) c4 r
        variable cnt:integer range 0 to 39999999;) K- C8 P' {/ r" Q
        begin
9 _$ ?" }* A8 N7 y3 {+ K                        if clk40'event and clk40='1' then. Z$ F  ~1 j9 C* ]* a
                                if cnt<20000000 then; i5 _. n& m6 }4 u
                                        cnt:=0;$ b* ?/ F6 v$ Z1 A# z; w: ~
                                        else
) t& p1 m  v. u( f0 T) H                                        cnt:=cnt+1;                                         
; W2 c# g; @  Q9 U$ j3 k3 i! ^                                end if;; w, q0 Q' y' H$ q# e
                        end if;; G% i! y2 G% T' ?. c2 T* d0 n. b
                        clk1<= cnt;
) J* p5 W& M' R; E4 u7 V: |2 K) r/ d        end process;
. H7 S2 I% r3 f1 R9 ?3 tend Behavioral;5 u; e2 x( L1 X6 _
為什麼CLK與CNT不相容?
9 M) l/ k6 Q& l2 A還是我的設計是完全錯誤的?
: v; |# R* D! s% C0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
0 x1 J. m( S. R6 l, P7 w________________________________↑--------------------/ J1 ^2 W& D. j
          此段'0'                        此段'1'( `& k  c: d. I) B- s9 {5 f! i
正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好/ {7 F* z- g1 j
1.
# D7 X. y7 b: X請問你是要將40M HZ除頻到1 HZ嗎?8 M' U* r. @1 {* E1 h9 u
2.2 O7 J, g1 v7 ]% R0 A* |" v
CLK1是定義是1 BIT的輸出,跟cnt的定義integer不同
  h5 Q, S* D% B2 Q9 c: J, ?7 u* C4 Z當然不能CLK1<= cnt,; w( n9 M. c+ j4 q* Q9 N( ?
3.  h2 b/ \! K5 n- v7 [" O  ~1 f9 u8 ^$ b
你的CODE有錯,請多想想
  ?' r5 c) Z  o( Z& L7 H* `; l& d4.
8 S1 [) U; G/ `' y0 h3 F當你解決上述問題後還要思考" s6 G: U1 H+ Y  R, a- w$ L$ \$ A5 [
COUNTER要能數到 39999999
8 u' _$ |) L; i( [這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)8 C2 L5 g1 g% C! F: a$ y
那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上$ g0 c3 A( U( K+ ~
一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ
1 l# E5 d- E3 H) g' C除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??
+ V- r$ ~( v0 u- ?' E1 Y4 Fentity clk_95 is
' r7 p! a2 \" j6 i/ o& c9 F* j- J    Port ( clk40  : in  STD_LOGIC;
, w, ^5 d3 c; ?( Q- N: \/ V% L                          enable : in  STD_LOGIC;
2 l  ?: q! ?: P6 ^0 v( N0 {. f                          switch : in        STD_LOGIC;( q+ N: B% }. I7 G$ ~
           a,b,c,d,e,f,g,p : out STD_LOGIC;: t5 M8 B( D5 d, h
                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
# O  N0 w' t+ R" P% d5 c) `( mend clk_95;
2 O( T) o# {! t3 v& K  c) r& L; A
+ P3 Z2 b5 `3 Karchitecture Behavioral of clk_95 is$ [( h! i- q9 O7 ]8 l
signal clk1 : STD_LOGIC  ;
/ U' y; K  h  _/ R$ `5 Msignal cnt  : STD_LOGIC ;8 Y" r1 w) d5 W1 a
signal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
, m# r% E; q/ n+ _3 I$ C) Q2 D: B0 bsignal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
3 o" [- X) j2 qsignal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
. p& N8 {! ~: D; m2 asignal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);
- e) G  O' o: |$ Usignal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);& U! o; o# S* w5 j
begin* u) P( {) |) |1 Y' s% ]8 r: U
4 D% }8 ^; k" y: g. q1 r
        process(clk40)
' _! x! ?0 |; k+ S! _( }" P# D# p        variable cnt:integer range 0 to 39999999;2 g  s4 l: a2 w
        begin
  A( H2 W" Q+ X6 V' [                        if clk40'event and clk40='1' then0 C$ |" K4 W  D2 d
                                if cnt<20000000 then
& b1 n7 e$ R$ p# z1 F                                cnt:= 0 ;) E* K& _  e& \: V
                                else 2 x. M9 d1 f( D4 U6 V
                                cnt:= 1 ;$ u' j7 b  v& |, t1 R
                                end if;
% c8 S8 q4 o; c7 f                        end if;
1 U8 p4 Z* A7 j6 Q        end process;
2 O/ s( k7 x$ ^4 u' y        clk1<=cnt;7 e; l7 i5 o+ q! \% N
        0 c) w+ I/ E$ q6 S- L' X
        process(clk1)) q5 v, f5 [2 x/ F3 A* k+ V: ~
        begin, A& @, S, [& t) J+ k1 h# s% W
                                if clk1'event and clk1='1' then
! k1 [- A2 D  T  p. Y7 q                                        if switch='0' then* ^: E0 A! t) p% \4 }
                                                count1<=count1 + 1 ;
: v2 n: `. T5 I" @: j; P                                                        if count1="0110" then7 ~2 G7 b  O5 o8 y
                                                        count1<="0000" ;
* g) Z7 I% x1 |5 |* h                                                        end if;
  L8 P, t* z5 V4 T, ^) z                                                else) `! [& l. }  r) Z  H3 B
                                                count2<=count2 + 1;, U' Y7 s; s$ g- D. \, t7 g/ V
                                                        if count2="1000" then
- |* i1 y7 I5 O, |! c$ R% a0 s& B2 B                                                        count2<="0000" ;4 g, J' n! I" O% \& l: K* x# \$ |2 X
                                                        end if;
8 _0 J# p8 z, C: |9 O7 ]                                        end if;                  G+ V4 O- a; D0 T1 \0 h
                                end if;
# K6 k, s) i' @7 Y        end process;+ J7 S' E- P2 f- v
後面是我自己要接出去的東西~所以我沒PO!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好
+ j# q- [4 A; {這樣還是有問題
# q& o; U) J- X2 [& I可以試試) }$ Z$ L9 q! l, @0 ^; S
process(clk40)$ |: ^8 _8 e/ v5 r6 T% }
        variable cnt:integer range 0 to 39999999;
) ~+ @" C; y3 h6 A6 b& t' g        begin
7 X* u  C& j: x& @) ]8 Z& W                        if clk40'event and clk40='1' then9 ]# s5 L. X! C4 b
                                if cnt=39999999 then
2 f  d8 K7 e; y                                     cnt:=0;- e1 M! t! J: t  i- L+ D8 Y% t
                               else
& T& j9 e0 G& y( A1 g( p                                  cnt:=cnt+1;
! Q0 z7 z2 `: G# a/ N) g, @                                  if cnt<20000000 then
& Q5 h( W# t, ^9 L4 j7 J  T1 J                                       clk1<= 0 ;
: A* U* Y# i! s; W                                  else
3 a! o2 l. R# d' l6 _8 _                                       clk1<= 1 ;
2 D" q! }2 G( C9 l: l/ J                                 end if;
, }( y% R2 @6 M1 R3 h8 Y( l4 _                             end if;
& V5 k0 G+ W6 k- _6 x( S                        end if;0 {% D( M. Z' t5 p, W$ w1 a
        end process;! \% c, _! B, ~' Z, C
       + U) d+ \1 K5 z, @3 _
或者
1 M" |# {) `3 f5 |0 `0 B3 }process(clk40)2 f) T+ d' o% l6 W! @: ], u3 g
        variable cnt:integer range 0 to 39999999;. [7 R2 E, T  ~1 }2 @
        begin
7 `, y- K$ J) k8 O" H( e' a! N                        if clk40'event and clk40='1' then" \; k; J- k" L: j4 L  |
                                
+ Q$ E* g* w" J6 n( p                                if cnt=39999999 then
6 B( v- Q) H2 S* n8 u                                     cnt:=0;( F" X" ]+ N- m- u$ ?( f
                                     clk1<= 0 ;
: F1 d2 t6 J3 m* a4 m                                else# G/ S$ k) d; g# K% g6 I6 s
                                     cnt:=cnt+1;9 `$ c2 |; u# N0 f# ?8 @) [; P0 K" W
                                     if cnt=20000000 then
% |9 O0 `* Y( E) e                                         clk1<= 1;  U3 ~1 f6 R1 [# n6 v) {( h$ E
                                     end if;3 ~3 c; P2 d1 z( F4 ]3 G2 ~( I
                               end if;+ s, @, s5 v5 w+ f7 ?' s
                        end if;( X8 Z5 E6 q/ L
        end process;
9 d2 ]; T; a) {: n( ?5 h
5 l: Q, u; j* D) |) J, t不過兩種方法都有我第4點的問題
3 t* T0 O  n" g3 L& {如果你是用quartus2可以分析一下
0 ?! m0 m- d0 L5 g/ B4 M你的clk40可以跑多快
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ
$ `& q$ E8 J* ^+ M0 M我想我只能實際去試試看燒在上面能不能跑~
$ H& y) L) c' i/ n/ M; ]因為我還是沒辦法用電腦模擬出來~
, d& U' h3 h" V; p! J1 U5 G感謝你~ 結果在跟你回報!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦"; w3 J' K. ^. t5 }: L9 H0 X+ a
' i4 i' E6 y) S; ?8 i
按評分就可以了

本帖子中包含更多資源

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

x
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      ) C  @% g& f  r* }
下次清楚囉!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~: Z8 ~; y* `9 R
2 \/ k8 b2 G$ \! A  `3 f3 z
我希望我能在這領域學會!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-16 10:38 AM , Processed in 0.121515 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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