intel quartus prime pro edition用户指南: 部分重配置...intel® quartus ® prime pro edition...

119
Intel ® Quartus ® Prime Pro Edition 户指南 部分重配置 针对 Intel ® Quartus ® Prime 设计套件的更新:20.1 本翻译版本仅供参考,如果本翻译版本与其英文版本存在差异,则以英文版本为准。某些翻译版本尚未更新对应到最 新的英文版本,请参考 英文版本以获取最新信息。 订阅 反馈 UG-20136 | 2020.05.11 官网最新文档: PDF | HTML

Upload: others

Post on 15-Feb-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

  • Intel® Quartus® Prime Pro Edition用户指南

    部分重配置

    针对 Intel® Quartus® Prime设计套件的更新:20.1

    本翻译版本仅供参考,如果本翻译版本与其英文版本存在差异,则以英文版本为准。某些翻译版本尚未更新对应到最新的英文版本,请参考英文版本以获取最新信息。

    订阅

    反馈

    UG-20136 | 2020.05.11

    官网最新文档:PDF | HTML

    https://www.intel.com/content/www/us/en/programmable/documentation/tnc1513987819990.htmlhttps://www.intel.com/content/www/us/en/programmable/bin/rssdoc?name=tnc1513987819990mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82https://www.intel.cn/content/dam/altera-www/global/zh_CN/pdfs/literature/ug/ug-qpp-pr-ch.pdfhttps://www.intel.cn/content/www/cn/zh/programmable/documentation/tnc1513987819990.html

  • 内容

    1. 创建一个部分重配置设计.........................................................................................................41.1. 部分重配置术语....................................................................................................... 51.2. 部分重配置过程序列..................................................................................................61.3. 内部主机部分重配置..................................................................................................71.4. 外部主机部分重配置..................................................................................................91.5. 部分重配置设计考量..................................................................................................9

    1.5.1. 部分重配置设计指南.................................................................................... 101.5.2. PR文件管理..............................................................................................111.5.3. 评估 PR区域初始条件.................................................................................. 151.5.4. 为 PR区域创建封装逻辑(wrapper logic).......................................................... 161.5.5. 为 PR区域创建冻结逻辑(freeze logic)............................................................. 171.5.6. 复位 PR区域寄存器.....................................................................................181.5.7. 在 PR区域中提升全局信号.............................................................................181.5.8. 规划时钟和其他全局布线...............................................................................191.5.9. 对存有初始化内容的片上存储器实现时钟使能...................................................... 20

    1.6. 部分重配置设计流程................................................................................................ 221.6.1. 步骤 1:识别部分重配置资源..........................................................................231.6.2. 步骤 2:创建设计分区..................................................................................251.6.3. 步骤 3:规划设计....................................................................................... 261.6.4. 步骤 4:添加 Partial Reconfiguration Controller Intel FPGA IP .......................... 291.6.5. 步骤 5:定义角色....................................................................................... 311.6.6. 步骤 6:为角色创建修订版............................................................................ 311.6.7. 步骤 7:编译基本修订版和导出静态区域............................................................331.6.8. 步骤 8:设置 PR实现修订版.......................................................................... 351.6.9. 步骤 9:对 FPGA器件进行编程...................................................................... 36

    1.7. 层次化部分重配置(Hierarchical Partial Reconfiguration)................................................ 411.8. 部分重配置设计时序分析...........................................................................................42

    1.8.1. 在汇总修订版上运行时序分析......................................................................... 421.9. 部分重配置设计仿真................................................................................................ 43

    1.9.1. 部分重配置仿真流程.................................................................................... 431.10. 部分重配置设计调试.............................................................................................. 48

    1.10.1. 使用 Signal Tap Logic Analyzer对 PR设计进行调试......................................... 481.11. PR比特流安全性验证( Intel Stratix 10和 Intel Agilex 设计)..........................................49

    1.11.1. PR比特流安全性用例( Intel Stratix 10和 Intel Agilex 设计).............................. 491.11.2. 使用 PR比特流安全性验证( Intel Stratix 10和 Intel Agilex 设计)........................50

    1.12. PR比特流压缩和加密( Intel Arria 10和 Intel Cyclone 10 GX设计).................................511.12.1. 生成加密的 PR比特流( Intel Arria 10或者 Intel Cyclone 10 GX设计)..................511.12.2. 比特流加密和压缩的时钟数据比( Intel Arria 10或者 Intel Cyclone 10 GX设计)...... 531.12.3. 数据压缩比较...........................................................................................53

    1.13. 避免 PR编程错误..................................................................................................541.14. 对 PR设计导出与版本兼容的编译数据库...................................................................... 56

    1.14.1. PR设计的版本兼容的数据库流程................................................................... 561.14.2. 对 PR设计生成一个版本兼容的编译数据库........................................................57

    1.15. 创建一个部分重配置设计修订历史..............................................................................58

    内容

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    2

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 2. 部分重配置解决方案 IP用户指南............................................................................................ 602.1. 内部和外部 PR主机配置........................................................................................... 602.2. Partial Reconfiguration Controller Intel FPGA IP ......................................................63

    2.2.1. 存储器映射(Memory Map)........................................................................... 632.2.2. 参数....................................................................................................... 642.2.3. 端口....................................................................................................... 652.2.4. 时序规范.................................................................................................. 67

    2.3. Partial Reconfiguration Controller Intel Arria 10 /Cyclone 10 FPGA IP......................... 672.3.1. 从接口(Slave Interface)............................................................................. 682.3.2. 重配置序列............................................................................................... 692.3.3. 中断接口(Interrupt Interface)......................................................................692.3.4. 参数....................................................................................................... 702.3.5. 端口....................................................................................................... 722.3.6. 时序规范.................................................................................................. 752.3.7. PR控制模块和 CRC模块 Verilog HDL手动例化..................................................762.3.8. PR控制模块和 CRC模块 VHDL手动例化.......................................................... 772.3.9. PR控制模块信号........................................................................................ 792.3.10. 为 Intel Arria 10或者 Intel Cyclone 10 GX设计配置一个外部主机...................... 82

    2.4. Partial Reconfiguration External Configuration Controller Intel FPGA IP ...................... 842.4.1. 参数....................................................................................................... 852.4.2. 端口....................................................................................................... 852.4.3. 为 Intel Stratix 10或者 Intel Agilex 设计配置一个外部主机................................. 86

    2.5. Partial Reconfiguration Region Controller Intel FPGA IP ............................................872.5.1. 寄存器.....................................................................................................882.5.2. 参数....................................................................................................... 912.5.3. 端口....................................................................................................... 92

    2.6. Avalon-MM Partial Reconfiguration Freeze Bridge Intel FPGA IP .................................942.6.1. 参数....................................................................................................... 962.6.2. 接口端口.................................................................................................. 97

    2.7. Avalon-ST Partial Reconfiguration Freeze Bridge Intel FPGA IP ................................1022.7.1. 参数......................................................................................................1042.7.2. 端口......................................................................................................105

    2.8. 生成和仿真 Intel FPGA IP ..................................................................................... 1082.8.1. 生成 IP Core ( Intel Quartus Prime Pro Edition)........................................... 1082.8.2. 运行 Freeze Bridge Update脚本................................................................. 1102.8.3. IP核生成输出( Intel Quartus Prime Pro Edition)........................................ 1102.8.4. Intel Arria 10和 Intel Cyclone 10 GX PR控制模块仿真模型.............................1122.8.5. 生成 PR角色仿真模型................................................................................ 114

    2.9. Intel Quartus Prime Pro Edition用户指南:部分重配置存档......................................... 1162.10. 部分重配置解决方案 IP用户指南修订历史.................................................................. 116

    A. Intel Quartus Prime Pro Edition用户指南..................................................................... 118

    内容

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    3

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1. 创建一个部分重配置设计

    部分重配置(PR)使您能够动态地对一部分 FPGA进行重配置,而其余的 FPGA设计则会继续运行。在设计的一个特定区域中可以定义多种不同的重配置,对区域以外的操作不会造成影响。这种方法对多种功能的系统有效,包括在相同的 FPGA器件资源中分时(time-share)的功能。PR能够实现更复杂的 FPGA系统。

    Intel® Quartus® Prime Pro Edition软件支持用于 Intel Stratix® 10, Intel Agilex™ (1),Intel Arria® 10, Intel Cyclone® 10 GX器件系列的 PR特性。

    图 1. 部分重配置设计

    StaticRegion

    chip_top

    PR Region A

    PR Region B

    PR Persona A1

    PR Persona A2

    PR Persona A3

    PR Persona B1

    PR Persona B2

    PR在扁平化设计(flat design)的基础上进行了如下改进:

    • 支持运行时设计重配置

    • 通过时分复用(time-multiplexing)提高设计的可扩展性

    • 通过有效利用电路板空间降低成本和功耗

    • 支持设计中的动态时分复用功能

    • 通过更小的比特流来改进初始编程时间

    • 通过线路升级来降低系统停机时间

    • 通过支持远程硬件更新来实现简单的系统更新

    • 部分重配置的简化编译流程

    (1) Intel Quartus Prime Pro Edition software supports compilation of PR designs for Intel Agilexdevices, but does not yet support Intel Agilex PR bitstream generation.

    UG-20136 | 2020.05.11

    反馈

    Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, eASIC, Intel, the Intel logo, MAX, Nios,Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/orother countries. Intel warrants performance of its FPGA and semiconductor products to current specifications inaccordance with Intel's standard warranty, but reserves the right to make changes to any products and servicesat any time without notice. Intel assumes no responsibility or liability arising out of the application or use of anyinformation, product, or service described herein except as expressly agreed to in writing by Intel. Intelcustomers are advised to obtain the latest version of device specifications before relying on any publishedinformation and before placing orders for products or services.*Other names and brands may be claimed as the property of others.

    ISO9001:2015Registered

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • 层次化部分重配置(Hierarchical Partial Reconfiguration)

    Intel Quartus Prime Pro Edition软件还支持层次化部分重配置(HPR),在设计中包含多个父级和子级设计分区或多个层级的分区。在 HPR设计中,静态区域实例化父 PR区域,而父 PR区域例化子 PR区域。对于子分区和父分区,可以进行相同的 PR区域重编程。有关详细的 HPR说明,请参考 Partial Reconfiguration Tutorials。

    静态更新部分重配置

    静态更新部分重配置(SUPR)使您能够定义和修改专门的静态区域,而无需重新编译所有角色(persona)。对于为降低风险而需要更改但从不需要运行时重配置的设计中的一部分,此技术很有用。在没有 SUPR分区的 PR中,对于静态区域的任何更改,必须重新编译所有角色。有关 SUPR的详细说明,请参考“部分重配置教程”。

    部分重配置设计仿真

    Intel Quartus Prime Pro Edition软件通过仿真多路复用器的使用来支持 PR角色转换的仿真。您可以使用仿真多路复用器来更改仿真过程中驱动 PR区域内部逻辑的角色。此仿真使您能够在可重配置的分区中观察到结果变化和中间效果。请参考部分重配置设计仿真 (第 43页)获得详细信息。

    相关链接

    • 部分重配置教程

    • Intel Agilex 配置用户指南

    • Intel Stratix 10配置用户指南

    • Intel Arria 10配置用户指南

    • Intel Cyclone 10 GX内核逻辑架构和通用 I/O手册

    1.1. 部分重配置术语

    本文参考以下术语对部分重配置进行解释:

    表 1. 部分重配置术语

    术语 描述

    平面图(Floorplan) 器件上物理资源的布局。创建一个设计平面图或平面图是将逻辑设计层次结构映射到器件中物理区域的过程。

    层次化部分重配置(Hierarchical PartialReconfiguration)

    同一设计中包括多个父设计和子设计分区或者嵌套分区的部分重配置。

    PR控制模块(PR control block) Intel Arria 10和 Intel Cyclone 10 GX FPGA中的专用模块。PR控制模块处理 PR请求,握手协议,并验证循环冗余校验(CRC)。

    PR主机(PR host) 协调 PR的系统。PR host与 PR control block ( Intel Arria 10和 Intel Cyclone 10GX设计)或者 Secure Device Manager ( Intel Stratix 10和 Intel Agilex 设计)进行通信。在 FPGA (内部的 PR host)内或者芯片或者微处理器中实现 PR host。

    PR分区(PR partition) 指定为 Reconfigurable的设计分区。一个 PR工程可以包含一个或者多个 PR分区。

    PR Solutions Intel FPGA IP 简化 PR握手和冻结逻辑的实现的 Intel FPGA IP的套件。

    PR区域(PR region) FPGA器件的物理部分,需要进行部分重配置。在基本配置设计中完全定义 PR区域。一个器件可以包含多个 PR区域。 PR区域可以是 core-only,例如 LAB,RAM或 DSP。绿色比特流配置 PR区域。

    继续...

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    5

    https://github.com/alterasoftware/design-flows/tree/master/partial_reconfighttps://www.intel.cn/content/www/cn/zh/programmable/documentation/oex1546548090650.html#dtn1534779107124https://www.intel.cn/content/www/cn/zh/programmable/documentation/sss1439972793861.html#sss1439972952426https://www.intel.cn/content/www/cn/zh/programmable/documentation/sam1403483633377.html#sam1403482889098https://www.intel.cn/content/www/cn/zh/programmable/documentation/vua1487061384661.html#wyb1490601929047mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 术语 描述

    PR角色(PR persona) 在一个 PR区域中的一个特定 PR分区实现。一个 PR区域可以包含多个角色。静态区域仅包含一个角色。

    修订版(Revision) 工程的一个版本的设置和约束的集合。 Intel Quartus Prime Settings File (.qsf)保留工程的每个修订版。 Intel Quartus Prime工程可以包含几个修订版。修订版使您能够在单个工程中组织设计的多个版本。

    Secure Device Manager (SDM) Intel Agilex 和 Intel Stratix 10器件中一个基于三重冗余处理器的模块,在通过配置网络将数据发送到可配置节点之前,对模块接收的配置数据执行认证,解密和解压缩。

    快照(Snapshot) 一个 Compiler阶段的输出。您可以导出综合或最终编译结果快照。

    静态区域(Static region) 工程中未被 PR区域占用的所有区域。将静态区域与设计的顶级分区相关联。静态区域包含器件的核心位置和外围位置。蓝色比特流配置静态区域。

    静态更新部分重配置(Static update partialreconfiguration)

    支持进行更改,而无需重新编译所有角色的一个静态区域。对于为降低风险而需要更改但从不需要运行时重配置的设计中的一部分,此技术很有用。

    相关链接

    部分重配置解决方案 IP用户指南 (第 60页)

    1.2. 部分重配置过程序列

    部分重配置设计必须启动 PR操作,并将配置文件传送到 PR控制模块( Intel Arria 10和 IntelCyclone 10 GX设计)或者 SDM ( Intel Agilex 和 Intel Stratix 10设计)。在进行部分重配置之前,必须确保 FPGA器件处于用户模式且处于功能状态。以下步骤描述了部分重新配置序列:

    1. 将 stop_req信号从顺序 PR控制逻辑发送到 PR区域以准备 PR操作。接收到此信号后,PR区域将完成所有待定的传输并停止接受新传输。

    2. 等待 stop_ack信号指示 PR区域已准备好进行部分重配置。

    3. 使用 PR控制逻辑来冻结 PR区域的所有必要输出。此外,将所有初始化的 RAM的时钟使能驱动为禁止状态。

    4. 将 PR比特流发送到 PR控制模块( Intel Arria 10和 Intel Cyclone 10 GX设计)或者 SDM( Intel Stratix 10和 Intel Agilex 设计)以启动 PR区域的 PR进程。当使用任何的 PartialReconfiguration Controller Intel FPGA IP时,IP core上的 Avalon® -MM或者 Avalon -ST接口会提供此功能。当对 Intel Arria 10设计直接例化 PR控制模块时,请参考 PR控制模块信号时序图 (第 79页)。

    5. 成功完成 PR操作后,复位 PR区域。

    6. 通过置位 start_req信号和置低 freeze信号来发出 PR操作开始的信号。

    7. 等待 start_ack信号指示 PR区域已准备好进行操作。

    8. 通过最新重配置的 PR区域恢复 FPGA操作。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    6

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 2. PR进程顺序时序图

    stop_req

    stop_ack

    freeze

    region_reset

    start_req

    start_ack

    Partial Reconfiguration

    Unbounded time between stop_req and stop_ack

    Unbounded time between start_req and start_ack

    stop_req is deasserted when stop_ack is asserted

    start_req is asserted when freeze is deasserted

    start_req deasserted when start_ack asserted

    region_reset is fullyuser controlled

    1.3. 内部主机部分重配置

    在内部主机控制中,一个内部控制器,一个 Nios® II处理器或者一个接口(例如 PCI Express*( PCIe* )或者 Ethernet)直接与 Intel Arria 10或者 Intel Cyclone 10 GX PR控制模块或者Intel Stratix 10和 Intel Agilex 器件中的 SDM进行通信。

    要将 PR比特流传输到 PR控制模块或者 SDM中,则要使用 Partial Reconfiguration ControllerIP core上的 Avalon -MM接口。当器件进入用户模式中时,使用 PR内部主机通过 FPGA内核架构启动部分重配置。

    注意: 如果对 PR主机创建您自己的控制逻辑,那么此逻辑必须满足 PR接口要求。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    7

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 3. 内部主机 PR (Internal Host PR)

    PRRegion

    PR ControllerIP Core

    PR Bitstream File (.rbf) In External Memory

    top

    FPGA

    当通过一个内部主机进行部分重配置时,使用专用 PR管脚(PR_REQUEST、PR_READY、PR_DONE和 PR_ERROR)作为普通 I/O。实现静态区域逻辑来检索外部存储器中的 PR编程比特流,以供内部主机进行处理。

    图 4. 使用一个内部 PR主机的 Intel Arria 10 FPGA系统(2)

    User PRControl Logic

    PR Controller IP Core

    nSTATUSCONF_DONEnCONFIGnCE

    MSEL[4:0]

    Partial Reconfiguration Data Received Through PCI Express* Link

    Intel Arria 10® Device

    通过 PCI Express 链路发送编程比特流以进行部分重配置。然后,使用 PR控制逻辑处理比特流,并将比特流发送到 PR IP core以进行编程。nCONFIG将器件从用户模式移至器件配置模式。

    (2) nCONFIG可以锁定器件并强制重启(power-cycle)。由于使用不当,PR编程可能会损坏静态逻辑,从而导致配置模块的内核时钟输入与无响应配置的连接断开。在翻转 nCONFIG之前必须复位 PR IP。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    8

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1.4. 外部主机部分重配置

    在外部主机控制中,外部 FPGA或者 CPU通过在目标器件上使用外部专用 PR管脚来控制 PR配置。当使用外部主机时,必须实现控制逻辑,以传输比特流到硬核 FPGA编程管脚。

    图 5. 使用一个外部主机的 PR系统( Intel Arria 10示例)

    PR Control Block (CB)

    PR Region

    External Host

    PR Bitstream File(.rbf) In External Memory

    top

    相关链接

    • 为 Intel Arria 10或者 Intel Cyclone 10 GX设计配置一个外部主机 (第 82页)提供了外部配置 PR管脚的描述

    • Partial Reconfiguration External Configuration Controller Intel FPGA IP (第 84页)

    • 为 Intel Stratix 10或者 Intel Agilex 设计配置一个外部主机 (第 86页)提供了外部配置 PR管脚的描述

    1.5. 部分重配置设计考量

    部分重配置是 Intel Quartus Prime Pro Edition软件中的一个高级设计流程。创建部分重配置设计需要了解如何将 PR设计准则应用到您的设计中。在设计部分重配置时,必须考虑整个系统级行为的初始条件,以保持静态区域操作的完整性和正确性。

    例如,在 PR编程期间,必须确保系统的其他部分不要读写 PR区域。您还必须将 PR区域的写使能输出冻结到静态区域,以避免干扰静态区域的操作。如果设计中的所有角色都没有相同的顶层接口,那么必须创建 wrapper逻辑以确保所有角色看上去都类似于静态区域。对 PR区域进行部分重配置后,必须通过应用一个复位序列使 PR区域中的寄存器进入已知状态。对于全局信号和片上存储器,有专门的指南。以下部分提供设计考量和准则,以帮助您创建 PR设计的设计文件。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    9

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • FPGA器件和软件考量

    • 只有-1,-2和-3速度等级的 Intel Arria 10和 Intel Cyclone 10 GX器件支持部分重配置。所有的 Intel Agilex 和 Intel Stratix 10器件都支持 PR。

    • 根据数据表,使用 0.9V或者 0.95V的标称 VCC,包括 VID使能的器件。

    • 如要最小化 Intel Arria 10和 Intel Cyclone 10 GX编程文件的大小,请确保 PR区域短而宽。对于 Intel Agilex 和 Intel Stratix 10设计,请使用扇区对齐(sector-aligned)的 PR区域。

    • Intel Quartus Prime Standard Edition软件不支持对 Intel Arria 10器件进行部分重配置,也不提供对 Intel Agilex 和 Intel Stratix 10器件的支持。

    • Intel Quartus Prime Pro Edition软件的当前版本仅支持每个修订版一个 Signal Tap File(.stp)。

    设计分区考量

    • 可重配置的分区只能包含内核资源,例如:LAB、RAM和 DSP。所有外围资源(例如:收发器、外部存储器接口、HPS和时钟)都必须位于设计的静态部分中。

    • 要在静态和单独的 PR区域之间对器件进行物理分区,通过相关的布线区域,将每个 PR区域规划为专有的,仅核心的布局区域。

    • 一个重配置分区必须包含在所有 PR角色中使用的所有端口的超集。

    时钟,复位和冻结信号考量

    • 对于任何的 Intel Arria 10或者 Intel Cyclone 10 GX PR区域,时钟和或者其他全局信号的最大数量为 33。 对于任何的 Intel Agilex 或者 Intel Stratix 10 PR区域,时钟和或者其他全局信号的最大数量为 32。在 Intel Quartus Prime Pro Edition软件的当前版本中,没有两个 PR区域可以共享一个行时钟。

    • PR区域不需要任何输入冻结逻辑。然而,必须将每个 PR区域的所有输出冻结为一个已知的恒定值,以避免在部分重配置期间出现未知数据。

    • 将复位长度增加 1个周期,以解决 Fitter中的寄存器重复问题。

    • 确保在基本修订版本编译中驱动进入 PR区域的所有低偏斜全局信号(时钟和复位)都有目的地。

    1.5.1. 部分重配置设计指南

    下表列出了 PR设计流程中各个步骤的重要设计指南:

    表 2. 部分重配置设计指南

    PR设计步骤 指南 原因

    对部分重配置进行设计 不要在 PR区域内的寄存器中假定初始状态。PR完成后,请确保将所有控制路径寄存器复位成一个已知状态,但要忽略数据路径寄存器。

    PR区域中的寄存器在重配置之后包含未定义的值。忽略数据路径寄存器可减少复位信号上的拥塞。

    对于 Intel Arria 10或者 Intel Cyclone 10GX部分重配置,您不能将同步复位定义成一个全局信号。

    PR区域不支持寄存器的同步复位作为一个全局信号,因为 Intel Arria 10和 Intel Cyclone 10 GXLAB在全局缓存上不支持同步清零(sclr)信号。LAB支持从本地输入或者全局网络行时钟驱动的异步清零(aclr)信号。因此,只有 aclr可以是全局信号,驱动 PR区域中的寄存器。

    继续...

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    10

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • PR设计步骤 指南 原因

    PRESERVE_FANOUT_FREE_NODEassignment不能保留 fanout-free寄存器,此寄存器在对其进行定义的 Verilog HDL或 VHDL模块内没有扇出。要保留这些 fanout-free寄存器,请在源文件中实现 noprune pragma:

    (*noprune*)reg r;

    如果此模块有多个实例,只有一些实例需要保留fanout-free寄存器,那么在 HDL中的寄存器上设置一个虚拟编译指示(dummy pragma),并设置 PRESERVE_FANOUT_FREE_NODEassignment。dummy pragma使寄存器综合能够实现 assignment。例如,在 Verilog HDL中设置寄存器 r的 dummy pragma:

    (*dummy*)reg r;

    然后设置此实例 assignment:

    set_instance_assignment -name \ PRESERVE_FANOUT_FREE_NODE ON \ -to r;

    如果在定义一个寄存器的 Verilog HDL或 VHDL模块中未使用此寄存器,那么PRESERVE_FANOUT_FREE_NODE assignment不适用。

    对设计进行分区 寄存 PR区域的所有输入和输出。 改进时序收敛和时间预算。

    减少设计中与 PR区域和静态区域对接的信号数量。

    减少导线 LUT数量。

    为 PR区域创建一个 wrapper。 wrapper创建到静态区域的通用覆盖区(commonfootprint)。

    当 PR区域保持复位状态并且 PR区域的冻结比特置位时,将所有 PR区域输出端口驱动为无效状态。

    防止静态区域逻辑在部分重配置操作期间接收随机数据。

    PR边界 I/O接口必须是所有 PR Persona I/O接口的超集。

    确保每个 PR分区实现相同的端口。

    准备部分重配置 完成所有待处理的传输。 确保静态区域没有处于等待状态。

    在部分重配置期间维护部分工作的系统

    将所有输出保持为已知恒定值。 确保 PR区域在重配置期间和之后接收到的未定义值不会影响 PR控制逻辑。

    部分重配置后进行初始化 复位后初始化。 从存储器或者其他器件资源中检索状态。

    使用 Signal Tap Logic Analyzer对设计进行调试

    • 请不要在默认角色中布线(tap)信号。• 在一个.stp文件中存储来自一个角色的所有布线信号。

    Intel Quartus Prime软件的当前版本仅支持每个修订版一个.stp (Signal Tap文件)。此限制要求您一次选择一个分区以进行布线。

    不要在同一.stp文件中跨区域布线。 确保所有角色之间的接口(边界)一致。

    仅布线预综合信号。在 Node Finder中,过滤Signal Tap: pre-synthesis。

    确保 PR角色的信号布线从综合开始。

    1.5.2. PR文件管理

    通过观察以下 PR工程文件管理方法之一,可以简化 PR角色及其对应的源文件的管理。

    为了说明这些方法,请考虑一个包含两个 PR区域的设计,每个区域都有可能的 apple、orange和banana角色。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    11

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 6. 包含两个 PR区域和三个角色的设计示例

    StaticRegion

    design_top

    PR Region A

    PR Region B

    PR Persona apple

    PR Persona orange

    PR Persona banana

    PR Persona apple

    PR Persona orange

    PR Persona banana

    方法 1 (首选):指定每个角色的唯一实体和文件名

    在 PR文件管理方法 1中,指定工程中每个角色的唯一实体和文件名对。例如:

    • 在 apple.sv文件中定义 apple角色

    • 在 orange.sv文件中定义 orange角色

    • 在 banana.sv文件中定义 banana角色

    注意: 对于成功的编译和 PR操作,所有角色都必须要有完全相同的端口名称和宽度(在每个.sv文件中定义的)。

    在基本 PR revision RTL中,对两个 PR区域指定"apple"为 PR角色:

    图 7. 将 Base PR Persona设置成"apple"

    通过将 u_fruit_0和 u_fruit_1设置为 PR分区和区域,将基本角色设置为 [apple,apple]时,通过使用 Design Partitions Window中的 Entity Rebinding(ENTITY_REBINDING)选项或者直接编辑.qsf很容易对占用 PR区域的角色进行更改,如下例所示:

    对 PR实现(impl)修订版指定 orange角色:

    set_instance_assignment -name ENTITY_REBINDING orange -to u_fruit_0set_instance_assignment -name ENTITY_REBINDING orange -to u_fruit_1

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    12

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 对 PR实现(impl)修订版指定 banana角色:

    set_instance_assignment -name ENTITY_REBINDING banana -to u_fruit_0 set_instance_assignment -name ENTITY_REBINDING banana -to u_fruit_1

    对每个 PR区域指定不同的角色:

    set_instance_assignment -name ENTITY_REBINDING orange -to u_fruit_0 set_instance_assignment -name ENTITY_REBINDING banana -to u_fruit_1

    对于每个实现修订版,必须确保在工程中包含相应的源文件(Project > Add/Remove Files inProject)。

    方法 2:将单个文件参数化为 PR Persona

    在 PR文件管理方法 2中,使用一个封装(wrapper)文件和参数来参数化定义所有角色的单个文件。例如,考虑方法 1描述的相同设计,其中有两个 PR区域,每个 PR区域都有三个可能的角色。

    图 8. 单个文件中的wrapper和参数

    在下列中,u_fruit_0和 u_fruit_1设置为基本编译中的 PR分区和区域。值为 0的 FRUIT_TYPE参数会生成这两个PR角色的 apple实体。

    然后,您可以通过更改参数值来更改角色。例如,对两个 PR区域都指定 orange角色,将FRUIT_TYPE参数设置为 1: (FRUIT_TYPE=1)

    除了对 RTL的这些更改之外,在使用方法 2更新.qsf时,还必须遵循以下这些额外步骤:

    1. 创建 fruit.sv文件的一个副本。使用唯一的名称命名此文件,例如:x_fruit.sv。也要重命名实体以匹配.sv文件。

    2. 将 FRUIT_TYPE的默认参数设置为一个 Verilog macro,在这种情况下为`X_FRUIT_TYPE。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    13

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 9. 另存为 x_fruit.sv的 fruit.sv的副本

    3. 将 x_fruit.sv添加到工程中(Project > Add/Remove Files in Project)。

    4. 在 Specify the following in the PR实现修订版的.qsf文件中指定以下设置:

    a. 添加下面的命令行,将`X_FRUIT_TYPE Verilog macro设置成 1,对"fruit"指定适当的参数,例化正确的 FRUIT_TYPE:

    set_global_assignment -name VERILOG_MACRO "X_FRUIT_TYPE=1"

    b. 指定实体重新绑定 assignment,将新的 x_fruit实体与 u_fruit_0和u_fruit_1实例相关联:

    set_instance_assignment -name ENTITY_REBINDING x_fruit -to u_fruit_0set_instance_assignment -name ENTITY_REBINDING x_fruit -to u_fruit_1

    这些.qsf变更将 orange设置为这两个 PR区域的新角色。

    5. 方法 2的一个缺点是.qsf文件中的设置的 Verilog macro是全局的。因此,工程中的`X_FRUIT_TYPE的每个实例的默认值都为 1。如果您希望两个 PR角色都属于同一类型,那么此结果可能是合适的。然而,如果要在一个 PR实现编译中对一个角色指定“orange”,对另一个角色指定“banana”,那么必须使用唯一名称和 Verilog macro创建 fruit.sv文件的另一个副本:

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    14

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 10. Copy of x_fruit.sv Saved as y_fruit.sv

    6. 在 PR实现修订版的.qsf文件中指定以下设置:

    a. 添加下面的命令行,将`X_FRUIT_TYPE Verilog macro设置成 1,对"fruit"指定适当的参数,例化正确的 FRUIT_TYPE:

    set_global_assignment -name VERILOG_MACRO "X_FRUIT_TYPE=1" set_global_assignment -name VERILOG_MACRO "Y_FRUIT_TYPE=2"

    b. 指定实体重新绑定 assignment,将新的 x_fruit实体与 u_fruit_0的实例相关联,将新的 y_fruit和 u_fruit_1实例相关联:

    set_instance_assignment -name ENTITY_REBINDING x_fruit -to u_fruit_0set_instance_assignment -name ENTITY_REBINDING x_fruit -to u_fruit_1

    这些.qsf变更将 orange指定为第一个 PR区域的角色,将 banana指定为第二个 PR区域的角色。

    1.5.3. 评估 PR区域初始条件

    PR区域中意外的初始条件可能会导致在部分重配置期间出错。您的设计可能包括意想不到的初始条件,尤其是当您移植的设计原本不打算进行部分重配置时。 Intel Quartus Prime Pro Edition软件会报告 PR分区中的所有初始条件,以便进行综合评估。

    在实现分区上运行综合后,您可以查看该分区的 Registers with Explicit Power-Up Settings报告来识别,定位和更正任何意外的初始条件。Messages窗口还会在综合处理期间生成有关任何初始条件的警告或错误消息。在评估了初始条件之后,您可以确定此条件对于设计功能是否正确,或者可以更改设计以消除对与部分重配置不兼容的初始条件的依赖。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    15

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 11. Registers with Explicit Power-Up Settings报告

    1.5.4. 为 PR区域创建封装逻辑(wrapper logic)

    如果设计中的所有角色都不具有相同的顶层接口,那么必须创建封装逻辑以确保所有角色都类似于静态区域。为每个角色定义一个 wrapper,并在 wrapper中例化角色逻辑。如果所有角色都有相同的顶层接口,那么这些角色不需要封装逻辑。在此 wrapper中,您可以创建虚拟端口,以确保PR区域的所有角色都具有与静态区域的相同连接。

    在 PR编译期间,Compiler将 PR区域的接口上的每个非全局端口转换成边界端口线 LUTS。边界端口线 LUT的命名约定为:输入端口~IPORT,输出端口~OPORT。例如,my_region PR域上的 my_input输入端口的 wire LUT的实例名为 my_region|my_input~IPORT。

    1. 使用 Logic Lock region assignment手动规划边界端口,或者使用 Fitter自动布局边界端口。Fitter在基本修订版编译期间布局边界端口。边界 LUT是 Fitter从编译的角色排生的不变位置。这些 LUT代表静态区域与 PR布线和逻辑之间的边界。无论基础角色如何,布局都保持不变,因为从静态逻辑的布线不会随其他角色实现而变化。

    2. 要将所有边界端口限制在一个特定区域中,使用通配符 assignment。例如:

    set_instance_assignment -name PLACE_REGION "65 59 65 85" -to \ u_my_top|design_inst|pr_inst|pr_inputs.data_in*~IPORT

    此 assignment将对应于所指定的 IPORTS的所有 wire LUTS限制在坐标(65 59)与(65 85)之间的布局区域内。

    图 12. PR区域边界上的Wire-LUT

    PR Region Static Region

    您可以有选择地将边界端口规划至 LAB级别,或者单独的 LUT级别。要规划至 LAB级别,需要创建一个 1x1 Logic Lock PLACE_REGION约束(一个 LAB高,一个 LAB宽)。或者,通过创建一个 Logic Lock布局区域来指定一个范围约束。关于 floorplan assignment的更多信息,请参考 Floorplan the Partial Reconfiguration Design。

    相关链接

    步骤 3:规划设计 (第 26页)提供关于规划(floorplan)设计的更多信息。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    16

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1.5.5. 为 PR区域创建冻结逻辑(freeze logic)

    对设计进行部分重配置时,请将每个 PR区域的所有输出冻结为已知的恒定值。这种冻结可防止静态区域中的信号接收器在部分重配置过程中接收到不确定的信号。

    直到部分重配置完成并且 PR区域被复位之后,PR区域才能驱动有效数据。冻结对于从 PR区域驱动的控制信号非常重要。

    冻结技术是可选的,具体取决于设计的特定特征。冻结逻辑必须位于设计的静态区域中。一种常见的冻结技术是在 PR区域的每个输出上例化 2-to-1多路复用器,以在部分重配置期间保持输出恒定。

    注意: 冻结 PR区域的全局和非全局输入不是必需的。

    图 13. 冻结技术#1

    PR Logic

    Known Value

    0

    1Inputs

    Freeze

    Outputs

    Static Region

    另一种冻结技术是将 PR区域的所有输出寄存在静态区域中。然后,在部分重配置期间,使用使能信号将这些寄存器的输出保持恒定。

    图 14. 冻结技术#2

    PR Region

    En

    Static Region

    FreezeGeneration

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    17

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • Partial Reconfiguration Region Controller IP core包括其控制区域的一个冻结端口。包含此 IP组件及系统级控制逻辑,以冻结 PR区域输出。对于包含多个 PR区域的设计,对设计中的每个 PR区域均例化一个 PR Region Controller IP core。 Intel Quartus Prime软件包含 Avalon -MMFreeze Bridge和 Avalon -ST Freeze Bridge Intel FPGA IP core。您可以使用这些 IP core来实现冻结逻辑,也可以为这些标准接口类型设计自己的冻结逻辑。

    静态区域逻辑必须独立于 PR区域的所有输出,以实现连续操作。通过添加相应的冻结逻辑来控制PR区域的输出。

    1.5.6. 复位 PR区域寄存器

    在部分重配置 PR区域后,PR区域寄存器的状态将变得不确定。通过对 PR区域应用复位序列,使PR区域中的寄存器进入已知状态。此复位可确保系统符合您的规范。如果数据路径最终在有限的周期内消失,只需复位 PR区域的控制路径。在适用情况下,使用高电平有效的本地复位代替低电平有效的复位。此技术使您可以借助边界端口导线 LUT自动将 PR区域保持在复位状态。

    表 3. 受支持的 PR复位实现指南

    PR复位类型 高电平有效同步复位 高电平有效异步复位 低电平有效同步复位 低电平有效异步复位

    On local signal Yes Yes Yes Yes

    On global signal • No ( Intel Arria 10)• No ( Intel Cyclone 10

    GX)• Yes ( Intel Stratix 10)• Yes ( Intel Agilex )

    Yes • No ( Intel Arria 10)• No ( Intel Cyclone 10

    GX)• Yes ( Intel Stratix 10)• Yes ( Intel Agilex )

    Yes

    1.5.7. 在 PR区域中提升全局信号

    在非 PR设计中, Intel Quartus Prime软件会自动将高扇出信号提升到专用的全局网络。全局提升发生在设计编译的 Plan阶段。

    在 PR设计中,Compiler对在 PR区域的逻辑内产生的信号禁用全局提升。仅在静态区域中例化时钟控制模块,因为时钟平面图和时钟缓冲器必须是设计的静态区域的一部分。手动例化 PR区域中的时钟控制块,或使用 GLOBAL_SIGNAL assignment在 PR区域中分配信号会导致编译错误。将来自 PR区域的信号驱动到全局网络:

    1. 显露 PR区域的信号。

    2. 从静态区域将信号驱动到全局网络。3. 将信号驱动回 PR区域。

    您最多可以驱动 33个时钟( Intel Arria 10和 Intel Cyclone 10 GX器件)或者 32个时钟( IntelAgilex 和 Intel Stratix 10器件)到任何 PR区域中。您不能在两个 PR区域之间共享一行时钟。

    Compiler仅允许某些信号在 PR区域内是全局的。如下表所示,仅使用全局信号将辅助信号布线到PR区域:

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    18

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 表 4. 支持驱动 PR区域中的时钟网络的信号类型

    模块类型 受支持的全局网络信号

    LAB, MLAB Clock, ACLR, SCLR(3)

    RAM, ROM (M20K) Clock, ACLR, Write Enable (WE), Read Enable (RE), SCLR

    DSP Clock, ACLR, SCLR

    1.5.7.1. 查看行时钟区域边界

    您可以使用 Chip Planner可视化行时钟区域边界,并确保没有两个 PR区域共享一个行时钟区域。

    1. 在 Design Partitions Window中右击一个 PR分区名称,然后点击 Locate Node >Locate in Chip Planner。

    图 15. Chip Planner中的行时钟区域边界

    2. 在 Chip Planner中,点击 Layers选项卡,然后选择 Basic layer。Chip Planner覆盖行时钟区域边界。调整 Basic layer设置以显示特定项目。

    1.5.8. 规划时钟和其他全局布线

    在规划时钟和其他全局布线时,有一些特殊的 PR考虑因素。对于 Intel Agilex 和 Intel Stratix10设计,您可以将低偏斜网络(全局)用于时钟或复位。

    在基本修订版本编译期间,您必须将 PR角色需要的所有全局信号布线到 PR区域中的目标。对于时钟信号,此目标是寄存器或其他同步单元和进入时钟输入的信号。对于复位,目标应该被馈送到相应的输入中。

    (3) 只有 Intel Agilex 和 Intel Stratix 10设计支持全局 SCLR。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    19

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 此要求的出现是因为 PR仅重配置低偏斜网络的最后一部分。如果在基本编译期间没有布线网络的根部分和中间部分,那么不能将此版本用于 PR。

    考虑一个包含 PR区域的超集信号的示例,此 PR区域包括:

    • 三个时钟—clk_1、clk_2和 clk_3。

    • 两个复位—rst_1和 rst_2。

    • 基本 PR角色—仅使用 clk_1、clk_2和 rst_1。

    • 其他角色—仅使用 clk_3和 rst_2。

    在此示例中,对于"unused" clk_3和 rst_2,基本角色必须要有一个正确的目标。您可以通过在基本 PR角色中使用(*no prune*)指令驱动单个寄存器,使用 clk_3和使用 rst_2进行复位来实现此操作。

    省略这些目标会导致 PR实现第二角色的编译过程中出错。

    1.5.9. 对存有初始化内容的片上存储器实现时钟使能

    请遵循以下准则为存有初始化内容的片上存储器实现时钟使能:

    1. 为避免在 PR编程期间对存有初始化内容的存储器进行虚假写入,请在与M20K或MLAB RAM相同的 PR区域中实现时钟使能电路。此电路取决于来自静态区域的高电平有效清除信号(active-high clear signal)。

    2. 在开始 PR编程之前,置位此信号以禁用存储器的时钟使能。系统 PR控制器必须在 PR编程完成时置低清除信号。您可以为此目的使用冻结信号。

    3. 使用 Intel Quartus Prime IP Catalog或者 Platform Designer例化 On-Chip Memory和RAM Intel FPGA IP core,其中包括自动添加此电路的选项。

    图 16. 用于 PR区域的 RAM时钟使能电路

    M20K/LUTRAM

    D

    D

    CLR

    CLRCLR

    1

    Global Clock

    Clear SignalTo Safely Exit PR

    Clock EnableLogic

    CEQ

    Q Q

    Q–

    Q–

    Q–

    实例-1: Verilog RTL for Clock Enable

    reg ce_reg; reg [1:0] ce_delay;

    always @(posedge clock, posedge freeze) begin if (freeze) begin

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    20

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • ce_delay

  • 1.5.9.1. 时钟门控(Clock Gating)

    避免对初始化内容存储器进行虚假写入的另一种方法是在 PR静态区域中实现时钟门控电路,并将时钟门控电路馈送到 PR区域,在此 PR区域中实现了初始化存储器。

    图 17. 全局时钟控制模块

    PLL Counter Outputs

    CLKSELECT [1..0] (1)

    GCLKInternal Logic

    CLKp Pin

    CLKn Pin

    Internal Logic

    Static Clock Select (2)

    Enable/Disable

    2

    22

    This Multiplexer Supports User-Controlled Dynamic Switching

    在静态区域中实现门控电路,并将其馈送到正在实现初始化存储器的 PR区域。时钟门控在逻辑上等效于在存储器上使用时钟使能。此方法具有以下优点:

    • 在开始部分重配置操作之前,使用全局时钟缓冲器的使能端口来禁用此时钟。在 PR完成时也要使能此时钟。

    • 确保时钟在重配置期间不会切换,并且不需要其他逻辑来避免虚假写入。

    相关链接

    Clock Control Block (ALTCLKCTRL) Intel FPGA IP User Guide

    1.6. 部分重配置设计流程

    PR设计流程需要初步规划。此规划包括设置一个或多个设计分区,然后确定平面图中的布局分配。精心规划的 PR分区可提高设计区域的利用率和性能。 Intel Quartus Prime软件还使您能够创建嵌套的 PR区域,作为 HPR流程的一部分。对子 PR区域进行重新编程不会影响父 PR区域和静态PR区域。在 HPR流程中,对父区域进行重新编程,并使用默认子角色对相关子区域进行重新编程,而不会影响静态区域。对于您可以在设计中创建的子分区的数量,HPR流程不施加任何限制。

    PR设计流程使用 Intel Quartus Prime软件中的工程修订版特性。您的初始设计是基本修订版,您可以在其中定义 FPGA上的静态区域边界和可重配置区域。在基本修订版中,您可以创建多个修订版。这些修订包含 PR地区的不同实现。但是,所有的 PR实现修订版都使用基本修订版中相同的顶层布局和布线结果。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    22

    https://www.altera.com/en_US/pdfs/literature/ug/ug_altclock.pdfmailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 18. 部分重配置设计流程

    Plan the PR System

    Identify PR Resources

    Code the Design

    Simulate the Design

    Functionality Verified?

    No

    Timing Met ?

    Yes

    Specify All Core-Only Place Regions as Exclusive 1

    Yes

    Create Routing Region for Each Place Region 1

    Specify All Partitions as Reconfigurable Partitions 1

    Create Design Partition(s) 1

    Assign All PR Partition(s) to Core-only Logic Lock Regions1

    Yes

    Yes

    YesYes

    Yes

    Generate Configuration Files

    Program the Device

    Timing Metfor Each Revision?

    Create Revisions and Compile the Design for Each Revision

    Yes

    (1) Recommended to compile the base revision before verifying timing closure

    Timing Met ?

    Timing Met ?

    Timing Met ?

    Timing Met ?

    Timing Met ?

    1.6.1. 步骤 1:识别部分重配置资源

    在设计部分重配置时,必须首先确定可以定义为可重配置分区的逻辑层次结构边界。接下来,设置设计层次结构和源代码以支持此分区。

    可重配置分区只能包含内核资源,例如 FPGA中的 LAB,嵌入式存储器模块(M20K和MLAB)和DSP模块。所有外围资源(例如收发器,外部存储器接口,GPIO,I/O接收器和硬核处理器系统(HPS))都必须位于设计的静态部分。不能对时钟和复位的全局网络缓冲器进行部分重配置。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    23

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 表 5. 受支持的重配置方法

    硬件资源模块 重配置方法

    逻辑模块 部分重配置

    数字信号处理 部分重配置

    存储器模块 部分重配置

    内核布线 部分重配置

    收发器/PLL 动态重配置

    I/O模块 不支持

    时钟控制模块 不支持

    图 19. Intel Arria 10器件中的可用资源类型

    Core

    Logic

    Fabr

    ic

    M20

    K Int

    erna

    l Mem

    ory B

    locks

    Trans

    ceive

    r Cha

    nnels

    Hard

    IP Pe

    r Tra

    nsce

    iver:

    Stan

    dard

    PCS,

    PCIe

    Gen3

    PCS

    , Enh

    ance

    d PCS

    PCI E

    xpre

    ss Ge

    n3 H

    ard I

    P PL

    Ls

    M20

    K Int

    erna

    l Mem

    ory B

    locks

    PCI E

    xpre

    ss Ge

    n3 H

    ard I

    P

    Varia

    ble Pr

    ecisi

    on D

    SP Bl

    ocks

    I/O PL

    LsHa

    rd M

    emor

    y Con

    trolle

    rs, G

    ener

    al-Pu

    rpos

    e I/O

    Cells

    , LVD

    S

    M20

    K Int

    erna

    l Mem

    ory B

    locks

    M20

    K Int

    erna

    l Mem

    ory B

    locks

    Varia

    ble Pr

    ecisi

    on D

    SP Bl

    ocks

    Core

    Logic

    Fabr

    ic

    I/O PL

    LsHa

    rd M

    emor

    y Con

    trolle

    rs, G

    ener

    al-Pu

    rpos

    e I/O

    Cells

    , LVD

    S

    M20

    K Int

    erna

    l Mem

    ory B

    locks

    M20

    K Int

    erna

    l Mem

    ory B

    locks

    Varia

    ble Pr

    ecisi

    on D

    SP Bl

    ocks

    Trans

    ceive

    r Cha

    nnels

    PCI E

    xpre

    ss Ge

    n3 H

    ard I

    PPC

    I Exp

    ress

    Gen3

    Har

    d IP

    PLLs

    Hard

    IP Pe

    r Tra

    nsce

    iver:

    Stan

    dard

    PCS,

    PCIe

    Gen3

    PCS,

    Enha

    nced

    PCS

    使用任何 Intel Quartus Prime支持的设计输入方法对一个 PR分区创建 core-only逻辑,包括Platform Designer, Intel HLS Compiler或者标准 SystemVerilog,Verilog HDL和 VHDL设计文件。

    以下 Intel FPGA IP core在静态区域中支持系统级调试:

    • In-System Memory Content Editor

    • In-System Sources and Probes Editor

    • Virtual JTAG

    • Nios II JTAG Debug Module

    • Signal Tap Logic Analyzer

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    24

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1.6.2. 步骤 2:创建设计分区

    对想要部分重配置的每个 PR区域创建设计分区。在设计中创建任意数量的独立分区或 PR区域。从Project Navigator或者 Design Partitions Window中创建部分重配置的设计分区。

    设计分区仅是设计的逻辑分区,并不指定器件上的物理区域。使用 Logic Lock Regionassignment将一个分区与 FPGA的特定区域相关联。为避免分区妨碍设计优化,请在同一分区内将逻辑分组在一起。如果设计包括一个层次化 PR流程,其中包括父分区和子分区,那么可以在设计中定义多个父分区或子分区以及多个层级的 PR分区。

    当创建一个 Reconfigurable分区时,如果不进行任何需要重新综合(re-synthesis)的分区更改,那么 Compiler会保留此分区的综合后(post-synthesis)结果,并重新使用综合后(post-synthesis)网表。否则,Compiler将从源文件重新综合分区。Compiler为 Reconfigurable分区的每个接口添加 wire LUT,并执行 PR兼容性检查。在创建分区之前,必须运行 elaboration。

    图 20. 创建一个设计分区

    请按照以下步骤创建设计分区:

    1. 点击 Processing > Start > Start Analysis & Elaboration。

    2. 在 Project Navigator中,右键点击Hierarchy选项卡中的一个实例,然后点击 DesignPartition > Set as Design Partition。在创建的每个分区旁边出现一个设计分区图标。

    3. 点击 Assignments > Design Partitions Window查看和编辑工程中的所有设计分区。

    4. 在 Design Partitions Window中对分区指定相应的设置:

    表 6. 设计分区设置

    选项 说明

    Partition Name 指定分区名称。每个分区名称必须唯一,且仅由字母数字字符组成。 Intel Quartus Prime软件自动为每个工程修订创建顶层(|)"root_partition" 。

    Hierarchy Path 对约束到分区的实体实例指定层次路径。可在 Create New Partition对话框中指定该值。根分区层次路径为|。

    Type 双击指定分区类型以控制 Compiler如何处理和实现分区:

    继续...

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    25

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 选项 说明

    • Default—标识标准分区。Compiler使用关联设计源文件处理分区。• Reconfigurable—标识局部可重配置流程中可重新配置的分区。指定 Reconfigurable类型保留综合结果,同时允许对 PR流程中的分区进行调整。

    • Reserved Core—标识基于块的设计流程中的分区,保留该分区并通过 Consumer复用器件外设实现核心开发。

    Preservation Level 对分区指定以下其中一个保留级别:• Not Set—未指定保留级。分区从源文件编译。• synthesized—使用综合快照进行分区编译。• final—使用最终快照进行分区编译。使用 synthesized或者 final的 Preservation Level,对源代码的更改不会出现在综合中。

    Empty 指定 Compiler可跳过的空分区。在同一分区中该设置与 Reserved Core和 Partition Database File设置不兼容。Preservation Level必须为Not Set。空分区不能有任何子分区。

    Partition Database File 指定 Compiler在分区编译期间使用的 Partition Database File(.qdb)。导出需要重复使用的编译阶段的.qdb(综合或最终)。将.qdb约束到某个分区以在另一环境下重复使用这些结果。

    Entity Re-binding • PR Flow—指定替代每个实现版本中个体的实体。• Root Partition Reuse Flow —指定替代使用者工程中保留核心逻辑的实体。

    Color 指定 Chip Planner和 Design Partition Planner显示中分区的颜色代码。

    Post Synthesis ExportFile

    每次运行 Analysis & Synthesis,自动将分区综合后编译结果导入指定.qdb。可自动导出无保留主分区的任何设计分区,包括 root_partition。

    Post Final Export File 每次运行 Analysis & Synthesis,自动将分区综合后编译结果导入指定.qdb。可自动导出无保留主分区的任何设计分区,包括 root_partition。

    图 21. Design Partitions Window

    Click to Add Columns

    Created Partitions

    1.6.3. 步骤 3:规划设计

    在 PR设计中使用 Logic Lock floorplan constraint对器件进行物理分区。设计中每个 PR分区都必须有一个对应的,专用的物理分区。通过创建 Logic Lock区域来定义 PR区域的物理分区。此分区可确保 PR区域可用的资源对于您实现的任何角色都是相同的。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    26

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 22. PR区域平面图

    Logic Lock Region (Fabric) Available to the PR Region

    PR区域只能包含内核逻辑,例如:LAB、RAM、ROM和 DSP。 Intel Agilex 和 Intel Stratix10设计也可以将 Hyper-Register包含在 PR区域中。在设计的静态区域中实例化所有外围设计单元,例如收发器,外部存储器接口和时钟网络。您创建的 Logic Lock区域能够跨越外围位置,例如I/O列和 HPS,因为约束是 core-only。

    有两种区域类型:

    • Place regions—使用这些区域将逻辑约束到器件的特定区域中。Fitter将逻辑放置在指定的区域中。Fitter还可以在此区域中放置其他逻辑,除非您将此区域指定为 Reserved。

    • Route regions—使用这些区域将布线限制到一个特定区域中。布线区域必须完全包围布局区域。此外,PR区域的布线区域不能重叠。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    27

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 23. 规划您的 PR设计

    StaticRegion

    PR Region

    Static Logic

    Route region

    Place Region

    在规划 PR设计时,请遵循以下准则:

    • 在进行核心规划之前,请完成外围和时钟布局图。您可以使用 Interface Planner (Tools >Interface Planner)为您的设计创建外围平面图分配。

    • 定义一个布线区域,此区域在所有方向上至少比布局区域大 1个单位。

    • 不要重叠多个 PR区域的布线区域。

    • 按行选择 PR区域,以减少比特流开销。在 Intel Arria 10和 Intel Cyclone 10 GX在器件中,短而宽的区域比高而窄的区域有更小的比特流。 Intel Agilex 和 Intel Stratix 10配置发生在扇区上。为了使比特流开销最少,请确保 PR区域与扇区对齐。

    • 对于 Intel Arria 10和 Intel Cyclone 10 GX器件,平面图的高度会影响重配置时间。Y方向上较大的平面图需要更长的时间来重配置。此条件不适用于 Intel Agilex 和 Intel Stratix 10器件,因为它们根据扇区进行配置。

    • 定义 PR区域中的子 Logic Lock区域以改善时序收敛。

    • 如果设计包括 HPR父分区和子分区,那么父区域的布局区域必须完全包围其子区域的布线和布局区域。同样,父 wire LUT必须位于子 PR区域之外的区域。此要求是因为子 PR区域是所有其他逻辑(包括父区域和静态区域)专有的。

    相关链接

    • Intel Quartus Prime Pro Edition User Guide: Design Optimization

    • Intel Quartus Prime Pro Edition User Guide: Design Constraints

    1.6.3.1. 逐步应用布局约束(Applying Floorplan Constraints Incrementally)

    PR实现需要附加的约束条件,以标识设计和器件的可重配置分区。这些限制严重影响了 Compiler的时序收敛能力。通过逐步实现每个约束,运行 Compiler,然后验证时序收敛,可以避免时序收敛问题,也可以更容易地纠正时序收敛问题。

    注意: 与平面设计相比,PR设计需要更严格的布局。PR设计的总体密度和性能可能低于等效的平面设计。

    以下步骤描述了逐步开发 PR设计的要求:

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    28

    https://www.intel.cn/content/www/cn/zh/programmable/documentation/rbb1513988527943.html#mwh1410471303170https://documentation.altera.com/#/link/iqe1513988936192/jbr1410905116321mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1. 对每个 PR分区使用最复杂的角色实现基本修订版。这一初步实现必须包括完整的设计,其中包括所有外围条件约束和顶级.sdc时序约束。在此实现中不要包括 PR区域的任何的 LogicLock区域约束。

    2. 通过在 Design Partitions Window中将区域 Type选项设置成 Default来对所有 PR分区创建分区。

    3. 寄存每个分区的边界,以确保有足够的时序裕量。4. 使用 Timing Analyzer来验证成功的时序收敛。

    5. 确保在全局网络上驱动所有需要的信号。在 Fitter (Assignments > Settings >Compiler Settings > Advanced Settings (Fitter))中禁止 Auto Global Clock选项,以避免提升非全局信号。

    6. 对每个分区创建 Logic Lock core-only布局区域。

    7. 使用 Logic Lock约束重新编译基本修订版,然后验证时序收敛。

    8. 为每个 Logic Lock区域使能 Reserved选项,以确保布局区域内 PR分区的专有布局。使能Reserved选项可避免在 PR分区的布局区域中布局静态区域逻辑。

    9. 使用 Reserved约束重新编译基本修订版,然后验证时序收敛。

    10. 在 Design Partitions Window中,将每个 PR分区的 Type指定为 Reconfigurable。此assignment确保了 Compiler对 PR分区的每个接口都添加了 wire LUT,并对部分重配置执行其他编译检查。

    11. 使用 Reconfigurable约束重新编译基本修订版,然后验证时序收敛。现在,您可以导出顶层分区,以在不同角色的 PR实现编译中重用。

    1.6.4. 步骤 4:添加 Partial Reconfiguration Controller Intel FPGA IP

    根据不同的目标器件系列,您可以添加 Partial Reconfiguration Controller Intel Arria 10/Cyclone 10 FPGA IP或者 Partial Reconfiguration Controller Intel FPGA IP到您的设计中,将部分重配置比特流发送到内部主机配置中的 PR控制模块或者 SDM中。

    1.6.4.1. 添加 Partial Reconfiguration Controller Intel FPGA IP

    您可以自定义和例化 Partial Reconfiguration Controller Intel FPGA IP from the IP Catalog(Tools > IP Catalog)。

    Partial Reconfiguration Controller Intel FPGA IP与 Secure Device Manager (SDM)接口连接来管理比特流源。SDM对配置数据执行认证和解压缩。当通过一个内部 PR主机、 Nios II处理器、 PCI Express 或者 Ethernet接口执行部分重配置时,您可以在 Intel Agilex 或者 IntelStratix 10设计中使用此 IP core。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    29

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 24. Partial Reconfiguration Controller ( Avalon -ST Interface)(4)

    PR Data Interface

    Secure Device

    Manager Interface

    Partial Reconfiguration Controller Intel FPGA IP

    avst_sink_data[31:0]avst_sink_valid

    Secure Device Manager

    avst_sink_readypr_start

    status[2:0]

    clkreset

    PR FlowHandler

    Data Source Controller

    FPGA MailboxDriver

    User Input/Output

    Intel Quartus Prime软件通过使用 PR Controller IP core的内核接口支持 PR,或者通过 JTAG器件管脚支持 PR。通过 JTAG管脚的 PR不需要例化 Partial Reconfiguration Controller IntelFPGA IP。

    相关链接

    Partial Reconfiguration Controller Intel FPGA IP (第 63页)

    1.6.4.2. 添加 Partial Reconfiguration Controller Intel Arria 10/Cyclone 10 FPGA IP

    Partial Reconfiguration Controller Intel Arria 10/Cyclone 10 FPGA IP与 Intel Arria 10或者 Intel Cyclone 10 GX PR控制模块接口连接以管理比特流源。

    当通过一个内部 PR主机、 Nios II处理器、 PCI Express 或者 Ethernet接口执行部分重配置时,您可以在 Intel Arria 10或者 Intel Cyclone 10 GX设计中使用此 IP core。

    在部分重配置期间,将存储在 FPGA外部的 PR比特流发送到 FPGA内部的 PR控制模块。此通信使控制模块能够对重配置 FPGA中的 PR区域所需的 CRAM比特进行更新。PR比特流包含重配置特定 PR区域所需的指令(操作码)和配置比特。

    (4) 也提供 Avalon-MM Interface系列。

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    30

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 25. Partial Reconfiguration Controller Intel Arria 10/Cyclone 10 FPGA IP

    CRC BLOCK PR BLOCK

    CB Interface Controller

    JTAG DebugInterface

    PR DataInterface

    FPGA ControlBlock (CB)Interface Module

    Main ControllerModule

    PR Data SourceInterface Module

    Data Source Controller

    Bitstream Decoder

    从 Intel Quartus Prime IP Catalog (Tools > IP Catalog)例化 IP core,自动连接 IP到Intel Arria 10或者 Intel Cyclone 10 GX PR控制模块。

    如果您创建自己的自定义逻辑来执行 IP core的功能,那么需要手动例化控制模块以与 FPGA系统进行通信。

    相关链接

    • Partial Reconfiguration Controller Intel Arria 10 /Cyclone 10 FPGA IP (第 67页)

    • PR控制模块和 CRC模块 Verilog HDL手动例化 (第 76页)

    • PR控制模块和 CRC模块 VHDL手动例化 (第 77页)

    1.6.5. 步骤 5:定义角色

    部分重配置设计可以有多个 PR分区,每个分区有多个角色。您可以在工程目录中的 VerilogHDL,SystemVerilog HDL或 VHDL设计文件中分别定义每个角色的独特功能。所有 PR角色必须使用同一组信号才能与静态区域进行交互。

    确保与静态区域交互的信号是所有角色中所有信号的超集。PR设计要求 PR区域中的每个角色都要有相同的 I/O接口。如果设计的所有角色都没有相同的接口,那么还必须创建封装逻辑(wrapperlogic)以与静态区域进行接口。

    注意: 如果使用 Intel Quartus Prime Text Editor,那么在保存文件时要禁止 Add file to currentproject。这些角色源文件不应是 Intel Quartus Prime工程或者编译的一部分。

    1.6.6. 步骤 6:为角色创建修订版

    为设计创建基本修订版,以及为每个角色创建 PR实现修订版。当在 GUI中或者命令行定义修订版时, Intel Quartus Prime软件自动添加 PR实现所需要的这些分配(assignment):

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    反馈 Intel Quartus Prime Pro Edition用户指南: 部分重配置

    31

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • • Entity Rebinding assignment (ENTITY_REBINDING)—对于每个 PR分区,软件会添加一个带有实体名称占位符的实体重新绑定分配(entity rebinding assignment)。根据设计和实现修订版,设计可能不需要每个 PR分区的所有实体重新绑定分配。例如,在使用默认角色作为父分区的 HPR设计中,对 PR父对象添加.qdb文件,然后仅对子对象使用实体重新绑定。

    • QDB File Partition assignment (QDB_FILE_PARTITION)—如果指定了.qdb文件名,那么软件对静态区域添加此分配。

    • Revision Type Assignment (REVISION_TYPE)

    创建 PR实现修订版:

    1. 点击 Project > Revisions。

    2. 如要创建一个新的修订版,双击。

    3. 指定唯一的 Revision name。

    4. 对 Based on revision选项选择一个现有修订版。

    5. 对于 Revision type,选择 Partial Reconfiguration - Base用于基本修订版,或者选择 Partial Reconfiguration - Persona Implementation用于实现修订版。

    6. 点击 Apply和OK。

    图 26. 创建修订版(Creating Revisions)

    相应修订版的.qsf文件中的以下 assignment对应于从 Settings对话框中指定修订版类型:

    基本修订版分配(Base Revision Assignment):

    set_global_assignment -name REVISION_TYPE PR_BASE

    1. 创建一个部分重配置设计

    UG-20136 | 2020.05.11

    Intel Quartus Prime Pro Edition用户指南: 部分重配置 反馈

    32

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Pro%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E9%83%A8%E5%88%86%E9%87%8D%E9%85%8D%E7%BD%AE%20(UG-20136%202020.05.11)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 实现修订版分配(Implementation Revision Assignment):

    set_global_assignment -name REVISION_TYPE PR_IMPL

    对于每个 PR分区, Intel Quartus Prime软件也将实体重新绑定分配添加到.qsf中:

    set_instance_assignment -name ENTITY_REBINDING -to

    如果基于现有的.qdb文件创建新的实现修订版,那么 Intel Quartus Prime软件还会添加.qdb文件分区分配,并使用占位符作为文件名:

    set_instance_assignment -name QDB_FILE_PARTITION

    例如,使用以下命令创建一个新的实现修订版,此实现修订版使用基本修订版中的.qdb文件:

    create_revision impl_new -based_on \ -new_rev_type impl -root_partition_qdb_file base_static.qdb

    • impl_new—指定新的实现修订版的名称。

    • -based_on —指定 PR基本修订版,新的 impl修订版基于此 PR基本修订版。based_on修订版中的某些全局分配(global assignment)被复制到 impl修订版中。在 impl修订版中创建占位符实体重新绑定分配(placeholder entityrebinding assignment),用于基本修订版中的每个 PR分区。

    • -new_rev_type —仅有用的 rev-type是 impl。

    • root_partition_qdb_file —使用指定的.qdb文件在 impl修订版中创建一个 QDB_FILE_PARTITION assignment。

    图 27. 部分重配置编译流程

    Compile the Base Revision with the Most Complex Persona for Each PR Region

    Export the root_partition at the “final” Snapshot of the Base Revision

    Create Revisions to Implement Each PR Persona

    For each implementation revision: 1. Add the .qdb file of the base revision root partition 2. Specify the entity bound to the PR region3. Compile the implementation revision

    Analyze Timing on Each PR Implementation Revision

    1.6.7. 步骤 7:编译基