VIVADO IP流——如何修改/编辑VIVADO中的IP核心源文件?

描述

有时可能需要编辑IP提供的未加密的源文件,包括XDC文件、HDL参数或IP核的端口。

  • 只有在绝对必要的情况下才能做到这一点。

  • 建议如果您决定必须修改任何IP核源,则遵循该应答记录中提供的指南,不直接修改磁盘上的源。

  • 直接在VIVADO之外进行修改会导致您的更改被删除,因为IP核可能在流程中被重置或重新生成。
    将IP核标记为用户管理或在进行编辑之前锁定它是很重要的。
    使IP核用户管理也表明IP核被用户锁定,并且对IP核进行了更改。
    在将IP核放回到工具控制之下时,在改变未来的IP核之前,应该重新考虑这些变化。
    重要的是,正确地设置IP核并在标记为编辑之前生成输出产品。
    一旦IP核处于用户管理之下,就不再能够自定义IP或生成输出产品。

解决方案

VIVADO项目中的标准IP核

这里概述的步骤是一个“管理IP”项目,但也适用于具有IP核的RTL项目,既存储在项目目录结构内,也保存到外部位置。

就可以编辑而言,IP目录中有两种类型的IP传递:

  • 具有用户可更改的iSyM托管属性的IP。
  • 具有ISHOMIN属性的IP作为只读,不能由用户更改。

具有ISO管理属性的IP作为只读子系统,是更复杂的IP。
其中的一个例子是UpjalCe十千兆位以太网PCS/PMA IP,它具有动态收发器向导IP引用。
有关编辑子系统IP的更多信息,请参阅下面的部分。

按照以下步骤准备一个IP进行编辑:

  1. 如果IP还没有被定制,现在就这样做,并生成所有的输出产品,包括DCP。
    如果您不想使用默认的Ooc流来进行IP,那么就可以通过脱离上下文设置禁用DCP创建。
    建议使用默认流。
  2. 一旦生成了所有的输出产品和DCP,在IP的XCI文件上设置IsHuffic属性为false:
    StIyStasyIsHualMaldFalg[GETXFrase<IpNeNo.G.X.Ci]

    注:如果IP是一个复杂的子系统IP,您将收到以下错误消息:

    错误:[IPvFROW 19-3666 ]不能直接修改IsHub托管属性以用于分级IP。

    如果您收到此错误,请参阅下面的章节子系统知识产权.

  3. 设置ISHUTION为false将导致属性IsHOLD锁定为真。您将看到IP源窗口中的IP图标已更改为
    这表明IP核不是由VVADO管理的。
    如果你做了一个GETAY属性IsOxList[GETXFrase<IpNeNo.G.x.Ci],你会发现这已经变成了1,这是真的,这意味着IP被锁定了。

    在报表IP状态命令的输出窗口中,您将看到IP核处于用户管理之下。


  4. 此时,IP核现在处于用户管理之下,所有非加密文件可以被修改,例如XDC和HDL源文件。
    编辑完成后,使用修改后的文件重新创建DCP,转到“设计运行”选项卡,右击IP并选择启动运行。




    将出现一个对话框,要求启动选定的运行。


    按下OK将导致另一个对话框出现,通知您运行将需要重置,并且所有文件将被删除以供运行。

    这不是指IP源文件,而是与运行相关的文件和输出。


  5. 一旦运行完成,IP可以像以前那样使用。通过引用XCI文件(推荐),您将可以访问用于仿真的IP核源文件和用于顶层综合的DCP以及实现。



IP子系统

某些复杂的子系统IP将不允许对IsHub托管属性进行更改。

这包括IP在所有7系列和 UltraScale FPGA家族。

子系统IP是否允许ISO被管理改变取决于特定IP的特定定制选项。

与编辑这些IP的RTL文件相关联的风险。你可以做一个改变,使子内核的连通性失效。

对这些IP核HDL文件进行更改应该仔细考虑。

如果这些IP需要编辑,那么建议您在进行编辑之前手动锁定IP核。

StIyStaseIsLoalTrtrue[ GETX文件TynGigySythPCSyPMA00.XCI]

一旦IP被锁定,您将在IP源选项卡中看到图标现在在IP符号上有一个锁定。

以这种方式锁定IP核可以防止VIVADO修改IP输出产品或重置IP核。

它还提供了一个视觉线索,IP核已经被用户修改。

与被标记为用户管理的IP核(通过IsHub托管属性)不同,在使用VIVADO的内置文本编辑器时,锁定IP核不能启用IP核的编辑。

您将需要更改到另一个编辑器(工具-gt;选项-gt;一般在文本编辑器部分),或者使用您选择的文本编辑器直接在磁盘上编辑文件。

一旦文件被修改,重新创建DCP的步骤就与步骤子4一样继续进行,就像非子系统IP一样。


IP积分器(IPI)块设计(IP)中的IP实例

为了在IPI块下编辑IP的内容,是将生成的源重新打包为自定义IP,并在必要时编辑HDL。

如果在BD中有一个IP核,需要对生成的HDL进行编辑,通过重新定制IP核而不可用,则生成的文件需要重新打包,以便在BD中使用它们。

提供附加的脚本(MajaStimult.TCL)以帮助处理此过程。虽然脚本未得到官方支持,但您可以使用它将生成的IP核重新打包为IP定义,并使用该IP在IPI中创建新实例。

一旦做到这一点,您可以编辑IP定义,就像您将任何自定义IP(如果您改变顶层接口,使用编辑在IP包装流合并在变化)。

注意,创建的IP定义不再是可参数化的。

该脚本旨在从IP实例创建IP定义。它将创建一个具有类似名称的IP,但前缀是“static”。

重要的是,使用的XCI文件在当前打开的项目中,并且完全生成.XCI文件。


运行脚本:

  1. 用“硬核”的.XCI文件打开项目
  2. 源脚本
  3. 运行该过程以创建定义:
    MakExCI定义[ GETX文件MyIOCIEL.NAME.XCI]

附件

关联附件

名字文件大小文件类型
make_static.tcl5千字节TCL
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-30 17:45:26 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它