Xilinx FIFO Generator 需注意非对称位宽

2023-12-23 07:48

本文主要是介绍Xilinx FIFO Generator 需注意非对称位宽,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Xilinx FIFO Generator 需注意非对称位宽

系列文章推荐

  1. Xilinx FIFO Generator 需要注意RST复位
  2. Xilinx FIFO Generator 需要注意Actual Depth
  3. Xilinx FIFO Generator 需注意非对称位宽
  4. Xilinx FIFO Generator 需要注意BRAMs的资源消耗

在FIFO的使用中,经常会涉及到非对称位宽的情况,比如输入位宽为32 bit,输出位宽为64 bit

Xilinx 的FIFO IP支持类似的操作(Altera的也支持)。

但是有些条件受限制,在没有仔细查看手册之前,不能想当然的认为什么样的比率都支持。

pg057-fifo-generator.pdf,Page114中,能获取到以下信息。

是否支持

非对称的比率是否支持受不同的RAM类型影响,如下表:
在这里插入图片描述

由表中可以看出Block RAMBuilt-in类型的RAM在独立时钟和共同时钟的条件下都是支持非对称位宽的, 其他的则不行;

比率可选

非对称比率值得是允许输入和输出FIFO的深度不同,支持的写入和读出比率为:

1:8,1:4,1:2,1:1,2:1,4:1,8:1;

比率可以在生成FIFO的Vivado IP Catalog的GUI界面,通过特殊选项进行选择(默认状态下是1:1);

1:88:1的比率都是可以选择的,而且输出的深度是根据输入的深度,位宽以及读出的位宽自动计算的。

读写操作

对于非对称比率的FIFO来说,FULL信号和EMPTY信号仅当一个完整的字(理解为较长的位宽)可以被写入或读取的时候才有效。

FIFO不允许部分字进行存取

比如,假设一个FULL状态下的FIFO,如果写入的width8 bits,读出的width2 bits,应该完成4次有效的读操作,FULL信号才能解除断言,从而写操作才能够继续进行。

写操作计数根据写端口的比率来显示FIFO中的字数(以写入位宽为一个字的个数),读操作计数根据读端口的比率来显示FIFO中的字数(以读出位宽为一个字的个数);

1:4比率数据顺序

下图用例为1:4比率的FIFO(写入width为2,读出width为8)。

图例中,在读操作之前有4次连续的写操作被执行。第一个写操作为01,接着为00,11,最后一个为10

内存填充为从左至右(MSB到LSB)。当一个读操作执行过后,接收数据为01_00_11_10
在这里插入图片描述

下图展示了1:4比率FIFO的din,dout和一些握手信号的波形。在4个字被写入FIFO之后,EMPTY信号取消断言。而后一个读操作,EMPTY信号恢复断言
在这里插入图片描述

4:1比率数据顺序

下图用例为4:1比率的FIFO(写入width为8,读出width为2)。

图例中,依次写操作执行后,有4次读操作执行。

写操作的数据为11_00_01_11。当读操作执行后,从左至右(MSB到LSB)的数据将被读数据接收。如下图展示,第一个读出的记过为11,接着是00,01,最后为11
在这里插入图片描述

下图展示了4:1比率FIFO的din,dout和一些握手信号的波形。一个时钟的写操作之后,FIFO取消断言EMPTY信号。因为没有其他的写操作执行,FIFO在4次读操作之后恢复断言。

在这里插入图片描述

总结

在使用非对称位宽比率FIFO的时候,需要注意以下两点:

  1. 比率是否支持,仅支持1,2,4,8这几种倍率关系;
  2. 数据读写的顺序,需要判断数据的MSBLSB是否与预期一致;

推荐例化IP之后,先做推荐的modelsim仿真,熟悉FIFO IP的数据传输方式,握手信号,再进行设计;

这篇关于Xilinx FIFO Generator 需注意非对称位宽的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/527262

相关文章

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

ja-netfilter的前世今生和非对称加密的欺骗原理

文章目录 ja-netfilter起源官网插件插件配置文件插件的综合应用更多用法 非对称加密欺骗原理非对称加密和数字证书激活过程和欺骗手段分析代码示例第一步:生成自签名证书脚本第二步:使用自签名证书对产品激活信息进行签名 样例数据样例激活码(注:用于代码演示,直接粘贴到JetBrains 家 IDE 中无法完成激活!不用试,肯定提示无效,无法激活!!)样例power.conf(配合ja-ne

利用Mybatis-generator工具自动生成代码

配置JAVA环境变量; 执行生成代码之前,我们须要做的准备工作。  1、新建一个文件夹,作为我们的工作空间,例如:  D:\generator  注意:这里的路径不要带有中文字符,这是规范,即使带有中文字符不会出什么问题。  2、在 generator 这路径下  (1)放置 mybatis-generator-core-1.3.2.jar;  (2)放置 mysql-connector-ja

Xilinx系FPGA学习笔记(五)ROM的IP核学习

系列文章目录 文章目录 系列文章目录前言ROM IP分布式ROM生成ROM配置创建COE文件 块ROM生成如何快速生成Example Design 两种ROM对比 前言 最近在学习小梅哥的xilinx型FPGA开发板,一边学习一边记录,简化整理一下笔记 ROM IP 在 Memories &Storage Elements 下可以看到有两个与 ROM 相关的

LabVIEW开发FPGA方法与FIFO数据丢失处理

开发基于NI 7975R FPGA的系统涉及一系列流程,包括驱动安装、LabVIEW项目设置、开发调试、编译和与Windows系统的通信。重点在于FIFO的正确配置,避免数据丢失是关键环节之一,尤其是在使用高速数据流传输时。以下将详细介绍这些过程,并重点讨论FIFO数据丢失的原因与解决方案。 FPGA开发流程 驱动安装与工具准备:开发FPGA需要安装LabVIEW FPGA模块以及N

Mybatis 逆向生成工具mybatis-generator-core-1.3.2.jar的使用

mybatis-generator-core-1.3.2.jar用来生成我们的项目代码,今天分享一下,这个工具,神器之处,在于不仅仅生成dao,mapper还有service层,web层都可以根据数据库反射生成出来。上图 如图,使用mybatis,无非就用××××EntitySqlProvider或××××EntityMapper.xml两种形式书写sql语句,生成方法本文均提供 展开图

使用Mybatis Generator插件生成纯净代码,自定义扩展注释和注释,xml映射文件,不用修改源码!!!

先看效果: (基于Mybatis-generator-core-1.4.0) 生成模型(实体): 根据MySQL库中的tb_prod_info表字段及注释自动生成. package com.ezsyn.cloudstudy.product.dao.entity;import io.swagger.annotations.ApiModelProperty;import lombok.Gette

Xilinx系FPGA学习笔记(四)VIO、ISSP(Altera)及串口学习

系列文章目录 文章目录 系列文章目录VIO(Vivado)ISSP(Altera)串口学习FPGA串口发送FPGA串口接收 VIO(Vivado) VIO 的全称叫 Virtual Input/Output,建立一个虚拟的输入/输出信号,可以对需要调试的模块的输出信号的数值进行在线的查看,以及模拟一些信号输给需要调试模块,方便调试查找问题和验证模块的实际上板工作的正确

MyBatis Generator myeclipse 生成 mybatis

在下载好的插件包解压,找到generator-master\eclipse\UpdateSite目录下的feauresj和plugins放在myeclipse的相应目录下