1.【VIVADO IP】AXI QUAD SPI
2.VIVADO IPIBERT Ultrascale GTH
3.vivado中IP核的源码Core Container特性
4.Vivado2018.3 在block design中修改自定义IP的一些BUG
【VIVADO IP】AXI QUAD SPI
本文记录了关于VIVADO IP核AXI QUAD SPI的部分使用和配置方式,主要参考了IP手册PG。源码该IP核功能较为简单,源码本文仅记录了使用到的源码部分。AXI Quad SPI内核将AXI4接口连接到支持标准、源码双或四SPI协议指令集的源码优惠劵php源码SPI从设备,为主机和从机之间的源码数据交换提供了简单的方法。内核在标准SPI模式下配置时,源码是源码一个全双工同步通道,支持主机和选定从机之间的源码四线接口。当配置为Dual/Quad SPI模式时,源码该内核支持用于与外部存储器连接的源码额外引脚,这些引脚的源码使用取决于控制寄存器的设置和使用的命令。
在不同配置模式下,源码参数情况和频率限制有所不同。源码当外部SPI时钟过慢时,建议使用FIFO深度,以适应频率在到范围内的情况。AXI Quad SPI内核支持的命令在XIP模式下特别有用,它允许直接以内存形式访问flash数据,简化了软件访问方式,特别适用于读取操作。跑得快源码亲测源码网
本文还介绍了IP核的配置选项,包括AXI接口选项、性能模式、SPI选项和模式设置等。在配置时,需要根据具体需求选择合适的参数,如模式、数据宽度、频率比例等。在软件复位、SPI控制、SPI状态、数据发送和接收、从设备选择、FIFO数据数量和中断功能等方面,需要正确设置寄存器值。
在寄存器映射中,每个寄存器都有特定的功能,如软件复位、SPI控制、状态读取、挖矿源码 A8源码网数据发送和接收、从设备选择等。正确配置这些寄存器对于IP核的正常工作至关重要。
在IP仿真例程中,提供了写操作和读操作的详细流程,以帮助理解和验证配置。写操作包括对从设备选择寄存器的写入、数据发送、中断信号触发和中断状态复位等步骤。读操作则涉及到数据读取和中断状态管理。
最后,通过AXI流量生成器产生的发送和接收命令,进行了测试。测试中发现,由于发送FIFO深度限制和传输事务宽度设置,导致写操作时只能发送前个数据。在读操作中,由于SPI设置了环回模式,发送和接收数据在同一端口,测试结果表明了正确读取了写入的数据。
VIVADO IPIBERT Ultrascale GTH
本文详细记录了VIVADO IP核IBERT Ultrascale GTH的溯源码和非溯源码的区别使用过程,主要参考IP手册PG中的相关介绍以及GT中的实例使用。
IBERT Ultrascale GTH与In-System IBERT的功能基本相似,但也有一些不同之处,将在后续内容中详细说明。In-System IBERT的相关文章可以参考。
该IP可以通过访问PMA属性和端口绘制眼睛扫描图。GTH/GTY收发器的PMA特性是支持和可控的,包括:
而部分PCS的特性IP不支持查看,包括:
除了上述提到的In-System IBERT不支持的内容外,其他内容与In-System IBERT一致。
系统的最大时钟频率为 MHz,且设计会自动将任何输入的系统时钟进行分频以满足此约束。
系统时钟可以由FPGA引脚选择,也可以由GTH收发器的专用REFCLK输入选择。如果系统时钟运行速度超过 MHz,则使用MMCM进行内部分频。系统时钟用于核心通信,并作为系统测量的参考。
IBERT Ultrascale GTH与In-System IBERT在实际使用上有几个明显的不同点:
在功能上,有几个需要特别提到的:
IBERT Ultrascale GTH的配置非常简单,只有几项。复仇流浪者源码38级源码
以下是IBERT Ultrascale GTH与UltraScale FPGAs Transceivers Wizard配置的对应关系,具体内容在手册中未提及,参考社区回答得到:
从图中可以看出,IBERT Ultrascale GTH中的参考时钟对应实际的参考时钟,由于无法支持小数分频,因此在. Gb/s的线速情况下无法选择 MHz的参考时钟。
那么如何根据实际的参考时钟来选择线速呢?根据UG,线速的计算公式如下:
参数M、D和N都是整数,其中M和D的最小值为1,N的最大值为。
因此可以根据公式尽可能选择与实际所需线速接近的值,当然也要注意PLL支持的范围(具体芯片对应的参数需要参考对应的DC/AC手册,例如Zynq UltraScale+ MPSoC对应的DS)。
PG由于建议使用QPLL进行8 Gb/s以上的线速,因此可以为0.5 Gb/s至.3 Gb/s范围内的每个线速选择QPLL/CPLL。
这里我们配置为.5 Gb/s,采用 MHz的参考时钟。
这里的配置与UltraScale FPGAs Transceivers Wizard的RX Advanced一致,包括均衡方式以及端接电压等配置,更详细的内容可以在UG中找到。
在protocol definition中可以实例化多个协议,从而在选择中可以有多个选项。这里主要是确定参考时钟源,需要与硬件设计对应。
选择Add RXOUTCLK Probes可以用Quad对应的某个lane驱动一个/对输出引脚。
采用例程进行验证,原理图如下:
系统时钟根据设置由参考时钟MGTREFCLK1分出。
正常下载后,可以看到链路状态(In-System IBERT不支持,需要使用VIO来查看链路状态)。
使用Auto-detect Links可以检测链路状态。
可以提供误码率检测,实时速率显示,并且可以设置PRBS类型,以及环回模式(In-System IBERT不支持,需要通过配置GT修改)。
选定链路使用create scan可以查看眼图。
关于眼图相关的内容,可以参考之前的文章。
其他内容未提及。
vivado中IP核的Core Container特性
IP核是设计单元组件,用于减少重复工作,提升开发效率。Vivado中的XCI与XCIX文件是IP核管理的核心,以下内容将深入介绍Core Container特性的使用方法,助您更好地理解和运用IP核。
一、XCI与XCIX文件详解
Vivado生成的IP核文件夹位于.srcs/sources_1/ip目录下,包含了所有相关文件,核心是XCI文件,存储用户配置信息。Core Container特性允许将所有IP文件压缩成一个XCIX二进制文件,同样支持以源文件形式添加至工程中。
在Vivado中,XCI与XCIX文件显示相同,均可查看IP核的所有单独文件。使用Core Container的优势在于简化版本控制管理,文件数量减少便于管理,提高版本控制效率。
二、Core Container配置步骤
多数IP核支持Core Container,有以下两种方式设置:
1. 打包工程内所有IP
在项目Settings中IP标签下,勾选“Use Core Containers for IP”,工程中的所有IP核将被打包为XCIX格式。
2. 打包单个IP
若仅需打包单个IP,可在Sources窗口的IP Sources标签下,对应IP核的右键菜单中选择“Enable/Disable Core Container”来启用或禁用功能。
三、总结
无论采用何种方式,都需要将其添加至项目并在设计中使用IP核。选择合适的打包方式能显著提高开发效率和代码复用性。期待本文能为FPGA开发者带来帮助。
Vivado.3 在block design中修改自定义IP的一些BUG
在使用Vivado .3进行工程开发时,Block Design界面简洁、操作直观,尤其是对于AXI总线的连线,具有显著优势。但在实践中,我们遇到了几个与自定义IP相关的bug,以下总结了在Block Design中修改自定义IP时可能遇到的问题及解决策略。
**问题一**:在Block Design中修改自定义IP后,重新打包IP时,IP目录下的.v源文件未更新,导致接口对不上而报错。解决方法是:修改IP源文件后,重新生成IP,确保IP目录更新,再进行综合。
**问题二**:工程IP source中出现未使用的IP工程。解决方法是:清除IP文件夹下的所有文件,重新退出Vivado并打开,问题即可解决。
**问题三**:工程另存为新文件后,会出现找不到IP文件的问题。解决方案是:重新生成文件,删除不必要的IP文件,确保在新的工程目录中正确加载IP。
**问题四**:A目录保存为B目录,修改B工程中的IP后,再次保存为C目录时,发现无法找到IP文件。通过分析发现,C目录中存在从A目录复制的无用IP文件。解决办法是:使用reset block design输出,重新生成文件,确保C目录中IP文件的正确性。
**问题五**:将Aurora放置在Block Design中时,测试结果显示数据环路问题。在外部手动连线时,问题得到解决。这表明Block Design环境中存在与Aurora相关的bug。
综上所述,Vivado .3的Block Design界面存在一些bug,例如IP管理、文件保存与加载、工程重命名等操作中可能出现的问题。解决这些bug的步骤包括正确更新IP源文件、清除工程中的无用文件、生成新文件以确保正确加载IP,以及在必要时调整IP在Block Design中的位置。这些bug在后续版本的Vivado中是否得到改善,需要通过官方更新日志或后续版本的测试进行验证。