Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-28 10:40:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題: l  d: ~: {8 P
小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區' m3 k5 Y7 T4 `( k$ X
如果不是麻煩版主修改一下囉
  w' i* M! o+ c8 B
% d8 M; @* N! {" t; l目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一個0-5的記數器開始記數% k" [6 k% f( B1 A2 p" t
總之就是能夠記數0-59, 個位數記數0-9, 十位數記數0-5
9 n5 z" s% h; z  y, B( V& D& u6 \% {+ u
請問各位有人有設計過這樣的電路嗎? 或是要去哪裡找相關的資料勒?
! \5 F  `3 }' ~謝謝!

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2007-8-28 10:52:11 | 只看該作者
原帖由 monkeybad 於 2007-8-28 10:40 AM 發表 % ^. a# z* s0 r4 p# ?+ @: Q
如題
# S) a2 J7 G* @" x& i小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區
$ l; J) ~! X1 q, {  f; s如果不是麻煩版主修改一下囉6 f1 q& {4 L5 p" G( R$ ^- g& v6 [
* d9 ^6 ^3 B2 w$ L/ F
目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一 ...

& X5 l/ B+ Y% c) H
$ Q+ q; M2 ^* U0 m大大您是要寫Verilog還是電路
' h+ c5 K: |7 `* H6 N* W) _* l5 z5 F5 f$ d2 q8 \8 k
先PO個RTL Code參考看看* l0 ^9 T0 s1 x7 `. I

5 B5 h% b( f8 A1 b& |* e輸入:N clear load clk
7 `* ]  m: @2 e! `4 q/ Y/ v輸出:count
% Q) u% y/ C% I( A% H$ y0 a8 F, q
3 K9 f/ T# s* A+ R2 v9 O行為描述(依照優先順序)* ^% p# z7 Z) ~
1.如果clear為1,則輸出設為為04 Q2 o1 _: H$ }! ~0 O
2.如果load為1,則輸出設為N
1 X; W, s- q& ?# p. L7 U4 v3 T3.每個時脈輸出遞增一次(BCD)& X! M7 x2 R& w6 X2 H

6 `, r6 A) y% L; x. C- J0 t
' \; O- u& ~, _  \  I/ ^& Y. A- ~/ G) s; t) k1 g3 i1 U; o
程式碼:
2 t3 C. j( s' {; F) g( NBCDcounter.v
" y& B4 r/ n1 r+ c- f& x' `% y, M6 D( ~) N; ?/ d
module BCDcounter(clear,load,clk,N,count);9 k0 S* d/ }" |+ Z: G: O- v& d
input  clear,load,clk;" V9 \5 L" N- A+ ?
input  [3:0] N;7 p- G* e8 b* h' y0 l) f
output [3:0] count;3 r# K3 D5 Q8 m& x$ h
reg    [3:0] count=0;
; C$ M% c# z. Y2 `. |: t/ K4 x$ X; o
always @ (posedge clk) begin
* @4 O$ [2 d5 C) L8 S  U  if(clear)                 //clear=1
( n* Y# P; _' [9 f3 F; O8 |! h6 f& J    count=0;
' K* s* Z" ]2 ^" y% C. i+ }9 B: C  else if(!clear) begin     //clear=0(共有0 1 X Z四種狀態)
. L  A3 B5 p# h& |$ N# o5 `, v    if(load) begin4 r7 T! S3 b: i/ \( H6 m
      if(N>9)
; W( J& M8 J% s% a. J7 H9 Z        count=0;/ J& c% W* y2 y6 I+ u! [5 Y
      else
' Q  C) y, b% }. `6 X4 d& {        count=N;8 \' ]0 F! _0 |) V2 R2 X  M$ v6 F8 y
    end1 h4 c$ E4 y0 W- R! t
    else if(!load) begin2 Z' a( @2 J  Z% M8 q4 K/ I
      count = count+1;
( r* W: P- S$ l6 ]* G0 c      if(count>9)
3 H& }4 l5 @9 j& q& o      count=0;
" B+ b, z9 m" x3 h" f    end
+ W4 D3 R( P  p3 _  B* |0 L  end
. }" [% T! G$ [& j$ e; ?end
& F, ^4 t  K3 c$ [1 Y- B9 Vendmodule
$ X1 N6 i6 s) }6 R" y. I/ S# Q/ v1 z7 @$ l0 m
bcdcounter_tb.v
3 x4 h8 C* _4 ]! X
; x8 h7 j7 E$ y6 X5 L% ]1 }6 w8 Kmodule bcdcounter_tb;
/ E, b7 |: O, W% `6 d# `* U. Wreg clear,load,clk;
# e: {. p2 q) H4 Ereg [3:0] N;
: y! _' z5 x: W7 i* wwire [3:0] count;- e0 H) W6 h/ _7 s7 N
/ D4 k7 ?8 r1 [: L9 [# |' o) v
BCDcounter m1(clear,load,clk,N,count);
9 z: C! b6 i7 B( V3 j; Q, H* X' ?- c+ Y
  ~# p9 P- ?" c' B# c+ I9 \initial
; H6 d; M6 m5 Cclk=0;
( Q6 c- K+ z, `" _
7 }# W5 W7 a8 J' Ialways #2 clk=~clk;
1 o8 r/ a4 Y# a$ G: a/ q! T& k7 L# K+ u
initial8 P  Z9 {: ^+ l( O0 r' U: ]) |
#160 $finish;
1 A# T. e8 w# M1 ?" L$ m
8 v. M( w. b! D6 ?" L! U9 |) Ginitial begin
# n0 v7 n' t& e+ S    clear=1;# Y: \9 Y( U& g+ |+ ]
#4  clear=0;
8 U6 j" I1 _2 n" @#90 clear=1;2 q; F% d6 H$ l' a* p! a
#3  clear=0;
) G" @; C$ i/ h7 f4 ~end
/ h' u+ u2 h# k+ K) p& k& J$ l( R. x; D) x2 ^$ D4 u  M
initial begin
; J! t% r" w  u     N=6;load=0;8 r/ ?: u- T! f
#58  load=1;
* v) p9 t2 b/ E5 ]! d7 f, t#2   load=0;
* V7 J  f# j+ w* R1 ~2 e#22  N=12;
2 l, p3 L( ~& c1 |7 D1 T" W2 }#40  load=1;
$ T8 `) T  u, ?#2   load=0;( G) g2 e7 E4 M. z( [# O
end: s9 \! ]* y! W. K

" C; F' c9 H$ ?endmodule

評分

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

查看全部評分

3#
發表於 2007-8-28 10:56:04 | 只看該作者
還有一份講義可以參考看看7 C- V  [( N- {3 l: F. `
希望對大大有所幫助
" P- z# B8 T, u' d0 c5 ~' g8 {- N. X3 I8 |  w4 Z- d
' [5 r. X' g0 L" X
% O+ Z9 N& J) d% o+ d: M5 }0 y% M) y
遊客,如果您要查看本帖隱藏內容請回復

本帖子中包含更多資源

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

x

評分

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

查看全部評分

4#
 樓主| 發表於 2007-8-28 11:18:33 | 只看該作者
感謝小朱仔的熱心回覆1 w1 F9 [: s3 x4 D8 a
不過我電路要自己畫 還有我不會用Verilog耶. Y& ^: |8 X% c$ }/ o
現在主要是要有電路圖 可以用Hspice模擬的那種
5 c& v" w8 Y' \另外希望inverter越少越好 因為要求要省電! 還有要自己layout!
4 ^, U9 x* e7 a, v! G* I6 N% t' c( s
樓上那份文件好像裡面有寫到 趕快研究一下! 感謝分享!
' i0 J% A8 S3 m+ y+ c/ W8 k
; B$ d" l) M0 R( G9 r- }[ 本帖最後由 monkeybad 於 2007-8-28 11:23 AM 編輯 ]
5#
發表於 2007-8-28 16:05:34 | 只看該作者
你那個要自己動手畫CMOS電路吧... & C; f  @2 e  @, W4 [
寫code習慣了, 真的很不想動手再做這樣的事, 不過推完booling equation後, 直接用Cmos畫出來不就好了???
# o% x' g( t- \8 T' {沒錯吧
6#
 樓主| 發表於 2007-8-30 14:21:06 | 只看該作者
恩恩 不過booling eq好像是在推導一些輸入輸出的條件
& {3 g% N' @1 m3 i
- L/ Q1 ^: F' k4 U: @. b% K記數器參考一些資料後 找到一個用ripple counter下去修改的
! W( l1 j7 y- a' t0 kripple counter就是用負緣觸發的T型正反器串接在一起
  a' \/ L0 D, ~$ C* N3 H接著開始從0數到9 然後數到10的時候* T$ J9 |3 V! c* [8 K) M
就reset重新從0在開始數
7#
發表於 2007-9-3 15:08:06 | 只看該作者
ripper counter真不是個好主意, 不過要看應用, 在有些地方用時倒是好東東...
8#
發表於 2007-10-23 11:19:59 | 只看該作者
我很好奇某大大說的講義
- @3 ?0 N% l, A2 N8 N給我看看寫什麼吧
9#
發表於 2007-10-23 20:26:00 | 只看該作者
我這裡有時鐘的電路圖..以送去CIC下線..可提供給大大參考看看!
10#
發表於 2007-10-30 01:52:19 | 只看該作者
我看一看那個問題,要我聯想到CODE,一時還想不起來,真是太久沒有寫程式哩!. W: |- o- r# _: L2 e9 }+ Q& ~+ R/ W/ K
看到CODE,有一點恍然大悟的感覺,又接著看,害我也想看那份相關資料囉!!
11#
發表於 2007-11-9 14:57:32 | 只看該作者
BCD conuter 應該是對自己有所幫助
12#
發表於 2007-11-14 23:29:59 | 只看該作者
bcd counter對初學者的我而言真的好難2 L$ ~& q0 }# ~% R9 Z7 H1 [% A" u
謝謝小朱仔提供的code囉
13#
發表於 2007-11-17 16:58:54 | 只看該作者
大大別忘了給小朱仔 "感謝". k$ Q+ s* M# g6 [' o

5 i2 s  x% L. R" o9 a+ Z0 h# R8 N按評分, 就可以給感謝了....
14#
發表於 2008-2-22 17:34:54 | 只看該作者
Let see the shared material. THX.
15#
發表於 2008-4-24 07:28:10 | 只看該作者
幕讲义之名而来,呵呵勿见怪啦.                                             
3 [# }) j1 o( ]# V$ n: [/ z; R感谢
16#
發表於 2008-5-21 10:42:39 | 只看該作者

回復 3# 的帖子

感謝各位大大的資料 對初學者 真是受益良多
17#
發表於 2008-6-2 11:53:25 | 只看該作者
感謝大大的分享∼∼∼∼/ D9 e" J8 ]; {3 Y. p
因為你的無私,讓大家能學到許多知識
18#
發表於 2008-6-2 22:10:25 | 只看該作者
我也想看看大大分享的講義~~0 x9 i. o7 Q- U: t  O: P' i: d9 F
回覆來看看囉!!感謝蛤!!
/ k% u# Y  \% q9 e6 Z4 p' y因為我是初學而已!!
19#
發表於 2008-6-8 20:55:26 | 只看該作者
你是要畫電路圖的方式設計~( c0 o* J2 l* o/ U) ~
那畫畫卡諾圖不就好了.... 只是比寫CODE還要麻煩....
: L( A( G9 F* @: r7 Q因為要接邏輯閘!!
, o" j+ U" d/ h9 U用卡諾圖化簡!!
20#
發表於 2008-7-25 14:41:52 | 只看該作者
最近剛接觸這方面的東西9 p( z/ p( U: I- e/ o
0 Q" L! x$ n! z) ^1 a
剛好需要這些資料* u7 N" d4 p, B6 c

; H7 l) p# h5 A7 q& ~感謝分享!!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-29 12:58 PM , Processed in 0.132008 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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