1.axiԴ??
2.Xilinx系列FPGA实现4K视频拼接,基于Video Mixer实现,提供1套工程源码和技术支持
3.AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介(第 1 部分)
4.AXI协议之AXILite开发设计
5.xilinx MIPI csi2 Rx FPGA verilog源码与架构分析
6.通信原理板块——正交振幅调制(QAM/MQAM)
axiԴ??
在FPGA设计领域,Xilinx系列的FPGA被用于实现4K视频的高效缩放,其核心是基于Video Processing Subsystem。这个系统提供了4套针对不同FPGA型号的android 源码同步仓库工程源码和全面的技术支持,让你能够在Xilinx的Kintex7和Zynq UltraScale+系列FPGA上轻松实现这一功能。
首先,让我们了解一下方案概述。方案的核心是手写彩条视频,分辨率x,以Hz或Hz的双像素输出,通过AXI4-Stream接口。数据经过AXI4-Stream Data FIFO进行跨时钟域处理,然后通过Video Processing Subsystem进行4K视频的缩放,将x的视频扩展至x。这部分工作由官方提供的IP核负责,确保了视频处理的准确性和兼容性,但仅限于Xilinx自家FPGA平台。
针对市面上常见的FPGA,我们提供了四套移植后的完整工程,分别针对Xilinx Kintex7和Zynq UltraScale+,以及Hz和Hz的视频输入。每套代码都包含详细的配置和软核配置,如MicroBlaze或Zynq,以适应不同硬件环境。
设计包括了从视频输入到输出的完整流程,包括HDMI 1.4/2.0 Transmitter Subsystem的视频编码和Video PHY Controller的串行化处理,以及均衡电路和视频输出显示。为了方便应用,我们推荐使用博主的配套开发板,或根据自己的硬件进行适配。
工程源码由Vivado Block Design和Vitis SDK软件设计组成,提供了清晰的架构和详细的操作指南。无论是Kintex7还是Zynq UltraScale+的版本,代码都经过精心优化,以最小化资源占用和功耗。
如果你对工程源码感兴趣,可以直接联系博主获取,包括网盘链接和个性化定制服务。请注意,所有代码仅限学习和研究使用,禁止商业用途,并且可能需要根据你的硬件环境进行微调。
Xilinx系列FPGA实现4K视频拼接,基于Video Mixer实现,提供1套工程源码和技术支持
Xilinx系列FPGA实现4K视频拼接,基于Video Mixer实现,提供1套工程源码和技术支持
实现4K视频拼接的方案主要有两种:一种是纯Verilog方案,但这种方案难以实现4K分辨率;另一种是使用Xilinx的HLS方案,该方案简单易实现,换手线源码但仅适用于Xilinx自家的FPGA。
本文采用Xilinx官方推出的Video Mixer IP核实现4K视频拼接。该方案使用4路Xilinx官方的Video Test Pattem Generator IP核生成分辨率为x@Hz的彩条视频,并通过AXI4-Stream接口输出。彩条视频的形状各不相同,分别为竖条、交叉网格、棋盘和格子形状。视频通过Xilinx官方的XDMA写入FPGA板载DDR4缓存,再由Video Mixer从DDR4中读出并进行拼接处理,拼接方式为4分屏显示。拼接后的视频通过HDMI 1.4/2.0 Transmitter Subsystem IP核编码后输出,同时,系统还提供了AXI4-Stream流和DDC控制信号。
设计中使用的Video Mixer IP核支持最大分辨率为8K,并最多可拼接路视频,输入和输出视频格式均为AXI4-Stream。该IP核通过AXI_Lite接口进行寄存器配置,并提供自定义配置API。相比于自写的HLS视频拼接方案,官方的Video Mixer IP核在逻辑资源占用上大约减少%,且效率更高。
本文还提供了详细的工程设计框图,包括TPG测试彩条、VDMA图像缓存、Video Mixer、HDMI 1.4/2.0 Transmitter Subsystem、Video PHY Controller以及输出均衡电路等模块的配置和功能描述。同时,还推荐了几款适合该工程的FPGA开发板,并提供了两种不同的工程源码架构。对于不同需求的读者,本文还提供了一定程度的移植说明,以及工程代码获取方式。
此外,本文还列出了实现4K视频拼接所必需的硬件设备,并提供了输出效果的静态和动态演示。对于有需求的读者,本文还提供了一种获取工程代码的方式。
总之,本文提供了一种基于Xilinx系列FPGA的4K视频拼接实现方案,包括设计原理、关键模块功能、工程源码架构、移植说明以及获取代码的方式,旨在帮助读者掌握4K视频拼接的设计能力,以便能够根据自己的项目需求进行移植和设计。
AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介(第 1 部分)
注:本文转自赛灵思中文社区论坛,源文链接 在此。本文原作者为XILINX工程师。宁波游戏源码
以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。
您是否想创建自己带有 AXI4-Lite 接口的 IP 却感觉无从着手?本文将为您讲解有关如何在 Vitis HLS 中使用 C 语言代码创建 AXI4-Lite 接口的基础知识。
在本教程中,我们将来聊一聊有关如何在 Vitis HLS 中使用 AXI4-Lite 接口创建定制 IP 的基础知识。如果您是 AXI 初学者,并且想要熟悉一下相关的基本术语和背景知识,请参阅教程 AXI 基础第 1 讲。
注:在 Vivado HLS 中使用 AXI 创建 IP 的过程与使用 Vitis HLS 的过程不同。如果您想要在 Vivado HLS 中创建 AXI IP,请参阅 UG。
AXI4-Lite 属于基本 AXI 通信协议。它常用于简单的低吞吐量存储器映射通信(例如,往来于控制寄存器和状态寄存器的通信)。
如上图所示,AXI4-Lite 接口可设置为只读(仅包含 2 条读取通道)或只写(仅包含 3 条写入通道)。
在本教程中,我们将创建以下 IP,并使用 s_axi_BUS_A 作为我们的 AXI4-Lite 接口:
本教程结束时,您将能够
打开 AXI4-Lite 设计示例
在 Vitis HLS 中提供了 AXI4-Lite 的设计示例。要打开 AXI4-Lite 的设计示例,请遵循以下步骤进行操作:
此示例包含 2 个主要文件:
Example.cpp - 此代码将综合到 RTL 中以创建“简介”中所示的 IP。此 IP 将与 Vivado Design Suite 中的其它 IP 相结合,并最终被放置到您的硬件上。
Example_test.cpp - 此测试激励文件将用于确保 example.cpp 按期望方式运行。Example.cpp 算法将通过如下方式进行检查:将该算法的输出与测试激励文件中执行的“黄金数据 (golden data)”计算结果进行比较。只要黄金数据与 example.cpp 的返回结果相匹配,HLS 中的测试激励文件就会返回 0。
选中左侧列中“源代码 (Source)”下的 example.cpp 即可打开源代码。接下来我们来详细看下代码:
进入库之后首先可看到的是 example(); 函数。只要您熟悉基于 C 语言的设计,就不难发现,通过形参(如上述示例中的 char *a、char *b 和 char*c)即可瞬间执行所有输入和输出操作。
在 RTL 设计中,数据通过端口进出 IP。这些端口可使用特定 I/O 协议(例如,AXI4-Lite、AXI4-Stream 等)来进行操作,这样即可保证 IP 块之间能够进行标准化的通信。
对于进出 IP 的每一条数据,都应将其指定为主源文件中的一个独立函数实参。稍后,该函数实参将被综合成硬件 (RTL) 中的一个“端口”。
注:端口实际上可通过 3 种不同方法来创建,但本教程将主要讲解采用函数实参的方法。
端口衍生自:
注:由于 AXI4-Lite 接口中的变量为函数实参,因此在 C 语言代码中无法为其指定默认值。骇客源码因此,无法为 AXI4-Lite 接口中的任何寄存器指定默认值。这些寄存器可通过 config_rtl 命令进行复位来实现,但不能为其指定任何其它默认值。(请参阅 控制复位行为以了解详细信息)。
接下来,我们来看看编译指示接口。
首先逐一了解下其中每个组件:
我们需要把 IP 的输入/输出定义为 s_axilite,这样才能使用 AXI4-Lite 协议。如果我们的代码中不包含此行,那么数据输入/输出将综合到基本连线中,并且将不含关联的握手信号。在此情况下,输入将保持稳定状态直至执行读取输入操作为止,一旦未谨慎执行此操作,就可能导致错误。
接口编译指示格式如下:
其中:
:用于指定函数实参的接口协议模式。在此例中,我们选择的是 s_axilite。
port=:用于指定 INTERFACE 编译指示所应用到的函数实参名称。
(register):这是可选关键字,用于寄存(即存储)信号和所有关联的协议信号。它会导致信号保持直至至少完成函数执行的最后一个周期为止。
bundle=:此关键字支持您将端口信号手动组合到单一数据总线内。如果函数返回指定为 AXI4-Lite 接口(即代码示例中的第 行),那么所有数据端口都将被自动捆绑到单一总线中。如果未在此处明确提供捆绑名称,那么 Vitis HLS 将使用默认捆绑名称 control。当使用其它器件(例如,CPU)来配置和控制块的启动和停止操作时,这是常见的做法。
s_axilite port=return:用于设置类型为 s_axilite 的函数实参,端口名称“return”将在 IP 块中创建中断信号。您可通过 AXI4-Lite 接口和 C 语言驱动程序文件来完成中断编程。如需了解更多信息,请参阅 此处。
注:如果任意顶层函数实参指定为 AXI4-Lite 接口,则函数返回也必须指定为 AXI4-Lite 接口。
注 2:默认情况下,HLS 会为分组到同一个 AXI4-Lite 接口的每个端口分配地址。Vitis HLS 在 C 驱动程序文件中提供了分配的地址。要显式定义地址,可使用 offset 选项。在 AXI4-Lite 接口中,Vitis HLS 保留地址 0x 到 0xC,用于块级 I/O 协议信号和中断控制。
函数主体
在该函数中,可以精确定义希望此 IP 执行的操作,此 IP 将导入 2 个值(a 和 b)并将结果 (c) 存储在寄存器中。为测试功能,c queue源码测试激励文件将为 a 和 b 提供 example() 函数,并将其与自己计算 a+b 所得的值进行比较。如果结果相匹配,那么测试激励文件应始终返回 0,并且 c 仿真即可通过。
在下一篇 AXI 基础系列文章中,我们将学习如何将 IP 导出到 Vivado Design Suite 中以便通过 AXI4-Lite 接口将其连接到其它 IP 或连接到 PS。
AXI协议之AXILite开发设计
关注微信公众号***小灰灰的FPGA***,获取关于FPGA项目的源码和开源项目,涵盖检测芯片驱动、低速与高速接口、数据处理、图像处理以及AXI总线等技术。回复关键词,可以获取AXI4LITE相关资料,包括手册和源码。
AXILite设计开发教程详细介绍了如何通过主机Master通过基地址控制两个从机Slaver的寄存器。我们提供了三种实施方案:基于XILINX的AXI Crossbar IP工程、AXI Interconnect互联的Block Design工程以及开源代码实现。
AXI协议是一种高性能接口,包括AXI4、AXI4-Lite和AXI4-Stream,分别适用于不同场景。AXI4-Lite简化了接口,专为少量数据的存储映射通信设计,支持写地址、写数据和写响应通道。
在AXILite开发中,涉及五个关键通道的实现,如写地址通道的地址信号生成和数据准备,以及读取操作时的地址和数据通道握手。代码示例展示了握手信号的时序控制,确保数据传输的正确性。
此外,文章还深入解析了Xilinx的AXILite IP组件使用,包括AXI Crossbar IP的配置和AXI Interconnect的Block Design应用,以及开源代码的移植和仿真。每个环节都强调了适配不同应用场景和接口配置的重要性。
最后,整个AXI4Lite系列教程提供了全面的仿真文档,包括自定义寄存器操作和接口级的WB读写任务,为实际项目提供了丰富的参考和指导。工程源码会定期在公众号上分享,方便学习和使用。
xilinx MIPI csi2 Rx FPGA verilog源码与架构分析
xilinx MIPI csi2 Rx subsystem verilog源码涉及FPGA MIPI开发设计,其根据MIPI CSI-2标准v2.0实现,从MIPI CSI-2相机传感器捕获图像,输出AXI4-Stream视频数据,支持快速选择顶层参数与自动化大部分底层参数化。底层架构基于MIPI D-PHY标准v2.0,AXI4-Stream视频接口允许与其他子系统无缝连接。
xilinx MIPI csi2 Rx子系统特点包括:
1. **高效图像捕获**:快速从MIPI CSI-2相机传感器获取图像数据。
2. **AXI4-Stream输出**:输出的视频数据通过AXI4-Stream接口,适合与其他基于该接口的子系统对接。
3. **参数配置自动化**:允许快速选择顶层参数,简化底层配置工作。
4. **模块化设计**:便于与其他FPGA设计集成,提高系统灵活性。
架构分析涵盖:
- **rx_ctl_line_buffer**:用于处理数据流,缓冲并控制数据传输。
- **rx_phy_deskew**:去偏斜处理,确保数据传输的准确性。
- **IP核参数配置**:提供定制参数设置,以满足不同应用需求。
此源码为开发人员提供了一个实现MIPI csi2 Rx功能的强大基础,通过详细的代码解析,可以深入理解其工作原理与优化空间。在社区中,开发者可以共享代码、讨论技术细节,促进MIPI csi2 Rx技术的交流与应用。
参考资料与资源:
- <a href="wwp.lanzoue.com/iTnrE1y...:mipi_csi2_ctrl verilog源码
- <a href="wwp.lanzoue.com/iyxll1y...:mipi dphy verilog源码
欢迎加入社区,共同探讨与解决开发过程中的问题,促进MIPI csi2 Rx技术的应用与发展。
通信原理板块——正交振幅调制(QAM/MQAM)
通信原理板块——正交振幅调制(QAM/MQAM)深入解析
微信公众号***小灰灰的FPGA***提供丰富的FPGA相关资源,包括芯片驱动、接口驱动、信号处理及AXI总线等技术的源码更新。在这个技术板块中,我们将重点讨论正交振幅调制(QAM/MQAM)这一核心概念及其应用。 正交振幅调制(QAM)是一种同时调制信号的振幅和相位,每个码元ek(t)通过Ak·cos(ωc·t+θk)表示,由多个离散的振幅值Ak和相位值θk组成。QAM信号本质上是两个正交振幅键控信号的合成,常见的调制类型有4QAM、QAM、QAM和QAM,它们以星座图示,表现出高阶调制的特性。 QAM信号的调制方法包括正交调幅法和复合相移法。正交调幅法通过叠加两路独立的4ASK信号实现,而复合相移法则通过两路QPSK信号的叠加。在噪声容限方面,QAM相比于PSK信号具有优势。例如,在最大功率相同的情况下,QAM的噪声容限大约比PSK高1.dB;而当平均功率相等时,QAM的噪声容限优势更大,达到4.dB。 正交幅度调制特别适用于带宽受限的场景,如电话信道,其中QAM在ITU-T标准中推荐用于2.4kBaud速率下传输9.6kb/s的数字信息。一个实际应用的例子是一个b/s的QAM方案,采用Hz的载频,Hz的滤波带宽,%的滚降系数,以高效利用频谱资源。FPGA XDMA 中断模式实现 PCIE3.0 测速试验 提供工程源码和QT上位机源码
前言
PCIE(PCI Express)作为现今行业首选的高速接口标准,相较于PCI及早期总线结构,提供了专用连接,大幅提高了数据传输效率。本设计采用Xilinx的XDMA方案,构建基于Xilinx系列FPGA的PCIE3.0通信平台,通过XDMA的中断模式与QT上位机通讯。上位机通过软件中断实现与FPGA的数据交互,关键在于设计了一个xdma_inter.v中断模块,该模块与驱动配合处理中断,通过AXI-LITE接口,上位机读写xdma_inter.v寄存器实现数据传输。此外,通过AXI-BRAM演示了用户空间的读写访问测试。此方案仅适用于Xilinx系列FPGA,提供完整的工程源码和QT上位机源码,简化了驱动查找与软件开发步骤,使得PCIE应用更加便捷。本文详细描述了设计过程,提供完整的工程源码和技术支持。
我已有的PCIE方案
我的主页包含基于XDMA的PCIE通信专栏,涵盖轮询模式及RIFFA实现的数据交互与测速,以及应用级别图像采集传输方案,详情请参阅专栏地址。
PCIE理论
PCIE相关理论知识,如协议细节与工作原理,可自行查阅百度、CSDN或知乎等平台。使用XDMA后,对PCIE协议的理解需求降低。
总体设计思路和方案
总体设计思路围绕XDMA实现PCIE通信。XDMA作为高性能、可配置的SG模式DMA,适用于PCIE2.0和3.0,支持AXI4或AXI4-Stream接口,通常与DDR协同工作。设计中重点是编写xdma_inter.v中断模块,配合驱动处理中断,实现AXI-LITE接口,上位机通过访问用户空间地址读写寄存器。同时,利用AXI-BRAM进行用户空间读写测试。
QT上位机及其源码
本方案使用VS + Qt 5..构建QT上位机,通过中断模式调用XDMA官方API,实现与FPGA的数据交互。提供的例程专注于读写测速功能,附带完整的QT上位机软件及源码。
vivado工程详解
开发板采用Xilinx-xcku-ffva-2-i型号,使用Vivado.2构建工程。配置PCIE3.0 X8接口,实现QT上位机的测速试验功能。综合后的代码架构展示了XDMA中断数量的设置,同时进行了FPGA资源消耗和功耗预估。
上板调试验证
开启上位机测速程序,通过QT软件进行PCIE速度测试。结果显示读写、单读、单写测试的性能表现。
福利:工程代码获取
由于代码体积过大,不便通过邮件发送,提供某度网盘链接方式获取完整工程代码。资料获取方式通过私信联系。
移知——ARM教育官方授权培训合作企业
移知作为ARM中国教育官方授权的培训合作企业,在去年已经达成合作协议,正式成为ARM教育官方认证的培训机构。作为IC行业内的佼佼者,ARM芯片架构授权覆盖全球,苹果、联发科、高通等公司的芯片设计都离不开ARM技术。掌握ARM技术,能让你在相关领域成为具有竞争力的专业人士,满足行业需求并发挥重要作用。
移知教育是目前唯一被ARM认证并公布在官网的教育培训机构,作为芯片设计领域的服务平台,移知教育聚焦于芯片设计行业,位于全国集成电路中心重镇——上海张江,能够辐射全国,为准备从事芯片设计的学生提供入行培训,为工程师提供在职提升的课程。成立至今,移知教育已拥有+位讲师,+付费学员,最高人同时在线学习的记录,并获得上万名学员及多个知名企业的认可。
移知教育精心打磨了众多ARM系列课程,每一门课程都经过移知教育创始人、ARM中国资深技术顾问——团长的严格审核,所有课程均获得ARM专业资质评估,并通过系列课程学习,完成并通过测试考核,学员可以获得ARM技术培训认证证书。课程内容涵盖从AMBA入门之APB及AHB总线实战,到AMBA进阶之AXI总线实战,再到AMBA高阶之ACE及CHI总线,直至Armv8-A和Armv9-A处理器架构、Arm CoreSight架构、Arm Cortex-M3 MCU芯片前端设计及软硬件验证、Arm Cortex-M3 MCU芯片UVM验证、Arm Cortex-M3 MCU芯片中端及DFT流程等,满足不同层次的需求。
对于初学者,AMBA入门之APB及AHB总线实战推荐指数为★★★★★,适应人群包括需要从事芯片设计的数字前端和验证工程师以及需要从事FPGA开发的工程师。课程从系统设计的角度帮助大家理解APB和AHB协议,涵盖协议的时钟和时序要求、地址映射机制、总裁机制及性能优化等相关内容,并通过实际项目教会大家如何设计可靠的总线接口。
进阶的AMBA进阶之AXI总线实战推荐指数同样为★★★★★,适应人群包括一致性总线相关工程师、数字芯片设计工程师和数字芯片验证工程师。课程全面解读AXI总线协议,帮助学习者快速定位实际问题,解决面试和项目中的常见难题,并通过案例模块提供AXI接口的视线,理解RTL源代码。
对于高阶学习者,AMBA高阶之ACE及CHI总线推荐指数为★★★★★,适应人群同样包括一致性总线相关工程师、数字芯片设计工程师和数字芯片验证工程师。课程从协议出发,由浅入深系统全面地介绍CHI的协议分层、流控和各项特性,帮助学员深入了解CHI协议。
对于处理器架构爱好者,Armv8-A和Armv9-A处理器架构推荐指数为★★★★★,适应人群包括Armv8-A和Armv9-ASoC架构师、前端设计和验证工程师,以及Armv8-A和Armv9-A SoC芯片的软件开发工程师和相关产品的项目经理、产品经理。课程从基础知识开始,逐步深入,覆盖了Armv8-A和Armv9-A处理器架构的方方面面,帮助大家加深对概念的理解,并提供宝贵的实践经验。
Arm CoreSight架构推荐指数为★★★★★,适应人群包括芯片设计工程师、芯片验证工程师、软件开发工程师和系统架构工程师。课程围绕Cortex-A系列的CoreSight架构,从基本原理讲起,再深入到具体每个组件的行为特征,最后讲到整个CoreSight的子系统设计和搭建,帮助企业工程师清晰理解CoreSight架构。
Arm Cortex-M3 MCU芯片前端设计及软硬件验证推荐指数为★★★★★,适应人群包括在做模块或IP级别的设计、还不了解SoC全芯片设计方法、还不知道SoC全芯片验证方法的学习者。此课程通过入门级别的MCU作为学习起点,让您掌握一个入门级SOC设计的思路和技巧。
Arm Cortex-M3 MCU芯片UVM验证推荐指数为★★★★★,适应人群包括刚接触验证的同学、项目负责人、需要做后仿验证的工程师和验证环境的负责人。课程为具有简单基础的验证工程师,以及想要学习MCU芯片项目验证管理的学员打造,通过理论+实验代码多个维度,让学员掌握先进的MCU验证方法学和验证思路。
Arm Cortex-M3 MCU芯片中端及DFT流程推荐指数为★★★★★,适应人群包括芯片前端设计工程师、芯片中端工程师、芯片DFT工程师和芯片后端工程师。本课程由年+资深工程师带队,结合企业需求精心研发,通过真实的MCU芯片项目,学员可以一起做项目,掌握全芯片的代码质量检查、综合、一致性检查和DFT流程,以及实际项目中端流程中出现的问题及调试方法。
还有更多体验课及公开课等你加入,移知教育提供名师汇集、教学质量与学习效果保证的课程体系,讲师团队来自行业一线大公司及研究机构,拥有年以上从业经验,知识领域涵盖了IC行业从SOC架构到IP生态,以及IC设计的前端和后端,可测试性设计(DFT),固件系统等,保证课程的高质与实用性。此外,移知教育还拥有一支强大的IT团队,确保线上直播系统的稳定运行及自主研发的直播系统、EDA云实训环境等技术支持。