首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Systemverilog跨越分层边界的接口

Systemverilog跨越分层边界的接口
EN

Stack Overflow用户
提问于 2018-12-13 23:00:41
回答 1查看 721关注 0票数 0

我在使用systemverilog接口时遇到了一些后端问题,当接口遍历分层边界时。我试着在附图中勾勒出这种情况。

上图显示了使用接口的“常规”方法。接口和连接的模块都是在同一层次结构中实例化的。这适用于模拟和后端。

中间的图片显示了我的情况。在顶层,我有一个模块和接口实例化。该接口连接到紫色模块,然后连接到2个子模块。在模拟中,这是可行的。

然后合成工具报告紫色级别的接口应该是modport。所以我加上了这一点。然而,综合工具将中的导线解释为双向的,并添加逻辑来促进这一点。在我的设计中,所有的电线都是单向的。

我能找到的解决此问题的唯一解决方法如下图所示。我通过modport连接原始接口(标记为A)。然后,我实例化一个新接口(标记为B),它与接口A具有相同的父接口。接口A和B都连接到一个连接模块,该模块包含许多语句,例如:

分配interfaceB.rx1 = interfaceA.rx1;

分配interfaceB.rx2 = interfaceA.rx2;

分配interfaceA.statusX = interfaceB.statusX;

因此,它只是接口A和B的“哑巴”连接。

这种工作方式让人感觉非常不对劲,因为这个connect模块产生了很多开销。有没有一种好的/更简单的方法来使用分层边界上的接口,不仅可以在模拟中工作,而且还可以用于合成?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-14 00:22:54

层次化组合无疑是SystemVerilog接口的一个缺点。

您可以通过使用端口列表创建InterfaceB并从InterfaceA端口连接到各个信号来简化您的解决方案。这样就省去了connect模块。

代码语言:javascript
复制
interface InterfaceB( input rx1, rx2, output ...)'
 modport .../ same as what you have
endinterface
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53764637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档