0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为多个Vivado工程复用远程IP高速缓存

OpenFPGA 来源:OpenFPGA 2023-12-01 09:14 次阅读

在设计周期中,您可保留多个版本的工程,这些工程使用相同的 IP 和相同的配置。重新运行整个工程会导致每次都要重新生成 IP,很费时间。

在 Vivado工程设置中,您的 IP 存储库允许您将自己的 IP 添加到 Vivado IP 目录中,搭配远程 IP 高速缓存一起使用时,即可显著缩短编译时间。这篇博文解释了具体设置方法。

要求:

在阅读本设计输入之前,请确保您熟悉如何封装 IP 核。如需了解相关信息,请参阅 UG1118 和 QuickTake 视频

在开始下述步骤前,最好先创建格式化目录结构:

bc454bce-8fe1-11ee-939d-92fbcf53809c.png

注释:此结构中应有一个顶层的父目录,例如,iprepo,然后是子目录;每个 IP 一个子目录,还有一个子目录对应由 Vivado 创建的远程 IP 高速缓存。

此 IP 必须位于远程 IP 高速缓存的同级目录内。这是因为 Vivado 遇到 component.xml 文件时,就会停止搜索 IP 高速缓存的目录结构,而此文件始终与封装的 IP 目录一起生成。

第 1 步:将所有必需的源文件封装为单个 IP

一般,IP 封装步骤包括以下 3 个步骤,并且封装的 IP 文件一起接受管理。

1. 将 RTL 添加到 Vivado 工程中,并对其进行综合,验证其完整性 。


2. 使用 Vivado 中的“Tools”(工具)选项对 RTL 进行封装:

bc5b563a-8fe1-11ee-939d-92fbcf53809c.png

3. 确保基于 ip_repo 目录中的 IP 名称选择一个目录。

第 2 步:验证并生成所有远程高速缓存文件

在这一步中,您需要从已封装的 IP 文件夹中例化已封装的 IP,但不含任何逻辑连接。随后,为存储库中的不同 IP 配置生成网表。


1. 通过工程设置将新创建的用户 IP 存储库添加到 Vivado 工程中:

bc68ae70-8fe1-11ee-939d-92fbcf53809c.png

2. 将该 IP 添加到新创建的 IP integrator 块设计中。 您可选中 IP 并按下 Ctrl-T 键,轻松将此 IP 的所有端口连接到外部端口。或者,您可将其添加到设计中。

3. 如果您的 IP 可配置,请添加多项配置,以便在 IP 高速缓存中填充更多通用配置。

注释:应用此变通方法时存在诸多限制,只要与用户 IP 设置存在任何不匹配,都可能导致重新生成已例化的 IP。

请确保软件构建相匹配

请确保 device part/speed_grade/board name 相匹配

确保 IP 设置与生成此 IP 时的 IP 缓存文件相匹配。鉴于有时参数传播可能导致覆盖用户 IP 上的部分参数,例如,从上游传播的时钟频率会被覆盖,因此应执行检查。

4. 确认设计并审查任何“Error”(错误)和“Critical Warning”(严重警告)

5. 生成设计之前,在 IP Repository 目录下指定远程 IP 存储库,例如,/iprepo/ipcache:

bc75e02c-8fe1-11ee-939d-92fbcf53809c.png

6. 使用默认“Out of context per IP”(非关联按 IP)选项生成块设计:

bc85bba0-8fe1-11ee-939d-92fbcf53809c.png

7. 生成完成后,应显示已填充的远程 IP 高速缓存。

其中将生成新的目录,并以散列代码作为目录名称。

第 3 步:在正式设计中例化 IP,并复用远程 IP 存储库

在工程中使用用户 IP 存储库和 IP 高速缓存:

1. 现在,您只需要指向顶层的 IP 存储库目录,即可同时使用用户 IP 和远程 IP 高速缓存。

bc68ae70-8fe1-11ee-939d-92fbcf53809c.png

2. 生成设计时,如果使用的器件/开发板和 IP 配置选项未更改,就不会发生重新综合,并且 IP 运行状态将显示“Using cached IP results”(使用缓存的 IP 结果):

bcbd3a62-8fe1-11ee-939d-92fbcf53809c.png

建议的版本管理:

请通过脚本封装用户 IP,或创建独立工程来封装 IP。

创建独立工程来例化包含所有不同配置的用户 IP,并生成此 IP,同时导出高速缓存。

在正式工程中采用此 IP,并遵循本文档中的指南进行操作。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 高速缓存
    +关注

    关注

    0

    文章

    29

    浏览量

    10980
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32394
  • 脚本
    +关注

    关注

    1

    文章

    372

    浏览量

    14635
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65101

