Intel® Hyperflex™ 体系结构高性能设计手册

ID 683353
日期 10/04/2021
Public
文档目录

2.3.2.2.4. (可选)无可变延迟模块的自动流水线插入

按照以下针对目标寄存器的步骤来选择使能自动流水线插入,而不使用可变延迟模块(hyperpipe_vlat):
  1. 要指定要插入的最大级数,请点击Assignments > Assignment Editor,然后对Assignment Name选择Maximum Additional Pipelining,在Value中输入最大数量的流水线, 在To中输入到寄存器的层次路径。或者,将以下等效赋值语句添加到.qsf中。
    set_instance_assignment -name HYPER_RETIMER_ADD_PIPELINING \
         <maximum stages> -to <register path>
    注: 如果使用altera_attribute语句在RTL中嵌入赋值,而不是添加到.qsf,那么必须在Verilog HDL和VHDL中将数值指定为字符串。
  2. 如要防止在自动流水线插入额外级之前进行总线优化,请指定preserve pragma,并在Assignment Editor中将目标寄存器的Netlist Optimizations设置为Never Allow,或者使用以下.qsf赋值语句进行指定。如果自动流水线操作将额外级添加到总线的某些比特中(而不是全部比特),那么在自动流水线操作之前对总线进行的任何优化都会对信号完整性产生影响。
    set_instance_assignment -name \
         ADV_NETLIST_OPT_ALLOWED NEVER_ALLOW -to <register path>
    
  3. 要确保相关寄存器接收相同数量的额外流水线级,需要创建一个assignment group以关联并分配组中的所有寄存器。如果没有定义assignment group,那么组名称将自动生成,前缀为add_pipelining_group ,并且对HYPER_RETIMER_ADD_PIPELINING指定的每个寄存器都将成为一组。

    以下命令行显示了.qsf group assignment的语法:

    set_instance_assignment -name \
        HYPER_RETIMER_ADD_PIPELINING_GROUP <group name string> \
        -to <register path>