Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-17 13:32:50 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
entity clk1 is
! p, V3 n) t5 w* l    Port ( clk40 : in  STD_LOGIC;8 Y( @2 d+ U7 j, a
                          clk1  : out std_logic );
" K* Y5 T0 a4 G) z/ @( w9 B5 u, Wend clk1;& N! R1 [; |4 u( |, W* l
0 Z8 ~; Z" A/ I! d8 V% V
architecture Behavioral of clk1 is# L3 |8 c+ K; T
signal cnt :std_logic;' @5 C, |  ]* q0 f
begin
/ N. \8 q3 |- l. J! d* u! Q" g5 ?: m4 C; W4 _3 w% g& Y
        process(clk40)
4 V$ N% O1 D) |        variable cnt:integer range 0 to 39999999;
) ~7 h) v; S" T, j/ b, O6 B        begin3 G; t& Y2 W$ z$ y3 S
                        if clk40'event and clk40='1' then6 k% t7 X+ i  V! z3 z
                                if cnt<20000000 then
- e! P8 z/ E! a: A( a7 j4 x* _                                        cnt:=0;
  `4 o  f8 h5 n* h2 _( j/ i/ F                                        else
  [- R: p2 ^# C% r                                        cnt:=cnt+1;                                         . w5 J6 P* N# |6 o& |4 `. L& y
                                end if;! q. {! {: K/ R+ S8 u* n
                        end if;! G& g6 A6 M. K, s* |
                        clk1<= cnt;) r* K- b5 b  l( x# j' K% Q$ }
        end process;
" S/ a0 U% X6 @6 Y% zend Behavioral;
& z/ d7 s2 Q1 V+ p; ~3 }7 C, I為什麼CLK與CNT不相容?
' n! L. j7 ^. E  Q# d還是我的設計是完全錯誤的?" q* w# i3 Q6 J8 [/ q5 A$ C1 D
0~~~~~~~~~~~~~~~~~~~~~~~~~~~20MHZ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~40MHZ
8 F: D. c  v8 i4 z# Z; C( R________________________________↑--------------------# c8 B" Z! K  d( J3 I3 [  `
          此段'0'                        此段'1'
& e4 E1 g1 x7 r; d2 E* ?正緣觸發~
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
9#
 樓主| 發表於 2008-5-20 01:53:53 | 只看該作者
我有補囉!! 我說下次一定會記得給!! 誤會我的意思囉!版主~
2 k6 L7 F+ `% R( \% ^) [
6 j2 s) H# a# [5 v& T我希望我能在這領域學會!!
8#
發表於 2008-5-19 18:10:24 | 只看該作者
現在補也來的及的, 不用等下次了
7#
 樓主| 發表於 2008-5-19 17:04:30 | 只看該作者
收到^^ 抱歉~      / S  r! f5 i0 ~  m! Q5 q
下次清楚囉!!
6#
發表於 2008-5-19 00:03:14 | 只看該作者
gto10620 別忘了給addn "感謝哦": t# Q. m( s+ x
% b  a7 a% r# f8 f+ B
按評分就可以了

本帖子中包含更多資源

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

x
5#
 樓主| 發表於 2008-5-18 23:02:25 | 只看該作者
40MHZ$ Z; I3 r8 {4 N
我想我只能實際去試試看燒在上面能不能跑~
9 K9 w+ y- @) Z因為我還是沒辦法用電腦模擬出來~
- O* q5 ?+ ?+ _) ?! D感謝你~ 結果在跟你回報!!
4#
發表於 2008-5-18 17:58:36 | 只看該作者
您好
: j/ N3 D3 o+ c3 N6 [8 N$ I這樣還是有問題2 |/ |3 z9 C8 Y8 X% ~
可以試試
% N1 D& l' X: A# Zprocess(clk40)6 Z: U; }0 S/ R* I/ y( s
        variable cnt:integer range 0 to 39999999;. {9 ~( r1 q3 _4 M" R
        begin4 G, U4 B- Z/ r. N: l$ T  h
                        if clk40'event and clk40='1' then# D$ M: D. ~  g1 V# I9 T$ J8 g4 n! P: n
                                if cnt=39999999 then3 Z1 `$ F6 `) N8 p
                                     cnt:=0;9 H) {* c& l$ E$ Z2 M5 y/ S4 P
                               else* X8 W+ l3 y8 `1 o" M
                                  cnt:=cnt+1;
- }- l, z3 d/ W4 \: o. u                                  if cnt<20000000 then
) Z9 U) Q1 H* ?                                       clk1<= 0 ;
/ l* k# x( B; |/ j                                  else ( g0 G; G) Q1 B/ T- K. i
                                       clk1<= 1 ;
