Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-28 10:40:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題9 \' d+ r; `4 m: |8 I
小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區
1 |# H' i( C2 Z5 D如果不是麻煩版主修改一下囉0 h% F% e- O# i9 ?5 q

0 C6 G! }1 K  C0 E6 w/ `9 p目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一個0-5的記數器開始記數/ y6 g4 a4 K8 y
總之就是能夠記數0-59, 個位數記數0-9, 十位數記數0-5& }  P6 F+ K* d6 F0 x
5 \, c# @4 W5 ~) E+ b0 J
請問各位有人有設計過這樣的電路嗎? 或是要去哪裡找相關的資料勒?
$ X$ ^2 e/ e3 X1 M8 K謝謝!

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2007-8-28 10:52:11 | 只看該作者
原帖由 monkeybad 於 2007-8-28 10:40 AM 發表
+ Q! f) @# ^( E" c( O  L+ b如題
8 f% E: X! b( c( L) q小弟我目前在設計一個時鐘電路 需要一個記數器 不知道這個問題是不是屬於這個討論區
& n0 i$ E* c& q3 C/ O  S+ H& F! s如果不是麻煩版主修改一下囉- E2 x6 b6 f; a, ]& h2 K* T
1 j5 N( F: l% v3 y$ w
目前這個記數器要能數0-9 接著就進位 然後自己reset繼續從0開始 進位後訊號再繼續由一 ...
8 [3 B( _" ]; }8 P4 A+ `2 `

6 X  q: s# w: j) d# a! ]6 `! `大大您是要寫Verilog還是電路+ K. W( F! s: u! H7 j5 O- G
( A! f- O' s0 R0 R
先PO個RTL Code參考看看; n1 E% T0 f3 W4 _1 ~3 G
. e* e* ]' N, ^7 j1 H8 i7 O! P
輸入:N clear load clk
3 L8 u, q3 S" g$ S9 o" E4 {輸出:count4 L; v9 Y. O% A/ o% X' R

' ~! V3 f5 P+ Q6 ]: U行為描述(依照優先順序)- c) L3 H7 v3 s8 k7 f% p
1.如果clear為1,則輸出設為為0; B  @6 Z4 H: z4 H0 V
2.如果load為1,則輸出設為N' q' S; k1 W: @7 H, }
3.每個時脈輸出遞增一次(BCD)8 r% F0 K: q, ~: A
1 U  A7 m% \4 f, o. @
' d6 G- s8 a: V+ C9 Q
. H: E- @. ^- M4 [" T
程式碼:
) M0 M+ C. V( t0 a- J% k4 pBCDcounter.v
/ {- ^/ {& t5 u. T4 U. j
3 P, {+ z, G, _0 ?module BCDcounter(clear,load,clk,N,count);5 m+ b# E1 J: o# }1 n8 J4 L
input  clear,load,clk;
# T% {" y+ f9 o7 {5 j9 e( [: Minput  [3:0] N;) n* t- w4 E+ e0 e5 v
output [3:0] count;
5 |1 y0 |# X1 p. J: t3 }% ureg    [3:0] count=0;* p1 }4 R1 m6 ^: [& a# ^

! P7 S; ]1 ?8 p! s! J# n$ Jalways @ (posedge clk) begin
) M" x7 ^$ q2 k/ x, [& g  if(clear)                 //clear=1( b, P( @0 d4 r6 n1 T* N6 g
    count=0;
/ Q! r$ S3 w1 y1 H2 ]6 K  else if(!clear) begin     //clear=0(共有0 1 X Z四種狀態)2 d8 @3 p  z6 o  @& \
    if(load) begin
8 P3 F5 F: [, s0 F0 |' o      if(N>9)  l# s5 E8 X$ P6 n, u
        count=0;1 h* Y" u6 h9 a0 F* K! A
      else
0 o* ]* ^8 q# p* ~& O. F$ H( L        count=N;
9 S+ F: c4 _9 z5 {8 Q    end
/ T- v3 [. ]; k( {3 C% W) U    else if(!load) begin
9 C8 i* P" t- K; Z6 C" @  [8 C      count = count+1;9 z: |6 j( Y' L
      if(count>9)
0 E9 S7 w/ T5 o: `  b      count=0;
& ?, m7 U; f" J+ H    end# ^  R4 Q- J8 S) f8 A$ I1 T
  end: T2 c+ l; V& ^& V7 m! B/ @. Z
