同步FIFO设计

本文介绍了同步FIFO的设计,使用dual port 16X8 RAM模块,并通过计数器进行空满判断。根据写地址和读地址的关系,详细解析了四种情况下的空(full)或满(empty)状态判断,包括最高位比较和地址循环的逻辑。
摘要由CSDN通过智能技术生成

同步FIFO设计

  1. dual port 16X8 RAM 模块设计
   module dual_port (
       write_clk,
       read_clk,
       write_en,
       read_en,
       write_data,
       read_data,
       write_addr,
       read_data
       );
      
      parameter  RAM_WIDTH   = 8;
      parameter  RAM_DEPTH   =16;
      parameter  ADDR_WIDTH = 4;       // 2^4 =16

      input                        write_clk;
      input                        read_clk;
      input                        write_en;
      input                        read_en;
      input  [RAM_WIDTH-1:0]       write_data;
      input  [ADDR_WIDTH-1:0]      write_addr;
      input  [ADDR_WIDTH-1:0]      read_addr;
      output [RAM_WIDTH-1:0]       read_data;
      
      reg    [RAM_WIDTH-1:0]       read_data;

      reg    [RAM_WIDTH-1:0]  memory [RAM_DEPTH-1:0]   //memory是一个16x8的存储体
      
      always@(posedge write clk) begin   //写数据部分
         if (write_en)
             memory [write_addr]  <= write_data;   //时序逻辑,非阻塞赋值
      end
      
      always@(posedge read clk) begin  //读数据部分
         if (read_en)
             read_data <= memory [read_addr];
      end
 endmodule
  1. 计数器Counter空满判断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值