|
我也來寫一個5 ` u0 D. N& t0 ~
輸入:clk, rst: U2 J) ~# Z$ K
輸出:tens(十位數), units(個位數)7 S) t) B# I0 V k: {& p' D- Q& A
, ~. O+ B! j0 \) I4 U% R7 l, {code :
; R! O9 r6 e l6 c; V. @
5 v0 |3 U7 `( ~% h2 [* vmodule BCD(clk, rst, tens, units);
4 j9 j, |7 P) c input clk, rst;& y# j" C* F, V8 ~* L, ]
output [2:0] tens;
, P, j; i2 u( S. f output [3:0] units;, s+ z3 y' }2 B0 x
reg [2:0] tens, xtens;' i8 m9 p5 e+ V0 j/ r3 @9 w
reg [3:0] units, xunits; ]/ {2 Z& V4 D2 i/ L
4 J5 a J& N: ^) f4 e) J
always@(posedge clk or posedge rst)
S" ^3 x6 n) y; m3 c; e2 g begin7 a: G( t# r c" h D$ P+ G
if(rst)/ Y0 X6 R; d9 P% B3 j
begin
% A# ?: v; S- }: U$ X tens <= 3'b0;+ i. A0 U9 U# _1 F% h% t
units <= 4'b0;
H) ], O/ `6 h9 W, D8 z0 W% t end
4 g1 G S& @1 b else4 P7 S; |, A' D. p* N4 Y* W
begin
( p6 ^0 J Y( r) @( b" h0 w: O tens <= xtens;
# u) J- l) P9 _# ^ units <= xunits;
( x2 F* c" U7 v( @) n. @: F end
* {4 ~0 s: [3 P! I* [; E end
8 m0 W9 D$ _2 x5 l4 X1 y- V
! t+ d$ C( ]; l: m always@(tens or units)
4 n& j& K# D, X begin
0 Q$ m, R5 o h' S+ B if(units == 4'd9)
4 I, q7 Z$ D# K' i begin/ D& ^* E% R- S. _' _2 j: x6 i& w
xunits = 4'b0;% ]1 n/ l4 _2 _
xtens = tens + 1;* S9 A: v7 p* N
if(tens > 3'd5)
/ b2 N# Q* m/ Q$ T+ K xtens = 3'b0;1 M. l; N+ E% u& v
else
6 ^- M5 }" u! E0 x# d5 ^6 M' P xtens = tens;# e6 b7 N- V# N
end5 \+ x! |( x# F5 b, c
else
" H' s( S6 {& |/ @4 E% p6 h- G/ v begin+ H: b( w; ^( o6 a1 ~5 X$ X- c) T
xunits = units + 1;
; ^& \2 C9 s# v xtens = tens;2 q/ [" _7 u/ Z2 ]8 w
end
7 N9 M9 q: v5 E( m end
8 Z/ m. X C" o& A$ I |endmodule |
|