Verilog 块语句2025年3月17日 | 阅读 3 分钟 块语句是将两个或多个语句组合在一起,在语法上类似于单个语句。 Verilog 中有两种类型的块
如果需要执行多个语句,可以使用这些块。 顺序 块中的所有语句将按照给定的顺序依次执行。 如果块中出现时间控制语句,则下一个语句将在该延迟后执行。 顺序块应由关键字 begin 和 end 划定界限。 并行 块中的所有语句同时或并发执行。 这意味着即使前一个语句包含时间控制语句,下一个语句的执行也不会延迟。 并行块应由关键字 fork 和 join 划定界限。 顺序块使用 begin 和 end 关键字包装语句,并按照给定的顺序依次执行。 延迟值相对于前一个语句的执行时间处理。 块内的所有语句执行完毕后,控制权可以传递到其他地方。 ![]() 语法 顺序块语句遵循以下语法 特性 顺序块具有以下特征,例如
示例 在上面的示例中,begin 和 end 块中的第一个语句将在 10 个时间单位执行,而第二个语句将在 30 个时间单位执行,因为它是相对的。 这是在前一个语句执行后 20 个时间单位。 并行块并行 块可以并发执行语句,并且可以使用延迟控制来提供赋值的时间顺序。 通过将语句包装在 fork 和 join 关键字中来并行启动语句。 语法 并行块具有以下简化语法 特性 并行块具有以下特征
示例 ![]() 在上面的示例中,fork 和 join 块将在执行 10 个时间单位的语句后启动。 此块中的语句将并行执行,第一个语句将是数据被赋值为 8'h00 的语句,因为它的延迟是在 fork-join 启动后的 10 个时间单位。 再过 10 个时间单位后,第一个语句将被启动,并且数据将获得值 8'h11。 ![]() 在上面的示例中有一个 begin-end 块,begin-end 块中的所有语句将按顺序执行。 尽管如此,该块本身将与其它语句一起并行启动。 数据将在 20 个时间单位获得 8'h11,在 30 个时间单位获得 8'h00,在 60 个时间单位获得 8'haa。 块的命名顺序块和并行块都可以通过在 begin 和 fork 关键字之后添加 name_of_block 来命名。 通过这样做,可以在 disable 语句中引用该块。 下一话题Verilog 赋值 |
我们请求您订阅我们的新闻通讯以获取最新更新。