Quartus® Prime专业版用户指南: 设计编译

ID 683236
日期 4/01/2024
Public
文档目录

1.7.2.1. 综合期间保留寄存器

Quartus® Prime综合将门控数量最小化,合并冗余逻辑并确保器件资源的有效利用。如果需要在综合过程中保留指定寄存器,则可指定以下实体级约束。

分配Preserve Registers in SynthesisPreserve Fan-Out Free Register Node选项以允许对已保留寄存器进行Fitter优化。Preserve Registers会限制了保留寄存器的Fitter优化。通过点击Assignments > Assignment Editor,修改.qsf文件,或在RTL中指定综合属性,从而指定综合保留约束。

表 11.  Synthesis Preserve选项
约束 描述 是否允许Fitter优化 约束句法
Preserve Registers in Synthesis 防止在综合期间删除寄存器,但不限制综合后的任何优化,例如Hyper-Retiming或物理综合优化。
  • set_global_assignment -name PRESERVE_REGISTER_SYN_ONLY ON|OFF -entity <entity name>

    set_instance_assignment -name PRESERVE_REGISTER_SYN_ONLY ON|OFF -to <to> -entity <entity name>

  • preserve_syn_only or syn_preservesyn_only (综合属性)
Preserve Fan-Out Free Register Node 避免综合期间删除无扇出的被约束寄存器。
PRESERVE_FANOUT_FREE_NODE约束无法保留无扇出寄存器,该寄存器的Verilog HDL或VHDL模块中没有您指定的扇出。要保留这些无扇出寄存器,请实现源文件:
(*noprune*)reg r;
中的noprune 编译指令(pragma)

如果该模块有多个实例,而仅某些实例需要保留无扇出寄存器,则可在HDL的寄存器中设置一个虚编译指令(dummy pragma)并设置PRESERVE_FANOUT_FREE_NODE。该虚编译指令允许寄存器综合实现该约束。例如,在Verilog HDL中对寄存器r设置如下虚编译指令:

(*dummy*)reg r;
  • set_instance_assignment -name PRESERVE_FANOUT_FREE_NODE ON|OFF -to <to> -entity <entity name>
  • noprune on (请参阅VerilogVHDL综合属性了解句法)
Preserve Registers 防止综合期间删除和连续优化约束寄存器。顺序性网表优化可消除冗余寄存器和具有固定驱动器的寄存器。
  • set_global_assignment -name PRESERVE_REGISTER ON|OFF -entity <entity name>

    set_instance_assignment -name PRESERVE_REGISTER ON|OFF -to <to> -entity <entity name>

  • preserve, syn_preserve, or keep on (综合属性)