|
我也來寫一個
f; X Q7 y2 h: [% P輸入:clk, rst0 e4 c- h* u H* b3 F) ?( K
輸出:tens(十位數), units(個位數). h$ T5 D7 o- ^0 J. I8 `" X& Q
p* P7 j. ^& W& [8 Y/ v0 s
code : 1 M% b; f; X2 i g$ [
O& m+ b$ z. D$ `; {# ?/ amodule BCD(clk, rst, tens, units);
5 ~/ x+ c3 R. u6 G3 u: G( z input clk, rst;
$ N' m; H. f; E8 w1 D output [2:0] tens;4 S& \) y3 S* m
output [3:0] units;8 ? L4 ^, O) l: R" Z
reg [2:0] tens, xtens;
# b" t: m* R2 j1 Y reg [3:0] units, xunits;
5 H( ?4 s+ r7 N, Z6 I9 U2 K- [0 b6 e9 ?1 D1 S- w7 b! i# Z8 M
always@(posedge clk or posedge rst)
: I6 t4 }6 S" B* C0 { begin1 {. S& c) G6 Q9 `0 P6 y
if(rst)
3 j# _, F4 \% J# S/ |, P+ d begin9 b w8 Z0 L% r+ k
tens <= 3'b0;
& J0 e$ D% U1 ]: {; { units <= 4'b0;
2 ?' n) `9 S; a( f end E" b. g5 C: N8 M
else
2 y, \$ R# |& T5 H: u' Z begin g2 r! n: U) n8 S# z
tens <= xtens;0 ^6 ?4 b$ B' p
units <= xunits;& {# o9 z* Q$ m+ D, _! b6 V
end
9 b& [" e1 `& Q! X9 n4 [2 t end: O; \, ?$ u) ]! N
3 @) K" B9 z# ^6 e! s4 H( Y always@(tens or units)8 e8 b5 ?( g- R
begin: W4 P. D2 }, I$ ~/ ^
if(units == 4'd9)
. n1 }# i. w* ~ @3 R' y2 w1 L: } begin* v1 r3 ^( g; r y0 e5 [, i% B+ I
xunits = 4'b0;
! w: O5 ~+ x4 k* J' |$ B( q1 q; \ xtens = tens + 1;1 H8 c k6 ^% e7 B2 ~
if(tens > 3'd5)
2 `" o% v, x+ d: o. p xtens = 3'b0;5 ~) f6 B, j& |( D
else4 f9 C5 u+ N. j2 ?( [- @
xtens = tens;
- S6 s* ~" {6 X' [ end4 M1 n( O2 x- w0 G$ [5 D+ k
else9 A; D0 q) `/ F) o: g; b8 d9 t
begin( h4 X' m8 D( c9 R$ X
xunits = units + 1;
6 }* b6 U' }& h' S1 e7 A+ W xtens = tens;
7 J" |* V! V. g: I( O& V( l end$ y) Q0 X$ h# u3 n% v0 i
end
) i1 y# m9 G8 ? b, [8 d- G7 n4 Eendmodule |
|