FifoController.v 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 14:12:30 06/03/2020
  7. // Design Name:
  8. // Module Name: WinParameters
  9. // Project Name:
  10. // Target Devices:
  11. // Tool versions:
  12. // Description:
  13. //
  14. // Dependencies: kek
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //
  21. //////////////////////////////////////////////////////////////////////////////////
  22. module FifoController
  23. #(
  24. parameter TxInPack = 200,
  25. parameter WorkTimeCycles = 404000
  26. // parameter WorkTimeCycles = 20000
  27. )
  28. (
  29. input Clk_i,
  30. input Rst_i,
  31. input PpiBusy_i,
  32. input DspReadyForRx_i,
  33. input MeasDataVal_i,
  34. input FullFlag_i,
  35. input EmptyFlag_i,
  36. output MeasDataVal_o,
  37. output reg WrEn_o,
  38. output RdEn_o
  39. );
  40. //================================================================================
  41. // REG/WIRE
  42. //================================================================================
  43. reg rdEn;
  44. //================================================================================
  45. // ASSIGNMENTS
  46. //================================================================================
  47. assign MeasDataVal_o = rdEn&(!PpiBusy_i);
  48. assign RdEn_o = rdEn&(!PpiBusy_i);
  49. //================================================================================
  50. // CODING
  51. //================================================================================
  52. always @(posedge Clk_i) begin
  53. if (!Rst_i) begin
  54. if (MeasDataVal_i) begin
  55. if (!FullFlag_i) begin
  56. WrEn_o <= 1'b1;
  57. end else begin
  58. WrEn_o <= 1'b0;
  59. end
  60. end else begin
  61. WrEn_o <= 1'b0;
  62. end
  63. end else begin
  64. WrEn_o <= 1'b0;
  65. end
  66. end
  67. always @(posedge Clk_i) begin
  68. if (!Rst_i) begin
  69. if (!DspReadyForRx_i) begin
  70. if (!PpiBusy_i) begin
  71. if (!EmptyFlag_i) begin
  72. rdEn <= 1'b1;
  73. end else begin
  74. rdEn <= 1'b0;
  75. end
  76. end else begin
  77. rdEn <= 1'b0;
  78. end
  79. end else begin
  80. rdEn <= 1'b0;
  81. end
  82. end else begin
  83. rdEn <= 1'b0;
  84. end
  85. end
  86. endmodule