Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 請問如何設計BCD counter

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-28 10:40:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題- R% d/ F- f2 F, O3 s; V/ m1 s9 K% y
小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區
, q. T; W; W3 e如果不是麻煩版主修改一下囉( X8 |0 k% E! l- z1 F+ E. P
9 b1 X1 V: `4 _( B' y
目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一個0-5的記數器開始記數( n6 t3 k# X+ u% T) M) `
總之就是能夠記數0-59, 個位數記數0-9, 十位數記數0-5
$ j, A, G; Z6 L
" G' w/ `5 k# v請問各位有人有設計過這樣的電路嗎? 或是要去哪裡找相關的資料勒?
6 j$ h/ }! B3 s7 s+ U謝謝!

評分

參與人數 1 +4 收起 理由
kuannan + 4 謝謝小朱仔提供的code囉 對初學者 真是�

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2007-8-28 10:52:11 | 只看該作者
原帖由 monkeybad 於 2007-8-28 10:40 AM 發表 0 @( G; b3 ^. Z. |
如題6 `* q3 F4 R0 `3 i( Q& g% Q4 ~
小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區' K, R6 a2 C9 n4 t  k; A' L- y7 Q0 \
如果不是麻煩版主修改一下囉
$ v8 C0 Q: R( a! X: R# s- a/ Y8 ]+ o1 e: x
目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一 ...
3 Q/ O' l- s# c7 E* `% {
# Y% |! L: c6 x& M/ O: ?' H0 [, w3 h
大大您是要寫Verilog還是電路9 B8 v: s8 B+ B+ C
1 {3 D1 K: R2 x# A. |& V
先PO個RTL Code參考看看0 l- t  x3 j" {# ?/ Z: J

. H2 T  b# D/ u! c% P+ L/ J1 B" ^+ P) S/ e) ^輸入:N clear load clk
% |3 r  D" R' `& B' h輸出:count: x- ~! @7 o5 m  B9 P) q( G
0 W: V, W' w0 v) d4 m
行為描述(依照優先順序)
% B6 Z/ {$ V. L4 _1.如果clear為1,則輸出設為為0
- R9 X$ d5 b$ _* h6 r1 o2.如果load為1,則輸出設為N
2 y; ^/ K& J7 {$ {3.每個時脈輸出遞增一次(BCD)
, o( o  m; o$ a7 r7 c: _2 x' {# j! E& k5 ?8 E0 @

2 N. R; j* f/ `7 p3 R; v3 p; |: r  E. h$ u6 Z, s
程式碼:1 E& C4 u  T6 D$ P3 y
BCDcounter.v
. _- x3 C1 w4 Y0 o
" H; x& T$ H: G' D: g  ~. Xmodule BCDcounter(clear,load,clk,N,count);
1 W+ q# m8 N3 l/ z" X2 O2 q1 hinput  clear,load,clk;
. B* v# M; L8 N5 Q6 qinput  [3:0] N;7 @; S/ y" q% C8 p. Y: P; w
output [3:0] count;
+ o) `& h+ q9 \& g4 Wreg    [3:0] count=0;% s; T: p) C! n- v

7 f& K: D/ b) P7 |$ ualways @ (posedge clk) begin
9 E3 a3 b9 \5 t2 l& @0 D6 w2 b  if(clear)                 //clear=1
4 ~7 J2 _7 @( n' e' a# J0 I    count=0;; X- _+ X! J4 i8 k* w. Q
  else if(!clear) begin     //clear=0(共有0 1 X Z四種狀態)4 Y4 g- h: z3 n2 |3 Y" x9 u) n
    if(load) begin
. x+ `7 A7 k! g6 V; {      if(N>9)' N3 _" Y8 Q* ?0 ^  o
        count=0;
% C4 L6 b) ^0 D- P' S' |4 |      else
! V" z' G' p9 Q        count=N;4 S9 i: Q0 P$ C
    end
- h; r% ~  e( D! B, M    else if(!load) begin3 N1 M3 c  g+ F. K. E  i, \# B- r! R
      count = count+1;
* e  [, s# k, \( x8 K$ {      if(count>9)
( o3 i4 e+ R2 D- j2 t2 Z+ r      count=0;
" A! |3 A& E: e    end! T6 P: `& M( h
  end3 d, H3 n) O$ A# U5 D$ I
end
7 F0 B. e8 \2 J0 iendmodule+ i3 T" H$ m& n. P

# n5 n! i6 s; X% ~4 m% S- z! Kbcdcounter_tb.v# c6 X$ l' ^& `
. k/ H! M" N* E4 K9 p& ]
module bcdcounter_tb;
* {0 f! X6 |& ^reg clear,load,clk;
% J/ D$ h) O5 j2 ^" `; ]* t" V/ K. m. b5 @reg [3:0] N;3 R4 ]9 O5 Q: J# k' o( G4 ]% r
wire [3:0] count;
5 M! m# l  Q( R& x9 h; X  D1 E- w$ b  W' a# G8 y
BCDcounter m1(clear,load,clk,N,count);
: u# G/ q2 [  l7 o0 T8 Y& n( }* d& h% G9 Z! E  L2 U
initial
4 S5 ]4 E7 \3 O) cclk=0;' p) S, K" r7 e. [
6 q$ J4 e% @0 i- g2 P% p. ~2 y$ ]
always #2 clk=~clk;
+ w0 V$ `4 _" x+ N7 ]+ a
: P3 i4 a2 }- o  d- F4 n! binitial# Z2 a4 J# @" M+ u7 J- a
#160 $finish;
3 ~- S  l9 {  d/ v1 q( x$ K* D; l3 `. o+ f! I& ~) M7 E' X
initial begin* k0 I/ w4 r& m& ~9 {0 A) t
    clear=1;; K$ f& i2 d7 O7 G0 O, I
#4  clear=0;: T; d7 @, U2 B2 M4 C6 q" ]
#90 clear=1;' h2 j. _& v9 ~9 Z
#3  clear=0;
/ c! H+ V$ e) C2 J1 o8 wend
+ N; k7 ?2 M9 g% b# R& W( K$ N; S! c
initial begin" j" F5 K* W* ^2 O# E1 ~1 [
     N=6;load=0;7 q( _$ y( F9 }- y( j
#58  load=1;( P! d( [; C: g- o" W4 T
#2   load=0;
% x. [" ~8 U) c#22  N=12;9 Y! D) S) S# V, a( m
#40  load=1;3 Z6 b  p( q# t, r4 O1 V$ n
#2   load=0;
: N$ e: Q" f- D' T! E: w) wend
0 Y" N$ O9 X/ V8 _
8 {! X2 l; b0 b9 H* |endmodule

評分

參與人數 1Chipcoin +5 收起 理由
tommywgt + 5 回答詳細

查看全部評分

3#
發表於 2007-8-28 10:56:04 | 只看該作者
還有一份講義可以參考看看- w" D7 v/ b; l
希望對大大有所幫助
7 O: r, R) B1 e6 ^# ^! t  Z" u& W
; W* N" C0 R. ~2 d/ a1 L * `  r6 l  L3 o2 j' E  \

' |( k5 F7 ]5 S  |- {
遊客,如果您要查看本帖隱藏內容請回復

本帖子中包含更多資源

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

x

評分

參與人數 1 +1 收起 理由
ycs1977 + 1 謝謝小朱仔的資料 受益良多

查看全部評分

4#
 樓主| 發表於 2007-8-28 11:18:33 | 只看該作者
感謝小朱仔的熱心回覆- ?$ f; x( b1 e9 n; N6 S
不過我電路要自己畫 還有我不會用Verilog耶4 o7 R  N) Z* H2 `$ ~' f: V6 i) p
現在主要是要有電路圖 可以用Hspice模擬的那種( R; p" m9 O. ]$ E7 C* y
另外希望inverter越少越好 因為要求要省電! 還有要自己layout!* {1 g: h! x& Y

/ G* D. F  n4 I& ^6 Z$ B- I樓上那份文件好像裡面有寫到 趕快研究一下! 感謝分享!- O9 Y4 K' z/ B2 m% h6 e
! X5 R& L6 E; b- N) B
[ 本帖最後由 monkeybad 於 2007-8-28 11:23 AM 編輯 ]
5#
發表於 2007-8-28 16:05:34 | 只看該作者
你那個要自己動手畫CMOS電路吧... 9 l/ P! J9 E- ?) @9 }8 U; w5 `# j
寫code習慣了, 真的很不想動手再做這樣的事, 不過推完booling equation後, 直接用Cmos畫出來不就好了???
# h3 ^/ C/ S; A5 D0 ?沒錯吧
6#
 樓主| 發表於 2007-8-30 14:21:06 | 只看該作者
恩恩 不過booling eq好像是在推導一些輸入輸出的條件" y& k* [: W; R* s
6 q7 q) z7 a' W5 ]5 X
記數器參考一些資料後 找到一個用ripple counter下去修改的
* i5 F& W# b; _+ o0 cripple counter就是用負緣觸發的T型正反器串接在一起 $ o& x. F' N/ S# f4 I, q5 M
接著開始從0數到9 然後數到10的時候
' f$ z7 x+ X) C6 \$ t就reset重新從0在開始數
7#
發表於 2007-9-3 15:08:06 | 只看該作者
ripper counter真不是個好主意, 不過要看應用, 在有些地方用時倒是好東東...
8#
發表於 2007-10-23 11:19:59 | 只看該作者
我很好奇某大大說的講義
$ L! v2 o- o  }- r+ \. R- F% o給我看看寫什麼吧
9#
發表於 2007-10-23 20:26:00 | 只看該作者
我這裡有時鐘的電路圖..以送去CIC下線..可提供給大大參考看看!
10#
發表於 2007-10-30 01:52:19 | 只看該作者
我看一看那個問題,要我聯想到CODE,一時還想不起來,真是太久沒有寫程式哩!# M  k$ {2 V& a, Y, ?
看到CODE,有一點恍然大悟的感覺,又接著看,害我也想看那份相關資料囉!!
11#
發表於 2007-11-9 14:57:32 | 只看該作者
BCD conuter 應該是對自己有所幫助
12#
發表於 2007-11-14 23:29:59 | 只看該作者
bcd counter對初學者的我而言真的好難; [4 W+ h% x7 R8 T0 }  [
謝謝小朱仔提供的code囉
13#
發表於 2007-11-17 16:58:54 | 只看該作者
大大別忘了給小朱仔 "感謝"* G9 {9 f% d+ Z! `/ P. O2 u

/ P& F( k: }" V9 B! C按評分, 就可以給感謝了....
14#
發表於 2008-2-22 17:34:54 | 只看該作者
Let see the shared material. THX.
15#
發表於 2008-4-24 07:28:10 | 只看該作者
幕讲义之名而来,呵呵勿见怪啦.                                             
  A! Z* W% p2 c( N感谢
16#
發表於 2008-5-21 10:42:39 | 只看該作者

回復 3# 的帖子

感謝各位大大的資料 對初學者 真是受益良多
17#
發表於 2008-6-2 11:53:25 | 只看該作者
感謝大大的分享∼∼∼∼
0 a% c9 n9 w6 ?. g( ~4 Q& Q因為你的無私,讓大家能學到許多知識
18#
發表於 2008-6-2 22:10:25 | 只看該作者
我也想看看大大分享的講義~~
6 n6 q+ X" Q9 X$ U3 X回覆來看看囉!!感謝蛤!!) a4 q$ o. }. U/ O. u
因為我是初學而已!!
19#
發表於 2008-6-8 20:55:26 | 只看該作者
你是要畫電路圖的方式設計~
, k4 h3 n# d: }那畫畫卡諾圖不就好了.... 只是比寫CODE還要麻煩....
% M3 [! m0 m% ~3 {因為要接邏輯閘!! 7 s. h2 D! G, i3 P8 i$ e
用卡諾圖化簡!!
20#
發表於 2008-7-25 14:41:52 | 只看該作者
最近剛接觸這方面的東西
! ?4 R+ _" Q' \# G
1 w0 O$ J- Q6 L: r  n6 s剛好需要這些資料% u# P9 K$ v2 I5 y

  `  i1 n, N2 H9 \: q. w" ^3 y感謝分享!!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-9 12:15 AM , Processed in 0.128007 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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