英特尔徽标AN 987:静态更新部分
重新配置教程

英特尔® ™ Agilex F 系列 FPGA 开发板静态更新部分重新配置教程

本应用笔记演示了英特尔® F 系列 FPGA 开发板上的静态更新部分重配置 (SUPR)。 部分重新配置 (PR) 允许您动态重新配置英特尔 FPGA 的一部分,而其余 FPGA 继续运行。 PR 在设计中的特定区域实现多个角色,而不会影响该区域以外区域的操作。 该方法提供了以下优点tag在多个功能分时共享相同 FPGA 资源的系统中:

  • 允许运行时重新配置
  • 提高设计可扩展性
  • 减少系统停机时间
  • 在设计中支持动态时间复用功能
  • 通过有效利用电路板空间降低成本和功耗

什么是静态更新部分重新配置?

在传统 PR 中,对静态区域的任何更改都需要重新编译每个角色。 但是,使用 SUPR,您可以定义允许更改的专门区域,而无需重新编译角色。 此技术对于您可能想要更改以降低风险但永远不需要运行时重新配置的设计部分很有用。

1.1. 教程要求
本教程需要以下内容:

  • 基本熟悉英特尔 Quartus® Prime 专业版 FPGA 实施流程和项目 files.
  •  安装 Intel Quartus Prime Pro Edition 版本 22.3,并支持 Intel Agilex 设备。
  • 对于 FPGA 实现,JTAG 与工作台上的 Intel Agilex F 系列 FPGA 开发板连接。
  • 下载参考设计 Files。 相关信息
  • 部分重配置用户指南
  • 部分重新配置教程
  • 部分重构在线培训

英特尔公司。 版权所有。 英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。 英特尔根据英特尔的标准保修保证其 FPGA 和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。 英特尔不承担因应用或使用此处描述的任何信息、产品或服务而产生的任何责任或义务,除非英特尔明确书面同意。 建议英特尔客户在依赖任何已发布信息和下订单购买产品或服务之前获取最新版本的设备规格。 *其他名称和品牌可能被认为是他人的财产。
ISO 9001:2015注册
1.2. 参考设计结束view
该参考设计由一个 32 位计数器组成。 在板级,该设计将时钟连接到 50MHz 源,然后将输出连接到板上的四个 LED。 按特定顺序选择计数器位的输出会导致 LED 以特定频率闪烁。 top_counter 模块是 SUPR 区域。
图 1. 扁平参考设计

英特尔徽标1.3. 静态更新区域结束view
下图显示了包含 SUPR 区域的 PR 设计的框图。 A 块是顶部静态区域。 B区是SUPR区域。 C 块是 PR 分区。
图 2. SUPR 区域的 PR 设计

英特尔 Agilex F 系列 FPGA 开发板 - 区域

  • 顶部静态区域—包含不会更改的设计逻辑。 更改此区域需要重新编译所有相关角色。 静态区域包括不会因任何角色而改变的设计部分。 该区域可以包括外围和核心设备资源。 您必须在静态区域中注册 SUPR 和 PR 分区之间的所有通信。 此要求有助于确保任何角色相对于静态区域的时序收敛。
  • B SUPR 区域 — 包含可能会因风险缓解而更改的纯核心逻辑,但从不需要运行时重新配置。 SUPR 区域与 PR 分区具有相同的要求和限制。 SUPR 分区只能包含核心资源。 因此,SUPR 分区必须是包含设计外设和时钟的顶级根分区的子分区。 更改 SUPR 区域会生成 SRAM 对象 File (.sof) 与所有现有已编译的原始二进制文件兼容 File (.rbf) files 代表 PR 分区 C。
  • C PR 分区—包含任意逻辑,您可以在运行时使用任何适合并在编译期间实现时序收敛的设计逻辑重新编程。

1.4. 下载参考设计 Files
部分重新配置教程位于以下位置: https://github.com/intel/fpga-partial-reconfig
下载教程:

  1. 单击克隆或下载。
  2. 单击下载 ZIP。 解压 fpga-partial-reconfig-master.zip file.
  3. 导航至tutorials/agilex_pcie_devkit_blinking_led_supr 子文件夹以访问参考设计。
    平面文件夹由以下内容组成 files:
    表 1. 参考设计 Files
