自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (3)
  • 收藏
  • 关注

原创 FPGA生成随机数的方法

实现方式二:使用三个或以上反相器首尾互联,形成环路振荡器。使用时钟采集,得到不稳定的数据,以形成随机数(其实此种方式与方式一相类似,反相器的组合逻辑相当于高频时钟,时钟信号相当于低频时钟,同样利用亚稳态生成随机数)。上图中,gn为反馈系数,取值只能是1或者0,N个D触发器,可以提供2^(N-1)个输出状态,为了保证随机性,gn的选择必须满足一定的条件,不能全部为0,且gn必须等于1。实现方式一:通过低频时钟作为D触发器的时钟输入端,高频时钟作为D触发器的数据输入端,使用高频采样低频,利用亚稳态输出随机数。

2025-05-11 12:05:28 566

原创 赛灵思FPGA 封装丝印记录

注意:购买的不同芯片,可能有上面不同的丝印形式,完整的芯片信息,特别是速度等级、温度等级等信息,主要可以通过二维码进行获取,但是需要使用赛灵思的APP工具:XilinxGo(AMD Device Lookup APP)

2025-03-16 10:20:29 345 2

原创 赛灵思ZYNQ系列调试记录

2、检查设备树是否有问题。下面提供一个设备树示例,主要是检测phy-type、phy-addr等是否正常。比如phy-type=0x8时,指代的是RGMII。比如phy-addr=0x4,需要与硬件上的地址线相匹配。1、检查PHY芯片是否工作正常,比如phy的复位是否释放。

2025-03-03 08:27:47 267

原创 hashcat使用方法记录

需要注意的是,hashcat支持破解以多种模式破解。比如字典破解,掩码暴力破解等,特别是掩码暴力破解,当已知部分数值时,可以通过掩码的方式,加快破解速度。比如,字符aa的SHA1结果为:e0c9035898dd52fc65c41454cec9c4d2611bfb37。-o result.txt,表示将结果保存在result.txt中,路径为当前路径。具体指令内容,不多做详细,可以自行参考其他资料,本文主要记录自己的使用过程。最终得到的结果为:aa。其中 -m 100,表示为SHA1算法。

2025-02-15 10:26:49 248

原创 赛灵思ZYNQ系列的FSBL程序解析

在Vitis IDE软件中,可以生成FSBL的程序(FSBL在ZYNQ内部的SRAM中运行)。FSBL程序的主要作用是,引导bit文件加载到PL侧,引导裸机程序启动(或引导U-BOOT启动)。

2024-12-22 10:10:42 1111

原创 赛灵思ZYNQ系列的启动过程分析

本文章参考ug585和ug821。

2024-12-20 22:00:00 1518

原创 Vitis HLS中,生成AXI接口和AXIS接口的综合仿真方法

另外需要注意的是,进行仿真时,需要使用xf::cv::cvMat2AXIvideoxf 函数和xf::cv::AXIvideo2cvMatxf 函数,进行cv::mat和hls::stream数据类型的转换。本文使用Vitis HLS 2023.1进行设计,主要分析生成AXI接口和AXIS接口使用的函数、仿真时需要的数据类型转换。关于AXIS接口,进行#pragma约束时,需要将接口约束为axis。:将图像Mat数据转化为视频流hls::stream类型数据,方便将图像处理函数的输出转化到通信接口中。

2024-12-01 16:09:22 544

原创 Vitis HLS 编译环境搭建

安装Vitis HLS后,需要设置windows系统的环境变量。指向编译的opencv库路径。建立工程后,需要指定相关文件的编译库和链接库。截图如下,对应着opencv库文件的位置。有时候需要重装电脑系统,需要重新搭建Vitis HLS的编辑环境,为了方便,记录如下。若上述环境变量或CFLAGS等信息设置错误,会导致Vitis HLS的C仿真失败。上述参数仅个人记录,对于不同的安装路径或者功能,设置参数或不同,需要针对更改。二、Vitis HLS工程中的设置。以下是我的环境变量的设置。

2024-11-29 08:51:33 534

原创 浅析DDR

