Verilog 控制块

2025年3月17日 | 阅读 3 分钟

如果没有条件语句和其他控制逻辑流程的方法,硬件行为就无法实现。Verilog 有一套机制和控制流程块。

if-else-if

此条件语句用于确定是否执行某些语句。 它与 C 语言中的 if-else-if 语句非常相似。 如果表达式求值为 true,则将执行第一条语句。

如果表达式求值为 false 并且存在 else 部分,则将执行 else 部分。

语法

以下是 if-else-if 条件语句最简化的语法

if-else 的 else 部分是可选的,它可能会造成混淆。 为避免这种混淆,最好始终将 else 与缺少 else 的前一个 if 相关联。 另一种方法是将语句包含在 begin-end 块中。 最后一个 else 部分处理以上都不是或默认情况,即未满足任何其他条件。

循环提供了一种在块内一次或多次执行单个或多个语句的方法。 在 Verilog 中,有四种不同类型的循环语句。

1. 永久循环

此循环将连续执行块内的语句。

语法

示例

在执行上述示例后,它会生成以下数据。

2. 重复循环

这将执行语句固定的次数。 如果表达式求值为 X 或 Z,它将被视为零并且不会执行。

语法

示例

上面的代码生成以下结果。

3. While 循环

只要表达式为真,这将执行语句,并在条件变为假时退出。 如果条件从一开始就为假,则根本不会执行语句。

语法

示例

运行上面的代码,我们将获得以下输出。

4. For 循环

For 循环使用三个步骤来控制语句

  • 初始化循环计数器变量。
  • 评估表达式,通常涉及循环计数器变量。
  • 递增循环计数器变量,以便表达式稍后变为 false,循环将退出。

语法

示例

执行 for 循环代码后,输出如下所示


下一个主题Verilog 函数