File 姓名 描述
顶部。 SV 顶层 file 包含设计的平面实现。 该模块实例化 blinking_led 子分区和 top_counter 模块。
t op_counter 。 SV 直接控制 LED [32] 的顶级 1 位计数器。 计数器的注册输出控制 LED [0],并通过眨眼 LED 模块为 LED [2] 和 LED [3] 供电。
闪烁_led。 SDDC 定义项目的时间限制。
闪烁_led。 SV 在本教程中,您将此模块转换为父 PR 分区。 该模块接收 top_counter 模块的注册输出,控制 LED [2] 和 LED [3]。
闪烁_led.qpf 英特尔 Quartus Prime 项目 file 包含项目中所有修订的列表。
闪烁 LED 。 qsf 英特尔 Quartus Prime 设置 file 包含项目的分配和设置。

笔记: supr 文件夹包含完整的集 file您使用此应用程序创建的 笔记。 参考这些 file在演练期间的任何时候。
1.5. 参考设计演练
以下步骤描述了采用扁平化设计实施 SUPR:

  • 步骤 1:入门
  • 第2步:创建设计分区
  • 步骤 3:分配布局和布线区域
  • 第 4 步:定义角色
  • 第 5 步:创建修订
  • 第 6 步:编译基础修订版
  • 第 7 步:设置 PR 实施修订
  • 步骤 8:更改 SUPR 逻辑
  • 第 9 步:对电路板进行编程

图 3. SUPR 编译流程

英特尔 Agilex F 系列 FPGA 开发板 - 流程

1.5.1. 第 1 步:开始
复制参考设计 files 到您的工作环境并编译 blinking_led 平面设计:

  1. 开始之前,请下载参考设计 Files 在第 5 页。
  2. 在您的工作环境中创建agilex_pcie_devkit_blinking_led_supr目录。
  3. 将下载的tutorials/agilex_pcie_devkit_blinking_led/flat 子文件夹复制到agilex_pcie_devkit_blinking_led_supr 目录。
  4. 在 Intel Quartus Prime Pro Edition 软件中,点击 File ➤ 打开项目并打开 /flat/blinking_led.qpf。
  5. 要编译基本设计,请单击“处理”➤“开始编译”。 编译完成后,时序分析器报告会自动打开。 您现在可以关闭时序分析器。

1.5.2. 第2步:创建设计分区
为要部分重新配置的每个区域创建设计分区。 您可以在项目中创建任意数量的独立分区或 PR 区域。 按照以下步骤为 u_blinking_led 实例创建设计分区作为 PR 分区,为 u_top_counter 实例创建设计分区作为 SUPR 区域:

  1. 右键单击 Project Navigator 中的 u_blinking_led 实例,然后单击 Design Partition
    ➤ 可重新配置。 每个设置为分区的实例旁边都会显示一个设计分区图标。
    图 4. 创建设计分区英特尔 Agilex F 系列 FPGA 开发板 - 分区
  2. 重复步骤 1 为 u_top_counter 实例创建分区。
  3. 单击“分配”➤“设计分区窗口”。 该窗口显示项目中的所有设计分区。
    图 5. 设计分区窗口
    英特尔 Agilex F 系列 FPGA 开发板 - 窗口
  4. 双击blinking_led Partition Name 单元格将其重命名为pr_partition。 同样,将top_counter分区重命名为supr_partition。
    或者,将以下行添加到眨眼_led.qsf 中创建这些分区:
    set_instance_assignment-name PARTITION pr_partition \-to u_blinking_led-entity top
    set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_blinking_led -entity top
    set_instance_assignment -name PARTITION superr_partition \ -to u_top_counter -entity top
    set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_top_counter -entity top

