|
module test(reset,clk,down,seg,seg10,segA,sel);
; T3 I$ e, @2 L8 i: O Vinput reset,clk,down,sel;/ z# w1 c" p7 D- a) V. ]- Y
output [3:0] seg,seg10;
! j8 n( ^6 ^. F0 Z% \& f1 J9 ?output [6:0] segA;
8 Y+ _9 Y- i9 [% }, N9 Kreg [3:0] seg,seg10;1 e. Z) H8 [3 Z! _
reg [6:0] segA;
h1 K! Z4 H! D2 R
1 l) i; C4 R$ S) ~0 aalways@(negedge clk), U* h( t0 J7 h9 r/ V
begin# q+ [$ Q. S" `+ F
if(down==1)9 |) x7 U% z2 M3 ]
begin+ S) N' C4 V j1 [0 ]0 \ v
if(seg==4'd0000)
5 x' {) w! U) Y4 N' D3 G# U begin
' l* u. k5 _5 l/ r ` E seg10=seg10-4'd0001;
' g* f. z: F% x# J seg=4'd1001;# H" V) T7 g3 R2 |
end$ W' K+ D- ]+ [" Y1 L
else7 C6 ^' ]- V& ] ~9 `* o* x- R9 R
begin' U" ?: K3 {' A6 C$ h1 G' {, d: H+ T
seg=seg-4'd0001;
" k5 q7 ] |( a3 n$ R4 E, |' a end3 p# Q. O5 n# |, m- }5 i0 |3 p
end2 m1 ~6 `& M; Q s# R: P- I0 z
else if(reset==1), z3 M( N2 v# j
begin# b8 p' c6 c6 B2 c# g
seg=4'd0;
0 o) }% ^! `' ?8 ^: Z& v3 v seg10=4'd0;8 m8 \5 }7 k$ B' v
end , c$ \+ [& [. w. S3 d
else if(seg==4'd1001)
* j! P9 Z" ^- A8 ?5 P! Q, b begin' n6 t: L* N5 m) J) t, T; O
seg10=seg10+1'd1;5 K6 X9 N* r: o
seg=0;' ]+ s! x6 g5 b) f! `
end
6 D" o$ K# y4 r U5 c% W. v else4 Z% ], b2 M6 N0 h* s7 Y3 Z1 d
begin
7 J0 m) }5 C- W seg=seg+1'd1;+ j9 G' K x) b# k2 u; H
end$ Z8 L; p! @; R: v( ~0 z
4 D/ p, x2 Q2 Q' d6 a if(seg10>4'd1001); Y0 r8 b, S7 I; d5 N9 V
begin5 l# `* b: M0 e5 H. e
seg=4'd0;
0 u, N. C; y/ A& O- l. e) m6 N" M seg10=4'd0;
: D) c+ A; }8 n# g" B end
# j. T3 W2 _! F1 V8 P if(sel==0)
+ _5 K4 C; u. ^5 f) Y* {4 n begin
0 G2 ~% q) I+ N0 a, ` z mm(seg,segA);, P+ `( x0 o% T. W
end
; B3 B. i9 _( F' P. s* ^end $ o7 ~* b5 n' W7 W
- K4 Q# d* w) k! l9 ~ task mm;( Q% w' {! ?9 P& e* P k( o
input seg;3 v+ o# ]9 _9 }
output[6:0]out;
+ T9 ]+ V% v( Q+ E+ b reg[6:0] out;
4 G+ q( t1 C4 A begin
" a. R) Z' \6 K9 Y1 [4 C case(seg)& h7 W+ l* ^. _2 B1 U
4'd0: out=7'b0111111;1 O. s) J) |+ ]5 M) \8 f! }# h0 Z
4'd1: out=7'b0000110;
. a3 j# s, G8 x7 G 4'd2: out=7'b1011011;- X7 ?, K7 F9 @1 T; M5 w/ z
4'd3: out=7'b1001111;+ R0 q) `- j& {6 E6 B& c' z' G# X6 w
4'd4: out=7'b1100110;/ V) m( k/ \& f A% F: [- d# |5 ~' W
4'd5: out=7'b1101101;
3 e5 x& J) T6 H( a- Q6 V 4'd6: out=7'b1111101;6 c& f" K0 Z4 \ ?. | b% X8 P
4'd7: out=7'b0000111;! {% w5 ], K" A. Q- V Q
4'd8: out=7'b1111111;) S, j4 }& W# R; |3 V6 G. n
4'd9: out=7'b1101111;
3 c3 Y8 f3 |$ t' H7 K9 `) z: E default: out=7'b1111111;2 K9 L- R$ } t; E/ x4 I7 k( z
endcase4 k7 L' w6 L# U" L" o& X
% z: ?: Q Y' p' G" ]
end; B& {) [3 w) O0 l$ C1 y" I6 |' D/ J
endtask
" _( i3 F1 O0 m# D7 }6 Cendmodule ; t7 b* ]; V$ W4 S; J8 f3 \. Z+ n
請問我task任務是寫7段顯示器,這程式是說,當我sel為0的時候就會顯示seg所跑的數值7段,但為什麼她7段會變成很有規律性呢?
2 L- ?, r `" W/ a; p我的7段式segA 圖我已上傳 |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|