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

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

4.1.4. 步骤4:优化短路径和长路径条件

移除异步寄存器并添加流水线阶段后,Fast Forward Details报告指出,短路径和长路径条件限制了进一步优化。在此实例中,最长路径限制了这个特定时钟域的fMAX。要提高性能,需要按照下面的步骤来缩短此时钟域的最长路径的长度。
  1. 要查看长路径信息,点击Fast Forward Details报告中的Critical Chain Details选项卡。复查此路径周围的逻辑结构,并考虑相关的RTL代码。此路径包括node.v文件的node模块。关键路径关系到寄存器data_hidata_lo(几个比较器的一部分)的计算。

    以下是此路径的原始RTL:

    always @(*)
      begin : comparator
        if(data_a < data_b) begin
          sel0 = 1'b0; // data_a : lo / data_b : hi
        end else begin
          sel0 = 1'b1; // data_b : lo / data_a : hi
        end
      end
    
    always @(*)
        begin : mux_lo_hi
            case (sel0)
                1'b0 :
                begin
                    if(LOW_MUX == 1)
                        data_lo = data_a;
                    if(HI_MUX == 1)
                        data_hi = data_b;
                end
                1'b1 :
                begin
                    if(LOW_MUX == 1)
                        data_lo = data_b;
                    if(HI_MUX == 1)
                        data_hi = data_a;
                end
                default :
                begin
                    data_lo = {DATA_WIDTH{1'b0}};
                    data_hi = {DATA_WIDTH{1'b0}};
                end
            endcase
        end

    Compiler从此RTL推断出以下逻辑:

    • 一个创建sel0信号的比较器
    • 一对创建data_hidata_lo信号的复用器,如下图所示:
    图 99. 节点组件连接
  2. 复查例化node模块的pixel_network.v文件。当node模块的输出没有使用时,它们是未连接的。这些未连接的输出导致LOW_MUXHI_MUX代码未被使用。使用按位逻辑运算来计算data_hidata_lo信号的值,而不是推断多路复用器,如下例所示:
    reg [DATA_WIDTH-1:0] sel0;
    
    always @(*)
      begin : comparator
        if(data_a < data_b) begin
          sel0 = {DATA_WIDTH{1'b0}}; // data_a : lo / data_b : hi
        end else begin
          sel0 = {DATA_WIDTH{1'b1}}; // data_b : lo / data_a : hi
     end
    	
     data_lo = (data_b & sel0) | (data_a & sel0);
     data_hi = (data_a & sel0) | (data_b & sel0);
    end
  3. 再次编译设计和查看Fast Forward Details报告。提升的性能与所评估的类似,短路径和长路径组合不再限制进一步性能提升。此步骤完成后,只有逻辑回路(logical loop)限制进一步的性能提升。
    图 100. 优化的短路径和长路径条件
    注: 作为完成上述步骤的替代方法,您可以打开并编译Median_filter_<version>/Final/median.qpf工程文件(此文件已包含这些变更),然后观察结果。