66 lines
2.8 KiB
Coq
66 lines
2.8 KiB
Coq
|
//+FHDR--------------------------------------------------------------------------------------------------------
|
||
|
// Company:
|
||
|
//-----------------------------------------------------------------------------------------------------------------
|
||
|
// File Name : modout_mux.v
|
||
|
// Department :
|
||
|
// Author : PWY
|
||
|
// Author's Tel :
|
||
|
//-----------------------------------------------------------------------------------------------------------------
|
||
|
// Relese History
|
||
|
// Version Date Author Description
|
||
|
// 0.1 2024-05-13 PWY debug top-level
|
||
|
//-----------------------------------------------------------------------------------------------------------------
|
||
|
// Keywords :
|
||
|
//
|
||
|
//-----------------------------------------------------------------------------------------------------------------
|
||
|
// Parameter
|
||
|
//
|
||
|
//-----------------------------------------------------------------------------------------------------------------
|
||
|
// Purpose :
|
||
|
//
|
||
|
//-----------------------------------------------------------------------------------------------------------------
|
||
|
// Target Device:
|
||
|
// Tool versions:
|
||
|
//-----------------------------------------------------------------------------------------------------------------
|
||
|
// Reuse Issues
|
||
|
// Reset Strategy:
|
||
|
// Clock Domains:
|
||
|
// Critical Timing:
|
||
|
// Asynchronous I/F:
|
||
|
// Synthesizable (y/n):
|
||
|
// Other:
|
||
|
//-FHDR--------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
module modout_mux (
|
||
|
//system port
|
||
|
input clk // System Main Clock
|
||
|
,input rst_n // Spi Reset active low
|
||
|
//---------------from ctrl regfile------------------------------------
|
||
|
,input sel // 1'b0 --> mod modem data; 1'b1 --> mod nco data
|
||
|
//mod nco data
|
||
|
,input [15:0] sin
|
||
|
,input [15:0] cos
|
||
|
//mod modem data
|
||
|
,input [15:0] mod_data_i
|
||
|
,input [15:0] mod_data_q
|
||
|
,input mod_data_vld
|
||
|
//mux out data
|
||
|
,output [15:0] mux_data_i
|
||
|
,output [15:0] mux_data_q
|
||
|
,output mux_data_vld
|
||
|
);
|
||
|
|
||
|
wire [15:0] mux_data_i_w = sel ? sin : mod_data_i;
|
||
|
wire [15:0] mux_data_q_w = sel ? cos : mod_data_q;
|
||
|
wire mux_data_vld_w = sel ? 1'b1 : mod_data_vld;
|
||
|
|
||
|
`ifdef MODDOUT_MUX_REG
|
||
|
sirv_gnrl_dffr #(16) mux_data_i_dffr (mux_data_i_w , mux_data_i , clk, rst_n);
|
||
|
sirv_gnrl_dffr #(16) mux_data_q_dffr (mux_data_q_w , mux_data_q , clk, rst_n);
|
||
|
sirv_gnrl_dffr #(1 ) mux_data_vld_dffr (mux_data_vld_w, mux_data_vld, clk, rst_n);
|
||
|
`else
|
||
|
assign mux_data_i = mux_data_i_w ;
|
||
|
assign mux_data_q = mux_data_q_w ;
|
||
|
assign mux_data_vld = mux_data_vld_w ;
|
||
|
`endif
|
||
|
endmodule
|