quartus2 verilog代码编译求助

2019-03-25 08:26发布

module bianma(in,EI,EO,GS,out);
input [7:0] in;
input EI;
output EO,GS;
output [2:0]out;
reg [2:0]out;
reg EO,GS;
always @(EI,in)
if(EI)
case(in)
  8'b11111110: begin out=3'b111;GS=0;EO=1;end
  8'b1111110x: begin out=3'b110;GS=0;EO=1;end
  8'b111110xx: begin out=3'b101;GS=0;EO=1;end
  8'b11110xxx: begin out=3'b100;GS=0;EO=1;end
  8'b1110xxxx: begin out=3'b011;GS=0;EO=1;end
  8'b110xxxxx: begin out=3'b101;GS=0;EO=1;end
  8'b10xxxxxx: begin out=3'b110;GS=0;EO=1;end
  8'b0xxxxxxx: begin out=3'b111;GS=0;EO=1;end
  8'b11111111: begin out=3'b111;GS=1;EO=0;end
endcase
else
  begin
  out=3'b111;
  GS=1;EO=1;
  end
endmodule
以上是一个三线八线优先编码器的verilog代码求高手给指点一下为什么会有以下警告:
Warning (10240): Verilog HDL Always Construct warning at bianma.v(8): inferring latch(es) for variable "out", which holds its previous value in one or more paths through the always construct
Warning (10240): Verilog HDL Always Construct warning at bianma.v(8): inferring latch(es) for variable "GS", which holds its previous value in one or more paths through the always construct
Warning (10240): Verilog HDL Always Construct warning at bianma.v(8): inferring latch(es) for variable "EO", which holds its previous value in one or more paths through the always construct
万分感谢 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
eeleader
1楼-- · 2019-03-25 12:23
< / 输出综合成锁存器。
eeleader
2楼-- · 2019-03-25 15:08
if(EI)  修改成if (EI==1'B1)
caipeifeng2010
3楼-- · 2019-03-25 16:39
还是不行啊
警告仍然有
eeleader
4楼-- · 2019-03-25 20:43
 精彩回答 2  元偷偷看……

一周热门 更多>