仅对英特尔可见 — GUID: mta1458937942734
Ixiasoft
仅对英特尔可见 — GUID: mta1458937942734
Ixiasoft
2.2.3. 综合期间保留寄存器
通过指定实体级别分配和综合属性,可以在综合处理期间保留特定的寄存器。
例如,Preserve Registers in Synthesis assignment保留在综合期间分配的寄存器,而不会限制Hyper-Retiming优化。同样,您可以指定dont_merge或preserve_syn_only综合属性来保留寄存器,而不会限制重定时优化,如下例所示。
logic hip_data; /* synthesis preserve_syn_only */ (*preserve_syn_only*) logic hip_data;
Preserve Registers assignment也保留寄存器,但不支持您所分配的寄存器的Hyper-Retimer优化。当想要保留一个寄存器用于调试可观察性时,该assignment很有用。
通过点击Assignments > Assignment Editor,修改.qsf文件,或者在您的RTL中指定综合属性来指定以下任何的综合保留分配。
分配(Assignment) | 描述 | 允许Fitter优化? | Assignment语法 |
---|---|---|---|
Preserve Registers in Synthesis | 防止在综合期间删除寄存器。此设置不会影响Fitter中的重定时和其他优化。 | Yes |
|
Preserve Fan-Out Free Register Node | 防止在综合期间删除没有扇出的已分配寄存器。 PRESERVE_FANOUT_FREE_NODE assignment不能保留一个无扇出的寄存器,此寄存器在Verilog HDL或VHDL模块(其中定义了此寄存器)内没有扇出。要保留这些无扇出的寄存器,请在源文件中实现noprune编译指令(pragma): (*noprune*)reg r; 如果此模块有多个实例,而只有一些实例需要保留无扇出寄存器,那么在HDL中的寄存器上设置虚拟编译指令(dummy pragma),并设置PRESERVE_FANOUT_FREE_NODE assignment。此虚拟编译指令(dummy pragma)使寄存器综合能够实现分配。例如,为Verilog HDL中的寄存器r设置以下虚拟编译指令(dummy pragma): (*dummy*)reg r; |
Yes |
|
Preserve Registers | 防止在综合过程中对已分配寄存器的删除和顺序优化。顺序网表优化可以消除多余的寄存器以及带恒定驱动器的寄存器。 | No |
|