end% D/ P$ j' Q; v) q
endmodule4 u( _/ Z" v- |! C
9 H6 d( j' ?/ v- ]4 @
bcdcounter_tb.v
) C* x! i: [0 ^( w, \& Y) T
: G' n# z1 R, \4 t0 y& v+ B  r  xmodule bcdcounter_tb;! V) ]3 ?' z8 \& M
reg clear,load,clk;
2 z; q1 N0 X7 V5 Treg [3:0] N;
+ n$ I( J/ r2 n2 swire [3:0] count;* z$ h) Z5 N$ u% v0 U1 s+ t

7 A9 n; |; a& J! b7 PBCDcounter m1(clear,load,clk,N,count);5 K1 z" Q, `1 h+ v: s6 E. H7 y2 O) y
+ Y3 o( H! B+ g, u
initial
. \/ ~: q6 U; M8 @clk=0;1 ]8 X8 {- j/ ^9 q) e1 a( i7 e% r8 _  ]
& l( F3 g; T# ~6 K0 n
always #2 clk=~clk;
* }4 h4 Q2 W- s! Q% B6 ~; |
' n$ i6 N9 H* k6 [initial0 X& r1 x: V  O$ F' O+ ]) u6 J/ q
#160 $finish;9 i/ m  e+ [) ~. ^1 N" y
7 O/ o6 E5 u. k) G, G3 i
initial begin
0 e% A1 w& R" b0 v7 {. G' A    clear=1;
1 b' `( ~  c4 {  h% R4 G9 J) F#4  clear=0;
7 B' E9 P: O8 T& d#90 clear=1;( q; H, J+ j2 p' {! F% w
#3  clear=0;+ P/ Y$ h5 c  M( Y8 [' o
end
( O1 E. r" ]1 f) x6 F4 P4 t/ O! D
, \6 L6 M5 q9 z; Y$ ^initial begin
$ w9 A" o) K" `9 }     N=6;load=0;) p% i8 C5 Z6 ?, t, _
#58  load=1;, ?( @. y' t; x# g: [
#2   load=0;( Y- S+ p$ g3 H1 W+ h
#22  N=12;9 H  z5 F) z  ~/ g
#40  load=1;
' @+ h+ H$ p0 v; K#2   load=0;4 n. b, b* M- f
end+ ]2 n% L/ U# ^

4 X3 C1 A2 F2 }endmodule

評分

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

查看全部評分

3#
發表於 2007-8-28 10:56:04 | 只看該作者
還有一份講義可以參考看看) \6 W1 ~8 Z$ }' V9 x
希望對大大有所幫助
+ n& K7 f! J/ c$ e7 z. |# s
) D* b* Y) {* N! U1 U8 K6 F  m( _
$ i$ T. P6 F0 E
4 e2 O5 m- d5 i
遊客,如果您要查看本帖隱藏內容請回復

本帖子中包含更多資源

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

x

評分

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

查看全部評分

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

, t7 b( U$ j9 m0 B3 t1 V6 `按評分, 就可以給感謝了....
14#
發表於 2008-2-22 17:34:54 | 只看該作者
Let see the shared material. THX.
15#
發表於 2008-4-24 07:28:10 | 只看該作者
幕讲义之名而来,呵呵勿见怪啦.                                              8 z% P3 l$ {; _  S+ T; [7 e
感谢
16#
發表於 2008-5-21 10:42:39 | 只看該作者

回復 3# 的帖子

感謝各位大大的資料 對初學者 真是受益良多
17#
發表於 2008-6-2 11:53:25 | 只看該作者
感謝大大的分享∼∼∼∼) f9 |  s4 J2 m1 b% n. x* u
因為你的無私,讓大家能學到許多知識
18#
發表於 2008-6-2 22:10:25 | 只看該作者
我也想看看大大分享的講義~~/ z8 }9 C0 O. f) P3 |
回覆來看看囉!!感謝蛤!!
* k$ @$ u' K& c7 h; d* t因為我是初學而已!!
19#
發表於 2008-6-8 20:55:26 | 只看該作者
你是要畫電路圖的方式設計~
. `" q% b/ q  @2 i% k  W那畫畫卡諾圖不就好了.... 只是比寫CODE還要麻煩.... 5 L2 W# d. R: E- D; s( u& D' ^# ^: G
因為要接邏輯閘!! 9 K1 C+ `/ L7 R: U1 v
用卡諾圖化簡!!
20#
發表於 2008-7-25 14:41:52 | 只看該作者
最近剛接觸這方面的東西9 o$ V! e; J" z4 C4 g( ?

  {% e: M( C" k% `; ]  {. R剛好需要這些資料7 _" S5 d' K1 B7 Y) [5 Z3 k* ~

4 c" N# R4 }% D# a0 q5 P感謝分享!!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 09:18 AM , Processed in 0.193011 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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