|
module test(reset,clk,down,seg,seg10,segA,sel);1 f. [5 k9 U6 E
input reset,clk,down,sel;3 d6 n% f% f1 s# D
output [3:0] seg,seg10;
8 ^9 d9 a' c( H; t' b, t- u8 Noutput [6:0] segA;# C( {+ Q4 \- r/ L
reg [3:0] seg,seg10;
8 u% x* P5 {; {# \4 A6 Wreg [6:0] segA;) S. |% E9 L+ H. J) e/ j6 l9 ` y& Z9 `
4 |3 j0 R2 ~1 g" F7 galways@(negedge clk)
8 `/ r- t4 N, A1 H9 K' B- hbegin" E7 w7 ^4 k: ^- y- W6 `& W
if(down==1)/ y: m' n$ j$ t& j
begin7 ^, Q5 T, _0 V
if(seg==4'd0000)
* l: b( q" H$ G/ L3 w begin5 [7 C3 ]6 f: {' f6 R# c. o
seg10=seg10-4'd0001;2 S5 @5 U% Q" M6 S6 ^0 }+ Z
seg=4'd1001;7 j) `5 K8 A. U J7 p7 x4 [
end. P: D& I$ r3 ^' s2 g
else
( q1 a i, ?" n: y: R; r; r8 T$ { begin
# y) F/ E9 I6 F) D' j$ d; A seg=seg-4'd0001;
! Z S# D7 g2 L( v end
+ ^7 o( X" Q/ H- b0 u* M4 O end7 v: P W$ ?/ i4 L6 Q
else if(reset==1)
+ J9 `, s. k( v7 ~& M+ E begin4 u4 f" Q G0 Q
seg=4'd0;. l2 w" h' O) g3 k u/ r& x0 ^
seg10=4'd0;5 O0 J7 Z/ j0 f& q+ i# S: g8 m. n
end : f% Z5 Y8 o3 E
else if(seg==4'd1001)
+ [# z+ g) G! O" _ |' B* b( o begin$ x) ?) b& Q6 o- Z9 V. o- c
seg10=seg10+1'd1;& Y$ j: P! @' c7 h! f5 G; Z
seg=0;! U/ B' ?( F* `; Z: I; k
end
$ Z8 W5 ]! f9 V else
: I: }6 h% P ?( ^2 N. }! _* F, ^ begin
$ x; S/ t. A& e x9 e( G* _' O seg=seg+1'd1;
8 ]/ d R) h+ X- J% t end2 c3 w n7 _) @/ y
, E. T0 Z& k7 t% ]$ z3 h if(seg10>4'd1001)% ^- m/ F2 Q( A7 O& S& q- o9 m
begin
+ ^ j6 s- Z2 g* Z3 {6 c$ F seg=4'd0;
8 i# {' d$ W7 l# q& ~ seg10=4'd0;6 ]& F0 l( Z1 w0 w, D! k
end4 M, I6 U# N: x; q& ^) ]+ ~% m' X
if(sel==0)
' A: h6 d. \: I7 Q1 p0 C) b) x begin. H. r+ e5 I% m) _, p/ R/ ]( C7 N9 h
mm(seg,segA);
& y/ t$ E) ~% M. q8 R { end+ g8 X! a* F5 n$ t% N0 K2 R
end
! Y6 S: i7 E3 w& x$ d( w
7 G' Z/ o m/ }: U) R task mm;9 X( j% |3 ^1 J0 i) S
input seg;/ N7 @" j. ~$ B9 \% I8 H
output[6:0]out;
. J2 j I6 y! t1 H: }3 M reg[6:0] out;
. f- Q3 f7 }# E9 `1 d begin
# w2 e( ^5 T- \1 Y9 p& W3 U$ V case(seg)
; n$ K6 {$ ~5 l, k 4'd0: out=7'b0111111;8 }& J5 p1 W7 o
4'd1: out=7'b0000110;
6 |, ~" V8 `1 O0 R0 X 4'd2: out=7'b1011011;
9 b( W( Y3 P' ^" T- ~7 u+ X. B5 i 4'd3: out=7'b1001111;
+ b7 V+ ~" _0 @( d0 [ 4'd4: out=7'b1100110;
' o8 R! m( o1 O4 v2 ]( w3 z- f3 l 4'd5: out=7'b1101101;$ R, {# [, C& r. z1 ` v7 ]+ k
4'd6: out=7'b1111101;4 z$ {8 _! G2 z8 P& _
4'd7: out=7'b0000111;, u) Y" d9 G- K1 K; q a) w
4'd8: out=7'b1111111;
$ M! X6 L. w' O0 G- \" M2 i 4'd9: out=7'b1101111;$ ?1 p! F: L' }
default: out=7'b1111111;% n% y% w% D( V G- w7 Y" L, s3 |3 Z
endcase
' i+ j; Y$ L+ S! L8 c0 R' C . E J6 M8 U( i5 s6 {+ f
end- P2 `4 U2 L% a) N# a! `
endtask- x) ~! t: @5 ^" B; w" l& W* d6 L
endmodule
9 h9 x0 {2 d9 h8 y/ C請問我task任務是寫7段顯示器,這程式是說,當我sel為0的時候就會顯示seg所跑的數值7段,但為什麼她7段會變成很有規律性呢?8 P; f: @# r# \) y' d. w! r
我的7段式segA 圖我已上傳 |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|