WO2010012207A1 - Processor and processing method for fft/ifft - Google Patents

Processor and processing method for fft/ifft Download PDF

Info

Publication number
WO2010012207A1
WO2010012207A1 PCT/CN2009/072877 CN2009072877W WO2010012207A1 WO 2010012207 A1 WO2010012207 A1 WO 2010012207A1 CN 2009072877 W CN2009072877 W CN 2009072877W WO 2010012207 A1 WO2010012207 A1 WO 2010012207A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
random access
access memory
read
control signal
Prior art date
Application number
PCT/CN2009/072877
Other languages
French (fr)
Chinese (zh)
Inventor
周圆
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2010012207A1 publication Critical patent/WO2010012207A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Definitions

  • the present invention relates to communication or, in particular, to an FFT/IFFT (Fast Fourier Transform/Inverse Fast Fourier Transform) processor and a processing method thereof.
  • FFT/IFFT Fast Fourier Transform/Inverse Fast Fourier Transform
  • a communication system needs to use FFT/IFFT of any even-length and multiple modes.
  • LTE Long-Term Evolution
  • FFT/IFFT with 34 lengths of -1200 points, how to implement multi-mode compatible FFT/IFFT in FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) It is one of the keys to the realization of the whole system.
  • FFT IP Intelligent Property
  • the IP core only supports FFT/IFFT with a length of 2 to the power of N, such as: 512, 1024, and 2048 points of FFT/IFFT;
  • LTE system needs to complete FFT/IFFT with a total length of 1200 points in 41.66 microseconds;
  • a fast Fourier transform/inverse fast Fourier transform processor is provided.
  • a fast Fourier transform/inverse fast Fourier transform processor includes: a control signal and address signal generator for generating a control signal and an address signal; a random access memory module for storing input data and an intermediate operation result; a module, configured to store a twiddle factor; a data processing module, configured to perform a butterfly operation on the input data according to the control signal and the twiddle factor, and send the intermediate operation result back to the random memory module for storage.
  • the address signal comprises a random memory address signal and a read only memory address signal, the control signal comprising a random access memory control signal, a read only memory control signal, a data processing module control signal.
  • the random access memory module transmits input data to the data processing module based on the random access memory address signal and the random access memory control signal.
  • the read only memory module reads the twiddle factor sent to the data processing module based on the read only memory address signal and the read only memory control signal.
  • the random access memory module comprises two four port random access memories.
  • the four port random access memory comprises: a two port random access memory, a register and a multiplexer operating at a frequency twice the processor system clock frequency.
  • the control signal and address signal generator are further configured to perform a transform length setting, and the two four-port random access memories respectively write the input data according to the transform length setting.
  • the data processing module includes two butterfly operators and multiplexers.
  • a processing method of a fast Fourier transform/inverse fast Fourier transform processor is provided.
  • Processing method package for fast Fourier transform/fast Fourier transform inverse transform processor according to the present invention
  • the random access memory module loads the input data under the control of the control signal and the address signal generator, and sends the input data to the data processing module;
  • the data processing module 4 controls the control signal and the read-only signal according to the control signal and the address signal generator.
  • the rotation factor sent by the memory module performs a butterfly operation on the input data, and sends the intermediate operation result back to the random memory module for storage; the random access memory module unloads the data under the control of the control signal and the address signal generator.
  • the address signal comprises a random memory address signal and a read only memory address signal
  • the control signal comprising a random access memory control signal, a read only memory control signal, a data processing module control signal.
  • the random access memory module transmits input data to the data processing module based on the random access memory address signal and the random access memory control signal.
  • the read only memory module reads the twiddle factor sent to the data processing module based on the read only memory address signal and the read only memory control signal.
  • the method before performing the butterfly operation, further includes: controlling a signal and an address signal generator to perform a transform length setting; and dividing the input data into the first group of data and the second group of data having the same length according to the transform length setting, The first set of data is sequentially written to the first four port random access memory, and the second set of data is sequentially written to the second four port random access memory.
  • the method further includes: Step 1: The random access memory module reads the first data and the second data of the first group of data from the first four-port random access memory, and reads the first data from the second four-port random access memory.
  • First data and second data of the two sets of data wherein the first data and the second data of the first set of data are the same as the addresses of the first data and the second data of the second set of data; Step 2, the random access memory module
  • the first data of the first set of data and the first data of the second set of data are sent to the first butterfly operator of the data processing module for butterfly operation, and the second data of the first set of data and the second set of data are The second data is sent to the second butterfly operator of the data processing module for butterfly operation; steps 1 and 2 are repeated until all data in the first set of data and the second set of data are read.
  • the method further includes: Step 3: The random access memory module reads two of the first set of data from the first four-port random access memory. Data, and send the two data of the first set of data to the first butterfly operator of the data processing module for butterfly operation; Step 4, the random access memory module reads the second from the second four-port random access memory Two data of the group data, and two data of the second group of data are sent to the second butterfly operator of the data processing module for butterfly operation, wherein the two data of the second group of data are The addresses of the two data of the first set of data are the same; steps 3 and 4 are repeated until all data to be processed in the first set of data and the second set of data are read.
  • the method further includes: the random memory module stores and outputs the operation result according to the read address and the storage address, wherein the read address is obtained.
  • FIG. 1 is a schematic diagram showing the structure of an FFT/IFFT processor according to an embodiment of the present invention
  • FIG. 2 is a flowchart of a processing method of an FFT/IFFT processor according to an embodiment of the present invention
  • 3 is a schematic diagram of a data path structure of an FFT/IFFT processor according to an embodiment of the present invention.
  • an FFT/IFFT processor and a processing method thereof are provided, which can be applied to a communication system, a communication method, and a processing product in digital multimedia, and are applicable to a communication system. Processing of FFT/IFFT with even length and variable length.
  • a four-port memory module, a butterfly operator (BF), etc. are introduced, which can realize continuous uninterrupted processing of data by using dual channels under a non-pulsating array structure, and reduce processor-to-chip area requirements.
  • the required FFT/IFFT operation can be done using a lower clock frequency.
  • an FFT/IFFT processor is provided. 1 is a schematic diagram of a structure of an FFT/IFFT processor according to an embodiment of the present invention. As shown in FIG.
  • the processor includes a control signal and address signal generator 102, a RAM (Random Access Memory) module 104, The ROM (Read Only Memory) module 106, the data processing module 108, the following is a detailed description of the structure of the processor: a control signal and address signal generator 102 for generating a control signal and an address signal, wherein The address signal includes a RAM address signal and a ROM address signal, and the control signal includes a RAM control signal, a ROM control signal, and a data processing module control signal; the control signal and address signal generator 102 is further configured to perform a transform length setting (selection), that is, The length of the input data is divided into two parts of equal length.
  • a transform length setting selection
  • the RAM module 104 is connected to the control signal and address signal generator 102 for storing input data; the RAM module may include two four-port RAMs, wherein each of the four-port RAMs includes an operating frequency twice the clock frequency of the processor system Two-port RAM, attached p register, and multiplexer; the two four-port RAM respectively write input data according to the conversion length setting of the control signal and address signal generator 102, and according to the control signal and The RAM address signal and the RAM control signal generated by the address signal generator 102 transmit input data to the data processing module. Specifically, the data of the previous portion of the conversion length setting is written to the first four-port RAM, and the latter portion of the data is written to the second four-port RAM.
  • ROM module 106 connected to control signal and address signal generator 102, data processing module
  • the data processing module 108 For storing a twiddle factor, reading a rotation factor sent to the data processing module according to the ROM address signal generated by the control signal and the address signal generator 102 and the ROM control signal.
  • the data processing module 108 is connected to the control signal and address signal generator 102, the RAM module 104, and the ROM module 106.
  • the data processing module 108 includes two BFs and a multiplexer for generating the data according to the control signal and the address signal.
  • the control signal generated by the device 102 and the twiddle factor sent from the ROM module 106 perform a butterfly operation on the input data sent from the RAM module 104, and the operation result is sent back to the RAM module 104 for storage.
  • the processor provided by this embodiment includes two identical four-port RAMs and two identical BFs, and the control thereof is almost identical.
  • This structure can simplify the design of the design; the processor can be compatible with a length of four or more.
  • IFFT/FFT conversion of any number of points, using four-port RAM to implement four The continuous reading and writing of data not only improves the processing speed, but also provides the basis for the design of the more centralized control unit.
  • Method Embodiments According to an embodiment of the present invention, a processing method of an FFT/IFFT processor is provided. 2 is a flowchart of a processing method of an FFT/IFFT processor according to an embodiment of the present invention. As shown in FIG.
  • the method includes the following steps S202 to S206: Step S202, the RAM module is in a control signal and The input signal is loaded under the control of the address signal generator, and the input data is sent to the data processing module; in step S204, the data processing module detects the control signal generated by the control signal and the address signal generator, and the twiddle factor sent by the ROM module. Performing a butterfly operation on the input data, and returning the intermediate operation result to the RAM module for storage. Thereafter, the RAM module stores and outputs the operation result according to the read address and the storage address, wherein the read address means obtaining the The address of the input data used in the operation result is in the RAM module; in step S206, the RAM module unloads the data under the control of the control signal and the address signal generator. Before the step S204, the method further includes the following steps (42) to (46):
  • control signal and the address signal generator perform a transform length setting
  • the RAM module transmits the input data to the data processing module according to the RAM address signal and the RAM control signal; (46) the ROM module reads the twiddle factor sent to the data processing module according to the ROM address signal and the ROM control signal.
  • the processing (44) may specifically include the following operations (202) to (214):
  • the input data is divided into the first group data and the second group data of equal length, and the first group data is sequentially written into the first four port RAM (the cylinder is called 4-Port RAMI).
  • the second set of data is sequentially written into the second four-port RAM (the cartridge is called 4-Port RAM2);
  • the RAM module reads the first data and the first data of the first group of data from the 4-Port RAMI Two data, reading the first data and the second data of the second group of data from the second four-port RAM, wherein the addresses of the first data and the second data of the first group of data and the first of the second group of data The data and the address of the second data are the same;
  • the RAM module sends the first data of the first set of data and the first data of the second set of data to the first butterfly operator of the data processing module (referred to as BF1) for butterfly operation, and will be first
  • the second data of the group data and the second data of the second group of data are sent to a second butterfly operator of the data processing module (called BF2) for butterfly operation;
  • the RAM module reads the first set of data from the 4-Port RAMI Two data, and two data of the first group of data are sent to the BF1 of the data processing module for butterfly operation;
  • the RAM module reads two data of the second group of data from the 4-Port RAM2, and sends two data of the second group of data to the BF2 of the data processing module for butterfly operation, wherein the second group of data
  • the addresses of the two data are the same as the addresses of the two data of the first group of data; (214) repeating steps (210) and (212) until the first set of data and the second set of data are read All data.
  • the technical solution in this embodiment compares the control of the operation process, and for the calculation of any cardinality, the corresponding operation result returns to the position of the read data, and no replacement process is required in the middle, which can save 4 cycles.
  • the specific implementation process of the embodiment of the present invention will be described below with reference to FIG.
  • the 4-Port RAM includes 4-Port RAMI and 4-Port RAM2.
  • PortA and PortB are included, respectively, where PortA includes Addr (connected to Addra).
  • the processor loads the data, and writes the data [xO, xl, x2, x3, x4, x5] from Din to 4-Port RAMI;
  • Unload data (output from Output), unload address order is [0639174102 8 5 11 ] , where address 0-5 corresponds to 4-port RAM 1 address 0-5, and address 6-11 corresponds to 4-port RAM2 address 0-5.
  • a computer readable medium having stored thereon computer executable instructions for causing a computer or processor to perform, for example, when executed by a computer or processor
  • the processing of steps S202 to S204 shown in Fig. 2, preferably, the above-described method embodiments can be performed.
  • the processor provided by the embodiment of the invention has a fast operation speed and a relatively simple processing process.
  • the implementation of the present invention does not modify the system architecture and the current processing flow, is easy to implement, facilitates promotion in the technical field, and has strong industrial applicability.
  • the above modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices.
  • they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device, or they may be separately fabricated into individual integrated circuit modules, or they may be Multiple modules or steps are made into a single integrated circuit module.
  • the invention is not limited to any specific combination of hardware and software.

