|
我也來寫一個6 J! D: H' u$ u" Q$ D
輸入:clk, rst. r" c7 V$ K3 S9 c* o. N
輸出:tens(十位數), units(個位數)4 C, {5 Z& [" p5 D8 b% h
( f& y/ P- n- x% ?! n( Icode : ) R+ Y$ p' s; X: {# ~# x
+ s [6 ^* C$ ]& ]4 {module BCD(clk, rst, tens, units);2 j- p8 m# D0 j) _8 P) ~: }8 C
input clk, rst;
) B5 F- f& P2 I5 p/ E" N9 O output [2:0] tens;
( a# M5 ^; C' y1 j, r+ J k output [3:0] units;
; ^+ B# L/ m1 @9 Y) y/ P+ | reg [2:0] tens, xtens;# e) x+ i+ u- |5 ^ e$ \# C
reg [3:0] units, xunits;: d8 l) _3 k! z/ R1 b! \
& ?/ ?$ C. \" J7 j; N9 P
always@(posedge clk or posedge rst)) ^/ e, E, @/ C! I# M5 I
begin! A# u% J, ]; c& s) k
if(rst)) a, Y) R' z \+ w, v/ i9 m
begin1 r- L1 Y- y8 v# _" i1 ^
tens <= 3'b0;. I6 Q. |9 M! e1 s8 J+ V) d# X
units <= 4'b0;
- d+ J1 N( K! ]6 W6 G end n7 ~0 ]- `8 m2 t; U3 X
else
& G5 {& } y" j: v begin
S+ E) w" w7 @5 l tens <= xtens;8 E) Q: K& N" p/ H7 D
units <= xunits;' j4 ]( q q4 ~8 ?- U
end' U1 x+ u# M! s/ w$ B; J- P! N& ^
end) h3 e6 S8 u& R" _# u b" S
) o& N# D$ C1 l4 E( S' S7 I
always@(tens or units)
7 D! P- X, s; s begin8 A- N# P( c. |' _4 T% E
if(units == 4'd9)8 U1 v7 v+ J) `# u
begin7 d4 A! B+ h" T" X- L
xunits = 4'b0;
( z9 [' m! m* L! w J7 r; @ xtens = tens + 1;
/ |/ ] A: D; @ if(tens > 3'd5)
7 B7 h: X9 n) l+ m$ h. k% F xtens = 3'b0;( _& G: @& I! w' A& v
else/ T9 v) t$ P7 w, G$ G: ]- v
xtens = tens;
2 J! L# E. L# c/ c end
0 R- t) t6 N; o, w& \: ?# E, W. R else
w5 F! |6 I0 Y" H+ V3 v begin
/ I" N# ?& L" }" d( ?; j7 x8 } xunits = units + 1;1 x0 ?" D) R; X- h0 B9 v% h
xtens = tens;
8 K& G+ G# @7 f6 D end) e% A: q# y, Q$ B
end9 Q4 m5 T: T4 W7 O; J& M6 l1 c0 |
endmodule |
|