使用生成将断言绑定到模块实例
Bind assertion to a module instance using generate
我正在尝试为使用 generate for 语句生成的模块实例绑定我的断言。
下面是我的绑定断言模块中的绑定语句:
`define NUM_BLKS 4;
genvar asrt_inst;
generate
for (asrt_inst = 0;asrt_inst < `NUM_BLKS;asrt_inst = asrt_inst+1)
begin
bind top.u_dut.u_blk_gen[asrt_inst].u_blk my_assert u_my_assert (
.*
);
end
endgenerate
在这里,RTL 在 u_blk_gen[gen_var] 的 gen 块下,我试图将我的断言绑定到生成实例的每个实例。
使用生成块生成的 RTL 的路径实例是:
- top.u_dut.u_blk_gen[0].u_blk
- top.u_dut.u_blk_gen1.u_blk
- top.u_dut.u_blk_gen[2].u_blk
- top.u_dut.u_blk_gen[3].u_blk
并且使用绑定语句,我得到以下编译错误:
bind top.u_dut.u_blk_gen[asrt_inst].u_blk my_assert u_my_assert (
|
ncvlog: *E,ILLGVR (/home/user/assertion_bind.v,165|72): This genvar cannot be used in this context [12.1.3(IEEE 2001)].
需要解决这个问题。
这个声明有效吗?
如果没有,是否有解决这种情况的方法?
在您的 RTL 中显示 generate
块会有所帮助,但我认为您在 bind
语句中缺少实例名称。应该是
bind top.u_dut.u_blk_gen[asrt_inst].instname my_assert u_my_assert (
如果您要绑定到模块的所有实例,则不需要特定于实例的绑定。你可以做
bind targetname my_assert u_my_assert (
这是一个工具支持问题。
联系了供应商(cadence),供应商表示该工具的最新版本支持此功能。
而且我们需要传递 -nncbind
命令行选项。
并且在 wards 的 15.1 版本中支持此功能,并且需要额外的孵化许可证。
但是从 15.20.008 版本开始,它不需要额外的许可证。
我正在尝试为使用 generate for 语句生成的模块实例绑定我的断言。
下面是我的绑定断言模块中的绑定语句:
`define NUM_BLKS 4;
genvar asrt_inst;
generate
for (asrt_inst = 0;asrt_inst < `NUM_BLKS;asrt_inst = asrt_inst+1)
begin
bind top.u_dut.u_blk_gen[asrt_inst].u_blk my_assert u_my_assert (
.*
);
end
endgenerate
在这里,RTL 在 u_blk_gen[gen_var] 的 gen 块下,我试图将我的断言绑定到生成实例的每个实例。 使用生成块生成的 RTL 的路径实例是:
- top.u_dut.u_blk_gen[0].u_blk
- top.u_dut.u_blk_gen1.u_blk
- top.u_dut.u_blk_gen[2].u_blk
- top.u_dut.u_blk_gen[3].u_blk
并且使用绑定语句,我得到以下编译错误:
bind top.u_dut.u_blk_gen[asrt_inst].u_blk my_assert u_my_assert (
|
ncvlog: *E,ILLGVR (/home/user/assertion_bind.v,165|72): This genvar cannot be used in this context [12.1.3(IEEE 2001)].
需要解决这个问题。
这个声明有效吗?
如果没有,是否有解决这种情况的方法?
在您的 RTL 中显示 generate
块会有所帮助,但我认为您在 bind
语句中缺少实例名称。应该是
bind top.u_dut.u_blk_gen[asrt_inst].instname my_assert u_my_assert (
如果您要绑定到模块的所有实例,则不需要特定于实例的绑定。你可以做
bind targetname my_assert u_my_assert (
这是一个工具支持问题。 联系了供应商(cadence),供应商表示该工具的最新版本支持此功能。
而且我们需要传递 -nncbind
命令行选项。
并且在 wards 的 15.1 版本中支持此功能,并且需要额外的孵化许可证。 但是从 15.20.008 版本开始,它不需要额外的许可证。