原文标题:节省编译时间系列-为多个 Vivado™ 工程复用远程 IP 高速缓存

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    linux的高速缓存DNS怎么设置

    linux 高速缓存DNS
    发表于 08-12 12:06

    MRAM高速缓存的组成

    和DRAM的潜能。用MTJ存储单元构建的MRAM存储器可以用作高速缓存高速缓存可以用与SRAM几乎相同的方式来组建。MRAM与SRAM具有相似的电路结构(见图1)。 它们都由字线来选择目标操作单元,由位线
    发表于 11-06 14:17

    高速缓存/海量缓存的设计实现

    IS61LV25616-10T,容量256k16bit,访问速度10ns,使用两片即可构成256k32bit的高速缓存。当一轮采样开始时,DSP发出触发信号给CPLD,后者对50MHz晶振时钟二分
    发表于 12-04 15:59

    怎么利用异步FIFO和PLL结构来实现高速缓存?

    结合高速嵌入式数据采集系统,提出一种基于CvcloneⅢ FPGA实现的异步FIFO和锁相环(PLL)结构来实现高速缓存,该结构可成倍提高数据流通速率,增加数据采集系统的实时性。采用FPGA设计高速缓存,能针对外部硬件系统的改变
    发表于 04-30 06:19

    怎样去实现一种基于DSP和ADC技术高速缓存和海量缓存

    构成高速缓存的方案有哪几种?如何去实现一种海量缓存的设计?怎样去实现一种基于DSP和ADC技术高速缓存和海量缓存
    发表于 06-26 07:50

    高速缓存(cache)的工作原理是什么?高速缓存可分为哪几类

    存储器系统的层次架构是如何构成的?高速缓存(cache)的工作原理是什么?高速缓存可分为哪几类?
    发表于 12-23 06:18

    高速缓存Cache介绍

    什么是高速缓存?• 高速存储器块,包含地址信息(通常称作TAG)和相关联的数据。• 目的是提高对存储器的平均访问速度• 高速缓存的应用基于下面两个程序的局部性 :• 空间局部性:如果一个存储器的位置
    发表于 09-07 08:22

    磁盘阵列的高速缓存

    磁盘阵列的高速缓存         
    发表于 01-09 09:59 2583次阅读

    高速缓存(Cache),高速缓存(Cache)原理是什么?

    高速缓存(Cache),高速缓存(Cache)原理是什么? 高速缓存Cache是位于CPU和主存储器之间规模较小、存取速度快捷的静态存储器。Cache一般由
    发表于 03-26 10:49 6729次阅读

    基于BCH算法的高速缓存纠检错方案研究

    基于BCH算法的高速缓存纠检错方案研究
    发表于 01-07 20:32 0次下载

    AN1600 - 在PIC32MZ器件上使用L1高速缓存

    本文档提供了PIC32MZ器件系列中一级(Level 1,L1) CPU高速缓存实现的相关信息,并介绍了高速缓存系统的相关风险。此外还提供了解决这些风险的方法。对于高级用户,还针对MPLAB@
    发表于 03-26 10:39 2次下载

    管理基于Cortex®-M7的MCU的高速缓存一致性

    本文档概述了不同场景下的高速缓存一致性问题,并就如何管理或避免高速缓存一致性问题提供了一些方法建议。
    发表于 04-01 10:12 5次下载
    管理基于Cortex®-M7的MCU的<b class='flag-5'>高速缓存</b>一致性

    使用STM32高速缓存优化性能和能效

    使用STM32高速缓存优化性能和能效
    发表于 11-21 17:07 0次下载
    使用STM32<b class='flag-5'>高速缓存</b>优化性能和能效

    STM32F7技术--高速缓存

    电子发烧友网站提供《STM32F7技术--高速缓存.pdf》资料免费下载
    发表于 08-01 15:18 0次下载
    STM32F7技术--<b class='flag-5'>高速缓存</b>

    多个Vivado工程复用远程IP高速缓存

    在设计周期中,您可保留多个版本的工程,这些工程使用相同的 IP 和相同的配置。重新运行整个工程会导致每次都要重新生成
    的头像 发表于 09-22 09:39 469次阅读
    为<b class='flag-5'>多个</b><b class='flag-5'>Vivado</b>™<b class='flag-5'>工程</b><b class='flag-5'>复用</b><b class='flag-5'>远程</b><b class='flag-5'>IP</b><b class='flag-5'>高速缓存</b>