微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

同一个接口的两个 Modport 有 1 个时钟周期差

如何解决同一个接口的两个 Modport 有 1 个时钟周期差

我正在编写一些用于练习的测试环境,但遇到了一些奇怪的问题。我有接口并为主和从做了 2 个 modport。但是当我检查波形时,我发现当我使用主 modports 更改某些内容时,从属 modport 需要额外的时钟周期。同样的情况也发生在对面。

你能解释一下为什么会发生这种情况以及我做错了什么吗?

这是我的部分代码

interface axi_if ();
    wire wready;
...

clocking m_cb @(posedge aclk);
default input #setup_time output #hold_time ;
  ...
  input   wready ;
  ...
endclocking: m_cb
 
clocking s_cb @(posedge aclk);
default input #setup_time output #hold_time ;
...
output wready ;
...
endclocking: c_cb
 

modport axi_master_modport(clocking m_cb,output aresetn);

modport axi_slave_modport( clocking s_cb,input aresetn);

endinterface

谢谢

解决方法

modports 用于创建同一个接口的不同视图,就像在你给出的例子中一样,从主站或从站的角度来看相同的端口。

但我注意到您正在使用时钟块。时钟模块用于查看特定时钟域中的信号。特别是,当我解释 here 时,输入和输出在不同时刻采样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。