Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-28 10:40:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題2 K0 f: |% z% p5 ]  M7 F% G
小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區6 \1 j3 I1 i, @7 r
如果不是麻煩版主修改一下囉
! z% [) H' l  P: L! e1 G# }
# }. _* f. Q. ]1 m- T6 [* y/ s$ \( g: a目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一個0-5的記數器開始記數
& ?% Q  b0 s1 @' J* U總之就是能夠記數0-59, 個位數記數0-9, 十位數記數0-5( ]( ~* \1 }, x* y! g

. E+ y; t# Q/ |# [% o# n  B$ n. ~請問各位有人有設計過這樣的電路嗎? 或是要去哪裡找相關的資料勒?. j4 G6 u- m: G( k3 A
謝謝!

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2007-8-28 10:52:11 | 只看該作者
原帖由 monkeybad 於 2007-8-28 10:40 AM 發表 & {: x7 O5 }! M; o& Q1 s1 }
如題: w! r% Z9 B7 k
小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區1 U6 }5 X$ ]0 Q8 G( G2 y
如果不是麻煩版主修改一下囉. p% O, V- V6 D' o" R2 i
! f0 H8 U8 L7 i9 x) l" @4 Y
目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一 ...
" |8 c) b" |/ R5 t, Q- v
8 f. T3 u  e7 J( k4 M1 H
大大您是要寫Verilog還是電路) b7 c; ]: F: R, f: @* }' T0 a

. P3 B1 `/ o( ?先PO個RTL Code參考看看
* ~( U# r9 z% ]' E1 t
0 U; E, _5 @" A2 I' @輸入:N clear load clk0 {8 @; y* u& g, W# e8 P9 f
輸出:count- T! U- U6 c$ o9 t
+ b; C2 x$ p0 |  M3 ^
行為描述(依照優先順序)+ v7 Q: ]2 K3 w6 _9 E- f1 g
1.如果clear為1,則輸出設為為0/ y0 c: U$ F4 e- m- m$ C
2.如果load為1,則輸出設為N/ h: ]3 C) L* F9 F
3.每個時脈輸出遞增一次(BCD)
% h) w  {: k* K# E- ~
; K( f% i8 M3 o6 {5 Q9 ^
3 u- e8 I3 T/ l3 c  q- S% l" M( `! n& y2 l1 J; S, F" N
程式碼:5 `3 f0 Z7 U+ U" ~# v0 ]8 ~
BCDcounter.v
1 H7 H! C2 h4 A6 w' }* U/ ]2 F/ {$ C3 K; O
module BCDcounter(clear,load,clk,N,count);  L) t3 ^/ {1 i6 l. j* V! ?) S2 G* j
input  clear,load,clk;, s* ^1 |( Y! L/ c
input  [3:0] N;5 R5 Z( {' |3 L$ s* @5 a7 A  Z
output [3:0] count;' z* p; t; J, P9 o
reg    [3:0] count=0;
2 w- K1 `" l$ v7 D( g- g
, k+ A' y: c" B1 D2 ~  U. B& palways @ (posedge clk) begin5 A5 ]3 H8 a6 M4 s
  if(clear)                 //clear=17 X! J" s& |9 ^" f  k
    count=0;
+ i! o6 D; t. ]& K4 |$ G7 w  else if(!clear) begin     //clear=0(共有0 1 X Z四種狀態)9 {! W5 B1 o1 t8 p, }
    if(load) begin
' e' Y: Y" }8 u' I; n6 p      if(N>9)
4 h3 F0 \& G( Q2 V9 F        count=0;
1 \) B! ?! s6 L$ o" ?% K      else  U/ u6 K3 `( {7 {5 C/ {# `
        count=N;
