CN109565269A - 快速滤波 - Google Patents

快速滤波 Download PDF

Info

Publication number
CN109565269A
CN109565269A CN201780050777.0A CN201780050777A CN109565269A CN 109565269 A CN109565269 A CN 109565269A CN 201780050777 A CN201780050777 A CN 201780050777A CN 109565269 A CN109565269 A CN 109565269A
Authority
CN
China
Prior art keywords
filter
input
transfer function
value
medial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780050777.0A
Other languages
English (en)
Other versions
CN109565269B (zh
Inventor
U.艾多纳特
A.C.凌
G.R.赵
S.奥康奈尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of CN109565269A publication Critical patent/CN109565269A/zh
Application granted granted Critical
Publication of CN109565269B publication Critical patent/CN109565269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/44Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Electromagnetism (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Processing (AREA)
  • Logic Circuits (AREA)

Abstract

用于对数据滤波的装置和方法包括使用转换函数从输入元素计算中间输入值。转换函数至少部分基于滤波器的大小和滤波器输出的数量。使用转换函数从滤波器的滤波器元素计算中间滤波器值。每个中间输入值与相应的中间滤波器值相乘来形成中间值。使用转换函数将这些中间值与彼此组合来确定一个或多个输出值。

Description

快速滤波
背景技术
本公开一般涉及使用诸如现场可编程门阵列(FPGA)的集成电路来滤波。更具体来说,本公开涉及被实现用于集成电路(例如,FPGA)的基于Winograd的滤波操作。
本部分旨在向读者介绍技术的各种方面,其可涉及下面描述的和/或要求保护的本公开的各种方面。相信此讨论有助于给读者提供用于促进对本公开的各种方面的更佳理解的背景信息。因此,应理解,这些陈述要就此而论并且不作为对现有技术的供认来阅读。
集成电路(IC)采取各种形式。例如,现场可编程门阵列(FPGA)是旨在作为相对地通用装置的集成电路。FPGA可包括可在制造之后被编程(例如,被配置)成提供FPGA被设计成支持的任何期望的功能性的逻辑。因此,FPGA包含可编程逻辑或逻辑块,其可根据设计者的设计,被配置成在FPGA上执行各种功能。例如,FPGA可被用于对数据滤波。然而,传统的滤波针对每个计算的输出,利用与输入的数量乘滤波器的数量相等的乘法操作。例如,利用三个滤波器元素对四个输入进行滤波导致针对两个输出的六个乘法。此类乘法操作极大地导致增大的处理时间,从而降低滤波过程的效率。
发明内容
下面阐述本文公开的某些实施例的概括。应理解,呈现这些方面仅用于给读者提供这些某些实施例的简要概括并且这些方面不旨在限制本公开的范围。实际上,本公开可涵盖可能在下面没有阐述的各种方面。
本实施例涉及用于使用滤波电路增强机器实现的程序的性能的系统、方法和装置。滤波电路可实现快速滤波方法,其利用预处理来降低在运行时间执行的乘法操作的数量以增大滤波效率。
对上面提到的特征的各种细化(refinement)可关于本公开的各种方面而存在。也可在这些各种方面中也结合另外的特征。这些细化和额外特征可单独或以任何组合存在。例如,下面讨论的关于所图示的实施例中的一个或多个实施例的各种特征可独自或以任何组合被结合到本发明的任何以上描述的方面中。上面呈现的简要概括仅旨在使读者熟悉本公开的实施例的某些方面和上下文,而不对所要求保护的主题进行限制。
附图说明
在阅读以下详细描述时以及在参考附图时,可更好地理解本公开的各种方面,在附图中:
图1是根据实施例的利用快速滤波电路的系统的框图;
图2是根据实施例的可包括有助于实现图1的快速滤波电路的逻辑的可编程逻辑装置的框图;
图3是根据实施例的使用原始滤波的滤波器的框图;
图4是根据实施例的用于使用中间滤波器元素进行快速滤波的过程的流程图;
图5是图示根据实施例的可实现图4的过程的滤波器的框图;
图6是图示根据实施例的可实现包括处理块的图4的过程的滤波器电路的示意图;
图7是根据实施例的从滤波器元素导出滤波器中间元素的处理块的框图;
图8是根据实施例的使用转换函数从输入值生成中间输入值的处理块的框图;
图9是根据实施例的使用输出转换函数从中间值生成输出的处理块的框图;以及
图10图示根据实施例的使旁路处理块能够实现简单叉积的旁路电路。
具体实施方式
下面将描述一个或多个特定的实施例。在努力提供这些实施例的简明描述时,说明书中没有描述实际实现的全部特征。应理解,在任何这样的实际实现的开发中,如在任何工程或设计规划中,必须进行众多实现特定的决定以实现开发者的特定目标,诸如服从与系统相关的和与商业相关的约束,这可从一个实现到另一个实现而变化。此外,应理解,这样的开发努力可能是复杂和耗时的,但对于具有本公开的益处的本领域技术人员,仍然将是设计、制作和制造的例行任务。
如下面进一步详细讨论的,本公开的实施例一般涉及用于使用滤波技术来实现快速滤波的电路,所述滤波技术使用转换函数来降低乘法操作的数量。例如,快速滤波可采用Winograd转换来使用预处理生成中间滤波结果,其然后使用比在滤波器元素与输入元素的直截了当、原始点积中使用乘法操作的更少的乘法操作被相乘在一起。
快速滤波是现场可编程门阵列卷积神经网络中的核心操作。电路使用转换函数将滤波器和输入数据转换成中间滤波器和输入数据结果。转换函数可至少部分基于多个滤波器元素和输出元素来确定中间滤波器结果。例如,转换函数可包括Winograd转换。使用点积(元素智能乘法(element-wise multiplication))将这些中间滤波器和输入数据结果相乘在一起。这些过程的一部分可在芯片上执行以保持带宽消耗较低。
在一些实施例中,电路可被动态地配置。例如,基于中间值的滤波技术可被旁路来支持基础的点积操作。此外,可用不同的转换函数但使用相同的一般电路来支持不同的滤波器大小和尺寸。
虽然主要在诸如具有现场可编程门阵列(FPGA)构造的可编程逻辑装置的可重配置装置的上下文中描述本公开的技术,但这意在说明而非限制。实际上,可在其它集成电路中实现本公开的滤波电路。例如,诸如专用集成电路(ASIC)、微处理器、存储器装置、收发器之类的其它类型的集成电路也可使用本公开的快速滤波电路。
考虑到前文,图1图示包括用于滤波操作的电路的系统10的框图。如上面讨论的,设计者可在诸如可重配置集成电路12(诸如现场可编程门阵列(FPGA))的集成电路上实现功能性。设计者可使用诸如由AlteraTM所作的某版本的Quatus的设计软件14来实现要被编程到IC 12上的电路设计。设计软件14可使用编译器16来生成对集成电路12编程的低级电路设计内核程序18,其有时也称作程序对象文件或比特流。也就是说,编译器16可给IC 12提供表示电路设计的机器可读指令。例如,IC 12可接收一个或多个内核程序18,其描述应被存储在IC中的硬件实现。在一些实施例中,可使用有限脉冲响应(FIR)滤波器、无限脉冲响应(IIR)滤波器、线性滤波器、非线性滤波器、时变滤波器、时不变滤波器和/或其它适当的滤波电路来在集成电路12上实现滤波操作20。如下面将更详细描述的,滤波器的直接应用可比预处理滤波包括在运行时间的更多乘法操作,从而增大滤波时延。
现在转向IC 12的更具体的讨论,图2图示IC装置12,其可以是诸如现场可编程门阵列(FPGA)40的可编程逻辑装置。出于此示例的目的,FPGA 40称作FPGA,然而应理解,装置可以是任何类型的可编程逻辑装置(例如,专用集成电路和/或专用标准产品)。如示出的,FPGA 40可具有输入/输出电路42,其用于驱使信号离开FPGA 40并且用于经由输入/输出引脚44从其它装置接收信号。诸如全局和局部垂直和水平的导线和总线的互连资源46可被用于在FPGA 40上路由信号。另外,互连资源46可包括固定互连(导线)和可编程互连(即,相应的固定互连之间的可编程连接)。可编程逻辑48可包括组合和顺序逻辑电路。例如,可编程逻辑48可包括查找表、寄存器和多路复用器。在各种实施例中,可编程逻辑48可被配置成执行定制的逻辑功能。与互连资源关联的可编程互连可被认为是可编程逻辑48的一部分。如下面进一步详细讨论的,FPGA 40可包括能够实现FPGA 40的部分重配置的可适配逻辑,使得可在FPGA 40的运行时间期间添加、移除和/或交换内核。
诸如FPGA 40的可编程逻辑装置可在可编程逻辑48内包含可编程元件50。例如,如以上讨论的,设计者(例如,客户)可对可编程逻辑48编程(例如,配置)以执行一个或多个期望的功能(例如,滤波操作)。举例来说,一些可编程逻辑装置可通过使用掩模编程布置来配置它们的可编程元件50被编程,这在半导体制造期间被执行。其它可编程逻辑装置在已完成半导体制作操作之后被配置,诸如通过使用电气编程或激光编程来对它们的可编程元件50编程。一般来说,可编程元件50可基于任何适当的可编程技术,诸如熔丝、反熔丝、电气可编程只读存储器技术、随机存取存储器单元、掩模编程的元件等等。
很多可编程逻辑装置被电气编程。通过电气编程布置,可编程元件50可包括一个或多个逻辑元件(线、门、寄存器等)。例如,在编程期间,使用引脚44和输入/输出电路42将配置数据加载到存储器52中。在一个实施例中,存储器52可被实现成随机存取存储器(RAM)单元。本文描述的基于RAM技术的存储器52的使用旨在仅作为一个示例。此外,可遍及FPGA40来分布存储器52(例如,作为RAM单元)。此外,因为这些RAM单元在编程期间加载有配置数据,它们有时称作配置RAM单元(CRAM)。存储器52可提供对应的静态控制输出信号,其控制可编程逻辑48中的关联逻辑组件的状态。例如,在一些实施例中,输出信号可被施加到可编程逻辑48内的金属氧化物半导体(MOS)晶体管的门。在一些实施例中,可编程元件50可包括DSP块,其实现常见的操作,诸如使用DSP块实现的滤波操作和/或浮点加法器操作。
可使用任何适当的架构来组织FPGA 40的电路。作为示例,FPGA 40的逻辑可被组织更大可编程逻辑区的一系列的行和列中,更大可编程逻辑区的一系列的行和列中的每个可包含多个更小逻辑区。可由诸如关联的垂直和水平导体的互连资源46来互连FPGA 40的逻辑资源。例如,在一些实施例中,这些导体可包括实质跨过全部的FPGA 40的全局导线、诸如跨过部分的FPGA 40的二分线或四分线的部分线、具体长度(例如,足以互连若干逻辑区域)的交错线、更小的局部线或任何其它适当的互连资源布置。此外,在另外的实施例中,可在其中多个大区被互连以形成又更大部分的逻辑的更多级或层中布置FPGA 40的逻辑。此外,一些装置布置可使用除行和列之外的方式来布置的逻辑。
如以上讨论的,FPGA 40可允许设计者创建能够运行和执行定制功能性的定制设计。每个设计可具有要在FPGA 40上被实现的其本身的硬件实现。这些硬件实现可包括使用DSP块可编程元件50的浮点操作和/或其它操作。
图3图示典型的滤波电路100的示意图。滤波电路100是使用三个滤波器元素102的1x3滤波器。滤波器元素102被用于对输入数据元素104滤波。特定地,使用乘法器106将每个滤波器元素102与对应的输入数据元素104相乘,其中每个输出108的结果使用换算电路110相加。此外,每个输出元素108是滤波器元素102和输入104的数量的函数。例如,当输出元素108包括两个元素时,可使用下面的等式来确定输出:
(等式1)
(等式2),
其中,yn是索引的输出元素108,in是索引的输入元素104以及fn是索引的滤波器元素102。如先前提到的,乘法操作显著导致滤波时延从而降低滤波效率。滤波电路100的方法利用某一数量的乘法操作得到结果,其中乘法操作的数量可使用下面的等式来计算:
(等式3)
其中,nmult是乘法操作的数量,nf_ele是滤波器元素的数量,并且noutputs是输出元素的数量。
代替将滤波器元素与输入元素原始相乘,预处理和/或后处理可被用于降低乘法操作的数量从而增加滤波器效率。图4图示用于对数据滤波的过程120,其包括在集成电路接收滤波器数据(框122)。接收滤波数据可包括接收滤波器元素和/或接收滤波器元素的数量的指示。集成电路也接收输入数据(框124)。接收输入数据可包括接收输入元素和/或接收输入元素的数量的指示。基于滤波器数据元素的数量、输入数据元素的数量和/或输出元素的数量来确定转换函数的集合(框126)。转换函数指示要如何组合输入和滤波数据来形成输出数据。转换函数可被存储在查找表(LUT)中,查找表(LUT)存储根据输入数据元素的数量、滤波器数据元素的数量和/或输出数据元素的数量的转换函数的集合。例如,可针对输入数据元素的数量、滤波器数据元素的数量和/或输出数据元素的数量,将Winograd快速滤波转换等式存储在LUT中。另外或备选地,可在接收输入数据元素的数量、滤波器数据元素的数量和/或输出数据元素的数量之后使用此类数量来计算转换函数。例如,可基于输入数据元素的数量、滤波器数据元素的数量和/或输出数据元素的数量来计算Winograd转换。
使用所确定的转换等式,可确定中间滤波器元素(框128)。特定地,从在所确定的中间传递函数中使用的滤波器元素的值来确定中间滤波器元素。使用中间滤波器元素中的一个或多个,可计算滤波器输出元素(框130)。如果存在额外的输出(框132),则针对要计算的每个输出,可计算滤波器输出元素。一旦已计算了全部的输出,则输出滤波器元素是作为已被转换的向量化的滤波器结果的输出(框134)。在一些实施例中,向量可以是1x1、1x2、1x3、1x4或更长长度的向量。
在一些实施例中,过程120的至少一部分可从集成电路芯片被卸载到执行过程120的至少一部分的片下处理器(例如,主机计算机的CPU)。例如,LUT中存储的转换函数可以是之前由主机计算机计算的函数。此外,转换函数可至少部分被传递到集成电路芯片。例如,中间滤波器元素可离开芯片被预处理。
图5图示与包括预处理元件142的滤波电路100相似的滤波电路140的示意图。可使用软件、硬件或其某组合来实现预处理元件142。预处理元件142包括滤波器元素预处理144和输入元素预处理146。滤波器元素预处理144和输入元素预处理146基于设置的或确定的转换函数来计算或存储中间元素。例如,当存在三个滤波器元素102和两个输出元素108时,可使用下面的等式来计算两个输出元素108:
(等式4)
(等式5),
其中,每个xn是可基于输入元素104和滤波器元素102来计算的中间值。例如,可从下面相应的等式来计算x0-x3
(等式6)
(等式7)
(等式8)
(等式9)
等式的滤波器部分可被加载(例如,预加载)到滤波器元素预处理144,并且等式的输入部分可被加载到输入元素预处理146。然后可由乘法器106将这些存储的元素相乘在一起来创建相应的中间元素,其然后使用换算电路110相加或相减(例如,取反并且相加)在一起来形成输出108。在一些实施例中,中间元素的至少一些可被存储在存储器(例如,寄存器)中以便再利用。例如,在所图示的实施例中,x1和x2可被存储在存储器中以便在计算两个输出时再利用。
注意,使用中间元素的滤波过程中使用的乘法的数量包括四个乘法而不是先前讨论的原始滤波方法中使用的六个乘法,这在乘法操作缩减中提供33%的增益。虽然部署了一些预处理和后处理,但对乘法操作的节约是显著的,同时,可通过由于较少的乘法操作而增加的滤波时延效率的量来补偿预处理和后处理。此外,利用中间元素的滤波过程可被扩展成更大滤波器和/或多维(例如,2D)滤波器来进一步降低乘法操作的数量。在一些实现中,诸如寄存器、多路复用器或时钟路径的额外的电路可被用于管理所描述的计算中的值的保留和/或值的定时。
此外,可在芯片上有效率地实现预处理元件142。另外或备选地,预处理元件142可至少部分脱离芯片被实现以节约资源。然而,被传递到具有滤波电路140的集成电路的更多数据消耗更多带宽。
另外,包括乘法器106和换算电路110的处理电路148可被配置成在运行时间进行简单点积来增加灵活性而不降低通过电路进行的简单点积操作的效率。例如,如下面讨论的多路复用器可被用于将预处理元件142旁路来产生仅简单的叉积而不滤波。
图6图示滤波电路160的实施例,其使用六个滤波器元素164对输入六个输入元素162滤波来产生输出166。输出166是向量化的输出。输入元素162被提交到输入元素预处理电路168来产生中间输入元素。类似地,滤波器元素164被提交到滤波器元素预处理电路170来产生中间滤波器元素。使用乘法器172将中间输入元素各自与相应的中间滤波器元素相乘来产生中间元素。在后处理174中后处理中间元素来实现向量化的输出。
图7图示可被用于从滤波器元素184导出滤波器中间元素182的转换电路180的实施例。所图示的实施例包括对应于具有四个输出的1x3滤波器(例如,F(4,3)滤波器)的转换。然而,这样的转换电路180可被应用于任何数量的滤波器元素和输出。实际上,也可在具有不同的转换函数的多维滤波器上进行这样的转换。在一些实施例中,对于集成电路12,可在管芯上实现转换电路180。另外或备选地,可脱离管芯预计算转换的至少一部分。例如,可使用主机计算机在转换电路180中设置由转换电路180使用的转换算法。在一些实施例中,可在可编程逻辑中实现转换电路180。图8图示与转换电路180类似的转换电路190的实施例,转换电路190可被用于从输入元素194导出输入中间元素192。图9图示与转换电路180类似的后处理电路200的实施例,后处理电路200可被用于从中间输出元素204导出输出元素202。中间输出元素204可各自从相应的中间滤波器元素182与相应的中间输入元素192的乘法被计算。
如先前讨论的,当不使用滤波时,可将转换电路180、190和/或200旁路。图10图示具有旁路多路复用器212A的滤波系统210的实施例,旁路多路复用器212A能够实现转换电路214的旁路,使得输出值218(例如,中间滤波器值)与某输入值216(例如,滤波器值)相同。所图示的实施例适合于滤波器值,但是类似的技术可被应用于输入元素和输出元素。这些旁路允许简单的叉积和/或不采用中间滤波器技术(例如,Winograd转换)的滤波的使用。
虽然本公开中阐述的实施例可易受各种修改和备选形式的影响,但已通过示例在附图中示出并且已在本文中详细描述了特定实施例。然而,应理解,本公开不旨在限于所公开的具体形式。本公开要覆盖落入如由随附的权利要求定义的本公开的精神和范围内的所有修改、等价和备选。

Claims (20)

1.一种用于使用滤波器来对输入元素滤波的方法,包括:
使用转换函数从所述输入元素计算中间输入值,其中所述转换函数至少部分基于所述滤波器的大小以及滤波器输出的数量;
使用所述转换函数从所述滤波器的滤波器元素计算中间滤波器值;
将每个中间输入值与相应的中间滤波器值相乘以形成中间值;
使用所述转换函数将所述中间值与彼此组合来确定一个或多个输出值;以及
输出所述一个或多个输出值。
2.如权利要求1所述的方法,其中组合所述中间值在可编程装置上被执行。
3.如权利要求1所述的方法,其中组合所述中间值在现场可编程门阵列上被执行。
4.如权利要求1所述的方法,包括至少部分基于所述滤波器的大小和滤波器输出的数量来计算所述转换函数。
5.如权利要求1或4所述的方法,其中使用主机计算机来计算所述转换函数。
6.如权利要求5所述的方法,包括将所述转换函数存储在来自所述主机计算机的集成电路装置的存储器中。
7.如权利要求1或4所述的方法,其中使用可编程逻辑装置来计算所述转换函数,所述可编程逻辑装置计算中间输入值、计算中间滤波器值、将每个中间输入值与相应的中间滤波器值相乘、使用所述转换函数将所述中间值与彼此组合以及输出所述一个或多个输出值。
8.一种集成电路装置,包括:
接收一个或多个输入元素的输入节点;
滤波电路,所述滤波电路执行如下操作:
接收所述一个或多个输入元素;
接收一个或多个滤波器元素;
使用转换函数来计算中间滤波器值,所述转换函数至少部分基于输出的数量;以及
将所述中间滤波器值组合来形成反映本将从所述一个或多个输入元素与所述一个或多个滤波器元素的直接基于元素的乘法得出结果的输出值,但利用相比所述直接基于元素的乘法更少的乘法操作。
9.如权利要求8所述的集成电路装置,其中所述滤波电路包括输入元素处理块,所述输入元素处理块接收所述一个或多个输入元素并且使用所述转换函数将所述一个或多个输入元素转换成对应的中间输入元素。
10.如权利要求9所述的集成电路装置,其中所述一个或多个输入元素中的元素的数量与所述中间输入元素中的元素的数量不同。
11.如权利要求9所述的集成电路装置,其中所述滤波电路包括能够实现所述输入元素处理块的旁路的多路复用器。
12.如权利要求9所述的集成电路装置,其中所述滤波电路包括滤波器元素处理块,所述滤波器元素处理块接收所述一个或多个滤波器元素并且使用所述转换函数将所述一个或多个滤波器元素转换成对应的中间滤波器元素。
13.如权利要求12所述的集成电路装置,其中所述滤波电路包括能够实现所述滤波器元素处理块的旁路的多路复用器。
14.如权利要求12所述的集成电路装置,其中所述滤波电路包括乘法器,所述乘法器以元素智能乘法将所述中间输入元素与所述中间滤波器元素相乘来形成所述中间滤波器值。
15.如权利要求14所述的集成电路装置,其中所述滤波电路包括换算电路,所述换算电路通过将各个中间滤波器值与彼此相加在一起或相减来将所述中间滤波器值组合在一起。
16.如权利要求8或12所述的集成电路装置,其中所述集成电路装置包括现场可编程门阵列。
17.一种可编程逻辑装置,包括:
输入电路,接收多个输入元素;
滤波器电路,接收多个滤波器元素;
输入处理块,使用至少部分基于滤波器大小和输出元素的数量的转换函数将所述多个输入元素转换成多个中间输入元素;
滤波器处理块,使用至少部分基于所述滤波器大小和输出元素的所述数量的转换函数将所述多个滤波器元素转换成多个中间滤波器元素;以及
乘法器电路,被配置成使用所述多个中间输入元素与所述多个中间滤波器元素的点积将所述多个中间输入元素与所述多个中间滤波器元素相乘。
18.如权利要求17所述的可编程逻辑装置,其中所述输入处理块被实现在所述可编程逻辑装置的可编程逻辑构造中。
19.如权利要求17所述的可编程逻辑装置,其中所述滤波器处理块被实现在所述可编程逻辑装置的可编程逻辑构造中。
20.如权利要求17-19中的任一项所述的可编程逻辑装置,其中所述可编程逻辑装置包括现场可编程门阵列。
CN201780050777.0A 2016-09-15 2017-09-11 快速滤波 Active CN109565269B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/266,179 US10083007B2 (en) 2016-09-15 2016-09-15 Fast filtering
US15/266179 2016-09-15
PCT/US2017/050995 WO2018052852A1 (en) 2016-09-15 2017-09-11 Fast filtering

Publications (2)

Publication Number Publication Date
CN109565269A true CN109565269A (zh) 2019-04-02
CN109565269B CN109565269B (zh) 2023-02-17

Family

ID=61559970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780050777.0A Active CN109565269B (zh) 2016-09-15 2017-09-11 快速滤波

Country Status (3)

Country Link
US (1) US10083007B2 (zh)
CN (1) CN109565269B (zh)
WO (1) WO2018052852A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4160449A1 (en) * 2016-12-30 2023-04-05 Intel Corporation Deep learning hardware
US10481814B1 (en) * 2017-06-28 2019-11-19 Xilinx, Inc. Architecture for asynchronous memory transfer for kernels implemented in integrated circuits
CN108765247B (zh) * 2018-05-15 2023-01-10 腾讯科技(深圳)有限公司 图像处理方法、装置、存储介质及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1463490A (zh) * 2001-05-31 2003-12-24 皇家菲利浦电子有限公司 带有多种滤波模式的可重配置数字滤波器
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20080250092A1 (en) * 2007-04-06 2008-10-09 Technology Properties Limited System for convolution calculation with multiple computer processors
US20100310007A1 (en) * 2008-02-21 2010-12-09 Fujitsu Limited Filter Device
CN103269212A (zh) * 2013-05-14 2013-08-28 邓晨曦 低成本低功耗可编程多级fir滤波器实现方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920495A (en) * 1997-05-14 1999-07-06 Cirrus Logic, Inc. Programmable four-tap texture filter
US6405229B1 (en) * 1998-01-29 2002-06-11 Sanyo Electric Co., Ltd. Digital filters
JP3349421B2 (ja) * 1998-01-30 2002-11-25 三洋電機株式会社 音声データの圧縮/伸長装置及びデジタルフィルタ
US6505221B1 (en) * 1999-09-20 2003-01-07 Koninklijke Philips Electronics N.V. FIR filter utilizing programmable shifter
US6581081B1 (en) * 2000-01-24 2003-06-17 3Com Corporation Adaptive size filter for efficient computation of wavelet packet trees
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8479133B2 (en) 2009-01-27 2013-07-02 Xilinx, Inc. Method of and circuit for implementing a filter in an integrated circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1463490A (zh) * 2001-05-31 2003-12-24 皇家菲利浦电子有限公司 带有多种滤波模式的可重配置数字滤波器
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20080250092A1 (en) * 2007-04-06 2008-10-09 Technology Properties Limited System for convolution calculation with multiple computer processors
US20100310007A1 (en) * 2008-02-21 2010-12-09 Fujitsu Limited Filter Device
CN103269212A (zh) * 2013-05-14 2013-08-28 邓晨曦 低成本低功耗可编程多级fir滤波器实现方法

Also Published As

Publication number Publication date
CN109565269B (zh) 2023-02-17
WO2018052852A1 (en) 2018-03-22
US10083007B2 (en) 2018-09-25
US20180074787A1 (en) 2018-03-15

Similar Documents

Publication Publication Date Title
CN107392308B (zh) 一种基于可编程器件的卷积神经网络加速方法与系统
CN105468568B (zh) 高效的粗粒度可重构计算系统
US10340920B1 (en) High performance FPGA addition
US20060005173A1 (en) Execution of hardware description language (HDL) programs
JP5356537B2 (ja) 前置加算器段を備えたデジタル信号処理ブロック
CN109284824B (zh) 一种基于可重构技术的用于加速卷积和池化运算的装置
CN109565269A (zh) 快速滤波
Mohammad et al. Efficient FPGA implementation of convolution
JP2746502B2 (ja) 半導体集積回路装置の製造装置及び製造方法並びに電子回路装置
CN113055060B (zh) 面向大规模mimo信号检测的粗粒度可重构架构系统
Sima et al. An 8x8 IDCT Implementation on an FPGA-augmented TriMedia
Sung et al. Multiprocessor implementation of digital filtering algorithms using a parallel block processing method
CN115167815A (zh) 乘加器电路、芯片及电子设备
Ben Mouhoub et al. MOCDEX: multiprocessor on chip multiobjective design space exploration with direct execution
Singh et al. 32 Bit re-configurable RISC processor design and implementation for BETA ISA with inbuilt matrix multiplier
KR20210131417A (ko) 데이터 처리 장치 및 인공 지능 칩
Qin et al. Real-Time Image Filtering and Edge Detection Method Based on FPGA
Benso et al. Online self-repair of FIR filters
Lipatov et al. Performance-driven technology mapping for XC5510 family FPGAs
Owens et al. Implementing a family of high performance, micrograined architectures
Kung et al. VLSI design for massively parallel signal processors
Kang et al. Datapath Extension of NPUs to Support Nonconvolutional Layers Efficiently
Rodríguez et al. System on Chip Testbed for Deep Neuromorphic Neural Networks
Wu et al. Computer-aided design of VLSI second-order sections
Blanton et al. On the design of fast, easily testable ALU's

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant