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

ID 683834
日期 5/11/2020
Public
文档目录

1.5.1. 部分重配置设计指南

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

表 2.  部分重配置设计指南
PR设计步骤 指南 原因

对部分重配置进行设计

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

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

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

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

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

(*noprune*)reg r;

如果此模块有多个实例,只有一些实例需要保留fanout-free寄存器,那么在HDL中的寄存器上设置一个虚拟编译指示(dummy pragma),并设置PRESERVE_FANOUT_FREE_NODE assignment。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创建到静态区域的通用覆盖区(common footprint)。

当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角色的信号布线从综合开始。