Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
entity clk1 is
1 Q2 M% M- |5 t7 G% D9 p    Port ( clk40 : in  STD_LOGIC;
7 y2 F$ z: i  \  M  u                          clk1  : out std_logic );2 v* \# P: Q$ k, A3 S8 J
end clk1;
, a- j& n& B* Z4 V( w, h, c% E9 D* Y& Z- D9 y0 r7 E( C$ W
architecture Behavioral of clk1 is6 s- L, A3 B+ b+ @
signal cnt :std_logic;
' B  u- W9 b9 }1 r  tbegin* e; P* O9 d* p' p7 X6 i
3 C% x8 o- g1 b8 V
        process(clk40)
  O& w* W! m4 o9 r) _+ f        variable cnt:integer range 0 to 39999999;& j$ G' E6 l+ }& Q. Z0 [* R+ s0 K
        begin
' R1 D. \8 L" t0 X/ o                        if clk40'event and clk40='1' then) j6 f. U7 O! d- ~6 U* `
                                if cnt<20000000 then
# Z8 Y  W4 ]4 l8 [/ B                                        cnt:=0;7 J9 J- a0 T8 J+ K
                                        else
- b* Z7 Z$ C: h0 C- x- j' j                                        cnt:=cnt+1;                                         ! f) M9 A5 v: W" K1 `4 {
                                end if;
$ }0 Q- i4 d* H                        end if;
( a, B6 C6 y  R1 E- i/ x/ f# `                        clk1<= cnt;  b/ w* X% G: q+ y: T
        end process;
2 u! t, x9 Q" f7 u' jend Behavioral;
- f' q- b6 l. [5 \& u為什麼CLK與CNT不相容?9 O! t+ l, l$ M$ ^9 p2 G# X6 n: O1 V
還是我的設計是完全錯誤的?- l9 I0 q" j1 R! k1 g
0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
$ Q8 T2 d; a$ m* Y5 r1 R________________________________↑--------------------
" o3 ?& x+ h: E          此段'0'                        此段'1'
0 v( C2 j' W) F1 ~6 K% @正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好
$ v3 b' {: i6 i0 \- ]1 {1.
: I; A8 R5 P, l: y請問你是要將40M HZ除頻到1 HZ嗎?9 b+ t3 s# Z3 ?
2.
' N4 A8 K. t, n0 V$ C, N% P  S+ hCLK1是定義是1 BIT的輸出,跟cnt的定義integer不同! N' T! U: `3 M" l* \1 b: B
當然不能CLK1<= cnt,8 m' U/ Z+ f  l# S; r
3.7 [' t, G5 ^6 i
你的CODE有錯,請多想想
4 ?: S; {' \1 Z3 I; S& M4.0 _, z  i$ _4 v0 `7 ?
當你解決上述問題後還要思考# e) s7 c+ j. K% M! q* K* }! ^
COUNTER要能數到 39999999
, v, B' S+ E) p  l7 S$ B+ }1 s這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)
! T* l, Y6 `7 N4 n; D那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上
7 F1 W2 n+ f) D! X% V  E7 u; a一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ
  r" U  V2 G( ~- ?除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??
! v) X4 B# L( O5 s% i2 E2 tentity clk_95 is
- t9 U7 u" v3 X) I    Port ( clk40  : in  STD_LOGIC;  x2 A+ f9 j1 m8 [) T  |$ e
                          enable : in  STD_LOGIC;3 z$ ?- e- N" b0 S3 y
                          switch : in        STD_LOGIC;5 S# M2 t0 |0 ^- D- S
           a,b,c,d,e,f,g,p : out STD_LOGIC;6 f+ `5 v  c6 T7 X$ O
                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
9 V! W, f5 ]  k- _! W6 Yend clk_95;4 \' s0 a; k- I# ?+ `) Y3 q
+ |- B7 j* A- @" J4 o
architecture Behavioral of clk_95 is
; b* s- R; D( Isignal clk1 : STD_LOGIC  ;- r* J2 w$ {9 r2 Z$ w
signal cnt  : STD_LOGIC ;0 U5 w3 R9 l1 ]
signal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
  x0 s9 N+ x$ d% u- T* c6 |% Nsignal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);$ F* X1 u) V3 J2 {  h3 [7 J
signal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
* M1 C% b# W( y# E2 Dsignal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);
9 H0 r) D  L, a3 K; s0 v0 Ssignal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);, v! U0 r* x1 r; l9 k0 ~' f3 d0 r2 y
begin
$ f" V  l& K5 F3 h
) |; b- P% i; e" Q, I        process(clk40)
$ N+ \, R# H' s' ?' Q' d0 ?1 F        variable cnt:integer range 0 to 39999999;9 o# q" X% e# h+ E3 v$ V4 @2 o+ [
        begin3 U7 A2 e+ Z& s- b6 X; h, ]
                        if clk40'event and clk40='1' then+ t# u! D( t# ^* |
                                if cnt<20000000 then
5 V2 L  g3 }; B0 G2 S& o                                cnt:= 0 ;
0 K/ u$ m7 a! M8 N                                else
$ E. _" N9 z1 Y; n                                cnt:= 1 ;. h3 e: V% a* b7 _5 K
                                end if;" D# m. X* o8 ^+ y
                        end if;+ K! S3 L, }4 n- Y
        end process;, M: m1 W) k) g" J* R
        clk1<=cnt;
