ViVADO实现——我在编写一个检查点并再次读取之后,从OptTyDebug中得到不同的校验和。-Xilinx-AMD社区-FPGA CPLD-ChipDebug

ViVADO实现——我在编写一个检查点并再次读取之后,从OptTyDebug中得到不同的校验和。

描述

我看到一个不同的设计校验和的基础上的流程,我用来处理设计。

流程1:一次运行一个命令,打开和关闭每个检查点。

例子:

  • 林克设计
  • 写入检查点
  • 封闭式设计
  • OpenX检查点
  • optl设计
  • 写入检查点
  • 封闭式设计
  • OpenX检查点
  • 位置设计
  • 写入检查点
  • 封闭式设计
  • 等。。。

流程2:不离开VIVADO的连续流动或关闭和打开台阶之间的检查点。

如果我在设计上运行流1,每次都会得到一个可重复的校验和。
如果我在设计上运行流2,每次都会得到一个可重复的校验和。

但是,这两个流的校验和是不一样的。

差异似乎发生在Link设计和Optl设计步骤之间。

如果我在退出之前运行Link设计,然后是optl设计,结果不会改变我是在内存中运行还是用检查点关闭和打开VIVADO。

这种差异是期望的吗?

这是否意味着当设计被写入和读取时,什么东西(例如,约束)被忽略或应用不同?

有什么办法可以避免吗?

优选的流程是什么?

解决方案

RealEngPosikPoT命令后面跟着一个Read检查点命令,它不会将设计的校验和恢复到WrreEngRealPosits之前。
校验和差异背后的主要原因是VVADO在这两个步骤中丢失了NETLIST对象的顺序。
这并不意味着设计不同,只是内存中的NETLIST对象顺序不同,校验和对NETLIST对象顺序敏感。

这种差异的影响减轻了这样一个事实,即每个主要的TCL命令(例如,optl设计、Posil设计、RoutEy设计等)在他们开始工作之前对网表进行排序。
因此,即使NETLIST对象顺序在两个流之间是不同的,当在其上运行optjDead时,网表被排序,并且对于两个网表应该表现相同。

两个流中的Link设计后的校验和差异是预期的行为。这并不意味着两个流程中的设计是不同的。然而,如果最终设计表现出不同的行为,则应该对此进行研究。

如说明书中所述,如果设计在Link设计和Optl设计步骤之间保持开放,则通常会避免差异。

要么是合法的,要么取决于你的使用模式,这对你来说是最好的。

流程1通常会更快,因为关闭和重新打开设计所花费的时间更少。

请登录后发表评论

    没有回复内容