描述
关键词:定时、运行、内部
当我用ModelSim运行定时仿真时,来自DCM和CLKDLL模型的时钟不会出现倾斜。如果DCM和CLKDLL应该与输入时钟对齐内部时钟,为什么会发生这种情况?
解决方案
首先,确保正确的信号正在被比较。在DCM或CLKDLL被锁定之后,输入端口上的时钟应该与输入到寄存器的时钟对齐。在输入端口的时钟不应该与来自DCM或CLKDLL的时钟对齐,或者与来自全局缓冲器的时钟对齐。
当比较正确的信号时,MODESIM波窗口仍然显示时钟之间的少量时钟偏移。仿真是正确的,但是波形并没有如预期的那样显示出来。这种明显歪斜的原因是SDF中的延迟由MODESIM处理。
SDF对XYFF组件上的时钟端口延迟进行注释;然而,仿真器在考虑到该延迟之前显示时钟信号。如果将XYFF上的这个时钟端口延迟加到内部时钟信号中,它与波形端口中的输入端口时钟(在数据表中的器件规格内)对齐。同样,仿真在功能上是正确的。这只是ModelSim显示波形的一个问题。
如果您需要正确显示波形,在Xilinx ISE设计工具中添加一个环境变量“NLWWADADYORUDTELDYLY缓冲区”,并将其值设置为1,有一种临时的方法来解决这一问题。这导致在每个时钟输入端口之前增加一个额外的缓冲器。以前在注册表的输入端口上注释的延迟现在被移到这个额外的缓冲器。当您查看寄存器中的时钟时,它现在与输入时钟正确对齐。然而,这增加了网表大小,增加了仿真器内存使用,并减慢了仿真。因此,Xilinx不建议使用环境变量。
模型技术计划增强MODESIM波形查看器在未来的软件版本中正确显示延迟。
没有回复内容