异步FIFO实现

异步FIFO实现

	module fifo_16x16(
				  //fifo write
				  wr_clk,
				  wr_en,
				  almost_full,
				  full,
				  wr_data,
	
				  //fifo read
				  rd_clk,
				  rd_en,
				  almost_empty,
				  empty,
				  rd_data,
		
				  //reset
				  wr_reset,
				  rd_reset
				);
	
	//***************************************************************************************************
	//                                             
	//    Parameter DECLARATION                     
	//                                             
	//***************************************************************************************************
	parameter ADDR_WIDTH	=	4	;
	parameter DATA_WIDTH	=	16	;
	parameter ALMOST_FULL_GAP	=	3	;//离满还有 3 时,almost_full有效
	parameter ALMOST_EMPTY_GAP	=	3	;//离满还有 3 时,almost_empty有效
	parameter FIFO_DEEP	=	16	;
	// *************************************************************************************************
	//                                             
	//    INPUT / OUTPUT DECLARATION               
	//                                             
	// *************************************************************************************************
	input wr_reset												;//FIFO写时钟下的复位信号
	input wr_clk												;//写时钟
	input wr_en													;//写使能
	input [DATA_WIDTH-1:0] wr_data								;//写数据
	output almost_full											;//将满信号
	output full													;//满信号
	
	input rd_reset												;//FIFO读时钟下的复位信号
	input rd_clk												;//读时钟
	input rd_en													;//读使能
	output [DATA_WIDTH-1:0] rd_data								;//读数据
	output almost_empty											;//将空信号
	output empty												;//空信号
	// *************************************************************************************************
	//                                             
	//    WIRE DECLARATION               
	//                                             
	// *************************************************************************************************
	wire [ADDR_WIDTH-1:0] wr_addr								;//FIFO写地址
	wire [ADDR_WIDTH-1:0] rd_addr								;//FIFO读地址
	wire [DATA_WIDTH-1:0] data_out_temp							;//FIFO读出地址
	reg  [ADDR_WIDTH:0] wr_gap									;//写指针和读指针之间的间隔
	reg  [ADDR_WIDTH:0] rd_gap									;//读指针和写指针之间的间隔
	// *************************************************************************************************
	//                                             
	//    REGISTER DECLARATION               
	//                                             
	// *************************************************************************************************
	wire [DATA_WIDTH-1:0
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值