2016-06-20 133 views
0

我们通常需要analysis_export数据传输从analysis_portanalysis_imp。它们充当从端口到实现的数据传输对象,因为我们无法将analysis_imp连接到另一个analysis_imp为什么我们需要analysis_export当我们有analysis_port

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

+0

不知道是否理解你的解释 你可以看看这里:https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1a/html/files2/tlm1-txt.html,在“用法”部分。我想知道为什么而不是导出不使用端口对象? – haykp

+1

导出是**被动地响应**请求。另一方面,端口启动请求。当数据包从“leaf1”传输到“comp1”时,层次结构改变* port-port *连接。现在,'comp1'和'comp2'处于同一层次,'comp2'只**响应**来自'comp1'的请求,因此它包含导出。类似的注释适用于'comp2'到'subcomp2',因为它们都只响应*。 – sharvil111

+0

谢谢你的回答 对不起,但我不明白 你的意思是被动地回应? 如果comp2只响应来自comp1的请求,为什么这意味着我们需要导出? – haykp

回答

1

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

但是Analysis_export和analysis_port在实现中似乎非常相似。它也看起来像也可以互换。它唯一的区别是MASK/type位说明它是哪种类型的接口 - export/port。除此之外,接口实现看起来是相同的。

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

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

也有可能在过去的某个时候他们可能会有不同的实现[只是猜测,谁跟随了UVM的历史可以回答。 ]

相关问题