sc_port 和 sc_export 之间的区别

Pie*_*yts 3 systemc

sc_port有人能清楚直观地解释SystemC中的an和an有什么区别吗sc_export?什么时候使用端口,什么时候导出?

我已经阅读了手册的部分内容,但我仍然无法掌握两者之间的主要概念差异。

小智 5

SystemC 的要求是每个端口导出必须绑定/连接到通道(未绑定端口除外,但现在让我们忽略它们)。该通道的实例化位置是portsExport的区别。

对于导出通道实例必须驻留在具有导出的同一模块中,或者位于其中的子模块中。

对于port通道实例必须驻留在具有该端口的模块外部。

想象一个模块top_module,其中有两个子模块senderreceiver在其内部实例化,并使用一位数据sender连接到receiver。如果您选择使发送方的输出数据为 sc_port<> 类型,那么您需要在 top_module 中实例化通道(例如 sc_signal<>),并且绑定语句最好位于 top_module 的构造函数。但是,如果您选择使发送者的输出数据为sc_export<>类型,那么您将需要在子模块sender内实例化通道。因为您本质上是将通道的功能“导出”到sender之外的世界。

这是我对港口和出口的直观认识。请对我的“必须”声明持保留态度,因为 Accellera 实现不强制执行此类规则,而是与绑定顺序(自上而下与自下而上)有关。

作为一条经验法则,我总是使用导出作为输出,使用端口作为所有模块的输入。我的理念是,“你驾驶它,你就拥有它”。