|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
七人表决器的程序如下
2 m$ v# l( d. `1 J6 p( |% T& a* |% umodule voter7(
/ g0 R9 ^' {$ J5 r" Y4 o, m output reg pass, 0 z. L7 ]" C# q2 R, {4 J
input[6:0] vote
7 @- @8 b7 s, y D );$ F1 \' ]+ v/ _5 G+ e3 C
integer i;
^' @: j2 `+ ]6 ^- b! Freg[2:0] sum; & i9 p2 z7 o' O0 [
initial
. x6 z4 F$ |3 \" C begin$ K2 j+ i, Z% _, A
sum=3'b000;5 D: J6 `( q) I' b/ o
end. h6 t3 g* r% m$ ^0 N2 w* Y' d5 e
( ?5 R1 a& e+ P# ]6 s. l always @(vote)
- b3 E$ W6 A1 |/ S/ e2 s begin
0 ?( J" l# U- ^0 D. L6 {
, \; q0 R w1 h A9 @$ U7 X: x for(i=0;i<=6;i=i+1) //for语句2 ?8 L+ o' n. q0 r; S0 E
begin . U+ [: v6 W% t3 w. q
if(vote[i]) sum=sum+1;
" H L8 Z v+ U* T, ^' x% E, g end$ I P, N, E+ X% j9 @0 |& p
if(sum>3) pass=1'b1; //若超过4人赞成,则pass=1
- ~5 R; z4 f8 \& ?% j else pass=1'b0; " ^& `. u6 B. H' K6 n/ u
end
. x" Z5 Y- ?- H7 f7 ]' b xendmodule
9 c1 C8 _* u! C5 h" j1 V# }
6 i$ ?4 R$ [/ x2 y
: P# h% a7 P- W6 q9 }/ P% O% G) X7 E, p. s# [
有提示是这样的, W8 P" f! Z2 Q( C' c
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
3 ^* G4 `( t$ V5 u+ ^" Q- ~3 V# J& S! R6 K
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
, c2 C4 X4 @1 L
& {+ E4 R6 s! _" O% y8 T. Q仿真的时候pass信号为未知状态
/ T C: ]$ o4 J3 n0 K* s- X怎么办呢? |
|