Cdc.v 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. module Cdc#(
  2. parameter CmdRegWidth = 32,
  3. parameter AddrRegWidth = 12
  4. )(
  5. input Clk_i,
  6. input [CmdRegWidth-1:0] Spi0CtrlReg_i,
  7. input [CmdRegWidth-1:0] Spi0ClkReg_i,
  8. input [CmdRegWidth-1:0] Spi0CsDelayReg_i,
  9. input [CmdRegWidth-1:0] Spi0CsCtrlReg_i,
  10. input [CmdRegWidth-1:0] Spi0TxFifoCtrlReg_i,
  11. input [CmdRegWidth-1:0] Spi0RxFifoCtrlReg_i,
  12. input [CmdRegWidth-1:0] AnsData_i,
  13. output reg [CmdRegWidth-1:0] Spi0CtrlRR_o,
  14. output reg [CmdRegWidth-1:0] Spi0ClkRR_o,
  15. output reg [CmdRegWidth-1:0] Spi0CsDelayRR_o,
  16. output reg [CmdRegWidth-1:0] Spi0CsCtrlRR_o,
  17. output reg [CmdRegWidth-1:0] Spi0TxFifoCtrlRR_o,
  18. output reg [CmdRegWidth-1:0] Spi0RxFifoCtrlRR_o,
  19. output reg [CmdRegWidth-1:0] AnsDataRR_o
  20. );
  21. reg [CmdRegWidth-1:0] Spi0CtrlR;
  22. reg [CmdRegWidth-1:0] Spi0ClkRegR;
  23. reg [CmdRegWidth-1:0] Spi0CsDelayR;
  24. reg [CmdRegWidth-1:0] Spi0CsCtrlR;
  25. reg [CmdRegWidth-1:0] Spi0TxFifoCtrlR;
  26. reg [CmdRegWidth-1:0] Spi0RxFifoCtrlR;
  27. reg [CmdRegWidth-1:0] ansDataR;
  28. reg [CmdRegWidth-1:0] Spi0CtrlRR;
  29. reg [CmdRegWidth-1:0] Spi0ClkRegRR;
  30. reg [CmdRegWidth-1:0] Spi0CsDelayRR;
  31. reg [CmdRegWidth-1:0] Spi0CsCtrlRR;
  32. reg [CmdRegWidth-1:0] Spi0TxFifoCtrlRR;
  33. reg [CmdRegWidth-1:0] Spi0RxFifoCtrlRR;
  34. reg [CmdRegWidth-1:0] ansDataRR;
  35. always @(posedge Clk_i) begin
  36. Spi0CtrlR <= Spi0CtrlReg_i;
  37. Spi0ClkRegR <= Spi0ClkReg_i;
  38. Spi0CsDelayR <= Spi0CsDelayReg_i;
  39. Spi0CsCtrlR <= Spi0CsCtrlReg_i;
  40. Spi0TxFifoCtrlR <= Spi0TxFifoCtrlReg_i;
  41. Spi0RxFifoCtrlR <= Spi0RxFifoCtrlReg_i;
  42. ansDataR <= AnsData_i;
  43. Spi0CtrlRR <= Spi0CtrlR;
  44. Spi0ClkRegRR <= Spi0ClkRegR;
  45. Spi0CsDelayRR <= Spi0CsDelayR;
  46. Spi0CsCtrlRR <= Spi0CsCtrlR;
  47. Spi0TxFifoCtrlRR <= Spi0TxFifoCtrlR;
  48. Spi0RxFifoCtrlRR <= Spi0RxFifoCtrlR;
  49. ansDataRR <= ansDataR;
  50. Spi0CtrlRR_o <=Spi0CtrlRR;
  51. Spi0ClkRR_o <= Spi0ClkRegRR;
  52. Spi0CsDelayRR_o <= Spi0CsDelayRR;
  53. Spi0CsCtrlRR_o <= Spi0CsCtrlRR;
  54. Spi0TxFifoCtrlRR_o <= Spi0TxFifoCtrlRR;
  55. Spi0RxFifoCtrlRR_o <= Spi0RxFifoCtrlRR;
  56. AnsDataRR_o <= ansDataRR;
  57. end
  58. endmodule