# R1 D7 W! v- e       
0 q" G; N2 ]. y/ q( ]        process(clk1); w2 [- Z' ^' h3 ]/ @+ k
        begin% ^/ N" n4 j; o& G1 k( t3 [5 @
                                if clk1'event and clk1='1' then
2 S  M$ F# Y0 h5 i1 ~. A2 Q' Q# r) }, N% O0 B                                        if switch='0' then5 \1 S, S2 [; c" Q
                                                count1<=count1 + 1 ;
+ F3 l3 g- e8 \0 b9 f8 O                                                        if count1="0110" then
; G4 |6 A6 d7 T& z; O                                                        count1<="0000" ;( i+ e  g0 Q# G
                                                        end if;
0 w  z8 K8 ^* S                                                else
. B1 I& u7 Y! L$ \, K  b2 C: b                                                count2<=count2 + 1;
0 ?1 Z  E3 a* K0 }* ?( C                                                        if count2="1000" then6 q! Y5 g+ N% ~$ X2 J
                                                        count2<="0000" ;
) R3 L2 |5 Z& s( y+ y, G) G1 L                                                        end if;" T7 o5 A' s# W$ y5 S, n+ E, G
                                        end if;               
4 F2 S( d! T: V- s- V; `7 e7 Z( R                                end if;$ V& Z5 z% }# a* c4 K! \& x2 n
        end process;
  o% \$ i; j2 Q" v) M  y後面是我自己要接出去的東西~所以我沒PO!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好
9 X6 x# U  m# ]  [0 L4 t這樣還是有問題
+ f6 p0 b1 X5 J8 S! R可以試試
8 y/ S1 y6 l1 S1 p+ Oprocess(clk40)- \- I2 E4 e8 R2 f* d
        variable cnt:integer range 0 to 39999999;9 w- g( W$ Y7 S5 x8 L) f& P
        begin2 ]" i" e/ d; l
                        if clk40'event and clk40='1' then
1 L. a+ t  N+ x                                if cnt=39999999 then' b7 b* W; z5 w% h" o
                                     cnt:=0;" h$ G$ s, v- c* Y3 q3 C
                               else
- K% K& u( U" X0 q8 {                                  cnt:=cnt+1;3 m" F% k5 B* I* F' d' F  A
                                  if cnt<20000000 then
+ |; V1 M; L; Y' }                                       clk1<= 0 ;
4 w3 Y! \# O: B+ M                                  else & D: h/ ]' D7 k' ~( W. x0 L7 t2 \
                                       clk1<= 1 ;  G  F/ {( `6 {' m/ C, ?$ K
                                 end if;# H$ E" F1 `% n: B
                             end if;
& }' L5 t! r. G- R# O, a5 h                        end if;( ?/ G0 o6 e. P
        end process;! `; C/ v' ^4 }8 R" V. Q* ]  C; W2 w
      
2 u0 z4 |& y4 I0 ~, P或者4 p+ {) r! Q6 f
process(clk40)
$ Z2 |$ Z; H3 L        variable cnt:integer range 0 to 39999999;5 x) F9 ]# t8 T8 J, x
        begin. m+ \! u& f; [$ ~( ^# c6 U3 m4 @
                        if clk40'event and clk40='1' then5 L' \* ^$ v% F; x0 D
                                  N: g2 A1 U6 v" d, a
                                if cnt=39999999 then
. l2 {8 L) l( }/ P0 G# z                                     cnt:=0;
" B; ]: y0 G8 Y0 A% p                                     clk1<= 0 ;6 O4 o2 M: W5 \6 E$ u5 `$ c
                                else5 C$ `/ j7 i& ~, f
                                     cnt:=cnt+1;) W& \% f) d/ |( E7 M( ?4 o
                                     if cnt=20000000 then
1 P! n( }2 J% z& V# X                                         clk1<= 1;
$ k, w6 ?0 r. N0 Y" e7 P                                     end if;
- H/ N# e- W/ _* x                               end if;
) I4 [; n# ?- @  ~8 y7 ~1 \. f                        end if;
( K+ m* P# [8 T0 o1 l        end process;9 S  K7 G9 F5 W% ^+ w, Q: ~

4 R% B* y8 h9 z+ p+ h1 ~不過兩種方法都有我第4點的問題
* K! L) Y3 \% [' W如果你是用quartus2可以分析一下
* H7 E0 W" q$ _0 U9 \2 c你的clk40可以跑多快
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ, g0 k6 B# ]! M2 c+ W: x7 L
我想我只能實際去試試看燒在上面能不能跑~
# I4 z( ^1 r7 v2 y" j因為我還是沒辦法用電腦模擬出來~
2 U& v) ^1 _5 v! ?2 w感謝你~ 結果在跟你回報!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦"
* u6 }% |+ I5 p" u7 p$ z7 N# P) X" b: D; @
按評分就可以了

本帖子中包含更多資源

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

x
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      ' Y/ |2 e! Z* U0 b' S
下次清楚囉!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~
- q. k- j3 K0 t9 o0 J0 }4 ?/ Y; I$ s7 n: d$ B
我希望我能在這領域學會!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-28 08:02 PM , Processed in 0.175010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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