141
FPGA计算3行同列数据之和

实验:FPGA计算3行同列数据之和 实验要求:PC机通过串口发送3行数据(一行有56个数据,3行共有56*3=168个数据)给FPGA,FPGA计算3行同一列数据的和,并将结果通过串口返回给上位机。 实现方法:使用两个FIFO IP Core,将串口接收到的数据进行缓存,当第一个FIFO1的数据存满 ...

NingHeChuan @ 2018/08/27

142
串口完整项目之串口收发字符串

本篇博文设计思想及代码规范均借鉴明德扬至简设计法,加上些自己的理解和灵活应用,希望对自己和大家都有所帮助。核心要素依然是计数器和状态标志位逻辑相配合的设计方式。在最简单的串口收发一字节数据功能基础上,实现字符串收发。 上一篇博文中详细设计了串口发送模块,串口接收模块设计思想基本相同,只不过将总线的下 ...

没落骑士 @ 2018/08/27

143
基于FPGA的Uart接收图像数据至VGA显示

系统框图 前面我们设计了基于FPGA的静态图片显示,并对一幅彩色图片提取了灰度,学习了RGB转Gray算法。这是基于一幅静态图片的,那么后面我们要怎么模拟一下一幅动态图片的显示,最终对动态数据进行滤波、边缘检测等算法,下来我们首先来建立一个基于FPGA的动态图片显示基础框架,本实验内容为:由PC端上 ...

NingHeChuan @ 2018/08/27

144
51单片机+CPLD等精度数字频率计_2012

我在2012年的实现: https://wenku.baidu.com/view/f56452e6d05abe23482fb4daa58da0116d171f73 关于等精度,可参考: http://file.scirp.org/pdf/ENG20121000003_88356912.pdf Des ...

AlbumCover @ 2018/08/27

145
第一章 FPGA 学习笔记之 FPGA分频

一直搞不懂 FPGA 分频原理,今天找到一篇好的文章,以备后续翻阅。 转自Crazy Bingo博客。 一、为啥要说任意分频: 也许FPGA中的第一个实验应该是分频实验,而不是流水灯,或者LCD1602的"Hello World"显示,因为分频的思想在FPGA中极为重要。当初安排流水灯,只是为了能让 ...

CarverZhang @ 2018/08/27

146
基于FPGA的RGB565_YCbCr_Gray算法实现

前面我们讲了基于FPGA用VGA显示一副静态图片,那么接下来我们就接着前面的工程来实现我们图像处理的基础算法里最简单的一个那就是彩色图像转灰度的实现。 将彩色图像转化为灰度的方法有两种,一个是令RGB三个分量的数值相等,输出后便可以得到灰度图像,另一种是转化为YCbCr格式,将Y分量提取出来,YCb ...

NingHeChuan @ 2018/08/27

147
基于FPGA的均值滤波算法实现

我们为了实现动态图像的滤波算法,用串口发送图像数据到FPGA开发板,经FPGA进行图像处理算法后,动态显示到VGA显示屏上,前面我们把硬件平台已经搭建完成了,后面我们将利用这个硬件基础平台上来实现基于FPGA的一系列图像处理基础算法。 椒盐噪声(salt & pepper noise)是数字图像的一 ...

NingHeChuan @ 2018/08/27

148
基于FPGA的中值滤波算法实现

在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑白斑点并没有消除,中值滤波本来是可以很好的滤掉椒盐噪声,所以说这里并不是椒盐噪声,最后经过我仔细的检 ...

NingHeChuan @ 2018/08/27

149
关于AVALON总线动态地址对齐

在NIOS的使用中,我们往往要用到自定义外设,然后通过AVALON交换架构和NIOSII进行通信。 AVALON总线,其实是一种交换架构的协议,在自定义外设挂在AVALON总线上时,一定要注意地址对齐。 AVALON总线要求自定义外设数据位宽必须为8、16、32,这样如果使用位宽为32,那么就不需要 ...

alifpga @ 2018/08/27

151
基于FPGA的Sobel边缘检测的实现

前面我们实现了使用PC端上位机串口发送图像数据到VGA显示,通过MATLAB处理的图像数据直接是灰度图像,后面我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测、中值滤波、Canny算子边缘检测、腐蚀和膨胀等。那么这篇文章我们将来实现基于FPGA的Sobel边缘检测。 图像边缘 ...