Abstract

A processor and processing method for FFT/IFFT are provided. The processor includes: a control signal and address signal generator (102), which is configured to generate the control signal and the address signal; a random access memory module (104), which is configured to store input data and intermediate calculating results; a read-only memory module (106), which is configured to store twiddle factors; a data processing module (108), which is configured to implement butterfly operations on the input data according to the control signal and the twiddle factor, and then to transmit the intermediate calculating result back to the random access memory module to store. The invention can realize IFFT/FFT transforms compatible with any even point whose length is longer than or equal to four.

Description

快速傅立叶变换 /快速傅立叶反变换处理器  Fast Fourier Transform / Fast Fourier Transform Processor
及其处理方法  And its treatment method
技术领域 本发明涉及通信领或, 具体而言, 涉及一种 FFT/IFFT ( Fast Fourier Transform/Inverse Fast Fourier Transform, 快速傅立叶变换 /快速傅立叶反变 换) 处理器及其处理方法。 背景技术 在目前的数字多媒体中, 通信系统需要使用任意偶数长度、 多种模式的 FFT/IFFT, 例如: LTE ( Long-Term Evolution, 长期演进) 系统的调制、 解 调和信道估计都需要使用 12 点 -1200 点的 34种长度的 FFT/IFFT, 如何在 FPGA ( Field Programmable Gate Array , 现场可编程门阵列 ) 或 ASIC ( Application Specific Integrated Circuit, 专用集成电路) 中实现兼容多种模 式的 FFT/IFFT 是整个系统实现的关键之一, 目前, 实现这一功能有如下的 困难: ( 1 ) 没有可用的 FFT IP ( Intellectual Property, 知识产权)核, 现有的TECHNICAL FIELD The present invention relates to communication or, in particular, to an FFT/IFFT (Fast Fourier Transform/Inverse Fast Fourier Transform) processor and a processing method thereof. BACKGROUND In current digital multimedia, a communication system needs to use FFT/IFFT of any even-length and multiple modes. For example, LTE (Long-Term Evolution) system requires 12 modulation, demodulation, and channel estimation. FFT/IFFT with 34 lengths of -1200 points, how to implement multi-mode compatible FFT/IFFT in FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) It is one of the keys to the realization of the whole system. At present, there are the following difficulties in implementing this function: (1) There is no FFT IP (Intellectual Property) core available, existing
IP核都只支持长度是 2的 N次幂的 FFT/IFFT, 例如: 512、 1024、 和 2048 点的 FFT/IFFT; The IP core only supports FFT/IFFT with a length of 2 to the power of N, such as: 512, 1024, and 2048 points of FFT/IFFT;
( 2 ) 兼容模式多、 控制结构复杂、 设计难度较大; (2) There are many compatibility modes, the control structure is complex, and the design is difficult;
( 3 )速度要求非常高, 例如: LTE 系统需要在 41.66微秒内完成总长 度为 1200点的 FFT/IFFT; (3) The speed requirement is very high, for example: LTE system needs to complete FFT/IFFT with a total length of 1200 points in 41.66 microseconds;
( 4 ) 在实际应用中, 要求 FFT/IFFT能够在不同的 FPGA上实现, 因 此 FFT/IFFT处理器架构必须有较高的可移植性。 基于上述困难, 现有技术还没有能够提供任意偶数长度、 多种模式的 FFT/IFFT处理器。 发明内容 针对现有技术还没有能够提供任意偶数长度、 多种模式的 FFT/IFFT处 理器的问题而提出本发明, 为此, 本发明旨在提供一种 FFT/IFFT 处理器及 其处理方法, 以解决上述问题至少之一。 根据本发明的一个方面, 提供了一种快速傅立叶变换 /快速傅立叶反变 换处理器。 根据本发明的快速傅立叶变换 /快速傅立叶反变换处理器包括: 控制信 号和地址信号产生器, 用于产生控制信号和地址信号; 随机存储器模块, 用 于存储输入数据和中间运算结果; 只读存储器模块, 用于存储旋转因子; 数 据处理模块, 用于根据控制信号和旋转因子对输入数据进行蝶形运算, 并将 中间运算结果送回随机存储器模块进行存储。 优选地, 地址信号包括随机存储器地址信号和只读存储器地址信号, 控 制信号包括随机存储器控制信号、 只读存储器控制信号、 数据处理模块控制 信号。 优选地,随机存储器模块根据随机存储器地址信号和随机存储器控制信 号向数据处理模块发送输入数据。 优选地 ,只读存储器模块根据只读存储器地址信号和只读存储器控制信 号读取向数据处理模块发送的旋转因子。 优选地, 随机存储器模块包括两个四端口随机存储器。 优选地, 四端口随机存储器包括: 工作频率为处理器系统时钟频率 2 倍的两端口随机存储器、 寄存器和多路复用器。 优选地, 控制信号和地址信号产生器还用于进行变换长度设置, 两个四 端口随机存储器分别才艮据变换长度设置来写入输入数据。 优选地, 数据处理模块包括两个蝶形运算器和多路复用器。 根据本发明的另一个方面, 提供了一种快速傅立叶变换 /快速傅立叶反 变换处理器的处理方法。 根据本发明的快速傅立叶变换 /快速傅立叶反变换处理器的处理方法包 括: 随机存储器模块在控制信号和地址信号产生器的控制下装载输入数据, 并将输入数据送入数据处理模块; 数据处理模块 4艮据控制信号和地址信号产 生器产生的控制信号和只读存储器模块送入的旋转因子 , 对输入数据进行蝶 形运算, 并将中间运算结果送回随机存储器模块进行存储; 随机存储器模块 在控制信号和地址信号产生器的控制下卸载数据。 优选地, 地址信号包括随机存储器地址信号和只读存储器地址信号, 控 制信号包括随机存储器控制信号、 只读存储器控制信号、 数据处理模块控制 信号。 优选地 ,随机存储器模块根据随机存储器地址信号和随机存储器控制信 号向数据处理模块发送输入数据。 优选地 ,只读存储器模块根据只读存储器地址信号和只读存储器控制信 号读取向数据处理模块发送的旋转因子。 优选地, 在进行蝶形运算之前, 上述方法还包括: 控制信号和地址信号 产生器进行变换长度设置; 根据变换长度设置, 将输入数据分为长度相等的 第一组数据和第二组数据, 将第一组数据按顺序写入第一个四端口随机存储 器, 将第二组数据按顺序写入第二个四端口随机存储器。 优选地, 上述方法还包括: 步骤 1 , 随机存储器模块从第一个四端口随 机存储器中读取第一组数据的第一数据和第二数据, 从第二个四端口随机存 储器中读取第二组数据的第一数据和第二数据, 其中, 第一组数据的第一数 据和第二数据与第二组数据的第一数据和第二数据的地址相同; 步骤 2, 随 机存储器模块将第一组数据的第一数据和第二组数据的第一数据送入数据处 理模块的第一个蝶形运算器进行蝶形运算, 将第一组数据的第二数据和第二 组数据的第二数据送入数据处理模块的第二个蝶形运算器进行蝶形运算; 重 复步骤 1和步骤 2 , 直至读取了第一组数据和第二组数据中的全部数据。 优选地, 在读取了第一组数据和第二组数据中的全部数据之后, 上述方 法还包括: 步骤 3 , 随机存储器模块从第一个四端口随机存储器中读取第一 组数据的两个数据 , 并将第一组数据的两个数据送入数据处理模块的第一个 蝶形运算器进行蝶形运算; 步骤 4, 随机存储器模块从第二个四端口随机存 储器中读取第二组数据的两个数据 , 并将第二组数据的两个数据送入数据处 理模块的第二个蝶形运算器进行蝶形运算, 其中, 第二组数据的两个数据与 第一组数据的两个数据的地址相同; 重复步骤 3和步骤 4, 直至读取了第一 组数据和第二组数据中的待处理的全部数据。 优选地, 在数据处理模块将运算结果送回随机存储器模块进行存储之 后, 上述方法进一步包括: 随机存储器模块按照读取地址与存储地址对应的 方式存储并输出运算结果, 其中, 读取地址是得到运算结果所使用的输入数 据在随机存储器模块中的地址。 通过本发明 , 解决了现有技术还没有能够提供任意偶数长度、 多种模式 的 FFT/IFFT 处理器的问题, 可以实现可兼容长度大于等于四的任何偶数点 的 IFFT/FFT变换。 附图说明 此处所说明的附图用来提供对本发明的进一步理解 ,构成本申请的一部 分, 本发明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的 不当限定。 在附图中: 图 1是才艮据本发明实施例的 FFT/IFFT处理器的结构的示意图; 图 2是才艮据本发明实施例的 FFT/IFFT处理器的处理方法的流程图; 图 3是根据本发明实施例的 FFT/IFFT处理器的数据通路结构的示意图。 具体实施方式 功能相克述 才艮据本发明实施例 , 提供了一种 FFT/IFFT处理器及其处理方法, 其可以应用于数字多媒体中的通信系统、 通信方法以及加工产品, 适用于 通信系统的偶数长度、 变换长度可变的 FFT/IFFT 的处理。 在本发明中, 引 入了四端口存储模块、蝶形运算器( BF )等, 可以实现在非脉动阵列结构下, 使用双通道对数据实现连续不间断的处理, 在降低处理器对芯片面积需求的 同时, 可以使用较低的时钟频率完成所需的 FFT/IFFT运算。 下面将参考附图并结合实施例来详细说明本发明。 需要说明的是, 在不 冲突的情况下, 本申请中的实施例及实施例中的特征可以相互组合。 装置实施例 才艮据本发明的实施例 , 提供了一种 FFT/IFFT处理器。 图 1是根据本发 明实施例的 FFT/IFFT处理器的结构的示意图, 如图 1 所示, 该处理器包括 控制信号和地址信号产生器 102、 RAM ( Random Access Memory , 随机存储 器)模块 104、 ROM ( Read Only Memory, 只读存储器)模块 106、 数据处 理模块 108, 下面对该处理器的结构进行详细描述: 控制信号和地址信号产生器 102 ,用于产生控制信号和地址信号,其中, 地址信号包括 RAM地址信号和 ROM地址信号 ,控制信号包括 RAM控制信 号、 ROM 控制信号、 数据处理模块控制信号; 该控制信号和地址信号产生 器 102 还用于进行变换长度设置 (选择), 即, 将输入数据的长度分为长度 相等的两部分。 (4) In practical applications, FFT/IFFT is required to be implemented on different FPGAs, so the FFT/IFFT processor architecture must have high portability. Based on the above difficulties, the prior art has not been able to provide an FFT/IFFT processor of any even length and multiple modes. SUMMARY OF THE INVENTION The present invention has been made in view of the problem that the prior art has not been able to provide an FFT/IFFT processor of any even length and multiple modes. To this end, the present invention aims to provide an FFT/IFFT processor and a processing method thereof. To solve at least one of the above problems. According to one aspect of the invention, a fast Fourier transform/inverse fast Fourier transform processor is provided. A fast Fourier transform/inverse fast Fourier transform processor according to the present invention includes: a control signal and address signal generator for generating a control signal and an address signal; a random access memory module for storing input data and an intermediate operation result; a module, configured to store a twiddle factor; a data processing module, configured to perform a butterfly operation on the input data according to the control signal and the twiddle factor, and send the intermediate operation result back to the random memory module for storage. Preferably, the address signal comprises a random memory address signal and a read only memory address signal, the control signal comprising a random access memory control signal, a read only memory control signal, a data processing module control signal. Preferably, the random access memory module transmits input data to the data processing module based on the random access memory address signal and the random access memory control signal. Preferably, the read only memory module reads the twiddle factor sent to the data processing module based on the read only memory address signal and the read only memory control signal. Preferably, the random access memory module comprises two four port random access memories. Preferably, the four port random access memory comprises: a two port random access memory, a register and a multiplexer operating at a frequency twice the processor system clock frequency. Preferably, the control signal and address signal generator are further configured to perform a transform length setting, and the two four-port random access memories respectively write the input data according to the transform length setting. Preferably, the data processing module includes two butterfly operators and multiplexers. According to another aspect of the present invention, a processing method of a fast Fourier transform/inverse fast Fourier transform processor is provided. Processing method package for fast Fourier transform/fast Fourier transform inverse transform processor according to the present invention The random access memory module loads the input data under the control of the control signal and the address signal generator, and sends the input data to the data processing module; the data processing module 4 controls the control signal and the read-only signal according to the control signal and the address signal generator. The rotation factor sent by the memory module performs a butterfly operation on the input data, and sends the intermediate operation result back to the random memory module for storage; the random access memory module unloads the data under the control of the control signal and the address signal generator. Preferably, the address signal comprises a random memory address signal and a read only memory address signal, the control signal comprising a random access memory control signal, a read only memory control signal, a data processing module control signal. Preferably, the random access memory module transmits input data to the data processing module based on the random access memory address signal and the random access memory control signal. Preferably, the read only memory module reads the twiddle factor sent to the data processing module based on the read only memory address signal and the read only memory control signal. Preferably, before performing the butterfly operation, the method further includes: controlling a signal and an address signal generator to perform a transform length setting; and dividing the input data into the first group of data and the second group of data having the same length according to the transform length setting, The first set of data is sequentially written to the first four port random access memory, and the second set of data is sequentially written to the second four port random access memory. Preferably, the method further includes: Step 1: The random access memory module reads the first data and the second data of the first group of data from the first four-port random access memory, and reads the first data from the second four-port random access memory. First data and second data of the two sets of data, wherein the first data and the second data of the first set of data are the same as the addresses of the first data and the second data of the second set of data; Step 2, the random access memory module The first data of the first set of data and the first data of the second set of data are sent to the first butterfly operator of the data processing module for butterfly operation, and the second data of the first set of data and the second set of data are The second data is sent to the second butterfly operator of the data processing module for butterfly operation; steps 1 and 2 are repeated until all data in the first set of data and the second set of data are read. Preferably, after reading all the data in the first set of data and the second set of data, the method further includes: Step 3: The random access memory module reads two of the first set of data from the first four-port random access memory. Data, and send the two data of the first set of data to the first butterfly operator of the data processing module for butterfly operation; Step 4, the random access memory module reads the second from the second four-port random access memory Two data of the group data, and two data of the second group of data are sent to the second butterfly operator of the data processing module for butterfly operation, wherein the two data of the second group of data are The addresses of the two data of the first set of data are the same; steps 3 and 4 are repeated until all data to be processed in the first set of data and the second set of data are read. Preferably, after the data processing module sends the operation result back to the random memory module for storage, the method further includes: the random memory module stores and outputs the operation result according to the read address and the storage address, wherein the read address is obtained. The address of the input data used in the operation result in the random access memory module. Through the present invention, the problem that the prior art has not been able to provide an FFT/IFFT processor of any even-length and multiple modes is solved, and an IFFT/FFT transform compatible with any even-numbered length of four or more can be realized. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are set to illustrate,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, In the drawings: FIG. 1 is a schematic diagram showing the structure of an FFT/IFFT processor according to an embodiment of the present invention; FIG. 2 is a flowchart of a processing method of an FFT/IFFT processor according to an embodiment of the present invention; 3 is a schematic diagram of a data path structure of an FFT/IFFT processor according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT According to an embodiment of the present invention, an FFT/IFFT processor and a processing method thereof are provided, which can be applied to a communication system, a communication method, and a processing product in digital multimedia, and are applicable to a communication system. Processing of FFT/IFFT with even length and variable length. In the present invention, a four-port memory module, a butterfly operator (BF), etc. are introduced, which can realize continuous uninterrupted processing of data by using dual channels under a non-pulsating array structure, and reduce processor-to-chip area requirements. At the same time, the required FFT/IFFT operation can be done using a lower clock frequency. The invention will be described in detail below with reference to the drawings in conjunction with the embodiments. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict. Apparatus Embodiments According to an embodiment of the present invention, an FFT/IFFT processor is provided. 1 is a schematic diagram of a structure of an FFT/IFFT processor according to an embodiment of the present invention. As shown in FIG. 1, the processor includes a control signal and address signal generator 102, a RAM (Random Access Memory) module 104, The ROM (Read Only Memory) module 106, the data processing module 108, the following is a detailed description of the structure of the processor: a control signal and address signal generator 102 for generating a control signal and an address signal, wherein The address signal includes a RAM address signal and a ROM address signal, and the control signal includes a RAM control signal, a ROM control signal, and a data processing module control signal; the control signal and address signal generator 102 is further configured to perform a transform length setting (selection), that is, The length of the input data is divided into two parts of equal length.
RAM模块 104 , 连接至控制信号和地址信号产生器 102, 用于存储输入 数据; RAM模块可以包括两个四端口 RAM, 其中, 每个四端口 RAM都包 括工作频率为处理器系统时钟频率 2倍的两端口 RAM、 附力 p寄存器、 和多 路复用器; 这两个四端口 RAM分别才艮据控制信号和地址信号产生器 102的 变换长度设置来写入输入数据, 并根据控制信号和地址信号产生器 102产生 的 RAM地址信号和 RAM控制信号向数据处理模块发送输入数据。 具体地, 将变换长度设置的前一部分的数据写入第一个四端口 RAM, 将后一部分的 数据写入第二个四端口 RAM。 ROM模块 106, 连接至控制信号和地址信号产生器 102、数据处理模块The RAM module 104 is connected to the control signal and address signal generator 102 for storing input data; the RAM module may include two four-port RAMs, wherein each of the four-port RAMs includes an operating frequency twice the clock frequency of the processor system Two-port RAM, attached p register, and multiplexer; the two four-port RAM respectively write input data according to the conversion length setting of the control signal and address signal generator 102, and according to the control signal and The RAM address signal and the RAM control signal generated by the address signal generator 102 transmit input data to the data processing module. Specifically, the data of the previous portion of the conversion length setting is written to the first four-port RAM, and the latter portion of the data is written to the second four-port RAM. ROM module 106, connected to control signal and address signal generator 102, data processing module
108 , 用于存储旋转因子, 根据控制信号和地址信号产生器 102产生的 ROM 地址信号和 ROM控制信号读取向数据处理模块发送的旋转因子。 数据处理模块 108, 连接至控制信号和地址信号产生器 102、 RAM模块 104、 ROM模块 106, 数据处理模块 108包括两个 BF和多路复用器, 用于 4艮据控制信号和地址信号产生器 102产生的控制信号、 和 ROM模块 106送 入的旋转因子对 RAM模块 104送入的输入数据进行蝶形运算, 并将运算结 果送回 RAM模块 104进行存储。 通过该实施例提供的处理器, 包括两个相同的四端口 RAM和两个相同 的 BF, 对其控制几乎完全一致, 这种结构能够使设计筒单化; 该处理器可兼 容长度大于等于四的任何禹数点的 IFFT/FFT变换,使用四端口 RAM实现四 个数据的连续读写, 不仅能够提高处理速度, 更为筒化控制单元的设计提供 了基础。 方法实施例 根据本发明的实施例, 提供了一种 FFT/IFFT处理器的处理方法。 图 2 是才艮据本发明实施例的 FFT/IFFT处理器的处理方法的流程图, 如图 2所示, 该方法包括如下步骤 S202至步骤 S206的处理: 步骤 S202, RAM模块在控制信号和地址信号产生器的控制下装载输入 数据, 并将输入数据送入数据处理模块; 步骤 S204, 数据处理模块才艮据控制信号和地址信号产生器产生的控制 信号、 和 ROM模块送入的旋转因子, 对输入数据进行蝶形运算, 并将中间 运算结果送回 RAM模块进行存储, 此后, RAM模块按照读取地址与存储地 址对应的方式存储并输出运算结果, 其中, 读取地址是指得到该运算结果所 使用的输入数据在 RAM模块中的地址; 步骤 S206 , RAM 模块在控制信号和地址信号产生器的控制下卸载数 据。 在步骤 S204之前, 上述方法还包括以下步骤 ( 42 ) 至步骤 (46 ): 108. For storing a twiddle factor, reading a rotation factor sent to the data processing module according to the ROM address signal generated by the control signal and the address signal generator 102 and the ROM control signal. The data processing module 108 is connected to the control signal and address signal generator 102, the RAM module 104, and the ROM module 106. The data processing module 108 includes two BFs and a multiplexer for generating the data according to the control signal and the address signal. The control signal generated by the device 102 and the twiddle factor sent from the ROM module 106 perform a butterfly operation on the input data sent from the RAM module 104, and the operation result is sent back to the RAM module 104 for storage. The processor provided by this embodiment includes two identical four-port RAMs and two identical BFs, and the control thereof is almost identical. This structure can simplify the design of the design; the processor can be compatible with a length of four or more. IFFT/FFT conversion of any number of points, using four-port RAM to implement four The continuous reading and writing of data not only improves the processing speed, but also provides the basis for the design of the more centralized control unit. Method Embodiments According to an embodiment of the present invention, a processing method of an FFT/IFFT processor is provided. 2 is a flowchart of a processing method of an FFT/IFFT processor according to an embodiment of the present invention. As shown in FIG. 2, the method includes the following steps S202 to S206: Step S202, the RAM module is in a control signal and The input signal is loaded under the control of the address signal generator, and the input data is sent to the data processing module; in step S204, the data processing module detects the control signal generated by the control signal and the address signal generator, and the twiddle factor sent by the ROM module. Performing a butterfly operation on the input data, and returning the intermediate operation result to the RAM module for storage. Thereafter, the RAM module stores and outputs the operation result according to the read address and the storage address, wherein the read address means obtaining the The address of the input data used in the operation result is in the RAM module; in step S206, the RAM module unloads the data under the control of the control signal and the address signal generator. Before the step S204, the method further includes the following steps (42) to (46):
( 42 ) 控制信号和地址信号产生器进行变换长度设置; (42) the control signal and the address signal generator perform a transform length setting;
( 44 ) RAM模块根据 RAM地址信号和 RAM控制信号向数据处理模 块发送输入数据; ( 46 ) ROM模块才艮据 ROM地址信号和 ROM控制信号读取向数据处 理模块发送的旋转因子。 具体地, 处理 (44 ) 具体可以包括如下操作 ( 202 ) 至 (214 ): (44) The RAM module transmits the input data to the data processing module according to the RAM address signal and the RAM control signal; (46) the ROM module reads the twiddle factor sent to the data processing module according to the ROM address signal and the ROM control signal. Specifically, the processing (44) may specifically include the following operations (202) to (214):
( 202 )根据变换长度设置 , 将输入数据分为长度相等的第一组数据和 第二组数据 , 将第一组数据按顺序写入第一个四端口 RAM (筒称为 4-Port RAMI ) , 将第二组数据按顺序写入第二个四端口 RAM (筒称为 4-Port RAM2 ); (202) According to the transform length setting, the input data is divided into the first group data and the second group data of equal length, and the first group data is sequentially written into the first four port RAM (the cylinder is called 4-Port RAMI). , the second set of data is sequentially written into the second four-port RAM (the cartridge is called 4-Port RAM2);
( 204 ) RAM模块从 4-Port RAMI 中读取第一组数据的第一数据和第 二数据, 从第二个四端口 RAM中读取第二组数据的第一数据和第二数据, 其中, 第一组数据的第一数据和第二数据的地址与第二组数据的第一数据和 第二数据的地址相同; (204) The RAM module reads the first data and the first data of the first group of data from the 4-Port RAMI Two data, reading the first data and the second data of the second group of data from the second four-port RAM, wherein the addresses of the first data and the second data of the first group of data and the first of the second group of data The data and the address of the second data are the same;
( 206 )RAM模块将第一组数据的第一数据和第二组数据的第一数据送 入数据处理模块的第一个蝶形运算器 (筒称为 BF1 ) 进行蝶形运算, 将第一 组数据的第二数据和第二组数据的第二数据送入数据处理模块的第二个蝶形 运算器 (筒称为 BF2 ) 进行蝶形运算; (206) the RAM module sends the first data of the first set of data and the first data of the second set of data to the first butterfly operator of the data processing module (referred to as BF1) for butterfly operation, and will be first The second data of the group data and the second data of the second group of data are sent to a second butterfly operator of the data processing module (called BF2) for butterfly operation;
( 208 )重复步骤( 204 )和步骤( 206 ), 直至读取了第一组数据和第二 组数据中的全部数据; ( 210 ) RAM模块从 4-Port RAMI 中读取第一组数据的两个数据, 并 将第一组数据的两个数据送入数据处理模块的 BF1进行蝶形运算; (208) repeating steps (204) and (206) until all data in the first set of data and the second set of data are read; (210) the RAM module reads the first set of data from the 4-Port RAMI Two data, and two data of the first group of data are sent to the BF1 of the data processing module for butterfly operation;
( 212 ) RAM模块从 4-Port RAM2 中读取第二组数据的两个数据, 并 将第二组数据的两个数据送入数据处理模块的 BF2进行蝶形运算, 其中, 第 二组数据的两个数据的地址与第一组数据的两个数据的地址相同; ( 214 )重复步骤(210 )和步骤(212 ), 直至读取了第一组数据和第二 组数据中待处理的全部数据。 该实施例中的技术方案对运算过程的控制比较筒单,对于任意基数的运 算, 对应的运算结果回到读出数据的位置, 中间无需任何置换过程, 能够节 省时 4†周期。 下面结合图 3 , 以 12点 FFT运算为例, 结合附图说明本发明实施例的 具体实现过程。 图 3是根据本发明实施例的 FFT/IFFT处理器的数据通路结 构的示意图。 在图 3中, 4-Port RAM包括 4-Port RAMI和 4-Port RAM2 , 在 4-Port RAMI和 4-Port RAM2中, 分别包括 PortA和 PortB两部分, 其中, PortA 包括 Addr (连接至 Addra— out和 Addrb— out或者 Addrc— out和 Addrd— out, 用 于读取从 4-Port RAMI或 4-Port RAM2输出至数据处理单元的数据的地址信 号) 和 Dout (连接至 A douta和 B doutb或者 C doutc和 D doutd, 用于向数 据处理模块送入数据), PortB包括 Din(连接至输入 A和 B或者输入 C和 D ) 和 Addr (连接至 Addra— in和 Addrb— in或者 Addrc— in和 Addrd— in, 用于读取 输入至 4-Port RAMI或 4-Port RAM2的数据的地址信号); 数据处理单元包 括 BF 1和 BF2; ROM用于向数据处理模块提供旋转因子。 如图 3所示, 包括如下步骤 (301 ) 至步骤 (310) 的处理: (212) The RAM module reads two data of the second group of data from the 4-Port RAM2, and sends two data of the second group of data to the BF2 of the data processing module for butterfly operation, wherein the second group of data The addresses of the two data are the same as the addresses of the two data of the first group of data; (214) repeating steps (210) and (212) until the first set of data and the second set of data are read All data. The technical solution in this embodiment compares the control of the operation process, and for the calculation of any cardinality, the corresponding operation result returns to the position of the read data, and no replacement process is required in the middle, which can save 4 cycles. The specific implementation process of the embodiment of the present invention will be described below with reference to FIG. 3 by taking a 12-point FFT operation as an example. 3 is a schematic diagram of a data path structure of an FFT/IFFT processor in accordance with an embodiment of the present invention. In Figure 3, the 4-Port RAM includes 4-Port RAMI and 4-Port RAM2. In 4-Port RAMI and 4-Port RAM2, PortA and PortB are included, respectively, where PortA includes Addr (connected to Addra). Out and Addrb_out or Addrc_out and Addrd_out, address signals for reading data output from the 4-Port RAMI or 4-Port RAM2 to the data processing unit) and Dout (connected to A douta and B doutb or C doutc and D doutd, used to feed data to the data processing module), PortB includes Din (connected to input A and B or input C and D) and Addr (connected to Addra-in and Addrb-in or Addrc-in and Addrd—in, for reading The address signal of the data input to 4-Port RAMI or 4-Port RAM2); the data processing unit includes BF 1 and BF2; and the ROM is used to provide a twiddle factor to the data processing module. As shown in FIG. 3, the processing of the following steps (301) to (310) is included:
(301 ) 处理器装载数据, 将数据 [xO, xl, x2, x3, x4, x5]从 Din写 入 4-Port RAMI; (301) The processor loads the data, and writes the data [xO, xl, x2, x3, x4, x5] from Din to 4-Port RAMI;
(302 ) 将数据 [x6, x7, x8, x9, xlO, xll]从 Din写入 4-Port RAM2; (302) Write data [x6, x7, x8, x9, xlO, xll] from Din to 4-Port RAM2;
( 303 )从 A douta和 B doutb分别读取位于 4-Port RAMI中地址 0, 1 的数据 xO和 xl ,从 C doutc和 D doutd分别读取位于 4-Port RAM2中地址 0, 1的数据 x6和 x7;将 xO与 x6送入 BF1进行蝶形运算,将 xl与 x7送入 BF2 进行蝶形运算; 将 xO与 x6的运算结果从 A和 C写入 4-Port RAMI和 4-Port RAM2的地址 0 , ^)夺 xl与 x7的运算结果从 B和 D写入 4-Port RAMI和 4-Port RAM2的地址 1; (303) Read data xO and xl of address 0, 1 in 4-Port RAMI from A douta and B doutb, respectively, and read data x6 of address 0, 1 in 4-Port RAM2 from C doutc and D doutd, respectively. And x7; send xO and x6 to BF1 for butterfly operation, send xl and x7 to BF2 for butterfly operation; write xO and x6 operation results from A and C to 4-Port RAMI and 4-Port RAM2 Address 0, ^) win xl and x7 operation results from B and D write 4-port RAMI and 4-port RAM2 address 1;
( 304 )变换地址, 按照步骤 3的方法完成 x2与 x8, x3与 x9, 以及 x4 与 xlO, x5与 xll的蝶形运算; ( 305 )从 A douta和 B doutb分别读取位于 4-Port RAMI地址 0, 3的 数据 , 送入 BF 1进行蝶形运算 , 并将运算结果从 A和 B写回地址 0 , 3; 同 时从 C doutc和 D doutd分别读取位于 4-Port RAM2地址 0, 3的数据, 送入 BF2进行蝶形运算, 并将运算结果从 C和 D写回地址 0, 3; (304) Transform the address, complete the butterfly operations of x2 and x8, x3 and x9, and x4 and xlO, x5 and xll according to the method of step 3; (305) read from A douta and B doutb respectively in 4-Port RAMI The data of address 0, 3 is sent to BF 1 for butterfly operation, and the operation result is written back to address 0, 3 from A and B; meanwhile, it is read from C doutc and D doutd at address 4-port RAM2 0, 3 Data, sent to BF2 for butterfly operation, and write the operation result from C and D back to address 0, 3;
( 306 )变换地址,按照步骤 5中的方法,对 4-Port RAMI和 4-Port RAM2 分别完成地址 1与 4, 以及地址 2与 5中数据的蝶形运算; (306) Convert the address, and perform the butterfly operations on the addresses 1 and 4 and the addresses 2 and 5 respectively for 4-Port RAMI and 4-Port RAM2 according to the method in step 5;
( 307 )变换地址,按照步骤 5中的方法,对 4-Port RAMI和 4-Port RAM2 分别完成地址 1 与 2, 以及地址 4与 5中数据的蝶形运算; (307) Convert the address and perform the butterfly operations on the addresses 1 and 2 and the addresses 4 and 5 respectively for 4-Port RAMI and 4-Port RAM2 according to the method in step 5;
( 308 )变换地址,按照步骤 5中的方法,对 4-Port RAMI和 4-Port RAM2 分别完成地址 0与 1, 以及地址 3与 4中数据的蝶形运算; (309 )变换地址,按照步骤 5中的方法,对 4-Port RAMI和 4-Port RAM2 分别完成地址 1 与 2, 以及地址 4与 5中数据的蝶形运算; (308) Convert the address, according to the method in step 5, perform the butterfly operations of the addresses 0 and 1 and the data in the addresses 3 and 4 for the 4-Port RAMI and the 4-Port RAM2 respectively; (309) change the address, according to the steps The method in 5, the 4-port RAMI and the 4-Port RAM2 respectively perform the butterfly operations of the addresses 1 and 2, and the data in the addresses 4 and 5;
(310 ) 卸载数据 (从 Output输出), 卸载地址顺序为 [0639174102 8 5 11 ] ,其中,地址 0-5对应 4-Port RAM 1地址 0-5 ,地址 6- 11对应 4-Port RAM2 地址 0-5。 才艮据本发明实施例, 还提供了一种计算机可读介质, 该计算机可读介质 上存储有计算机可执行的指令, 当该指令被计算机或处理器执行时, 使得计 算机或处理器执行如图 2所示的步骤 S202至步骤 S204的处理, 优选地, 可 以执行上述的方法实施例。 通过本发明实施例提供的处理器, 运算速度快, 处理过程比较筒单, 处 理 1200点 FFT/IFFT需要 6600个时钟周期, 在主频 160MHz下耗时 41.27 4啟秒, 在主频 246MHz下耗时 26.83 秒; 此架构适用基于不同厂家、 不同 类型 FPGA 或 ASIC 的实现; 此架构适用长度大于等于四的任何偶数点的 FFT/IFFT,因 jt匕不仅可用于 LTE系统,也可用于其它使用 OFDM ( Orthogonal Frequency Division Multiplexing, 正交频分复用) 技术的系统。 另外 ,本发明的实现没有对系统架构和目前的处理流程修改,易于实现, 便于在技术领域中进行推广, 具有较强的工业适用性。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可 以用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布 在多个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程 序代码来实现, 从而, 可以将它们存储在存储装置中由计算装置来执行, 或 者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制 作成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软 件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本 领域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的^^申和 原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。 (310) Unload data (output from Output), unload address order is [0639174102 8 5 11 ] , where address 0-5 corresponds to 4-port RAM 1 address 0-5, and address 6-11 corresponds to 4-port RAM2 address 0-5. According to an embodiment of the present invention, there is also provided a computer readable medium having stored thereon computer executable instructions for causing a computer or processor to perform, for example, when executed by a computer or processor The processing of steps S202 to S204 shown in Fig. 2, preferably, the above-described method embodiments can be performed. The processor provided by the embodiment of the invention has a fast operation speed and a relatively simple processing process. It takes 6600 clock cycles to process 1200 points of FFT/IFFT, and takes 41.27 4 start seconds at a frequency of 160 MHz, and consumes at a frequency of 246 MHz. 26.83 seconds; this architecture is suitable for implementations based on different vendors, different types of FPGAs or ASICs; this architecture is suitable for FFT/IFFT of any even point with a length greater than or equal to four, since jt匕 can be used not only for LTE systems, but also for other OFDM applications. (Orthogonal Frequency Division Multiplexing, Orthogonal Frequency Division Multiplexing) technology system. In addition, the implementation of the present invention does not modify the system architecture and the current processing flow, is easy to implement, facilitates promotion in the technical field, and has strong industrial applicability. Obviously, those skilled in the art should understand that the above modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device, or they may be separately fabricated into individual integrated circuit modules, or they may be Multiple modules or steps are made into a single integrated circuit module. Thus, the invention is not limited to any specific combination of hardware and software. The above is only the preferred embodiment of the present invention, and is not intended to limit the present invention, and various modifications and changes can be made to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the scope of the present invention are intended to be included within the scope of the present invention.