1.5.3. 步骤 3:分配布局和布线区域
对于您创建的每个基础修订版,编译器都会使用 PR 分区区域分配将相应的角色核心放置在保留区域中。 请按照以下步骤在设备布局规划中为您的基础修订版找到并分配 PR 区域:

  1. 在“项目导航器层次结构”选项卡中,右键单击 u_blinking_led 实例,然后单击 Logic Lock Region ➤ Create New Logic Lock Region。 该区域出现在 Logic Lock Regions 窗口中。
  2. 指定区域宽度为 5,高度为 5。
  3. 在 Origin 列中指定 u_blinking_led 的放置区域坐标。 原点对应于该区域的左下角。 将原点指定为 X166_Y199。 编译器计算 (X170 Y203) 作为右上角坐标。
  4. 为该区域启用“保留”和“仅核心”选项。
  5. 双击 Routing Region 选项。 出现 Logic Lock Routing Region Settings 对话框。
  6. 对于路由类型,选择固定扩展。 此选项自动将扩展长度指定为 XNUMX。
  7. 重复前面的步骤为 u_top_counter 分区分配以下资源:
    • 高度—5
    • 宽度—5
    • 原点—X173_Y199
    • 路由区域— 通过扩展进行修复,扩展长度为一。
    • 保留—开启
    • 仅核心—开启
    图 6. 逻辑锁定区域窗口
    英特尔 Agilex F 系列 FPGA 开发板 - 区域窗口
    笔记: 布线区域必须大于布局区域,以便为编译器的布线提供额外的灵活性tage,当编译器路由不同的角色时。
  8. 您的布局区域必须包含眨眼 LED 逻辑。 要通过在 Chip Planner 中定位节点来选择布局区域,请右键单击 Logic Lock Regions 窗口中的 u_blinking_led 区域名称,然后单击 Locate Node ➤ Locate in Chip Planner。
  9.  在“分区报告”下,双击“报告设计分区”。 Chip Planner 突出显示该区域并对其进行颜色编码。

图 7. blinking_led 的 Chip Planner 节点位置
英特尔 Agilex F 系列 FPGA 开发板 -blinking_led或者,将以下行添加到眨眼_led.qsf 中创建这些区域:
set_instance_assignment-名称分区pr_partition-到\u_blinking_led-实体顶部
set_instance_assignment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_blinking_led -entity top
set_instance_assignment -name PARTITION superr_partition -to u_top_counter \ -entity top
设置实例分配-名称 PARTIAL_RECONFIGURATION_PARTITION ON-to \ u_top_counter-实体顶部
设置实例分配-名称 PLACE_REGION “X166 Y199 X170 Y203” -to \ u_blinking_led
设置实例分配-名称 RESERVE_PLACE_REGION ON-至 u_blinking_led
设置实例分配-名称 CORE_ONLY_PLACE_REGION ON-至 u_blinking_led
set_instance_assignment -名称 REGION_NAME pr_partition -to u_blinking_led
设置实例分配-名称ROUTE_REGION“X165 Y198 X171 Y204”-to \ u_blinking_led
set_instance_assignment -名称 RESERVE_ROUTE_REGION OFF -to u_blinking_led
设置实例分配-名称 PLACE_REGION “X173 Y199 X177 Y203” -to \ u_top_counter
设置实例分配-名称 RESERVE_PLACE_REGION ON-到 u_top_counter
设置实例分配-名称 CORE_ONLY_PLACE_REGION ON-到 u_top_counter
set_instance_assignment -name REGION_NAME superr_partition -to u_top_counter
设置实例分配-名称ROUTE_REGION“X172 Y198 X178 Y204”-to \ u_top_counter
set_instance_assignment -名称 RESERVE_ROUTE_REGION OFF -to u_top_counter
1.5.4. 第 4 步:定义角色