# X1 N+ S& V. |& V$ m: ~0 G9 s$ y                                 end if;% J6 F1 l6 @& s$ ]
                             end if;7 a" X. L* E2 V$ B" \# ]% |
                        end if;, M' w1 o0 q- x- Z7 F' N
        end process;7 R8 E4 _# C" _' P3 @7 i  a/ B
      
1 x: U- Y7 V2 {' v- V+ A6 }% [% M或者
; \/ w% n1 D8 ^) M! I' t, Mprocess(clk40)- e5 V) F4 e( n
        variable cnt:integer range 0 to 39999999;
+ T9 Z4 }* |/ s1 k        begin
$ K5 L8 W9 t) n( C" v" ~( q/ m* i                        if clk40'event and clk40='1' then
" I3 N3 F* j- L& ^2 Y' @( R                                
! H/ b$ v9 `, ~( L                                if cnt=39999999 then
5 b7 X. E0 P+ o# Y. A% c, x  m/ {                                     cnt:=0;
" X- B$ A# Z" p: ?7 o+ ]                                     clk1<= 0 ;
* z. I6 u; q% ~: l# Y+ {& A) d                                else7 S+ `- e, r7 c2 O; `- s0 p  a( K
                                     cnt:=cnt+1;3 ^) Q" M, K) _! b& J  U
                                     if cnt=20000000 then! e: O1 T1 D% C, X
                                         clk1<= 1;) |, x% E6 N6 O! D; i0 k& y
                                     end if;) I  o3 X3 F* J0 w8 K. K# }
                               end if;. F6 e) `7 j* e
                        end if;3 Q2 ]# N1 m4 Z3 K# \& W: b
        end process;
. b4 r9 p8 F9 Q8 D4 a+ u/ X% D1 ?% V, ~1 @6 e, z1 h, N3 A4 i
不過兩種方法都有我第4點的問題
: n: K3 e. e/ \. Z! Z, i如果你是用quartus2可以分析一下- N  c6 O, b$ h7 ]% ]: @
你的clk40可以跑多快
3#
 樓主| 發表於 2008-5-18 17:13:16 | 只看該作者
恩~是的~我是要把它除到1HZ因為實驗器材的內部震盪晶體為40MHZ
/ {8 e: ?* u3 q8 X除完1HZ接上計數器這樣~下面是我後來又改的><" 難道精準式除頻有很多種方法做??" L. p# {) D! Y8 u3 {5 w) D; o. g
entity clk_95 is
0 c% ~) K4 q+ j) s) W+ F    Port ( clk40  : in  STD_LOGIC;# {4 V1 e$ H) c+ x. b
                          enable : in  STD_LOGIC;
' e" ^, U( ~4 C" q5 `8 ~                          switch : in        STD_LOGIC;2 N5 E2 G( j; {! @
           a,b,c,d,e,f,g,p : out STD_LOGIC;
3 t4 Y3 p4 f/ m6 t" k" ?                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
) |0 g! B# \2 L) G) _  m# j5 ]end clk_95;
7 ]$ z3 k2 g* l8 m  A' ]9 D8 U" y, `' E4 P5 q9 z& s
architecture Behavioral of clk_95 is
$ k# v6 D" R% H) J- h% b+ ~9 csignal clk1 : STD_LOGIC  ;
- d* h& B8 I, ]+ Y5 Y) t- ^signal cnt  : STD_LOGIC ;
. L; U# r. [, O! Z+ e+ z( usignal x1  : STD_LOGIC_VECTOR ( 3 DOWNTO 0);. m3 t$ |+ _  D: l7 g9 ^/ q6 g7 b
signal x2   : STD_LOGIC_VECTOR ( 3 DOWNTO 0);0 \3 w$ H" ?: [5 r+ R
signal count1 : STD_LOGIC_VECTOR (3 DOWNTO 0);
4 D/ m3 B6 t/ Y' W/ W$ h. R: Xsignal count2 : STD_LOGIC_VECTOR (3 DOWNTO 0);  H$ _' F# U/ o6 _% Y5 ^% }
signal y                : STD_LOGIC_VECTOR (7 DOWNTO 0);0 w- ]" r6 g- A3 x$ A5 i
begin
2 g9 P: ^: T. T# Y0 L6 |# K9 ?
" @: i3 l4 q' C/ G        process(clk40)
- D! x5 n7 F0 G$ j        variable cnt:integer range 0 to 39999999;/ A8 w' B- g8 s3 A
        begin, Q6 |: G. q/ |" A* C- ^& Y& b
                        if clk40'event and clk40='1' then
