(毕竟新手,请各位不吝赐教)
因为FPGA计算反正切可以用IP核进行,但是IP核需要输入二进制小数,一般我们得到的数都是十进制数,所以要先进行一些处理:
1:把十进制数变成浮点数
2:进行浮点数除法,除以相对应的位数最大值以便得到小数,比如说8位的就除以255。
3:进行反正切运算
4:如果需要转换为角度需要把浮点数转换为定点数之后乘以255.
以下为程序:
module float_3(
CLK,
data_in_1,
data_in_2,
data_out_1,
data_out_2,
data_dividend_1,
data_dividend_2,
data_divisor,
cnt,
CE_1,
CE_2,
nRESET,
phase_out
);
input CLK,nRESET;
input [31:0]data_in_1,data_in_2;
output [31:0]data_out_1,data_out_2,data_dividend_1,data_dividend_2,data_divisor,phase_out;
output reg [7:0]cnt;
output reg CE_1,CE_2;
always@(posedge CLK or negedge nRESET)
begin
if(!nRESET)
begin
cnt <= 8'd0;
CE_1 <= 8'd0;
CE_2 <= 8'd0;
end
else
begin
if(cnt == 8'd15)