SpiLinesMuxer.v 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //////////////////////////////////////////////////////////////////////////////////
  2. // Company: TAIR
  3. // Engineer:
  4. //
  5. // Create Date: 10/30/2023 11:24:31 AM
  6. // Design Name:
  7. // Module Name: SpiLinesMuxer
  8. // Project Name: S5443_V3_FPGA3
  9. // Target Devices: BOARD: BY5443v3. FPGA: xc7s25csga225-2
  10. // Tool Versions:
  11. // Description: This module multiplexing Spi output signals based on an settings.
  12. //
  13. // Dependencies:
  14. //
  15. // Revision:
  16. // Revision 1.0 - File Created
  17. // Additional Comments:
  18. //
  19. ////////////////////////////////////////////////////////////////////////////////////
  20. module SpiLinesMuxer (
  21. input SsR_i,
  22. input SsQ_i,
  23. input SckR_i,
  24. input SckQ_i,
  25. input Mosi0R_i,
  26. input Mosi0Q_i,
  27. input ChipSelFpga_i,
  28. input ChipSelFlash_i,
  29. input Assel_i,
  30. input SpiMode_i,
  31. output Ss_o,
  32. output SsFlash_o,
  33. output Sck_o,
  34. output Mosi0_o
  35. );
  36. //================================================================================
  37. // REG/WIRE
  38. //================================================================================
  39. wire ssMuxed;
  40. wire sckMuxed;
  41. wire mosi0Muxed;
  42. //================================================================================
  43. // ASSIGNMENTS
  44. //================================================================================
  45. assign sckMuxed = (SpiMode_i) ? SckQ_i : SckR_i;
  46. assign ssMuxed = (SpiMode_i) ? SsQ_i : SsR_i;
  47. assign mosi0Muxed = (SpiMode_i) ? Mosi0Q_i : Mosi0R_i;
  48. assign Ss_o = (Assel_i) ? (ChipSelFpga_i ? ssMuxed : 1'b1) : ChipSelFpga_i;
  49. assign SsFlash_o = (Assel_i) ? (ChipSelFlash_i ? ssMuxed:1'b1) : ChipSelFlash_i;
  50. assign Sck_o = sckMuxed;
  51. assign Mosi0_o = mosi0Muxed;
  52. endmodule