|
我也來寫一個
3 F! t1 X9 d" h" S; c% d輸入:clk, rst
. x$ k. g7 d( v輸出:tens(十位數), units(個位數)
7 Z9 |9 V# ], u8 r; `# y N( X, I* i* R3 z5 b7 r) n: F% [
code :
: }) T7 U% D2 y: h3 J
' ]% q6 n; H) A' ~7 f7 X! _module BCD(clk, rst, tens, units);
+ i, d+ E" p' D( V, D input clk, rst;
" m8 \+ `5 I: z" v/ u output [2:0] tens;
, K6 \( E7 l, I0 A, \ output [3:0] units;
$ N" A) z" O' e |3 [; D. q0 @ reg [2:0] tens, xtens;0 v; a M1 L) G/ M* `6 O: b7 `
reg [3:0] units, xunits;
# u0 T; I0 |' f7 {! I
' M" I- X% e/ h4 O always@(posedge clk or posedge rst)2 j6 C! H+ C" j! w( S
begin
0 k# h8 r* E) X: J, ?5 f5 h; i6 o# @ if(rst)
7 Q) S D* M8 y" i+ Z# R+ I$ l begin" A i* A! j; A- ?# j$ a6 |( d
tens <= 3'b0;
4 a+ V! C0 a) [) J; B7 b1 a units <= 4'b0;
! X, |0 S9 q+ Z9 t: l. r. Q0 m$ j m end3 A6 A6 y- S& }2 `' Z
else; T$ j3 ~/ Q' a) E8 W! y
begin
/ m; p5 l+ y/ r( m! B9 f# f$ E, U: z tens <= xtens;
! h. u" I4 K4 U+ [: a units <= xunits;
# @, S1 h# g( i& l end
3 y$ {4 o! s; n" \9 Z2 k! G, D# @ end
{) c8 C+ o3 p* s* {6 O0 C, M( i
# D8 s! \0 D6 n; b" a/ X" y always@(tens or units)
9 |1 {( a5 D0 }9 j- \, x begin
! N. G2 g# A( c& [# M; @4 i if(units == 4'd9)
% ^# S/ a& F- E: ] begin& J8 q8 c* f/ n5 N9 G; ]
xunits = 4'b0;4 Y# q( _" v* q; a, `/ E' c. ^" |
xtens = tens + 1;
( n: P% a/ k/ I) U' f. Y% N- o if(tens > 3'd5)
. y1 U( `( o) q9 T- v) T) }; g xtens = 3'b0; z4 [6 b. j2 K! R- g) w e# i
else# W, D" X$ \/ f y$ e
xtens = tens;
- A, r) G+ u1 f0 H$ b& Z4 q* L end; e( T* X0 M9 H& [0 b9 y2 k8 h
else
* o# Q% h; G, y5 |- y- P$ r begin O2 ~4 ^3 e8 u1 X) k& k5 @# M2 K2 |5 q
xunits = units + 1; c- M9 r; x! Q# ?) U: J, d8 T! P
xtens = tens;" u: ?4 { B9 s8 D6 h, @0 [2 q
end
: i2 A' B) e3 k8 _ l end
+ W* x' l' o' `0 w3 t* N: nendmodule |
|