|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
七人表决器的程序如下
n- M$ |4 `. }: M9 lmodule voter7( # w+ ^9 W" R6 i0 a% X4 ]/ H: { N
output reg pass,
( H$ `0 y6 [) U1 `- D input[6:0] vote) r) X$ a: i% Q( @) ^
);0 c: M% U0 o1 ~: K& E
integer i; ) O/ M! g$ l" Z1 f2 f, s0 z5 G: v
reg[2:0] sum;
8 e( m4 M% K; M9 T1 P initial
4 X+ N$ W1 Q6 s9 X" @ begin4 g. L/ j: L% J. L7 b
sum=3'b000;0 V5 c' e+ ^) ?1 L4 |1 b
end
# A" x# k1 B' p: H3 l" i8 b" Y+ s& }
. t: U% c4 {: G/ T! m K0 m always @(vote)
2 b( d& n& i$ C0 h begin
3 f) P# w; Q/ t& d, B" V+ g: f
! h& ]) T: T4 P0 P( c& m for(i=0;i<=6;i=i+1) //for语句' i2 D/ z2 N0 c( V3 z
begin
! ]5 R' m4 k6 p0 y if(vote[i]) sum=sum+1;
" e. l7 N# j) V4 g0 q: T end: T; d. K3 F9 F+ s5 E
if(sum>3) pass=1'b1; //若超过4人赞成,则pass=1
( H; `- p6 b2 l! J1 x7 C else pass=1'b0;
0 Z. ~% K2 E! h end
9 J6 W0 Y$ [+ T* W# P- g3 Z' V6 jendmodule 9 t" Z$ s1 Y# ^) |1 W1 d7 s
1 D) U9 T+ i6 T4 A* W3 A$ L6 o9 |
) k7 i# y& b* Q, _& M8 s/ m- [. D* z X1 r3 T, ~1 Z2 u, O
有提示是这样的# n B* |1 Q' V' b. w
Warning (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 Control
, P/ n( J+ x# f+ ^& O4 y+ @1 f# S& @' r, e
Warning (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/ z, @- u- F1 Z1 k* m
, b; [ Y$ p3 J w( Q6 e4 }4 t! J' B仿真的时候pass信号为未知状态 5 X9 m7 S5 e0 J6 ]5 b* R
怎么办呢? |
|