【发布时间】:2019-07-12 22:28:01
【问题描述】:
当接口上有端口输入时,我在网上看到了将 modports 用于接口的不同示例。 modports 是否应该在 modport 上包含 clk 和 reset,即使它们是接口输入?
这是一个 clk 不包含在 modport 中的示例:https://www.doulos.com/knowhow/sysverilog/tutorial/interfaces/ Section: Modports in Interfaces
将 clk 放入 modport 会导致 Spyglass lint 错误(非驱动变量),以下是错误的一般概念:
interface MY_IF (input clk);
signal my_sig;
modport master (input clk, my_sig);
endinterface
MY_IF if (.clk(clk));
MY_MOD (.my_if(if.master)); // claims clk is undriven
而如果 clk 丢失,Cadence 会出现问题,并且我将虚拟接口传递给使用 clk 的类。
哪种方式是正确的? modport 是否必须列出所有信号,或者端口接口信号是否始终可用?
【问题讨论】:
-
接口实例端口中的
clk是由什么驱动的吗?您的示例缺少任何驱动程序。 -
是的,我只是展示了少量的伪代码。
-
那么这看起来像一个望远镜问题。与概要交谈。