Intel® Quartus® Prime Standard Edition用户指南: 部分重配置

ID 683499
日期 9/24/2018
Public
文档目录

1.6.4. 重配置一个PR区域

下图显示了一个用于PR的内部主机,其中PR IP core是在FPGA内部实现的。然而,这些原则也应用于通过外部主机的部分重配置。

PR控制模块(CB)代表FPGA内部的 Stratix® V PR控制器。PR1和PR2是用户设计中的两个PR区域。除了四个控制信号(PR_REQUESTPR_READYPR_DONEPR _ERROR)和与PR控制模块连接的数据/时钟信号外,PR Control IP还应向每个PR区域发送控制信号(PR_CONTROL)。该信号实现PR接口信号的冻结和解冻。这对于避免FPGA布线架构上的争用是必要的。在这种情况下,除了例化PR IP core外,还需要在设计中加入一些解码逻辑。

图 12. 一个包括两个PR区域的PR系统示例

FPGA中PR控制逻辑的实现。

使用全芯片配置(full chip configuration)对FPGA器件执行至少一次配置后,INIT_DONE信号被释放,由于此管脚上的外部电阻,信号被置为高电平。INIT_DONE信号必须分配给一个管脚,以便在外部进行监控。当全芯片配置(full chip configuration)完成,并且器件处于用户模式时,以下步骤描述了PR序列:

  1. 从PR控制逻辑开始部分重配置进程,这会启动一个或多个PR区域的PR进程(置位图中的PR1_Control或PR2_Control)。前面描述的wrapper HDL在PR进程之前冻结(拉高)PR区域的所有非全局输入。
  2. 如果使用PR IP core,那么需要使用PR_START信号开始重配置PR区域。不使用PR IP core时,控制逻辑应将PR_REQUEST信号从控制逻辑发送到PR控制模块(CB)。如果您的设计使用一个外部控制器,那么在置位PR_STARTPR_REQUEST信号之前要监控INIT_DONE以验证芯片是否处于用户模式。CB自初始化来接受PR数据流和时钟流。之后,CB置位PR_READY信号以表明它可以接受PR数据了。如果使用PR IP,那么控制和数据信号之间的时序关系由IP core进行管理。数据和时钟信号被发送到PR控制模块以部分重配置PR区域接口。
    注: 如果您编写自己的控制器逻辑,那么需要指定在发送PR数据之前必须恰好出现四个时钟周期,以确保PR进程正确进行。
    • 当PR区域有多个PR角色(persona)时,控制逻辑必须确定用于部分重配置的编程文件数据并指定正确的文件。
    • 当设计中存在多个PR区域时,控制逻辑将根据系统要求确定哪些区域需要重配置。
    • 在PR进程结束时,PR控制模块置位PR_DONE信号并置低PR_READY信号。Altera PR IP core进一步处理这些信号以置位一个3-bit状态信号。如果您没有使用Altera PR IP,那么当PR_DONE被置位时,您的设计必须按照时序图的定义采取相应的操作。
    • 如果要暂停发送数据,那么可以通过实现逻辑在任何时刻暂停时钟。
  3. 当您没有使用PR IP core时,您的自定义控制逻辑必须在PR_DONE信号变高前的8个时钟周期内置低PR_REQUEST信号。如果您的逻辑在8个时钟周期内没有置低PR_REQUEST信号,那么会开始一个新的PR周期。
  4. 如果您的设计包含其他PR区域,那么要对每个区域重复步骤2 – 3。否则,请继续执行步骤5。
  5. 当没有使用PR IP core时,您的自定义控制逻辑必须将PR_CONTROL信号置低到PR区域。freeze wrapper释放PR区域的所有输入信号,因此PR区域准备好进行正常的用户操作。
  6. 您必须对PR区域执行一个复位周期,以使该区域中的所有逻辑处于已知状态。在PR区域的部分重配置完成之后,该区域中的逻辑出现的状态是未知的。

PR事件现已完成,您可以使用最新配置的PR区域继续FPGA的操作。

在部分重配置周期开始后的任何时刻,PR主机都能够暂停发送PR_DATA,但主机必须同时暂停发送PR_CLK 。如果PR_CLK在PR进程后暂停,那么在PR_DONEPR_ERROR信号置位后必须至少有20个时钟周期,以防止出现错误行为。

关于Altera器件中的不同复位方案的概述,请参考 Intel® Quartus® Prime Handbook中的Recommended Design Practices章节。