Specman-simulator同步问题?

问题描述 投票:1回答:1

我正在使用Cadence的以太网eVC,其中代理的监视器被点击以下信号:

.            ____________                    _____
.clk   _____|            |__________________|
.      ________ _______ ________________ _________
.data  __0a____X___07__X_______0b_______X_________
.                      ^ ^

它在时钟的上升沿和下降沿采样数据。在上面的示例中,数据0x07是垃圾数据,有效值是0xa(clk rise)和0xb(clk fall)。但是,监视器正在采样(对于clk下降)0x7!

我怀疑这是一个Specman模拟器同步问题。如果是这样,怎么解决?

  • 模拟器 - IES 13.10
  • irun 13.10选项 - (我在这里只包括那些我认为可能与问题相关的内容,以及那些我还不知道它们的目的是什么) -nomxindr -vhdlsync +neg_tchk -nontcglitch +transport_path_delays -notimezeroasrtmsg -pli_export -snstubelab
  • 语言 - VHDL(顶级测试平台),Verilog(DUT),Specman(虚拟序列,Enet和OCP eVC)
  • 0x07(上面的波形中的左侧^)和时钟的下降沿(右侧^)之间的时间= 0.098ns

一位同事建议使用-sntimescale,但我仍然无法想象这是如何导致/将解决问题的。这些搜索字符串中的任何一个都没有显示有用的提示,即使是来自Cadence的文章:“specman tick synchronization delta delay delaycale precision”

vhdl specman uvm e cadence
1个回答
2
投票

这可能确实是时间尺度的问题。有一本全面的食谱讨论了推迟specman模拟器接口同步问题。请看看here

要检查模拟中使用的时间刻度,可以将-print_hdl_precision选项添加到irun以打印VHDL层次结构的精度。对于Verilog,如果在代码中设置或通过irun选项设置,它将自动打印。信息将在详细说明中打印出来。

要检查Specman使用的时间刻度,可以从Specman提示符发出以下命令: SN> print get_timescale()

尝试的另一个选项(仅在时间刻度选项没有帮助之后)是删除-vhdlsync标志。实际上,在大多数混合环境中,您应该添加此标志。但是在极少数情况下,如果没有环境,环境会更好。如果您尝试删除此标志,请记住重新详细说明。

如果您没有在食谱中找到问题的解决方案,则应进行更深入的调查。例如,specman如何对信号进行采样。它是一个simple_port,event_port,tick访问等。还有一些跟踪和探测命令可能会有所帮助。在这种情况下,我建议联系Cadence支持。

祝你好运! 沉思

© www.soinside.com 2019 - 2024. All rights reserved.