引言
在前面的文章中,我们已经对FIFO的基本设计思路做了简单的介绍,并且对异步FIFO进行了简单的Verilog实现,具体介绍见链接:同步FIFO与异步FIFO的基本原理,异步FIFO的Verilog实现,下面我们基于如前所述的FIFO基本原理,利用Verilog代码对同步FIFO进行了一个简单的代码实现,并进行了简单的仿真测试。
1、实现过程
同步FIFO的设计过程中主要有如下几个注意事项:
- FIFO深度的计算
- FIFO满空标志的产生
解决好如上所述的几个问题后,同步FIFO的实现就非常简单了,下面直接贴代码。
Sync_FIFO.v
`timescale 1ns/1ps
module Sync_FIFO #(
//FIFO参数定义
parameter data_width = 16,// FIFO宽度
parameter data_depth = 256,// FIFO深度
parameter address_width = 8 // 地址宽度,对于深度为2^n的FIFO,需要的读/写指针位宽为(n+1)位,多的一位作为折返标志位
)(
//system signals
input clk,
input rst_n,
input write_en,//