MeasDataFifoWrapper.v 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. `timescale 1ns / 1ns
  2. module MeasDataFifoWrapper
  3. #(
  4. parameter DataWidth = 32,
  5. parameter ChNum = 4
  6. )
  7. (
  8. input Clk_i,
  9. input Rst_i,
  10. input PpiBusy_i,
  11. input StartMeasDsp_i,
  12. input DspReadyForRx_i,
  13. input [DataWidth-1:0] MeasNum_i,
  14. input [DataWidth*(ChNum*2)-1:0] MeasDataBus_i,
  15. input MeasDataVal_i,
  16. output [DataWidth*(ChNum*2)-1:0] MeasDataBus_o,
  17. output MeasDataVal_o
  18. );
  19. //================================================================================
  20. // REG/WIRE
  21. //================================================================================
  22. wire fullFlag;
  23. wire emptyFlag;
  24. wire wrEn;
  25. wire rdEn;
  26. reg startMeasDspReg;
  27. wire startMeasDspNeg;
  28. wire startMeasDspPos;
  29. reg ppiBusyReg;
  30. reg rstFromDsp;
  31. wire trueRstFromDsp;
  32. integer i;
  33. reg [0:0] rstFromDspPipe [49:0];
  34. //================================================================================
  35. // ASSIGNMENTS
  36. //================================================================================
  37. assign MeasDataVal_o = rdEn;
  38. assign startMeasDspPos = (StartMeasDsp_i&(!startMeasDspReg));
  39. //================================================================================
  40. // CODING
  41. //================================================================================
  42. always @(posedge Clk_i) begin
  43. if (!Rst_i) begin
  44. startMeasDspReg <= StartMeasDsp_i;
  45. end else begin
  46. startMeasDspReg <= 1'b0;
  47. end
  48. end
  49. MeasDataFifo MeasDataFifoInst
  50. (
  51. .clk (Clk_i),
  52. .srst (Rst_i|startMeasDspPos),
  53. .din (MeasDataBus_i),
  54. .wr_en (wrEn),
  55. .rd_en (rdEn),
  56. .dout (MeasDataBus_o),
  57. .full (fullFlag),
  58. .empty (emptyFlag)
  59. );
  60. FifoController FifoControllerInst
  61. (
  62. .Clk_i (Clk_i),
  63. .Rst_i (Rst_i|startMeasDspPos),
  64. .DspReadyForRx_i (DspReadyForRx_i),
  65. .PpiBusy_i (PpiBusy_i),
  66. .MeasDataVal_i (MeasDataVal_i),
  67. .FullFlag_i (fullFlag),
  68. .EmptyFlag_i (emptyFlag),
  69. .MeasDataVal_o (),
  70. .WrEn_o (wrEn),
  71. .RdEn_o (rdEn)
  72. );
  73. endmodule