|
module test(reset,clk,down,seg,seg10,segA,sel);
: r$ l( _9 `* C. Finput reset,clk,down,sel;
3 W2 G1 T: d% T$ f+ R8 eoutput [3:0] seg,seg10;) m2 H, p9 R6 @8 l( K
output [6:0] segA;
9 }% h3 ?" `5 a) _0 \0 f. K9 `1 ~reg [3:0] seg,seg10;
3 j$ p9 q; F% F9 D2 x: K; @reg [6:0] segA;4 y+ o; Y. _ f9 z5 n9 w& T# ~
' ~, s5 ?) a) v5 x8 B5 \, Ealways@(negedge clk)
' `" c7 Q% s4 C/ ^begin
9 V2 Y( j. \) S; \6 W( y D if(down==1)! T7 ^3 _3 p4 v$ B( `4 ], h/ Q
begin1 u$ \- `$ Z3 n* I$ b: `5 \
if(seg==4'd0000)
! y& J$ y2 j& X) B: G% I begin; t: V9 x. b/ |, T: M# V
seg10=seg10-4'd0001;" r8 ~( e& } @- Q8 H, c" v
seg=4'd1001;
$ B' D& E+ t6 ^; d8 v5 ? end
8 a; c- a. ^; L; _ else) N* |: `( p; W: Z, C6 c
begin
+ `: _' M' M# s1 g! ~/ z) c seg=seg-4'd0001;
: Z9 a0 j; s, W# ~ end* W- l! j( }, n6 E0 S* ^
end3 l* w; k: D0 n& E4 ^) Y
else if(reset==1)2 e4 O ~* C% H# P* E) H+ G* H) C" t
begin
9 D$ C8 T7 U Q4 J8 A# `* m# J seg=4'd0;
( \% I: W [% k0 V! M* ] seg10=4'd0;
, J# x2 U: p K8 z7 q2 A, @* T- U end ' ~0 X* R3 m! @0 ]3 e
else if(seg==4'd1001)
. A0 {. v9 C4 l" g% P begin
6 L; _- a" R W8 h) ^: B, o! A" j: v seg10=seg10+1'd1;
/ x2 d" y' |4 y1 Q8 n. J% k seg=0;
9 q; b2 i" P- W end
# e8 p" |: A' g' K3 I/ R else; M+ I6 s7 o$ b' p
begin
6 b9 }% v, l& a" ?3 I5 f5 e seg=seg+1'd1;$ X; p3 `7 i% k) U" i }+ S
end2 { A( L( ?0 `' e7 B8 {
2 g2 m. g( Q/ M if(seg10>4'd1001), g$ a7 q* f( p
begin: m0 X7 u/ W+ p* p! U2 \/ j
seg=4'd0;
% N2 O9 R' d" n2 X: u' Z; }$ T) _ seg10=4'd0;
7 I* D) Y6 K5 F3 F W& [( s end
. k9 M% B$ P& j9 t+ H9 D$ X% @! K if(sel==0)
# q- z& [5 L' I# w5 f+ Q# ?2 N begin
4 E0 @0 C. [2 L1 | mm(seg,segA);4 W2 A! a7 D* O, q% ]7 _
end
6 V1 c* o: H0 F/ R. [4 e/ D# c! q, qend 2 B* |& S B, `* |3 b- X
. T! q% C4 C" I+ {% k9 M5 d
task mm;
8 o! Q: W. n7 f, x: D p input seg;" }. A6 E8 _, E8 Z
output[6:0]out;" W$ [+ w" s x# }
reg[6:0] out;' y& @# P! S, B% L2 j
begin
- W" `, C$ i" I8 [5 U5 @ case(seg)4 u5 R1 `, S/ r: p/ H6 T6 ^- O% l
4'd0: out=7'b0111111;
" ~+ g, l1 G; @ 4'd1: out=7'b0000110;
) F! u( H& [1 Z# R7 C! n 4'd2: out=7'b1011011;1 ]- h; [" D, z2 M! y$ M# L
4'd3: out=7'b1001111;( b; Z0 G- g5 @4 k8 d4 X
4'd4: out=7'b1100110;7 U- l; l( i0 e# }) _. L
4'd5: out=7'b1101101;
: f/ X8 T) a/ M D' e 4'd6: out=7'b1111101;
* n7 D' Y' ~9 ^% A- t) }: f! k 4'd7: out=7'b0000111;
- S" t/ x# _' }% p1 t9 [: t 4'd8: out=7'b1111111;8 l2 f! O, y* v( W6 M1 O1 t
4'd9: out=7'b1101111;0 S4 {+ [% B5 B ?( Q$ C: Y! M8 j
default: out=7'b1111111;# t' g5 U6 ?9 E! }0 t
endcase# \# J% h5 Q( t9 i1 S h
, q4 G! @( s- |/ v0 Z
end8 G$ o- V: R! R; ~% k' k3 n
endtask, y/ W' r6 X: \" H" T+ a
endmodule * w! w) {6 @, h5 N/ M0 H0 l! K- }
請問我task任務是寫7段顯示器,這程式是說,當我sel為0的時候就會顯示seg所跑的數值7段,但為什麼她7段會變成很有規律性呢?1 Q; ]* c [+ n. V. f
我的7段式segA 圖我已上傳 |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|