3 // USRP - Universal Software Radio Peripheral
5 // Copyright (C) 2007 Corgan Enterprises LLC
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 2 of the License, or
10 // (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA
22 module cordic_nco(clk_i,rst_i,ena_i,strobe_i,ampl_i,freq_i,phs_i,data_i_o,data_q_o);
32 output [15:0] data_i_o;
33 output [15:0] data_q_o;
36 wire [31:0] phase = phase_reg + phs_i;
39 always @(posedge clk_i)
44 phase_reg <= phase_reg + freq_i;
47 assign ampl = ena_i ? ampl_i : 16'b0;
50 (.clock(clk_i),.reset(rst_in),.enable(strobe_i),
51 .xi(ampl),.yi(16'b0),.zi(phase[31:16]),
52 .xo(data_i_o),.yo(data_q_o),.zo());
54 endmodule // cordic_nco