Claims

权 利 要 求 书 Claim
1. 一种快速傅立叶变换 /快速傅立叶反变换处理器, 其特征在于, 包括: 控制信号和地址信号产生器, 用于产生控制信号和地址信号; 随机存储器模块 , 用于存储输入数据和中间运算结果; 只读存储器模块 , 用于存储旋转因子; A fast Fourier transform/inverse fast Fourier transform processor, comprising: a control signal and an address signal generator for generating a control signal and an address signal; a random access memory module for storing input data and an intermediate operation Result; a read only memory module for storing a twiddle factor;
数据处理模块,用于根据所述控制信号和所述旋转因子对所述输入 数据进行蝶形运算, 并将所述中间运算结果送回所述随机存储器模块进 行存储。  And a data processing module, configured to perform a butterfly operation on the input data according to the control signal and the twiddle factor, and send the intermediate operation result back to the random access memory module for storage.
2. 才艮据权利要求 1所述的处理器, 其特征在于, 2. The processor of claim 1 wherein:
所述地址信号包括随机存储器地址信号和只读存储器地址信号,所 述控制信号包括随机存储器控制信号、 只读存储器控制信号、 数据处理 模块控制信号。  The address signals include random memory address signals and read only memory address signals, the control signals including random access memory control signals, read only memory control signals, data processing module control signals.
3. 才艮据权利要求 2所述的处理器, 其特征在于, 3. The processor of claim 2, wherein
所述随机存储器模块根据所述随机存储器地址信号和所述随机存 储器控制信号向所述数据处理模块发送所述输入数据。  The random access memory module transmits the input data to the data processing module based on the random memory address signal and the random memory control signal.
4. 才艮据权利要求 2所述的处理器, 其特征在于, 4. The processor of claim 2, wherein:
所述只读存储器模块才艮据所述只读存储器地址信号和所述只读存 储器控制信号读取向所述数据处理模块发送的所述旋转因子。  The read only memory module reads the twiddle factor sent to the data processing module based on the read only memory address signal and the read only memory control signal.
5. 根据权利要求 1所述的处理器, 其特征在于, 所述随机存储器模块包括 两个四端口随机存储器。 The processor according to claim 1, wherein the random access memory module comprises two four-port random access memories.
6. 根据权利要求 5所述的处理器, 其特征在于, 所述四端口随机存储器包 括: 工作频率为处理器系统时钟频率 2倍的两端口随机存储器、 寄存器 和多路复用器。 The processor according to claim 5, wherein the four-port random access memory comprises: a two-port random access memory, a register and a multiplexer whose operating frequency is twice the clock frequency of the processor system.
7. 4艮据权利要求 5所述的处理器, 其特征在于, 所述控制信号和地址信号 产生器还用于进行变换长度设置 , 所述两个四端口随机存储器分别根据 所述变换长度设置来写入所述输入数据。 The processor according to claim 5, wherein the control signal and the address signal generator are further configured to perform a transform length setting, and the two four-port random access memories are respectively set according to the transform length To write the input data.
8. 才艮据权利要求 1所述的处理器, 其特征在于, 所述数据处理模块包括两 个蝶形运算器和多路复用器。 8. The processor of claim 1 wherein said data processing module comprises two butterfly operators and multiplexers.
9. 一种快速傅立叶变换 /快速傅立叶反变换处理器的处理方法, 其特征在 于, 包括: 9. A method of processing a fast Fourier transform/inverse fast Fourier transform processor, the method comprising:
随机存储器模块在控制信号和地址信号产生器的控制下装载输入 数据 , 并将所述输入数据送入数据处理模块;  The random access memory module loads the input data under the control of the control signal and the address signal generator, and sends the input data to the data processing module;
所述数据处理模块根据所述控制信号和地址信号产生器产生的控 制信号和只读存储器模块送入的旋转因子, 对所述输入数据进行蝶形运 算, 并将中间运算结果送回所述随机存储器模块进行存储;  The data processing module performs a butterfly operation on the input data according to the control signal generated by the control signal and the address signal generator and a rotation factor sent by the read-only memory module, and sends the intermediate operation result back to the random The memory module is stored;
所述随机存储器模块在所述控制信号和地址信号产生器的控制下 卸载数据。  The random access memory module unloads data under the control of the control signal and address signal generator.
10. 根据权利要求 9所述的方法, 其特征在于, 10. The method of claim 9 wherein:
所述地址信号包括随机存储器地址信号和只读存储器地址信号,所 述控制信号包括随机存储器控制信号、 只读存储器控制信号、 数据处理 模块控制信号。  The address signals include random memory address signals and read only memory address signals, the control signals including random access memory control signals, read only memory control signals, data processing module control signals.
11. 根据权利要求 10所述的方法, 其特征在于 , 11. The method of claim 10, wherein
所述随机存储器模块根据所述随机存储器地址信号和所述随机存 储器控制信号向所述数据处理模块发送所述输入数据。  The random access memory module transmits the input data to the data processing module based on the random memory address signal and the random memory control signal.
12. 才艮据权利要求 10所述的方法, 其特征在于 , 12. The method according to claim 10, characterized in that
所述只读存储器模块才艮据所述只读存储器地址信号和所述只读存 储器控制信号读取向所述数据处理模块发送的所述旋转因子。  The read only memory module reads the twiddle factor sent to the data processing module based on the read only memory address signal and the read only memory control signal.
13. 根据权利要求 12所述的方法, 其特征在于, 在进行蝶形运算之前, 所述 方法还包括: The method according to claim 12, wherein before the performing the butterfly operation, the method further comprises:
所述控制信号和地址信号产生器进行变换长度设置; 根据所述变换长度设置 ,将所述输入数据分为长度相等的第一组数 据和第二组数据 , 将所述第一组数据按顺序写入第一个四端口随机存储 器, 将所述第二组数据按顺序写入第二个四端口随机存储器。 The control signal and the address signal generator perform a transform length setting; according to the transform length setting, the input data is divided into a first group of data and a second group of data of equal length, and the first group of data is sequentially The first four-port random access memory is written, and the second set of data is sequentially written to the second four-port random access memory.
14. 才艮据权利要求 13所述的方法, 其特征在于, 还包括: 14. The method of claim 13, further comprising:
步骤 1 , 所述随机存储器模块从所述第一个四端口随机存储器中读 取第一组数据的第一数据和第二数据, 从所述第二个四端口随机存储器 中读取第二组数据的第一数据和第二数据, 其中, 所述第一组数据的第 一数据和第二数据与所述第二组数据的第一数据和第二数据的地址相 同;  Step 1: The random access memory module reads first data and second data of the first group of data from the first four-port random access memory, and reads the second group from the second four-port random access memory. First data and second data of the data, wherein the first data and the second data of the first group of data are the same as the addresses of the first data and the second data of the second group of data;
步骤 2 , 所述随机存储器模块将所述第一组数据的第一数据和所述 第二组数据的第一数据送入所述数据处理模块的第一个蝶形运算器进行 蝶形运算, 将所述第一组数据的第二数据和所述第二组数据的第二数据 送入所述数据处理模块的第二个蝶形运算器进行蝶形运算;  Step 2, the random access memory module sends the first data of the first set of data and the first data of the second set of data to a first butterfly operator of the data processing module to perform a butterfly operation. And sending the second data of the first set of data and the second data of the second set of data to a second butterfly operator of the data processing module to perform a butterfly operation;
重复所述步骤 1和所述步骤 2 , 直至读取了所述第一组数据和所述 第二组数据中的全部数据。  Step 1 and step 2 are repeated until all data in the first set of data and the second set of data are read.
15. 才艮据权利要求 14所述的方法, 其特征在于, 在读取了所述第一组数据和 所述第二组数据中的全部数据之后 , 所述方法还包括: The method according to claim 14, wherein after the reading of all the data in the first set of data and the second set of data, the method further comprises:
步骤 3 , 所述随机存储器模块从所述第一个四端口随机存储器中读 取第一组数据的两个数据 , 并将所述第一组数据的两个数据送入所述数 据处理模块的第一个蝶形运算器进行蝶形运算;  Step 3: The random access memory module reads two data of the first group of data from the first four-port random access memory, and sends two data of the first set of data into the data processing module. The first butterfly operator performs a butterfly operation;
步骤 4, 所述随机存储器模块从所述第二个四端口随机存储器中读 取第二组数据的两个数据 , 并将所述第二组数据的两个数据送入所述数 据处理模块的第二个蝶形运算器进行蝶形运算, 其中, 所述第二组数据 的两个数据与所述第一组数据的两个数据的地址相同;  Step 4, the random access memory module reads two data of the second set of data from the second four-port random access memory, and sends two data of the second set of data into the data processing module. The second butterfly operator performs a butterfly operation, wherein two data of the second group of data are the same as addresses of two data of the first group of data;
重复所述步骤 3和所述步骤 4 , 直至读取了所述第一组数据和所述 第二组数据中的待处理的全部数据。  Step 3 and step 4 are repeated until all data to be processed in the first set of data and the second set of data are read.
16. 4艮据权利要求 9所述的方法, 其特征在于, 在所述数据处理模块将运算 结果送回所述随机存储器模块进行存储之后 , 所述方法进一步包括: 所述随机存储器模块按照读取地址与存储地址对应的方式存储并 输出所述运算结果, 其中, 所述读取地址是得到所述运算结果所使用的 输入数据在所述随机存储器模块中的地址。 The method according to claim 9, wherein after the data processing module returns the operation result to the random memory module for storage, the method further comprises: the random memory module according to the reading The operation result is stored and outputted in a manner corresponding to the storage address, wherein the read address is an address of the input data used to obtain the operation result in the random access memory module.
PCT/CN2009/072877 2008-07-28 2009-07-22 Processor and processing method for fft/ifft WO2010012207A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNA2008101346073A CN101330489A (en) 2008-07-28 2008-07-28 Processor for FFT / IFFT as well as processing method thereof
CN200810134607.3 2008-07-28

