- 博客(87)
- 收藏
- 关注
原创 正点原子学习笔记之汇编LED驱动实验
为什么要写汇编需要用汇编初始化一些SOC外设使用汇编初始化DDR、I.MX6U不需要设置sp指针,一般指向DDR,设置好C语言运行环境。
2024-10-10 14:22:51
831
原创 PG198-jesd204-phy阅读笔记
逻辑IP JESD204物理核心层实现JESD204B物理接口支持7系列、UltraScale和UltraScale+设备的1至12通道以及单通道线速率在1.0至12.5Gb/s。JESD204C物理接口支持7系列、UltraScale和UltraScale+设备的1至8通道以及单通道线速率在1.0至32Gb/s。有关每台设备支持的具体线速率,请查阅相关手册。JESD204 PHY核心可以配置独立的传输和接收线速率以及JESD204的版本。
2024-09-19 18:19:59
1955
原创 Xilinx高速接口文档简介
Xilinx的高速资源手册比较详细的介绍的介绍有ug482-GTP,ug486-GTX,ug576-GTH。基本结构资源和原语都大致相同。GTP主要在A系列芯片中。GTX主要在K系列芯片中。
2024-08-31 22:03:54
313
原创 18.双线性插值缩放算法的matlab与FPGA实现(一)
图片放大是图像处理中的一个特别基础的操作。几乎在每一个图片相关的项目中,从传统图像处理到i深度学习,都有应用。简单来说,插值指利用已知的点来“猜”未知的点,图像领域插值常用在修改图像尺寸的过程,由下图是双线性插值的效果。最近邻算法不需要计算新图像中矩阵中点的数值,直接找到原图像中对应的点,将数值赋值给新图像矩阵中的点,根据对应关系找到原图像中的对应的坐标,这个坐标可能不是整数;这时候找最近的点进行插值。
2024-05-15 23:48:21
1348
1
原创 ZYNQ启动流程分析之BOOT.BIN头
BOOT.BIN头其实就是BOOT.BIN文件前面的一段头部数据,并且这个头部数据是按照一定的格式组织在一起的,并且该头部数据能够被BootROM代码解析。在boot.bin文件中从地址0-0x8FF可以分为17个部分,每个部分都有一定的含义。注意:BOOT.BIN的数据存储为小端模式。(1)0x000:中断向量表。(2)0x020:固定值0xaa995566。(3)0x024:固定值0x584c4e58,ASCII:XLINX。
2024-04-30 15:46:22
1166
原创 时序分析基础(6)——input delay时序分析
FPGA对于外部的时钟以及数据的延时信息是不知道的,在低速时钟且时钟发射沿在数据正中心的时候,一般可以不做约束来直接使用。但是到了高速时钟或者双沿采样或者发射沿和数据对齐的情况下,这时候就需要告诉VIVADO外部的时钟与数据情况来让VIVADO分析能否满足建立时间与保持时间。INPUT约束仅仅只是告诉VIVADO外部的时钟情况,而内部的布局布线并不会因此改变。
2024-04-21 17:01:52
2108
1
原创 时序分析基础(3)——建立时间的时序报告
知道了建立时间在数字电路中的计算方式以及时序分析的基本概念之后,就需要在软件中来查看并优化我们的时序了,首先最重要的就是学会看时序分析报告。
2024-04-19 00:28:02
1581
1
原创 12.自定义的多帧缓存架构
在数字图像处理中,经常需要用到的一个架构就是多帧缓存。视频流中需要用到多帧缓存来防止帧撕裂现象,图像处理中也需要帧差法来做移动目标检测。因此一个多帧缓存架构在图像系统的设计中是十分重要的。
2024-04-06 22:54:18
1884
2
原创 DDR3接口
如下图所示,这一页选择"Create Design",在"Component Name"一栏设置该IP元件的名称,这里取默认软件的名称,再往下选择控制器的数量,控制器的数量是指由多少片独立的DDR3,如果DDR3采用并联的方式则只需要一个控制器。本试验选择第二种,即BANK-ROW-COLUMN的形式,这是一种常见的DDR3寻址方式,即要指定某个地址,先指定Bank,再指定行,最后指定列,这样就确定了一个具体地址。如下图所示,这一页选择的是mig控制器控制的芯片,勾选DDR3即可,点击next。
2024-04-05 20:18:48
1047
1
原创 11.图像边缘检测的原理与实现
边缘是图像的基本特征,所谓的边缘就是指的图像的局部不连续性。灰度或者结构等信息的突变之处称之为边缘。如灰度级的突变、颜色的突变、纹理结构的突变等。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。图像的边缘有方向和幅度两种特性,边缘通常可以通过一阶导数或二阶导数检测得到。一阶导数是以最大值作为对应边缘的位置,而二阶导数则以过零点作为对应边缘的位置。
2024-04-02 21:41:07
2784
原创 10.图像高斯滤波的原理与FPGA实现思路
高斯滤波(Gaussian filter)包含很多种,包括低通、高通、带通等,在图像上说的高斯滤波通常是指的高斯模糊(Gaussian Blur),是一种高斯低通滤波。通常这个算法也可以用来模糊图像,提供模糊滤镜。也可以用来过滤自然界的高斯白噪声。高斯分布(正态分布)是一个常见的连续概率分布,μσ2σ。正态分布的概率密度函数曲线呈钟形,所以又被称为钟形曲线。我们常说的μ0方差σ21。若随机变量X服从一个位置参数为μ、方差为σ2的正态分布,可以记为XNμσ2gx。
2024-04-02 00:16:24
3610
原创 9.图像中值腐蚀膨胀滤波的实现
在3X3的卷积模板中,找出中值共需要经历七次排序。1.前三次排序分别对3X3模板的三行进行排序,得到min、mid、max。2.后三次排序在三个最小值中找出一个最大值,三个中值中找出一个中值,三个最大值中找出一个最小值。3.在步骤二找出的三个值中找出中值,这个值即为最终需要赋值的像数值。
2024-03-31 18:47:44
1249
原创 8.均值滤波
均值滤波是一种低通滤波,它可以有效过滤图片中的椒盐噪声,但是副作用也同样明显,会使图片的边缘过于模糊。均值滤波的卷积核系数均为1。这里最终重复一下算法实现以及验证的步骤:1.MATLAB读取图片并转化为TXT格式,命名为pre.txt。2.ModelSim读取pre.txt文本并输入给FPGA实现的算法模块进行仿真,并将仿真后的数据写入TXT文本,命名为post.txt。
2024-03-28 22:47:22
1518
1
原创 7.3*3卷积核生成
在数字图像处理中的各种边沿检测、滤波、腐蚀膨胀等操作都离不开卷积核的生成。下面介绍如何生成各种3X3的卷积核。为后面的数字图像操作打下基础。由于图像经过卷积操作后会减少两行两列,因此在生成卷积核的时候一般会对图像进行填充,填充的方式有加0,加1和复制边界三种方法。本文将会构建一个边沿复制的的卷积核模块,一个边沿填充0或者1的卷积核模块和一个边沿不填充的卷积核模块。
2024-03-27 00:33:23
719
原创 6.RGB转YCbcr
RGB转灰度有很多种方式1.将RGB中任意分量拿出来当做灰度值。2.取RGB三通道的均值来当灰度值。3.将RGB转YUV(YCbCr)然后取Y分量作为灰度值。其余的几种实现方式较为简单,这里不做介绍。重点实现RGB转YCbCr。
2024-03-25 20:57:07
2682
2
原创 5.FPGA运算符详解
数据结论固定数据✖固定数据不消耗资源,直接出固定结果固定数据/固定数据不消耗资源,直接出固定结果固定数据%固定数据不消耗资源,直接出固定结果数据结论变量✖2的指数倍固定数据综合成移位结构,不消耗逻辑资源变量/2的指数倍固定数据综合成移位结构,不消耗逻辑资源变量%2的指数倍固定数据不消耗资源,直接出固定结果数据结论变量✖小固定数据消耗少量的逻辑资源变量✖大固定数据直接消耗DSP,乘法器变量/固定数据消耗大量的逻辑资源,是乘法的数倍变量%小固定数据。
2024-03-24 12:00:11
535
原创 4.PS配置VDMA改PL配置VDMA
在没有arm核的情况下,PL端IP核需要自己编写axi_lite协议来配置IP核,在项目中,arm核的作用是提供DDR3控制接口以及用axi_lite来配置VDMA IP核,这里我们将配置IP核的部分放到PL端来实现。实现了一个axi_master_lite IP核接口,以后其他的axi_slave_lite 都可以使用此IP核进行控制。
2024-03-24 11:22:24
293
原创 3.AXI协议讲解
AXI4协议是ZYNQ中非常重要的一个协议,包括AXI4_FULL、AXI4_LITE、AXI4_Stream三大协议。是XILINX官方IP的重要接口以及PS、PL通讯的主要手段。
2024-03-17 16:07:07
889
1
原创 RTC实时时钟
RTC时钟是一个独立的定时器,可以在后备电源不掉电的情况下一直运行。在对应的软件配置下一般可以做时钟日历功能。RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即使系统复位或者待机唤醒后RTC的设置和时间都维持不变。但是在系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在设置时间之前,要取消备份区域(BKP)写保护。
2023-12-29 16:35:05
521
原创 ZYNQ移植lvgl
本文章主要是如何利用ZYNQ来做嵌入式界面。主要用到了LCD显示屏以及ZYNQ开发板。利用ZYNQ的PS来通过lvgl生成RGB的像素并写入DDR3中,PL端通过DMA来访问DDR3来获取像素数据来显示在LCD屏幕上。本次实验利用的开发板为正点原子领航者V2,显示屏为正点原子4.3寸800*480LCD屏幕。lvg软件包从正点原子的lvgl教程获取。PS:暂时先开一节,后续有时间再补充。
2023-12-29 16:17:35
1446
11
原创 OLED显示实验
OLED即有机发光二极管,本次介绍的是正点原子的OLED显示模块。(1)模块有单色和双色两种可选,单色为纯蓝色,双色为黄蓝双色(分区域的双色,前16行为黄色,后48行为蓝色,黄蓝之间有一行不显示的间隔区)(2)尺寸小,显示尺寸为0.96寸,模块大小为27mm26mm大小(3)高分辨率,模块分辨率为12864(4)多种接口模式,该模块提供了4种接口,包括:6800、8080两种并行接口方式4线SPI接口方式和IIC接口方式。(5)不需要高压,直接3.3V就可以工作了。
2023-12-29 10:16:09
2025
原创 语法复习之C语言与指针
在C语言中定义一个变量后,系统就会为其分配内存空间。这个内存空间包括了地址和长度。将变量赋值后,该值就被写入到了指定的内存空间中。内存空间的大小一般以字节作为基本单位。普通变量存放的是数据,指针变量存放的是地址。为什么指针要有数据类型?因为在定义指针的时候,不光要定义指针的起始地址,还要定义指针的地址长度,方便分配内存空间。而指针变量的数据类型就是内存空间长度。由图可以看到地址和数据一一对应。
2023-10-25 22:42:21
336
原创 ZYNQ中断例程
GPIO 中断系统初始化流程:第一步:初始化 cpu 的异常处理功能第二步:初始化中断控制器第三步:向 CPU 注册异常处理回调函数;第四步:将中断控制器中的对应中断 ID 的中断与中断控制器相连接第五步:设置 GPIO 的中断类型,比如高电平中断、低电平中断、上升沿中断、下降沿中断等。第六步:设置 GPIO 中断回调函数,这里设置的回调函数是用于用户使用的。第七步:使能 GPIO 的对应 PIN 的中断第八步:使能中断控制器第九步:使能异常处理功能。
2023-10-24 16:37:38
753
原创 千兆以太网(四)——UDP协议
UPD协议是无连接的传输层协议。无连接是指再传输数据时,数据的发送端和接收端不建立逻辑连接。接收和发送数据都没有反馈。可以看到MAC帧中的数据段是IP数据报,IP报文中的数据段为UDP报文,UDP报文中的内容是用户数据。
2022-09-29 16:01:50
2027
原创 PCIe(二)——TLP包构成
TLP包是由PCIe的Endpoint或者Root Complex发送的数据包。在PCIe体系中的事务层生成。深蓝色部分是物理层添加的开始和结束字段,浅蓝色部分是链路层添加的。这些都是由IP核自动添加,用户无需关心。中间红框内的是TLP包,在事务层生成,如果用户使用的是Riffa等集成度较高的框架也无需关心。但是有时可能会要求自己构建TLP或者解析TLP包。所以将重点介绍TLP包的构成。由图可以看出TLP包由头(Hander)、数据(Data)、ECRC(校验)四个部分组成。
2022-09-09 18:59:53
6163
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人