|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
七人表决器的程序如下; P& M! u7 z' h Q! n
module voter7( 6 D! \4 B5 w6 d, s9 Q! T& |
output reg pass,
& Y% Z" m, }( G- f5 }# m; o) W; R4 L input[6:0] vote
( }/ ]2 R2 J, t8 ^- p( c j" h );
& D J$ q+ z w- }& Iinteger i; : j4 {1 q! `( T: S a: ]% n
reg[2:0] sum;
2 Y" Y0 b- m+ M8 q, X- Y+ {6 r initial
8 w( Q( g( B& J% w( [6 o begin
- }$ \+ s) m; T1 J" J8 V$ W sum=3'b000;
7 t+ R: n7 W( a" E1 h7 | end$ B3 G! Y+ R$ b" B8 t; R
% h# X" h6 k5 z; \3 P5 x( h always @(vote) % {' _& @0 r8 ]2 }2 R3 ]
begin
4 U# Y8 q: m0 f* Z+ n8 N* V
~& [) s% u8 ~: D/ U; T$ l% N for(i=0;i<=6;i=i+1) //for语句
# W( G4 _; S2 G9 ?' { begin " K& v+ V* U, {/ Z& Z) K
if(vote[i]) sum=sum+1; 9 {3 f" B8 e" R% D; F8 F+ r W1 |% v
end4 A( V$ X" O0 W1 }
if(sum>3) pass=1'b1; //若超过4人赞成,则pass=1
/ ~8 N$ U: H# P5 Z) q, m7 ~7 j else pass=1'b0;
. _3 I! Z$ L5 l7 u end / _/ U$ `" q" S e- A
endmodule
3 L6 B5 z% t, f/ @
: d9 l/ @' k! t: H
( N V# e5 P1 L `/ ]& ]9 e* i; G) G* e% p C& A9 [1 N
有提示是这样的$ z) l( S6 N' E. g* z. V* Z
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
* i% {$ x8 K. z5 [5 B: }) s! {* h1 Y4 g( _6 X& ^5 W) A
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 construct8 k: P4 V3 I! {4 R0 l$ C. T
, x* \, h3 g j2 N1 Y
仿真的时候pass信号为未知状态
* i- f! p6 g: B2 p! r: R4 Y* A怎么办呢? |
|