Publications (1)

Publication Number Publication Date
WO2010012207A1 true WO2010012207A1 (en) 2010-02-04

Family

ID=40206080

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/072877 WO2010012207A1 (en) 2008-07-28 2009-07-22 Processor and processing method for fft/ifft

Country Status (2)

Country Link
CN (1) CN101330489A (en)
WO (1) WO2010012207A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157637A (en) * 2021-04-27 2021-07-23 电子科技大学 High-capacity reconfigurable FFT operation IP core based on FPGA

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330489A (en) * 2008-07-28 2008-12-24 中兴通讯股份有限公司 Processor for FFT / IFFT as well as processing method thereof
CN101520769B (en) * 2009-04-10 2011-05-11 炬才微电子(深圳)有限公司 Method and system for data processing
CN103176949B (en) * 2011-12-20 2016-09-07 中国科学院深圳先进技术研究院 Realize circuit and the method for FFT/IFFT conversion
CN103176950B (en) * 2011-12-20 2017-04-05 中国科学院深圳先进技术研究院 Realize the circuit and method of FFT/IFFT conversion
CN103546923B (en) * 2012-07-12 2018-11-23 中兴通讯股份有限公司 Data processing equipment and method for LTE Physical Random Access Channel
CN103200560B (en) * 2013-03-28 2018-03-16 东莞宇龙通信科技有限公司 The method for reading data and device of long-term evolving network
CN105680859B (en) * 2016-01-29 2018-09-11 中国科学院微电子研究所 ADC built-in self-test circuits and test method in system on chip
CN107391439B (en) * 2017-07-11 2020-08-14 创耀(苏州)通信科技股份有限公司 Processing method capable of configuring fast Fourier transform
CN111368250B (en) * 2018-12-26 2023-08-15 北京欣奕华科技有限公司 Data processing system, method and equipment based on Fourier transformation/inverse transformation
CN111221501B (en) * 2020-01-07 2021-11-26 常熟理工学院 Number theory conversion circuit for large number multiplication
CN112214725B (en) * 2020-12-08 2021-03-02 深圳市鼎阳科技股份有限公司 Serial FFT (fast Fourier transform) co-processing method, digital oscilloscope and storage medium
CN116028762A (en) * 2023-01-19 2023-04-28 上海富芮坤微电子有限公司 Fast Fourier transform circuit and fast Fourier transform method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1504890A (en) * 2002-12-03 2004-06-16 中国科学院计算技术研究所 Address mapping method and system for FFT processor with completely parallel data
US6976047B1 (en) * 2002-03-28 2005-12-13 Lattice Semiconductor Corporation Skipped carry incrementer for FFT address generation
US20080126462A1 (en) * 2006-06-27 2008-05-29 Nokia Corporation Optimized multi-mode DFT implementation
CN101330489A (en) * 2008-07-28 2008-12-24 中兴通讯股份有限公司 Processor for FFT / IFFT as well as processing method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976047B1 (en) * 2002-03-28 2005-12-13 Lattice Semiconductor Corporation Skipped carry incrementer for FFT address generation
CN1504890A (en) * 2002-12-03 2004-06-16 中国科学院计算技术研究所 Address mapping method and system for FFT processor with completely parallel data
US20080126462A1 (en) * 2006-06-27 2008-05-29 Nokia Corporation Optimized multi-mode DFT implementation
CN101330489A (en) * 2008-07-28 2008-12-24 中兴通讯股份有限公司 Processor for FFT / IFFT as well as processing method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157637A (en) * 2021-04-27 2021-07-23 电子科技大学 High-capacity reconfigurable FFT operation IP core based on FPGA

