Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
entity clk1 is
+ I% Z' N# C8 y$ L6 W    Port ( clk40 : in  STD_LOGIC;# C6 P, R- G; X9 X4 V
                          clk1  : out std_logic );1 \) O9 j- T4 S
end clk1;
: N8 Q' o6 {6 E+ J0 h; M2 F
$ }% h6 w. d! m' N, }0 Warchitecture Behavioral of clk1 is& X4 y' W0 D% H1 ~
signal cnt :std_logic;
+ l% c$ B' X+ K; abegin3 y, b5 Z* w8 z! a. s

2 y# a9 h8 F8 v; O        process(clk40)
8 f! O! m' W3 D8 ?) m        variable cnt:integer range 0 to 39999999;$ l5 |3 c3 x" A; T8 V( X4 p2 z$ @
        begin( E2 r  R0 t5 C( k( S- j' _' P
                        if clk40'event and clk40='1' then
; s) c8 `3 K# W" B4 p1 s5 ~                                if cnt<20000000 then
" `7 I: Z) r% I( i: J8 m. c                                        cnt:=0;
+ ?- \1 F5 C' k5 [9 i, Z                                        else
" j( _7 D/ x' A" N$ W                                        cnt:=cnt+1;                                           \8 Y1 N9 K5 V$ x  G* Z: y7 G
                                end if;) v; z' t, T0 [$ D
                        end if;5 U6 I7 w! Q# D% F$ ~/ |2 M' z
                        clk1<= cnt;) K7 M  ~# J% {( ]! b" S  `  y
        end process;
