FifoCtrl.v 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. module FifoCtrl (
  2. input ToFifoTxWriteVal_i,
  3. input ToFifoTxReadVal_i,
  4. input ToFifoRxWriteVal_i,
  5. input ToFifoRxReadVal_i,
  6. input FifoTxFull_i,
  7. input FifoTxEmpty_i,
  8. input FifoRxFull_i,
  9. input FifoRxEmpty_i,
  10. output FifoTxWriteEn_o,
  11. output FifoTxReadEn_o,
  12. output FifoRxWriteEn_o,
  13. output FifoRxReadEn_o
  14. );
  15. reg FifoTxWriteEn;
  16. reg FifoTxReadEn;
  17. reg FifoRxWriteEn;
  18. reg FifoRxReadEn;
  19. // //================================================================================
  20. // // ASSIGNMENTS
  21. assign FifoTxWriteEn_o = FifoTxWriteEn;
  22. assign FifoTxReadEn_o = FifoTxReadEn;
  23. assign FifoRxWriteEn_o = FifoRxWriteEn;
  24. assign FifoRxReadEn_o = FifoRxReadEn;
  25. // //================================================================================
  26. always @(*) begin
  27. if (ToFifoTxWriteVal_i && ~FifoTxFull_i) begin
  28. FifoTxWriteEn = 1'b1;
  29. end
  30. else begin
  31. FifoTxWriteEn = 1'b0;
  32. end
  33. end
  34. always @(*) begin
  35. if (ToFifoTxReadVal_i && ~FifoTxEmpty_i) begin
  36. FifoTxReadEn = 1'b1;
  37. end
  38. else begin
  39. FifoTxReadEn = 1'b0;
  40. end
  41. end
  42. always @(*) begin
  43. if (ToFifoRxWriteVal_i && ~FifoRxFull_i) begin
  44. FifoRxWriteEn = 1'b1;
  45. end
  46. else begin
  47. FifoRxWriteEn = 1'b0;
  48. end
  49. end
  50. always @(*) begin
  51. if (ToFifoRxReadVal_i && ~FifoRxEmpty_i) begin
  52. FifoRxReadEn = 1'b1;
  53. end
  54. else begin
  55. FifoRxReadEn = 1'b0;
  56. end
  57. end
  58. // //================================================================================
  59. endmodule