跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

如何用Verilog实现FIFO?

大家好,我是顺亿,今天来和大家聊聊Verilog中FIFO的实现。

首先,我们来看看如何调用ISE中的FIFO IP核。

调用ISE中的FIFO

  • 选择芯片类型、封装、速度、仿真器和语言等。
  • 创建新的source文件,并将其放入design目录下。
  • 创建IP核的配置,确保与工程创建时一致。
  • 选择创建FIFO。
  • 选择FIFO的类型、时钟、内存类型、位宽、深度和标志信号。
  • 选择复位方式。
  • 将生成的IP核工程添加到ISE工程中,注意添加的IP核要选择xco文件。
  • 通过将instantiation文件直接复制到design文件中,完成FIFO接口的例化。

接下来,我们看看FIFO的设计文件和测试文件。

FIFO设计文件

`timescale 1ns / 1ps
module ex_ise_fifo(
    input    wire    sclk,
    input    wire    rst_n,
    input    wire  [7:0] data_in,
    input    wire    data_v,   //数据有效
    input    wire    r_flag,  //读fifo标志
    output   wire  [7:0] dout
    );

    // ... (代码内容省略) ...

endmodule

Testbench文件

`timescale 1ns/1ns
module tb_ex_ise_fifo;

    // ... (代码内容省略) ...

endmodule

最后,我们来看看如何进行时序仿真。

时序仿真

将256个数据写完之后,写使能信号w_en拉低,同时w_full信号拉高表示已写满。将256个数据读完之后,读使能信号r_en拉低,同时r_empty信号拉高表示已读空。

这就是今天要和大家分享的内容,希望能对大家有所帮助。更多信息,请关注趣航编程网(www.vqhf.com)。

——顺亿

相关文章