首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]Quartus II的仿真问题

[求助]Quartus II的仿真问题

Quartus II的仿真问题

求教,本人新学CPLD不久,用Verilog编写了一段Quartus II程序,通过单片机和CPLD对继电器开关进行开合控制,CPLD选用的是EPM7512AETC144-10。在仿真的时候,功能仿真出现错误,时序仿真确是正确的,让我比较困惑。求教各位前辈高手指点指点。
程序如下:
module zc(in,data,out,rst);
input data,rst;
input [1:0]in;
output [3:0]out;
reg [3:0]out,add,add1,latch;


always@(in or data or rst or latch )
begin
if(rst)
begin
add = 4'b1111;
add1 = 4'b1111;
latch= 4'b1111;
out = 4'b1111;
end
else
begin
if(!data)
begin
case(in)
2'b00:add=4'b1110;
2'b01:add=4'b1101;
2'b10:add=4'b1011;
2'b11:add=4'b0111;
endcase
add1=add&latch;
//latch=add1;
out[0]=add1[0]?1'b1:1'b0;
out[1]=add1[1]?1'b1:1'b0;
out[2]=add1[2]?1'b1:1'b0;
out[3]=add1[3]?1'b1:1'b0;
latch=out;
end
else
begin
case(in)
2'b00:begin add=4'b1110;end
2'b01:begin add=4'b1101;end
2'b10:begin add=4'b1011;end
2'b11:begin add=4'b0110;end
endcase
out[0]=add[0]?latch[0]:1'b1;
out[1]=add[1]?latch[1]:1'b1;
out[2]=add[2]?latch[2]:1'b1;
out[3]=add[3]?latch[3]:1'b1;
latch=out;
end

end
end
endmodule
我在综合编译的时候,出现2个警告:
Warning: Verilog HDL Always Construct warning at zc.v(8): variable add1 may not be assigned a new value in every possible path through the Always Construct. Variable add1 holds its previous value in every path with no new value assignment, which may create a combinational loop in the current design.
Warning: Verilog HDL Always Construct warning at zc.v(8): variable latch may not be assigned a new value in every possible path through the Always Construct. Variable latch holds its previous value in every path with no new value assignment, which may create a combinational loop in the current design.
敬请指教。

版主都哪凉快去啦?

返回列表