- 博客(19)
- 收藏
- 关注

原创 使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块)
使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块)在Vivado TCL命令窗口中可以通过调用write_edif命令将用户自定义模块封装成.edf网表文件(类似ISE里的.ngc文件),但按照官方给出的参考用法生成的网表文件对自定义模块有种种限制,即待封装的模块不能含有Xilinx IP(少部分IP可以包含,如RAM IP、FIFO I...
2019-01-22 11:10:18
12454
22
原创 基于FPGA的softmax函数优化及实现
FPGA异构计算是一个趋势,在AI推理、深度学习中广泛使用FPGA进行加速,减小系统延迟。而AI推理中有一个组件被广泛使用,各种网络模型中都有其身影,那就是激活函数。激活函数中又分很多种,其中softmax是使用最多的一种,但由于其是非线性函数,而FPGA不擅长处理非线性函数,所以如何用更少的资源达到类似的效果,进行激活函数的优化就至关重要。本文即有标准的基于FPGA的softmax函数实现过程,也有基于FPGA的softmax函数优化实现过程,且给出了两者的资源消耗情况对比。
2023-07-15 16:07:13
3100
2
原创 基于FPGA的一维卷积神经网络算法实现(1D-CNN、BNN的FPGA加速实现)
本文介绍一种基于FPGA的1维卷积神经网络算法加速实现的方案,其中为了进一步提升运算速度,除了第一层卷积采用的是普通卷积运算(CONV),其余卷积层和池化层采用的是二值化运算,即二值化的卷积与池化。运算过程包含了卷积层、池化层、批标准化层、全局池化、二值化卷积、全连接层、激活函数层,均采用RTL级代码实现,即全部采用Verilog HDL代码实现,兼容Intel Altera FPGA 与 AMD Xilinx FPGA,便于移植。
2023-07-15 12:12:25
4984
1
原创 Linux(Centos)环境下FPGA EDA软件启动命令
1.Intel Quartus安装完软件后先创建一个脚本文件:ase.sh,其内容为:export MTI_HOME=/home/work/soft_install/Intel_Quartus/modelsim_aseexport PATH=$MTI_HOME/linux_x86_64/:$MTI_HOME/bin/:$PATHexport QUARTUS_HOME=/home/work/soft_install/Intel_Quartus/inteldevstack_171/intelFPGA_
2021-07-28 17:00:44
1128
1
原创 VNC:windows(win10)远程登陆linux(Centos)桌面环境
1.首次安装方法:参考链接:http://www.cnblogs.com/linux-wangkun/p/5970046.htmlLinux端安装步骤:安装命令:yum install tigervnc-server tigervncWin端需要安装的软件:tigervnc下载地址:http://pan.baidu.com/s/1pLIqEq32.启动VNClinux端开启VNC端口1vncserver :1linux端开启VNC端口2vncserver :2第一次开启会提示设
2021-06-11 15:39:29
742
1
原创 3D点云SECOND算法中ConvTranspose2d反卷积具体运算过程实例分析
在3D点云SECOND模型中涉及到了ConvTranspose2d反卷积运算,具体ConvTranspose2d反卷积的运算原理可自行搜索了解相关内容,本文主要结合实例分析具体运算的数学过程。ConvTranspose2d反卷积 输入特征数据:feat.shape = (1, 256, 100, 88)#注后续为了便于在可视化feat数据,均将特征图由4维转换为3维,即通过:feat= feat.reshape(feat.shape[1],feat.shape[2],feat.shape[3])#
2020-11-24 16:31:38
576
原创 python将list类型的数据保存成一个文件及加载.npz文件后再转换为list类型的数据
参考:Python教程:NumPy IOnumpy.savez() 函数将多个数组保存到以 npz 为扩展名的文件中。numpy.savez(file, *args, **kwds)参数说明:file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。kwds: 要保存的数组使用关键字名称。实例import num
2020-09-10 12:39:26
2321
原创 python numpy数组的拼接
python下将两个三维数组拼接为一个数组的方式:import numpy as npl1 = np.zeros((7,8,10), np.float32)l2 = np.ones((7,8,10), np.float32)L1 = np.vstack((l1,l2))#纵向拼接(shape[0]方向)L2 = np.hstack((l1,l2))#横向拼接(shape[1]方向)L3 = np.dstack((l1,l2))#深度拼接(shape[2]方向)print('数组l1的尺
2020-09-08 22:03:42
1022
原创 使用Quartus将用户模块封装成网表文件:Quartus17.0及之前版本.qxp文件、Quartus17.1及之后版本.qdb文件(下)
Xilinx FPGA平台下如何封装用户的源代码,形成网表文件的操作教程,具体见:使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块)Altera/Intel FPGA平台下如何封装用户的源代码,形成网表或加密文件并在其他工程中调用的具体实现教程分上下两部分,本文为下部分,讲述Quartus17.1及之后版本用户逻辑封装及调用教程。Quartus17.0及之前版本用户逻辑封装及调用教程为上部分内容,具体见:使用Quartus将用户模块封装成网表
2020-07-29 15:22:52
4281
5
原创 Python将十进制数据转换为指定位宽的二进制字符串的方法
方法一:定义一个函数 to_bindef to_bin(value, num):#十进制数据,二进制位宽 bin_chars = "" temp = value for i in range(num): bin_char = bin(temp % 2)[-1] temp = temp // 2 bin_chars = bin_char + bin_chars return bin_chars.upper()#输出指定位宽的二进制字符串调用该函数示例:out_bin = to_b
2020-06-01 14:59:03
8936
原创 使用Quartus将用户模块封装成网表文件:Quartus17.0及之前版本.qxp文件、Quartus17.1及之后版本.qdb文件(上)
前面一篇文章介绍了Xilinx FPGA平台下如何封装用户的源代码,形成网表文件的操作教程,具体见:使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块)今天就来讲一讲在Altera/Intel FPGA平台下如何封装用户的源代码,形成网表或加密文件并在其他工程中调用的具体实现。本文共分为两部分,每部分各两小节,详细叙述Quartus17...
2020-01-09 20:51:59
7437
原创 在ModelSim中将txt文本文件的十六进制数据导入到工程中作为信号源的方法
前面一篇文章介绍了在FPGA仿真中如何利用ModelSim将仿真过程中产生的数据保存到txt中进行后续分析,具体见:ModelSim中将仿真数据/波形/wave保存到txt文件的方法今天就来讲一讲如何将txt文本中的的十六进制数据导入到工程中作为信号源进行仿真:parameter LINUX = 1'b0 ,parameter IMG_LEN = 256*256;reg...
2019-12-24 16:27:40
2013
原创 Win10系统(无GPU)环境/Anacoda:Python小白如何从入门到成功运行YoloV3图片+视频demo
作为深耕FPGA多年的老司机,最近几年入坑AI异构计算FPGA加速领域,免不了要与各种深度学习算法模型打交道,但又不懂python,可是急坏了我这名老司机。这不,最近杠上了Python,下面就详细介绍一下python小白的我如何在win10上一步步搭建环境并最终成功运行YoloV3的过程。以下操作过程都是在win10系统下进行的。1.学习Python基础知识从python基础教程开始。先...
2019-08-21 14:21:41
1367
3
原创 ModelSim中将仿真数据/波形/wave保存到txt文件的方法
利用ModelSim进行仿真时,有时需要将数据导出用其他工具如Matlab进行分析,这时可以用fwrite函数来实现,具体方法如下:假设data_o为256bit位宽的数据,现需要将其保存到txt文件中,每行保存一个有效数据,valid_o为其对应的有效标志信号。wire valid_o ;//待保存数据有效标志信号,高电平有效wire [255:0] data_o ;//待...
2019-06-05 17:18:37
8470
6
原创 Centos7.5安装PetaLinux2018.2
在Centos7.5上安装Petalinux-v2018.2,具体安装包为:petalinux-v2018.2-final-installer.run按照官方用户手册UG1144中如下命令执行安装:mkdir -p /opt/pkg/petalinux./petalinux-v2018.2-final-installer.run /opt/pkg/petalinux则会报如下错误:...
2019-05-22 17:38:06
3961
2
原创 Centos(Linux)系统下卸载Quartus安装的补丁或Quartus
1.找到Quartus安装路径下的uninstall文件夹该文件内包含已安装的所有Quartus相关的卸载程序2.修改文件的权限1sudo chmod -R 777 /home/soft_install/Quartus_171/uninstall3.执行卸载程序找到要卸载的程序,并执行,如要卸载quartus-17.1.1-Patch-1.38-uninstall.run,则执行如下操...
2019-03-22 16:17:29
2573
原创 Centos系统下无法识别Xilinx(Vivado) JTAG的解决方法
问题描述利用Vivado HARDWARE NANAGER无法识别到JTAG,报错信息如下:ERROR: [Labtoolstcl 44-494] There is no active target available for server at localhost. Targets(s) ", jsn1" may be locked by another hw_server.问题原因...
2019-03-14 15:32:32
4101
8
原创 Zynq UltraScale+ MPSoC在JTAG插上后内嵌ARM(CPU)卡死问题及解决方法
1. 问题描述Zynq UltraScale+ MPSoC在未插JTAG情况下,ARM(CPU)运行PetaLinux系统正常,不会出现卡死现象。当插上JTAG准备调试时,ARM会出现卡死现象,情况分两种:上电之前插上JTAG系统会卡死在初始化过程中(卡死位置不一定固定,但卡死现象必然发生);系统起来后插上JTAG,会卡死在下一条命令执行过程中2. 官方解释在(PetaLinux)...
2019-03-14 10:19:33
3236
原创 使用Matlab对文件夹下文件批量重命名
利用Matlab将old_file文件夹下所有的.jpg格式文件夹重命名后保存到new_file文件夹下。clear;clc;path_name = 'old_file';%待重命名源文件路径file =dir(strcat(path_name,'/*.jpg'));%读取文件夹下所有.jpg文件num_file = length(file);%文件数量for i = 1:num_f...
2019-01-24 16:06:25
932
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人