请有人帮我写这两个条件陈述 两者都应该给出相同的输出......例如:
如果我按照下面提到的方式写它,那就是给出输出 有很多延迟
if(count==3'd2 || i<=16'd8192) begin
count = 3'd1;
AL1 = x[i]+x[i+1];
DL1 = x[i]-x[i+1];
i = i+2;
end
else begin
count = count+1'd1;
i = 16'd0;
end
如果以这种方式编写代码,我会收到错误......
if (i<=16'd8192) begin
if (count==3'd2) begin
count = 3'd1;
AL1 = x[i]+x[i+1];
DL1 = x[i]-x[i+1];
i = i+2;
end
else begin
count = count+1'd1;
end
else begin
i = 16'd0;
end
请帮我解决这个问题
答案 0 :(得分:1)
问题是代码在功能上是不一样的还是语法错误?
这两个代码示例都有一个尾随end
,我在格式化问题中的代码时已将其删除。
Verilogs开始if语句的结束语法是:
if ( condition a ) begin
// a true
end
else begin
// a false
end
使用辅助嵌入条件,它将是:
if ( condition a ) begin
if ( condition b ) begin
// a & b true
end
else begin
// a true b false
end
end
else begin
// a false
end
如果这是在编码时采用更严格的缩进样式的问题,将有助于发现这些错误。