- 博客(14)
- 收藏
- 关注
原创 ZYNQ学习——(摄像头_VDMA_HDMI显示工程搭建)
最近在学习ZYNQ,使用PS和PL端的交互,初始阶段在看米联客SDK入门教程,同时按照邓堪文的示例搭建了基本的摄像头捕获图像后存储到DDR3然后读取出来到摄像头显示,在此处做下整理。
2022-10-28 10:50:22
1646
2
原创 Verilog基础(二)--状态机
三段式:一个always块时序逻辑描述状态转移,一个always块描述组合逻辑判断状态转移条件,另一个always块时序逻辑或组合逻辑描述数据输出。面试常见的手撕代码,自动售货机:售货机商品3元每件,每次只能投入1元硬币,每满3元自动售出一件商品。二段式:一个always块时序逻辑描述状态转移,另一个always块组合逻辑描述数据输出。一段式:一个always块时序逻辑既描述状态转移,又描述数据输出。Mealy型:输出不仅与当前状态有关,还与输入有关。Moore型:输出至于当前状态有关。
2022-10-12 10:17:51
1228
原创 FPGA图像处理——sobel算子边缘检测
一、sobel算子边缘检测理论sobel算子是广泛应用的微分算子之一,可以计算图像处理中的边缘检测,计算图像的灰度地图。在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量原理就是基于图像的卷积来实现在水平方向与垂直方向检测对于方向上的边缘。这个实验在有学过上述图像矩阵中值运算的基础上来做并不难,把中值改为一个固定的矩阵相乘,这一部分也是卷积操作,与之前老师让学习的神经网络的卷积是相同的运算,也是打神经网络的基础
2022-03-31 20:16:28
8278
7
原创 FPGA图像处理——中值滤波
一、中值滤波理论中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。二、MATLAB实现clc; %清除命令窗口的内容clear all; %清除工作空间的所有变量,函数,和MEX文件close all
2022-03-31 17:27:40
5391
4
原创 FPGA图像处理——YCbCr灰度转换
之前的单通道灰度转换作为一个图像处理FPGA框架搭建完成后的一个简单效果的测试,其图像的层次感有待提高,图像处理灰度转换用的更多的还是YCbCr。一、YCbCrYCbCr或Y’CbCr有的时候会被写作:YCBCR或是Y’CBCR,Y’为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份。Y就是所谓的亮度(luminance),表示光的浓度且为非线性,使用伽马修正(gamma correction)编码处理。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,
2022-03-22 10:56:27
5317
2
原创 FPGA图像处理——单通道灰度转换
在经历了基础部分的恶补后,这一篇可以算是进入一个新阶段的学习的起点,前段的从流水灯开始一直到SDRAM的串口传图,传图硬件电路搭建完成以后,可以做一些简单的图像变换处理展示。同时,从这一段开始,也会同步开始zynq的学习。 经参考过一系列的资料(包括小梅哥,正点原子,fpga开源工作室,咸鱼FPGA等),FPGA图像处理部分自己主要从MATLAB和quartus两个部分学习,在MATLAB上进行算法的设计验证,得到效果图:quartus上进行fpga的实现验证。这一部分是基于SDRAM串口传图,在数据导.
2022-03-19 21:23:01
2221
2
原创 SDRAM学习(五)——串口传图
一、串口传图设计图这一部分在之前写的SDRAM控制顶层模块的基础上加了pll时钟,之前写的tft4.3寸显示屏控制模块,串口接收数据模块和比特计数器。pll时钟:之前在初始化部分提到过,此处有四路时钟信号,整体系统、字节接收为开发板自带的50M时钟,另有pll产生的一路9M时钟是给tft4.3寸显示屏驱动,两路相位相差180度(实际考虑电路时延,一般设置为150度)的100M时钟给SDRAM,由于在上升沿读取数据,相位不变的用于时钟计数,用来发送信号、做控制;相位改变180度的时钟上升沿正好在写入数据
2022-03-19 11:32:28
822
原创 SDRAM学习(四)——加入FIFO缓存
一、加入fifo在某些特殊的时刻,有些读或写会被忽略掉,不能连续对数据流进行缓存,只能间歇式的读或写 SDRAM 数据,会出现数据存储或读取的遗漏问题。下面针对这个问题设计的 SDRAM 控制器模块进行优化:首先,设置引入fifo:根据设计的模块电路图将各个部分端口连线第二部分是读写数据的地址推进://写SDRAM数据的地址,数据写完一次增加一次突发长度 always@(posedge Clk or negedge Rst_n) begin if(!Rst_n) wr_sdram
2022-03-07 22:32:23
1006
原创 SDRAM学习(三)——主状态机设计
之前设计完成了SDRAM的各个命令输入和状态的设计,这一部分开始将其进行一个整合,根据命令和需要进行状态的选择和变换。![请添加图片描述](https://img-blog.csdnimg.cn/b6bd028a49334b5a8e84527f3adfaca0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYmluZ2J1ZGluZ3h6,size_20,color_FFFFFF,t_70,g_se
2022-03-07 22:08:35
429
原创 SDRAM学习(二)——自动刷新,读写操作
一、自动刷新自动刷新由控制器对SDRAM正常操作,需要时钟信号,时序图自动刷新步骤:上电即开始–预充电–A10拉高选择all bank–等待tRP后,自动刷新命令–等待tRFc后,第二次自动刷新命令–等待tRFc,自动刷新结束,空操作命令///////////////自动刷新操作任务,采用线性序列机方法//////////////// localparam ref_PRE_TIME = 1'b1, //预充电时刻 ref_REF1_TIME = REF_PRE + 1,
2022-03-05 19:49:42
1227
原创 SDRAM学习(一)——初始化
一、SDRAM概念 SDRAM 的全称即同步动态随机存储器(Synchronous Dynamic Random Access Memory),同步是指其时钟频率与对应控制器(CPU/FPGA)的系统时钟频率相同,并且内部命令的发送与数据传输都是以该时钟为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机指数据的读取和写入可以随机指定地址,而不是必须按照严格的线性次序变化。二、SDRAM存取原理存储单元主要由行列选通三极管,存储电容,刷新放大器组成。对于这一位的数据,首先需要打开行地址,然后
2022-03-04 21:29:49
1120
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人