ViVADO IP流-[VIVADO-12570]设计检查点文件“.DCP”是出于上下文无关的综合运行而生成的IP,不应直接用作VIVADO流程中的源-Xilinx-AMD社区-FPGA CPLD-ChipDebug

ViVADO IP流-[VIVADO-12570]设计检查点文件“.DCP”是出于上下文无关的综合运行而生成的IP,不应直接用作VIVADO流程中的源

描述

当我将IP核的设计检查点(DCP)文件添加到我的项目中,或者用Read OpjStore点命令读取它时,我得到一条消息,说明它不推荐使用。

根据DCP的添加方式,可以接收以下消息。

[ViVADO-12570]设计检查点文件’.dc’是通过上下文外综合运行生成的IP,不应直接用作VIVADO流程中的源。强烈建议使用原始IP源文件(.xCI)。

[ViVADO-12569]设计检查点文件’.dc’是通过上下文外综合运行生成的IP,不应直接用作VIVADO流程中的源。强烈建议使用原始IP源文件(.xCI)。

关键警告:[项目1-863]为一个块设计或IP或BD生成一个上下文无关的综合运行的设计检查点文件MyIIP.DCP,并且不应该直接用作ViVADO流程中的源来引用IP源。在2017.1中,来自OOC运行的DCP将不包含XDC时序约束,因为这些预期将被IP.xCI或.xCix文件源引用。在2017.1之前的DCP文件将包含不正确的约束,因为它们是用默认OOC时钟周期生成的,这将不可能在全设计环境中使用时与顶层时钟约束相匹配。

我没有在ViVADO 2016.4和更早的时候得到这个消息,并且使用了与早期版本相同的流程。

在我公司的基本流程中,IP核生成OOC,然后将DCP加载到设计中而不是XCI文件中。

  • Xilinx是否更改了添加IP核心文件的推荐使用模型?
  • 为什么使用XCI或XCX文件来推荐IP核的DCP文件?
  • 如果在上下文无关(OOC)中生成IP核输出文件时,发生了什么变化?
  • 这也适用于用户打包的IP吗?
  • 对IP核DCP文件的DCP支持是否完全移除?
  • 在VIVADO 2017.1中引入的更改会影响其他的、非IP DCP文件综合的OOC吗?
  • XCI和DCP文件之间的区别是什么?它们不包含相同的IP核设计文件吗?
  • 为什么在ViVADO 2017.1中引入了变化?
  • 在ViVADO 2016.4和更早版本中创建的DCP文件会继续像以前那样工作吗?
  • ViVADO 2017.1和以后版本能够创建与ViVADO 2016.4中创建的IP核DCP文件完全相同的文件吗?
  • 我需要改变现有的脚本和流程吗?或者当我转移到新的项目和脚本时,这是唯一应该改变的东西吗?
  • 如果出于任何原因,我需要修改生成的IP核的输出文件(例如,引脚限制),那么我是否应该添加生成的DCP文件或添加XCI/XXCIX文件?

解决方案

Xilinx是否更改了添加IP核心文件的推荐使用模型?

在VIVADO 2017.1中,向软件中添加了检查和后续消息,以帮助强调Xilinx建议XCI或XCIX文件应该用作所有Xilinx IP核的源文件并且用户不应该用生成的上下文(OOC)检查点(DCP)替换这些文件。这个建议并不新鲜。这是多年来的主要建议,但是,我们已经改变或添加了ViVADO中的消息,以使推荐更加清晰。

为什么使用XCI或XCX文件来推荐IP核的DCP文件?

  • XCI文件是一个捕获IP核的所有配置设置的XML文件。
  • XCI文件将VIVADO指向为IP核生成的所有文件,包括-DCP、综合、约束、内存初始化和仿真文件。
  • XCI文件是ViVADO如何确定IP是否完全生成或是否有任何文件丢失。

如果在上下文无关(OOC)中生成IP核输出文件时,发生了什么变化?

ViVADO 2017.1与此流程相关的下列更改已被实施:

  • 向他们的项目添加一个DCP文件的客户,我们的目录中的Xilinx IP将看到一个关键警告,告诉他们这是不推荐的。
    注:流程将继续像以前一样工作,在2017.1之前存在一些限制。
  • 我们还修改了IP OOC综合的运行方式。
    • 为了避免重复应用约束,从2017.1开始,OOCDCP不再包含任何约束. 通过移除来自DCP的约束,我们可以确保不会有重复。
    • 如果您遵循我们的建议,并使用IP.xCI文件,原始的约束,将重新应用到IP中。
    • IP核的DCP不能也不应该单独使用除非手动重新应用约束。如果用户在VIVADO 2017.1或更高版本中生成IP核,并将OCP SoTX目录中的DCP直接使用,它将不包含约束。

对IP核DCP文件的DCP支持是否完全移除?

许多客户更喜欢与ISE核心生成器更接近的一代模型,在那里他们有一个单独的文件,所以他们已经把DCP从生成目录中取出,并把它们作为ViVADO项目作为源文件,而不是使用.xCI。

虽然不推荐,Xilinx试图支持这个模型。然而,由于技术挑战,不能很容易地解决许多IP,我们背弃了试图支持这一流程,并试图更强烈地引导我们的客户到我们推荐的流程。

此流未被Xilinx测试或支持。

这也适用于用户打包的IP吗?

使用XCI或XCX文件作为IP核的源的建议适用于来自Xilinx IP目录和客户打包IP的IP。

预期和设计的用户IP以与Xilinx IP相同的方式使用,并且将被ViVADO处理。

