- 博客(65)
- 资源 (4)
- 收藏
- 关注

原创 FPGA----双馈风力发电机的数字孪生
abc-dq坐标系的转换模块、笛卡尔坐标系与极坐标系的转换模块、PI模块、取余模块、取整模块、低通滤波器模块、陷波器模块、锁相环模块、矩阵四则运算模块、归一化模块、支持任意浮点数输入的三角函数求解模块(sin、cos、atan2)等等。整个项目包含3W行左右的Verilog代码,在此过程中,本人亲自开发了。记录一下,历时一个月终于把DFIG的Verilog代码写完了。各种matlab常用科学计算模块,需要的大家可以直接联系我。...
2022-07-29 23:55:09
513
1
原创 FPGA----petalinux开机启动自定义脚本/程序的保姆级教程(二)
本文介绍了一种在Debian 8系统上实现开机自启动程序的简便方法,避免了重新编译Petalinux的繁琐步骤。首先,通过安装screen工具来管理后台会话,然后编写启动脚本myapp.sh,并为其添加执行权限。接着,创建一个系统服务myapp.service,配置其启动参数,并通过systemctl命令启用和启动该服务。最后,通过验证服务状态和screen会话,确保程序在系统启动时自动运行。这种方法适用于需要在Linux系统上实现开机自启动的场景,操作简单且高效。
2025-05-12 18:01:50
818
原创 FPGA----基于ZYNQ 7020实现定制化的EPICS程序开发
本文介绍了在PetaLinux环境下开发EPICS程序并调用FPGA驱动的步骤。首先,在Xilinx SDK中创建静态链接库项目,编写并编译生成libadd.a文件。接着,在PetaLinux系统中构建EPICS项目,将静态链接库和头文件移动到指定目录,并修改权限。然后,编写测试程序并编译,确保静态链接库能够正常调用。最后,创建EPICS项目,修改Makefile文件以链接静态库,并编译运行。通过这一系列步骤,成功实现了在PetaLinux下开发EPICS程序并调用FPGA驱动的功能。
2025-05-12 10:50:34
537
原创 FPGA----基于Xilinx SDK实现ZYNQ 7020的APP开发
本文介绍了在Xilinx SDK中开发嵌入式Linux应用程序(ELF文件)并将其在PetaLinux上执行的步骤。首先,针对Cortex-A9用户,需在Xilinx SDK中设置特定的路径,以确保正确导入Linux开发包。接着,通过编译项目生成ELF文件,并将其上传至PetaLinux系统。随后,使用GDB进行调试,包括启动ELF文件、设置断点、运行到断点并检查参数,以及单步执行命令。这些步骤为新手提供了一个清晰的路径,以便在嵌入式Linux环境中成功开发和调试应用程序。
2025-05-10 14:21:44
172
原创 FPGA----基于ALINX提供的debian实现TCF
我们使用自制的image.ub和boot.bin以及ALINX提供的debian8根文件系统,构建了petalinux,但是经测试,该文件系统无法启用TCF服务,即无法与Xilinx SDK建立连接,那么我们应该如何解决?
2025-05-08 10:44:11
506
原创 FPGA----基于ZYNQ 7020实现定制化的EPICS通信系统
引言:前文我们降到了,使用alinx提供的sd卡,直接在上面编译即可。那么,如果我们的在FPGA侧有一些个性化的开发,那么生成的image.ub和boot.bin将于原sd卡中的不一致,我们应该如何坐呢?在 PetaLinux 系统中,将BOOT.BINimage.ub和根文件系统(如)分开存放在不同的分区是一种常见且推荐的做法。这种分离提供了更大的灵活性和可维护性,特别是在需要频繁更新文件系统内容或进行定制开发的场景中。
2025-05-07 17:07:32
860
原创 FPGA----基于ZYNQ 7020实现petalinux文件持久化存储
为了解决petalinux文件固化这个问题,您需要将根文件系统(rootfs)配置为使用 SD 卡上的持久性存储(如 ext4 分区)。
2025-05-06 21:36:40
743
原创 FPGA----基于ZYNQ 7020实现petalinux并运行一个程序
本文实现了xilinx sdk与petalinux的联合使用,在sdk仿真完毕后,可以将程序移植到petalinux中运行petalinux app。
2025-05-06 13:02:31
1111
2
原创 FPGA----基于ZYNQ 7020实现EPICS通信系统
本文详细介绍了如何在EPICS(ExperimentalPhysicsandIndustrialControlSystem)环境中创建一个IOC(Input/OutputController),编写aiRecord的驱动程序,包括dbd文件和C语言源代码,然后编译并启动IOC,最后通过通道访问查看运行结果,实现每秒生成0-999随机数的功能。
2025-05-04 17:06:39
1177
原创 FPGA----ZYNQ7020系列的PS侧与PL侧通过AXI-HP交互(全网唯一最详)
其次是序号8,我买的DDR是2666MHz的,但是Vivado没有这个频率,不过没关系,仍然可以正常运行,需要注意的是,选择序号8的时候,将鼠标移动到下拉菜单,可以出现如下图所示的黄色方框,依据序号1、2、3选择即可。4) PS-PL Configuration 界面,这个界面主要是进行 PS与PL之间接口的配置,主要是 AXI 接口,这些接口可以扩展 PL 端的 AX 接口外设,所以 PL如果要和 PS 进行数据交互,都要按照 AXI总线协议进行,xilinx 为我们提供了大量的 AXI接口的IP 核。
2025-03-26 15:26:33
1130
1
原创 FPGA----Verilog仿真与综合宏定义(Vivado编译——全网唯一)
问题的由来:我们在写Verilog时,有一些代码可能是仿真需要的,但不需要综合,那么在Vivado环境中如何处理呢?如上图所示,使用`ifdef以及`endif将仿真代码部分包裹起来即可。2、如何在Vivado实现仿真时自动宏定义呢?
2025-03-21 14:56:29
372
原创 FPGA----完美解决Windows下[XSIM 43-3409][XSIM 43-3915]错误
则会提示好多红色错误,我提示的有3个环境变量冲突了:MW_MINGW64_LOC、C_INCLUDE_PATH、LIBRARY_path。这个问题是由于windows环境变量配置引起的,Vivado有自己的C编译器,但是如果你Windows也配置了C编译器则会引起错误。大家好久不见,今天开始又要重操旧业了!最近会更新很多关于petalinux的踩坑日记,敬请期待!先更新一个常见问题,使用Vivado仿真时C编译器报错问题。2、在系统环境变量删掉这几个冲突的就能仿真啦!
2025-03-17 19:52:40
367
原创 FPGA----petalinux开机启动自定义脚本/程序的保姆级教程(一)
(3)在文件 /project-spec/meta-user/recipes-apps/myapp-init/files/myapp-init 写入下述代码。这个文件的意思就是把myapp-init 放在/etc/init.d文件下,在linux系统中,放在init.d目录文件下可执行文件都会执行。(2)编辑文件 /project-spec/meta-user/recipes-apps/myapp-init/myapp-init.bb。3、在vivado sdk中编写c/c++程序,并右键打包。
2024-06-16 17:58:20
1268
原创 FPGA----ZCU106的petalinux 2019.1使用USB传输数据
第一种实现方法是,买一条USB转RS232的线,这种一般会用到PL2303芯片,这个我不推荐买绿联的设备,因为我没调试成功(可能买到假的线了,但是电脑是测试是没问题的),所有的驱动全部测试过了。2、对于windows系统下的USB可以很容易的外接多类型设备,这是由于windows有很多驱动才足以让其支持外界拓展设备(这也是为什么鸿蒙不被看好的原因,没有驱动生态),那么。③购买以CH340/341芯片为基础的USB转TTL设备,购买TTL转RS485的设备,淘宝上一搜一大堆,我用的是sisym的。
2024-03-26 13:41:21
1362
1
原创 FPGA----ZCU106使用petalinux 2019.1的第一个app开发
本文实现了xilinx sdk与petalinux的联合使用,在sdk仿真完毕后,可以将程序移植到petalinux中运行
2023-11-23 16:52:54
1152
原创 FPGA----ZCU106使用petalinux 2019.1(全网最详)
本文完成了Vivado 2019.1版本下的基于ZCU106的全部linux系统移植
2023-11-22 15:45:00
3605
1
原创 FPGA----VCU128的DDR4无法使用问题(全网唯一)
这是关于“[Mig 66-119] Phy core regeneration & stitching failed. Please check vivado.log and debug_core_synth.log files in the directory: C:/Users/DELL/AppData/Local/Temp/32668 to debug the problem.3、需要注意的是,VCU128的DDR4配置,应当按如下方法配置,不然无法使用。这是关于DDR4的所已知问题的解决方案。
2023-09-15 12:32:46
2602
原创 FPGA----VCU128的SCUI(上位机软件)无法使用问题(全网唯一)
这是由于本软件是基于Python开发的,且开发人员是外国人,他并没有将 # -*- coding: UTF-8 -*- 写入文件。②解压后打开BoardUI.exe,如果驱动安装正确,则serial number可以被自动识别。如果是production版本,就选择Board就选择VCU128_PROD;⑤打开设备管理的端口,端口下的所有除英文外的设备卸载,这里注意,只是卸载,1、第一次使用VCU128,发现很坑,记录一下使用方法。如果是ES版本,Board就选择VCU128;安装这个6.7版本的。
2023-09-12 22:28:33
863
原创 FPGA----Vivado SDK创建并使用静态链接库(C/C++代码移植)
9、将将b.cpp、b.h添加到项目中,将a.lib以及a.h移动到项目中(如果a.cpp调用了外部包,需要将外部包也移动到b项目的目录下。2、假设有文件a.cpp、a.h、b.cpp、b.h以及main.cpp,假设main调用了b,b调用了a。⑥重复步骤1、2新建circuit_sim项目,不建立load_circuit_from_case的原因是,这个文件调用了SD卡读取的xilffs库,我一直没有测试成果,所以我就认为凡是调用这个库的文件,均不可生成静态链接库了。下面的三个选项至关重要,请牢记。
2023-08-14 00:49:36
2472
4
原创 C++代码生成静态LIB链接库及其调用方法
9、将将b.cpp、b.h添加到项目中,将a.lib以及a.h移动到项目中(如果a.cpp调用了外部包,需要将外部包也移动到b项目的目录下。2、假设有文件a.cpp、a.h、b.cpp、b.h以及main.cpp,假设main调用了b,b调用了a。6、将a.cpp、a.h添加到项目中,点击生成解决方案。10、在b项目的b.h中,之前的代码是只引用头文件,现在将lib文件也添加进去即可,一定要配置与a的平台一样,前面为x86则现在b项目也改为x86。12、新建Main项目,重复步骤4、5、9、10。
2023-08-09 16:11:45
2016
原创 FPGA----UltraScale+系列的PS侧与PL侧通过AXI-HP交互(全网唯一最详)附带AXI4协议校验IP使用方法
大家好,今天给大家带来的内容是,基于AXI4协议的采用AXI-HP通道完成PL侧数据发送至PS侧(PS侧数据发送至PL侧并没有实现,但是保留了PL读取PS测数据的接口)本实验完成了,PL侧自定义数据传输到PS侧,并在PS侧写加软件,完成了PL侧传入数据的求和功能,发挥了整个SoC的功能,为后续PL侧加速计算,PS侧数据分析奠定了基础。此外,Xilinx为方便用户调试AXI4协议,还提供了。配置好axi vip后,将下面这三根线引出,然后配追地址,需要注意的是,axi vip只有2M,因此不能大量读写数据。
2023-08-05 21:24:18
2604
3
原创 FPGA----ZCU106更换DDR4解决方案(全网唯一)
每个数字在对应位置上选好即可,需要注意的是。其次是序号8,我买的DDR是2666MHz的,但是Vivado没有这个频率,不过没关系,仍然可以正常运行,需要注意的是,选择序号8的时候,将鼠标移动到下拉菜单,可以出现如下图所示的黄色方框,依据序号1、2、3选择即可。step2:打开淘宝,搜索笔记本DDR4购买内存条,我买的是骇客2666MHz 16G金士顿内存条。2、问题的提出:在xilinx SDK中进行大批量数组运算时,如果板子的自带的DDR不够,则需要购买新的内存条,此时我们应当如何设置呢?
2023-07-27 21:51:01
961
1
原创 C#调用Matlab--解决外部引用包问题(全网唯一)
②C#可以调用python,但是由于python执行matlab函数时会调用matlab.engine包,而这个包首先需要与自己电脑的matlab版本适配,其次C#现在只开发了IronPython2.7与IronPython3.4,也就是仅支持2.7与3.4版本的python,而2018年后的matlab已经弃用了低于3.4版本的python,因此这样就造成了此路不太容易成功的问题。当然,我用的是“pyinstaller -D xxxx.py”这个命令,因为执行第二条命令生成的exe一直存在路径问题。
2023-06-28 20:05:54
1268
2
原创 FPGA----ZCU106与RTDs的udp数据收发实验
3、实验任务:①TRDs发送数据到FPGA,FPGA解析数据。(RTDs的收发数据是有GUI界面的,配置一下即可,需要我们完成的就是SDK的网络协议代码编写)4、实验软硬件:Vivado2019.1、RSCAD FX、ZCU106、RTDs(NOVACOR)、GTNET网卡。2、实验目标:依据RTDs设备的GTNET SKT网络协议,完成ZCU106 PS侧与RTDs的HIL实验。将RSCAD传入数据通过串口打印,并将整型615以及浮点型3.14两个数据发送至RSCAD。设置两个输入,两个输出。
2023-05-15 15:15:35
379
1
原创 ZCU106的FMC接口AD/DA(全网唯一、全网最详)
上图为FL1010的引脚图,我们只用J2端口(标黄的部分),记住VADJ(红框)这个电平,后面debug会用到。AN108,一个DA端口一个AD端口,现在买的都是黑色的,图中绿色的是老早以前的了,我用的黑色的。上图为AN108的引脚图,共34针,与FL1010对其,接上即可。马上就要毕业啦,好久没写文章了,今天给大家带来硕士期间的最后一次AD/DA实验的实验记录,废话少说,先看连接与测试视频。②解压,打开config.json,滑倒最下面,将CP210x改为你的驱动即可,我的是CP2108。
2023-02-07 19:12:59
3644
6
原创 Flask框架,RuntimeError: No application found.问题完美解决方案
问题的发生:在Flask框架中引入APScheduler 定时器功能后,如果调用外部文件夹中的函数,则会引发"RuntimeError: No application found. Either work inside a view function or push an。解决方案:在lib文件夹下新建初始化函数,用于生成全局APScheduler。
2023-01-10 11:37:11
656
原创 nodejs调用matlab的.m文件
在一些web服务中,后台采用nodejs轻量化服务器接口,而matlab的.m文件编写了算法模块,两者调用时,官方没有提供相应的文档(当然也可能我没找到)。2、pycharm 中新建python项目,并建立test.py文件,将matlab的.m文件拖入到同一目录下。
2023-01-01 18:44:56
1776
6
原创 FPGA----ZCU106基于axi-hp通道的pl与ps数据交互(全网唯一最详)
大家好,今天给大家带来的内容是,基于AXI4协议的采用AXI-HP通道完成PL侧数据发送至PS侧(PS侧数据发送至PL侧并没有实现,但是保留了PL读取PS测数据的接口)本实验完成了,PL侧自定义数据传输到PS侧,并在PS侧写加软件,完成了PL侧传入数据的求和功能,发挥了整个SoC的功能,为后续PL侧加速计算,PS侧数据分析奠定了基础。
2022-11-29 19:14:48
3936
9
原创 基于FPGA的Hamiton方程--辛几何算法实现(全网唯一)
本实验做的是简单谐振子运动方程组的运算,会给出matlab代码以及相应的FPGA仿真截图。
2022-11-25 13:11:21
1232
2
原创 SoC-ZCU106求解非线性方程(一):环境安装
主要的解决的问题是:PL侧给PS传输数据,然后PS将数据作为已知量求解非线性方程,为了简化问题复杂度,本次实验只在vivado中例化arm,但并不传入数据,主要集中在sdk侧的开发。
2022-11-16 19:40:45
790
原创 电力系统中的Kron简化,含MATLAB代码(全网唯一)
电力系统中的Kron简化简单介绍一下电力系统导纳矩阵简化方法Kron简化(Kron Reduction)。本文含有MATLAB代码,大家直接复制即可
2022-11-06 23:00:25
1237
原创 FPGA-半精度浮点数(float_16)及其VHLS求逆实现方法
1、16*16半精度浮点数矩阵求逆的算法。半精度浮点数属于一个新的数据类型。float16是英伟达做并行计算为减少存储空间而定义的新的数据格式,只占用16位,相当于2个字节的内存,在IEEE 754-2008中,它被称作binary16。...
2022-08-29 16:05:37
1529
原创 FPGA-ZCU106-PL侧读写ddr4(全网唯一)
本次给大带来了ZCU106的PL侧读写ddr4的教程,本教程是全网唯一ZCU106教程。本教程采用的是xilinx的ddr4的IP核的AXI4接口开发的,因此需要先了解AXI4总线协议。
2022-07-23 23:13:20
9267
36
原创 FPGA----xilinx Floating IP核浮点数转为定点数bug及解决方案
如果我们实现Matlab的ceil函数时,输入的数据无论正负均需要+1,然后转为浮点数。问题描述当我们设置输入为浮点数,输出为Q64_32(32位整数与32位小数)时,如果输入的浮点数为正数,则输出结果无异议。而对于Mod函数,由于求解过程,我们将负数(-5.625)的整数部分又转为了整数(直接取反),因此对Mod函数无影响。...
2022-07-19 19:02:36
1384
2
原创 FPGA----Verilog实现abc坐标系转dq坐标系(全网唯一)
1、本人采用Verilog实现了abc-dq、dq-abc、极坐标与笛卡尔坐标、低通滤波器、取余函数、最大值、最小值、PI比例积分器的模块编写,接下来几篇会将测试代码与测试结果一一列出,大家有需要请联系我的邮箱。 ............
2022-07-02 23:14:31
2995
2
原创 FPGA----Vivado对Verilog代码加密(生成网表方式)
1、问题的提出:当有些人想浏览我们辛辛苦苦写的代码时,我们最好的方式是对代码进行加密。那此时应该怎么办呢?这就用到了网表2、解决方案:直接上链接Vivado生成网表文件_yundanfengqing_nuc的博客-CSDN博客_vivado生成网表如何操作?以之前写的采用有限状态机实现序列检测模块为例,现在写了个两路“101”序列检测器模块(就是把原来的例化两个),该模块的结构如下:module fsm_test_top( //系统IO input clk, input rst, //两路序列输入 inpu
2022-06-27 22:46:02
5207
3
原创 FPGA--ZCU106通过SFP+/SGMII模块传输数据-第二讲(全网唯一)
有了上一讲的基础知识后,本篇进行基于SoC的PL与PS侧协同完成通过网口SGMII的udp传输,本教程为全网第一篇关于ZCU106开发板的教程,先上视频看效果。1、实验任务:通过ZCU106的SGMII网口与PC机完成基于UDP协议的数据传输2、实验软件:Vivado 2019.1、Vivado SDK 2019.1、网络调试助手(自行下载)实验硬件:ZCU106、网线1一条......
2022-06-23 18:24:18
2349
8
原创 FPGA--ZCU106通过SFP+/SGMII模块传输数据-第一讲(全网唯一)
2 网络数据协议讲解TCP、UDP、IP、MAC应用层相当于电脑的比如浏览器请求、文件传输请求,对于FPGA来讲,就是数据生成部分或者数据请求部分;传输层就是说数据包通过什么协议进行传输,TCP协议传输可靠但速度慢、UDP传输不可靠但速度快(QQ就是UDP传输);网络层就说,数据包要发送给谁,或者要不要接收这个数据包,比如送快递的,需要知道你的手机,这个对应的就是设备的IP地址;数据链路层就是指示你的固定位置,比如你的户口本、者身份证住址、快递的接收地点,这个应该就是相当于MAC地址;物理传输介质就是光纤
2022-06-23 16:24:53
3350
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人