🧩 一、块名是什么
在 Verilog 中,begin : block_name ... end(或fork : block_name ... join)
称为一个命名块(named block)。
例子:
always @(posedge clk) begin : u1 reg [3:0] counter; counter <= counter + 1; end : u1这里u1就是块名(block name)。
🧠 二、块名的主要作用
块名有以下 4 大用途👇:
🧩 1️⃣ 创建层次路径(Hierarchical Path)
命名块会在设计层次中生成一个“命名层级”,
就像一个小的命名空间(scope)。
例如:
module top; always @(posedge clk) begin : blk reg [3:0] count; count <= count + 1; end endmodule仿真时你可以在波形或仿真器中访问:
top.blk.count👉这就是块名最大的用处之一:
方便调试和层次引用(hierarchical reference)。