|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
七人表决器的程序如下
8 K# M# p, F W% j ^5 b$ Zmodule voter7( ; }( f& I: g/ l3 ^4 h
output reg pass,
2 v$ a/ H7 ?* H- K7 K2 h5 q; m input[6:0] vote
& n* H$ W) U) ]* e, G0 `; `, R );6 p4 T" ` D# s9 H3 \# N D+ A+ d
integer i;
* |1 X' Z3 G! k+ [3 b& n& W5 N$ zreg[2:0] sum;
0 r( O. X7 ?- _ initial
( N1 ~) B! j; O* J$ E; k begin
" L+ ?5 W4 t, f- ?) a2 }' o sum=3'b000;
9 g; d. L8 F5 W: |% Q4 O end
: w' n0 m7 S& z 6 p# X% J4 _0 d( b3 n5 R
always @(vote)
0 e8 X, z' }9 P- `% B( P |1 B begin ! m0 S3 Q8 W1 Z% P8 o
( p4 X: c8 _. ?* D for(i=0;i<=6;i=i+1) //for语句4 J# V1 l9 ^, S3 c/ q# G
begin 0 ]) i% j u, l6 d& y! X
if(vote[i]) sum=sum+1; 6 y( v2 G: W1 ?# e1 ^
end9 b- M- C* ]1 M/ W9 N3 z2 v. {
if(sum>3) pass=1'b1; //若超过4人赞成,则pass=1 7 Y1 O9 t D0 k5 X) W2 a
else pass=1'b0; ; t0 Q2 _' U' s2 \2 L# Q
end ( _; i; l) G' I3 J1 W7 l" ^5 g* J0 `
endmodule
/ E6 w# B$ y& s f6 A& b) Q. J: v0 L0 _( ]; L+ e5 d
6 l8 E! n: Y# d! i" d' S
6 b: p& _+ e5 i9 K" f& j& O* U! b有提示是这样的
) B' E% z3 @0 A- ~" v. x% U1 dWarning (10235): Verilog HDL Always Construct warning at voter7.v(18): variable "sum" is read inside the Always Construct but isn't in the Always Construct's Event Control4 l; b5 r' e6 e3 {" v
8 T* b; }9 U& q; Z. t. r. d0 l* ~- HWarning (10240): Verilog HDL Always Construct warning at voter7.v(13): inferring latch(es) for variable "sum", which holds its previous value in one or more paths through the always construct
R7 u6 B) E; j, E- ^' n! y" e/ [: X
仿真的时候pass信号为未知状态
# a+ u$ m8 v+ h$ ~- [6 h n3 u怎么办呢? |
|