该参考设计为单个 PR 分区定义了三个独立的角色,为 SUPR 区域定义了一个 SUPR 角色。 按照以下步骤定义这些角色并将其包含在您的项目中。 如果使用 Intel Quartus Prime Text Editor,请禁用 Add file
保存时到当前项目 files.

  1. 创建新的blinking_led_slow.sv、blinking_led_empty.sv和top_counter_fast.sv SystemVerilog file位于您的工作目录中。 确认blinking_led.sv 已存在于工作目录中。
  2.  为 SystemVerilog 输入以下内容 files:
    表 2. SystemVerilog 参考设计角色
    File 姓名 描述 代码
    闪烁_led_慢。 SV LED 闪烁速度变慢 时间刻度 1 ps / 1 ps 'default_nettype 无
    模块blinking_led_slow //时钟
    输入线时钟、输入线复位、输入线 [31:01 计数器、
    // LED 输出线的控制信号 led_two_on,
    输出线 led_two_on localparam COUNTER_TAP = 27;
    reg led_two_on_r; 腿 led_third_on_r; 赋值 led_two_on = led_two_on_r; 分配 led_ Three_on = led_ Three_on_r; always_ff @(kedge 时钟) 开始 led_two_on_r <= 计数器[COUNTER_TAP]; led_two_on_r <= 计数器[COUNTER_TAP]; 终端模块
    闪烁_led_空。 SV LED 保持亮起状态 timescale 1 ps / 1 ps 'default_nettype none module flashing_led_empty( // 时钟输入线时钟,输入线复位,输入线 [31:01 计数器, // LEC 输出线 led_two_on 的控制信号,输出线 led_ Three_on
    持续…
    File 姓名 描述 代码
    // LED 低电平有效分配 led_two_on = l'IDO; 分配 led_two_on = 11b0; 终端模块
    顶部计数器快速.sv 第二次SUPR '时间刻度 1 ps / 1 ps
    角色 Thdefault_nettype 无 模块 top_counter_fast
    // LED 输出线 led_one_on 的控制信号,输出线 [31:0] count,// 时钟输入线时钟
    ); 本地参数计数器点击 = 23; reg [31:0] 计数_d; 分配计数=count_d; 分配 led_one_on = ount_d[COUNTER_TAP]; always_ff @(posege 时钟) 开始 count_d <= count_d + 2; 结尾
    。:模块
  3.  点击 File ➤ 另存为并保存 .sv files 在当前项目目录中。

1.5.5。 第 5 步:创建修订
PR 设计流程使用 Intel Quartus Prime 软件中的项目修订功能。 您的初始设计是基础修订版,您可以在其中定义 FPGA 上的静态区域边界和可重新配置区域。 从基本修订版开始,您可以创建附加修订版。 这些修订包含 PR 区域的不同实施。 但是,所有 PR 实现修订版都使用基本修订版中相同的顶级布局和布线结果。 要编译 PR 设计,您需要为每个角色创建 PR 实施修订版。 此外,您必须为每个修订版分配“部分重新配置 - 基础”或“部分重新配置 - 用户角色实施”修订类型。 下表列出了每个修订的修订名称和修订类型。 impl_blinking_led_supr_new.qsf 修订版是 SUPR 角色实现。
表 3. 修订名称和类型

修订名称 版本类型
闪烁 LED 部分重配置——基础
闪烁 LED 默认值 部分重新配置——角色实现
慢速闪烁 部分重新配置——角色实现
闪烁 LED 空 部分重新配置——角色实现
impl_blinking_led_supr_new 部分重新配置——角色实现

1.5.5.1. 设置基础修订版
请按照以下步骤将blinking_led设置为基础修订版:

  1. 单击项目 ➤ 修订。
  2. 对于修订类型,选择部分重新配置 - 基础。

英特尔 Agilex F 系列 FPGA 开发板 - 修订此步骤将以下内容添加到眨眼_led.qsf:
##blinking_led.qsf set_global_assignment -name 修订型 PR_BASE
1.5.5.2。 创建实施修订
请按照以下步骤创建实施修订:

  1. 在“修订”对话框中,双击 < >。
  2. 在修订名称中,指定blinking_led_default,并为基于修订版本选择blinking_led。
  3. 对于修订类型,选择部分重新配置 – 用户角色实施。
  4. 禁用设置为当前修订版选项。
  5. 重复步骤 2 到 5,设置其他实施修订的修订类型:
修订名称 版本类型 基于Revision
慢速闪烁 部分重新配置——角色实现 闪烁 LED
闪烁 LED 空 部分重新配置——角色实现 闪烁 LED
impl_blinking_led_supr_new 部分重新配置——角色实现 闪烁 LED

图 8. 创建实施修订