. |3 `, }0 ~8 i, Q) M! a/ T                                if cnt<20000000 then* ~4 [7 J9 S2 G
                                cnt:= 0 ;
3 h$ i+ s7 l$ h1 E/ U                                else
+ r7 b2 t. u. H9 u* m                                cnt:= 1 ;# y, G* [$ p4 @- h
                                end if;9 ]9 [; k& z$ [1 U) g# C) a
                        end if;
+ I. h) S4 r" @, f        end process;
5 I7 X7 n6 _/ z: U        clk1<=cnt;
+ ~* j. ^( y8 q3 ]        6 Y* W5 h2 g7 B0 r; x7 g- K. A
        process(clk1)8 p: U% c. O' S* U  j% K' D/ x
        begin" q; _6 M/ Z4 @1 y1 @! V6 ~& n) P
                                if clk1'event and clk1='1' then
* |% V5 q2 @, _9 L( v% q2 e                                        if switch='0' then: g# n+ t+ R) }, k/ G2 z
                                                count1<=count1 + 1 ;; h0 ?: s* |, W0 @# @6 J5 d5 b
                                                        if count1="0110" then
& [& W2 R1 a' T                                                        count1<="0000" ;
3 Q$ \( e4 B' r                                                        end if;0 w5 j' F! f5 q7 A2 f2 e
                                                else# w( U4 m) ?. k, h0 }0 t
                                                count2<=count2 + 1;) r8 G/ A# @8 ~- E7 n
                                                        if count2="1000" then& t9 L2 d8 }9 Y" {9 C9 w4 T5 s1 Y
                                                        count2<="0000" ;, s$ ]$ V4 X) \
                                                        end if;
* ?' W7 d+ G$ {& s1 l, s                                        end if;               
, j% u$ C9 u8 C$ n                                end if;. y' q9 l1 ?1 K7 R+ o* d
        end process;- k8 Q$ a  U7 D! \2 S
後面是我自己要接出去的東西~所以我沒PO!!
2#
發表於 2008-5-17 23:00:37 | 只看該作者
您好
! ^" U" Z" q+ @1.
. G" V5 y, l( X2 X: g3 f3 z請問你是要將40M HZ除頻到1 HZ嗎?; ^% D, F4 C+ z# |. ~; @
2.
( W$ ]. t! ?& |- aCLK1是定義是1 BIT的輸出,跟cnt的定義integer不同# s# j/ ]4 s- |3 l' I
當然不能CLK1<= cnt,
: y, t8 k* {, ^- ^% L5 z7 c0 z3.( ?/ E- ^$ o; s, Y! f
你的CODE有錯,請多想想' V5 H  G, @, F( G# g# t! h
4.
1 ~0 `& ]/ O' j9 I, C! s$ e當你解決上述問題後還要思考
/ f: O; X# ^1 B) W/ q7 h& D+ \COUNTER要能數到 399999997 M: k( B% f$ T# n- k! q5 Z  M; N' K
這樣的計數器合成出來,須幾BIT你知道嗎(0~1023需10 BIT)
# ?2 S- E  m6 T) N, d4 v) n- F那麼這麼大的計術器有辦法跑到40M HZ嘛,況且你還要配上
$ H& j' }: }5 ?# W3 ~一個大的組合邏輯比較器(因為有用到if cnt<20000000 then)
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-20 05:24 AM , Processed in 0.113015 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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