当我们有analyze_port时,为什么我们需要analysis_export

时间:2016-06-20 02:47:59

标签: uvm

我们通常需要analysis_export才能将数据从analysis_port转移到analysis_imp。它们用作从端口到实现的数据传输对象,因为我们无法将analysis_imp连接到另一个analysis_imp

但是analysis_port - s可以连接到其他analysis_port - s。 所以我的问题是,为什么我们需要analysis_export,而不是analysis_export我们只能使用analysis_port

1 个答案:

答案 0 :(得分:1)

看起来意图可能是导出接口仅用于连接目的,端口接口用于发送数据 - port.write(data); [导出无需实现写入功能]

但是analysis_export和analysis_port似乎在实现上非常相似。 它看起来也可以互换。唯一的区别是MASK / type位表示它是哪种类型的接口 - export / port。其他接口实现看起来是相同的。

主要区别在于连接接口(连接功能)时,可以对连接方式进行检查。 port-to-port,port-to-export,port-to-imp,export-to-export,export-to-imp。 这些可能用于确保我们使用export来传播接口并最终将它们连接到某个实现。 但是从当前的实现看,端口和导出都具有可以调用的写函数,即使是连接也可以互换使用。

唯一的问题是,一旦端口连接到导出,它只能连接到其他导出,并且必须在实现中终止。 [由于某种原因,只有端口 - 端口连接不会产生任何运行时间]

也有可能在过去的某个时候他们可能会有不同的实现[只是推测,一个跟随UVM历史的人可以回答这个问题。 ]