module cordic(clk, phi, cos, sin);
parameter W = 13, W_Z = 14;
input
clk;
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)begin
x[0] <= 13'h4D;
// 修正CORDIC算法的比例因子,An的倒数
y[0] <= 13'h00;
z[0] <= phi;
// 旋转45度
if(z[0][W_Z-1]) begin
x[1] <= x[0] + y[0];
y[1] <= y[0] - x[0];
z[1] <= z[0] + 14'h65;