减少Xilinx Vivado中的净延迟

时间:2019-01-08 22:13:55

标签: verilog fpga

我正在尝试在FPGA上实现解码器。解码器有几个模块,其中一个模块如下所示:

exp_to_polynomial_conv和polynomial_to_exp_conv仅包含一个case语句,每个语句具有1024个条目。

module find_error_locator_polynomial(
    input [9:0] S1,
    input [9:0] S3,
    input [9:0] S5,
    output  [9:0] lambda1,
    output  [9:0] lambda2,
    output  [9:0] lambda3
    );
wire [9:0] temp_exp,temp,temp2,temp3,temp3_exp,temp4,temp_16,temp5,temp7,temp8,temp8_exp,temp6,temp6_exp,temp5_exp,temp4_exp,temp2_exp,S3_exp,S1_exp;
      //Formulas for the three error correction relation between syndromea and lambda's is given on Page 252 Tood k MOON 
   wire temp_15  ; 
      assign lambda1=S1;
      // Direct assignment of S1 to lambda1 
      // What if S1 is 10'd0 ????
      // In that case the polynomial to exp conv will not return anything ???
      //
      polynomial_to_exp_conv PTEC1(S1,S1_exp);
      polynomial_to_exp_conv PTEC2(S3,S3_exp);
      assign temp_exp=(S1_exp==10'b1111111111 || S3_exp==10'b1111111111)?10'b1111111111:(2*S1_exp+S3_exp)%1023;
      exp_to_polynomial_conv ETPC1(temp_exp,temp);
      assign temp2=temp ^ S5;
      polynomial_to_exp_conv PTEC3(temp2,temp2_exp);
      assign temp3_exp=(S1_exp==10'b1111111111)?10'b1111111111:(S1_exp * 3)%1023;
      exp_to_polynomial_conv ETPC2(temp3_exp,temp3);
      assign temp4=temp3 ^ S3;
      assign temp_15= (temp4==10'd0)?1'b1:1'b0;
      polynomial_to_exp_conv PTEC4(temp4,temp4_exp);
      assign temp5_exp=(temp2_exp == 10'b1111111111)?10'b1111111111:(temp2_exp+1023-temp4_exp)%1023;
      exp_to_polynomial_conv ETPC3(temp5_exp,temp_16);
      assign lambda2 = (temp_15==1)? 10'd0 : temp_16;
      assign temp7=temp3 ^ S3;
      assign temp8_exp=(S1_exp == 10'b1111111111 || temp5_exp==10'b1111111111)?10'b1111111111:(S1_exp + temp5_exp)%1023;
      exp_to_polynomial_conv PTEC5(temp8_exp,temp8);
      assign lambda3=(temp4==10'd0 )?10'd0:(temp7^temp8);

endmodule

此模块在IP块用户逻辑内实例化16次,因此我可以进行16个并行解码操作。

在生成比特流时,我收到一条错误消息,指出未达到设计时序。 WNS = -12.16,TNS = -3285.23。

时序报告如下所示:

enter image description here

时钟的逻辑延迟很好地处于指定要求之下,即10 ns(100 MHz时钟)。我该怎么做才能减少网络延迟?

0 个答案:

没有答案