一种基于FPGA的图像滤波器流水线控制系统及方法技术方案

技术编号:21032733 阅读:18 留言:0更新日期:2019-05-04 04:53
本发明专利技术提供了一种基于FPGA的图像滤波器流水线控制系统及方法,通过在滤波器流水线控制系统中设置独立的控制模块,将滤波器流水线控制系统的控制模块和计算模块解耦,提高模块的可维护性和可移植性;采用状态机控制方案,设置计算模块的流水线驱动信号,简化了流水线的控制方法,减少了控制信号之间的交互,提高了控制逻辑的正确性和开发效率。

A Pipeline Control System and Method of Image Filter Based on FPGA

The invention provides an image filter pipeline control system and method based on FPGA, which decouples the control module and the calculation module of the filter pipeline control system by setting an independent control module in the filter pipeline control system, improves the maintainability and portability of the module, and adopts the state machine control scheme to set the pipeline driving signal of the calculation module. It simplifies the pipeline control method, reduces the interaction between control signals, and improves the correctness of control logic and development efficiency.

【技术实现步骤摘要】
一种基于FPGA的图像滤波器流水线控制系统及方法
本专利技术属于FPGA流水线控制
,具体涉及一种基于FPGA的图像滤波器流水线控制系统及方法。
技术介绍
基于FPGA实现图像滤波器一般采用多级流水线以提高性能;但复杂的滤波器往往需要精确控制每一级流水的计算细节,并且需要支持反压功能,即当后级模块不需要数据时,整个流水线暂停,以保证数据不丢失。现阶段的流水线控制方法是采用逐级控制,即每级产生一个单独的流水线驱动信号,把本级流水的计算结果写到本级寄存器中;相邻的流水线驱动信号之间需要交互以保证反压功能正常。逐级流水线控制方法的主要缺点为:1.控制模块只适用于当前滤波器的计算模块,一旦流水结构修改,不仅需要修改计算模块,控制模块也要随之修改,可维护性和可移植性差。2.相邻的流水线驱动信号之间的交互实现困难。
技术实现思路
本专利技术要解决的技术问题是:提供一种基于FPGA的图像滤波器流水线控制系统及方法,采用状态机控制方案,设置滤波器的计算模块的流水线驱动信号,将滤波器的控制模块和计算模块解耦,提高模块的可维护性和可移植性。本专利技术为解决上述技术问题所采取的技术方案为:一种基于FPGA的图像滤波器流水线控制系统,用于控制本级计算模块运算,以及与前级模块和后级模块的信号交互,其特征在于:包括控制模块和控制端口;控制模块为状态机,以待处理图像的一行为处理单位;控制端口不少于6个;控制模块通过至少两个控制端口与计算模块相连,分别用于向计算模块发送流水线驱动信号和行内计数信号。按上述方案,控制模块通过至少两个控制端口与前级模块相连;控制模块通过至少两个控制端口与后级模块相连。一种基于FPGA的图像滤波器流水线控制方法,包括以下步骤:步骤S1:状态机复位后进入初始状态,流水线驱动信号和行内计数信号清零。步骤S2:流水线驱动信号赋值为输入数据有效,状态机进入输入状态,滤波器开始接收并处理一行图像数据;行内计数信号开始计数,每过一个时钟周期,行内计数信号的值加1。步骤S3:流水线驱动信号赋值为输入数据有效且允许输出数据,状态机进入输入输出状态,滤波器继续接收处理该行图像数据,并开始输出处理结果。步骤S4:流水线驱动信号赋值为允许输出数据,状态机进入输出状态,滤波器没有输入数据,继续处理并输出处理结果。步骤S5:从步骤S2开始循环,流水线驱动信号再次赋值为输入数据有效,状态机再次进入输入状态,滤波器输出处理结果完毕,开始接收并处理下一行图像数据。进一步的,所述的步骤S1中,具体步骤为:步骤S11:状态机复位后进入初始状态,控制模块各标志位、流水线驱动信号和行内计数信号清零。步骤S12:计算模块内各寄存器清零。进一步的,所述的步骤S2中,具体步骤为:步骤S21:控制模块向前级模块发送读命令。步骤S22:前级模块向控制模块发送输入数据有效的信号并保持。步骤S23:流水线驱动信号赋值为输入数据有效并保持,状态机进入输入状态。步骤S24:前级模块向计算模块输入数据。步骤S25:计算模块对输入数据进行运算和处理,将结果存入计算模块内部的寄存器。进一步的,所述的步骤S3中,具体步骤为:步骤S31:行内计数信号的值等于计算模块内部流水级数时,控制模块向后级模块发送写命令。步骤S32:后级模块向控制模块发送允许输出数据的信号并保持。步骤S33:流水线驱动信号赋值为输入数据有效且允许输出数据并保持,状态机进入输入输出状态。步骤S34:前级模块继续向计算模块输入数据,计算模块向后级模块输出数据。进一步的,所述的步骤S4中,具体步骤为:步骤S41:行内计数信号的值等于待处理图像宽度时,前级模块向计算模块发送完毕输入数据。步骤S42:前级模块向控制模块发送输入数据失效的信号并保持。步骤S43:流水线驱动信号赋值为允许输出数据并保持,状态机进入输出状态。步骤S44:计算模块继续向后级模块输出数据。进一步的,所述的步骤S5中,具体步骤为:步骤S51:行内计数信号再次清零时,计算模块向后级模块发送完毕输出数据。步骤S52:从步骤S2开始循环,控制模块向前级模块发送读命令。步骤S53:前级模块向控制模块发送输入数据有效的信号并保持。步骤S54:流水线驱动信号赋值再次为输入数据有效,状态机再次进入输入状态。步骤S55:计算模块开始接收并处理下一行图像数据。进一步的,所述的行内计数值的计数范围是0~(待处理图像宽度-1+计算模块内部流水结构的级数)。进一步的,在所述的输入输出状态和输出状态期间,若后级模块向控制模块发送不允许输出数据的信号,控制模块向计算模块发送的流水线驱动信号赋值为不允许输出数据并保持,计算模块停止向后级模块输出数据;直到后级模块向控制模块发送允许输出数据的信号,控制模块向计算模块发送的流水线驱动信号赋值为允许输出数据并保持,计算模块继续向后级模块输出数据。本专利技术的有益效果为:1.本专利技术的一种基于FPGA的图像滤波器流水线控制系统及方法,通过设置滤波器的计算模块的流水线驱动信号,将滤波器的控制模块和计算模块解耦,提高了模块的可维护性和可移植性。2.本专利技术只有一个流水线驱动信号,不需要每一级流水线驱动信号之间的交互。附图说明图1是
技术介绍
所述的逐级流水线控制方式示意图。图2是本专利技术实施例的控制方式示意图。图3是本专利技术实施例的流水线时空图。图4是本专利技术实施例的状态机的状态转移图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。参见图2,一种基于FPGA的图像滤波器流水线控制系统,包括控制模块DRIVER_CTRL和控制端口;控制模块DRIVER_CTRL为状态机,用curr_st表示控制模块的状态,由初始状态IDLE、输入状态ONLY_IN、输入输出状态IN_AND_OUT和输出状态ONLY_OUT组成;状态机以待处理图像的一行为处理单位;控制端口为6个,控制模块DRIVER_CTRL通过两个控制端口与计算模块calc相连,分别用于向计算模块calc发送流水线驱动信号driver_en和行内计数信号in_hcnt;行内计数信号in_hcnt的计数范围是0~(待处理图像宽度-1+计算模块calc内部流水结构的级数)即0~(10-1+2)即0~11;控制模块DRIVER_CTRL通过两个控制端口与前级模块fifo_in相连,分别用于向前级模块fifo_in发送读命令read和接收前级模块fifo_in发送的输入数据是否有效的信号;控制模块DRIVER_CTRL通过两个控制端口与后级模块fifo_out相连,分别用于向后级模块fifo_out发送写命令write和接收后级模块fifo_out发送的是否允许输出数据的信号。参见图3至图4,一种基于FPGA的图像滤波器流水线控制方法,包括以下步骤:步骤S1:状态机复位后进入初始状态IDLE,流水线驱动信号driver_en和行内计数信号in_hcnt清零,具体步骤为:步骤S11:状态机复位后进入初始状态IDLE,控制模块DRIVER_CTRL各标志位、流水线驱动信号driver_en和行内计数信号in_hcnt清零。步骤S12:计算模块calc内各寄存器清零。步骤S2:流水线驱动信号driver_en赋值为输入数据有效rdata_valid,状态机进入输入状态ONLY_IN,滤波本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的图像滤波器流水线控制系统,用于控制本级计算模块运算,以及与前级模块和后级模块的信号交互,其特征在于:包括控制模块和控制端口;控制模块为状态机,以待处理图像的一行为处理单位;控制端口不少于6个;控制模块通过至少两个控制端口与计算模块相连,分别用于向计算模块发送流水线驱动信号和行内计数信号。

