4.1. 生成动态重配置设计和配置文件(Configuration Profile)
4.2. 动态重配置QSF设置
4.3. 动态重配置规则
4.4. 硬件状态和配置文件(Configuration Profile)
4.5. 基于 Nios II® 的动态重配置流程
4.6. 使用Tile Assignment Editor
4.7. 可视化动态重新配置组布局
4.8. 分配IP_COLOCATE层次结构
4.9. 示例:使用Multirate IP的动态重配置流程
4.10. 示例:动态重配置编程排序
4.11. 确定配置文件编号(Determining Profile Numbers)
6.1. 动态重配置新触发器
6.2. 动态重配置Next Profile 0
6.3. 动态重配置Next Profile 1
6.4. 动态重配置Next Profile 2
6.5. 动态重配置Next Profile 3
6.6. 动态重配置Next Profile 4
6.7. 动态重配置Next Profile 5
6.8. 动态重配置Next Profile 6
6.9. 动态重配置Next Profile 7
6.10. 动态重配置Next Profile 8
6.11. 动态重配置Next Profile 9
6.12. 动态重配置Next Profile 10
6.13. 动态重配置Next Profile 11
6.14. 动态重配置Next Profile 12
6.15. 动态重配置Next Profile 13
6.16. 动态重配置Next Profile 14
6.17. 动态重配置Next Profile 15
6.18. 动态重配置Next Profile 16
6.19. 动态重配置Next Profile 17
6.20. 动态重配置Next Profile 18
6.21. 动态重配置Next Profile 19
6.22. 动态重配置Avalon MM Timeout
6.23. 动态重配置TX通道重配置
6.24. 动态重配置RX通道重配置
6.25. 在复位确认(Reset Acknowledgment)中通道重配置TX通道
6.26. 退出复位状态的通道重配置TX通道
6.27. 动态重配置TX通道复位控制初始化状态
6.28. 动态重配置TX通道源警报(TX Channel Source Alarm)
6.29. 复位确认(Reset Acknowledgment)中的动态重配置RX通道
6.30. 退出复位状态的动态重配置RX通道
6.31. 动态重配置RX通道复位控制初始化状态
6.32. 动态重配置RX通道源警报(RX Channel Source Alarm)
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_n,i_p0_tx_rst_n和i_p0_rx_rst_n比特设置成1'b0。
- 等待当前协议IP复位确认(reset acknowledgment)。例如,将o_p0_rst_ack_n,o_p0_tx_rst_ack_n和o_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_n,i_p0_tx_rst_n和i_p0_rx_rst_n比特设置成1'b1。
- 等待新的协议IP复位确认(reset acknowledgment)。例如,将o_p0_rst_ack_n,o_p0_tx_rst_ack_n和o_p0_rx_rst_ack_n比特设置成1'b1。
- 动态重配置完成。