Vhdl Specman模拟器同步问题?

Vhdl Specman模拟器同步问题?,vhdl,specman,uvm,e,cadence,Vhdl,Specman,Uvm,E,Cadence,我使用的是Cadence的以太网eVC,其中代理的监视器在以下信号处被点击: . ____________ _____ .clk _____| |__________________| . ________ _______ ________________ _________ .data __0a____X___07__X_______0b_______X_________ .

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

.            ____________                    _____
.clk   _____|            |__________________|
.      ________ _______ ________________ _________
.data  __0a____X___07__X_______0b_______X_________
.                      ^ ^
它在时钟的上升沿和下降沿对数据进行采样。在上面的示例中,数据0x07是垃圾数据,有效值是0xa(clk上升)和0xb(clk下降)。但是,监视器正在采样(时钟下降)0x7

我怀疑这是一个斯派曼模拟器同步问题。如果是这样的话,如何解决呢

  • 模拟器-IES13.10
  • irun 13.10选项-(我在这里只包括那些我认为可能与问题相关的选项,加上那些我还不知道其目的是什么的选项)

  • 语言-VHDL(顶级测试平台)、Verilog(DUT)、Specman(虚拟序列、Enet和OCP eVCs)

  • 0x07(上面波形中的左^)和时钟下降沿(右^)之间的时间=0.098ns

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

这确实可能是一个时间刻度问题。 有一本综合性的食谱讨论了Deugg specman模拟器接口同步问题。请看一看

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

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

另一个尝试选项(仅在时间刻度选项无效后)是删除-vhdlsync标志。实际上,在大多数混合环境中,您应该添加此标志。但很少有情况下,没有它环境会更好。如果您试图删除此标志,请记住重新阐述

如果你没有在食谱中找到解决问题的方法,那么应该进行更深入的调查。例如,specman如何对信号进行采样。它是一个简单的端口、事件端口、勾选访问等。。此外,一些跟踪和探测命令可能会有所帮助。在这种情况下,我建议联系Cadence支持部门

祝你好运

Semadar

确保VHDL、Verilog、e等的时间刻度和精度相同
-sntimescale
可能会有所帮助,但我相信此选项仅适用于specman e;您可能需要为VHDL和Verilog找到等效的编译器选项。大多数Verilog/SystemVerilog模拟器默认为1ns/1ns,因此0.098ns将四舍五入为0。测试台/DUT中也可能存在计时延迟或可能的阻塞/非阻塞分配误用。您的Specman时钟事件是如何创建的?它们是否连接到同一个时钟网络?@RossRogers由于是Enet eVC收集数据包信息,我猜想它也在使用
@driver.clock
采样事件。这个时钟就是波形中的那个时钟。@Greg我还没试过这个。现在我只是延迟了时钟以允许eVC监视器“正确”采样数据。我想了解Specman如何与模拟器不同步。我是否可以调用模拟器命令,或者是否可以显示Specman字段值来证明这个问题?或者你可以推荐的任何参考资料,显示HDL和Specman中不同时间刻度和精度的效果?我已经更新了链接。但您也可以转到Cadence Online Support(COS)并进行搜索,因为该链接将来可能会再次更改。
-nomxindr  
-vhdlsync  
+neg_tchk  
-nontcglitch  
+transport_path_delays  
-notimezeroasrtmsg  
-pli_export  
-snstubelab