`timescale 1ns / 1ps module FifoController ( input Clk_i, input ClkPpiOut_i, input Rst_i, input PpiBusy_i, input MeasDataVal_i, input FullFlag_i, input EmptyFlag_i, output MeasDataVal_o, output reg WrEn_o, output RdEn_o ); //================================================================================ // REG/WIRE //================================================================================ reg rdEn; //================================================================================ // ASSIGNMENTS //================================================================================ assign MeasDataVal_o = rdEn&(!PpiBusy_i); assign RdEn_o = rdEn&(!PpiBusy_i); //================================================================================ // CODING //================================================================================ always @(posedge Clk_i) begin if (!Rst_i) begin if (MeasDataVal_i) begin if (!FullFlag_i) begin WrEn_o <= 1'b1; end else begin WrEn_o <= 1'b0; end end else begin WrEn_o <= 1'b0; end end else begin WrEn_o <= 1'b0; end end always @(posedge Clk_i) begin if (!Rst_i) begin if (!PpiBusy_i) begin if (!EmptyFlag_i) begin rdEn <= 1'b1; end else begin rdEn <= 1'b0; end end else begin rdEn <= 1'b0; end end else begin rdEn <= 1'b0; end end endmodule