diff options
Diffstat (limited to 'fpga/usrp3/lib/rfnoc/cmul.v')
-rw-r--r-- | fpga/usrp3/lib/rfnoc/cmul.v | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/fpga/usrp3/lib/rfnoc/cmul.v b/fpga/usrp3/lib/rfnoc/cmul.v new file mode 100644 index 000000000..1acb1a8cc --- /dev/null +++ b/fpga/usrp3/lib/rfnoc/cmul.v @@ -0,0 +1,23 @@ +// +// Copyright 2014 Ettus Research LLC +// Copyright 2018 Ettus Research, a National Instruments Company +// +// SPDX-License-Identifier: LGPL-3.0-or-later +// +// This block exists only to wrap the Xilinx IP which has a different interface +// Xilinx puts Q in the high bits, I in the low bits, and inverts reset + +module cmul + (input clk, input reset, + input [31:0] a_tdata, input a_tlast, input a_tvalid, output a_tready, + input [31:0] b_tdata, input b_tlast, input b_tvalid, output b_tready, + output [63:0] o_tdata, output o_tlast, output o_tvalid, input o_tready); + + complex_multiplier complex_multiplier + (.aclk(clk), .aresetn(~reset), + .s_axis_a_tdata({a_tdata[15:0], a_tdata[31:16]}), .s_axis_a_tlast(a_tlast), .s_axis_a_tvalid(a_tvalid), .s_axis_a_tready(a_tready), + .s_axis_b_tdata({b_tdata[15:0], b_tdata[31:16]}), .s_axis_b_tlast(b_tlast), .s_axis_b_tvalid(b_tvalid), .s_axis_b_tready(b_tready), + .s_axis_ctrl_tdata(8'd0), .s_axis_ctrl_tvalid(1'b1), .s_axis_ctrl_tready(), + .m_axis_dout_tdata({o_tdata[31:0], o_tdata[63:32]}), .m_axis_dout_tlast(o_tlast), .m_axis_dout_tvalid(o_tvalid), .m_axis_dout_tready(o_tready)); + +endmodule // cmul |