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

原创 FPGA----双馈风力发电机的数字孪生
abc-dq坐标系的转换模块、笛卡尔坐标系与极坐标系的转换模块、PI模块、取余模块、取整模块、低通滤波器模块、陷波器模块、锁相环模块、矩阵四则运算模块、归一化模块、支持任意浮点数输入的三角函数求解模块(sin、cos、atan2)等等。整个项目包含3W行左右的Verilog代码,在此过程中,本人亲自开发了。记录一下,历时一个月终于把DFIG的Verilog代码写完了。各种matlab常用科学计算模块,需要的大家可以直接联系我。...
2022-07-29 23:55:09
494
1
原创 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
925
原创 FPGA----Verilog仿真与综合宏定义(Vivado编译——全网唯一)
问题的由来:我们在写Verilog时,有一些代码可能是仿真需要的,但不需要综合,那么在Vivado环境中如何处理呢?如上图所示,使用`ifdef以及`endif将仿真代码部分包裹起来即可。2、如何在Vivado实现仿真时自动宏定义呢?
2025-03-21 14:56:29
266
原创 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
261
原创 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
1167
原创 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
1322
1
原创 FPGA----ZCU106使用petalinux 2019.1的第一个app开发
本文实现了xilinx sdk与petalinux的联合使用,在sdk仿真完毕后,可以将程序移植到petalinux中运行
2023-11-23 16:52:54
740
原创 FPGA----ZCU106使用petalinux 2019.1(全网最详)
本文完成了Vivado 2019.1版本下的基于ZCU106的全部linux系统移植
2023-11-22 15:45:00
3402
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
2435
原创 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
817
原创 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
2353
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
1972
原创 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
2552
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
924
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
1230
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
358
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
3501
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
638
原创 nodejs调用matlab的.m文件
在一些web服务中,后台采用nodejs轻量化服务器接口,而matlab的.m文件编写了算法模块,两者调用时,官方没有提供相应的文档(当然也可能我没找到)。2、pycharm 中新建python项目,并建立test.py文件,将matlab的.m文件拖入到同一目录下。
2023-01-01 18:44:56
1747
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
3815
9
原创 基于FPGA的Hamiton方程--辛几何算法实现(全网唯一)
本实验做的是简单谐振子运动方程组的运算,会给出matlab代码以及相应的FPGA仿真截图。
2022-11-25 13:11:21
1202
2
原创 SoC-ZCU106求解非线性方程(一):环境安装
主要的解决的问题是:PL侧给PS传输数据,然后PS将数据作为已知量求解非线性方程,为了简化问题复杂度,本次实验只在vivado中例化arm,但并不传入数据,主要集中在sdk侧的开发。
2022-11-16 19:40:45
772
原创 电力系统中的Kron简化,含MATLAB代码(全网唯一)
电力系统中的Kron简化简单介绍一下电力系统导纳矩阵简化方法Kron简化(Kron Reduction)。本文含有MATLAB代码,大家直接复制即可
2022-11-06 23:00:25
1203
原创 FPGA-半精度浮点数(float_16)及其VHLS求逆实现方法
1、16*16半精度浮点数矩阵求逆的算法。半精度浮点数属于一个新的数据类型。float16是英伟达做并行计算为减少存储空间而定义的新的数据格式,只占用16位,相当于2个字节的内存,在IEEE 754-2008中,它被称作binary16。...
2022-08-29 16:05:37
1493
原创 FPGA-ZCU106-PL侧读写ddr4(全网唯一)
本次给大带来了ZCU106的PL侧读写ddr4的教程,本教程是全网唯一ZCU106教程。本教程采用的是xilinx的ddr4的IP核的AXI4接口开发的,因此需要先了解AXI4总线协议。
2022-07-23 23:13:20
8981
36
原创 FPGA----xilinx Floating IP核浮点数转为定点数bug及解决方案
如果我们实现Matlab的ceil函数时,输入的数据无论正负均需要+1,然后转为浮点数。问题描述当我们设置输入为浮点数,输出为Q64_32(32位整数与32位小数)时,如果输入的浮点数为正数,则输出结果无异议。而对于Mod函数,由于求解过程,我们将负数(-5.625)的整数部分又转为了整数(直接取反),因此对Mod函数无影响。...
2022-07-19 19:02:36
1336
2
原创 FPGA----Verilog实现abc坐标系转dq坐标系(全网唯一)
1、本人采用Verilog实现了abc-dq、dq-abc、极坐标与笛卡尔坐标、低通滤波器、取余函数、最大值、最小值、PI比例积分器的模块编写,接下来几篇会将测试代码与测试结果一一列出,大家有需要请联系我的邮箱。 ............
2022-07-02 23:14:31
2917
2
原创 FPGA----Vivado对Verilog代码加密(生成网表方式)
1、问题的提出:当有些人想浏览我们辛辛苦苦写的代码时,我们最好的方式是对代码进行加密。那此时应该怎么办呢?这就用到了网表2、解决方案:直接上链接Vivado生成网表文件_yundanfengqing_nuc的博客-优快云博客_vivado生成网表如何操作?以之前写的采用有限状态机实现序列检测模块为例,现在写了个两路“101”序列检测器模块(就是把原来的例化两个),该模块的结构如下:module fsm_test_top( //系统IO input clk, input rst, //两路序列输入 inpu
2022-06-27 22:46:02
5070
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
2303
8
原创 FPGA--ZCU106通过SFP+/SGMII模块传输数据-第一讲(全网唯一)
2 网络数据协议讲解TCP、UDP、IP、MAC应用层相当于电脑的比如浏览器请求、文件传输请求,对于FPGA来讲,就是数据生成部分或者数据请求部分;传输层就是说数据包通过什么协议进行传输,TCP协议传输可靠但速度慢、UDP传输不可靠但速度快(QQ就是UDP传输);网络层就说,数据包要发送给谁,或者要不要接收这个数据包,比如送快递的,需要知道你的手机,这个对应的就是设备的IP地址;数据链路层就是指示你的固定位置,比如你的户口本、者身份证住址、快递的接收地点,这个应该就是相当于MAC地址;物理传输介质就是光纤
2022-06-23 16:24:53
3312
原创 FPGA----VHLS补丁及采用LU分解(Chosky分解)求解矩阵的逆
1、由于Xilinx软件自身问题,在2022年以后,版本时间溢出导致VHLS不能生成IP核心,之前说的是修改系统时间,现在Xilinx有补丁了,只要把补丁“automg_patch_20220104.tcl”这个文件,移动到“xxx/xxx/Vivado/版本号/common/scripts”例如“D:\vivado\Vivado\2019.1\common\scripts”文件下即可。下面是下载连接,不需要积分哦!VivadoHLS|ExportRTL报错“ERROR:[IMPL213-28]-嵌入式
2022-05-02 16:49:51
3102
4
原创 FPGA----IP核cordic-translate使用(关于定点数的映射问题,全网最详)
1、本人目前亲自开发了,复数矩阵求逆(包括复数矩阵的四则运算,设C=A+Bi,可以求解A是非奇异矩阵时的任何复数矩阵,由于代码并行程度过高,在个人电脑64g内存条件下32维矩阵已经不能仿真),需要的看本人资料。下面是8*8复数矩阵求逆仿真截图2、本文建立在前两篇文章的基础之上,需要有定点数的知识积累,看不懂的点击下面传送门补课:FPGA----IP核cordic使用_发光的沙子的博客-优快云博客之前说过,使用IP核要先百度,然后看文档,然后再百度最后使用。本篇文章以cord IC核的s..
2022-03-17 22:56:37
6575
11
原创 FPGA----Verilog复数运算
1、好久没写文章了,有点手生,大家尽量看。本文章代码实现了32位浮点数(即一个复数为64位)的复数计算,且本人实现了32*32复数矩阵的求逆运算,需要的请查看作者资料邮箱。2、Verilog复数运算实验任务:实现A=1*4(虚数位32位、实数位32位),B=4*1(虚数位32位、实数位32位)全浮点数复数矩阵计算。本代码并行度高、代码复用性强。实验软硬件:ZCU106、Vivado 2019.1实验知识:(a+bi)*(c+di)=(ac-bd) + (bc+ad)i。因此需要4个乘法器,一
2022-02-11 11:28:39
5956
5
原创 FPGA----Verilog矩阵求逆
1、本人使用纯Verilog语言实现了方阵矩阵求逆的并行计算,代码复用性强、可扩展性强、包含矩阵的四则运算,下面的例子是8*8的,本人代码可以向上封装以2^n阶数增长。2、下面是8*8矩阵的仿真截图。实验结果为:3e08542e(0.13313362002372742)be255bd1(-0.1614830642938614)bea23938(-0.31684279441833496)3ed3ece6(0.41391676664352417)bd8e6c0a(-0.06954200...
2022-01-11 00:07:01
7902
100
原创 FPGA----FPGA中术语及verilog矩阵乘法及VHLS(Vivado HLS)最近不能产生IP的解决方案
1、由于实现了暂态程序中电压初始化的求解,想看看占用板卡资源就尝试综合了以下程序,于是看到了报表后一头雾水。LUT指的是查找表,FF指的是触发器(可以存储1bit的数据)。看了上图我们知道FF占用很多,但实际的资源也很大(但是将来可能需要解决两块板子的级联问题)。相关属于请参考这篇文章,写的很是详细:Vivado HLS 三:基本概念(lut、latch、ff、RAM、ROM、FIFO等)_不缺席的阳光的博客-优快云博客_vivado中lut...
2022-01-05 15:15:19
3171
2
原创 FPGA----IP核float(定点数转浮点数)使用
1、本文紧接上一篇文章,因为我们计算设定的32位的单精度浮点数,但是cordic IP核输出的是32位定点数x(符号位)_x(整数位)_xx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx(小数位),为了方便使用float IP核的计算,因此我们需要将定点数转为浮点数。本片文章为全网第一篇带小数的定点数转浮点数的例程。2、Floating-point IP核使用实验任务:实现sin(±120°)32位定点数转浮点数操作,具体值怎么算的请参考上一篇文章实验软硬件:ZCU106
2022-01-01 22:34:36
9169
3
原创 FPGA----IP核cordic使用
之前说过,使用IP核要先百度,然后看文档,然后再百度最后使用。本篇文章以cord IC核的sin、cos来进行实验。1、定点数、浮点数、反码、补码首先要明确这几个词的概念。废话不多说,直接上例子:采用32位的有符号定点数表示方法,第一位表示符号位(0是正数,1是负数),因此还剩31个位置来表示数据,具体整数部分与小数部分是几位,看自己设定。我们下面假设整数部分2位(因为-pi~pi=-3.14~3.14,2位可以表示3),29位表示小数。Exp1:①1.5=1+0.5=>0(符号位)_
2021-12-31 16:19:23
11588
25
原创 FPGA----PL侧对ram的读写
1、例化模块的输出端口只能是wire型,而不能是reg型,也就是不能更改输出。2、input\output都需要有位宽表示。3、assign变量也是wire型。4、①实验任务:将32位宽的22个数放入PL侧的ddr,并且读取(本实验可以为数组在模块间的传递提供解决方案【数组在Verilog中是不可以作为端口传递的,但是在SystemVerilog中可以】)②实验软硬件:Vivado 2019.1、ZCU106③实验过程:step1:建立test_pl_ddr项目,过程不再赘述st
2021-12-28 23:53:00
1235
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人