英特尔 Agilex F 系列 FPGA 开发板 - 实施修订每个.qsf file 现在包含以下作业:
set_global_assignment -名称 REVISION_TYPE PR_IMPL
设置实例分配-名称ENTITY_REBINDING占位符-到u_top_counter
设置实例分配-名称ENTITY_REBINDING占位符-到u_blinking_led
1.5.6。 第 6 步:编译基础修订版
请按照以下步骤编译基本修订版并导出静态和 SUPR 区域,以便稍后在新 PR 角色的实施修订版中使用:

  1. 如果尚未设置,请将blinking_led 设置为当前修订版。
  2. 在“设计分区”窗口中,单击最右侧列旁边的 (...) 并启用“最终导出后” File 柱子。 您还可以禁用或更改列的顺序。
  3. 要在每次编译后自动导出 PR 实现设计分区的最终快照,请为“最终导出”指定以下内容 File 根分区和 SUPR 分区的选项。 .qdb file默认导出到项目目录。
    • 根分区—blinking_led_static.qdb
    • supr_partition—blinking_led_supr_partition_final.qdb
    图 9. 设计分区窗口中的自动导出intel Agilex F 系列 FPGA 开发板 - 分区窗口或者,以下 .qsf 分配会在每次编译后自动导出分区:
    set_instance_assignment -name EXPORT_PARTITION_SNAPSHOT_FINAL \眨眼_led_static.qdb -to | -实体顶部
    set_instance_assignment -name EXPORT_PARTITION_SNAPSHOT_FINAL \眨眼_led_supr_partition_final.qdb -to u_top_counter \ -实体顶部
  4. 要编译blinking_led 基础修订版,请单击“处理”➤“开始”
    汇编。 或者,您可以使用以下命令来编译此修订版:
    quartus_sh –flowcompileblinking_led -cblinking_led 编译成功后出现如下 files出现在项目目录中:
    • 闪烁_led.sof
    •眨眼_led.pr_partition.rbf
    •眨眼_led.supr_partition.rbf
    • 闪烁_led_静态.qdb
    •眨眼_led_supr_partition_final.qdb

1.5.7. 第 7 步:设置 PR 实施修订
您必须先准备 PR 实现修订版,然后才能生成用于器件编程的 PR 比特流。 此设置包括添加静态区域 .qdb file 作为来源 file 对于每个实施修订。 此外,您必须指定
PR区域的对应实体。 请按照以下步骤设置 PR 实施修订:

  1.  要设置当前修订版,请单击“项目”➤“修订版”,选择“blinking_led_default”作为修订版名称,然后单击“设置当前”。 或者,您可以在 Intel Quartus Prime 主工具栏上选择当前版本。
  2. 要验证此实施修订版的正确来源,请单击“项目”➤“添加/删除” File项目中的 s。 确认blinking_led.sv file 出现在 file 列表。英特尔 Agilex F 系列 FPGA 开发板 - 分区窗口 1
  3. 验证来源正确 file 对于实施修订,单击项目 ➤ 添加/删除 file在Project中添加以下源 file实施修订。 如果存在,从项目列表中删除blinking_led.sv files.
    I实施修订名称 来源 File
    闪烁 LED 空 闪烁_led_empty.sv
    慢速闪烁 闪烁_led_slow.sv
  4. 将blinking_led_default 设置为当前修订版。
  5. 指定 .qdb file 作为 root_partition 的源,单击“Assignments”➤“Design Partitions Window”。 双击分区数据库 File 单元格并指定blinking_led_static.qdb file.
  6. 同样,指定blinking_led_supr_partition_final.qdb作为分区数据库 File 对于 super_partition。

    图 10.intel Agilex F 系列 FPGA 开发板 - 指定或者,使用以下 .qsf 分配来指定 .qdb:
    set_instance_assignment -名称 QDB_FILE_PARTITION \眨眼_led_static.qdb -to |
    set_instance_assignment -名称 QDB_FILE_PARTITION\blinking_led_supr_partition_final.qdb - 至 u_top_counter

  7. 在“设计分区”窗口中,单击最右侧列旁边的 (...) 并启用“实体重新绑定”列。
  8.  在“实体重新绑定”单元格中,指定您要在当前实现修订中更改的 PR 分区的新实体名称。 对于blinking_led_default 实现修订版,实体名称为blinking_led。 在这种情况下,您将使用新实体blinking_led 覆盖基础修订版编译中的u_blinking_led 实例。 其他实施修订请参见下表:

    修订 实体重新绑定值
    慢速闪烁 慢速闪烁
    闪烁 LED 空 闪烁 LED 空

    图 11. 实体重新绑定intel Agilex F 系列 FPGA 开发板 - 重新绑定或者,您可以在每个修订版的 .qsf 中使用以下行来设置分配:
    闪烁的 LED 默认.qsf
    set_instance_assignment -name ENTITY_REBINDING flashing_led \ -to u_blinking_led
    闪烁_led_慢.qsf
    set_instance_assignment -name ENTITY_REBINDING flashing_led_slow \ -to u_blinking_led
    闪烁的 LED 为空.qsf
    set_instance_assignment -name ENTITY_REBINDING flashing_led_empty \ -to u_blinking_led

  9. 从supr_partition 的实体重新绑定单元格中删除place_holder 文本。
  10. 要编译设计,请单击“处理”➤“开始编译”。 或者,使用以下命令编译该项目: quartus_sh –flowcompileblinking_led –cblinking_led_default
  11. 重复步骤 4 到 11,准备并编译眨眼_led_slow 和眨眼_led_empty 实现修订版。

