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进行编辑:
- 如果IP还没有被定制,现在就这样做,并生成所有的输出产品,包括DCP。
如果您不想使用默认的Ooc流来进行IP,那么就可以通过脱离上下文设置禁用DCP创建。
建议使用默认流。 - 一旦生成了所有的输出产品和DCP,在IP的XCI文件上设置IsHuffic属性为false:
StIyStasyIsHualMaldFalg[GETXFrase<IpNeNo.G.X.Ci]
注:如果IP是一个复杂的子系统IP,您将收到以下错误消息:
错误:[IPvFROW 19-3666 ]不能直接修改IsHub托管属性以用于分级IP。
如果您收到此错误,请参阅下面的章节子系统知识产权.
- 设置ISHUTION为false将导致属性IsHOLD锁定为真。您将看到IP源窗口中的IP图标已更改为
这表明IP核不是由VVADO管理的。
如果你做了一个GETAY属性IsOxList[GETXFrase<IpNeNo.G.x.Ci],你会发现这已经变成了1,这是真的,这意味着IP被锁定了。在报表IP状态命令的输出窗口中,您将看到IP核处于用户管理之下。
- 此时,IP核现在处于用户管理之下,所有非加密文件可以被修改,例如XDC和HDL源文件。
编辑完成后,使用修改后的文件重新创建DCP,转到“设计运行”选项卡,右击IP并选择启动运行。将出现一个对话框,要求启动选定的运行。
按下OK将导致另一个对话框出现,通知您运行将需要重置,并且所有文件将被删除以供运行。
这不是指IP源文件,而是与运行相关的文件和输出。
一旦运行完成,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文件。
运行脚本:
- 用“硬核”的.XCI文件打开项目
- 源脚本
- 运行该过程以创建定义:
MakExCI定义[ GETX文件MyIOCIEL.NAME.XCI]
附件
关联附件
名字 | 文件大小 | 文件类型 |
---|---|---|
make_static.tcl | 5千字节 | TCL |