: w( b$ w; r7 {+ d! H7 U    end; H( _/ g6 y3 }* d2 M: ^* v, F
    else if(!load) begin1 n* V6 ^0 k/ z. G  W
      count = count+1;
8 ^7 b0 y/ y; [      if(count>9)
" A. |) I) r+ ^/ c. f      count=0;
7 q" v) e& w6 H& \& b    end
" V8 i8 `2 Q& N  Q  end
  H' z7 t9 ?$ j. N6 s7 Gend1 L$ V% b1 Z  o/ l* Q/ d
endmodule
+ F1 E5 V0 T. A. _: i/ g5 c6 T8 h$ i: I4 [4 j
bcdcounter_tb.v
, m' \; B3 |! ~3 U9 y& ?2 ]5 Q; m! U' N6 S! t+ g
module bcdcounter_tb;. ~8 K" Q3 p: y* {
reg clear,load,clk;
( {, I& {3 v5 D% C0 ]reg [3:0] N;( N: e' u  L  B2 d( L
wire [3:0] count;
9 @3 }% b$ g# z+ A1 P& L2 L: p0 t8 A; n; C8 o
BCDcounter m1(clear,load,clk,N,count);
0 f' A0 X$ l* [2 z4 ]& |3 e
/ A/ j3 J% X( p9 |1 s$ E+ {0 einitial
- t# M: f( z$ l0 K/ O$ rclk=0;
% e5 x0 {- l! I- ^; J5 z; R9 e* K0 C& [7 X( Y
always #2 clk=~clk;
, v+ V" \4 D9 Y2 D* n. u; I8 K# c: ?; Q7 _9 |9 G- i
initial
' u5 A( `# U% W  q# ^#160 $finish;
2 V  R3 v$ O5 o  e
* D8 S- O4 U5 ?* D& Ainitial begin
- ]4 R) @6 |% f    clear=1;
6 u4 I4 _. D' c) a2 q, ]#4  clear=0;. N% o! }+ ]% K  b& f! [: ?
#90 clear=1;
. B0 u( ?/ S2 p0 @6 @; \/ x4 ]#3  clear=0;
7 Y* M, }9 ]9 Hend, a5 B" q, c8 i( M

; [  o5 r6 L) ~5 X2 x$ Ninitial begin
8 C9 j6 B7 r0 O+ j     N=6;load=0;3 G: W( y9 F7 R! m
#58  load=1;* e7 g/ @+ K2 R6 s+ U9 h7 @7 _) ~
#2   load=0;
7 G$ M: \# D/ Z#22  N=12;
; b9 I: R: @3 T7 X; |3 Z$ b#40  load=1;' H  T! w) {3 O( \. B
#2   load=0;, V' C. |" v" F1 K. s2 p
end
6 {- c" I/ p! s# e5 y6 ?1 K( T7 U0 \2 r
endmodule

評分

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

查看全部評分

3#
發表於 2007-8-28 10:56:04 | 只看該作者
還有一份講義可以參考看看
+ \8 H9 Y& J% A. d% f6 O4 i) d希望對大大有所幫助3 l. H7 S$ P( U4 m
/ {$ g* [- [; m+ a/ i" n  F  N: @

' y! z9 a) \4 m- y9 `- f" t6 I
$ O5 o3 C7 N- C; b% D. \# \/ A
遊客,如果您要查看本帖隱藏內容請回復

本帖子中包含更多資源

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

x

評分

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

查看全部評分

4#
 樓主| 發表於 2007-8-28 11:18:33 | 只看該作者
感謝小朱仔的熱心回覆0 i; z- Q( _( i5 i5 P! ]/ F
不過我電路要自己畫 還有我不會用Verilog耶7 P8 w& E% A5 A4 |( G# M" K! A
現在主要是要有電路圖 可以用Hspice模擬的那種4 Z6 V/ W. W0 J1 {( ^! l6 o  G  t
另外希望inverter越少越好 因為要求要省電! 還有要自己layout!, m/ ?5 u* k9 U
9 `2 b4 @$ j& O+ }# z9 C3 A6 Y0 P
樓上那份文件好像裡面有寫到 趕快研究一下! 感謝分享!
- `/ d( w0 ~) \
4 X* k9 }9 H" H6 @0 L3 d  L[ 本帖最後由 monkeybad 於 2007-8-28 11:23 AM 編輯 ]
5#
發表於 2007-8-28 16:05:34 | 只看該作者
你那個要自己動手畫CMOS電路吧... 1 L4 ~$ Q9 ~' m  v3 ^2 d6 V
寫code習慣了, 真的很不想動手再做這樣的事, 不過推完booling equation後, 直接用Cmos畫出來不就好了???
  ~0 n9 s' s2 n沒錯吧
6#
 樓主| 發表於 2007-8-30 14:21:06 | 只看該作者
恩恩 不過booling eq好像是在推導一些輸入輸出的條件
& W+ `6 o$ b  X6 _) {% d: N% ^
& @! G! s0 ?: P7 p7 b: A2 O# Q+ _記數器參考一些資料後 找到一個用ripple counter下去修改的3 K' Y& r9 L& L- n( G1 Z+ ]
ripple counter就是用負緣觸發的T型正反器串接在一起
! ]! ^$ I! @% _0 s接著開始從0數到9 然後數到10的時候
% e; q5 `- K- n就reset重新從0在開始數
7#
發表於 2007-9-3 15:08:06 | 只看該作者
ripper counter真不是個好主意, 不過要看應用, 在有些地方用時倒是好東東...
8#
發表於 2007-10-23 11:19:59 | 只看該作者
我很好奇某大大說的講義. b9 Y8 N9 D0 d8 H4 y" T( r: Q3 t
給我看看寫什麼吧
9#
發表於 2007-10-23 20:26:00 | 只看該作者
我這裡有時鐘的電路圖..以送去CIC下線..可提供給大大參考看看!
10#
發表於 2007-10-30 01:52:19 | 只看該作者
我看一看那個問題,要我聯想到CODE,一時還想不起來,真是太久沒有寫程式哩!$ H, v% P& \* D& r" X2 E
看到CODE,有一點恍然大悟的感覺,又接著看,害我也想看那份相關資料囉!!
11#
發表於 2007-11-9 14:57:32 | 只看該作者
BCD conuter 應該是對自己有所幫助
12#
發表於 2007-11-14 23:29:59 | 只看該作者
bcd counter對初學者的我而言真的好難/ T: }) O# E% s7 l$ y' ]. D
謝謝小朱仔提供的code囉
13#
發表於 2007-11-17 16:58:54 | 只看該作者
大大別忘了給小朱仔 "感謝"/ b: Z( ]3 `, N) r

; ]5 A- G- r" X+ C按評分, 就可以給感謝了....
14#
發表於 2008-2-22 17:34:54 | 只看該作者
Let see the shared material. THX.
15#
發表於 2008-4-24 07:28:10 | 只看該作者
幕讲义之名而来,呵呵勿见怪啦.                                             
7 Z* |  i- x+ Y& O% P1 T感谢
16#
發表於 2008-5-21 10:42:39 | 只看該作者

回復 3# 的帖子

感謝各位大大的資料 對初學者 真是受益良多
17#
發表於 2008-6-2 11:53:25 | 只看該作者
感謝大大的分享∼∼∼∼
$ o3 K. [( ~6 X# D8 O* A- c$ l因為你的無私,讓大家能學到許多知識
18#
發表於 2008-6-2 22:10:25 | 只看該作者
我也想看看大大分享的講義~~
9 L7 B! ]0 B1 d7 a% H+ \4 q4 n0 r回覆來看看囉!!感謝蛤!!7 P1 Y# M, k. L4 }4 p
因為我是初學而已!!
19#
發表於 2008-6-8 20:55:26 | 只看該作者
你是要畫電路圖的方式設計~
* P3 H* a0 O6 r那畫畫卡諾圖不就好了.... 只是比寫CODE還要麻煩.... . {  S3 A* B5 Q: t
因為要接邏輯閘!!
7 j8 D; v$ Q" M- L* a! D2 j用卡諾圖化簡!!
20#
發表於 2008-7-25 14:41:52 | 只看該作者
最近剛接觸這方面的東西" i2 ]- D6 m0 Z, ]
( e' D. B# ]5 \2 e4 u; K& k+ q
剛好需要這些資料
# b  }! S/ F6 F& Q* l2 ^# C6 n8 c/ k" A7 R  ~
感謝分享!!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-29 10:51 AM , Processed in 0.132007 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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