| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Xilinx FIFO IP核的例化和使用(含代码实例) -> 正文阅读 |
|
[网络协议]Xilinx FIFO IP核的例化和使用(含代码实例) |
? ? ? ? 使用FPGA进行数据传输处理时,数据缓存是很关键的部分。FIFO作为一种简单的缓存方案,在FPGA开发中具有广泛的应用。 ? ? ? ? Xilinx为我们提供的FIFO IP核是一种先进先出(FIFO)内存队列,例化后,开发人员可自定义宽度、深度、状态标志、内存类型和写入/读取端口纵横比。FIFO利用顺序存储和检索的工作方式,可以帮助开发人员实现少量数据缓存、跨时钟处理、位宽转换等功能。 本文分为三部分
一、IP核例化step1: 点击vivado左侧列表中的 “IP catalog” 进入IP目录,点击搜索框输入“fifo”,选择“FIFO Generator”。 ?step 2:??首先对fifo命名,可根据深度和位宽作为命名方式。在“Basic”界面中选择例化的fifo类型,若FIFO外接AXI接口,可在接口选择时选择AXI相关,由于作者无相关需求,且为了使用的普遍性,本文故只介绍常用的“Native”功能。 在“ Fifo Implementation” 中选择FIFO类型,若FIFO使用同频时钟,则选择common相关;若使用不同时钟,则选择independent相关。 其中“Block RAM”称为块RAM,“Distributed RAM”为分布式RAM,其区别在于Block ram由一定数量固定大小的存储块构成的,使用BRAM资源不占用额外的逻辑资源,并且速度快。分布式RAM利用查找表LUT作为存储器, 既可以实现芯片内部存储,又能提高资源利用率。实现大规模的存储器会占用大量的LUT,可用来实现逻辑的查找表就会减少。故在需要小规模存储器时,使用这种分布式RAM。根据实验跨时钟的需要, 本实验选择"Independent Clocks Block RAM ".
?Step 3:? "Native ports" 界面配置, 可在此界面进行读模式选择, 当选择 "Standard FIFO"标准读取操作在读请求的下一个时钟周期输出数据。若选择"First Word Fall Through" ,则在读请求的本时钟周期输出数据。 " write width" 表示写入数据位宽 ;??"write? Depth" 表示写入数据深度, 即FIFO中能写入多少个对应位宽的数据; "Read Width" 表示读数据位宽, " Read Depth" 根据前三个参数计算得出,无需自行填入?。其他参数选择默认配置即可。 ??Step 4:?? 若无其他开发要求, "Status Flags"? "Data Counts" 选择默认配置即可,点击"OK", 之后一直保持默认操作点击"OK", 直到弹出"Generate ouput product" , 继续点击"OK" 即可完成FIFO IP核的例化操作。 ?二、IP核调用? ? ? ? 找到到工程路径下,找到IP的保存路径, 打开?.veo文件, 将文档中提供的例化范例直接拷贝到工程中即可完成 IP核的调用过程。 三、IP核端口理解? ? ? ? 下图是官方数据手册中提供的Native型接口的FIFO端口连接图,图中上班部分是基础例化后形成的端口,下半部分为可选功能,本文只做基数部分的叙述,如有其他功能需求,请阅读数据手册继续理解,各端口解释如下表。
四、IP核使用? ? ??Independent Clocks Block RAM IP核的简单使用代码和仿真运行结果如下, 需要可自取。文章包含了以下三个文件: fifo_test_top.v:工程的top,用于例化IP,生成读逻辑; fifo_data_in.v:用于构造仿真输入数据,生成写逻辑; fifo_test_tb.v:仿真文件,用于生成时钟和复位。
? ? ? ? ?若拷贝了以上程序仍然无法调试成功, 可下载"保姆" 调试包, 包含了以上提到的三个.v文件和例化后的FIFO IP文件夹,以及 FIFO的官方使用手册--pg057-fifo-generator.pdf。 https://download.csdn.net/download/qq_37203760/86762497 说明:?"保姆" 调试包中的程序与文章中完全一样,所以还是希望大家能参照文章自主调试,加油! "保姆" 调试包使用方法: 1. 点击“Add Sources”-"Add or create design sources"将fifo_data_in.v、fifo_test_top.v和fifo_32_4096_16.xci导入已建好的工程中。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:18:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |