|
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
) ^9 I" G, b+ h$ Y* F/ X Zmodule s4_7seg(clk,rst,6 c( {$ t0 V( X& E6 l5 D
6 k0 W: O B' P/ G- c
s0,s1,s2,s3,# S5 Y1 f# I) G' q' u) X6 R0 `
9 }, H1 n5 `2 n d0,d1,d2,d3,d4,d5,d6,d75 g8 c) U0 ?4 r% a5 o I
5 N+ m3 a) P: k" _
);
9 Y. ]( |* I; c' X
: v# m- ~5 u/ U/ `- J0 k) Y2 i6 E input clk,rst ;0 t! L9 ~8 V- O
. {; t* \6 T" U0 U1 z: Q" N
output s0,s1,s2,s3 ;
0 b& i, @+ B$ U& E) B9 L4 J0 i2 Q
: f& K; D/ i' _! \ output d0,d1,d2,d3,d4,d5,d6,d7 ;
& k. V- _- S K& j, | n' h& p `+ U0 P- A0 P- N0 N7 r5 d
reg [2 :0 ] state ;# }7 |8 H% {1 v% K1 z( \
g/ w) l* k% u2 [6 X reg [2 :0 ] sn ;
# ?. f8 A9 ]+ I1 H6 A, z8 x1 p. y
) B3 \* s& M6 Y* |; w1 q reg [7 :0 ] data ;
; w6 f: {, ^% c* G" J! G8 D7 B# A* P1 _% Q* u! Q) v2 {' F' u
reg [23:0 ] cnt ;
( C b- Y# q4 \+ x5 E! ?/ o" q6 Q; O% J9 L- ]3 s+ d
: y }% q/ W) L9 X" z' _& u' d2 c: z8 X. T% j9 `. B, Y C3 {" Y/ i
wire s0,s1,s2,s3 ;
0 k ^4 h( d2 Z# G6 F5 Y7 J) E' p& |& ^
wire d0,d1,d2,d3,d4,d5,d6,d7 ; - a7 r7 W4 }: v" q# Q& c3 J
6 G u) L( v; {4 q7 a% }
assign {s3,s2,s1,s0} = sn ;2 X2 `; P6 c* R: |: m( h% z$ ^& i8 \
& U/ M* d; o' c2 a0 M assign {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
( b5 e) C5 G: q! b1 E+ n" b- Q/ {9 `1 G. G4 @5 p U+ S
always @ ( posedge clk )+ |. t) T; `/ `$ l+ ]# v# m- O/ ?
( y1 z' _9 k1 v6 G& ]& |/ a if( !rst ) J% k2 ~ z3 [
8 l2 ?: \( t1 [2 @ h2 i- H
cnt<=16'b0;
' _; D b* {: l+ Z2 D# S2 j1 o+ q- V# |3 W% r0 c% a9 b
else
2 N0 s Y3 ?' v8 |# q$ x4 s
1 V0 B* J$ ] w o cnt<=cnt+3'b1;
2 S' _ [* z# O, V8 L5 M# y; d, Y) E" {
wire clk_slow = cnt[24] ;& Q0 X j& Q* B" H
, N' N+ [ \6 f
always @ ( posedge clk_slow or negedge rst )
7 c* W6 w! k" a1 q2 {! n0 Z" ]3 w% N1 i; w; T' @- p9 k, F+ J
if( !rst )) u0 j' }* W3 k
2 [( T" P7 d5 \2 h7 I' S& r state<=3'b000;2 G9 t5 O8 h" [' \* @, j" F! h
) g6 S# @6 @ L' K6 x else
% h& A, R& p/ I, N* ^/ t+ p9 m3 ?8 z7 H- W( w$ I9 u
state<=state+3'b001;
# d: H; ^4 ]5 l# {! Q+ w7 ~1 H2 L0 M6 Y) l0 H8 n, J: f/ T5 r, s
always @ ( posedge clk_slow or negedge rst )7 u5 S6 R2 E5 s/ G4 ^# b h- O
0 J; E" F7 z; {4 T2 E
if( !rst )6 i1 \3 O- L9 \# x6 e
; ] ?2 W& U+ H* `$ V
begin
2 u4 P' R: P C3 q) Y" l
4 [8 b" V+ t% _" a sn<=4'b0;5 Q- L( |! \8 G* S
0 d* e A" P6 o/ E9 u% S+ g data<=8'b0;
2 l9 d4 C- ]! Q5 ?
' C; n, H7 k) U- o U2 v end$ @& U/ r8 M2 x$ Z9 g
, W+ R+ |& _, R) P6 g) h( I else
. _# R- [6 c1 S2 Z @$ L: f# ?6 v; G# m) [! D" Y4 n; l
case(state) @- F7 v) ^7 Q. t+ m$ }
# Q+ K) P+ `5 Y, L 3'b000:4 G4 E: E. j( w) q7 Q- F5 O S( D
4 X) g Y- F! T begin- s! C/ r$ p: R# Z
* `8 g) M1 I/ x# S* `3 G& A( B sn<=4'b0001;- a6 g* H/ Z1 y# O
) n3 |: k" R( K$ N data<=8'b0110_0000; h$ ?: T" k* _/ @+ @
& [0 L( C. l% K" [; o$ a end$ F- j% M$ ~ Y [5 c8 Z8 w
$ ^6 B. T2 A! R1 T
3'b001:" |* c" V# m/ J; m0 p
# w3 H- C2 ]7 ~0 F& x" e, w" u begin% n! X* `! a8 H8 C" B
5 t! N+ U$ S6 Y8 Z( S
sn<=4'b0010;
3 k6 C# H- A3 O" O X; X
9 P) D1 I q6 H/ e# |8 L data<=8'b1101_1010;/ P. D, e7 V( t. B- W4 \
" C; g" F. X; E( V0 r end8 M! ? F; z% g. \$ _0 m: a* r
5 O0 D6 D) a8 s8 O, { 3'b010:
7 a% u/ b! N- a, m! a& f- i! P# ?$ L: l# }
begin
0 \1 Y; V! |9 P7 d
. {6 ^6 n' n- ` sn<=4'b0100;
: h5 p) l4 X T
6 G/ P' I/ ^3 x$ ? data<=8'b1111_0010;8 y3 l4 v1 ?' U
/ I) C4 Z4 R5 P, \$ t4 w
end
- H& J6 y# ^# E4 Q$ O# D
% G' M4 z2 L, l% {* n0 W9 e# X 3'b011:+ A# y. W8 u' J+ G5 j
: m7 I( M+ T8 n; ?5 `) `
begin
2 C* ~" Y! [6 v B" B# c3 r: A0 ~- [ P
sn<=4'b1000;( ?& }- C, ^6 y0 o {
" U( }- w+ m. h8 R7 P
data<=8'b0110_0110;
* v4 B/ b1 b0 [+ d# y' o3 l/ U
1 @! x+ N2 J5 P' X+ A0 {( n end
; M, ^6 \' Z R- O' ?0 H: l. |, l8 x; }2 ?0 b+ \) M
3'b100:
% D( D9 {& J+ {3 i+ d8 t
2 |9 U. \5 N3 ~. \$ N begin
, a& n* k8 O" j; D( ]0 m2 z" U6 n) j8 I$ u% h7 Q. l+ o( m+ r
sn<=4'b0001;
* i2 M1 S& \, F4 f) C" c4 O2 e: C+ O6 s- h8 b2 e. ?
data<=8'b1011_0110;
* }& L B9 t4 {3 W
* F. J! j; C- {! s# b6 h5 R1 _ end
+ k3 b$ t! X* }0 C3 v2 U1 D1 f/ E6 y9 \7 o( A, B1 j# f
3'b101:
% M, y+ u' j' h+ t4 D
& N7 D* t9 N5 g+ K4 b( `9 j' \7 t begin
7 {4 |/ V U) M0 ]1 q
! V* H( t+ g0 X$ v- h2 y sn<=4'b0010;& @- u0 T& D, O$ z6 g9 t. R4 H
0 n2 _9 a3 H- ]0 v# i z8 a
data<=8'b1011_1110;
* b/ _, e; o, W0 f G: v9 n4 q3 R3 M0 g7 a. D
end7 H- F7 W& _8 s4 n8 p& L, ]1 _
, i% h) `: u8 B/ v4 Y
3'b110:
5 W. f$ {% F! k
. x; i6 Z6 R8 h% B4 T e- R begin; }& @) P i0 c: E+ m# Q
. ]/ c: d' J: ]2 b
sn<=4'b0100;' e' Z7 A( [3 q2 s4 ]
6 h1 U; @4 k9 o% L" ?/ T9 W# I5 y0 ?6 b
data<=8'b1110_0000;
9 O, J9 K. O$ {" P' \8 u( _/ Y1 h, B
end5 J( h( z' ~" w% A% ^
$ _- F+ `; t' A( \, C6 Z; a 3'b111:7 A4 _/ b8 d- j s- e" x) ^8 ^
- j$ R$ B4 M: ^' E! q begin
; r$ u( d& d0 S+ b, B3 n( d7 `# {
. y, f5 G+ l0 ? sn<=4'b1000;
6 @* X# f* B2 G# T
* N# J, G' {- y: ?" K% i data<=8'b1111_1110;' p- Q- d* G% e& o
0 Z. L F/ @* L1 L, y' I
{2 j% Y: [3 e4 [. H$ a; |
( c5 O3 R# K8 x# l
end7 t! P% b) m U4 V
4 l7 G8 S& q1 H* s7 N1 R( y endcase8 H1 o5 G" q. u6 b/ |5 m0 {5 J0 ]
4 S$ {0 E m$ x" f0 a# y, I9 ^: z
endmodule
: V' S+ D q, z9 o2 c( {$ Y
" X8 u! f& b" s3 V" W6 b0 z- ^8 u这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?2 L9 l5 a H( w; z0 u+ |) K
|
|