|
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去? S& ]% N/ `+ _0 @* Z5 z0 z
5 b1 i$ j5 n$ x4 L. Q3 |' w, Omodule s4_7seg(clk,rst,4 \+ ^# C6 E3 Y- q6 {# R
4 y7 ?/ B% U" g" q/ G3 R' U* B
s0,s1,s2,s3,0 n9 j' f0 i, J: P+ y5 b9 P
/ V# u$ h% G( s. p; @ p% m8 ~, P! T
d0,d1,d2,d3,d4,d5,d6,d7
0 n$ w- P4 @/ p2 D+ R( M# R- ]" l
- X# ~/ |' q+ {$ {, ^' g );- }( S6 z4 n3 H% v6 t( N
* {/ p: A. Y" p# y: y7 M4 o9 } input clk,rst ;: j y6 d6 l' Y7 }/ O
% d+ g1 Z& a( C- q9 Z
output s0,s1,s2,s3 ;8 C9 Q! u5 Q( M. _, @. R: E
' F" n1 |5 ?" N# M @ output d0,d1,d2,d3,d4,d5,d6,d7 ;" j( M1 Z6 Q0 s6 ^- n
7 q$ o; _: N' a# Q$ J# }1 ?: R/ E* H
reg [2 :0 ] state ;) s c# p1 B8 W! k4 ~ @4 }
) r& J5 V$ z* h8 z/ M* M6 D3 N# Z9 k
reg [2 :0 ] sn ;
+ T( D' U; s+ r6 U2 ^9 S3 ~
; Z; r5 y- R3 |1 D7 S0 M+ h reg [7 :0 ] data ;
9 e8 T" }6 l/ _
6 p3 ]$ J2 H- V' I- w9 F& y! G reg [23:0 ] cnt ;3 @6 y% V' U% D" W( t3 @
% Z {: ] H. O6 p5 ~% I
, P+ [4 I, y, o$ Z& d/ ]. }& k
L* H/ Z. A8 n6 O* G2 D, w. f wire s0,s1,s2,s3 ;
8 U& m. C9 `) P/ o) o0 ]* X8 d! U2 k: `7 `/ V, G
wire d0,d1,d2,d3,d4,d5,d6,d7 ;
- Q, O8 b% ?; A) j" T) n7 s0 R/ S" I+ h" U& L$ Y% `
assign {s3,s2,s1,s0} = sn ;
- P/ ^ `; d3 q: P7 h
/ S; O% g# `0 U1 x- l9 I h assign {d7,d6,d5,d4,d3,d2,d1,d0} = data ;6 D7 }. P0 l- v! \( R( l: l; J
0 W- o* k3 r& G/ e
always @ ( posedge clk )
$ I- `, s3 X, E2 Y A* K' H7 R" M+ o1 B! V' X( K6 _+ o
if( !rst )* v: A3 B3 \! c1 [. M; v
: J. p: ^! m7 ?' Y cnt<=16'b0;
2 C- ?6 i8 A5 j" L6 d, @" l! o3 V: W" o- C" n
else! O6 s) w& x* p! X' j! F! i
2 n2 E0 f' b; h1 F3 p5 [# {
cnt<=cnt+3'b1;
* w" x9 v6 @& {; A5 ^
$ I) ] w k9 _( F; N1 _! H6 J/ ] wire clk_slow = cnt[24] ;
- ]' o& d. B3 D8 J- o# U x8 d9 d$ e
always @ ( posedge clk_slow or negedge rst )
, a* ~3 C" |- N) p! q1 S) H' p4 [6 t/ K# I! h/ {
if( !rst )6 Y! r' m4 {$ ~( v: o0 g
! `0 [5 s1 f [6 Q state<=3'b000;5 T+ R* t# G: A1 O/ {, Q
+ q+ [% s- z; s( o S9 G! F& q/ G) r else# B+ f, h( Y& f5 ?% {
0 W6 \0 p. ?% E+ B' V
state<=state+3'b001;
2 R- H M: z, N: ?7 }& c
5 @% V J$ @: f& o a& ^ always @ ( posedge clk_slow or negedge rst )
+ n4 w2 `7 q( |1 E6 S7 N4 J4 B8 s, k0 ?
if( !rst )
! U# `4 A2 D$ x% \/ m
# `/ b* z, P% W, v# z begin
4 h+ {9 K# O) e$ u' F
) z, i; n! l2 e2 H) F' }* h6 E sn<=4'b0;
$ e" n$ o$ p* o' g% j* e- t! B
4 P% r6 Q1 N2 `$ W7 J data<=8'b0;% F. u5 X7 C0 A! |! ?& P) X: J
3 M: O' R$ i% z5 \( V# Z end
1 g6 Z9 S. c4 {4 x/ Y, E4 p9 K' O; C F$ d* I- p& K7 w. N
else
9 E" m9 @ I' l
" Z3 x' j5 O, C. R) j# _, W case(state)$ u+ h! W8 }+ V) o1 r! {0 y; L
4 u) c9 l" ~; W5 V 3'b000:
6 |4 T* I2 ]/ _% i+ d# k8 [. o& `" q$ p/ h+ S% e
begin
* |/ O9 U9 b% A( S$ I+ q
9 X* a, ]. y$ |' G6 u sn<=4'b0001;
; T& ~4 u7 p6 b ]5 }" O* b2 p. d5 O6 @3 Z6 {1 n
data<=8'b0110_0000;
& V' G: x: m: R0 o! z' A
) }2 X5 E9 R! w- r* D end) U/ C7 h' \! w; a( o6 k
, E5 ` ^5 o, O+ T1 R 3'b001: w& o( n: B% {: G- Q( A, V
; m. t1 z0 P" P* u6 ]8 V/ z9 s
begin3 d; f( Z4 l' j
$ {4 ?% i! {( ?, Q$ R$ M sn<=4'b0010;
# o. Q4 r1 R- |0 n5 j
0 e% u! j1 r9 G8 e$ P data<=8'b1101_1010;
; D. k0 @3 i/ Y4 Q: F2 @/ g1 K7 x! E1 i" z
end
' u9 f" `! D; p& z5 b, u6 M; a) m E
3'b010:
' C- m" g6 U+ y& _. h
/ ^- K# M* J ]5 A- _; V! G% k begin$ J2 L2 ^- Y8 n( ~" c" m5 m
- g! d: f j, P7 x B. m2 C' P sn<=4'b0100;. r1 q+ d; F6 }
; @/ k2 Z4 w7 ]8 R2 X+ |- B U data<=8'b1111_0010;1 @# p/ E% Y& F H
/ d- ^6 V# r, ?& Q! Q end
3 l: T9 O2 o* e- W; M& G( q
0 ^6 G. i' e5 Y& f$ v 3'b011:! ^/ W6 ~- L5 [ A( M% k
3 N+ B( r/ ]% K0 _ i begin7 p/ D& a9 M$ Y2 j3 N, p6 g
! Y+ W5 C9 x/ n" Q( c, Z sn<=4'b1000;; s- p* D4 ]" v* ?. _
" Y9 G/ E, m- Q- ~! a2 X
data<=8'b0110_0110; H# w( o+ g4 Y% o' Y& ~/ U
" _# w7 y! w; O- B0 [ end$ K, x7 d1 b0 ~( d" Q7 ^9 Z6 x
5 s. x5 i2 l8 w: Y 3'b100:# D; M' @! Q/ N2 U+ E
3 a/ O5 @0 O- @ v
begin l, J4 n7 d" t) I
6 W. T8 e7 F! ^4 F- v5 ^6 V8 ]' g sn<=4'b0001;
4 y; x7 u/ N& L, V* o6 r+ F9 b0 F8 e! ^8 r1 T7 Y* l( N! i
data<=8'b1011_0110;
# F" ?+ J* h" I$ y- p* ^" ^
3 A) _( P! p- ?( p. [ end7 \- b3 P5 c! v
) C/ B3 w! U+ c4 P 3'b101:# C& j7 W+ J, Z: v0 e
8 V" `2 e0 H6 f+ `$ k6 ~/ H begin7 {# l9 J8 t; |, E$ a
6 E' ~0 P+ z0 y! [$ r, @% S; O5 o
sn<=4'b0010;
8 s) ]' `' K% o9 n- ^- x A' S+ B) \! Z( G; y, L: D
data<=8'b1011_1110;# D- t' e, K" ~; L% a
( r" d) b) Q2 l! C" w2 B+ f* q
end! L! X" a# T- [) m% |& G p
z1 L1 {- ]0 G. A 3'b110:
7 n/ {3 ]0 c) k8 d7 Z
# g' `+ d" J- P& a" D' E begin
3 C( o' w* j: d+ `! |' Y4 t8 I
8 J& x X% E2 q7 j7 P% ]+ Q sn<=4'b0100;
, P# Y( W0 ~5 c Q8 s; J9 g/ p% a
data<=8'b1110_0000;4 X% p: B+ d6 S4 j" X7 g2 P
0 E7 P2 W1 H$ H& U end. Z: G `7 i- @% E: A
7 [1 T, ~9 s" Y/ K) u% ~
3'b111:9 i. ?1 r I4 `' A; V0 T$ G7 ^
4 q5 P- U' T7 v9 `$ M. }) ?0 O
begin, G4 ~# a9 A$ _ _7 _. o* d% _
) L# x4 J8 \" e1 h) Q! [3 _ sn<=4'b1000;0 Z. t, A1 }$ x; f0 O% O& a5 @
: G, C6 y l" [( \ k data<=8'b1111_1110;# t5 E. ?& L/ x8 D& R: J- F
" f* i( q' z. w- [1 B7 h, [
6 z. Z' R; M1 U6 e! m) m9 Z4 V3 L0 h- Z0 m% V3 B* A" U5 A1 n
end }8 w0 e; C5 R [1 Z8 ?+ U _
: C( h9 ]8 C2 X1 N2 L( z9 P endcase" i8 d/ b8 x: e5 a& j; m. W0 F$ B
! b# I# U" A0 _
endmodule
- _5 x" }( P) n2 W. Z% j# _0 _# }, ^1 |0 Y5 D8 ^% }# r2 \- O( a
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?0 v+ r" I8 k3 U3 k4 p
|
|