【基于FPGA的图像处理工程】边缘检测工程之指令检测模块代码解析
【基于FPGA的图像处理工程】
—边缘检测工程:指令检测模块代码解析
本文为明德扬原创文章,转载请注明出处!
本模块的功能,是从一串输入的数据中,检测出指令头55D5,检测出包文头后,获取到紧接着的4个数据(2字节),并按字节为单位送给下游模块。指令头和无效数据则丢弃。
输入的包文指令格式:

输入的数据din为4比特,假设其依次输入:
5、5、d、5、0、2、9、9、1、5、5、d、5、0、1、0、3
其中前两个字节55d5就表示指令头,后一个字节02表示地址,再一个字节99表示数据。紧跟着后面的1为无效数据,往后又检测到55d5,则01为地址,03为数据。把指令头、无效的数据过滤掉(即dout_vld为0),最终输出以字节为单位的02、99、01、03。
一、设计架构
检测出指令头的方法如下:

检测出包文头后,需要对后面的4个数据进行计数。每2个数据组成1个字节,一共有2个字节。所以指令检测模块采用两个计数器的结构,这两个计数器分别对应接收一个字节需要的数据个数和接收字节数,其结构图如下所示:

计数器cnt0:数据个数计数器。对接收一个字节需要的数据进行计数,接收一个字节需要2个数据。该计数器的计数周期为2。
计数器cnt1:字节数计数器。对接收的字节数进行计数,地址加上数据共两个字节。该计数器的计数周期为2。
二、信号的意义

三、参考代码
下面展出本模块的设计,欢迎进一步交流,如果需要源代码,欢迎与本人联系QQ:1727673675

明德扬专注FPGA研究,我司正在连载两本书籍: 《基于FPGA至简设计法实现的图像边缘检测系统》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=691)、
《ASIC和FPGA时序约束理论与应用》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=705),有兴趣点击阅读。。