1.5.8。 步骤 8:更改 SUPR 逻辑
要更改 SUPR 分区内的逻辑功能,您必须更改 SUPR 分区源。 完成以下步骤,将 SUPR 分区中的 u_top_counter 实例替换为 top_counter_fast 实体。

  1. 要将 SUPR 实现修订版设置为当前修订版,请单击 Project > Revisions 并将 impl_blinking_led_supr_new 设置为当前修订版,或者选择
    Intel Quartus Prime 主工具栏上的修订版。
  2. 验证来源正确 file 对于实施修订,单击项目 ➤
    添加/删除 file项目中的 s,并验证 top_counter_fast.sv 是 impl_blinking_led_supr_new 实现修订版的源。 如果存在,请从项目列表中删除 top_counter.sv files.intel Agilex F 系列 FPGA 开发板 - 作业
  3. 指定 .qdb file 与根分区关联,单击“分配”➤“设计分区窗口”,然后双击“分区数据库” File 指定blinking_led_static.qdb 的单元格。
    或者,使用以下命令来分配此 file: set_instance_assignment -名称 QDB_FILE_PARTITION \眨眼_led_static.qdb -to |
  4. 在 pr_partition 的实体重新绑定单元中,指定适当的实体名称。 对于这个前任amp文件中,指定blinking_led_empty 实体。 在这种情况下,您将使用新实体 linking_led_empty 覆盖基础修订版编译中的 u_blinking_led 实例。 .qsf 中现在存在以下行:
    ##impl_blinking_led_supr_new.qsf set_instance_assignment -name ENTITY_REBINDING眨眼_led_empty \ -to u_blinking_led
  5. 在supr_partition 的实体重新绑定单元中,指定top_counter_fast 实体。 top_counter_fast 是完成 SUPR 时替换 u_top_counter 的静态实体的名称。英特尔 Agilex F 系列 FPGA 开发板 - SUPR##impl_blinking_led_supr_new.qsf set_instance_assignment-name ENTITY_REBINDING top_counter_fast \-to u_top_counter
  6. 要编译设计,请单击“处理”➤“开始编译”。 或者,使用以下命令编译此项目修订版: quartus_sh –flowcompileblinking_led –c \ impl_blinking_led_supr_new

1.5.9。 第 9 步:对电路板进行编程
请按照以下步骤连接英特尔 Agilex F 系列 FPGA 开发板并对其进行编程。

  1. 将电源连接到 Intel Agilex F 系列 FPGA 开发板。
  2. 在 PC USB 端口和开发板上的 USB 编程硬件之间连接 USB 电缆。
  3. 打开 Intel Quartus Prime 软件,然后单击 Tools ➤ Programmer。 请参阅对开发板进行编程。
  4. 在编程器中,单击硬件设置,然后选择 USB-Blaster。
  5. 单击“自动检测”,然后选择 AGFB014R24B 设备。
  6.  单击“确定”。 Intel Quartus Prime 软件使用板上的三个 FPGA 设备检测并更新编程器。
  7.  选择AGFB014R24B设备,点击Change File,并加载blinking_led_default.sof file.
  8. 为blinking_led_default.sof启用程序/配置 file.
  9. 点击开始,等待进度条达到100%。
  10.  观察板上的 LED 闪烁。
  11. 要仅对 PR 区域进行编程,请右键单击眨眼_led_default.sof file 在 Programmer 中点击 Add PR Programming File。 选择blinking_led_slow.pr_partition.rbf file.
  12. 禁用blinking_led_default.sof 的程序/配置 file.
  13.  为blinking_led_slow.pr_partition.rbf启用程序/配置 file,然后单击“开始”。 在板上,观察 LED[0] 和 LED[1] 持续闪烁。 当进度条达到 100% 时,LED[2] 和 LED[3] 闪烁速度变慢。
  14. 要重新编程 PR 区域,请右键单击 .rbf file 在 Programmer 中,然后单击 Change PR Programing File.
  15.  选择.rbf file让其他两个角色观察板上的行为。 加载blinking_led_default.pr_partition.rbf file 使LED以原始频率闪烁,并加载blinking_led_empty.pr_partition.rbf file 导致 LED 保持亮起状态。 17. 要更改 SUPR 逻辑,请重复上述步骤 7 以选择 impl_blinking_led_supr_new.sof。 改变这个之后 file, led [0:1] 现在闪烁的速度比以前更快。 另一个 PR .rbf files 还与新的 .sof 兼容。
    笔记: 汇编器生成一个 .rbf file 对于 SUPR 区域。 但是,您不应该使用这个 file 在运行时重新编程 FPGA,因为 SUPR 分区不会实例化整个系统中的 freeze 桥、PR 区域控制器和其他逻辑。 当您更改 SUPR 分区逻辑时,必须重新编程完整的 .sof file 来自 SUPR 实施修订汇编。

图 12. 对开发板进行编程
intel Agilex F 系列 FPGA 开发板 - 开发板1.5.9.1。 PR 编程错误故障排除
确保正确设置 Intel Quartus Prime Programmer 和连接的硬件有助于避免 PR 编程期间出现任何错误。
如果您遇到任何 PR 编程错误,请参阅《Intel Quartus Prime Pro Edition 用户指南:部分重配置》中的“排除 PR 编程错误”,了解分步排除故障的提示。
相关信息

PR 编程错误故障排除

1.5.10. 修改 SUPR 分区
您可以修改现有的 SUPR 分区。 修改SUPR分区后,必须编译它,生成.sof file,并对电路板进行编程,而无需编译其他角色。 对于前amp文件中,按照以下步骤更改 top_counter_fast.sv 模块以加快计数速度:

  1. 将 impl_blinking_led_supr_new 设置为当前版本。
  2.  在top_counter_fast.sv中 file,将 count_d + 2 语句替换为 count_d + 4。
  3.  运行以下命令重新合成 SUPR 块并生成新的 .sof file: quartus_sh –flow编译blinking_led \ -c impl_blinking_led_supr_new
    生成的 .sof 现在包含新的 SUPR 区域,并使用眨眼_led 作为默认(开机)角色。

1.6. AN 987 的文档修订历史:静态更新部分重新配置教程修订历史

文档版本 英特尔 Quartus Prime 版本 更改
2022.10.24 22. 该文档的初始发布。

英特尔® Quartus®Prime 设计套件更新:22.3

常见问题解答:

发送反馈

Q 什么是静态更新部分重配置

第 3 页的静态更新部分重新配置

问本教程需要什么?

第 3 页的教程要求

问:我在哪里可以获得参考设计?

下载参考设计 File第 5 页

问:如何创建 SUPR 设计?

第 6 页的参考设计演练

问什么是公关角色?

定义角色(第 10 页)

问:如何更改 SUPR 逻辑? A 更改 SUPR 逻辑(第 16 页)

A 更改 SUPR 逻辑(第 16 页)

问:如何对开发板进行编程?

A 对董事会进行编程(第 18 页)

问 PR 的已知问题和限制有哪些?

英特尔 FPGA 支持论坛:PR

intel Agilex F 系列 FPGA 开发板 - 图标 在线版本
英特尔 Agilex F 系列 FPGA 开发板 - 图标 154 发送反馈

编号:749443
AN-987
版本:2022.10.24

文件/资源

英特尔 Agilex F 系列 FPGA 开发板 [pdf] 用户指南
Agilex F 系列、Agilex F 系列 FPGA 开发板、FPGA 开发板、开发板、开发板

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *