|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
七人表决器的程序如下' k& i1 ?/ Y9 h5 y
module voter7(
7 @- K! f% {5 S output reg pass, . Y3 H2 {) z' S! C- ?8 U5 p# d" @
input[6:0] vote
5 a3 S4 E* F& A% Y7 m& ]4 ^ );) t9 G- ], }; n6 K) S w& v
integer i; ) m3 g) B. ~( H
reg[2:0] sum;
# L9 }# I4 B5 d( K" F d9 [2 e initial
6 L, }8 b0 P' K4 A* I, i1 y begin
) M0 Y! t0 w( S) L! L3 t2 H3 B( T# s sum=3'b000;$ X% N- b" t3 y/ n# L: `
end% @$ Z2 r; {8 l2 R' H/ p6 y- N
# y1 z0 y/ z- k
always @(vote) : l2 r" N0 o+ j* y8 ~- |5 T! J
begin
' `# n7 H( Z4 |+ C% V- e- u
; U: r* v$ p7 r, _# k for(i=0;i<=6;i=i+1) //for语句
/ P% u& X: v( A' O6 R: j begin
' J! s' n' J# `- l1 p! m if(vote[i]) sum=sum+1; ! C% f0 |( _/ ~6 X
end
; d! W9 I8 s' P if(sum>3) pass=1'b1; //若超过4人赞成,则pass=1
' w$ M2 x7 |6 _5 n# ]3 O0 u4 m else pass=1'b0;
4 v/ O5 r# W# E! }* n end 6 ?1 n& ]$ o5 J! J8 u7 }) B
endmodule * r8 p# q+ M' N
/ Q% @1 Q3 o7 m2 d7 v; t0 w+ F; f* R
6 Z, ^! a% @3 d( B4 L" s( @0 s) B( H
有提示是这样的
5 |" J. q( S3 F3 G1 GWarning (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 Control3 b/ A! s4 \ J5 b/ a6 m" J4 x
) n, V; c: a+ Z9 m: d7 r9 PWarning (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
; Y! p$ ~' c# w* g/ B& t0 z/ [- V9 D' h `
仿真的时候pass信号为未知状态 % A2 L" |5 i! T9 v5 ?2 x
怎么办呢? |
|