【问题标题】:How do I write this For loop in Verilog如何在 Verilog 中编写这个 For 循环
【发布时间】:2019-05-24 16:39:22
【问题描述】:

所以,我在编写 Verilog 文件时遇到了这个错误,因为到目前为止我还没有使用 FOR 循环,所以我真的不知道如何解决这个问题。

以下是部分代码:

for(counter=0;counter=counter+25000000;counter=counter+1)
begin
    out_leds<=3'b111;
end

以下是错误:

错误 (10170):在 LEDS.v(20) 靠近文本“=”

处出现 Verilog HDL 语法错误

错误 (10170):在 LEDS.v(20) 靠近文本“)”处出现 Verilog HDL 语法错误;
期待“;”

【问题讨论】:

  • 我有一种感觉,即使你的问题得到了正确的答案,直到你意识到 Verilog 不是顺序处理,而是电路描述,问题的根源才会得到解决。

标签: verilog


【解决方案1】:

您的 for 条件没有比较器。你必须写for(counter=0; counter == counter+...

counter = counter + 25000000 是将新值分配给计数器。

counter == counter + 25000000 是检查计数器是否与计数器+25000000 相同的语句

但这也是一个无限循环,因为 counter 永远不会等于 counter+25000000。

你可以创建一个变量x = counter + 25000000,然后在你的循环中使用这个变量:for(counter=0; counter==x; counter=counter+1)

参见例如here

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 1970-01-01
    • 2010-09-08
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    相关资源
    最近更新 更多