sc_port有人能清楚直观地解释SystemC中的an和an有什么区别吗sc_export?什么时候使用端口,什么时候导出?
我已经阅读了手册的部分内容,但我仍然无法掌握两者之间的主要概念差异。
小智 5
SystemC 的要求是每个端口或导出必须绑定/连接到通道(未绑定端口除外,但现在让我们忽略它们)。该通道的实例化位置是ports和Export的区别。
对于导出,通道实例必须驻留在具有导出的同一模块中,或者位于其中的子模块中。
对于port,通道实例必须驻留在具有该端口的模块外部。
想象一个模块top_module,其中有两个子模块sender和receiver在其内部实例化,并使用一位数据将sender连接到receiver。如果您选择使发送方的输出数据为 sc_port<> 类型,那么您需要在 top_module 中实例化通道(例如 sc_signal<>),并且绑定语句最好位于 top_module 的构造函数中。但是,如果您选择使发送者的输出数据为sc_export<>类型,那么您将需要在子模块sender内实例化通道。因为您本质上是将通道的功能“导出”到sender之外的世界。
这是我对港口和出口的直观认识。请对我的“必须”声明持保留态度,因为 Accellera 实现不强制执行此类规则,而是与绑定顺序(自上而下与自下而上)有关。
作为一条经验法则,我总是使用导出作为输出,使用端口作为所有模块的输入。我的理念是,“你驾驶它,你就拥有它”。
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |