设计代码部分(采用count
作为计数):
以下代码:
module sync_fifo
#(
parameter DATA_WIDTH = 8, /*data width 8bit*/
parameter ADDR_WIDTH = 3, /*addr width 3bit*/
parameter RAM_DEEPTH = (1<<ADDR_WIDTH) /*ram save data num 2^3=8*/
)
(
input rst_n,
input clk,
input wr_en,
input [DATA_WIDTH-1:0] wdata,
output full,
input rd_en,
output reg [DATA_WIDTH-1:0] rdata,
output empty
);
reg [ADDR_WIDTH-1:0] wr_addr;
reg [ADDR_width-1:0] rd_addr;
reg [DATA_WIDTH-1:0] fifo_ram[RAM_DEEPTH-1:0];
reg [ADDR_WIDTH:0] count;
integer i;
/*write data to fifo_ram*/
always @(posedge clk or negedge rst_n) begin
if(!rst_n) begin
for(i=0;i<RAM_DEEPTH;i=i+1)
fifo_ram[i] <= {
D