基于cordic算法的平方根计算模块的verilog实现

基于cordic算法的平方根计算模块的verilog实现

ID:20673294

大小:87.00 KB

页数:6页

时间:2018-10-14

基于cordic算法的平方根计算模块的verilog实现_第1页
基于cordic算法的平方根计算模块的verilog实现_第2页
基于cordic算法的平方根计算模块的verilog实现_第3页
基于cordic算法的平方根计算模块的verilog实现_第4页
基于cordic算法的平方根计算模块的verilog实现_第5页
资源描述:

《基于cordic算法的平方根计算模块的verilog实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、例2-28基于C0RD1C算法的平方根计算模块的Verilog实现。①MATLAB代码为了便于读者理解,首先用MATLAB实现计算sqrt(x2+y2)的Cordic算法,代码如下:functionXout=mysqrt(x,y);K二8;An=1;fori=1:Ka(i)=l/(27i));An=An*sqrt(1+1/(4i));end%anger=atan(a);%计算出的角度theta=0;fori=1:Ksigma=-sign(y);x=x-sigma^y/(2"i);y=y+sigma^x/(2^i);%z=z-

2、sigma^a(i);endXout=x/An;经过测试,上述程序可利用Cordic算法来计算输入数据平方和的根。②Verilog代码modulemysqrt(clk,x,y,fout,fy);inputelk;input[15:0]x;input[15:0]y;output[15:0]fout;output[15:0]fy;reg[15:0]fout;reg[15:0]fy;//采用8级流水线来实现wire[15:0]xl,yl,x2,wire[15:0]x6,y6,x7,y2,x3,y3,x4,y4,x5,y5;y7,x

3、8,y8;//reg[15:0]xtemp,ytemp;regaddxl,addx2,addx3,addx4,addx5,addx6,addx7,addx8;regaddyl,addy2,addy3,addyd,addy5,addy6,addy7,addy8;always@(poscdgcelk)beginxtemp<=x;ytemp<=y;fout<=x8;fy<=y8;if(ytemp[15]=-=0)〈二begin1;0;endaddxladdy1elsebeginaddxl<=0;addyl1;endif(yl[15

4、]——0)beginaddx2<=1;addy2<=0;endelsebeginaddx2<=0;addy2<=1;endif(y2[15]二:0)beginaddx3〈二1;addy3<=0;endelsebeginaddx3<=0;addy3<=1;endif(y3[15]==0)beginaddx4<=1;addyd<=0;endelsebeginaddx4<=0;addy4<=1;endif(y4[15]==0)beginaddx5addy5<=<=1;0;endelsebeginaddx5<=0;endaddy5<

5、=1;if(y5[15]==0)beginaddx6<=1;addy6〈=0;endelsebeginaddx6<=0;addy6<=1;endif(y6[15]——0)beginaddx7<=1;addy7<=0;endelsebeginaddx7<=0;addy7<=1;endif(y7[15]==0)beginaddx8<=1;addy8<=0;endelsebeginaddx8<=0;addy8〈=1;endend//第1次迭代模块addandsubaddandsublx(.A(xtemp),.B({ytemp[15

6、],ytemp[15:1]}),.ADD(addxl),•Q(xl),.CLK(clk));addandsubaddandsubly(•A(ytemp),•B({xtemp[15],xtemp[15:1]}),.ADD(addyl),.Q(yl),.CLK(clk));//第2次迭代模块addandsubaddandsub2x(.A(xl),.B({{2{yl[15]}},yl[15:2n),.ADD(addx2),.Q(x2),.CLK(clk));addandsubaddandsub2y(•八(yl),.B({{2{xl

7、[15]}},xl[15:2]}),•ADD(addy2),.Q(y2),.CLK(clk));//第3次迭代模块addandsubaddandsub3x(.A(x2),.B({{3{y2[15]}},y2[15:3]}),.ADD(addx3),.Q(x3),.CLK(clk));addandsubaddandsub3y(.A(y2),.B({{3{x2[15]}},x2[15:3]}),.ADD(addy3),.Q(y3),.CLK(clk));//第4次迭代模块addandsubaddandsub4x(.A(x3),•

8、B({{4{y3[15]}},y3[15:4]}),.ADD(addx4),.Q(x4),.CLK(clk));addandsubaddandsuMy(•A(y3),.B({{4{x3[15]}},x3[15:4]}),.ADD(addy4),.Q(y4),.CLK(clk));//第5次

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。