IP提供者可以通过确保所创建的IP没有关于传播时钟的约束并且没有存储单元或COE文件来验证它们不受此问题的影响。

然而,如果用户只添加用户IP核的DCP作为源,它们仍然会受到严重警告。

在VIVADO 2017.1中引入的更改会影响其他的、非IP DCP文件综合的OOC吗?

如果在项目中有RTL并且已经打开OOC综合或自下而上综合,则该流不会受到影响,并且仍会像过去那样工作。在这种情况下,不会发出关键警告信息。
这些更改仅适用于Xilinx IP目录和客户打包IP的IP。

XCI和DCP文件之间的区别是什么?它们不包含相同的IP核设计文件吗?

读取IP(Read Tip IP)和读取与应用约束相关的检查点(Read OpjPosikPoT)之间存在根本性差异。

  • 知识产权(1)读取XCI文件。2)读取XCI指向的DCP。3)应用原始IP核XDC约束由XCI文件指向。(忽略了嵌入在DCP中的XDC约束)
  • 雷丁检查点(1)在DCP文件中读取。2)将DCP提取到临时目录。3)读取提取的EDF网表。4)应用从DCP中提取的XDC约束文件。5)如果存在XDEFS,则读取XDEFS。

为什么改变在ViVADO 2017.1?

了解这个问题的根源的关键在于了解原始IP核XDC文件和嵌入在生成的DCP中的XDC文件之间的差异,并且知道需要什么文件来正确地实现IP核。

  • 生成的DCP包含用于OOC综合运行的约束。这是一个断章取义的综合运行,需要合理的约束,以产生合理的网表。然而,这些约束没有外部设计的知识。
  • XCI文件指向原始VDC约束,当VIVADO综合和实现过程访问整个设计时,这些约束将被应用。
    具有外部设计的知识允许基于设计来设置约束(不是人工估计或默认值)。
  • ViVADO需要嵌入在XCI中的信息来正确地进行内存初始化
      • UPDATEJMEM不适用于DCP,因为它需要层次结构信息来正确地应用内存内容。
      • MIG IP显示了最常见的初始化挑战之一,作为嵌入式微闪存IP,用于校准需要校准码的Program。
      • ELF和COE,内存初始化文件不嵌入DCP中
  • 当使用DCP文件时,仿真速度慢到100X。
      仿真时差是由于结构网表仿真和行为模型与IP(外部DCP)一起传输的差异。
  • 不能重新创建IP核(或升级或对其进行更改)
    • 如果你失去了XCI文件的IP核,你不知道的设置或DCP内容,所以XCI将总是需要保存在任何情况下。
  • Xilinx从不为我们的IP目录测试独立的DCP
      客户可以选择忽略关键警告,流程将继续。然而,他们通过这样做基本上是“非漫游”。

在ViVADO 2016.4和更早版本中创建的DCP文件会继续像以前那样工作吗?

如果DCP是在VIVADO 2016.4或更早的版本中生成的,则应该看到关键警告消息,但是如果您选择继续,DCP网表将被读取,并且存储在DCP中的OOC约束将应用在ViVADO 2016.4和更早的版本中。

ViVADO 2017.1和以后是否能够创建与ViVADO 2016.4中创建的IP核DCP文件完全相同的文件?

不,为ViVADO 2017.1和以后的IP核创建的DCP将不包括OOC XDC文件。

我需要改变现有的脚本和流程吗?或者当我转移到新的项目和脚本时,这是唯一应该改变的东西吗?

更改脚本应该是一行更改。例如:将“Read OpjPosikMyIpp.Cord.DCP”替换为“Realthip MyOxCyr.xCI”。

如上所述,现有脚本可能继续工作,并且只生成额外的临界警告。

如果脚本包含ViVADO 2017.1或更高版本中的新IP核的生成,则脚本最有可能需要更新以指向建议的XCI文件,或者附加地将IP核XDC约束和任何初始化文件添加到DCP实例中。

如果出于任何原因,我需要修改生成的IP核的输出文件(例如,引脚限制),那么我是否应该添加生成的DCP文件或添加XCI/XXCIX文件?

编辑生成的IP核文件不应该是一个通用的流程。然而,有些情况下(通常与编辑IP核约束有关)可能需要这种情况。在这种情况下,XCI或XCIX文件仍应用作源。

修改IP约束的工作是在项目中禁用它们,然后将它们所需的任何内容作为用户XDC覆盖在顶层。

你可以选择IP核XDC,鼠标右键并选择禁用。这也将发出TCL命令禁用文件,如果需要的话,它可以在脚本流中使用。如果用户修改IP核的输出文件,则需要生成IP核的OOC DCP。

在创建DCP之后,他们仍然应该使用IP核XCI文件来正确地指向所有的IP核心文件(包括DCP)。

参考文献:

快速拍摄视频修改控制:

HTTPS://www. xLimx.COM/VIEW/HARDWORK/VIVADO设计- SUTITE-RESULTION CONNECT.HTML.

用IP用户指南设计

HTTPS://www. XILIX.COM/CGI-BI/DOCS/RDOC?V=最新;D=UG896VIVADO-IP.PDF

修改控制设计实例和脚本:

HTTPS://GITHUBCOM/XILIX/RVCCTRL

修订控制教程用户指南(最后更新2016.3不会更新)

HTTPS://www. xLimx.COM/Spopt/DooptIs/SWIMANALS/XILIX2012013/UG11981 VIVADO-RealTimeOutual控件-Putoal.PDF

请登录后发表评论

    没有回复内容