虚拟接口元素使用带有接口端口的接口 [来自 QuestaSIM 的警告 vlog/vsim]

Virtual interface element uses an interface with interface ports [warning from QuestaSIM vlog/vsim]

QuestaSIM的vsim发出以下警告是什么意思?模拟器在这里担心什么?我还没有能够从中产生实际的模拟错误。

我的猜测:它与接口实例与虚拟接口实例有关,但我的理解很少。

** Warning: (vsim-8887) tests/base_test.svh(28): Virtual interface element 'this.apb_driver_bfm_vi.clk' uses an interface with interface ports.

apb_driver_bfm_vi 是以下接口的虚拟接口句柄:

interface apb_driver_bfm(
    input logic clk,
    input logic nrst,
    apb_if.apb_s apb_if_i // apb_if is itself an interface, apb_s is a modport.
);

endinterface : apb_driver_bfm

虚拟接口使用如下:@(posegde apb_driver_bfm_vi.clk); 在我的测试平台run_phase 中。尽管有警告,这似乎工作正常。

来自 25.9 虚拟接口 部分 IEEE 1800-2017 SystemVerilog LRM

Although an interface may contain hierarchical references to objects outside its body or ports that reference other interfaces, it shall be illegal to use an interface containing those references in the declaration of a virtual interface.

当接口端口连接到参数化接口并且虚拟接口的不同实例具有不同的参数化时,就会出现这个问题。当接口具有相同的参数时,这不是问题,但 LRM 过于悲观。