内存颗粒指的是DDR内存芯片,其可以在电路板上单独使用,也可以通过多片内存颗粒组合成内存条进行使用。在计算机系统中,一般使用内存条。常用的内存颗粒的品牌有:镁光和三星等。镁光的某款DDR颗粒的正面和反面图片如下所示。内存条主要分为DIMM(Dual Inline Memory Module,双列直插内存模块)和SIMM(Single Inline Memory Module,单列直插内存模块)。从名字就可以看出,DIMM的两侧的金手指不是互通的,具备更多的传输引脚,可以独立传输信号。

2024-10-19 22:53:02 2713

原创 GigE Vision协议解析和实现

GigE Vision协议,主要用于相机的控制和传输。它基于以太网UDP协议,提供了一种统一的控制和传输图像的方式,被广泛应用于工业自动化、机器视觉、影像医疗等领域。本文的目的是记录自己学习的一些知识,并且按照自己的理解统筹描述一下GigE协议,希望也能够帮助大家带来一些帮助吧。

2024-06-23 12:16:44 3185

原创 以太网UDP协议

前面已经介绍了以太网协议()、ARP协议()和ICMP协议(),下面我们介绍一下UDP协议。UDP协议,是一种面向无连接的传输层协议。同ICMP一样,UDP协议也是基于IP协议的一种协议。其优点:消耗资源少,通信效率高,适合FPGA实现。缺点:可靠性差,数据可能出现丢包。

2024-05-18 15:31:37 1672

原创 以太网ICMP协议

ICMP协议,用于传输出错报告控制信息,包括报告错误、交换控制受限、状态信息等。比如,我们经常使用的ping命令和tracert命令。

2024-05-18 15:00:11 1215

原创 以太网ARP协议解析

ARP协议,全称是Address Resolution Protocol,即地址解析协议。ARP协议的作用,就是在已知目标设备的IP地址但是不知道其MAC地址的时候,根据IP地址,获取到其MAC地址,以便组成完整的IP包进行通信。完整的IP数据包,由目标MAC、源MAC、目标IP、源IP等等信息组成。关于IP协议包部分,后面我们再讨论,本文只讨论怎么根据IP地址获取MAC地址。完整的ARP协议包含两部分,ARP请求和ARP应答。

2024-04-21 13:34:38 1901 1

原创 以太网帧格式解析

以太网中的数据长度最小是46字节,最大1500字节(正常情况下是这样的,但是存在巨帧等数据包)。限制数据包大小的原因是担心单个数据包的发送时间太长,在计算机中排队的数据包队列太长,导致其他应用一直卡住,体验变差。以太网传输数据时,是按照上图的格式,自左到右依次传输的。需要注意的是前导码和SFD不属于以太网协议的内容,应该是属于物理层数据同步相关的内容。这里需要注意的是,以太网两帧之间的时间间隔,IFG。100M的IFG=96*10ns=96ns。当该字段的数值小于1536个字节时,表示的是数据的长度。

2024-04-21 11:27:19 2527

原创 使用matlab/C语言/verilog分别生成coe文件

之前已经写过一个如何使用matlab生成coe文件,matlab自行运算生成三角波、正弦波等数据,并保存为COE文件。可跳转下面的网址进行查阅。使用matlab生成正弦波、三角波、方波的COE文件_三角波文件.coe-CSDN博客但是,如果想直接把一个文件的二进制码流整体转化成coe文件(注意并不是文件内的内容,而是文件本身),又该怎么操作呢?所有的文件都是按照二进制码保存的,只要转换成COE文件,FPGA就能通过发送该COE文件,实现发送ZIP文件或者其他任何格式的文件。本文就是解决了这个问题。

2024-04-19 13:47:25 2252

原创 CRC计算流程详解和FPGA实现

CRC校验,中文翻译过来是:循环冗余校验,英文全称是:Cyclic Redundancy Check。是一种通过对数据产生固定位数的校验码,以检验数据是否存在错误的技术。其主要特点是检错能力强、开销小,易于电路实现。像网络通信上,就使用了CRC32进行数据校验。

2024-03-23 13:29:55 3097 3

原创 petalinux安装和使用过程

一、在ubuntu系统中先安装vivado、vitis、vitisHLS(可选)二、在ubuntu系统中安装petalinux1、安装依赖工具、库2、安装python和tftp server3、安装petalinux4、配置petalinux环境sudo dpkg-reconfigure dash 选择"No"在petalinux的安装路径下运行指令: source settings.sh这里需要注意的是,以后每次打开新的命令窗口,都需要重新运行source settings.sh。

2024-03-23 09:44:30 2606

