【正文】
) begin x1=1639。 y1=1639。 z1=1639。 end else if(ena==139。b0) //當(dāng)前的相位值是正的 begin x1 = x0 y0。 z1 = z0 1639。 //45deg end else //當(dāng)前的相位值是負(fù)的 begin x1 = x0 + y0。 z1 = z0 + 1639。 //45deg end end else begin x1=1639。 y1=1639。 z1=1639。 end end //level_2(第二級迭代 ) always (posedge clk or negedge rst_n) begin if(!rst_n) begin x2=1639。 y2=1639。 z2=1639。 end else if(ena==139。b0) //當(dāng)前的相位值是正的 begin x2 = x1 {y1[DATA_WIDTH1],y1[DATA_WIDTH2:1]}。//x1 向右移一位且最高位不變 z2 = z1 1639。 // end else //當(dāng)前的相位值是負(fù)的 begin x2 = x1 + {y1[DATA_WIDTH1],y1[DATA_WIDTH2:1]}。 z2 = z1 + 1639。 // end end else begin x2=1639。 y2=1639。 z2=1639。 end end //level_3(第三級迭代 ) always (posedge clk or negedge rst_n) begin if(!rst_n) begin x3=1639。 y3=1639。 z3=1639。 end else if(ena==139。b0) begin x3 = x2 {{2{y2[DATA_WIDTH1]}},y2[DATA_WIDTH2:2]}。 z3 = z2 1639。 // end else begin x3 = x2 + {{2{y2[DATA_WIDTH1]}},y2[DATA_WIDTH2:2]}。 z3 = z2 + 1639。 // end end else begin x3=1639。 y3=1639。 z3=1639。 end end //level_4(第四級迭代 ) always (posedge clk or negedge rst_n) begin if(!rst_n) begin x4=1639。 y4=1639。 z4=1639。 end else if(ena==139。b0) begin x4 = x3 {{3{y3[DATA_WIDTH1]}},y3[DATA_WIDTH2:3]}。 z4 = z3 1639。 // end else begin x4 = x3 + {{3{y3[DATA_WIDTH1]}},y3[DATA_WIDTH2:3]}。 z4 = z3 + 1639。 // end end else begin x4=1639。 y4=1639。 z4=1639。 end end //level_5(第五級迭代 ) always (posedge clk or negedge rst_n) begin if(!rst_n) begin x5=1639。 y5=1639。 z5=1639。 end else if(ena==139。b0) begin x5 = x4 {{4{y4[DATA_WIDTH1]}},y4[DATA_WIDTH2:4]}。 z5 = z4 1639。 // end else begin x5 = x4 + {{4{y4[DATA_WIDTH1]}},y4[DATA_WIDTH2:4]}。 z5 = z4 + 1639。 // end end else begin x5=1639。 y5=1639。 z5=1639。 end end //level_6(第六級迭代 ) always (posedge clk or negedge rst_n) begin if(!rst_n) begin x6=1639。 y6=1639。 z6=1639。 end else if(ena==139。b0) begin x6 = x5 {{5{y5[DATA_WIDTH1]}},y5[DATA_WIDTH2:5]}。 z6 = z5 1639。 // end else begin x6 = x5 + {{5{y5[DATA_WIDTH1]}},y5[DATA_WIDTH2:5]}。 z6 = z5 + 1639。 // end end else begin x6=1639。 y6=1639。 z6=1639。 end end //level_7(第七級迭代 ) always (posedge clk or negedge rst_n) begin if(!rst_n) begin x7=1639。 y7=1639。 z7=1639。 end else if(ena==139。b0) begin x7 = x6 {{6{y6[DATA_WIDTH1]}},y6[DATA_WIDTH2:6]}。 z7 = z6 1639。 // end else begin x7 = x6 + {{6{y6[DATA_WIDTH1]}},y6[DATA_WIDTH2:6]}。 z7 = z6 + 1639。 // end end else begin x7=1639。 y7=1639。 z7=1639。 end end //level_8(第八級迭代 ) always (posedge clk or negedge rst_n) begin if(!rst_n) begin x8=1639。 y8=1639。 z8=1639。 end else if(ena==139。b0) begin x8 = x7 {{7{y7[DATA_WIDTH1]}},y7[DATA_WIDTH2:7]}。 z8 = z7 1639。 // end else begin x8 = x7 + {{7{y7[DATA_WIDTH1]}},y7[DATA_WIDTH2: