Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
entity clk1 is9 H; c) p1 ~2 p7 Y. B
    Port ( clk40 : in  STD_LOGIC;
" W% X: p2 c. b5 V5 t) }" v                          clk1  : out std_logic );. s9 G4 Z. ?0 ]5 C
end clk1;$ j! A+ c' |5 L; f

" e( ^- }7 @5 {2 parchitecture Behavioral of clk1 is- l: j" o. K1 X- s6 l9 \
signal cnt :std_logic;
8 H# X3 x8 |7 n. X9 z5 h" {begin( ~7 e1 ?4 ^3 w2 ~

5 N/ @& F0 A$ d4 k! [# z; Y        process(clk40)/ q6 I# H! B: E( v
        variable cnt:integer range 0 to 39999999;. n# O5 `+ m' S2 t1 D
        begin3 A8 X9 D; W- f/ R7 Y
                        if clk40'event and clk40='1' then# b! P! r$ l0 e7 Z
                                if cnt<20000000 then
/ L$ g3 K( ?4 f8 v4 N) n' {# h4 D                                        cnt:=0;
7 W: q9 v* T# L                                        else  z  J- s0 [  F# ^6 w) ]) e
                                        cnt:=cnt+1;                                         
' W% ~& p: G  r+ a9 n+ `                                end if;0 M+ M, [, Y6 [. q
                        end if;" T3 g: P/ T& `6 S
                        clk1<= cnt;
. w+ u2 k, n) w4 m# P        end process;
% Y) i  E+ Y& o3 R: S  f+ p; h, X' Q) y; hend Behavioral;
! l2 Q& C8 k0 U' ^. K為什麼CLK與CNT不相容?% A0 f' q* R5 e/ [. a, C
還是我的設計是完全錯誤的?
& U" q& {; R( ~# [* U7 b0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
4 I, j8 g' K1 \6 s1 @________________________________↑--------------------
) P/ e2 ]7 G* [: h          此段'0'                        此段'1'
$ Z: T" ^2 \+ N; ]8 p  _8 x1 z正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好
/ [! z7 f& i  y0 h  ?3 J1./ ?4 k9 y1 m, ?. G; R5 C* {
請問你是要將40M HZ除頻到1 HZ嗎?
2 Y' S( k  m. N2 y6 A- E2.$ @/ P  d+ H; G* @0 n) M8 q: X& Y
CLK1是定義是1 BIT的輸出,跟cnt的定義integer不同9 T" O" ]9 B3 C) K& h
當然不能CLK1<= cnt,3 X9 G# \4 D& x$ r; ?& U2 s
3.
. Q$ z( c4 q6 Q# }9 k! B; p  g" ]你的CODE有錯,請多想想
  j! o1 s% v+ K2 z4.
  w9 v1 l" A  ~" l  y3 N當你解決上述問題後還要思考
  Y$ U2 B8 W" P/ zCOUNTER要能數到 39999999
$ g! y' {# N4 N這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)
2 V# ?6 ?+ w+ l5 k9 \那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上
* Y' x- A# K5 G6 [一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ, H  U2 r4 C% Z
除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??8 M, c! K- X! A2 O% E& g8 y) @
entity clk_95 is
0 c( ?: J: c( N% ]. }( C( F    Port ( clk40  : in  STD_LOGIC;( b) }  |' |$ X! k5 i
                          enable : in  STD_LOGIC;, a! Q, K9 `8 l& n
                          switch : in        STD_LOGIC;3 x) e7 t. H1 e$ h6 F% Z, R
           a,b,c,d,e,f,g,p : out STD_LOGIC;
3 e/ m4 T/ i5 i2 `9 k0 F. S3 M4 M                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
- y' s' h+ \/ V8 Y  c8 O7 b2 gend clk_95;  y3 [$ i/ p$ M

. n1 |3 u$ s0 M! X, sarchitecture Behavioral of clk_95 is
1 x5 W/ U8 ?3 e/ ^signal clk1 : STD_LOGIC  ;
( l( h' V: T2 {signal cnt  : STD_LOGIC ;9 D% F9 f* X# \+ P
signal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
3 u8 y( a) ]" P' p5 Z) Hsignal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);
' F7 Y5 q8 c- Lsignal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);! G$ b* F' ]+ \% N, t" v' p5 B
signal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);* y9 B+ a* O8 _2 M4 d/ O' k
signal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);1 G  q1 B" {- }8 X/ o
begin
3 y/ s! r) \! b
! o/ j8 i' b8 r2 \        process(clk40)
8 ~# Z* B8 d7 Q9 Z        variable cnt:integer range 0 to 39999999;; d. c, t4 a* N8 c; Y. ]
        begin
  T9 |: t8 l* b7 R3 h                        if clk40'event and clk40='1' then
5 _8 _1 j2 e! t+ q3 x                                if cnt<20000000 then& p9 I: Y4 g1 j) G: Z* c% h" d
                                cnt:= 0 ;