, F" T4 B9 y. t4 A6 ^. {end Behavioral;
+ d/ t) ~2 J) h為什麼CLK與CNT不相容?# U( t% m7 Z$ \! S# j
還是我的設計是完全錯誤的?; t, Y% C9 {/ I/ ?0 \5 z. H
0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
  C1 X. ^, [" `& O% Z( o________________________________↑--------------------
& ^$ [4 K  s9 Q6 Y          此段'0'                        此段'1'' a6 M' K7 t, f& z4 D8 ^* l
正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好
' e0 x! k1 i) D2 c- W& W# Y1.- @( Z. A& j$ W/ F& s
請問你是要將40M HZ除頻到1 HZ嗎?
1 ^# j) [" U' |# f2.
& h. V0 }' ?0 S' W9 JCLK1是定義是1 BIT的輸出,跟cnt的定義integer不同
0 U" U" n2 ^5 t$ ]$ Y8 x當然不能CLK1<= cnt,7 r) z' C+ Q: R* s
3.
- V5 s! T1 }0 D: O0 c你的CODE有錯,請多想想
$ X& ~+ g* t! A% _; e; \1 @4.2 P; T: O4 G, ^8 d3 k) W) \1 h
當你解決上述問題後還要思考
! O& c$ D* t/ q- }! Q# _6 P! UCOUNTER要能數到 39999999
6 X$ ~( l$ F6 b/ ]1 {% }' Q這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)! k$ P; Y8 X' z' |
那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上
. t& H1 T9 }" Q& D. S一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ5 j) t+ {# F! K6 s4 [
除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??
- N% v' ^3 T+ |, S# L; |" eentity clk_95 is6 {' Z" }0 k) a3 ?& p) _
    Port ( clk40  : in  STD_LOGIC;; S4 O. F' A/ E: {9 Q
                          enable : in  STD_LOGIC;
$ Q3 F4 o: A8 Q: @0 d, O; X                          switch : in        STD_LOGIC;, c8 K0 e# A& P+ O5 z
           a,b,c,d,e,f,g,p : out STD_LOGIC;8 P/ @& Z: C( M4 S
                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
* m3 w1 t* Z1 \1 O7 k2 ~8 |  @. eend clk_95;
$ K( S8 ?8 b4 G. N$ B0 O* _8 _+ e' K- t2 ~4 {7 C' t
architecture Behavioral of clk_95 is# W/ L, j! u% u! N. w1 W
signal clk1 : STD_LOGIC  ;  J- c( _- i/ L
signal cnt  : STD_LOGIC ;
& |- y9 s1 j( f% ~# U: {2 z$ psignal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);- J# ?" y9 n! U% C: u* R2 M
signal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);2 Y( G; o; r$ v' ]
signal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);- P/ y5 x- K( y) j% T4 A
signal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);8 q8 O# l1 g" _2 S1 [
signal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);
2 _6 m- F8 |, N5 i$ e9 u8 k" jbegin! s5 M% M9 x3 n. u( l" ]
! T# f) t3 v4 @$ C' @) i
        process(clk40)
( W5 Z6 |, M* I6 s8 b) y        variable cnt:integer range 0 to 39999999;1 g! E  @8 `" ?1 C+ f
        begin
6 K7 H' t3 V2 U4 j                        if clk40'event and clk40='1' then
0 @/ S. a. G5 S# [* {                                if cnt<20000000 then
" W# H% Q- @5 X* Q5 `8 p                                cnt:= 0 ;  l1 u# u1 k: D7 B6 F
                                else
7 [. h1 }* _# Z2 i( A7 ~                                cnt:= 1 ;
( e. y( s& B, C: o( e                                end if;
  J9 O7 `  @8 Z2 ~                        end if;
: Q  \, {- e( I5 Z9 D& b( P0 l        end process;" b: [0 |! A. C# i, p  e. F
        clk1<=cnt;+ j9 \9 n+ k  n# Y. {/ C* |/ v
       
$ {& j8 N, m7 [' C9 k        process(clk1)
+ S' {3 N& e9 \! p8 `# r$ _% h        begin7 \9 Q. n. K0 k/ i- ^* N
                                if clk1'event and clk1='1' then' K( D& i5 b1 `! U
                                        if switch='0' then- O0 x! ^$ o' R: Y8 d
                                                count1<=count1 + 1 ;
5 q# K" z% X/ u$ n                                                        if count1="0110" then* l& d2 H  x0 _: r' R
                                                        count1<="0000" ;9 L0 s/ N: Q% o
                                                        end if;# U5 c5 t! _  P. ]6 P8 Z! n
                                                else* X9 _2 M) c$ L. h5 S
                                                count2<=count2 + 1;
+ P% i5 S9 o* K$ l, f                                                        if count2="1000" then
7 b8 f2 ?2 f- t* k8 d4 B& L                                                        count2<="0000" ;8 Q+ `6 ?3 q1 V' O
                                                        end if;: X% {& D9 h# `( r
                                        end if;                2 P0 R3 n4 s" u/ o0 @
                                end if;7 j! B- P% W- [7 C0 s
        end process;/ q+ C$ N0 T' I3 }
後面是我自己要接出去的東西~所以我沒PO!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好7 e3 o) T! E5 ^3 c- j1 ^  _, ~
這樣還是有問題8 N; h( u8 R; e, {# V! N+ n. W+ \  S9 K
可以試試
+ x# X% M) \8 @5 ^& f0 F1 ?2 f- oprocess(clk40)
5 @- ]$ G  _5 s( T' g* q        variable cnt:integer range 0 to 39999999;* u% }4 \3 F/ E. Q9 m
        begin' A4 Q  L' B; w$ ~, @
                        if clk40'event and clk40='1' then' z' @' }4 v( C% X5 k8 I7 ?* A
                                if cnt=39999999 then
. H+ ~" y5 G) I1 J9 V9 e                                     cnt:=0;
9 o1 I, r6 I/ Q( @: Q! K7 O0 e                               else- _/ a( @9 Y# l  b  Z  e1 x
                                  cnt:=cnt+1;
3 u- H; f, h0 R                                  if cnt<20000000 then+ N' r  V0 i! R3 U. F6 D: h+ O
                                       clk1<= 0 ;/ m  m; _' ?7 A$ R. ?
                                  else
; @3 b% B) w+ ?# ^                                       clk1<= 1 ;3 `  X2 ^7 J& k( `& v- V$ b
                                 end if;
- z' ?& V- i. }! m: d                             end if;
  m0 g+ M3 w4 _9 m2 X% u) A                        end if;
7 v) [+ ^! z! s* f; H( H        end process;2 w1 d9 _% E  `; l- I' x
      
. X$ B2 v) U# f8 X8 V( I6 i或者
0 t4 v) w" t' T( g# k! Gprocess(clk40)
8 N; l% N2 y( ?* i- w        variable cnt:integer range 0 to 39999999;
$ Z- F2 c- ?, e# f/ f/ ]        begin+ ~/ h/ `1 {. ?, q1 c" z9 y- [/ D
                        if clk40'event and clk40='1' then( r: P3 W2 f0 L2 {+ v" s
                                
; G1 T9 }, G1 g" a                                if cnt=39999999 then
5 e0 A- }' n  Q" S9 y9 W" `2 p! q3 v                                     cnt:=0;6 a- _/ w* Y  K, l& a9 q# i
                                     clk1<= 0 ;$ J  X0 D$ ^& ?9 s
                                else6 }. y6 ?4 J4 [
                                     cnt:=cnt+1;0 u  m  T. t* N- X
                                     if cnt=20000000 then5 g, d% ^; @: p! L3 y
                                         clk1<= 1;
* p6 Q0 J9 A$ T% l) \: l$ Q                                     end if;+ ^& G+ S  Y. b* x( g# P: j! g4 \3 e
                               end if;! J6 H0 k+ O& D! F% q! b( C
                        end if;
& l7 r$ M) b; }        end process;
8 g& F3 v* Q/ ]) \+ W8 ?/ \% f2 K5 P) v+ @1 W
不過兩種方法都有我第4點的問題- F0 p. \9 o) M! Q( L
如果你是用quartus2可以分析一下
2 d& Q2 E/ y  W" c% M2 C8 R你的clk40可以跑多快
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ) \; @9 T  z( x, e  n# u
我想我只能實際去試試看燒在上面能不能跑~
. t8 q: i5 c5 [1 L! I4 H因為我還是沒辦法用電腦模擬出來~, d8 z/ d) i9 F4 Q# ^8 `
感謝你~ 結果在跟你回報!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦"
! j3 G0 h/ j- k2 V, j, _3 z
" D4 z; l8 K6 ~' f! U按評分就可以了

本帖子中包含更多資源

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

x
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      , t, ~2 o. q* C+ n" V' Z. i8 ~/ X
下次清楚囉!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~! H. x% F  \) X! I/ Z2 E9 W2 x, l

/ ]5 N4 Y6 [5 P我希望我能在這領域學會!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-28 06:59 PM , Processed in 0.166010 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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