NingHeChuan @ 2018/08/27

152
寄存器自动化配置通用案例

本博文设计思想采用明德扬至简设计法。之前都是通过一些完整的案例来分享设计心得,而这篇文章以需要配置多个寄存器的场景讲述核心设计技巧。 在设计案例时发现,经常会配置比较复杂的IP核或驱动一些接口进而操作外设。此时,为了让外设或IP核正常工作,需要对其内部多个寄存器进行适当配置来保证在所需模式下正常工作 ...

没落骑士 @ 2018/08/27

153
量化补偿与量化压缩

学习博客:http://lhtao31.blog.163.com/blog/static/2972647020103814044158/ 最近在学习调试摄像头,配置OV7670摄像头采集到的数据是RGB565,移植别人的代码,从ZYNQ移植到Basys3,VGA输出引脚需要又RGB565转到RGB4 ...

NingHeChuan @ 2018/08/27

154
基于FPGA的腐蚀膨胀算法实现

本篇文章我要写的是基于的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作。那么什么是二值图像呢?把一幅图片看做成一个二维的数组,那么二值图像是一个只有0和1的逻辑数组,我们前面Sobel边缘检测后的图 ...

NingHeChuan @ 2018/08/27

155
基于FPGA驱动VGA显示图片的小问题

学习VGA显示图片的过程中,遇到了一个小问题,我在显示屏上开了一个60x60的框,放了一张图片进去显示,但是最终的结果如下图所示。 出现了一个竖黑边,看了看代码,分析了一下逻辑没问题,然而看这个显示那肯定是有问题的,然后仿真了一下看看,时序图如下。 正确的时序 错误的时序 我这是的是当行计数器记到2 ...

NingHeChuan @ 2018/08/27

156
Verilog中使用'include实现参数化设计

前段时间在FPGA上用Verilog写了一个多端口以太网的数据分发模块,因为每个网口需要独立的MAC地址和IP地址,为了便于后期修改,在设计中使用parameter来定义这些地址和数据总线的位宽等常量。 当时的做法是,顶层模块和子模块中都定义parameter型常数,在顶层模块引用子模块时,通过参数 ...

米兰de小铁匠 @ 2018/08/27

157
IP核之初——FIFO添加以太网MAC头部

本文设计思路源自明德扬至简设计法。在之前的几篇博文中,由于设计比较简单,所有的功能都是用verilogHDL代码编写实现的。我们要学会站在巨人的肩膀上,这时候就该IP核登场了! 说白了,IP核就是别人做好了的硬件模块,提供完整的用户接口和说明文档,更复杂的还有示例工程,你只要能用好这个IP核,设计已 ...

没落骑士 @ 2018/08/27

158
《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例

还有几天就要交文章终稿了,三年的研究生生活也快要结束了,时间飞快,岁月如梭,但学习技术的热情仍然不能松懈,不懂的东西太多,需要实时保持奋斗!!过些天会继续更新《FPGA全程进阶 实战演练》内容,此电子书是笔者三年所做过的一些项目总结,又有擅长记录的习惯,于是整理成博客。 过些天会更新的内容有C++学 ...

raymon_tec @ 2018/08/27

159
QuartusII13.0使用教程详解(一个完整的工程建立)

好久都没有发布自己的博客了,因为最近学校有比赛,从参加到现在都是一脸懵逼,幸亏有bingo大神的教程,让我慢慢走上了VIP之旅,bingo大神的无私奉献精神值得我们每一个业界人士学习,向bingo致敬。之前一直没有发布博客,是因为比赛实在是太麻烦了,像我这种学习能力又不是很强,智商也不是很高的... ...

NingHeChuan @ 2018/08/27

160
深刻认识shift_ram IP core——图像处理学习笔记

在进行图像处理算法中,往往需要生成图像像素矩阵,这对于C语言来说可以直接用数组表示,但是对于verilog来说便不是那么容易了,硬件描述语言不比软件,它的核心不再算法,而是在于设计思想,加速硬件。在进行图像的滤波算法时,需要生成3x3矩阵,而altera的IP shift_ram 简直就是为矩阵运算 ...

NingHeChuan @ 2018/08/27