FIFO数据的读写,ISE联合modelsim仿真

FIFO数据的读写,ISE联合modelsim仿真_第1张图片

使用了最基础的读写使能信号,同时读写时钟是分开的,但是我给它们设置了一样的值,所以这里可以设置common CLK,要注意的是FIFO是高电平复位,这点要注意,不然可能会出现一开始full和empty都为1的情况。

module fifo_module(wr_clk,rd_clk,rst,din,data_out
    );

    input wr_clk;
    input rd_clk;
    input rst;
    input [7:0] din;
    output [7:0] data_out;
    reg  wr_en;
    reg  rd_en;
    wire full;
    wire empty;
     
  always @(posedge wr_clk or posedge rst)
    if(rst)begin
        wr_en <= 1'b0;
        rd_en <= 1'b0;
    end
    else begin
        if(!full && !rd_en)
            wr_en <= 1'b1;
        else if(!empty && !wr_en)
            rd_en <= 1'b1;
        else begin
            wr_en <= 0;
            rd_en <= 0;
        end
    end
    
     
fifo fifo_test (
  .rst(rst), // input rst//低电平复位
  .wr_clk(wr_clk), // input wr_clk
  .rd_clk(rd_clk), // input rd_clk
  .din(din), // input [7 : 0] din
  .wr_en(wr_en), // input wr_en
  .rd_en(rd_en), // input rd_en
  .dout(data_out), // output [7 : 0] dout
  .full(full), // output full
  .empty(empty) // output empty
);

你可能感兴趣的:(FPGA)