- 博客(46)
- 收藏
- 关注
原创 使用Qt实现Zynq开发板上的LED顺序点亮控制
在嵌入式开发中,Zynq平台的强大性能使其成为许多项目的首选。继之前分享的基于Zynq的AXI GPIO按键控制LED实验后,这次我将介绍一个更具交互性的设计:通过Qt界面实现Zynq开发板上4个LED的顺序点亮控制。本文将详细讲解项目的需求、实现过程、代码设计以及调试经验,希望能为有类似需求的开发者提供参考。
2025-04-03 09:59:07
603
原创 基于Verilog实现通过JTAG接口对zynqPS和PL程序重构 ------代码实现部分
Zynq SoC的常规启动模式包括QSPI、SD卡等,其中JTAG启动模式通常用于与调试主机的连接,配合Vivado和SDK软件加载需要调试的程序。本文介绍的控制器能够实现JTAG启动模式下的无外部干预加载运行,适用于Zynq硬件设备的备份启动、量产测试等场景。理解本文内容要求读者具备对JTAG协议时序及其状态机的基本了解,并熟悉Zynq SoC的功能架构及PL/PS之间的关系。此外,读者还应了解Zynq BootROM、FSBL和u-boot的功能及其启动流程。
2025-03-07 16:28:03
923
原创 基于Verilog实现通过JTAG接口对zynqPS和PL程序重构 ------理论部分
Zynq SoC的常规启动模式包括QSPI、SD卡等,其中JTAG启动模式通常用于与调试主机的连接,配合Vivado和SDK软件加载需要调试的程序。本文介绍的控制器能够实现JTAG启动模式下的无外部干预加载运行,适用于Zynq硬件设备的备份启动、量产测试等场景。理解本文内容要求读者具备对JTAG协议时序及其状态机的基本了解,并熟悉Zynq SoC的功能架构及PL/PS之间的关系。此外,读者还应了解Zynq BootROM、FSBL和u-boot的功能及其启动流程。
2025-02-14 15:04:01
985
原创 毕业设计基于FPGA的智能台灯系统/基于FPGA 的超声波测距/基于FPGA的光敏传感器设计
本课题设计的目标,本设计主要通过Altera公司的Cyclone Ⅳ系列的EP4CE6E22C8实现多功能智能台灯的设计与制作。该智能台灯的主要功能是完成按键实现自动、手动调光切换,以及测距,语音播报等功能。晶振模块主要作用是给开发板提供稳定的时钟脉冲信号,电源为系统提供一个稳定的电压源。通过超声波以及光照传感器实现距离以及光照强度数据的采集,然后将这些数据再传输到主控芯片上,由主控芯片进行数据处理,一旦测距小于设置阈值则触发语音提醒,按键控制光照的手动、自动调节,并且可以根据光照的大小
2025-01-09 14:21:28
1035
原创 通过JTAG接口对FPGA重加载/重构FPGA实现算法/重构zynq soc芯片/Verilog实现TAP控制器/zynq重加载
和。在文章中,我们详细探讨了这两种接口的工作原理、应用场景以及它们各自的优缺点。通过对比,我们了解了在不同的开发需求和硬件环境下,如何选择最适合的接口来进行 FPGA 配置和加载。在本篇文章中,我们将重点介绍如何通过实现JTAG 接口的配置逻辑,成功通过外部FPGA加载Xilinx FPGA,并进行下板验证。
2024-12-20 13:35:16
1015
原创 Xilinx FPGA通过JTAG接口在线重构/Xilinx FPGA动态加载/基于 Slave Select Map接口的XilinxFPGA配置与加载方法
本文章FPGA加载适用于Xilinx FPGA系列的A7、K7、V7以及zynq、zynqMP的PL端程序。将介绍如何利用 Slave Select Map(SSM) 接口和 JTAG接口来加载 Xilinx FPGA 配置。通过这两种接口,用户可以灵活、高效地将 bit 文件上传至 FPGA,从而实现硬件功能的更新与调试
2024-12-18 16:30:07
1715
原创 verilog实现开方运算/基于迭代法的平方根计算算法/FPGA实现开根号算法
牛顿迭代法是一种常用的逼近函数根的方法,在求解平方根问题时具有广泛应用。牛顿迭代法用于平方根的计算公式如下:Xn+1=1/2(Xn+S/Xn)其中:S是我们要求平方根的数;Xn是第 n次迭代的近似值;Xn+1是下一个迭代的近似值。这个公式表示:通过当前的近似值Xn和 S,我们可以得到一个新的更接近的平方根值Xn+1。3.3 迭代法的优点牛顿迭代法具有以下优点:快速收敛:牛顿法的收敛速度非常快,通常经过几次迭代即可获得很高的精度;实现简单:只需要基本的加法
2024-11-28 17:09:04
3506
原创 手把手教你verilog实现AXI总线协议读写/FPGA实现DMA数据传输/FPGA实现AMBA协议/FPGA手搓AXI协议/AXI协议详解(一)----读写模块设计
因最近好多伙伴问我AXI总线的实现方式,今天抽出时间给大家总结一下,并提供AXI读写的调用模块,兼容各种AXI相关设计制作不易,记得三连哦,给我动力,持续更新!!!完整工程文件下载:AXI读写模块源码 (点击蓝色字体获取)AXI的五个通道: 写数据设计模块,主要包括写地址、写数据、写响应三部分组成,实现起来应该按照这个三个的顺序依次实现。写数据模块,主要采用状态机三段式进行实现,大致可以分为以下五个状态状态转移图:状态机部分代码设计:3.2 读数据设计 读数据设计模块,
2024-10-15 16:51:38
2465
3
原创 手把手教你学会 Xilinx zynqMP配置VCU实现视频编解码+DP显示+网络上传至服务器/zynqMP实现VCU视频编解码/zynqMP实现gstream硬件视频压缩
在这篇博文中,我们将深入探索如何在 Xilinx ZynqMP 平台上配置视频编解码单元(VCU),实现高效的视频编解码、DP 显示输出以及通过网络将视频上传至服务器。文章将带领你从零开始,逐步掌握 ZynqMP 上 VCU 的配置与使用,结合 GStreamer 实现硬件级视频压缩。无论你是初学者还是有经验的开发者,这篇手把手教程都将帮助你快速上手,并为你的项目提供强有力的支持。
2024-09-11 16:43:07
1973
原创 基于zynq7000搭建xenomai实时操作系统/手把手教你zynq构建linux+xenomai实时操作系统双系统/arm构建xenomai实时操作系统
在嵌入式系统开发中,实时性和系统丰富功能是两个关键需求。通过在 Xilinx Zynq 平台上同时运行 Linux 和 Xenomai,可以结合两者的优点,实现高性能和高实时性的应用。
2024-07-18 17:22:57
1398
4
原创 毕业设计基于FPGA的出租车计费系统的设计/FPGA完整开源项目/FPGA初学者必备项目
本文论述了基于FPGA的出租车计费器设计,分别介绍了整个系统和各个模块的设计,使用FPGA芯片、VHDL硬件描述语言作为设计手段,利用自顶向下的模块化设计思路,通过在QuartusⅡ软件下进行的模拟仿真,并进行相应的硬件下载调试,证明所设计的系统完成了出租车计费器的功能,各项技术指标符合预定标准
2024-07-16 17:24:53
1034
原创 手把手教你玩转AD9361数字调制解调系列(四) ----纯PL逻辑实现QPSK信号的数字调制解调
本篇文章将介绍如何通过AD9361发射QPSK信号以及纯verilog代码实现和讲解。QPSK (Quadrature Phase Shift Keying) 是一种广泛使用的数字调制方式,它通过改变载波的相位来传输数据。QPSK 实现 IQ 调制解调的基本原理包括以下几个方面:1. 基本概念I 和 Q 分量:QPSK 使用两个正交的载波,即相差90度的两个信号,称为 I(同相)分量和 Q(正交)分量。相位变化:QPSK 通过改变载波信号的相位来表示数据,每个符号可以表示两个比特(00、01、10
2024-07-09 16:37:55
2068
3
原创 基于AGX ORIN与FPGA K7实现PCIE高速数据通信/Orin与FPGA高速数据传输/XDMA在linux系统使用教程
AGX ORIN是NVIDIA最新一代的AI计算平台,具有强大的计算能力和广泛的应用前景,特别是在自动驾驶、机器人和高性能计算等领域。而Xilinx FPGA A7则是FPGA领域的一个重要产品,因其灵活的硬件配置和高效的数据处理能力,广泛应用于信号处理和嵌入式系统中。硬件设计与配置:如何配置AGX ORIN和FPGA A7的硬件接口,使其能够通过PCIe进行高速数据通信。驱动程序开发:开发并优化PCIe驱动程序,以支持高效的数据传输。数据传输协议:设计高效的数据传输协议,确保数据传输的高效性和可靠。
2024-07-05 15:24:00
2801
1
原创 手把手教你玩转AD9361数字调制解调系列(三) ----纯PL逻辑实现FM信号的数字调制解调
基于 FPGA 和 AD9361 实现 FM 数字调制与解调的原理如下:FM 数字调制:利用 FPGA 逻辑电路生成正弦波载波信号。根据输入的数字信号,动态调整载波信号的频率。这就实现了FM调制。将调制后的信号输入到 AD9361 的 TX 端,进行模拟上变频和放大.FM 数字解调:AD9361 的 RX 端接收 FM 调制信号,完成下变频和数字化。FPGA 接收 AD9361 输出的数字 FM 信号,采用频率判决或相位锁定环等方式实现FM解调。从解调后的数字信号中提取出原始的输入数据
2024-07-01 10:27:01
2435
原创 手把手教你玩转AD9361数字调制解调系列(二) ----纯逻辑实现FSK信号的数字调制解调
因最近客户需求,用纯PL实现AD9361的数字信号调制解调,于是就把各种数字调制都在AD9361上都实现了一遍。优点就是:既可以在zynq系列上配置9361,也可以在纯FPGA系列配置9361。并且理解起来比较简单!!!制作不易,记得三连哦,给我动力,持续更新中!!!
2024-06-28 11:27:43
1549
原创 手把手教你玩转AD9361数字调制解调系列(一) ----纯逻辑实现ASK信号的数字调制解调
本篇文章将介绍如何通过AD9361发射FSK信号以及纯verilog代码实现和讲解。
2024-06-26 14:23:48
1649
原创 基于FPGA的指纹采集与识别系统(含完整FPGA工程)/FPGA毕业设计/FPGA课程设计
本课题主要针对指纹采集和识别系统进行深入研究,主要是以FPGA(Cyclone IV)作为整个设计的核心处理芯片,其组件包括光学指纹识别模块(AS608)、UART串口、蜂鸣器、独立按键、LED模块等。首先通过串口FPGA向AS608模块发送对应指令,AS608对采集区域进行逐行扫描,逐点转换数据完成后,传感器将自动进行下一行的扫描和采集,直至将整幅图像采集完成,最后通过UART将数据传输至FPGA中,同时对数据进行存储。其中可通过按键对AS608发送采集、删除、对比指令,更加便于操作和使用。
2024-06-24 17:34:03
2229
原创 zynq/zynqMP启动模式总结:FLASH+emmc启动/petalinux烧写速度最快的启动方式
因客户要求zynq开发板只有FLASH和emmc,然而还得在petalinux进行开发系统,因FLASH大小有限,所以没办法把内核和根文件地址全部存储到FLASH中,于是想配合emmc进行启动,但是在网上搜索的大多都是只把根文件系统放到了emmc,然后把内核和BOOT.bin放到了FLASH,但是烧写FLASH真的很费时间,所以就想出了一个新的办法(被逼的): 启动文件分配: 这样分配下来,BOOT.bin 的大小只有几M,烧写起来方便很多接下来直接讲解实现过程:首先想介绍一下我的环境
2024-05-29 15:31:17
4293
5
原创 Linux下给emmc进行分区操作总结
1、首先查看emmc设备:fdisk -l 查询到emmc的名称2、如果挂载了这个emmc,需要先卸载 (df查询是否挂载)卸载emmc: umount /dev/mmcblk0*(第一步查询到的名称)3、使用fdisk格式划分区4、格式划分区选择:(1)使用帮助m (2)删除所以分区d (No partition is defined yet!表示删除完毕) (3)创建新的分区n。
2024-05-29 15:28:47
2363
原创 zynq及zynqMP启动方式总结/petalinux启动方式总结/petalinux启动过程讲解
Zynq 是通过片上CPU完成对芯片的配置,也就是PS和PL的配置是通过 PS 处理器 ARM 核来实现的。需要注意的是,与传统的 Xilinx 7 系列 FPGA 芯片不同,Zynq 是不支持从 PL 端进行直接启动配置的,一定要通过 PS 部分来完成。Zynq 的具体启动配置是分级进行的,一共可以分为3个阶段,可以用0~2来表示:Stage 0: BootROM 阶段Stage 1: FSBL (First Stage Boot loader)阶段。
2024-05-16 17:17:58
2842
1
原创 XDMA与DDR结合光纤Aurora设计高速数据流通路设计/Aurora光纤设计/XDMA读取DDR设计/基于FPGA的高速数据传输设计
为了此次设计,可以进行下板测试,咱们需要把Aurora的发送和接收连接在一起,然后通过FPGA产生数据,通过Aurora发送,同时Aurora接受过来,然后把数据存储到DDR,并且通过XDMA连接到PCIE,通过XDMA驱动,在主机端读出数据,最终来验证读出来的数据是否和自己产生的数据匹配,通过添加ILA,抓取各个状态的数据状态。
2024-04-24 11:34:38
2138
6
原创 毕业设计基于FPGA 的倒车雷达系统/基于FPGA 的倒车影像系统/基于FPGA 的毫米波雷达安全监测系统/基于FPGA的XW-HLR26雷达设计
本文详细阐述了基于FPGA的毫米波雷达安全监测系统的设计方案,包括硬件架以及软件编程等方面。在硬件架构方面,采用了高性能的FPGA芯片、摄像头和毫米波雷达传感器,实现了系统的快速响应和高效处理。在软件编程方面,利用FPGA的可编程性,实现了系统的灵活配置和功能扩展。适用于大学生FPGA课题设计,FPGA毕业设计,FPGA项目设计。
2024-04-19 10:09:33
2340
5
原创 Windows系统读取XDMA实际运行链路速度和PCIE带宽
在我们平常设计XDMA的时候,经常会遇到一个问题:在Vivado中设计的XDMA IP中选择的PCIE带宽和链路速度是理想的,但是下到板卡运行的时候,测量速度却发现读写速度根本不是理想中的速度,找不到问题,无法证明我们代码的问题还是硬件或者主机问题。这样我们就可以利用这篇文章来获取XDMA在Windows系统下实际运行的速度和带宽。
2024-04-09 10:32:16
2977
3
原创 FPGA协议篇:UART通信及Verilog最易懂实现方式/通用于任何工程/带握手信号 ----UART_TX
UART(Universal Asynchronous Receiver/Transmitter)是一种通用的异步收发传输协议,用于在计算机系统和外部设备之间进行串行数据传输。UART 协议定义了数据的传输格式和通信规则,使得不同设备之间能够进行可靠的数据交换。以下是 UART 协议的几个关键要素:1、异步传输:UART 使用异步传输方式,不需要共享时钟信号来进行数据同步。发送端和接收端通过起始位、数据位和停止位进行数据的有效传输。
2024-03-18 14:57:25
3323
原创 手把手教你学会 Xilinx PCIE/XDMA 读写DDR系列(三) ——XDMA读写DDR项目工程讲解和下板测试
此模块的功能:为此设计模拟输入数据源,同时也为以后用户外接数据留出接口主要通过AXI_data_out模块产生AXI数据,然后通过AXI data fifo对数据进行缓存,然后输出标准的AXI协议的数据。count
2024-03-04 17:14:38
8194
9
原创 纯逻辑配置AD9361教程/通过UART串口发送配置文件配置AD9361/通过rom配置AD9361/纯PL配置AD9361
直接把刚刚生成的配置dat文件,导入我写好的matlab代码中,即可生成rom配置文件(1)然后打开cos.m转换文件把这个输入的文件名,改为你自己的文件即可(2)然后点击转换(3)转换完成输出cos表示转化完成,然后在当前路径下会生成一个AD9361.coe的文件,替换掉工程里的即可,然后重新编译生成bit文件,下载到FPGA 即可。
2024-02-02 17:32:17
3649
原创 vivado与vscode完美结合/vivado联合vscode/vivado关联vscode
在编写verilog有一个跟头疼的问题,就是不能像C那样直接跳转到定义变量的位置,有时候定义的变量多了,就不知道位宽和这个变量的意义了,还有从头去找,很是麻烦,下面介绍一种非常简单的就能跳转到定义位置的方法。
2024-01-16 11:54:03
10574
18
原创 手把手教你学会 Xilinx PCIE/XDMA 读写DDR系列(二) ——XDMA详细配置步骤
上一期讲到如何配置DDR的IP,相信很多小伙伴已经成功的把DDR配置成功,那么下一步就要对PCIE的IP进行配置PCIE的IP在vivado中一般是通过XDMA实现的,XDMA有太多优点了!Xllinx提供DMASubsystem for PCIExpressIP是一个高性能,可配置的适用于PCle2.0、PCle3.0的SG模式的DMA,提供用户可选择的AX 4接口或者AX-Stream接。
2024-01-11 11:25:33
8606
原创 时序违约修复-----笔记
平常编写FPGA程序的时候,最麻烦的就是时序违约平常设计FPGA的时候,明明仿真都是对的,但是下板测试总会出现莫名其妙的问题。还有就是vivado每次编译出来的下板后现象都不一样,并且vivado没有报错的情况,这些问题的罪魁祸首就是时序紊乱,也可以说是时序违规。
2024-01-03 13:13:33
900
2
原创 手把手教你纯PL配置ad9361/ad936x
因为ADI官方,只提供了利用软件(SDK)和硬件平台(vivado)去配置AD936x,但是在一些工程中,这种方法很难去应用到实际的项目中,所以给大家介绍一个纯硬件配置AD936x的一个详细教程。我用的是zedboard+ad9361,和我的硬件一样的伙伴,可以完全按照我的步骤进行,FPGA芯片为zynq7020的应该也可以。这个系列我已经写完了很久了,但是还要很多小伙伴不知道这个系列连接在哪,这章我给大家总结一个配置ad9361的学习目录,让大家跟好的学习和配置9361.这便是我最大的幸运!
2023-12-20 11:02:02
2862
1
原创 手把手教你学会 Xilinx PCIE/XDMA 读写DDR系列(一) DDR/MIG配置详细步骤
在实现FPGA和处理器、PC、ARM打交道的时候,有很多种方式进行通信,具体有以下几种实现方式:又上图可以看的出来,PCIE的优势远远大于其他的通信方式,并且通信速度也是最快的一种,最高可以达到128Gbps。Xilinx从15年前,V4系列开始,一直在PCIe的解决方案上深耕,提供众多的应用方案级的解决方案,方便用户专注于自己的应用。早期,Xilinx提供的有Application Notes,例如XAPP859,XAPP1052等,构建了基本的双向数据传输。
2023-12-19 16:25:22
6615
1
原创 全网最全面的vivado工程压缩至几Kb/vivado工程免费压缩教程/vivado工程大瘦身/vivado工程生成tcl脚本/vivado还原tcl脚本文件
在平常的FPGA调试过程中,经常会遇到Vivado工程非常庞大的情况,其大小可能达到数百兆甚至几个G的级别。如果存在大量的调试版本,这样的工程大小可能超过了几个T的硬在平常的FPGA调试过程中,经常会遇到Vivado工程非常庞大的情况,其大小可能达到数百兆甚至几个G的级别。如果存在大量的调试版本,这样的工程大小可能超过了几个T的硬盘空间。那么我们该如何应对呢?实际上,Vivado提供了一种使用Tcl命令保存Vivado工程为.tcl脚本的方法,这样可以大幅减小工程的存储空间。
2023-12-18 10:53:41
3080
1
原创 FPGA纯逻辑控制AD936x/AD9361配置寄存器/AD9361纯硬件设计/AD9361配置流程/zynq配置ad9361//AD936x教程/纯Verilog配置AD9361(三)
因最近公司需要,借此机会和大家一起学习AD9361制作不易,记得三连哦,给我动力,持续更新!因为ADI官方,只提供了利用软件(SDK)和硬件平台(vivado)去配置AD936x,但是在一些工程中,这种方法很难去应用到实际的项目中,所以给大家介绍一个纯硬件配置AD936x的一个详细教程。因为是手把手教程,所以有些大佬不要嫌麻烦。同时后期会更新工程上的项目设计。废话不多说了,直接进入主题!和我一起学习神秘而又神奇AD936x吧!少年!
2023-08-11 17:43:18
6086
11
原创 vivado如何压缩bit文件
(5)如何退出synthesized Design ,并保持刚刚的设置。只有500k,少了一个数量级,对以后写入到flash,省了好大的内存。(1)首先打开synthesized Design。(3)点击configure addition bit。(4)选择使能enable bit compress。为其分配管脚,如何进行综合、实现、生成bit流。(2)依次点击Tools→settings。2、没有压缩前的bit流文件。3、对bit流文件进行压缩。(6)重新生成bit流文件。1、首先创建一个工程。
2023-08-04 15:15:30
2662
1
原创 AD936x Evaluation Software生成的脚本转换成Verilog语言/AD9361配置寄存器/AD9361纯硬件设计/AD9361手把手教程/纯Verilog配置AD9361(二)
在上一章节中,我们使用了 Analog Devices 公司提供的 AD936X Evaluation Software 软件生成了一个寄存器配置的脚本文件,命名为 trans.cfg,其中包含了许多寄存器的配置参数。然而.cfg格式的脚本只能在ADI提供的iio中使用,这个文件并不能直接在 FPGA 工程中调用,因为它的格式与我们需要的函数形式不匹配,需要对文件格式进行修改,将其转换为函数的形式。手动一行一行地修改显然是不可行的,因为配置文件非常庞大,修改起来非常费时费力。因此,我们需要找出配置文件的规律
2023-08-02 16:00:22
4902
3
原创 zynq使用petalinux进行点灯实验(AXI_GPIO)
首先介绍一下我是用的硬件设备和环境:本次实验使用的硬件设备和环境为:zedboard (zynq7020),vivado2018.3,petalinux2018.3,如果硬件跟我一样的小伙伴可以跟着我的步骤做。加油吧!
2023-08-01 14:33:03
856
1
原创 FPGA配置AD9361/AD9361配置流程/zynq配置ad9361/AD936x教程/纯逻辑控制AD936x----AD936x Evaluation Software配置流程
因最近公司需要,借此机会和大家一起学习制作不易,记得三连哦,给我动力,持续更新!因为ADI官方,只提供了利用软件(SDK)和硬件平台(vivado)去配置AD9361,但是在一些工程中,这种方法很难去应用到实际的项目中,所以给大家介绍一个纯硬件配置ad9361的一个详细教程。因为是手把手教程,所以有些大佬不要嫌麻烦。同时后期会更新工程上的项目设计。废话不多说了,直接进入主题!和我一起学习神秘而又神奇ad9361吧!少年!
2023-07-27 13:58:08
8787
18
原创 AD9361从入门到入土系列----AD9361数据传输串行外设接口(SPI)
AD9361中SPI的设计和讲解,SPI总线为AD9361的所有数字控制提供机制。每个SPI寄存器为8位宽,每个寄存器包含控制位、状态监视器或控制器件所有功能的其他设置。
2023-07-10 13:56:13
6280
1
原创 AD9361从入门到入土系列----AD9361工作在LVDS模式下数据传输
双总线全双工LVDS模式通过写入SPI寄存器来启用。在这种模式下,P0和P1都作为LVDS信号使能,数据总线(D[11:0])被分成独立的子总线(RX_D[5:0]和TX_D[5:0])。每个子总线同时工作,允许BBP和AD9361之间的发送和接收数据全双工。传输数据(TX_D[5:0])、FB_CLK和TX_FRAME由BBP驱动,使得FB_CLK之间的建立和保持时间。
2023-07-06 13:43:24
2543
1
纯PL配置ad9361配置文件转换为verilog软件
2024-07-19
xenomai3.1内核源码、ipipe补丁、zynq配置文件
2024-07-18
XDMA Linux驱动 vivado2019.2
2024-07-01
UART发送模块,Verilog语言实现
2024-03-18
XDMA驱动程序(Windows版本)
2024-03-04
纯verilog配置9361教程/纯PL配置9361/纯逻辑配置9361
2024-01-18
vscode关联vivado实现自动跳转到定义位置exe文件
2024-01-15
vscode安装包,配合vivado联合vscode使用
2024-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人