% N# G! c" R6 N5 L                                else : J0 D- a7 d* c
                                cnt:= 1 ;6 [4 H& n# p# x8 V3 g' b+ J
                                end if;$ v/ ~9 [/ x: n/ @( Y/ y; F
                        end if;
0 H5 r% s9 B! K7 G" v1 {, ^        end process;* t/ _1 V" a0 n( a% D
        clk1<=cnt;
! _$ T7 k, Z! q. S# h2 l- y       
" I$ X& W* d4 p        process(clk1)% q5 B+ R1 c0 e( O5 f/ r. _5 z
        begin
# W$ w) b7 O# t2 _# w                                if clk1'event and clk1='1' then
3 O$ e% L3 h1 h4 U                                        if switch='0' then
2 a6 u3 P2 _: U4 q; `: b                                                count1<=count1 + 1 ;
# |! ?6 C( F& c- h3 O- T- o( X/ L                                                        if count1="0110" then" |6 b6 Z  m+ E% L5 t+ ^
                                                        count1<="0000" ;
- @' j" R* X$ h+ K                                                        end if;
0 e" U7 D  O9 m  u: C  k. @7 K                                                else
2 V1 c3 k% k) q9 Y2 y$ w1 A                                                count2<=count2 + 1;' P9 n5 R  a+ S. y; I
                                                        if count2="1000" then+ G! C, J4 @+ h8 F, s1 a5 f$ C1 ]$ b
                                                        count2<="0000" ;
& x3 M* w6 Y) ?6 p. H                                                        end if;
1 P" X, p& @; `+ w                                        end if;               
2 A- \5 Q; d- }, a# a4 q# P                                end if;" N. f2 s+ p' m2 j* U9 n- T% O& B
        end process;. ?2 p2 v" i6 d/ {
後面是我自己要接出去的東西~所以我沒PO!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好' d! h. w( |& @) ~$ i5 M; d. d
這樣還是有問題
7 g6 v+ B7 f! M可以試試% ]+ m$ v' A- y0 U2 F! ]
process(clk40)4 h; M( t/ g0 Y$ T7 g& B
        variable cnt:integer range 0 to 39999999;7 C2 F% Z; s% s
        begin
* B. m* B2 |+ Q( N$ v3 w                        if clk40'event and clk40='1' then/ R% Y+ u! f0 [
                                if cnt=39999999 then1 z1 q5 I' O& n( K8 V1 H5 f
                                     cnt:=0;
8 s9 J& s- s. `) B* a/ Y( t# Z                               else3 A/ [* v0 N2 _& \* D- B: v* ?% V! c# a
                                  cnt:=cnt+1;
7 s3 F$ n% v% ?3 e( u2 \6 j                                  if cnt<20000000 then0 r0 H: i# V/ @: K4 A
                                       clk1<= 0 ;( l+ N- b# i( _: |9 T% H
                                  else
3 d5 W. d; H" Y/ O- j                                       clk1<= 1 ;9 ^6 L& ~$ h$ {
                                 end if;
8 |. h- w4 _, Y5 E" V                             end if;/ P8 C. e4 B$ O9 `
                        end if;
6 w3 X7 \. j+ L; I4 O        end process;* J  E9 M+ O; [) u
      
! u' z3 m- i7 q) l  J7 e  D9 A或者' V; ]% f, ]9 q/ P6 @. m! a
process(clk40)2 h8 C0 B$ ~- b3 G5 ~# D! L- n- o
        variable cnt:integer range 0 to 39999999;' Q$ F2 T, h* O+ Q7 |0 ]; q
        begin
+ C8 \9 _( w: h                        if clk40'event and clk40='1' then  Y+ _5 [# x+ [; f( f- ?" q
                                6 [( H( c+ O) A8 S7 y' E3 [& H
                                if cnt=39999999 then
  l! x; c; V# \                                     cnt:=0;0 _5 S$ ?: ]* F4 I; a  z) W0 p& l
                                     clk1<= 0 ;5 S2 f% r, Q) s
                                else
, Z4 i+ p7 O4 ^, O0 O' \5 i: r: x                                     cnt:=cnt+1;* \" r7 d, N+ p! o3 u
                                     if cnt=20000000 then
4 ~  m% j, z: B4 \3 W                                         clk1<= 1;
% U& \$ }: V$ h, u- g                                     end if;0 t" y4 t# M, L+ _2 l( |* n2 W. J
                               end if;$ C3 D1 O* V# u3 t5 ], ?
                        end if;. r( i$ s6 t9 p8 Q1 X# s* {
        end process;. Q1 n' Q( ~; d6 |- f1 ^# V6 `
6 a) y% k. p2 y, @# ]* q/ L
不過兩種方法都有我第4點的問題
/ l0 F* W) J3 N如果你是用quartus2可以分析一下) |5 w# X4 F" h# e
你的clk40可以跑多快
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ% \/ N7 @; C) f) l4 C. A
我想我只能實際去試試看燒在上面能不能跑~, @# x5 }. K( x4 N  t; t- c
因為我還是沒辦法用電腦模擬出來~
7 _; U+ U, R4 A$ Y  J9 q感謝你~ 結果在跟你回報!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦"! z' P( s4 ]! a3 L" E

" O) R2 y1 x( M4 |按評分就可以了

本帖子中包含更多資源

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

x
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      - c% z& L9 z& }. C, k
下次清楚囉!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~' w3 Q1 {% y' c; Z* t

# w; @' [0 l8 W8 L$ Z! T我希望我能在這領域學會!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-3 07:33 AM , Processed in 0.106006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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