System verilog 传入Systemverilog的参数
在以下Systemverilog代码段中:System verilog 传入Systemverilog的参数,system-verilog,System Verilog,在以下Systemverilog代码段中: xxx_model # (.inst_name({inst_name,".ce_0"})) ce_0 ( ... .. ); 我无法理解这部分inst\u name({inst\u name,.ce\u 0})。 请帮助我理解。从您的代码片段: xxx_model # (.inst_name({inst_name,".ce_0"})) ce_0 ( ... .. ); xxx_模型是一个参数化模块,它采用名为inst_name的字符串类
xxx_model # (.inst_name({inst_name,".ce_0"})) ce_0 (
...
..
);
我无法理解这部分inst\u name({inst\u name,.ce\u 0})
。
请帮助我理解。从您的代码片段:
xxx_model # (.inst_name({inst_name,".ce_0"})) ce_0 (
...
..
);
使用此递归参数传递方案,如果您的模块层次结构是foo->bar->frop->zoo,则层次结构zoo中最下面的实例中的参数inst\u name将具有值{inst\u name,.zoo}。在这里,从上面传递的inst\u name将递归地计算为“foo.bar.frop**,因此实例化中inst\u name的值将是foo.bar.frop.zoo我可以准确地声明如下inst\u name=“foo.bar.frop”?或inst\u name=“foo.bar.frop”**";你不想那样做。使用参数的想法是使代码通用,以便相同的参数化模块也可以在其他层次结构中使用。