cordic算法verilog实现(简单版)

cordic算法verilog实现(简单版)(转载)module cordic(clk, phi, cos, sin);parameter w = 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 @(posedge clk)beginx[0] <= 13'h4d;// 修正cordic算法的比例因子,an的倒数y[0] <= 13'h00;z[0] <= phi;// 旋转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;endelse beginx[1] <= x[0] - y[0];y[1] <= y[0] + x[0];z[1] <= z[0] - 14'h65;end// 旋转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] + 14'h3b;endelse 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] - 14'h3b;end// 旋转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;endelse 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;end// 旋转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;endelse 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;end// 旋转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;endelse 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;end// 旋转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;endelse 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;end// 旋转0.90度if(z[6][w_z-1])beginx[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;endelse beginx[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// 旋转0.45度if(z[7][w_z-1])beginx[8] <= x[7] + {{7{y[7][w-1]}}, y[7][w-1:7]};y[8] <= y[7] - {{7{x[7][w-1]}}, x[7][w-1:7]};endelse beginx[8] <= x[7] - {{7{y[7][w-1]}}, y[7][w-1:7]};y[8] <= y[7] + {{7{x[7][w-1]}}, x[7][w-1:7]};endcos <= x[8];sin <= y[8];endendmodule

让自动驾驶消除汽车弊端
FPGA协处理技术介绍及进展
ROHM Solution Simulator工具栏的功能和基本操作
嵌入式软件运行剖面建模是怎样的
SycoTec电主轴品牌丨金属铝合金钻孔应用案例
cordic算法verilog实现(简单版)
怎样去使用ChatGPT呢?
传感器的应用领域和需求量
使用运算放大器的维恩桥振荡器设计
基于TX315A的数字编码无线遥控开关
电池管理系统的温度测量
三星推兼容Android增强现实框架的SamsungXR
鲲鹏920和苹果M1性能对比
飞思卡尔推出适用于多标准小型蜂窝基站的基带至天线参考设计
Arm推出Neoverse处理器家族 大有对标Intel之势
热继电器的选择_热继电器的故障与处理
丢失数字货币的问题和防止方法有哪些
防御电磁波干扰 滙嘉智能床垫主打光纤感测
博世将与微软合作开发汽车软件平台
800兆赫、4:1模拟多路复用器ADV3222