F-Tile动态重配置套件 Intel® FPGA IP用户指南

ID 711009
日期 6/21/2022
Public
文档目录

4.5. 基于 Nios II® 的动态重配置流程

下图显示了由 Nios II® 协助的动态重配置流程。流程图的左侧显示了Host Software流程,此流程会触发动态重配置。
图 4.  Nios II® 协助的动态重配置流程

主机软件(host software)通过置位IP的数据路径复位,将“DR-out” IP置于静止(quiescent)状态。主机软件然后将DR待触发,直到它被设置。

接下来,主机软件将配置文件信息(profile information)烧写到DR CSR寄存器中并设置Trigger Reconfig比特。一旦 Nios II® Trigger Reconfig比特集进行采样,它将执行内部Tile特定的程序以进行DR切换,从主机软件中抽象出所有tile特定的架构。主机软件轮询特定的DR CSR Ready for New Trigger bit来了解在主机软件能够在同一通道上启动另一个DR之前, Nios II® 何时完成切换流程。一旦 Nios II® 完成切换流程,主机软件就能够将“DR-in” IP从复位状态释放。

右侧的流程图显示了NIOS core在接收到执行DR切换的请求后所进行的操作(直接或者间接地通过其他控制器)。当Trigger Reconfig比特被设置时, Nios II® core会对此比特进行采样以调用内部DR切换流程。 Nios II® 读取新的配置设置并继续启动DR。

下一个是将新的配置写入到相应的Tile IP模块(MAC, PCS, FEC, PMA)寄存器。将要编程的tile寄存器是根据主机软件配置的DR CSR寄存器值决定的。

一旦完成新的tile配置, Nios II® core就会设置DR CSR Ready for New Trigger bit,以便主机软件知道当前DR切换已完成。

典型的动态重配置软件流程

当动态重配置您的设计时,请使用以下步骤顺序:
  • 持续轮询Dynamic Reconfiguration New Trigger (0x00[1])寄存器,直到该寄存器置位。当该寄存器置位时, Nios II® 准备就绪。
  • 复位当前协议IP。例如,将i_p0_rst_ni_p0_tx_rst_ni_p0_rx_rst_n比特设置成1'b0。
  • 等待当前协议IP复位确认(reset acknowledgment)。例如,将o_p0_rst_ack_no_p0_tx_rst_ack_no_p0_rx_rst_ack_n比特清除成1'b0。
  • 通过编程Dynamic Reconfiguration Next Profile <N> (0x04 - 0x50)寄存器来配置下一个配置文件(next profile)。
  • 通过写入Dynamic Reconfiguration New Trigger (0x00[0])寄存器来触发动态重配置。
  • 持续轮询Dynamic Reconfiguration New Trigger (0x00[1])寄存器,直到它被置位。
  • 使用一个新的配置来配置新的协议IP。例如,对Ethernet Multirate IP寄存器使用0x200 - 0x0208偏移。
  • 使新的协议IP退出复位。例如,将i_p0_rst_ni_p0_tx_rst_ni_p0_rx_rst_n比特设置成1'b1。
  • 等待新的协议IP复位确认(reset acknowledgment)。例如,将o_p0_rst_ack_no_p0_tx_rst_ack_no_p0_rx_rst_ack_n比特设置成1'b1。
  • 动态重配置完成。