FPGA-信号边缘检测】的更多相关文章

在FPGA逻辑电路中,输入信号的边缘检测是一个常用的操作,这算是FPGA的基本功之一. 信号边缘检测应用十分广泛,例如:通信协议的时序操作,按键的检测等,都应用到按键的检测.按键的检测分为上升沿和下降沿两种,基本的检测思想是一致的.本博客的思想是先介绍阻塞和非阻塞两种赋值,在理解这个的基础上然后去分析边缘检测.这里,首先分析一下Verilog语言中阻塞赋值(=)和非阻塞赋值(<=)的区别,给出相应的案例来帮助理解: module prj1(in,b,c,d,clk,rst_n); input i…
谈及此部分,多多少少有一定的难度,笔者写下这篇文章,差不多是在学习FPGA一年之后的成果,尽管当时也是看过类似的文章,但是都没有引起笔者注意,笔者现在再对此知识进行梳理,也发现了有很多不少的收获.笔者根据网上现有的资源,作进一步的总结,希望能够有所帮助. 一个不错的网站,类似于一个手册,随时可以去查询如何去定义各个时序约束指令怎么用.http://quartushelp.altera.com/current/mergedProjects/tafs/tafs/tcl_pkg_sdc_ver_1.5…
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/alinx/p/3362790.html <FPGA那些事儿--TimeQuest 静态时序分析>REV5.0 PDF下载地址: http://www.heijin.org/forum.php?mod=viewthread&tid=22811&extra=page%3D1 第五章:网表…
在STM32(Cortex-M3)中没有显示的代码拷贝,只有启动代码进行了向量的初始化,一直以为是编译器在程序影像中自己完成了相关向量的拷贝,即,拷贝到固定的NVIC区,事实上并不是这样,cortex-m3并没有一块专门用于存放NVIC向量表的地方,这张表实际是存放在代码(程序映像)的开始,下面引用cortex-M3权威指南进行解释: 当发生了异常并且要响应它时,CM3需要定位其服务例程的入口地址.这些入口地址存储在所谓的“(异常)向量表”中.缺省情况下,CM3认为该表位于零地址处,且各向量占用…
现在知道时序约束主要是FPGA to ic,或者ic to FPGA. 上图可以表示FPGA to IC, IC to FPGA. fpga2ic:fpga2ext 是 fpga 致 ic 信号的走线延迟:clk2fpga 是时钟信号致 fpga 的走线延迟:clk2ext 是时钟信号致 fpga 的走线延迟:Tsu/Th 外部器件的寄存器特性:( Tsu 信号建立时间: Th 信号保持时间)ic2fpga:ext2fpga 是 ic 致 fpga 信号的走线延迟:clk2fpga 是时钟信号致…
chipscope_icon提供与其他ChipScope内核的通信 chipscope_opb_iba促进传统片上外设总线(OPB)事务的监控 chipscope_plb_iba便于监控处理器本地总线(PLB)v3.4交易 chipscope_plbv46_iba促进对PLB v4.6交易的监控 chipscope_vio便于虚拟I / O通过JTAG探测FPGA信号 chipscope_ila便于监控处理器设计中的单个非总线信号 配置ChipScope ILA内核  Xilinx®ChipSc…
前面我们实现了使用PC端上位机串口发送图像数据到VGA显示,通过MATLAB处理的图像数据直接是灰度图像,后面我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测.中值滤波.Canny算子边缘检测.腐蚀和膨胀等.那么这篇文章我们将来实现基于FPGA的Sobel边缘检测. 图像边缘:简言之,边缘就是图像灰度值突变的地方,亦即图像在该部分的像素值变化速度非常之快,这就好比在坐标轴上一条曲线有刚开始的平滑突然来个大转弯,在变化出的导数非常大. Sobel算子主要用作边缘检测,在技术…
本文主要内容是实现图像的边缘检测功能 目录 mif文件的制作 调用 ip 核生成rom以及在 questasim 仿真注意问题 灰度处理 均值滤波:重点是3*3 像素阵列的生成 sobel边缘检测 图片的显示 结果展示 mif文件的制作 受资源限制,将图片像素定为 160 * 120,将图片数据制成 mif 文件,对 rom ip 核进行初始化.mif文件的制作方法网上有好多办法,因此就不再叙述了,重点说mif文件的格式. 1.mif文件的格式为: WIDTH= ; //数据位宽 DEPTH=…
前面我们实现了使用PC端上位机串口发送图像数据到VGA显示,通过MATLAB处理的图像数据直接是灰度图像,后面我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测.中值滤波.Canny算子边缘检测.腐蚀和膨胀等.那么这篇文章我们将来实现基于FPGA的Sobel边缘检测. 图像边缘:简言之,边缘就是图像灰度值突变的地方,亦即图像在该部分的像素值变化速度非常之快,这就好比在坐标轴上一条曲线有刚开始的平滑突然来个大转弯,在变化出的导数非常大. Sobel算子主要用作边缘检测,在技术…
扇入.扇出系数 扇入系数是指门电路允许的输入端数目.一般门电路的扇入系数为1—5,最多不超过8.扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载能力.一般门电路的扇出系数为8,驱动器的扇出系数可达25.扇出系数体现了门电路的负载能力. 灌电流.拉电流 当逻辑门输出端是低电平时,灌入逻辑门的电流称为灌电流,灌电流越大,输出端的低电平就越高.当逻辑门输出端是高电平时,逻辑门输出端的电流是从逻辑门中流出,这个电流称为拉电流.简单的理解就是逻辑门的输入(灌电流)和输出电流(拉电流). 上.下拉电…
沿检测技术在项目应用中, 非常低广泛. 如要有效捕获信号跳变沿, 边沿 检测技术的应用是必不可少的.大致如下: (1) 将时钟边沿使能转换为边沿检测使能,使时钟同步化. (2) 捕获信号的突变( UART, SPI等信号使能突变). ( 3) 逻辑分析仪中信号的边沿检测. 没有十全十美的东西和代码,以下边缘检测代码也存在缺陷: (1) 增大CLK信号可以增强边沿检测的效率,但不能滤去跳变的杂波. (2) 减少CLK可以有效滤去跳变的杂波,但不能及时检测到边沿跳变. ( 3) 增加DFF能更好的滤…
随着FPGA设计复杂程度越来越高,芯片内部逻辑分析功能显得越来越重要.硬件层次上的逻辑分析仪价格十分昂贵,而且操作比较复杂.目前,FPGA芯片的两大供应商都为自己的FPGA芯片提供了软件层面上的逻辑分析仪,可以帮助我们在线分析芯片内部逻辑.而且操作简单方便.但是往往因为某些原因,有些信号在综合的时候就会被优化掉,就可能会导致我们的设计失败,当然在为逻辑分析仪添加观察信号的时候也无法找到该信号.从而对设计.调试人员的工作带来一定的不便.下面就分别以Xilinx公司的逻辑分析仪ChipScope和A…
RT,否则警告Warning: Tri-state node(s) do not directly drive top-level pin(s),会利用或门代替中间的扇出fan-out. 原因:在进行FPGA设计时,对于FPGA内部的信号不能出现被赋值为高阻的状态,只有顶层的信号,即输出的信号才可以赋值为高阻态. 找出这个信号,然后把赋值为x'bz改为x'b0或x'b1(具体是改为x'b0还是x'b1要根据实际情况确定,x也行). CAUSE: The design contains tri-s…
上一篇写了一个按键消抖,按键消抖需要一个计数器.可是有些信号是不需要这么负责的,仅仅是抖动而已.于是我在上一篇博文的基础上做了一点修改,于是有了这个信号消抖的程序 module sig_nojitter ( clock , rst_n , sig_in, sig_out ); input clock ,rst_n ; input sig_in ; output reg sig_out ; :] sig_reg ; wire sig_dy ; always @ (posedge clock or…
FPGA跨时钟数据传输,是我们经常遇到的问题的,下面给出一种跨时钟握手操作的电路结构.先上图 先对与其他人的结构,这个结构最大的特点是使用 req 从低到高或者高到低的变化 来表示DIN数据有效并开始传输.并且同过判断 req与ack信号是否相等就可以判断传输是否完成.当req !=ack时表示正在传输,不可以发起新的传输操作.当req=ack时表示传输完成,可以开始新的传输过程. 并且这样的结构在req传输发生亚稳态时也可以有效的传输信号,可以适应任意时钟域之间的数据传输.仿真图如下 代码:…
在逻辑设计领域,只涉及单个时钟域的设计并不多.尤其对于一些复杂的应用,FPGA往往需要和多个时钟域的信号进行通信.异步时钟域所涉及的两个时钟之间可能存在相位差,也可能没有任何频率关系,即通常所说的不同频不同相. 图1是一个跨时钟域的异步通信实例,发送域和接收域的时钟分别是clk_a和clk_b.这两个时钟频率不同,并且存在一定的相位差.对于接收时钟域而言,来自发送时钟域的信号data_a2b有可能在任何时刻变化. 图1 跨时钟域通信 对于上述的异步时钟域通信,设计者需要做特殊的处理以确保数据可靠…
有些东西当你习以为常而不去深思熟虑的时候,致命的错误就会因此埋下!      FPGA开发中难免会遇到跨时钟域处理的问题,而对于单比特信号,我会不假思索的回答:打两拍不久解决了吗?但是事实时,这佯作的前提条件是:信号A从clk1进入到clk2的时候,clk1的是一个慢时钟,而clk2是一个快时钟.这样在快时钟域把信号A延迟两排,总能采样到稳定的数据. 但是如果是一个快时钟信号进入到一个慢时钟域中,上面的做法就不一定成立!单比特信号A在快时钟周期内2个clk保持稳定,但是快时钟域内2个clk的时钟…
在FPGA设计开发中,很多场合会遇到同一根信号既可以是输入信号,又可以是输出信号,即IO类型(Verilog定义成inout). 对于inout型的信号,我们既可以使用FPGA原语来实现,也可以使用Verilog代码来实现.下面将介绍在Xilinx 7系列FPGA上两种实现方式的差别和注意点. 1.FPGA原语实现 首先,我们编写的代码如下: `define PRIMITIVE module io_buf( input T , input I , output O , inout IO ); `…
首先还是把握大的系统框架: 我要实现的部分不包括DA以及AD的转换,主要是将SSP接收到的数据送入到FIFO中,然后经过FIR带通滤波器的处理后对该信号计算幅值并做PSD,然后处理的信号经过积分够一方面送入到FIFO一方面进行均值滤波(实际上就是在一定的积分门时间内做累加操作).最后结果通过通信模块RS232 送入到上位机,此外信号源2经过缓冲放大然后AD转换后送入到FIFO,也是通过RS232送入到上位机. 二次谐波幅值计算 先计算二次谐波幅值. 二次谐波的计算主要利用的是正余弦信号的周期性:…
通信信号源设计原理 通过设计一个DDS信号源,然后将该信号作为载波信号,再对基带信号进行2ASK.2FSK.2PSK.2DPSK调制,进而产生多种通信信号. 设计框图如下: 将PN序列进行2ASK.2FSK.2PSK.2DPSK调制,其中载波发生器提供三种不同的载波信号,按键设置用来选择当前DAC输出的最终调制信号,DAC输出模块将调制好的数字化波形转换为模拟信号. PN序列采用的设计方法是m序列,采用3级寄存器生成7序列基带信号. 调制模块分别包含:2ASK.2FSK.2PSK.2DPSK这四…
ALTPLL中的areset,locked的使用 转自:http://www.360doc.com/content/13/0509/20/9072830_284220258.shtml 今天对PLL中areset和locked详细查了下资料,发现网上这方面的资料很少,所以自己认真读了下Documentation---ug_altpll.pdf,现在我将我学到的内容总结如下: areset简而言之就是高电平有效,对pll进行复位. 下面我们主要来认识一下locked信号: Locked这个输出到底…
(*synthesis,keep*) (*synthesis,probe_port,keep *) 例:(*synthesis,probe_port,keep *) wire e; 可用于wire型和reg型.…
昨天才更新了两篇博客,今天又要更新了,并不是我垃圾产,只不过这些在上个月就已经写好了,只是因为比赛忙,一直腾不出时间整理出来发表而已,但是做完一件事情总感觉不写一博文总结一下就少点什么,所以之后的一段时间里我会把我这学期学到的一些东西陆续整理出来发表,给自己一个总结交代. 将彩色图像转化为灰度的方法有两种,一个是令RGB三个分量的数值相等,输出后便可以得到灰度图像,另一种是转化为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,得到的图像就是灰度…
前面实现了基于FPGA的彩色图像转灰度处理,减小了图像的体积,但是其中还是存在许多噪声,会影响图像的边缘检测,所以这一篇就要消除这些噪声,基于灰度图像进行图像的滤波处理,为图像的边缘检测做好夯实基础. 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素.椒盐噪声是一种因为信号脉冲强度引起的噪声,产生该噪声的算法也比较简单. 均值滤波的方法将数据存储成3x3的矩阵,然后求这个矩阵.在图像上对目标像素给…
终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为一直看人家的代码,到后来难免有点空虚.所以说自己狠下心来,报了一个线上培训班,重新学习一下,自己设计Sobel边缘检测,势要摆脱抄别人代码的魔咒.所以这次图像显示部分和在彩色条纹中显示一副图片的代码,全部是我自己设计的,虽然不是什么大工程,但是还是满满的成就感,这次用的时间比较久,因为使用的是新板子…
实验:FPGA计算3行同列数据之和 实验要求:PC机通过串口发送3行数据(一行有56个数据,3行共有56*3=168个数据)给FPGA,FPGA计算3行同一列数据的和,并将结果通过串口返回给上位机. 实现方法:使用两个FIFO IP Core,将串口接收到的数据进行缓存,当第一个FIFO1的数据存满后,将FIFO1的数据读出来给FIFO2,当FIFO2的数据存满时,当前两个FIFO的数据和串口正在接收的数据就可以看做为三行数据了.我们将3行数据同时读出,进行求和,然后用串口发送到上位机,这里要注…
我们为了实现动态图像的滤波算法,用串口发送图像数据到FPGA开发板,经FPGA进行图像处理算法后,动态显示到VGA显示屏上,前面我们把硬件平台已经搭建完成了,后面我们将利用这个硬件基础平台上来实现基于FPGA的一系列图像处理基础算法. 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素.椒盐噪声是一种因为信号脉冲强度引起的噪声,产生清楚该噪声的算法也比较简单. 均值滤波的方法将数据存储成3x3的矩阵…
在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑白斑点并没有消除,中值滤波本来是可以很好的滤掉椒盐噪声,所以说这里并不是椒盐噪声,最后经过我仔细的检查,终于明白了问题的所在.我所使用的Xilinx这款开发板的晶振为125Mhz,串口模块我使用前面设计好的代码,输入时钟为50Mhz,产生的接收完成标志信号也就是一个50Mhz的时钟周期,我这里将接收…
数字图像处理方法的重要性源于两个主要应用领域: 改善图像信息以便解释. 为存储.传输和表示而对图像数据进行处理,以便于机器自动理解. 图像处理(image processing): 用计算机对图像进行分析,以达到所需结果的技术.又称影像处理.一般指数字图像处理.数字图像是指用工业相机.摄像机.扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值.图像处理技术一般包括图像压缩,增强和复原,匹配.描述和识别3个部分. 常用方法: 图像变换:由于图像阵列很大,直接在空间域中…
实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进行显示.本实验采用以往未曾采用过的方式,将按键的键值读取后通过硬件在环传送到simulink上进行显示,由此来学习如何将FPGA采集到的数据通过硬件在环传送到simulink. 本实验的主要原理是,FPGA对按键信号进行消抖.采样,然后将对应按键的键值通过硬件在环传送到simulink中,并通过si…