基于fpga的复指数转换模块设计(编辑修改稿)内容摘要:

dcase end else begin phase_in_reg=1639。 h0000。 end end always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x0=1639。 h0000。 y0=1639。 h0000。 z0=1639。 h0000。 end else if(ena==139。 b1) begin //m=1,旋转模式 (这种模式可以用来计算一个输入角的正弦值和余弦值 ) //x0=k,模校正因子的值 //y0=0 //z0=phase_in x0 = 1639。 h4DBA。 //define aggregate constant Xi=1/P=1/=(Xi=2^7*P=1639。 h4DBA) y0 = 1639。 h0000。 z0 = phase_in_reg。 end else begin x0=1639。 hzzzz。 y0=1639。 hzzzz。 z0=1639。 hzzzz。 end end //level_1(第一级迭代 ) always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x1=1639。 h0000。 y1=1639。 h0000。 z1=1639。 h0000。 end else if(ena==139。 b1) begin if(z0[15]==139。 b0) //当前的相位值是正的 begin x1 = x0 y0。 y1 = y0 + x0。 z1 = z0 1639。 h2020。 //45deg end else //当前的相位值是负的 begin x1 = x0 + y0。 y1 = y0 x0。 z1 = z0 + 1639。 h2020。 //45deg end end else begin x1=1639。 hzzzz。 y1=1639。 hzzzz。 z1=1639。 hzzzz。 end end //level_2(第二级迭代 ) always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x2=1639。 h0000。 y2=1639。 h0000。 z2=1639。 h0000。 end else if(ena==139。 b1) begin if(z1[15]==139。 b0) //当前的相位值是正的 begin x2 = x1 {y1[DATA_WIDTH1],y1[DATA_WIDTH2:1]}。 //y1 向右移一位且最高位不变 y2 = y1 + {x1[DATA_WIDTH1],x1[DATA_WIDTH2:1]}。 //x1 向右移一位且最高位不变 z2 = z1 1639。 h12E4。 // end else //当前的相位值是负的 begin x2 = x1 + {y1[DATA_WIDTH1],y1[DATA_WIDTH2:1]}。 y2 = y1 {x1[DATA_WIDTH1],x1[DATA_WIDTH2:1]}。 z2 = z1 + 1639。 h12E4。 // end end else begin x2=1639。 hzzzz。 y2=1639。 hzzzz。 z2=1639。 hzzzz。 end end //level_3(第三级迭代 ) always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x3=1639。 h0000。 y3=1639。 h0000。 z3=1639。 h0000。 end else if(ena==139。 b1) begin if(z2[15]==139。 b0) begin x3 = x2 {{2{y2[DATA_WIDTH1]}},y2[DATA_WIDTH2:2]}。 y3 = y2 + {{2{x2[DATA_WIDTH1]}},x2[DATA_WIDTH2:2]}。 z3 = z2 1639。 h09FB。 // end else begin x3 = x2 + {{2{y2[DATA_WIDTH1]}},y2[DATA_WIDTH2:2]}。 y3 = y2 {{2{x2[DATA_WIDTH1]}},x2[DATA_WIDTH2:2]}。 z3 = z2 + 1639。 h09FB。 // end end else begin x3=1639。 hzzzz。 y3=1639。 hzzzz。 z3=1639。 hzzzz。 end end //level_4(第四级迭代 ) always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x4=1639。 h0000。 y4=1639。 h0000。 z4=1639。 h0000。 end else if(ena==139。 b1) begin if(z3[15]==139。 b0) begin x4 = x3 {{3{y3[DATA_WIDTH1]}},y3[DATA_WIDTH2:3]}。 y4 = y3 + {{3{x3[DATA_WIDTH1]}},x3[DATA_WIDTH2:3]}。 z4 = z3 1639。 h0511。 // end else begin x4 = x3 + {{3{y3[DATA_WIDTH1]}},y3[DATA_WIDTH2:3]}。 y4 = y3 {{3{x3[DATA_WIDTH1]}},x3[DATA_WIDTH2:3]}。 z4 = z3 + 1639。 h0511。 // end end else begin x4=1639。 hzzzz。 y4=1639。 hzzzz。 z4=1639。 hzzzz。 end end //level_5(第五级迭代 ) always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x5=1639。 h0000。 y5=1639。 h0000。 z5=1639。 h0000。 end else if(ena==139。 b1) begin if(z4[15]==139。 b0) begin x5 = x4 {{4{y4[DATA_WIDTH1]}},y4[DATA_WIDTH2:4]}。 y5 = y4 + {{4{x4[DATA_WIDTH1]}},x4[DATA_WIDTH2:4]}。 z5 = z4 1639。 h028B。 // end else begin x5 = x4 + {{4{y4[DATA_WIDTH1]}},y4[DATA_WIDTH2:4]}。 y5 =。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。