|
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
; c. Y- `; W. @* |/ t$ Mmodule s4_7seg(clk,rst,
, M( Z* G0 i, f# b7 w4 Q
2 R$ W) C* n" \; G s0,s1,s2,s3,
1 r9 }" U% `9 v0 q: k( ]) r) Y5 ?6 ?+ t/ O7 K, l# |
d0,d1,d2,d3,d4,d5,d6,d7' x) q/ A' q0 M* l! E. _6 s) Z Q
4 s- g Z ~" ~. v- [! W, x
);8 R( H9 U& e: o+ O
# H$ x) q! u3 P& {% W# a; y& K input clk,rst ;% `0 R. x% o) W# Y) V
" s( k- H9 l* M/ m( z
output s0,s1,s2,s3 ;
& m( E9 F% g4 Z3 y" y, W1 b! r5 O3 ^: d5 C: t
output d0,d1,d2,d3,d4,d5,d6,d7 ;
5 W" y7 V' D$ i* l0 W8 i$ D% e5 l+ K( [! j* o! H9 }/ d( V
reg [2 :0 ] state ;/ E! z! y0 J3 a: ^5 W/ {) l* {2 [+ }
4 R: | m% P& g* b+ h reg [2 :0 ] sn ;6 K* A$ E0 `+ q2 a3 ]
1 `, N k9 I/ D( E. x9 r
reg [7 :0 ] data ;; \$ f8 C7 s2 r# I! W0 R- a
% |3 ~( }& |" Y reg [23:0 ] cnt ;
+ H8 T) L; w$ t8 g* ^* v9 }* Z2 [2 V: S R
/ e# a {5 k5 J/ i, }1 B
2 v& U/ n$ V7 e1 i wire s0,s1,s2,s3 ;' f/ I. t0 P. Q" D( G& m0 z0 ` z
: R$ P, H+ r$ [& V wire d0,d1,d2,d3,d4,d5,d6,d7 ;
, [ c v: c9 |/ f; f0 E* c
8 o3 G' E4 u( C$ o$ j4 e. o. O assign {s3,s2,s1,s0} = sn ;" Z/ G/ Q/ m y+ L
" D" ^! @/ }0 }0 g5 ~ assign {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
7 A( w! G% t; @
, g* k$ _: K" [+ z* e always @ ( posedge clk )
; C0 k0 p" ~8 S E1 w" Q/ p6 P: T1 J9 g: O3 W, `
if( !rst )' u2 M5 r, I2 i% s. I
) t+ m2 K( i, q cnt<=16'b0;. V% k# l- @' S0 e
' c8 N' g( E( l( [8 \* w! X else( o3 ?, v' a' r- R% y1 I
1 e) C. _) W: F# N8 f# y cnt<=cnt+3'b1;
( g7 l" C1 x; e9 g* p# j5 z6 s: G1 Y1 p" h* M" K0 h
wire clk_slow = cnt[24] ;6 A8 T9 g# d- \ U/ |7 x
6 @1 ~1 V9 y0 v8 U! d" l" l
always @ ( posedge clk_slow or negedge rst )
# E# g, R0 x: o7 e* X$ i& j. z, G( N' {7 d8 V4 V8 Q/ O
if( !rst )
6 P( z, ]9 k: A5 ~. l- b V% u s; D1 G
state<=3'b000;1 Q8 S, ?$ R: _2 _: o% Y
* s% P' _% _5 c7 v# U$ ?8 X
else' U- j( I1 [2 z" T" v2 Y
# n1 O# q9 B" V state<=state+3'b001;
* ?1 x V% }( O- K5 x' i: Q
2 j( U& h( E, y( w0 q6 ]+ d always @ ( posedge clk_slow or negedge rst )
; C7 _' R' Q' T4 Q3 K1 }9 x6 a* n, d3 ~% ~
if( !rst )
1 u# Q' ~* A' I5 J; |
/ O, e3 [8 B) I# \. z0 G begin8 {/ z6 ?# z" @" m
2 {7 _0 S0 E0 y7 |
sn<=4'b0;* P: d' y" ]2 t
6 D8 ?- X5 H- t6 O! `4 E
data<=8'b0;7 d' ~" v2 a) b# c
, b8 D3 C* ~& N0 t/ z5 h1 Q
end# Y& b0 h8 v/ V+ R
% }3 A! ~% Y& ~9 i2 \5 }! b1 z else5 d/ Q* e, I" N( _* Z, @# F9 a
& R( F" t O! I$ d; M5 |4 Z case(state)! Z8 k* c. V: d( j& Q. T
1 d: k0 v3 m6 a w* Q 3'b000:
) c% E: x6 p& i/ F, |% Z3 Y" w) M% f: Y6 a( X! _& \" |3 M8 S3 u
begin
% B9 k6 H+ q X! T: N' l+ j$ x4 n, P1 `, ]
sn<=4'b0001;
5 H" w$ F! H- d$ s+ a8 |8 G$ u5 T5 m! T
data<=8'b0110_0000; ' B& h9 C; R( _# r6 ^+ J9 A: l
/ {- B" y3 j9 D- D: u( \ end' k( Z; `7 }' ^9 C
7 q; s$ x9 r! l3 e
3'b001:- `6 y5 K4 ^% @' i
% h% M4 E; o" G
begin
0 D- G5 C6 d) W. x) p( U3 X z% ]4 u. p4 ^
sn<=4'b0010;, M8 e% _# Z7 q/ N4 ^3 m+ @" H Y* z6 z
5 g) ^9 d8 X- V t# F- G
data<=8'b1101_1010;* Y) O7 f/ k1 Q
6 Y& U/ \" m W+ p0 L$ H) y3 Z
end) F% S% U* k& z E$ A
: n7 I: e% R: ?
3'b010:. ] P" `3 {4 Z# a2 O* i! r
" n+ U# G* T; N% O a
begin& t) w. V0 ?- \$ i B7 Z' \
/ M D& g& e' w$ @$ l sn<=4'b0100;
' Y( ~9 K7 @$ L, L8 J, b4 X/ F, h' ^* D2 K4 o
data<=8'b1111_0010;: x3 W/ J* z8 b5 e6 M# H: h
4 h, [7 R v" }) j+ e; a
end* m; ^3 O" I2 _/ t' v
/ R8 c- ~. K4 h% y. i5 K) h
3'b011:/ F2 S2 A9 ]7 r, H6 s4 g
* c3 D. ?( ~* ~3 P6 d5 ] begin' T0 r: v. O3 n9 Q) z" \
8 @- A; f% V6 D3 G0 F2 C) { sn<=4'b1000;: L+ Q9 Q) X/ q. Q. H, s X) r
I; o$ L9 ~2 h; z1 h data<=8'b0110_0110;
' `: s8 t& A: s
: R9 h$ b' r7 W end
/ ^, U. s5 X8 B* V- `- L l5 E: G2 P0 ]! D/ Y( b8 { r
3'b100:
% x$ k/ A+ L$ A/ @1 e' a! e
/ s! R* p2 i1 N9 j begin
/ I0 {6 m$ {; v {+ r' B
5 ?2 s( N7 j( M2 u sn<=4'b0001;3 \# h# |5 d2 l7 n% h
9 b1 ^& o: J) R" r. E% r
data<=8'b1011_0110;) X+ ?4 R1 N/ B# a% k6 o% F' n1 q
8 U0 E7 n9 O' a; F. R
end
$ I7 D. d0 \. B7 U4 y6 `. |+ t# u- r: c, J
3'b101:
$ q# k& u& {* Z7 T1 Q6 T0 c6 X9 x5 |" _( S7 H6 S
begin
5 m b* i x! @' L7 G! P/ W" F4 l* a5 o) v
sn<=4'b0010;, ^0 E% R# ]% w3 l( W+ v
6 @- T7 n, x1 }( o7 p' m; D
data<=8'b1011_1110;5 ?! g+ @4 D) m
m# d+ Y! {) [3 u8 D# q( M0 m; |' z end% b7 { t7 u, d
- P0 z! H) H$ s7 i; S
3'b110:
: G% U5 v* ^, u: n; |! O
$ f& A) s; C8 ~* \ begin/ M" Q0 U" W% |) ?0 p
8 m+ t' N; G; j& Z+ u& g% W sn<=4'b0100;
, d8 ?$ E% S: F% j7 D/ U6 @5 q* A) K
data<=8'b1110_0000; e- H( U+ s0 y) n6 w
- i+ p5 _) k5 V- _% g; L# v
end
, S: Y( E8 r8 d f$ {& o) y' I( E1 Y& G5 W8 s# s
3'b111:- L5 a' }5 ]+ Q
# _. Y' ]& t' x9 }" |4 x; ?* F( R- k
begin4 U: V. K% U x4 e1 ]
+ t2 I: T8 Z9 ~3 @6 J9 R6 w% R# G sn<=4'b1000;
3 Y5 ~' @! {4 n' X; Z
- }3 z7 T+ r5 e data<=8'b1111_1110;
9 v4 b* Q- A8 q! O- D4 @9 `/ M$ D" c7 l% b
! { z; _5 m& d' y; Q6 ]" w
! x5 M: R% M. Z V
end
' ?0 y9 F7 O& s& H, } S% ?7 _/ g- q! A0 _5 `
endcase
8 e$ j0 E8 C+ D; z# P1 T
; U. f5 N/ s- Q. m/ Y& A# I& ?: rendmodule
+ X6 Z# e B# @: y; A, `( {* Q: `- N, o6 i! J% J* K5 z
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?- \7 i) ?0 R4 X) ?" Z
|
|