|
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?# k2 R- w6 W7 S ~- h/ K% K1 E
2 h/ v. A8 z4 T* q8 B& n/ @4 qmodule s4_7seg(clk,rst,; M0 L! ~! c6 k+ t' Z+ ]2 a( {
, \7 L- v; a7 u* D2 E
s0,s1,s2,s3,
% Y5 d! t; t% ^# g) k( K* y1 Z$ B Y( l& c* M+ |
d0,d1,d2,d3,d4,d5,d6,d7
4 U& r4 Q2 e; F5 M1 S4 o9 j1 X3 E* s. c
);
( A1 |/ [( z/ k7 r
, d0 G8 x+ f: t% l1 M8 R input clk,rst ;- |1 |+ g& P# @! M3 u' W+ _8 i1 K
* f; l5 M1 G0 N1 A' C
output s0,s1,s2,s3 ;
& F: C; Y9 \9 W2 H( k4 Q
0 e% E/ Y7 V: f# ?7 q output d0,d1,d2,d3,d4,d5,d6,d7 ;) ^' \/ P- R( B& A- K" n
$ @2 @2 D9 X% U reg [2 :0 ] state ;! F0 a* q' p( H! s# T$ @
: B2 d. B" g" T( Z& D reg [2 :0 ] sn ;
5 ?) F% y0 A/ h& f( ~; G+ p2 n/ u+ M( N3 ?0 I) R
reg [7 :0 ] data ;
3 t' v) N* y' q h' A4 G
/ G% z4 M' z) ~( f1 ]6 r: z reg [23:0 ] cnt ;4 z# S; \( _, \! k! @/ ]9 j: j: ^
, g8 q. n- A l2 P! ^
5 Y0 u8 C7 @3 I7 w/ ]! n/ k$ J7 @
g; u2 |6 V& q6 l1 x. V" R. k wire s0,s1,s2,s3 ;- N* v8 X' B K; G+ P$ d% }
- T: `9 n$ E5 g' J! ~, q
wire d0,d1,d2,d3,d4,d5,d6,d7 ;
6 Q+ D) ?9 \* Z+ I
) _4 m: V* Z7 l0 L assign {s3,s2,s1,s0} = sn ;
: t1 \+ z9 W4 m
! H! K: f+ E. K% S. _/ d assign {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
/ p+ [8 i$ L+ w) o5 a" }
$ r: s j8 [9 _. O Z always @ ( posedge clk )% i8 F% F4 `0 N' f* {
" B& A' n, w" a# W6 u: t1 }0 R
if( !rst )
/ o9 j9 R) a* ?! s1 n; C% d; g0 `& k: G9 Y9 H$ @3 o
cnt<=16'b0;
* s/ G/ j$ w- N1 M9 @
2 S! p( [, L/ `( f& H# ~ else
" K/ n3 h, y# k6 \
) D4 u7 W' `9 ^" z. j1 | cnt<=cnt+3'b1;
8 ]4 a* \) T4 x' w
+ m" _- Y; s: R; Z1 \1 k8 z wire clk_slow = cnt[24] ;, P* b) f" A. F
3 V2 M4 T* j6 \. q9 n/ [% v
always @ ( posedge clk_slow or negedge rst )2 p" K- z: X- p$ |- s
9 r% C u' {6 ]: N if( !rst )
# R6 k5 Y, k$ }) p; _/ f0 `6 ^
: K; t5 _) Z9 D8 U5 f5 o state<=3'b000;3 _1 @3 |9 R3 \. r( _
' w3 J6 ~5 X6 n) k' g else3 ~7 h( P1 F: P, c6 k1 h5 Y
V) J$ i+ \( U: o2 Z" M& w3 D
state<=state+3'b001;; l2 i+ d8 u1 o! M
# ]: I$ U) ]6 W( Q" `6 A2 [3 C
always @ ( posedge clk_slow or negedge rst )% h, h3 z6 ` k6 O1 W" g
5 @, L/ @3 p m% _( k) n
if( !rst )
$ R2 l' k; ?0 r$ j) @& R. S& u) H& ^5 f: I: L# L$ s) D
begin; e, ?( a& F* c( y- D. E! Z4 E0 I
% s+ I4 }+ T+ l$ d- N u
sn<=4'b0;, E4 \$ g3 e. W F# t+ {
/ C/ P2 n" [0 @1 t0 m5 ~1 z data<=8'b0;
# P4 \2 j, m0 O$ _1 o* N$ c% n: o" x# v) y( [; Y1 f9 f6 E' N
end
6 J+ ], c+ a4 f1 C) |7 X; B$ D. y8 a) i8 c' D/ L$ i% N
else
( s6 N5 X' G, ]
6 M* ^2 L1 Q7 }/ N3 c u* \ case(state)
0 r8 F# C! o# P1 g3 _+ c# \
8 @3 Q& g: r% k1 C 3'b000:* [& O# |- \( l. {- R' T
r+ p* h O# W# l1 k
begin
3 Z# S7 s; U; X$ F) Z& z9 ?
( G4 I" f C, [; T9 O/ C, \ sn<=4'b0001;8 }- {0 o+ F% o5 D& R" |
" V2 Y; u1 k* f# m+ a data<=8'b0110_0000; ; K" \2 W" V, b
9 v' [% u7 T& ?4 ~5 h7 P& Z8 @3 W end7 \4 ^+ D7 M7 U
, k7 Z' q3 W: y' I1 A 3'b001:' Y3 J" B1 e0 V7 Q- o$ G
/ M2 d; c. D/ ?/ g0 G9 I
begin
0 f6 S: L k6 J" B, I
$ s5 Y/ f0 m+ ?" d/ T1 R4 p( W sn<=4'b0010;' S3 t* o, c6 j$ u8 |$ p7 k1 C
6 f: |$ S4 J; V1 N2 q2 N9 c
data<=8'b1101_1010;
0 V7 Y$ h1 ^8 |) T9 V
( v [% I. h) Z3 k/ v end
2 W; j U1 n! E! e; Q2 O: J9 v/ ^6 y( O; y9 Z3 M& q1 v
3'b010:4 k; V' Q' p J( G
9 q2 _. ~; t# l- Y' E6 B6 w0 S begin
3 U4 m4 ]1 g% [+ C: @1 \. D' W7 _, J( B! a+ J9 o
sn<=4'b0100;
9 D' ]. o4 {9 u# R' x( q
' p1 _! W9 E3 K3 v: X6 y7 v& v3 ] data<=8'b1111_0010;
) y+ X7 R+ n5 }- E# `& a3 A3 W7 P. ]4 L, E) \
end1 E+ S5 \* V1 Z, i* c
- A4 F3 w! ~1 `8 |" j8 z
3'b011:
2 a& _6 O; ?2 ^) p, g" v0 u3 |4 i5 v' O" S
begin, V/ u9 m% G9 b: r- j5 A# @
+ T2 U/ D4 Z! E# S4 \9 T: _ sn<=4'b1000;' x+ l ? L% u
/ y# {3 b2 z9 ~1 }; V$ P data<=8'b0110_0110; f- A# W# I/ }
+ {' K: I7 B6 ?; a o" Z
end
- r5 A/ d$ X0 @+ P# x( ^7 K9 R% G0 t# L i% c
3'b100:, k F3 A2 v" C* u- y) I
$ l, ]; O) |, s
begin5 T, h! w, V5 o( _
2 ]& M# O! x2 N# G
sn<=4'b0001;0 |, u: V$ A3 D1 o
) R5 y- I8 G4 v2 H4 h) x data<=8'b1011_0110;
% r0 T) k! @" ]% Y! c) h/ i; ?) `/ E) z0 w8 T. g' M
end. @: d) y9 K+ l" l, ]
& R6 }; [. }6 C- Y3 s( T D; K; _1 v
3'b101:
) m, E2 ]* V7 T
+ x4 N- i; g# O# m begin
5 B& j. ?/ {! `9 ?- Q4 b% W5 L; j3 I. Z
sn<=4'b0010;
0 I6 I) l7 I8 m/ q
0 C% W% w' m2 t) S! F- V2 ] data<=8'b1011_1110;
+ T/ ~- E% U! i4 I9 F, o, z
1 h! Y$ E$ m7 N' H end
* V+ i* f. }! u4 r( Q3 k$ |) i; C4 x* _- \6 Y4 I/ {6 t
3'b110:
$ l9 |% [: T' n8 M3 v; T
0 @4 f5 H' D8 o, A- Y4 k, G9 x; V begin
y; u" I! ]) Q0 X
4 E% u5 e! F. D2 Z) x1 M) u2 D sn<=4'b0100;
5 I$ A' {4 g. c8 H2 ~+ B: s2 k
* g% l* n) v; C1 o data<=8'b1110_0000;# K7 i- H3 A1 D9 `3 \
+ U8 y7 l, Z; p) ~
end5 c% W% m, U( l8 _. s
9 n" i$ t3 E# y% |+ I 3'b111:' c$ W% V& @: y" ?- E' F! J
' t4 z0 w4 J! l r# L
begin
; B6 f/ U# J! @. |. B& a+ @; R/ N
4 J5 I, ?+ P0 ^5 b0 J: c sn<=4'b1000;6 k0 c6 n& Z9 t. h E8 g" H& P
0 k' [! C% m/ N& ~1 O3 i( j, p
data<=8'b1111_1110;8 j! i" Q7 { L' {0 u
t- J6 \3 P! T- [) ~, }9 K! _ v1 `" z( H: {( i( {! y4 u
y# u+ k& r. | I! E! j
end! i o( }# x% C6 e1 D; s
# O3 Y E) C& r6 d endcase, F- t+ x% D6 a* ~( E* e ? O, k
* \' q3 ]' C8 i" J1 x) N' @
endmodule1 i; c3 X. s) s- u7 |1 h
! _7 g- S& @- R& a" n这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
/ j M6 ] c- L# W$ m/ S5 @4 A |
|