SpiLinesMuxer.v 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. module SpiLinesMuxer (
  2. input SsR_i,
  3. input SsQ_i,
  4. input SckR_i,
  5. input SckQ_i,
  6. input Mosi0R_i,
  7. input Mosi0Q_i,
  8. input ChipSelFpga_i,
  9. input ChipSelFlash_i,
  10. input Assel_i,
  11. input SpiMode_i,
  12. output Ss_o,
  13. output SsFlash_o,
  14. output Sck_o,
  15. output Mosi0_o
  16. );
  17. //================================================================================
  18. // REG/WIRE
  19. //================================================================================
  20. wire ssMuxed;
  21. wire sckMuxed;
  22. wire mosi0Muxed;
  23. //================================================================================
  24. // ASSIGNMENTS
  25. //================================================================================
  26. assign sckMuxed = (SpiMode_i) ? SckQ_i : SckR_i;
  27. assign ssMuxed = (SpiMode_i) ? SsQ_i : SsR_i;
  28. assign mosi0Muxed = (SpiMode_i) ? Mosi0Q_i : Mosi0R_i;
  29. assign Ss_o = (Assel_i) ? (ChipSelFpga_i ? ssMuxed : 1'b1) : ChipSelFpga_i;
  30. assign SsFlash_o = (Assel_i) ? (ChipSelFlash_i ? ssMuxed:1'b1) : ChipSelFlash_i;
  31. //================================================================================
  32. // CODING
  33. //================================================================================
  34. endmodule