|
module test(reset,clk,down,seg,seg10,segA,sel);
9 ~7 M- Y- G! k* B& @input reset,clk,down,sel;
( U; W# @7 R: \/ t Boutput [3:0] seg,seg10;: W$ ^. f4 O9 W' N3 q9 h+ _5 x6 A
output [6:0] segA;
* E0 F! e4 ^$ x* N; Treg [3:0] seg,seg10;4 z! k8 D4 |6 [+ A* s
reg [6:0] segA;
; f( _0 p- ]$ [, T/ b J5 L" N) K9 f3 K) r1 s, z& H
always@(negedge clk): U5 c% C; n( G- r: F
begin
6 I( K' d8 ~7 e if(down==1)4 E0 B) B5 r0 G" s; p, l
begin* F$ n- l0 Q+ l Y
if(seg==4'd0000)* t: X5 G9 _+ r8 x' s4 n* X
begin) z- \: |4 d6 w# g
seg10=seg10-4'd0001;2 W2 z; g# Q2 ]6 E* Y7 d `- c
seg=4'd1001;0 F% x4 c/ e9 Q, J! X, ?! v
end
% m- p* ]/ o1 N/ \. A& T) z; B else. @# O# ^$ U+ ^
begin' K: m7 a {) \, A: H8 x/ E
seg=seg-4'd0001;' p+ D7 y- K& N* K2 q% v
end
3 S" q! N2 q* n5 g- ^. d end0 e# \" t( E a' p( V& N
else if(reset==1)
! c3 d% U# l1 `9 D$ L( t; U7 F begin x7 z- Y: w. [; L$ I3 a
seg=4'd0;
6 V6 X! j m# A+ b# |+ {; d' `/ h seg10=4'd0;
4 n1 ` v# @! w0 K; @1 G end % i2 ]4 {. i) W
else if(seg==4'd1001)( b( k1 P' U$ g$ s/ ?; ?6 \% L8 ?
begin
5 z, T9 z8 V6 w: s7 L$ S" q seg10=seg10+1'd1;8 x4 o+ i3 U1 Y L
seg=0;
; i3 P7 ?: ?4 K end
- d1 n% O+ g' `" m8 v% B: [0 E else, w" s: o( }7 B+ W8 o& c. x8 M$ e
begin a' Q5 z3 A8 F4 X7 ~& C8 I
seg=seg+1'd1;
9 F0 Z9 P3 k3 q: P" x. I K end4 \8 I* g8 t% {4 Y
0 F3 a$ p9 o- m5 ]$ w3 j
if(seg10>4'd1001)
" ]5 n6 A9 D: V2 G E' u. B begin# z- o [' V( ]8 ?
seg=4'd0;
; |* ?. G7 Z/ D N% {6 m seg10=4'd0;
) K! {; A* [; j3 @' v$ v end
( ~% }8 q. Y' T" M; O if(sel==0)
/ \" D$ G7 ^" e$ C* c4 U( }) E2 o begin
) I; O8 G% `, G6 q6 C mm(seg,segA);
) o: S5 f* V% u6 r1 D end7 |& R! q- S/ X7 L
end $ F7 `8 d; o$ |8 K) Q3 Q5 N+ O( L4 B
0 r9 ^) o( P" f. D5 w+ S task mm;( N x1 {/ o* {) c, c) t4 \
input seg;0 c" l6 r. X/ Y9 d1 x* U9 y
output[6:0]out;
8 h" [7 ~$ j. z; u5 R/ T7 c. { reg[6:0] out;
+ G; y- v* n5 p+ f) ~- j& I g" {% e begin
3 ^, V W8 [/ Y+ u+ v' I4 d& k4 n case(seg)/ x5 p! v6 r3 ]# Q; O
4'd0: out=7'b0111111;
% s* s4 P* K1 R/ ~) W k+ t 4'd1: out=7'b0000110;
' J- t1 P* o7 _: J9 L 4'd2: out=7'b1011011;
' V" m8 ] z) x! u5 J 4'd3: out=7'b1001111;
9 K4 W, @" P! z 4'd4: out=7'b1100110;
, Z$ t; i' n# ^* @ e$ P 4'd5: out=7'b1101101;
' Q/ \; @ J" i0 \' t* _' J 4'd6: out=7'b1111101;" _$ }& W6 p( U! G
4'd7: out=7'b0000111;( a/ Q/ k& Q0 t+ D" s& _
4'd8: out=7'b1111111;
2 P+ W6 j4 q% W6 J# j: ~' A3 x1 z 4'd9: out=7'b1101111;
: R) \9 o! k* p, a default: out=7'b1111111;
C. j) p! P. l3 h endcase
! D) F+ I- O; n; k0 s7 L
# y2 V1 K- l2 q* z4 e2 w' V2 u end$ J- `5 a6 W7 d X+ l
endtask
. b! W: q/ @; q& o8 w1 gendmodule $ A4 k: m: A% q/ I( h
請問我task任務是寫7段顯示器,這程式是說,當我sel為0的時候就會顯示seg所跑的數值7段,但為什麼她7段會變成很有規律性呢?% |$ y" d$ P0 o9 ^
我的7段式segA 圖我已上傳 |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|