Also Published As

Publication number Publication date
CN101330489A (en) 2008-12-24

Similar Documents

Publication Publication Date Title
WO2010012207A1 (en) Processor and processing method for fft/ifft
JP6106779B2 (en) A dynamically reconfigurable pipelined preprocessor
US7734674B2 (en) Fast fourier transform (FFT) architecture in a multi-mode wireless processing system
WO2014176927A1 (en) Method, device and system for downloading file
CN110737536A (en) shared memory based message storage method and message reading method
CN112104435B (en) Clock delay compensation method, logic device and network equipment
US8396913B2 (en) Fast fourier transform architecture
US20100128818A1 (en) Fft processor
US11721373B2 (en) Shared multi-port memory from single port
US20070033245A1 (en) Re-sampling methodology for wireless broadband system
US7802259B2 (en) System and method for wireless broadband context switching
CN111737638A (en) Data processing method based on Fourier transform and related device
CN107102683B (en) Point-by-point arbitrary waveform generator based on SOC and generation method
WO2013097217A1 (en) Multi-granularity parallel fft butterfly calculation method and corresponding device
US7457726B2 (en) System and method for selectively obtaining processor diagnostic data
US20120166507A1 (en) Method and apparatus of performing fast fourier transform
US8484273B1 (en) Processing system and method for transform
WO2013097235A1 (en) Parallel bit order reversing device and method
US10783216B2 (en) Methods and apparatus for in-place fast Fourier transform
US7669017B1 (en) Method of and circuit for buffering data
TW200811672A (en) Optimized multi-mode DFT implementation
Orozco-Galvan et al. Reconfigurable architecture based on FPGA for OFDM transmitter
Long et al. A low-complexity generalized memory addressing scheme for continuous-flow fast Fourier transform
TWI564735B (en) Data allocating apparatus, signal processing apparatus, and data allocating method
Jones Resource‐efficient and scalable solution to problem of real‐data polyphase discrete Fourier transform channelisation with rational over‐sampling factor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09802400

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09802400

Country of ref document: EP

Kind code of ref document: A1