原创 赛灵思MPSOC实现DP显示(ARM裸机)

有时候,对于某些显示器无法显示图像,可以采取改变输出图像分辨率和帧率的方式,尝试不同的图像分辨率,可能就会正常显示了。2、编译platfor工程后,双击platform.spr文件,在如下图所示的位置,点击board support package。此处简单略过一下,在vivado中按照硬件设计进行连线即可。1、使用vivado中生成的XSA文件,在vitis中建立platform工程,此处不赘述。4、正常情况下,直接编译示例应用工程,烧入开发板,屏幕上应该显示红色和绿色的横条。

2024-03-08 15:32:40 707

原创 VitisHLS中读写任意深度的图像文件

这里可以使用opencv的库函数,也可以使用赛灵思提供的库函数。实际上,赛灵思的 vision库也是调用opencv的imread和imwrite库函数的,只不过封装了一下而已。上面两种方式实现的读写文件的效果是一致的,赛灵思vision库的imread和imwrite额外增加了部分模板函数的内容。最终保存的图像文件也是一模一样的,这里就不粘贴图片结果了。至于8UC3的彩色图像,实测发现输出结果异常,应该是xf::cv::imwrite内部的图像类型有问题,因为我的工程中用不到,暂时不深究了。

2024-01-25 14:30:28 757

原创 vitis HLS中实现求平方根的库函数Sqrt解析

一直没有找到相似的算法实现原理,但是在《算法心得-高效算法的奥秘》一书中,找到了类似的“移位并相减”的平方根算法(书中也描述了恢复余数除法和不恢复余数除法,并且计算平方根时采用了与恢复余数除法相似的办法)。不恢复余数除法是对应着恢复余数除法来说的,核心是不再将数据进行恢复,而是在下一次运算时,更改remainder[i] = remainder[i-1]+D*quotient[j]*2^j的运算符号,由加法变为减法或者减法变加法,进行结果修正。此函数中的参数Q类似于quotoent,为最终平方根的结果。

2024-01-21 13:45:25 1422

原创 vitis HLS中实现canny算法的IP核

canny边缘检测主要用于提取图像的边缘,是最常用且有效的边缘检测算法。在AMD赛灵思提供的库函数中,使用xf::cv::Canny和xf::cv::EdgeTracing两个函数实现canny边缘提取。本文举例说明如何在vitis HLS 2023.1中实现canny算法。

2023-12-23 16:06:29 1518

原创 HLS实现图像膨胀和腐蚀运算--xf_dilation和xf_erosion

我们先定义,需要处理的图片为二值化图像A。图片的背景色为黑色,即像素值为0。图片的目标色为白色,即像素值为1。再定义一个结构元S,结构元范围内所有的像素为白色,像素值为1。

2023-12-09 16:59:05 1077

原创 【随时更新】vitis HLS使用问题总结记录

最终发现,是linux开辟的存储图像的空间不够。比如10000*2000行的图像,linux仅开辟了起始地址为0x7000_0000,偏移为10MB的内存空间,导致图像异常。

2023-11-27 09:45:26 1845

原创 解析xfPackPixels和xfExtractPixels函数

template <int NPC, //每个时钟并行处理的像素数int WORDWIDTH, //组合后数据的位宽int PIXELDEPTH> //输入像素的位宽XF_PTNAME(PIXELDEPTH) * tmp_buf, // 输入变量:像素数据XF_SNAME(WORDWIDTH) & val, //输出变量:打包像素后新的变量uint16_t pos,//需要打包的像素在tmp_buf中的位置positionint16_t loopIter, //迭代次数,确定打包的像素的数量。

2023-11-13 14:11:33 353

原创 vivado中的Video timing controller IP核参数计算方法

一、参数的计算直入正题,已知某一1024*600的LCD屏幕,屏幕参数大致如下:如何设置IP核配置界面的参数呢?细调参数几乎用不到,我们主要说一下水平设置和垂直设置的8个参数如何配置。取LCD屏幕的典型值作为参考值,配置VTC IP的8个参数。active_size = 1024,直接输入即可Frame_size = 1344,直接输入即可。

2023-06-03 11:39:56 1748 2

原创 解析使用FPGA逻辑实现FIR滤波器的几种架构

FIR滤波器的实质就是输入序列与系统脉冲响应的卷积,即:其中,N为滤波器的阶数,也即抽头数;x(n)为第n个输入序列;h(n)为FIR滤波器的第n级抽头系数。FIR滤波器基本结构如下:FIR数字滤波器的基本结构有直接型、级联型、频率抽样型。

2023-05-21 17:39:05 7456

原创 SerDes(串行器与解串器)的分析

并行时钟SerDes、嵌入式时钟位SerDes、8b10b SerDes架构分析,并比较他们之间的优缺点

2023-03-28 20:34:23 8643

原创 基于FPGA实现正弦插值算法

在进行正弦算法分析之前,我们回顾一下《数字信号处理》课程中,对于信号在时域与频域之间的映射关系,如下图。对于上图中的原始信号x(t),使用ADC对信号进行采样,即实现了时域信号的离散化,得到x[k]。根据时域与频域之间的映射关系:时域的离散化对应着频域的周期化,即x[k]的频域响应为。那么离散化的x[k]如何还原为原来的x(t)呢?时域上分析较为复杂,我们可以从频域上进行分析,即如何将频域响应还原成X(jw)。这样就比较直观了,只需要截取一个周期的信号,就可以还原成X(jw),示例如下图。

2023-03-10 21:21:48 6433 10

原创 赛灵思7系列FPGA GT收发器中的RX均衡器

均衡是对信道特性的均衡,指的是形成与信道完全相反的传输特性,以抵消或者减少信道造成的码间干扰,从而避免信号的失真。因为DFE模式架构实际是一个高通滤波器,当出现连续的0或者连续的1时,即连续的高低电平时,数据被截止,此时就需要在发送端增加一个数据加扰器,接收端增加一个数据解扰器,实现正常的数据传输。当然,对于不同的线路板,线路的损耗是不同的,使用LPM还是使用DFE模式,基于理论计算往往不能完全符合实际,实际工程应用中,可以通过实际测试来确定到底使用哪种模式。DFE均衡器)是非线性均衡器中常用的一种。

2023-03-01 19:39:26 4975

原创 赛灵思FPGA IO_BUF学习

赛灵思7系列FPGA,每个BANK中都存在存储深度低的IN_FIFO和OUT_FIFO(统称IO_BUF),IO_FIFO是为了内存应用设计的,但是也可以作为通用资源使用。一般用于IOLGIC(ISERDES/IDDR、OSERDES/ODDR)的扩展组件使用,也可以用于FIFO资源。

2023-02-12 17:14:10 1547

原创 Xilinx FIR compiler IP 实现可重加载滤波系数的低通滤波器

Xilinx FIR compiler IP 实现可重加载滤波系数的低通滤波器

2022-11-24 20:26:35 5626

转载 卷积的本质及物理意义(全面理解卷积)

卷积的本质及物理意义

2022-10-09 21:47:50 5268

原创 【随时更新】vitis使用问题总结记录

vitis调试问题记录

2022-10-08 14:28:04 5888 5

原创 FPGA逻辑实现CORDIC算法中求COS值与平方根值

FPGA逻辑实现CORDIC算法中求COS值与平方根值

2022-10-05 21:41:33 2414

原创 vivado cordic IP学习记录

CORDIC IP学习。涉及到Q格式数据的学习、cos值、sin值、平方根值得计算等。

2022-10-05 09:35:30 5189 1

原创 CORDIC算法理论详解

cordic算法详解。理解其旋转模式和向量模式,相关函数运算的求解方式。

2022-10-04 21:30:10 20435 13

原创 ZYNQ Ultrascale+ MPSOC IP中DDR相关参数的配置

ZYNQ IP DDR configuration MPSOC 系列FPGA在block design设计中,关于DDR内存的配置信息介绍

2022-09-04 14:22:45 5690 3

原创 直流电压和交流电压的测量

直流电压和交流电压的测量和计算公式

2022-09-01 19:45:06 7505

原创 matlab实现正弦内插算法(低通滤波)

基于matlab实现正弦内插算法(低通滤波)

2022-08-12 20:24:32 8250 2

原创 赛灵思MPSOC裸机下的 USB调试实验

赛灵思MPSOC裸机下的 USB工程实现

2022-08-01 19:28:25 1761 8

hashcat,支持使用GPU实现MD5 sha1等解密,速度最快!

hashcat,支持使用GPU实现MD5 sha1等解密,速度最快!

2025-02-15

vivado licnese 文件,含有多个license涵盖不同IP核 自测可用

vivado licnese 文件,含有多个license涵盖不同IP核 自测可用

2025-02-03

读QFLASH ID和读4线FLASH数据vitis验证工程

根据vitis的示例工程进行略微的修改,使能够读取FLASH的设备ID,并且能够将FLASH配置成四线模式,并在四线模式下,验证FLASH的读写正常。

2024-12-22

vitis HLS 生成AXIS接口的实例代码

vitis HLS 生成AXIS接口的实例代码

2024-12-01

vitis HLS 生成AXI接口的实例代码

vitis HLS 生成AXI接口的实例代码

2024-12-01

vitis HLS使用的xfopencv库文件和opencv库文件,无需编译可直接使用

vitis HLS使用的xfopencv库文件和opencv库文件,无需编译可直接使用

2024-11-29

GigE Vision协议-2.2版本

GigE Vision协议-2.2版本

2024-06-23

ebus player安装包

ebus player安装包,实测可以与gige相机和usb3 vision相机通信

2024-05-30

使用verilog代码实现AXI-LITE协议

使用verilog代码实现AXI-LITE协议,包含master和slave两个部分的代码,并且设计testbench使用master模块和slave模块进行读写控制,仿真成功。 主机使用axi_lite_master文件,可以自行更改代码增加对应寄存器的控制。 从机使用axi_lite_slave文件,可以自行更改代码增加对应寄存器,并添加输出端口完成后端模块寄存器的配置。

2024-05-20

FPGA实现UDP协议(包括ARP、ICMP)

三种实现FPGA实现UDP协议的代码工程(包括ARP、ICMP),包含使用设计文档。 第一种,米联客的DCP封装包 第二种,正点原子的源码工程 第三种,基于正点原子的赛灵思MAC核的代码工程。

2024-05-19

vitis-HLS canny算法实现图像边缘检测

canny边缘检测主要用于提取图像的边缘,是最常用且有效的边缘检测算法。在AMD赛灵思提供的库函数中,使用xf::cv::Canny和xf::cv::EdgeTracing两个函数实现canny边缘提取。本文举例说明如何在vitis HLS 2023.1中实现canny算法。

2023-12-23

赛灵思VIVADO补丁包y2k22-patch-1.2

赛灵思VIVADO补丁包y2k22_patch-1.2

2022-03-25

32阶FIR滤波器的FPGA实现

32阶FIR滤波器的FPGA实现,vivado2020.1工程实现代码。 滤波器系数为提前使用MATLAB生成的16进制数值,FPGA通过流水线的形式使用33个DSP实现乘法和加法运算,得到最终滤波后数据。

2023-07-05

正弦插值算法的FPGA实现

正弦插值算法的FPGA实现,内含vivado工程、学习sinc插值的网上下载资料以及编写CSDN文章时的过程文件。 基本用于作者后续追忆学习使用,有兴趣的同学可以参考。

2023-03-10

FPGA逻辑实现CORDIC算法的COS值和平方根值计算。

FPGA逻辑实现CORDIC算法的COS值和平方根值计算。 适合人群:希望简单理解CORDIC算法的学习者,希望了解CORDIC算法的FPGA实现方式的学习者。 阅读建议:不建议在实际工程中直接使用,仅做学习参考。

2022-10-05

学习CORDIC算法器件网上下载资料与自身学习整理资料全集

资料包括:CORDIC算法网上下载资料、个人学习期间推导验证的记录、vivado工程验证记录,excel示例计算记录等等。 适合人群:学习CORDIC算法,需要详细材料的人。 阅读建议:内容较为繁杂,建议先阅读压缩文档中的word文档,或者我的CSDN文章,以理解了CORDIC算法的大概。 此资源也包含了一部分FPGA实现代码,也可参考学习。 注意:作者主要是想在网上备份一下自己的学习记录,读者们阅读上有不便的情况,请多多谅解。

2022-10-05

赛灵思MPSOC平台下的USB接口测试

将MPSOC设备模拟为U盘,实现通过电脑访问U盘设备的读写。可以自行切换实现USB2.0与USB3.0设备的模拟。

2022-08-01

video timing controller和AXI4-stream to video out IP核生成视频协议数据

video timing controller和AXI4-stream to video out IP核生成视频协议数据

2022-03-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除