【技术特征摘要】
1.一种基于FPGA的图像滤波器流水线控制系统,用于控制本级计算模块运算,以及与前级模块和后级模块的信号交互,其特征在于:包括控制模块和控制端口;控制模块为状态机,以待处理图像的一行为处理单位;控制端口不少于6个;控制模块通过至少两个控制端口与计算模块相连,分别用于向计算模块发送流水线驱动信号和行内计数信号。2.根据权利要求1所述的一种基于FPGA的图像滤波器流水线控制系统,其特征在于:控制模块通过至少两个控制端口与前级模块相连;控制模块通过至少两个控制端口与后级模块相连。3.一种基于FPGA的图像滤波器流水线控制方法,其特征在于:包括以下步骤:步骤S1:状态机复位后进入初始状态,流水线驱动信号和行内计数信号清零;步骤S2:流水线驱动信号赋值为输入数据有效,状态机进入输入状态,滤波器开始接收并处理一行图像数据;行内计数信号开始计数,每过一个时钟周期,行内计数信号的值加1;步骤S3:流水线驱动信号赋值为输入数据有效且允许输出数据,状态机进入输入输出状态,滤波器继续接收处理该行图像数据,并开始输出处理结果;步骤S4:流水线驱动信号赋值为允许输出数据,状态机进入输出状态,滤波器没有输入数据,继续处理并输出处理结果;步骤S5:从步骤S2开始循环,流水线驱动信号再次赋值为输入数据有效,状态机再次进入输入状态,滤波器输出处理结果完毕,开始接收并处理下一行图像数据。4.根据权利要求3所述的一种基于FPGA的图像滤波器流水线控制方法,其特征在于:所述的步骤S1中,具体步骤为:步骤S11:状态机复位后进入初始状态,控制模块各标志位、流水线驱动信号和行内计数信号清零;步骤S12:计算模块内各寄存器清零。5.根据权利要求4所述的一种基于FPGA的图像滤波器流水线控制方法,其特征在于:所述的步骤S2中,具体步骤为:步骤S21:控制模块向前级模块发送读命令;步骤S22:前级模块向控制模块发送输入数据有效的信号并保持;步骤S23:流水线驱动信号赋值为输入数据有效并保持,状态机进入输入状态;步骤S24:前级模块向计算模块输入数据;步骤S25:计算模块对输入数据进行运算和处理,将结果存入计算模块内...

【专利技术属性】
技术研发人员:朱浪许端王述良梁文豪
申请(专利权)人:武汉极目智能技术有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1