- 博客(71)
- 收藏
- 关注
原创 闲庭信步使用SV搭建图像测试平台:第二十六课——图像的二值化
本文介绍了数字图像二值化的简化实现方法。通过使用ModelSim搭建自动化仿真环境,只需双击top_tb.bat即可完成仿真,降低了学习门槛。文章指出图像处理可以像区分人性善恶一样简化,二值化只需根据阈值将像素转换为0或1。在img_process_pkt包的image_process类中创建binary任务实现该功能,并对Cb和red通道进行二值化处理。仿真结果显示在img文件夹中,展示了车牌图像的二值化效果。该方法避免了复杂的理论公式,实现了直观的图像处理。
2025-07-02 19:23:23
82
原创 闲庭信步使用SV搭建图像测试平台:第二十五课——基于sobel的图像边缘检测
本文介绍了基于Sobel算子的图像边缘检测FPGA实现方案,提供了一套完整的自动化仿真环境。文章简要说明了Sobel算子原理:通过水平(Gx)和垂直(Gy)方向检测图像亮度突变区域,对边缘区域响应强烈。实现时采用绝对值求和替代开方运算,支持阈值调节和输出极性选择。工程包含RGB转YCbCr、Y通道滤波等处理流程,用户只需双击top_tb.bat即可自动完成仿真,在img文件夹查看不同极性的边缘检测结果。该项目降低了学习门槛,适合FPGA图像处理入门。(注:原文中部分推广内容已精简)
2025-07-02 19:22:07
343
原创 闲庭信步使用SV搭建图像测试平台:第二十四课——图像的直方图均衡化
本系列教程通过ModelSim实现数字图像处理,提供自动化仿真环境,降低学习门槛。重点讲解了直方图均衡化技术,该方法能有效增强图像对比度,通过扩展常用亮度来优化像素分布。文中在img_process_pkt包的image_process类中新建hist_equal任务,实现直方图统计、均衡化和归一化处理(将数据映射到0-255区间)。仿真结果显示,均衡化后的Y通道直方图分布更均匀。配套工程文件可通过知识星球"成工fpga"获取,包含200GB学习资料。
2025-07-01 21:12:58
280
原创 闲庭信步使用SV搭建图像测试平台:第二十三课——图像的直方图叠加
【摘要】本教程基于ModelSim实现数字图像直方图叠加功能,提供全自动化仿真环境。通过新建hist_overlay任务,在Y通道图像左下角叠加直方图,并优化去除黑色背景。进阶实现包括:1)RGB三通道单独叠加 2)自定义直方图颜色。所有工程只需双击top_tb.bat即可自动完成仿真,配套200GB学习资料可通过知识星球获取。教程逐步演示了从单通道到RGB图像的直方图可视化优化过程。(149字)
2025-07-01 21:10:09
270
原创 闲庭信步使用SV搭建图像测试平台:第二十二课——图像的直方图统计
仿真文件tb_image_sim如下,现将RGB图像转换成YCbCr格式的数据,然后对图像的亮度Y进行直方图统计并归一化到0-255,然后将直方图的数据扩展成高度是300,宽度是256的二维数据,最后设置新图片的格式,画出直方图的图片。完成了直方图的统计,可以得到256个值,其实把直方图画出来才更加的直观,比如大家都熟悉的ps,就可以直接看一副图像的直方图,如下所示,右边可以看图像亮度的直方图,也可以看RGB各通道的直方图。其实我们经常对自己的人生做做统计,对后续的人生还是很有参考价值的。
2025-06-30 15:37:55
519
原创 闲庭信步使用SV搭建图像测试平台:第二十一课——HSV图像转RGB图像
本文介绍了如何将HSV图像转回RGB图像的方法,并针对FPGA可综合RTL开发对变量进行了拆分优化。通过自动化仿真环境(运行top_tb.bat文件),实现了RGB-HSV-RGB的双向转换流程,但发现转换后的RGB图像色彩更鲜艳,存在计算误差问题。文中指出该问题将在后续系列中解决,并展示了基本正常的RGB单通道转换结果。该系列工程注重降低学习门槛,提供完整的自动化仿真方案。
2025-06-30 15:33:31
133
原创 闲庭信步使用SV搭建图像测试平台:第二十课——RGB图像转HSV图像
本系列教程介绍RGB与HSV颜色空间转换的数字图像处理实现。HSV颜色空间由色相(H)、饱和度(S)、亮度(V)三个参数构成,色相取值范围0°-360°,饱和度和亮度取值0-1。教程提供基于ModelSim的自动化仿真环境,只需双击top_tb.bat即可完成仿真。具体实现中,在img_process_pkt包中新建rgb2hsv任务,将RGB分量最大值最小值用于计算HSV值,并将饱和度映射到0-255范围。仿真结果显示各HSV通道图像,验证了转换算法的正确性。配套工程文件可通过知识星球获取,包含完整仿真环
2025-06-29 18:23:16
245
原创 闲庭信步使用SV搭建图像测试平台:第十九课——YCbCr图像转RGB图像
摘要:本文介绍了YCbCr格式图像转回RGB格式的实现方法,通过Modelsim自动化仿真环境验证时发现图像异常。分析发现问题根源在于数据溢出和格式转换,未考虑运算过程中的数值范围限制。作者提出改进方案:按FPGA可综合RTL代码思维设计,对公式合并化简,用无符号数保存中间结果并进行位扩展,确保每步运算可控。最终成功生成正常图像。文章强调了硬件编程中数据范围控制的重要性,指出这是与软件编程的关键区别。
2025-06-29 18:18:29
458
原创 闲庭信步使用SV搭建图像测试平台:第十八课——RGB图像转YCbCr图像
本文介绍了YCbCr色彩空间的原理及应用,它通过分离亮度(Y)与色度(Cb/Cr)来提高图像处理效率,常用于视频压缩标准。文章对比了YCbCr与RGB的差异,并提供了基于Modelsim的数字图像处理实现方案,包含自动化仿真环境。文中详细讲解了RGB到YCbCr的转换方法,展示了三个通道的生成图像效果,同时指出可综合RTL代码的实现将在后续系列中讲解。该教程降低了学习门槛,配套工程文件可通过指定平台获取,并附赠200GB学习资料。
2025-06-28 11:00:59
312
原创 闲庭信步使用SV搭建图像测试平台:第十七课——图像的增强
本文介绍了基于拉普拉斯算子的图像锐化方法,通过ModelSim实现自动化仿真。文章对比了两种3x3模板的拉普拉斯滤波器效果:在image_process类中创建sharpen0和sharpen1任务分别实现两种算法,处理时需注意像素值溢出问题。实验通过对比均值滤波后的图像与两种算子处理结果,证明拉普拉斯算子能有效增强图像边缘和细节,其中模板2的锐化效果更为显著。所有工程文件支持一键仿真,降低了学习门槛。(150字)
2025-06-28 10:57:02
486
原创 闲庭信步使用SV搭建图像测试平台:第十六课——图像的均值滤波
本文介绍了基于ModelSim的数字图像均值滤波处理方法。该方法采用3x3模板计算像素平均值替代原像素值,有效消除噪声但会带来图像模糊。工程提供了自动化仿真环境,只需运行top_tb.bat即可完成仿真,降低了学习门槛。均值滤波通过计算模板内像素平均值(如9个像素求和除以9)来平滑图像,示例显示将噪声点15修正为8。更大的模板(如5x5)抑制噪声效果更好但模糊更明显。工程包含image_process类中的average任务,处理时先补零再计算均值。仿真结果显示滤波后图像明显变模糊。
2025-06-27 14:57:58
161
原创 闲庭信步使用SV搭建图像测试平台:第十五课——图像的gamma校准
本文介绍了利用FPGA实现数字图像Gamma校准的方法。通过预先计算256个像素值的Gamma映射表并存储在RAM中,实现仅1个时钟周期的图像处理延时。文章说明了Gamma校准的原理(2.2幂函数)及其对人眼视觉特性的补偿作用,并演示了如何通过Modelsim自动化仿真环境处理图像:从RAW数据获取、Gamma校准到RGB插值的完整流程。实验结果显示,Gamma校准能有效提升暗部亮度,同时适度降低高亮区域。该方法通过查表方式有效规避了FPGA实时计算的资源消耗问题,为初学者提供了便捷的学习途径。
2025-06-27 14:56:31
472
原创 闲庭信步使用SV搭建图像测试平台:第十四课——图像的插值算法
本文介绍了如何使用ModelSim进行数字图像处理,重点是RAW图像数据的插值算法。文章指出大多数图像传感器输出的是RAW黑白数据,彩色图像是通过插值获得的。作者以RGGB格式为例,讲解如何通过周围像素点计算缺失的B和G分量,并提出了边缘像素的处理方案(添加0值边框)。文中还提到不同RAW格式(GRGB、BGGR、GBRG)需要分别处理。最后介绍了仿真流程:通过img2raw生成RAW数据,使用interpolation任务进行插值,运行top_tb.bat自动完成仿真,输出不同格式的插值结果图像。整个工程
2025-06-26 11:52:00
1205
原创 闲庭信步使用SV搭建图像测试平台:第十三课——谈谈SV的数据类型
摘要: SystemVerilog数据类型使用规范是FPGA测试岗位面试重点。Verilog主要使用四值逻辑(0,1,X,Z)的reg和wire,而SV新增二值逻辑(0,1)并区分信号类型和数据逻辑类型。SV推荐使用logic(四值)和bit/int(二值)替代传统类型,其中logic默认作为变量类型,适用于RTL设计;二值逻辑更适合非硬件仿真。数据类型可分为有符号(integer/int等)和无符号(wire/bit等),使用时需注意四值逻辑的X/Z转为二值逻辑时会变为0。实际工程中应根据场景选择,但需保
2025-06-26 11:50:10
885
原创 闲庭信步使用SV搭建图像测试平台:第十二课——使用package
本教程介绍如何使用SystemVerilog的package功能优化FPGA图像处理代码结构。通过建立img_pkt等分类package文件存放不同功能模块,可以有效解决代码冗长混乱的问题。工程采用全自动化仿真环境,只需双击top_tb.bat即可完成仿真,并生成处理后的图像文件。教程还提供修改后的RAW数据处理方法,包括新建img2raw任务和改进的图像保存功能。该系列工程文件可通过关注知识星球"成工FPGA"获取,关注即赠200GB学习资料。这种模块化设计方法不仅使代码整洁有序,也降
2025-06-25 10:32:07
228
原创 闲庭信步使用SV搭建图像测试平台:第十一课——保存单通道的图片
本系列提供基于ModelSim的数字图像处理工程,采用全自动化仿真环境,只需双击top_tb.bat即可运行。针对图像处理中单通道可视化的需求,工程改进了原save_image_rgb任务,将其拆分为img2rgb(分离RGB三通道)和save_chnl_bmp(保存单通道图像)两个通用性更强的任务。通过新任务可灵活保存各单通道(R/G/B或黑白)图像,深化对数字图像处理的理解。仿真完成后,img文件夹会自动生成测试图案和各通道处理结果。获取完整工程文件可关注知识星球"成工fpga"。
2025-06-25 10:30:23
407
原创 闲庭信步使用SV搭建图像测试平台:第十课——继续说说类
本文介绍了如何通过类封装优化仿真文件结构。将原本分散在仿真文件中的变量封装到image_class类中,在new函数中初始化变量,并添加参数设置方法处理仿真过程中的变量修改。优化后仿真文件仅保留类调用,结构更加简洁。测试时运行top_tb.bat可完成自动化仿真,生成测试图案存放在img文件夹中。这种类封装方法使代码更清晰易维护。(149字)
2025-06-24 17:37:26
216
原创 闲庭信步使用SV搭建图像测试平台:第九课——初步使用类
SystemVerilog中的类(class)仅适用于仿真测试环境,不可综合。本文介绍了如何将task封装成类(image_class),强调类必须包含new函数用于内存分配。通过实例化类并调用new函数后,才能使用类的成员和方法。演示了在initial块中实例化image_class类(ims)并调用其方法的过程。最后指导用户通过运行top_tb.bat文件完成自动化仿真,在img文件夹查看生成图案。文章以建筑类比说明类的定义和实例化关系,并指出想深入学习可查阅相关资料。
2025-06-24 17:35:56
319
原创 闲庭信步使用SV搭建图像测试平台:第八课——使用队列
本文对比了Verilog中数组与队列的差异,指出队列在图像处理中的优势。队列兼具数组的索引访问和链表的动态增删特性,无需预定义大小,使用[$]声明即可。文章列举了push_back、pop_front等实用方法,说明只需修改定义即可将二维数组转为队列。作者在后续课程中将全面改用队列,因其灵活性如同智能手机之于老年机。以save_image_rgb任务为例,展示了队列与数组在使用体验上的无差别性。
2025-06-23 16:41:39
214
原创 闲庭信步使用SV搭建图像测试平台:第七课——无中生有出图片
比如现有图片的大小是800x640,那生成测试图片的大小也只能是800x640,不可能得到1080x720的图片。最后我们看看img文件夹,确定生成了测试图片,而且分辨率就是1080x720。所以无中生有保存图片就是这么简单!上篇我们完成了测试图片的生成,但是读者可能会发现问题,成工保存图片使用了一个。其实对于bmp格式的54字节的头部,有很多都是固定值,真正需要修改的就。但是上面的方法有一个问题,就是。然后在initial块中,
2025-06-23 16:39:44
284
原创 选择大于努力,是学习FPGA硬件设计还是学习软件设计?
而FPGA就不一样了,因为FPGA属于硬件设计的范畴,不过到目前为止还有很多人都认为FPGA设计是软件编程,这就比较滑稽了,不过正是如此,更显出了FPGA设计价值,那就是如果一件事情或者一样东西大家都耳熟能详,那这件事情或者这样东西的价值基本就不会很高了;还有一个问题,就是现在很多小学生都开始学习Python或者C++编程了,就是这个潮流已经起来了,但是到目前为止,成工还没有看到小学生学习FPGA的编程的潮流,应该是小学生还不足以学习FPGA的编程,虽然成工写过《孩子都能学会的FPGA系列》。
2025-06-22 10:09:24
569
2
原创 闲庭信步使用SV搭建图像测试平台:第六课——写个生成测试图片的task
测试图案嘛,可以发挥想象力,随机的创造,比如对行计数或者列计数进行或、与、异或、同或、加减乘除等各种运算,会得出意想不到的图片,如下的gif动图,是成工随意组合生成的图片,大家也可以尝试一下。下面我们来实现的测试图案有灰度的条纹(又可以分成横条纹,竖条纹和斜条纹),彩色条纹(横条纹和竖条纹),黑白的棋盘图片。上篇我们解锁了一个新的技能,那就是使用function或者task,对成工来说,基本就是使用task,个人习惯而已。取值为图像列数也就是j/3的计数值,生成灰度的竖条纹;当pattern=3时,图像。
2025-06-22 09:24:10
362
原创 闲庭信步使用SV搭建图像测试平台:第五课——使用task
到目前为止,我们主要实现了读图片,写图片,写txt文档,图像的RGB通道分离,由彩色图片生成RAW图片这五个功能,那我们就新建五个task,如下所示,新建了read_image,save_image,save_txt,save_image_rgb,save_raw这五个task。成工其实是做时序仿真比较多,所以倾向于使用task,function用的比较少,所以本系列的各个功能,成工基本上都是用task来实现。,对于成千上万行的代码,如果要修改或者删除一些功能,怎么保证修改的部分不会影响到其它的功能?
2025-06-22 09:19:19
319
原创 闲庭信步使用SV搭建图像测试平台:第五课——使用task
到目前为止,我们主要实现了读图片,写图片,写txt文档,图像的RGB通道分离,由彩色图片生成RAW图片这五个功能,那我们就新建五个task,如下所示,新建了read_image,save_image,save_txt,save_image_rgb,save_raw这五个task。成工其实是做时序仿真比较多,所以倾向于使用task,function用的比较少,所以本系列的各个功能,成工基本上都是用task来实现。,对于成千上万行的代码,如果要修改或者删除一些功能,怎么保证修改的部分不会影响到其它的功能?
2025-06-21 20:42:00
314
原创 闲庭信步使用SV进行图像处理系列教程介绍
这个当然是可以的,可以直接进行FPGA代码的设计,然后下载到开发板中看效果,但是。每课的内容如下所示,完成这个系列,大家可以在各个包下的类中任意的增添图像处理的各种算法。,当时不管是导师还是同学,甚至当时的我自己,都没有想过后来会从事FPGA的开发工作。,能把FPGA的仿真和开发做好就不错了,很难有精力再去考虑测试平台的问题了。,当然也可能是别的高级编程语言,成工在研究生期间就是做算法研究的,,问题是你都是大才了,没必要为如何搭建测试平台烦恼了。的书籍不多,成工认为还不错的有两本,一本是。
2025-06-21 20:37:51
1345
原创 闲庭信步使用SV搭建图像测试平台:第四课——熟悉一下数组
像reg [31:0] img_word就是一维的组合型数组,而二维的组合型数组可以reg [3:0][7:0] img_word表示。组合型数组中的数据在内存中都是连续存储的,所以比较节省空间。除了组合型数组和非组合型数组,还有关联数组,动态数组,还有就是队列,本质也是数组,有兴趣的读者可以找到system verilog相关的文档看一下,成工不过抛砖引玉,因为这些都不是这个系列的重点。, 非组合型的数组中的数据在内存中都是相互独立的,优点是方便查找数组中的数据,缺点是占用的内存比较大。
2025-06-09 17:32:37
311
原创 闲庭信步使用SV搭建图像测试平台:第三课——获取RAW图像
同理,如果想让RAW数据保存成图片,每个像素点也必须要有RGB三个分量,那把其它两个分量和抽取的分量一样即可,如下图所示。不管CCD图像传感器还是CMOS图像传感器,每个像素点都不能直接获得RGB三个通道的数据,只能得到RGB三个通道中的一个通道的数据,所以。放大RAW图像,就可以看到很规则的方块,那就是一个个像素点,而彩色图像很难这么清晰的看到每个像素点。对于800x480的RAW数据,图像大小是800x480字节,大小是RGB彩色图像的三分之一。如下所示,是一副6x8的RAW图像排列图,排列格式是。
2025-06-08 07:12:51
274
原创 闲庭信步使用SV搭建图像测试平台:第二课——图片RGB数据分离
为了能够方便的说明图像数据阵列的排布,成工画了一个3x6的图像数据阵列排布图。其中3代表图像有3列,列索引是从0到2,每一列的图像包括RGB三个分量,都是1个字节的大小,3列就是有9个字节;明白了图像数据阵列的排序,那将RGB三通道的数据分离就非常简单了。我们直接在tb_image_sim.sv文件的initial块中增加如下的代码,就可以将RGB三通道的数据进行分离。我们将分离后的通道数据用图像显示出来,由于bmp图像要求RGB三个通道都必须有数据,那将另外两个通道的数据直接取0即可。
2025-06-08 07:10:21
329
原创 闲庭信步使用SV搭建图像测试平台:第一课——图片的读写
本系列是基于system verilog,使用modelsim来搭建图像的测试平台,所以重点不是学习system verilog语言,而是使用system verilog来搭建仿真测试平台,非必要成工不会对system verilog的语法进行专门的讲解,语法相关的东西,用多了自然就会了。同理,不管是图片的读写,还是文本的读写,不管使用c,c++还是python,应该都是。28行计算了图像的大小,图像的格式有很多种,比如jpg,png,bmp,tif,gif等等,看似很多,但是等让我们简单上手的。
2025-06-07 10:59:18
511
原创 闲庭信步使用SV搭建图像测试平台:开篇
完成的这个系列,中间几乎没有卡壳,主要原因是成工刚开始工作就是从事摄像机和电子警察研发相关的工作,对图像的处理比较熟悉;为了让大家能够尽快的上手,成工推出了这个系列的教程,主要包括图像的读写和一些基本的变换和基本的处理,当然也包括如何生成测试图片,如何直方图统计,如何直方图均衡,如何生成正弦波图片,如何生成DDS图片,最后实现了一个基于cnn的数字识别。有了这些packet,图像的处理就会非常的简单,比如我们要做图像基于直方图的均衡,并将均衡前后的直方图在图片上显示出来,直接调用相关的task即可。
2025-06-07 10:32:29
787
原创 成工fpga(知识星球号)——精品来袭
孩子都能学会的FPGA》系列是成工完成的第一个系列,也有一年多的时间没有更新了,本来可以一直下去,但是定位不够明确,也由于工作的原因,很遗憾只写了33期。一年多的 时间,成工思考了很多,也做了很多规划,最终的定位就是继续做,特色就是,这个成长不仅仅是FPGA技术的提升!内容非常的多,只有成工一个人完成,必须都是精品,对成工来说是一个非常大的挑战,而且这些工作只能在工作之余完成,所以预计要2-3年完成所有的系列。
2025-06-05 11:38:42
314
原创 孩子都能学会的FPGA:第三十课——用FPGA实现均值滤波
下个时钟周期滑窗在数据2,3,4,5的位置,累加后除4得到结果;再下个周期滑窗在数据3,4,5,6的位置......N值比较小的时候还好处理,但是N比较大的时候,比如64个值求均值,应该如何实现呢?所以要计算N个值的均值,就要至少有N个寄存器用于缓存这N个数据,如果再有新的数据,那就将这N个寄存器统一移动,进来新的数据,出去旧的数据。参数N就是数组的个数,通过wr_en,wr_addr和wr_data将数据写入数组,通过rd_en,rd_addr,rd_vld,rd_data等将数据读出数组。
2025-05-01 21:53:01
969
原创 孩子都能学会的FPGA:第二十九课——用FPGA实现任意PWM波形
模块输出的信号有PWM开始信号pwm_start,PWM结束信号pwm_end,PWM一个周期的计数值pwm_period,就是系统时钟的频率除以要产生的PWM的频率,假设PWM频率是100KHz,那pwm_period=100M/100K,取值1000。我们知道,在模拟电路中,模拟信号的值可以连续进行变化,在时间和值的幅度上都几乎没有限制,基本上可以取任何实数值,输入与输出也呈线性变化。就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形(含形状和幅值)。
2025-05-01 21:50:20
603
原创 孩子都能学会的FPGA:第十四课——FPGA的乒乓操作
在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1;在第二个缓冲周期,通过“输入数据流选择单元”的切换,将输入的数据流缓存到“数据缓冲模块2”,同时将“数据缓冲模块1”缓存的第一个周期的数据通过“输出数据流选择单元”的选择,送到“数据流运算处理模块”进行运算处理:而在第三个缓冲周期,通过“输入数据流选择单元”的再次切换,将输入的数据流缓存到“数据缓冲模块1”,同时将“数据缓冲模块2”缓存的第二个周期的数据通过“输出数据流选择单元”的切换,送到“数据流运算处理模块”进行运算处理,如此循环往复。
2025-05-01 21:33:59
698
原创 孩子都能学会的FPGA:第三十三课——用FPGA实现一个通用的SPI主机接收模块
文件就可以完成整个的仿真(前提是安装了modelsim),降低了初学者的门槛。不收任何费用,但是仅供参考,不建议大家获得资料后从事一些商业活动!每个工程作者都搭建了全自动化的仿真环境,只需要双击。信号,完成数据的解析。还是观察下面的图形,在。位的随机数据,主机完成数据的接收。,后续会有进阶的高级教程。程序的设计,接口信号如下所示。主机的发送模块基本一样,就是。主机的接收模块是主机发送。信号,同时解析从机发送的。的上升沿使能,时序正确。的下降沿使能,时序正确。的下降沿使能,时序正确。的上降沿使能,时序正确。
2023-12-17 13:03:31
1196
2
原创 轻松搭建FPGA开发环境:第三课——Vivado 库编译与设置说明
打开 ModelSim SE-64 10.5,可以在 Library 下面出现了刚才添加的所有库文件信息,Vivado库配置成功,后续有关Vivado IP核的仿真可以直接调用相关的仿真文件即可。既要装这个软件,又要装那个软件,还要编译仿真库,网上的教程一大堆,不知道到底应该听谁的。完成编译后,可以看到当前 D:\modeltech64_10.5\Vivado_Library 文件夹下出现了很编译译好的库文件。本节主要讲解如何编译Vivado的仿真库文件,以及如何在modelsim中如何配置。
2023-12-16 20:50:50
3843
原创 孩子都能学会的FPGA:第三十二课——用FPGA实现一个通用的SPI主机发送模块
上述的SPI通用主机发送模块仅仅需要根据实际情况修改参数就可以适用于绝大多数SPI接口的主机通信,通用性非常好。文件就可以完成整个的仿真(前提是安装了modelsim),降低了初学者的门槛。信号使能,上节课是直接使能的,本节课可以通过参数进行控制。的下升沿采集数据,很明显采集不到正常的数据,从而数据传输错误。主机的发送,现在我们要做一个通用的SPI主机的发送,就是支持。,在该信号使能的情况下数据才可以发送,主要用来控制。会在开始的位置多了一次使能,造成数据多移位一次,时钟的上升沿变化还是时钟的下降沿变化。
2023-12-15 21:35:22
1833
1
原创 孩子都能学会的FPGA:第三十一课——用FPGA实现SPI主机发送数据
种不同的操作模式,不同的从机设备可能在出厂时就被设置好了某种模式,并且无法更改。的计数最大值是数据位宽和分频数的乘积(总共消耗的系统时钟数),同时根据计数值值完成。实现,网上有很多的教程,很多是用状态机实现的,本节我们用一种简单的方式来实现。红线表示时钟的前沿,蓝线表示时钟的后沿。,所以我们可以采用主时钟的分频来实现,主要在规定的范围内即可。时钟信号线在空闲状态时的电平为低电平,因此有效状态为高电平。是一种高速的、全双工的、同步的通信总线,并且至多仅需使用。的周期包括半个时钟空闲和半个时钟置位的周期。
2023-12-14 22:14:17
1943
1
原创 轻松搭建FPGA开发环境:第二课——UE 安装与配置说明
打开了“配置”选项卡,在定位中选择“编译器显示”下面的“语法高亮”,然后在右侧将“文档的完整目录名称”选择到UE所在目录下的wordfiles文件夹,内部放好了verilog和vhdl语言的高亮文件。打开了“配置”选项卡,在定位中选择“自动完成”下面的“其他”,然后在右侧如下图进行勾选,同时可以设置输入几个字符后进行提示,建议选择。”,出现如下界面,可以根据自己的喜好完成主题,布局,功能区或菜单/工具栏,几个设置等进行设置。在开始菜单中输入搜索“环境变量”,选择“设置”,点击搜索到的“编辑系统环境变量”。
2023-12-13 12:25:24
1480
原创 孩子都能学会的FPGA:第三十课——用FPGA实现均值滤波
值比较小的时候还好处理,但是N比较大的时候,比如64个值求均值,应该如何实现呢?我们仔细观察一下,当第1个滑窗完成累加得到结果x,到第2个滑窗的时候2,3,4,5的累加值其实可以用x-d1+d5这样求出来,所以一个时钟周期完成一次加法和减法即可。均值滤波,是图像处理中常用的手段,从频率域观点来看均值滤波是一种低通滤波器,高频信号将会去掉。所以可以看出,均值滤波能够抑制系统的随机噪声,点数越多,一致程度也越高。均值滤波的实现方式就是用N个点的值相加再求平均,用这个平均值代替一个点的值,思路是非常简单的,用。
2023-12-12 14:34:44
1745
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人