Chip123 科技應用創新平台

標題: 請問各位RD高手 [打印本頁]

作者: tom218    時間: 2007-7-20 02:10 PM
標題: 請問各位RD高手
如何設計一個8位元計數器和8位元比較器??
7 G% ~: v; e5 o( J$ o- d因為真的摸不著頭緒
作者: s2318020    時間: 2007-7-29 11:53 AM
計時器使用的是以你的外加或是內涵震盪器來使用,而每次的加量的時間 T*counter(T=1/f, counter=clock),而計數器使使用IO來抓上元或下源觸發來當作加減量
作者: russell    時間: 2007-8-22 10:57 AM
標題: 回復 #1 tom218 的帖子
你用哪一家的CPLD?: F2 F' m$ K# A0 N( g+ Z: i
我直接給你sample code比較快啦!3 W) n7 `! i6 a
我是用Lattice,
% G" ~: X+ n+ B  u; x6 n% mrussellhsu@pmaster.com.tw
作者: jason_lin    時間: 2007-8-23 12:57 AM
標題: 回復 #1 tom218 的帖子
問題不夠清楚哦?????要VHDL還是Verilog??? 8bit的count有很多種,要up count還是down count?????要有加reset還是....????$ Z3 ]8 e! t. K
我給你幾個參考.
+ |7 V, R3 \& Y% G1 c5 _: d
) T0 e3 Q9 Q; e1 O& A1 XVHDL count
6 X/ q7 y' m0 m0 y7 d/ \0 ^. u" F* s% [( ]
process (clock, reset) 3 U6 o9 b7 Z" E. r
begin" Y( Q7 ]! ]5 m+ W8 f; q9 Z0 [
   if  reset='1' then 6 a% a; U+ a* r' x0 m3 P. u: _+ J8 ^
      count <= (others => '0');
+ D0 ~: B* l' N# |1 ?5 {# ?   elsif clock='1' and clock'event then' A/ {& g- f# o6 W2 j; |1 J# j
      if clock_enable='1' then0 E8 i/ N' R, I  Y4 s
         count <= count + 1;# E* W8 M+ n) L9 t9 C5 H. ]
      end if;
3 y- X4 F( L! f% _8 M' h   end if;7 F+ q: K. V/ r6 |6 s% }5 P) s
end process;
' ]( V& p. N, s+ p7 ^' N& Q2 m% U+ a8 R$ x# t- o
Verilog count
5 W" Z! Q% k' ^2 x( @3 E3 |/ Z0 I+ A" I$ m( j- H. Y* e" Q5 _, D: k9 n
reg [7:0] count;9 }' x3 K( d- W" d0 _6 {' t
   * T" L& O& Z- D& O( K
   always @(posedge clk)
3 d. C4 n9 ?. @# o      if (clock_enable)3 d. o3 W2 u  P
         count <= count + 1;
& m4 v: c$ i8 V& D$ Q/ R- i4 x
6 u; y/ n. M' u) d7 \- T& `5 fVHDL比較器
' f# n0 b! O" sprocess(clock). F- n) ~2 N- d5 b$ @0 |6 d
begin
7 H. G, y! w! w2 G+ `6 K' K   if (clock'event and clock ='1') then   4 _, @2 A# C- X% S7 i
      if ( input1 > input2 ) then
8 _; ~& Z! Z8 I% m# b/ ?# g         output <= '1';
* X$ G$ d% ]1 D. r      else
" z+ g- ^2 z: B" Q         output <= '0';3 a$ E; j/ Z+ t* C1 b  ?+ u5 H
      end if;; }" [. N3 e: B: Q4 c+ ~1 [; a
   end if;
7 S* @- j6 d$ h: f5 @7 g" uend process;
  X6 ~1 E; v# e/ u4 V( A/ ^( z
0 y: [! {8 e+ _6 P# p- ]process(clock)! z  l3 i$ y/ v
begin+ W, `, t* _( w3 g& C+ f1 H
   if (clock'event and clock ='1') then   
- P9 Q" E! ?) M      if ( input1 < input2 ) then   k( ]" I' w9 J" n
         output <= '1';( y0 }. j$ Q) J# M+ J
      else
' R0 f6 I# w' p# P4 ]; w# o% \         output <= '0';& Y$ H% a$ Y6 g* Z8 {
      end if;# |! W' o* k) p6 }( F2 ]1 a$ S4 C. ^' W
   end if;
( x7 N3 W) Z* O" @end process;
  K: t7 l7 J" k
! ~4 o; B3 l3 n. F( RVerilog比較器
8 M4 S5 z& a, z/ breg output;* Y5 i* f' w2 \5 b0 n/ u+ A. B+ `

! T' d' O" o% N7 e, w* N5 X   always @(posedge clock). W1 w& Z, K/ @9 t9 b
      if (input1 > input2)
8 U. z3 N. A: g! y/ V; l         output <= 1'b1;1 [$ A5 F6 g# V
      else. ^+ [( f8 _9 ~/ D: Q
         output <= 1'b0;* Z! s# v! Q" ]4 a) B: }
0 [9 Z  }1 j- U: Q
reg output;" e' Q4 ]0 {0 ]

4 t& f! }0 i% m   always @(posedge clock)
% O  U- w, D" T8 K4 d7 w      if (input1 < input2)/ ~5 t( Z8 f2 Y( J
         output <= 1'b1;! E) p3 U  D/ d/ D2 I0 e
      else$ w1 C! C* q" W0 i4 k% u' P0 x
         output <= 1'b0;4 g: y( w: \4 R1 ?2 [  N

' X  [. W; `. Q: y希望有幫助^_^




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2