当前位置: 代码迷 >> 综合 >> FIFO IP核学习笔记
  详细解决方案

FIFO IP核学习笔记

热度:27   发布时间:2023-11-14 00:40:30.0

目录

  • 1 FIFO简介
  • 2 使用Quartus软件创建FIFO ip核
    • 2.1 创建一个空工程
    • 2.2 打开 MegaWizard Plug-In Manager
    • 2.3 创建一个空的IP核
    • 2.4 创建FIFO
    • 2.4 FIFO配置
      • 2.4.1 位宽深度设置
      • 2.4.2 亚稳态选择
      • 2.4.3 标志位
      • 2.4.4 请求模式
      • 2.4.5 保护功能
    • 2.5 EDA 配置
    • 2.6 总结页面
    • 2.7 创建成功
  • 3 FIFO 编程应用

1 FIFO简介

英文名称:First-in-first-out
功能:FIFO一般用于不同时钟域之间的数据传输(如下图所示),也常用于实现不同位宽接口的数据匹配。

在这里插入图片描述

2 使用Quartus软件创建FIFO ip核

2.1 创建一个空工程

在这里插入图片描述

2.2 打开 MegaWizard Plug-In Manager

在这里插入图片描述

2.3 创建一个空的IP核

在这里插入图片描述

2.4 创建FIFO

在这里插入图片描述

2.4 FIFO配置

2.4.1 位宽深度设置

在这里插入图片描述

2.4.2 亚稳态选择

在这里插入图片描述

2.4.3 标志位

在这里插入图片描述

2.4.4 请求模式

在这里插入图片描述

2.4.5 保护功能

在这里插入图片描述

2.5 EDA 配置

在这里插入图片描述

2.6 总结页面

在这里插入图片描述

2.7 创建成功

在这里插入图片描述

3 FIFO 编程应用

FIFO 例化模块

fifo	fifo_inst (.data ( data_sig ),       // 写入FIFO的数据.rdclk ( rdclk_sig ),     // 读时钟.rdreq ( rdreq_sig ),     // 读请求.wrclk ( wrclk_sig ),     // 写时钟.wrreq ( wrreq_sig ),     // 写请求.q ( q_sig ),             // 从FIFO输出的数据.rdempty ( rdempty_sig ), // 读空信号.rdfull ( rdfull_sig ),   // 读满信号.rdusedw ( rdusedw_sig ), // 读侧数据量.wrempty ( wrempty_sig ), // 写空信号.wrfull ( wrfull_sig ),   // 写满信号.wrusedw ( wrusedw_sig )  // 写侧数据量);