module SpiClkMux ( input Rst_i, input clkCh, input clkOutMMCM, input clkMan, output SpiClk_o ); //================================================================================ // REG/WIRE //================================================================================ reg spiClkReg; wire spiClk; //================================================================================ // ASSIGNMENTS //=============================================================================== assign spiClk = spiClkReg; //================================================================================ // CODING //================================================================================ always @(*) begin if (Rst_i) begin spiClkReg = 0; end else begin if (clkCh) begin spiClkReg = clkOutMMCM; end else begin spiClkReg = clkMan; end end end BUFG BUFG_inst ( .O(SpiClk_o), // 1-bit output: Clock output .I(spiClk) // 1-bit input: Clock input ); endmodule