CORDIC算法基于FPGA的信号发生器设计。

2019-03-25 09:14发布

我做一个CORDIC算法产生正弦波的程序,用Q2编写,但是modelsim能仿真出来正弦波波形,但是signaltap抓的波形是上下相反的,一直找不到原因,希望高手能帮帮忙,谢谢啦! 下面是我的程序: module NCO(clk,rst_n,ena,fre_chtr,pha_chtr,sin_out_r,cos_out_r,eps_out,da_clk,da_mode);
 
  parameter DATA_WIDTH=28;
  input                   clk;
  input                   rst_n;
  input                   ena;
  input  [DATA_WIDTH-1:0] fre_chtr;
  input  [DATA_WIDTH-1:0] pha_chtr;
 
  output [9:0] sin_out_r;
  output [9:0] cos_out_r;
  output [DATA_WIDTH-1:0] eps_out;
  output da_clk;          //D/A时钟
  output da_mode;          //D/A数据模式选择  
  wire  [DATA_WIDTH-1:0] cos_out;
  wire [DATA_WIDTH-1:0] sin_out;
  reg [DATA_WIDTH-1:0] phase_in;
  reg [DATA_WIDTH-1:0] fre_chtr_reg;
 
 
  assign da_mode = 1'b0;                  //D/A数据模式选择以二进制输入                         
  assign da_clk = clk;           //D/A时钟输出
          
  always@(posedge clk or negedge rst_n)
  begin
       if(!rst_n)
         fre_chtr_reg<=28'd0;
       else
         if(ena)
           begin
                fre_chtr_reg<=28'd5368709+fre_chtr_reg;  //fre_chtr_reg;  
           end
  end
 
  always@(posedge clk or negedge rst_n)
  begin
       if(!rst_n)
         phase_in<=28'd0;
       else
         if(ena)
           begin
                phase_in<=pha_chtr+fre_chtr_reg;
           end
  end    
 
  sincos u(.clk(clk),.rst_n(rst_n),.ena(ena),.phase_in(phase_in),.sin_out(sin_out),.cos_out(cos_out),.eps(eps_out)); assign sin_out_r=sin_out[27:18];
assign cos_out_r=cos_out[27:18];         
endmodule   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。