blob: 2fc55ee93917ae3a3eb275d8bd96e3bae68011bf [file] [log] [blame]
// Copyright 2020-2022 F4PGA Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: Apache-2.0
module af1024x36_1024x36 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
parameter WR_DATA_WIDTH = 36;
parameter RD_DATA_WIDTH = 36;
parameter UPAE_DBITS = 12'd10;
parameter UPAF_DBITS = 12'd10;
input clock0,clock1;
input PUSH,POP;
input [WR_DATA_WIDTH-1:0] DIN;
input Async_Flush;
output [RD_DATA_WIDTH-1:0] DOUT;
output Almost_Full,Almost_Empty;
output Full, Empty;
output Full_Watermark, Empty_Watermark;
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
)
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
.POP(POP),
.Push_Clk(clock0),
.Pop_Clk(clock1),
.Async_Flush(Async_Flush),
.Overrun_Error(Overrun_Error),
.Full_Watermark(Full_Watermark),
.Almost_Full(Almost_Full),
.Full(Full),
.Underrun_Error(Underrun_Error),
.Empty_Watermark(Empty_Watermark),
.Almost_Empty(Almost_Empty),
.Empty(Empty),
.DOUT(DOUT)
);
endmodule
module af2048x18_2048x18 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
parameter WR_DATA_WIDTH = 18;
parameter RD_DATA_WIDTH = 18;
parameter UPAE_DBITS = 12'd10;
parameter UPAF_DBITS = 12'd10;
input clock0,clock1;
input PUSH,POP;
input [WR_DATA_WIDTH-1:0] DIN;
input Async_Flush;
output [RD_DATA_WIDTH-1:0] DOUT;
output Almost_Full,Almost_Empty;
output Full, Empty;
output Full_Watermark, Empty_Watermark;
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
)
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
.POP(POP),
.Push_Clk(clock0),
.Pop_Clk(clock1),
.Async_Flush(Async_Flush),
.Overrun_Error(Overrun_Error),
.Full_Watermark(Full_Watermark),
.Almost_Full(Almost_Full),
.Full(Full),
.Underrun_Error(Underrun_Error),
.Empty_Watermark(Empty_Watermark),
.Almost_Empty(Almost_Empty),
.Empty(Empty),
.DOUT(DOUT)
);
endmodule
module af4096x9_4096x9 (DIN,PUSH,POP,clock0,clock1,Async_Flush,Almost_Full,Almost_Empty,Full,Empty,Full_Watermark,Empty_Watermark,Overrun_Error,Underrun_Error,DOUT);
parameter WR_DATA_WIDTH = 9;
parameter RD_DATA_WIDTH = 9;
parameter UPAE_DBITS = 12'd10;
parameter UPAF_DBITS = 12'd10;
input clock0,clock1;
input PUSH,POP;
input [WR_DATA_WIDTH-1:0] DIN;
input Async_Flush;
output [RD_DATA_WIDTH-1:0] DOUT;
output Almost_Full,Almost_Empty;
output Full, Empty;
output Full_Watermark, Empty_Watermark;
output Overrun_Error, Underrun_Error;
AFIFO_36K_BLK # (.WR_DATA_WIDTH(WR_DATA_WIDTH),.RD_DATA_WIDTH(RD_DATA_WIDTH),.UPAE_DBITS(UPAE_DBITS),.UPAF_DBITS(UPAF_DBITS)
)
FIFO_INST (
.DIN(DIN),
.PUSH(PUSH),
.POP(POP),
.Push_Clk(clock0),
.Pop_Clk(clock1),
.Async_Flush(Async_Flush),
.Overrun_Error(Overrun_Error),
.Full_Watermark(Full_Watermark),
.Almost_Full(Almost_Full),
.Full(Full),
.Underrun_Error(Underrun_Error),
.Empty_Watermark(Empty_Watermark),
.Almost_Empty(Almost_Empty),
.Empty(Empty),
.DOUT(DOUT)
);
endmodule