如何解决同一个接口的两个 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 举报,一经查实,本站将立刻删除。