資源描述:
《cordic算法verilog實現(xiàn)(簡單版).doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、cordic算法verilog實現(xiàn)(簡單版) cordic算法verilog實現(xiàn)(簡單版)(轉(zhuǎn)載)modulecordic(clk,phi,cos,sin);parameterW=13,W_Z=14;inputclk;input[W_Z-1:0]phi;output[W-1:0]cos,sin;reg[W-1:0]cos,sin;reg[W-1:0]x[8:0],y[8:0];reg[W_Z-1:0]z[7:0];always@(posedgeclk)beginx[0]<=13’h4D;//修正CORDIC算法的比例因子,An的倒數(shù)y[0]<=13
2、’h00;z[0]<=phi;//旋轉(zhuǎn)45度if(z[0][W_Z-1])beginx[1]<=x[0]+y[0];y[1]<=y[0]-x[0];z[1]<=z[0]+14’h65;endelsebeginx[1]<=x[0]-y[0];y[1]<=y[0]+x[0];z[1]<=z[0]-14’h65;end//旋轉(zhuǎn)26.57度if(z[1][W_Z-1])beginx[2]<=x[1]+{{1{y[1][W-1]}},y[1][W-1:1]};y[2]<=y[1]-{{1{x[1][W-1]}},x[1][W-1:1]};z[2]<=z[1]+
3、14’h3B;endelsebeginx[2]<=x[1]-{{1{y[1][W-1]}},y[1][W-1:1]};y[2]<=y[1]+{{1{x[1][W-1]}},x[1][W-1:1]};z[2]<=z[1]-14’h3B;end//旋轉(zhuǎn)14.04度if(z[2][W_Z-1])beginx[3]<=x[2]+{{2{y[2][W-1]}},y[2][W-1:2]};y[3]<=y[2]-{{2{x[2][W-1]}},x[2][W-1:2]};z[3]<=z[2]+14’h1F;endelsebeginx[3]<=x[2]-{{2{y[2
4、][W-1]}},y[2][W-1:2]};y[3]<=y[2]+{{2{x[2][W-1]}},x[2][W-1:2]};z[3]<=z[2]-14’h1F;end//旋轉(zhuǎn)7.13度if(z[3][W_Z-1])beginx[4]<=x[3]+{{3{y[3][W-1]}},y[3][W-1:3]};y[4]<=y[3]-{{3{x[3][W-1]}},x[3][W-1:3]};z[4]<=z[3]+14’h10;endelsebeginx[4]<=x[3]-{{3{y[3][W-1]}},y[3][W-1:3]};y[4]<=y[3]+{{3{x
5、[3][W-1]}},x[3][W-1:3]};z[4]<=z[3]-14’h10;end//旋轉(zhuǎn)3.58度if(z[4][W_Z-1])beginx[5]<=x[4]+{{4{y[4][W-1]}},y[4][W-1:4]};y[5]<=y[4]-{{4{x[4][W-1]}},x[4][W-1:4]};z[5]<=z[4]+14’h8;endelsebeginx[5]<=x[4]-{{4{y[4][W-1]}},y[4][W-1:4]};y[5]<=y[4]+{{4{x[4][W-1]}},x[4][W-1:4]};z[5]<=z[4]-14’h
6、8;end//旋轉(zhuǎn)1.79度if(z[5][W_Z-1])beginx[6]<=x[5]+{{5{y[5][W-1]}},y[5][W-1:5]};y[6]<=y[5]-{{5{x[5][W-1]}},x[5][W-1:5]};z[6]<=z[5]+14’h4;endelsebeginx[6]<=x[5]-{{5{y[5][W-1]}},y[5][W-1:5]};y[6]<=y[5]+{{5{x[5][W-1]}},x[5][W-1:5]};z[6]<=z[5]-14’h4;end//旋轉(zhuǎn)0.90度if(z[6][W_Z-1])beginx[7]<=
7、x[6]+{{6{y[6][W-1]}},y[6][W-1:6]};y[7]<=y[6]-{{6{x[6][W-1]}},x[6][W-1:6]};z[7]<=z[6]+14’h2;endelsebeginx[7]<=x[6]-{{6{y[6][W-1]}},y[6][W-1:6]};y[7]<=y[6]+{{6{x[6][W-1]}},x[6][W-1:6]};z[7]<=z[6]-14’h2;end//旋轉(zhuǎn)0.45度if(z[7][W_Z-1])beginx[8]<=x[7]+{{7{y[7][W-1]}},y[7][W-1:7]};y[8]<=
8、y[7]-{{7{x[7][W-1]}},x[7][W-1:7]};endelsebeginx[8]<=x[