WO2020195239A1 - デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 - Google Patents
デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 Download PDFInfo
- Publication number
- WO2020195239A1 WO2020195239A1 PCT/JP2020/005018 JP2020005018W WO2020195239A1 WO 2020195239 A1 WO2020195239 A1 WO 2020195239A1 JP 2020005018 W JP2020005018 W JP 2020005018W WO 2020195239 A1 WO2020195239 A1 WO 2020195239A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- address
- output
- ram circuit
- control unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Definitions
- the present invention particularly relates to a digital filter device, an operation method and a program of the digital filter device, which executes digital signal processing for performing a fast Fourier transform.
- FFT Fast Fourier Transform
- FDE frequency domain equalization
- IFFT inverse fast Fourier transform
- Patent Document 1 also describes "twist multiplication” described later, that is, multiplication using a twist coefficient.
- Non-Patent Document 1 As an efficient FFT / IFFT processing method, for example, the butterfly calculation by Cooley-Tukey described in Non-Patent Document 1 is famous. However, the circuit of FFT / IFFT by Cooley-Tukey with a large number of points becomes complicated. Therefore, for example, the Prime Factor method described in Non-Patent Document 2 is used to decompose into two small FFTs / IFFTs, and the FFT / IFFT treatment is performed.
- FIG. 6 shows a 64-point FFT data flow 500 decomposed into a two-step butterfly process having a radix of 8 using, for example, the Prime Factor method.
- the data flow 500 includes a data sorting process 501, a butterfly calculation process 502, and a total of 16 butterfly calculation processes having a radix of 8, and a twist multiplication process 504.
- some data flows are not shown.
- the data flow of FIG. 6 has the same basic configuration even when the IFFT process is performed.
- the eight iterations are the processes corresponding to each of the partial data flows 505a to 505h performed on the eight data in order, and specifically, they are performed as follows. That is, the first time, the process corresponding to the partial data flow 505a, the second time the process corresponding to the partial data flow 505b, and the third time the process corresponding to the partial data flow 505c (not shown) are performed. After that, similarly, the processing corresponding to the eighth partial data flow 505h is performed in order. By the above processing, 64-point FFT processing is realized.
- Patent Document 2 describes an FFT apparatus that rearranges data using a RAM circuit in a butterfly operation.
- Patent Document 3 describes a technique for speeding up by parallel processing of butterfly arithmetic.
- Japanese Unexamined Patent Publication No. 8-137832 Japanese Unexamined Patent Publication No. 2001-56806 Japanese Unexamined Patent Publication No. 2012-22500
- the data sorting process required for the butterfly operation includes sorting from “sequential order” to “bit reverse order” and vice versa, from “bit reverse order” to “sequential order”. There is a sort.
- the “sequential order” for 64 pieces of data is shown in FIG.
- the “sequential order” refers to the order of the eight data sets P1, P2, P3, P4, P5, P6, P7, and P8 in FIG.
- each data set is arranged in the order of P1, P2, P3, P4, P5, P6, P7, P8 according to the progress of the processing cycle. That is, the sequential order means that i ⁇ s data are arranged in the order of data i from the first data to create s data sets, and the data sets are arranged in the cycle order.
- the “bit reverse order” refers to the order of the eight data sets Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 shown in FIG.
- each data set is arranged in the order of Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 according to the progress of the processing cycle.
- the bit-reversal order is that i ⁇ s data input in sequential order are arranged in cycle order by s from the first data, and i data in the same cycle are arranged in data order as one set. Is.
- each data set in the bit-reversal order is uniquely determined if each set in the sequential order is set.
- Qs (i) and Pi (s) have a relationship in which the order with respect to the progress of the cycle and the order with respect to the data position of the data constituting each data set are exchanged. Therefore, when the data input in the bit-reversal order is sorted according to the bit-reversal order, the order is sequential.
- the plurality of data output in a certain cycle are different from each other. This is the data entered in the cycle.
- the 8 data constituting the data set Q1 to be output in the 1st cycle are the data input to each cycle of 8 different cycles. That is, the data sorting process can be started only after all the data corresponding to the number of FFT points has been input. Therefore, the data sorting process requires a storage capacity for storing at least the number of FFT points.
- a double buffering method is known as a method for dealing with this situation.
- the storage capacity required to store the data input during processing is prepared and input during processing. Also remember the data. After the processing being executed is completed, the next processing is started for the data input and stored during the processing.
- the data sorting processing requires a storage capacity for storing at least twice as many data as the number of FFT points. To do.
- the circuit scale and power consumption of the circuit that realizes the data sorting processing increase.
- An object of the present disclosure is to provide a digital filter device having a small circuit scale and power consumption of a circuit that realizes digital signal processing using a fast Fourier transform.
- the digital filter device is a digital filter device including a data sorting processing unit that sorts a plurality of data input in the first order in the second order.
- the data sorting processing unit includes at least a storage means.
- the data sorting processing unit writes data to the storage means according to the first or second address order, and then writes data to the storage means.
- the data sorting processing unit reads the data written to the storage means according to the first address order from the storage means according to the second address order, and stores the data according to the second address order.
- the data written in the means is read from the storage means according to the first address order to perform data sorting processing.
- the operation method of the digital filter device is an operation method of the digital filter device including a data sorting processing unit that sorts a plurality of data input in the first order in the second order.
- the data sorting processing unit includes at least a storage means, the data sorting processing unit writes data to the storage means according to the first or second address order, and the data sorting processing unit receives the data sorting processing unit.
- the data written to the storage means according to the first address order is read from the storage means according to the second address order, and the data written to the storage means according to the second address order is ,
- the data sorting process is performed by reading from the storage means according to the first address order.
- the program of the digital filter device is an operation method of the digital filter device including a data sorting processing unit that sorts a plurality of data input in the first order in the second order.
- the data sorting processing unit includes at least a storage means, the data sorting processing unit writes data to the storage means according to the first or second address order, and the data sorting processing unit writes data to the storage means.
- the data written to the storage means according to the first address order is read from the storage means according to the second address order, and the data written to the storage means according to the second address order is Data sorting processing is performed by reading from the storage means according to the first address order.
- a digital filter device having a small circuit scale and power consumption of a circuit that realizes digital signal processing using a fast Fourier transform.
- FIG. 1 is a block diagram showing a configuration example of the FFT device 10 according to the first embodiment of the present invention.
- the FFT apparatus 10 processes a 64-point FFT decomposed into a two-stage butterfly process having a radix of 8 according to the data flow 500 shown in FIG. 6 by a pipeline circuit method.
- N is a positive integer representing the FFT block size.
- the FFT device 10 shall perform 64-point FFT processing in parallel with 8 data.
- the FFT device 10 inputs the time domain data x (n), generates a signal X (k) in the frequency domain obtained by Fourier transform by the FFT process, and outputs the signal X (k).
- input data x (n) a total of 64 data are input in the order shown in FIG. 7 in a period of 8 cycles with 8 data each.
- the numbers from 0 to 63 shown as the contents of the table of FIG. 7 mean the subscript n of x (n).
- output data X (k) 64 data are output in the order shown in FIG. 7 in a period of 8 cycles with 8 data each.
- the numbers from 0 to 63 shown as the contents of the table of FIG. 7 mean the subscript k of X (k).
- the FFT device 10 includes a first data sorting processing unit 11, a first butterfly arithmetic processing unit 21, a second data sorting processing unit 12, a twist multiplication processing unit 31, a second butterfly arithmetic processing unit 22, and a second.
- the data sorting processing unit 13 of 3 is provided.
- the FFT device 10 pipelines the first data sorting process, the first butterfly calculation process, the second data sorting process, the twist multiplication process, the second butterfly calculation process, and the third data sorting process. To process.
- the first data sorting processing unit 11 and the second data sorting processing unit 12 are buffer circuits for data sorting.
- the first data sorting processing unit 11 and the second data sorting processing unit 12 are based on the data dependency on the FFT processing algorithm before and after the first butterfly calculation processing unit 21, respectively. , Sort the data sequence.
- the third data sorting processing unit 13 is also a buffer circuit for data sorting. That is, the third data sorting processing unit 13 sorts the data sequence based on the data dependency on the FFT processing algorithm after the second butterfly calculation processing unit 22.
- the first data sorting processing unit 11 inputs the "sequential order" shown in FIG. 7, which is the input order of the input data x (n), to the first butterfly calculation processing unit 21. It is rearranged in the "bit reverse order" shown in FIG.
- the bit reverse order shown in FIG. 8 corresponds to the input data set to the butterfly processing 502 of the first stage radix 8 in the data flow diagram shown in FIG. Specifically, in the first cycle, eight data of x (0), x (8), ..., X (56) constituting the data set P1 are input. Then, in the second cycle, eight data of x (1), x (9), ..., X (57) constituting the data set P2 are input. After that, the data constituting the data sets P3 to P8 are input in the same manner from the third cycle to the eighth cycle.
- Each row ps (i) in FIG. 7 and eight rows qs (i) in FIG. 8 indicate data to be input to the i-data in the next row, respectively.
- the eight numbers included in each data set are identification information that identifies one of the FFT points, specifically the value of the subscript n of x (n).
- each data set in the sequential order may be created by arranging the data in order according to the number of FFT points, the number of cycles, and the number of data to be processed in parallel. Then, each data set in the bit-reversal order may be created by exchanging the order of the data input in the sequential order with respect to the progress of the cycle and the order with respect to the data position as described above.
- the first butterfly arithmetic processing unit 21 is a butterfly circuit that processes the first butterfly arithmetic processing 502 (first butterfly arithmetic processing) of the radix 8 butterfly arithmetic processing performed twice in the data flow 500 of FIG. is there.
- the second data sorting processing unit 12 inputs the data y (n) output by the first butterfly calculation processing unit 21 in sequential order to the second butterfly calculation processing unit 22, so that the bits in FIG. 8 are input to the second butterfly calculation processing unit 22. Sort in reverse order.
- the twist multiplication processing unit 31 is a circuit that processes complex rotation on the complex plane in the FFT calculation after the first butterfly calculation processing, and corresponds to the twist multiplication processing 504 in the data flow 500 of FIG. In the twist multiplication process, the data is not reordered.
- the second butterfly arithmetic processing unit 22 is a butterfly circuit that processes the second butterfly processing 503 having a radix of 8 in the data flow diagram of FIG.
- the third data sorting processing unit 13 sorts the data X (k) output by the second butterfly calculation processing unit 22 in the bit reverse order in the sequential order shown in FIG. 7.
- the data sorting processing unit temporarily stores the input data and controls the selection and output of the stored data. As a result, the data sorting process according to the sequential order of FIG. 7 and the bit reverse order of FIG. 8 is realized. A specific example of the data sorting processing unit is shown below.
- the first data sorting processing unit 11, the second data sorting processing unit 12, and the third data sorting processing unit 13 can be realized by, for example, the data sorting processing unit 200 shown in FIG.
- the data sorting processing unit 200 includes a first data distribution unit 202, eight RAM circuits 210a, 210b, 210c, 210d, 210e, 210f, 210g, 210h, a second data distribution unit 203, and a write address control unit 212. , Read address control unit 213.
- the first data distribution unit 202 simultaneously inputs eight data from eight inputs in0 to in7, performs data distribution processing, and outputs the data to the eight outputs 205a to 205h.
- Each of the RAM circuits 210a to 210h is a RAM circuit capable of storing eight data, and therefore, the RAM circuits 210a to 210h can store a total of 64 data equal to the number of points of the 64-point FFT. .. Further, the RAM circuits 210a to 210h are 2-port RAM circuits provided with an independent write port and a read boat, and when writing and reading occur at the same timing for the same address, priority is given to reading. That is, after reading the data stored in the address to be written and read, the data to be written is written.
- the RAM circuit 210a stores the data output by the first data distribution unit 202 to 205a at the address output by the write address control unit 212 to the write address 207a, and the read address control unit 213 outputs the data to the read address 208a. Then, the stored data is read out and output to 206a.
- the data output by the first data distribution unit 202 to 205b is stored in the address output by the write address control unit 212 to the write address 207b, and the read address control unit 213 stores the data output to the read address 208b.
- the stored data is read from the output address and output to 206b.
- the RAM circuit 210c stores the data output by the first data distribution unit 202 to 205c at the address output by the write address control unit 212 to the write address 207c, and the read address control unit 213 outputs the data to the read address 208c. Then, the stored data is read out and output to 206c.
- the RAM circuit 210d stores the data output by the first data distribution unit 202 to 205d at the address output by the write address control unit 212 to the write address 207d, and the read address control unit 213 outputs the data to the read address 208d. Then, the stored data is read out and output to 206d.
- the RAM circuit 210e stores the data output by the first data distribution unit 202 to 205e at the address output by the write address control unit 212 to the write address 207e, and the read address control unit 213 outputs the data to the read address 208e. Then, the stored data is read out and output to 206e.
- the RAM circuit 210f stores the data output by the first data distribution unit 202 to 205f at the address output by the write address control unit 212 to the write address 207f, and the read address control unit 213 outputs the data to the read address 208f. Then, the stored data is read out and output to 206f.
- the RAM circuit 210g stores the data output by the first data distribution unit 202 to 205g at the address output by the write address control unit 212 to the write address 207g, and the read address control unit 213 outputs the data to the read address 208g. Then, the stored data is read out and output to 206 g.
- the RAM circuit 210h stores the data output by the first data distribution unit 202 to 205h at the address output by the write address control unit 212 to the write address 207h, and the read address control unit 213 outputs the data to the read address 208h. Then, the stored data is read out and output to 206h.
- the second data distribution unit 203 simultaneously inputs eight data from the eight inputs 206a to 206h, performs data distribution processing, and outputs the data to the eight outputs 207a to 207h.
- the write address control unit 212 refers to the input operation mode 201 and outputs the addresses to which the RAM circuits 210a to 210h write data to 207a to 207h, respectively.
- the read address control unit 213 refers to the input operation mode 201, and outputs the addresses from which the RAM circuits 210a to 210h read data to 208a to 208h, respectively.
- FIG. 3 is a time chart showing an example of the operation of the data sorting processing unit 200.
- the data sorting processing unit 200 sequentially inputs 64 data of 0a to 63a in 8 parallel inputs from in0 to in7 in 8 cycles of t0 to t7, and outputs out0 to 8 in 8 cycles of t9 to t15.
- 64 data from 0a to 63a are output to out7 in 8 parallels in a bit reverse order.
- 64 data of 0b to 63b are input in sequential order in 8 parallels from inputs in0 to in7, and in 8 cycles of t16 to t23, 8 parallels to outputs out0 to out7.
- 64 pieces of data from 0b to 63b are output in the bit reverse order.
- 64 data of 0c to 63c are input in sequential order from inputs in0 to in7 in 8 parallels, and in 8 cycles of t24 to t31, 8 parallels to outputs out0 to out7 are 0c. 64 pieces of data of ⁇ 63c are output in bit reverse order (not shown).
- the first data distribution unit 202 in the cycle t0 The data 0a input from in0 is output to 205a, The data 1a input from in1 is output to 205b, The data 2a input from in2 is output to 205c, The data 3a input from in3 is output to 205d, The data 4a input from in4 is output to 205e, The data 5a input from in5 is output to 205f, The data 6a input from in6 is output to 205g, The data 7a input from in7 is output to 205h.
- the first data distribution unit 202 rotates and outputs eight data input in parallel at the same time, and can be easily realized by, for example, a shift circuit.
- the first data distribution unit 202 performs a distribution operation on the data 0b to 63b in the cycle of t9 to t15, and performs a distribution operation on the data 0c to 63c in the cycle of t16 to t23.
- the write address control unit 212 and the read address control unit 213 operate with reference to the input operation mode 210.
- the operation mode 210 is a control signal given from a higher-level control circuit (not shown) such as a CPU, and indicates either the first operation mode or the second operation mode.
- the operation mode 210 shows the same operation mode in eight consecutive cycles in which data corresponding to the number of points of the 64-point FFT is input, and shows a different operation mode every eight cycles. Specifically, in FIG. 3, the operation mode 210 indicates the operation mode 0, which is the first operation mode, in the eight cycles of t0 to t7 in which the data 0a to 63a are input.
- the operation mode 1 which is the second operation mode is shown.
- the operation mode 0, which is the first operation mode, is shown again.
- the operation mode 210 is a signal indicating operation mode 0 or operation mode 1 alternately every 8 cycles.
- the write address control unit 212 When the input operation mode 210 is the operation mode 0, which is the first operation mode, the write address control unit 212 generates a write address according to the first address order.
- the operation mode 210 to be input is the operation mode 1 which is the second operation mode, the write address is generated according to the second address order.
- the first address sequence is an address sequence characterized in that different addresses are always specified for the respective RAM circuits of the RAM circuits 210a to 210h. That is, in the first operation mode, different addresses are always output to each of 207a to 207h.
- the second address order is an address order characterized in that the same address is always specified for each RAM circuit of the RAM circuits 210a to 210h. That is, in the second operation mode, the same address is always output to each of 207a to 207h.
- the read address control unit 213 also performs the same operation as the write address control unit 212. That is, when the input operation mode 210 is the operation mode 0, which is the first operation mode, the read address control unit 213 generates a write address according to the first address order. When the operation mode 210 to be input is the operation mode 1 which is the second operation mode, the write address is generated according to the second address order.
- the data 0a to 63a are written to the RAM circuits 210a to 210h.
- the data 0a to 63a written in the RAM circuits 210a to 210h are read, and the data 0b to 63b are written in the RAM circuits 210a to 210h.
- the data 0b to 63b written in the RAM circuits 210a to 210h are read, and the data 0c to 63c are written in the RAM circuits 210a to 210h. Note that the data written in the previous 8 cycles of t0 to t7 is also read out in the 8 cycles of t0 to t7, but the illustration is omitted.
- writing and reading of the RAM circuits 210a to 210h are always performed for the same address in the same cycle.
- the RAM circuits 210a to 210h are RAM circuits that give priority to reading when writing and reading occur at the same timing for the same address. Therefore, in the RAM circuits 210a to 210h, the data 0b to 63b are written after the data 0a to 63a are read in each cycle of t8 to t15. Similarly, in each cycle of t16 to t23, the data 0b to 63b are read and then the data 0c to 63c are written.
- the operation mode 210 indicates the operation mode 0 which is the first operation mode, and the write address control unit 212 sets the write address according to the first address order.
- the RAM circuits 210a to 210h write data to be output to 207a to 207h by the first data distribution unit 202 to the write address generated by the write address control unit 212.
- the RAM circuit 210a writes data 0a to the address 0 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes data 1a to the address 1 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 2a to the address 2 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes the data 3a to the address 3 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes data 4a to the address 4 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes data 5a to the address 5 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 6a to the address 6 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes data 7a to the address 7 output by the write address control unit 212 to the write address 207h.
- the RAM circuit 210a writes data 15a to the address 7 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes data 8a to the address 0 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 9a to the address 1 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes the data 10a to the address 2 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes the data 11a to the address 3 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes the data 12a to the address 4 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 13a to the address 5 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes data 14a to the address 6 output by the write address control unit 212 to the write address 207h.
- the RAM circuit 210a writes data 22a to the address 6 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes the data 23a to the address 7 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 16a to the address 0 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes data 17a to the address 1 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes the data 18a to the address 2 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes data 19a to the address 3 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 20a to the address 4 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes data 21a to the address 5 output by the write address control unit 212 to the write address 207h.
- the RAM circuit 210a writes data 29a to the address 5 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes the data 30a to the address 6 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 31a to the address 7 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes the data 24a to the address 0 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes the data 25a to the address 1 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes the data 26a to the address 2 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 27a to the address 3 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes data 28a to the address 4 output by the write address control unit 212 to the write address 207h.
- the RAM circuit 210a writes data 36a to the address 4 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes data 37a to the address 5 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 38a to the address 6 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes data 39a to the address 7 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes the data 32a to the address 0 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes the data 33a to the address 1 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 34a to the address 2 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes data 35a to the address 3 output by the write address control unit 212 to the write address 207h.
- the RAM circuit 210a writes data 43a to the address 3 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes data 44a to the address 4 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 45a to the address 5 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes data 46a to the address 6 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes data 47a to the address 7 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes the data 40a to the address 0 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 41a to the address 1 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes data 42a to the address 2 output by the write address control unit 212 to the write address 207h.
- the RAM circuit 210a writes data 50a to the address 2 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes the data 51a to the address 3 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 52a to the address 4 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes the data 53a to the address 5 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes the data 54a to the address 6 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes the data 55a to the address 7 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 48a to the address 0 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes data 49a to the address 1 output by the write address control unit 212 to the write address 207h.
- the RAM circuit 210a writes data 57a to the address 1 output by the write address control unit 212 to the write address 207a.
- the RAM circuit 210b writes data 58a to the address 2 output by the write address control unit 212 to the write address 207b.
- the RAM circuit 210c writes data 59a to the address 3 output by the write address control unit 212 to the write address 207c.
- the RAM circuit 210d writes the data 60a to the address 4 output by the write address control unit 212 to the write address 207d.
- the RAM circuit 210e writes the data 61a to the address 5 output by the write address control unit 212 to the write address 207e.
- the RAM circuit 210f writes data 62a to the address 6 output by the write address control unit 212 to the write address 207f.
- the RAM circuit 210g writes data 63a to the address 7 output by the writing address control unit 212 to the writing address 207g.
- the RAM circuit 210h writes the data 56a to the address 0 output by the write address control unit 212 to the write address 207h.
- different addresses are output for the write addresses 207a to 207h that indicate the write addresses of the RAM circuits 210a to 210h. Further, different addresses are output to each of the write addresses 207a to 207h in each cycle of t0 to t7. For example, different addresses of addresses 0 to 7 are output to the write address 207a in the cycle of t0 to t7.
- the operation mode 210 indicates the operation mode 1, which is the second operation mode, and the read address control unit 213 generates a read address according to the second address order.
- the RAM circuits 210a to 210h output the stored data from the read address generated by the read address control unit 213 to the outputs 206a to 206h.
- the read address control unit 213 outputs the address 0 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 0a from address 0.
- the RAM circuit 210b reads data 8a from address 0.
- the RAM circuit 210c reads data 16a from address 0.
- the RAM circuit 210d reads data 24a from address 0.
- the RAM circuit 210e reads data 32a from address 0.
- the RAM circuit 210f reads data 40a from address 0.
- the RAM circuit 210g reads data 48a from address 0.
- the RAM circuit 210h reads data 56a from address 0.
- the read address control unit 213 outputs the address 1 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 57a from address 1.
- the RAM circuit 210b reads data 1a from address 1.
- the RAM circuit 210c reads data 9a from address 1.
- the RAM circuit 210d reads data 17a from address 1.
- the RAM circuit 210e reads data 25a from address 1.
- the RAM circuit 210f reads data 33a from address 1.
- the RAM circuit 210g reads data 41a from address 1.
- the RAM circuit 210h reads data 49a from address 1.
- the read address control unit 213 outputs the address 2 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 50a from address 2.
- the RAM circuit 210b reads data 58a from address 2.
- the RAM circuit 210c reads data 2a from address 2.
- the RAM circuit 210d reads the data 10a from the address 2.
- the RAM circuit 210e reads data 18a from address 2.
- the RAM circuit 210f reads data 26a from address 2.
- the RAM circuit 210g reads data 34a from address 2.
- the RAM circuit 210h reads data 42a from address 2.
- the read address control unit 213 outputs the address 3 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 43a from address 3.
- the RAM circuit 210b reads the data 51a from the address 3.
- the RAM circuit 210c reads data 59a from address 3.
- the RAM circuit 210d reads the data 3a from the address 3.
- the RAM circuit 210e reads the data 11a from the address 3.
- the RAM circuit 210f reads data 19a from address 3.
- the RAM circuit 210g reads data 27a from address 3.
- the RAM circuit 210h reads data 35a from address 3.
- the read address control unit 213 outputs the address 4 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 36a from address 4.
- the RAM circuit 210b reads data 44a from address 4.
- the RAM circuit 210c reads data 52a from address 4.
- the RAM circuit 210d reads data 60a from address 4.
- the RAM circuit 210e reads data 4a from address 4.
- the RAM circuit 210f reads data 12a from address 4.
- the RAM circuit 210g reads data 20a from address 4.
- the RAM circuit 210h reads data 28a from address 4.
- the read address control unit 213 outputs the address 5 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 29a from address 5.
- the RAM circuit 210b reads data 37a from address 5.
- the RAM circuit 210c reads data 45a from address 5.
- the RAM circuit 210d reads data 53a from address 5.
- the RAM circuit 210e reads the data 61a from the address 5.
- the RAM circuit 210f reads data 5a from address 5.
- the RAM circuit 210g reads data 13a from address 5.
- the RAM circuit 210h reads data 21a from address 5.
- the read address control unit 213 outputs the address 6 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 22a from address 6.
- the RAM circuit 210b reads the data 30a from the address 6.
- the RAM circuit 210c reads data 38a from address 6.
- the RAM circuit 210d reads data 46a from address 6.
- the RAM circuit 210e reads data 54a from address 6.
- the RAM circuit 210f reads data 62a from address 6.
- the RAM circuit 210g reads data 6a from address 6.
- the RAM circuit 210h reads data 14a from address 6.
- the read address control unit 213 outputs the address 7 to all the read addresses 208a to 208h.
- the RAM circuit 210a reads data 15a from the address 7.
- the RAM circuit 210b reads the data 23a from the address 7.
- the RAM circuit 210c reads the data 31a from the address 7.
- the RAM circuit 210d reads data 39a from the address 7.
- the RAM circuit 210e reads data 47a from the address 7.
- the RAM circuit 210f reads the data 55a from the address 7.
- the RAM circuit 210g reads data 63a from the address 7.
- the RAM circuit 210h reads data 7a from the address 7.
- the same address is output for all the read addresses 208a to 208h that indicate the read addresses of the RAM circuits 210a to 210h. Further, different addresses are output to the read addresses 208a to 208h in each cycle of t8 to t15. For example, different addresses 0 to 7 are output to the write address 208a in the cycle of t8 to t15.
- the operation mode 210 indicates the operation mode 1, which is the second operation mode, and the write address control unit 212 generates a write address according to the second address order.
- the RAM circuits 210a to 210h write the data output by the first data distribution unit 202 to the outputs 207a to 207h to the write address generated by the write address control unit 212.
- the write address control unit 212 outputs the address 0 to all the write addresses 207a to 207h.
- the RAM circuit 210a writes data 0b to address 0.
- the RAM circuit 210b writes data 1b to address 0.
- the RAM circuit 210c writes data 2b to address 0.
- the RAM circuit 210d writes the data 3b to the address 0.
- the RAM circuit 210e writes the data 4b to the address 0.
- the RAM circuit 210f writes the data 5b to the address 0.
- the RAM circuit 210g writes data 6b to address 0.
- the RAM circuit 210h writes data 7b to address 0.
- the write address control unit 212 outputs the address 1 to all of the write addresses 207a to 207h.
- the RAM circuit 210a writes the data 15b to the address 1.
- the RAM circuit 210b writes the data 8b to the address 1.
- the RAM circuit 210c writes data 9b to address 1.
- the RAM circuit 210d writes the data 10b to the address 1.
- the RAM circuit 210e writes the data 11b to the address 1.
- the RAM circuit 210f writes the data 12b to the address 1.
- the RAM circuit 210g writes the data 13b to the address 1.
- the RAM circuit 210h writes data 14b to address 1.
- the write address control unit 212 outputs the address 2 to all of the write addresses 207a to 207h.
- the RAM circuit 210a writes the data 22b to the address 2.
- the RAM circuit 210b writes the data 23b to the address 2.
- the RAM circuit 210c writes the data 16b to the address 2.
- the RAM circuit 210d writes the data 17b to the address 2.
- the RAM circuit 210e writes the data 18b to the address 2.
- the RAM circuit 210f writes the data 19b to the address 2.
- the RAM circuit 210g writes the data 20b to the address 2.
- the RAM circuit 210h writes the data 21b to the address 2.
- the write address control unit 212 outputs the address 3 to all the write addresses 207a to 207h.
- the RAM circuit 210a writes the data 29b to the address 3.
- the RAM circuit 210b writes the data 30b to the address 3.
- the RAM circuit 210c writes the data 31b to the address 3.
- the RAM circuit 210d writes the data 24b to the address 3.
- the RAM circuit 210e writes the data 25b to the address 3.
- the RAM circuit 210f writes the data 26b to the address 3.
- the RAM circuit 210g writes the data 27b to the address 3.
- the RAM circuit 210h writes the data 28b to the address 3.
- the write address control unit 212 outputs the address 4 to all the write addresses 207a to 207h.
- the RAM circuit 210a writes the data 36b to the address 4.
- the RAM circuit 210b writes data 37b to address 4.
- the RAM circuit 210c writes the data 38b to the address 4.
- the RAM circuit 210d writes the data 39b to the address 4.
- the RAM circuit 210e writes the data 32b to the address 4.
- the RAM circuit 210f writes the data 33b to the address 4.
- the RAM circuit 210g writes the data 34b to the address 4.
- the RAM circuit 210h writes the data 35b to the address 4.
- the write address control unit 212 outputs the address 5 to all the write addresses 207a to 207h.
- the RAM circuit 210a writes the data 43b to the address 5.
- the RAM circuit 210b writes the data 44b to the address 5.
- the RAM circuit 210c writes the data 45b to the address 5.
- the RAM circuit 210d writes the data 46b to the address 5.
- the RAM circuit 210e writes the data 47b to the address 5.
- the RAM circuit 210f writes the data 40b to the address 5.
- the RAM circuit 210g writes the data 41b to the address 5.
- the RAM circuit 210h writes the data 42b to the address 5.
- the write address control unit 212 outputs the address 6 to all the write addresses 207a to 207h.
- the RAM circuit 210a writes the data 50b to the address 6.
- the RAM circuit 210b writes the data 51b to the address 6.
- the RAM circuit 210c writes the data 52b to the address 6.
- the RAM circuit 210d writes the data 53b to the address 6.
- the RAM circuit 210e writes the data 54b to the address 6.
- the RAM circuit 210f writes the data 55b to the address 6.
- the RAM circuit 210g writes data 48b to address 6.
- the RAM circuit 210h writes data 49b to address 6.
- the write address control unit 212 outputs the address 7 to all the write addresses 207a to 207h.
- the RAM circuit 210a writes the data 57b to the address 7.
- the RAM circuit 210b writes the data 58b to the address 7.
- the RAM circuit 210c writes the data 59b to the address 7.
- the RAM circuit 210d writes the data 60b to the address 7.
- the RAM circuit 210e writes the data 61b to the address 7.
- the RAM circuit 210f writes the data 62b to the address 7.
- the RAM circuit 210g writes the data 63b to the address 7.
- the RAM circuit 210h writes the data 56b to the address 7.
- the same address is output for all the write addresses 207a to 207h that indicate the write addresses of the RAM circuits 210a to 210h. Further, different addresses are output to each of the write addresses 207a to 207h in each cycle of t8 to t15. For example, different addresses of addresses 0 to 7 are output to the write address 207a in the cycle of t0 to t7.
- the data 0b to 63b are stored in the RAM circuits 210a to 210h at the time of the cycle t16 as shown in FIG.
- the operation mode 210 indicates the operation mode 0, which is the first operation mode, and the read address control unit 213 generates a read address according to the first address order.
- the RAM circuits 210a to 210h output the stored data from the read address generated by the read address control unit 213 to the outputs 206a to 206h.
- the RAM circuit 210a reads data 0b from the address 0 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads data 8b from the address 1 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads the data 16b from the address 2 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 24b from the address 3 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads data 32b from the address 4 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads the data 40b from the address 5 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads data 48b from the address 6 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 56b from the address 7 output by the read address control unit 213 to the read address 208h.
- the RAM circuit 210a reads data 57b from the address 7 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads data 1b from the address 0 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads data 9b from the address 1 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 17b from the address 2 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads data 25b from the address 3 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads the data 33b from the address 4 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads data 41b from the address 5 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 49b from the address 6 output by the read address control unit 213 to the read address 208h.
- the RAM circuit 210a reads the data 50b from the address 6 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads data 58b from the address 7 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads the data 2b from the address 0 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 10b from the address 1 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads the data 18b from the address 2 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads the data 26b from the address 3 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads data 34b from the address 4 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 42b from the address 5 output by the read address control unit 213 to the read address 208h.
- the RAM circuit 210a reads data 43b from the address 5 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads the data 51b from the address 6 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads data 59b from the address 7 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 3b from the address 0 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads the data 11b from the address 1 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads data 19b from the address 2 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads data 27b from the address 3 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 35b from the address 4 output by the read address control unit 213 to the read address 208h.
- the RAM circuit 210a reads the data 36b from the address 4 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads data 44b from the address 5 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads the data 52b from the address 6 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 60b from the address 7 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads the data 4b from the address 0 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads the data 12b from the address 1 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads the data 20b from the address 2 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 28b from the address 3 output by the read address control unit 213 to the read address 208h.
- the RAM circuit 210a reads data 29b from the address 3 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads data 37b from the address 4 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads the data 45b from the address 5 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 53b from the address 6 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads the data 61b from the address 7 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads the data 5b from the address 0 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads the data 13b from the address 1 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 21b from the address 2 output by the read address control unit 213 to the read address 208h.
- the RAM circuit 210a reads the data 22b from the address 2 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads the data 30b from the address 3 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads data 38b from the address 4 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 46b from the address 5 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads data 54b from the address 6 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads the data 62b from the address 7 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads data 6b from the address 0 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 14b from the address 1 output by the read address control unit 213 to the read address 208h.
- the RAM circuit 210a reads the data 15b from the address 1 output by the read address control unit 213 to the read address 208a.
- the RAM circuit 210b reads the data 23b from the address 2 output by the read address control unit 213 to the read address 208b.
- the RAM circuit 210c reads data 31b from the address 3 output by the read address control unit 213 to the read address 208c.
- the RAM circuit 210d reads the data 39b from the address 4 output by the read address control unit 213 to the read address 208d.
- the RAM circuit 210e reads data 47b from the address 5 output by the read address control unit 213 to the read address 208e.
- the RAM circuit 210f reads the data 55b from the address 6 output by the read address control unit 213 to the read address 208f.
- the RAM circuit 210g reads data 63b from the address 7 output by the reading address control unit 213 to the reading address 208g.
- the RAM circuit 210h reads data 7b from the address 0 output by the read address control unit 213 to the read address 208h.
- different addresses are output for the read addresses 208a to 208h that indicate the read addresses of the RAM circuits 210a to 210h. Further, different addresses are output to the read addresses 208a to 208h in each cycle of t16 to t23. For example, different addresses 0 to 7 are output to the read address 208a in the cycle of t16 to t23.
- the data 0a to 63a are output to out0 to 7 in the bit reverse order in the cycle of t8 to t15.
- the second data distribution unit 203 rotates and outputs eight data input in parallel at the same time, and is easily realized by, for example, a shift circuit. be able to.
- the second data distribution unit 203 performs the same distribution operation for the data 0b to 63b even in the cycle of t16 to t23, and the data 0b to 63b are output to out0 to 7 in the bit reverse order.
- the data sorting process has been described above by taking the sorting from the sequential order to the bit reverse order as an example, but the sorting from the bit reverse order to the sequential order can also be realized in the same manner.
- the data sorting processing unit 200 included in the FFT device 10 rearranges the data from the "sequential order" to the "bit reverse order", which is the data sorting process required for the butterfly calculation.
- the change and the rearrangement from the "bit reverse order" to the "sequential order” are realized by controlling the write and read operations of the RAM circuits 210a to 210h by the first and second types of address orders. For example, the data written in the RAM circuit in the first address order is read in the second address order, and the data written in the second address order is read in the first address order. ..
- Non-transitory computer-readable media include various types of tangible recording media (tangible storage media).
- Examples of non-temporary computer-readable media include magnetic recording media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical disks), CD-ROMs (Read Only Memory) CD-Rs, CDs.
- the program may also be supplied to the computer by various types of temporary computer-readable media (transitory computer readable media). Examples of temporary computer-readable media include electrical, optical, and electromagnetic waves.
- the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
第1の順序で入力した複数のデータを第2の順序に並べ替えるデータ並べ替え処理部(200)を備えるデジタルフィルタ装置において、データ並べ替え処理部(200)は、少なくとも記憶手段を備え、データ並べ替え処理部(200)は、第1または第2のアドレス順序に従って記憶手段にデータの書き込みを行い、データ並べ替え処理部(200)は、第1のアドレス順序に従って記憶手段に書き込みを行ったデータを、第2のアドレス順序に従って記憶手段から読み出しを行い、第2のアドレス順序に従って記憶手段に書き込みを行ったデータを、前記第1のアドレス順序に従って記憶手段から読み出しを行うことでデータ並べ替え処理を行う。これにより、高速フーリエ変換を用いたデジタル信号処理を実現する回路の回路規模や消費電力が小さいデジタルフィルタ装置を提供する。
Description
本発明は、特に高速フーリエ変換を行うためのデジタル信号処理を実行する、デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムに関する。
デジタル信号処理において重要な処理の1つとして、高速フーリエ変換(Fast Fourier Transform。以降、「FFT」という。)処理がある。例えば、無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化(Frequency domain equalization(FDE))技術が知られている。周波数領域等化では、まず高速フーリエ変換により時間領域上の信号データが周波数領域上のデータに変換され、次に等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換(Inverse FFT。以降、「IFFT」という。)により時間領域上の信号データに再変換されることによって、元の時間領域上の信号の波形歪みが補償される。以降、FFTとIFFTを区別しないときは、「FFT/IFFT」と表記する。
一般に、FFT/IFFT処理では、「バタフライ演算」が用いられる。バタフライ演算を用いたFFT装置については、例えば特許文献1に記載がある。特許文献1には、後述の「ひねり乗算」、すなわち、ひねり係数を用いた乗算についても記載されている。
効率的なFFT/IFFT処理方式としては、例えば非特許文献1に記載されたCooley-Tukeyによるバタフライ演算が有名である。しかし、ポイント数の大きいCooley-TukeyによるFFT/IFFTは回路が複雑になる。そのため、例えば非特許文献2に記載されたPrime Factor法を用いて2つの小さなFFT/IFFTに分解して、FFT/IFFT処理が行われる。
図6は、例えばPrime Factor法を利用して2段階の基数8のバタフライ処理に分解された、64ポイントFFTのデータフロー500を示す。データフロー500は、データ並べ替え処理501、バタフライ演算処理502、503からなる延べ16回の基数8のバタフライ演算処理、ひねり乗算処理504を含む。
図6のデータフローでは、入力された時間領域のデータx(n)(n=0,1,・・・ ,63)が、FFT処理により、周波数領域の信号X(k)(k=0,1,・・・,63)にフーリエ変換される。図6では、一部のデータフローの図示は省略されている。なお、図6のデータフローは、IFFT処理を行う場合についても、基本構成は同じである。
図6のデータフローのすべてを回路で実現するためには、膨大な規模の回路を要する。そのため、必要な処理性能に応じて、データフローの一部分の処理を実現する回路を繰り返し使用することで、FFT処理の全体を実現する方法が一般的である。
例えば、図6のデータフローにおいて、8個のデータに対して並列に(以降、単に「8データ並列で」という。)FFT処理を行うFFT装置を物理的な回路として作成した場合、合計8回の繰り返し処理により64ポイントFFT処理を実現することができる。
8回の繰り返し処理は、8個のデータに対して行われる部分データフロー505a~505hの、それぞれにあたる処理が順に行われるものであり、具体的には、次のように行われる。すなわち、1回目には、部分データフロー505aにあたる処理が、2回目には、部分データフロー505bにあたる処理が、3回目には、部分データフロー505c(図示せず)にあたる処理が行われる。以降同様に、8回目の部分データフロー505hにあたる処理までが順に行われる。以上の処理により、64ポイントFFT処理が実現される。
バタフライ演算では、逐次的な順序に並べられたデータが、所定の規則に従った順序で読み出され、処理される。そのため、バタフライ演算では、データの並べ替えが必要であり、その回路実現には主にRAM(Random Access Memory)回路が用いられる。バタフライ演算においてRAM回路を用いたデータの並べ替えを行うFFT装置については、例えば特許文献2に記載がある。また、メモリ使用量を削減したFFT演算装置については、バタフライ演算の並列処理による高速化技術が、例えば特許文献3に記載されている。
J.W.Cooley, J.W.Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," Mathematics of Computation, US,American Mathematical Society, Apr. 1965, Vol.19, No. 90, pp. 297-301
D.P.Kolba, "A Prime Factor FFT Algorithm Using High-Speed Convolution," IEEE Trans. on Acoustics, US, IEEE Signal Processing Society, Aug. 1977, Vol.29, No.4 , pp. 281-294
バタフライ演算において必要なデータの並べ替え処理には、具体的には、「逐次順序」から、「ビットリバース順序」への並べ替えや、その逆の「ビットリバース順序」から「逐次順序」への並べ替えがある。
ここで、「逐次順序」と「ビットリバース順序」について、具体的に説明する。64個のデータに対する「逐次順序」を図7に示す。「逐次順序」とは、図7において、8つのデータ組P1、P2、P3、P4、P5、P6、P7、P8の順序をいう。データ組Ps(sは処理サイクルの順を示す値である。s=1,・・・,8)は、それぞれ、ps(0)からps(7)まで、順に並んだ8個のデータからなり、ps(i)は、
ps(i)=8(s-1)+i
である。そして、各データ組は、処理のサイクルの進行に対応して、P1、P2、P3、P4、P5、P6、P7、P8の順に並べられている。つまり、逐次順序とは、i×s個のデータを、先頭のデータからi個ずつデータ順に並べてデータ組をs個作成し、そのデータ組をサイクル順に並べたものである。
ps(i)=8(s-1)+i
である。そして、各データ組は、処理のサイクルの進行に対応して、P1、P2、P3、P4、P5、P6、P7、P8の順に並べられている。つまり、逐次順序とは、i×s個のデータを、先頭のデータからi個ずつデータ順に並べてデータ組をs個作成し、そのデータ組をサイクル順に並べたものである。
一方、「ビットリバース順序」とは、図8に示された、8つのデータ組Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順序をいう。データ組Qsは、それぞれ、qs(0)からqs(7)までの8個のデータからなり、qs(i)は、
qs(i)=(s-1)+8i
である。そして、各データ組は、処理のサイクルの進行に対応して、Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順に並べられている。つまり、ビットリバース順序とは、逐次順序で入力されたi×s個のデータを、先頭のデータからs個ずつサイクル順に並べ、同じサイクルのi個のデータを1つの組としてデータ順に並べたものである。
qs(i)=(s-1)+8i
である。そして、各データ組は、処理のサイクルの進行に対応して、Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順に並べられている。つまり、ビットリバース順序とは、逐次順序で入力されたi×s個のデータを、先頭のデータからs個ずつサイクル順に並べ、同じサイクルのi個のデータを1つの組としてデータ順に並べたものである。
以上のように、ビットリバース順序の各データ組は、逐次順序の各組が設定されれば一意に定まる。ビットリバース順序の各データ組Qs(s=1,・・・,8)を構成するデータのiデータ目は、逐次順序に従ったサイクルiにおける、sデータ目のデータである。すなわち、
Qs(i)=Pi(s)
である。このように、Qs(i)とPi(s)とは、各データ組を構成するデータについての、サイクルの進行に対する順序とデータ位置に対する順序とが入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。
Qs(i)=Pi(s)
である。このように、Qs(i)とPi(s)とは、各データ組を構成するデータについての、サイクルの進行に対する順序とデータ位置に対する順序とが入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。
図7、図8に示すように、逐次順序からビットリバース順序への並べ替え、及び、逐ビットリバース順序から次順序への並べ替えにおいて、あるサイクルで出力する複数のデータのそれぞれは、互いに異なるサイクルで入力したデータである。例えば、8並列で並べ替え処理する場合、例えば、1サイクル目に出力するデータ組Q1を構成する8個のデータは、異なる8サイクルのそれぞれのサイクルに入力したデータである。すなわち、データ並べ替え処理は、FFTのポイント数分のデータがすべて入力された後でないと処理を開始できない。従って、データ並べ替え処理には、少なくともFFTのポイント数分のデータを記憶するための記憶容量を必要とする。
さらに、連続して入力される信号のFFT処理を行う場合、データ並べ替え処理を行っている間にも、新たなデータが連続して入力されることになる。この状況に対処する方式として、ダブルバッファリング方式が知られている。ダブルバッファリング方式では、処理に必要な記憶容量に加えて、処理を行っている間に入力されるデータを記憶するのに必要な記憶容量を準備し、処理を行っている間に入力されるデータをも記憶しておく。実行中の処理が完了したのち、処理中に入力され記憶したデータを対象に次の処理を開始する。
従って、連続して入力される信号のFFT処理を行う場合、ダブルバッファリング方式によれば、データ並べ替え処理に少なくともFFTのポイント数分の2倍のデータを記憶するための記憶容量を必要とする。その結果、FFT処理のポイント数が大きくなると、データ並べ替え処理を実現する回路の回路規模や消費電力が大きくなってしまうという問題がある。
本開示の目的は、高速フーリエ変換を用いたデジタル信号処理を実現する回路の回路規模や消費電力が小さいデジタルフィルタ装置を提供することである。
一実施の形態に係るデジタルフィルタ装置は、第1の順序で入力した複数のデータを第2の順序に並べ替えるデータ並べ替え処理部を備えるデジタルフィルタ装置において、
前記データ並べ替え処理部は、少なくとも記憶手段を備え、
前記データ並べ替え処理部は、第1または第2のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理部は、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第2のアドレス順序に従って前記記憶手段から読み出しを行い、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第1のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う。
前記データ並べ替え処理部は、少なくとも記憶手段を備え、
前記データ並べ替え処理部は、第1または第2のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理部は、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第2のアドレス順序に従って前記記憶手段から読み出しを行い、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第1のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う。
また、一実施の形態に係るデジタルフィルタ装置の動作方法は、第1の順序で入力した複数のデータを第2の順序に並べ替えるデータ並べ替え処理部を備えるデジタルフィルタ装置の動作方法であって、前記データ並べ替え処理部は、少なくとも記憶手段を備え、前記データ並べ替え処理部は、第1または第2のアドレス順序に従って前記記憶手段にデータの書き込みを行い、前記データ並べ替え処理部は、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第2のアドレス順序に従って前記記憶手段から読み出しを行い、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第1のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う。
また、一実施の形態に係るデジタルフィルタ装置のプログラムは、第1の順序で入力した複数のデータを第2の順序に並べ替えるデータ並べ替え処理部を備えるデジタルフィルタ装置の動作方法であって、前記データ並べ替え処理部は、少なくとも記憶手段を備え、前記データ並べ替え処理部は、第1または第2のアドレス順序に従って前記記憶手段にデータの書き込みを行い、前記データ並べ替え処理部は、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第2のアドレス順序に従って前記記憶手段から読み出しを行い、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第1のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う。
一実施の形態によれば、高速フーリエ変換を用いたデジタル信号処理を実現する回路の回路規模や消費電力が小さいデジタルフィルタ装置を提供することができる。
図1は、本発明の第1の実施形態に係るFFT装置10の構成例を示すブロック図である。FFT装置10は、図6に示されたデータフロー500に従って、2段階の基数8のバタフライ処理に分解された64ポイントFFTを、パイプライン回路方式によって処理する。FFT装置10は、時間領域のデータx(n)(n=0,1,・・・ ,N-1)を入力し、x(n)をFFT処理によりフーリエ変換して周波数領域の信号X(k)(k=0,1,・・・,N-1)を生成し、出力する。ここで、NはFFTブロックサイズを表す正整数である。
FFT装置10は、8データ並列で64ポイントFFT処理を行うものとする。この場合、FFT装置10は、時間領域のデータx(n)を入力し、FFT処理によりフーリエ変換した周波数領域の信号X(k)を生成して出力する。このとき、入力データx(n) として、8データずつ、8サイクルの期間に、図7に示す順序で、合計で64個のデータが入力される。なお、ここでは、図7の表の内容として示された、0から63までの数字は、x(n)の添え字nを意味する。
具体的には、1サイクル目に、データ組P1を構成するx(0),x(1),・・・,x(7)の8データが入力される。そして、2サイクル目に、データ組P2を構成するx(8),x(9),・・・,x(15)の8データが入力される。以降同様に、3サイクル目から8サイクル目まで、データ組P3~P8を構成するデータが入力される。
同様に、出力データX(k)として、8データずつ、8サイクルの期間に、図7に示す順序で、64個のデータが出力される。なお、ここでは、図7の表の内容として示された、0から63までの数字は、X(k)の添え字kを意味する。
具体的には、1サイクル目に、データ組P1を構成するX(0),X(1),・・・,X(7)の8データが出力される。2サイクル目に、データ組P2を構成するX(8),X(9),・・・,X(15)の8データが出力される。以降同様に、3サイクル目から8サイクル目まで、データ組P3~P8を構成するデータが出力される。
FFT装置10は、第1のデータ並べ替え処理部11、第1のバタフライ演算処理部21、第2のデータ並べ替え処理部12、ひねり乗算処理部31、第2のバタフライ演算処理部22、第3のデータ並べ替え処理部13、を備える。FFT装置10は、第1のデータ並べ替え処理、第1のバタフライ演算処理、第2のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理、第3のデータ並べ替え処理を、パイプライン処理する。
第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12は、データ並べ替えのためのバッファ回路である。第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12は、それぞれ、第1のバタフライ演算処理部21の前と後で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
第3のデータ並べ替え処理部13も、同様に、データ並べ替えのためのバッファ回路である。すなわち、第3のデータ並べ替え処理部13は、第2のバタフライ演算処理部22の後で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
具体的には、第1のデータ並べ替え処理部11は、入力データx(n)の入力順序である図7に示す「逐次順序」を、第1のバタフライ演算処理部21に入力する順序である図8に示す「ビットリバース順序」に並べ替える。
図8に示すビットリバース順序は、図8に示したデータフロー図における、1段目の基数8のバタフライ処理502への入力データ組に対応する。具体的には、具体的には、1サイクル目に、データ組P1を構成するx(0),x(8),・・・,x(56)の8データを入力する。そして、2サイクル目に、データ組P2を構成するx(1),x(9),・・・,x(57)の8データを入力する。以降、3サイクル目から8サイクル目まで同様にして、データ組P3~P8を構成するデータを入力する。
図7における各行ps(i)、及び図8における8つの行qs(i)は、それぞれ、次段のiデータ目に入力されるデータを示す。各データ組に含まれる8個の数字は、FFTのポイントのうちの1個を特定する識別情報であり、具体的にはx(n)の添え字nの値である。
なお、逐次順序及びビットリバース順序は、図7、図8に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、FFTのポイント数、サイクル数、並列に処理するデータ数に応じて、データを順に並べて作成すればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序を入れ替えて作成すればよい。
第1のバタフライ演算処理部21は、図6のデータフロー500において2回行われる基数8のバタフライ演算処理の、1回目のバタフライ演算処理502(第1のバタフライ演算処理)を処理するバタフライ回路である。第1のバタフライ演算処理部21は、バタフライ演算処理の結果を、データy(n)(n=0,1,・・・ ,63)として、図7の逐次順序で出力する。
第2のデータ並べ替え処理部12は、第1のバタフライ演算処理部21が逐次順序で出力するデータy(n)を、第2のバタフライ演算処理部22に入力するために、図8のビットリバース順序に並べ替える。
ひねり乗算処理部31は、第1のバタフライ演算処理後に、FFT演算における複素平面上の複素回転を処理する回路であり、図6のデータフロー500における、ひねり乗算処理504に対応する。なお、ひねり乗算処理では、データの並へ替えは行われない。
第2のバタフライ演算処理部22は、図6のデータフロー図における、2回目の基数8のバタフライ処理503を処理するバタフライ回路である。第2のバタフライ演算処理部22は、ビットリバース順序で入力されるひねり乗算処理後のデータy'(n)(n=0,1,・・・ ,63)に対してバタフライ演算処理を行い、その結果X(k)(n=0,1,・・・ ,63)を、同じくビットリバース順序で出力する。
第3のデータ並べ替え処理部13は、第2のバタフライ演算処理部22がビットリバース順序で出力するデータX(k)を、図7の逐次順序に並べ替える。
データ並べ替え処理部は、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御する。これにより、図7の逐次順序、図8のビットリバース順序のそれぞれに従ったデータの並べ替え処理が実現される。以下に、データ並べ替え処理部の具体例を示す。
第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12、及び第3のデータ並べ替え処理部13は、例えば図2に示すデータ並べ替え処理部200で実現することができる。
データ並べ替え処理部200は、第1のデータ振り分け部202、8個のRAM回路210a、210b、210c、210d、210e、210f、210g、210h、第2のデータ振り分け部203、書き込みアドレス制御部212、読み出しアドレス制御部213、から構成される。
第1のデータ振り分け部202は、8つの入力in0~in7から8つのデータを同時に入力して、データの振り分け処理を行い、8つの出力205a~205hへ出力する。
RAM回路210a~210hは、それぞれが8個のデータを記憶可能なRAM回路であり、従って、RAM回路210a~210hで合わせて64ポイントFFTのポイント数に等しい64個のデータを記憶することができる。また、RAM回路210a~210hは、独立した書き込みポート及び読み出しボートを備える2ポートRAM回路であり、同じアドレスに対して同じタイミングで書き込みと読み出しが発生した場合、読み出しを優先する。すなわち、書き込み及び読み出しの対象のアドレスに記憶されているデータを読み出したのち、書き込み対象のデータの書き込みを行う。
RAM回路210aは、書き込みアドレス制御部212が書き込みアドレス207aに出力するアドレスに、第1のデータ振り分け部202が205aに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208aに出力するアドレスから、記憶したデータを読み出して206aに出力する。
同様に、RAM回路210bは、書き込みアドレス制御部212が書き込みアドレス207bに出力するアドレスに、第1のデータ振り分け部202が205bに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208bに出力するアドレスから、記憶したデータを読み出して206bに出力する。
RAM回路210cは、書き込みアドレス制御部212が書き込みアドレス207cに出力するアドレスに、第1のデータ振り分け部202が205cに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208cに出力するアドレスから、記憶したデータを読み出して206cに出力する。
RAM回路210dは、書き込みアドレス制御部212が書き込みアドレス207dに出力するアドレスに、第1のデータ振り分け部202が205dに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208dに出力するアドレスから、記憶したデータを読み出して206dに出力する。
RAM回路210eは、書き込みアドレス制御部212が書き込みアドレス207eに出力するアドレスに、第1のデータ振り分け部202が205eに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208eに出力するアドレスから、記憶したデータを読み出して206eに出力する。
RAM回路210fは、書き込みアドレス制御部212が書き込みアドレス207fに出力するアドレスに、第1のデータ振り分け部202が205fに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208fに出力するアドレスから、記憶したデータを読み出して206fに出力する。
RAM回路210gは、書き込みアドレス制御部212が書き込みアドレス207gに出力するアドレスに、第1のデータ振り分け部202が205gに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208gに出力するアドレスから、記憶したデータを読み出して206gに出力する。
RAM回路210hは、書き込みアドレス制御部212が書き込みアドレス207hに出力するアドレスに、第1のデータ振り分け部202が205hに出力したデータを記憶し、読み出しアドレス制御部213が読み出しアドレス208hに出力するアドレスから、記憶したデータを読み出して206hに出力する。
第2のデータ振り分け部203は、8つの入力206a~206hから8つのデータを同時に入力して、データの振り分け処理を行い、8つの出力207a~207hへ出力する。
書き込みアドレス制御部212は、入力する動作モード201を参照して、RAM回路210a~210hがデータを書き込むアドレスをそれぞれ207a~207hに出力する。
読み出しアドレス制御部213は、入力する動作モード201を参照して、RAM回路210a~210hがデータを読み出すアドレスをそれぞれ208a~208hに出力する。
次に、データ並べ替え処理部200の具体的な動作を説明する。図3は、データ並べ替え処理部200の動作の一例を示すタイムチャートである。
データ並べ替え処理部200は、t0~t7の8サイクルにおいて、入力in0~in7から8並列で0a~63aの64個のデータを逐次順序で入力し、t9~t15の8サイクルにおいて、出力out0~out7へ8並列で0a~63aの64個のデータをビットリバース順序で出力する。同様に、t8~t15の8サイクルにおいて、入力in0~in7から8並列で0b~63bの64個のデータを逐次順序で入力し、t16~t23の8サイクルにおいて、出力out0~out7へ8並列で0b~63bの64個のデータをビットリバース順序で出力する。さらに、t16~t23の8サイクルにおいて、入力in0~in7から8並列で0c~63cの64個のデータを逐次順序で入力し、t24~t31の8サイクルにおいて、出力out0~out7へ8並列で0c~63cの64個のデータをビットリバース順序で出力する(図示せず)。
まず、t0~t7の8サイクルにおけるデータ0a~63aの入力動作について詳細に説明する。
第1のデータ振り分け部202は、サイクルt0において、
in0から入力したデータ0aを205aに出力し、
in1から入力したデータ1aを205bに出力し、
in2から入力したデータ2aを205cに出力し、
in3から入力したデータ3aを205dに出力し、
in4から入力したデータ4aを205eに出力し、
in5から入力したデータ5aを205fに出力し、
in6から入力したデータ6aを205gに出力し、
in7から入力したデータ7aを205hに出力する。
in0から入力したデータ0aを205aに出力し、
in1から入力したデータ1aを205bに出力し、
in2から入力したデータ2aを205cに出力し、
in3から入力したデータ3aを205dに出力し、
in4から入力したデータ4aを205eに出力し、
in5から入力したデータ5aを205fに出力し、
in6から入力したデータ6aを205gに出力し、
in7から入力したデータ7aを205hに出力する。
サイクルt1において、
in0から入力したデータ8aを205bに出力し、
in1から入力したデータ9aを205cに出力し、
in2から入力したデータ10aを205dに出力し、
in3から入力したデータ11aを205eに出力し、
in4から入力したデータ12aを205fに出力し、
in5から入力したデータ13aを205gに出力し、
in6から入力したデータ14aを205hに出力し、
in7から入力したデータ15aを205aに出力する。
in0から入力したデータ8aを205bに出力し、
in1から入力したデータ9aを205cに出力し、
in2から入力したデータ10aを205dに出力し、
in3から入力したデータ11aを205eに出力し、
in4から入力したデータ12aを205fに出力し、
in5から入力したデータ13aを205gに出力し、
in6から入力したデータ14aを205hに出力し、
in7から入力したデータ15aを205aに出力する。
サイクルt2において、
in0から入力したデータ16aを205cに出力し、
in1から入力したデータ17aを205dに出力し、
in2から入力したデータ18aを205eに出力し、
in3から入力したデータ19aを205fに出力し、
in4から入力したデータ20aを205gに出力し、
in5から入力したデータ21aを205hに出力し、
in6から入力したデータ22aを205aに出力し、
in7から入力したデータ23aを205bに出力する。
in0から入力したデータ16aを205cに出力し、
in1から入力したデータ17aを205dに出力し、
in2から入力したデータ18aを205eに出力し、
in3から入力したデータ19aを205fに出力し、
in4から入力したデータ20aを205gに出力し、
in5から入力したデータ21aを205hに出力し、
in6から入力したデータ22aを205aに出力し、
in7から入力したデータ23aを205bに出力する。
サイクルt3において、
in0から入力したデータ24aを205dに出力し、
in1から入力したデータ25aを205eに出力し、
in2から入力したデータ26aを205fに出力し、
in3から入力したデータ27aを205gに出力し、
in4から入力したデータ28aを205hに出力し、
in5から入力したデータ29aを205aに出力し、
in6から入力したデータ30aを205bに出力し、
in7から入力したデータ31aを205cに出力する。
in0から入力したデータ24aを205dに出力し、
in1から入力したデータ25aを205eに出力し、
in2から入力したデータ26aを205fに出力し、
in3から入力したデータ27aを205gに出力し、
in4から入力したデータ28aを205hに出力し、
in5から入力したデータ29aを205aに出力し、
in6から入力したデータ30aを205bに出力し、
in7から入力したデータ31aを205cに出力する。
サイクルt4において、
in0から入力したデータ32aを205eに出力し、
in1から入力したデータ33aを205fに出力し、
in2から入力したデータ34aを205gに出力し、
in3から入力したデータ35aを205hに出力し、
in4から入力したデータ36aを205aに出力し、
in5から入力したデータ37aを205bに出力し、
in6から入力したデータ38aを205cに出力し、
in7から入力したデータ39aを205dに出力する。
in0から入力したデータ32aを205eに出力し、
in1から入力したデータ33aを205fに出力し、
in2から入力したデータ34aを205gに出力し、
in3から入力したデータ35aを205hに出力し、
in4から入力したデータ36aを205aに出力し、
in5から入力したデータ37aを205bに出力し、
in6から入力したデータ38aを205cに出力し、
in7から入力したデータ39aを205dに出力する。
サイクルt5において、
in0から入力したデータ40aを205fに出力し、
in1から入力したデータ41aを205gに出力し、
in2から入力したデータ42aを205hに出力し、
in3から入力したデータ43aを205aに出力し、
in4から入力したデータ44aを205bに出力し、
in5から入力したデータ45aを205cに出力し、
in6から入力したデータ46aを205dに出力し、
in7から入力したデータ47aを205eに出力する。
in0から入力したデータ40aを205fに出力し、
in1から入力したデータ41aを205gに出力し、
in2から入力したデータ42aを205hに出力し、
in3から入力したデータ43aを205aに出力し、
in4から入力したデータ44aを205bに出力し、
in5から入力したデータ45aを205cに出力し、
in6から入力したデータ46aを205dに出力し、
in7から入力したデータ47aを205eに出力する。
サイクルt6において、
in0から入力したデータ48aを205gに出力し、
in1から入力したデータ49aを205hに出力し、
in2から入力したデータ50aを205aに出力し、
in3から入力したデータ51aを205bに出力し、
in4から入力したデータ52aを205cに出力し、
in5から入力したデータ53aを205dに出力し、
in6から入力したデータ54aを205eに出力し、
in7から入力したデータ55aを205fに出力する。
in0から入力したデータ48aを205gに出力し、
in1から入力したデータ49aを205hに出力し、
in2から入力したデータ50aを205aに出力し、
in3から入力したデータ51aを205bに出力し、
in4から入力したデータ52aを205cに出力し、
in5から入力したデータ53aを205dに出力し、
in6から入力したデータ54aを205eに出力し、
in7から入力したデータ55aを205fに出力する。
サイクルt7において、
in0から入力したデータ56aを205hに出力し、
in1から入力したデータ57aを205aに出力し、
in2から入力したデータ58aを205bに出力し、
in3から入力したデータ59aを205cに出力し、
in4から入力したデータ60aを205dに出力し、
in5から入力したデータ61aを205eに出力し、
in6から入力したデータ62aを205fに出力し、
in7から入力したデータ63aを205gに出力する。
in0から入力したデータ56aを205hに出力し、
in1から入力したデータ57aを205aに出力し、
in2から入力したデータ58aを205bに出力し、
in3から入力したデータ59aを205cに出力し、
in4から入力したデータ60aを205dに出力し、
in5から入力したデータ61aを205eに出力し、
in6から入力したデータ62aを205fに出力し、
in7から入力したデータ63aを205gに出力する。
以上、説明したように、第1のデータ振り分け部202は、並列して同時に入力する8つのデータに対してローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。
同様に、第1のデータ振り分け部202は、t9~t15のサイクルにおいて、データ0b~63bに対して振り分け動作を行い、t16~t23のサイクルにおいて、データ0c~63cに対して振り分け動作を行う。
次に、書き込みアドレス制御部212、読み出しアドレス制御部213、及びそれらに制御されるRAM回路210a~210hの書き込み及び読み出し動作を説明する。
書き込みアドレス制御部212、及び読み出しアドレス制御部213は、入力する動作モード210を参照して動作を行う。ここで動作モード210は、CPUなど上位の制御回路(図示せず)から与えられる制御信号であり、第1または第2の動作モードのいずれかを示す。動作モード210は、64ポイントFFTのポイント数分のデータを入力する連続する8サイクルでは同一の動作モードを示し、8サイクルごとに異なる動作モードを示す。具体的には、図3において、動作モード210は、データ0a~63aが入力されるt0~t7の8サイクルでは、第1の動作モードである動作モード0を示す。データ0b~63bが入力されるt8~t15の8サイクルでは、第2の動作モードである動作モード1を示す。データ0c~63cが入力されるt16~t23の8サイクルでは、再び第1の動作モードである動作モード0を示す。以降、同様にして、動作モード210は、8サイクルごとに動作モード0または動作モード1を交互に示す信号である。
書き込みアドレス制御部212は、入力する動作モード210が、第1の動作モードである動作モード0の場合は、第1のアドレス順序に従って、書き込みアドレスを生成する。入力する動作モード210が、第2の動作モードである動作モード1の場合は、第2のアドレス順序に従って、書き込みアドレスを生成する。第1のアドレス順序は、RAM回路210a~210hのそれぞれのRAM回路に対して、常に異なるアドレスを指定することを特徴とするアドレス順序である。すなわち、第1の動作モードでは、207a~207hのそれぞれには、常に異なるアドレスが出力される。一方、第2のアドレス順序は、RAM回路210a~210hのそれぞれのRAM回路に対して、常に同じアドレスを指定することを特徴とするアドレス順序である。すなわち、第2の動作モードでは、207a~207hのそれぞれには、常に同じアドレスが出力される。
読み出しアドレス制御部213も、書き込みアドレス制御部212と同様の動作を行う。すなわち、読み出しアドレス制御部213は、入力する動作モード210が、第1の動作モードである動作モード0の場合は、第1のアドレス順序に従って、書き込みアドレスを生成する。入力する動作モード210が、第2の動作モードである動作モード1の場合は、第2のアドレス順序に従って、書き込みアドレスを生成する。
図3を参照して、書き込みアドレス制御部212、読み出しアドレス制御部213、及びRAM回路210a~210hの書き込み及び読み出し動作の具体例を説明する。
まず、t0~t7の8サイクルでは、データ0a~63aがRAM回路210a~210hに書き込まれる。t8~t15の8サイクルでは、RAM回路210a~210hに書き込まれたデータ0a~63aが読み出されるとともに、データ0b~63bがRAM回路210a~210hに書き込まれる。t16~t23の8サイクルでは、RAM回路210a~210hに書き込まれたデータ0b~63bが読み出されるとともに、データ0c~63cがRAM回路210a~210hに書き込まれる。なお、t0~t7の8サイクルにおいても、t0~t7の以前の8サイクルに書き込まれたデータの読み出し動作が行われるが、図示を省略している。
また、図3から明らかのようにRAM回路210a~210hの書き込みと読み出しは、同じサイクルでは常に同じアドレスに対して行われる。RAM回路210a~210hは、同じアドレスに対して同じタイミングで書き込みと読み出しが発生した場合、読み出しを優先するRAM回路である。そのため、RAM回路210a~210hでは、t8~t15のそれぞれのサイクルにおいて、データ0a~63aが読み出されたのち、データ0b~63bが書き込まれることになる。同様に、t16~t23のそれぞれのサイクルにおいて、データ0b~63bが読み出されたのち、データ0c~63cが書き込まれることになる。
次に、t0~t7のサイクルにおける、書き込みアドレス制御部212、及びそれに制御されるRAM回路210a~210hの書き込み動作の詳細を示す。
図3を参照すると、t0~t7の8サイクルでは、動作モード210が第1の動作モードである動作モード0を示しており、書き込みアドレス制御部212は、第1のアドレス順序に従って、書き込みアドレスを生成する。RAM回路210a~210hは、書き込みアドレス制御部212が生成した書き込みアドレスに、第1のデータ振り分け部202が207a~207hに出力するデータを書き込む。
具体的には、サイクルt0において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス0に、RAM回路210aはデータ0aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス1に、RAM回路210bはデータ1aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス2に、RAM回路210cはデータ2aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス3に、RAM回路210dはデータ3aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス4に、RAM回路210eはデータ4aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス5に、RAM回路210fはデータ5aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス6に、RAM回路210gはデータ6aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス7に、RAM回路210hはデータ7aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス0に、RAM回路210aはデータ0aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス1に、RAM回路210bはデータ1aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス2に、RAM回路210cはデータ2aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス3に、RAM回路210dはデータ3aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス4に、RAM回路210eはデータ4aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス5に、RAM回路210fはデータ5aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス6に、RAM回路210gはデータ6aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス7に、RAM回路210hはデータ7aを書き込む。
サイクルt1において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス7に、RAM回路210aはデータ15aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス0に、RAM回路210bはデータ8aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス1に、RAM回路210cはデータ9aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス2に、RAM回路210dはデータ10aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス3に、RAM回路210eはデータ11aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス4に、RAM回路210fはデータ12aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス5に、RAM回路210gはデータ13aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス6に、RAM回路210hはデータ14aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス7に、RAM回路210aはデータ15aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス0に、RAM回路210bはデータ8aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス1に、RAM回路210cはデータ9aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス2に、RAM回路210dはデータ10aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス3に、RAM回路210eはデータ11aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス4に、RAM回路210fはデータ12aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス5に、RAM回路210gはデータ13aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス6に、RAM回路210hはデータ14aを書き込む。
サイクルt2において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス6に、RAM回路210aはデータ22aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス7に、RAM回路210bはデータ23aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス0に、RAM回路210cはデータ16aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス1に、RAM回路210dはデータ17aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス2に、RAM回路210eはデータ18aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス3に、RAM回路210fはデータ19aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス4に、RAM回路210gはデータ20aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス5に、RAM回路210hはデータ21aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス6に、RAM回路210aはデータ22aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス7に、RAM回路210bはデータ23aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス0に、RAM回路210cはデータ16aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス1に、RAM回路210dはデータ17aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス2に、RAM回路210eはデータ18aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス3に、RAM回路210fはデータ19aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス4に、RAM回路210gはデータ20aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス5に、RAM回路210hはデータ21aを書き込む。
サイクルt3において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス5に、RAM回路210aはデータ29aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス6に、RAM回路210bはデータ30aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス7に、RAM回路210cはデータ31aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス0に、RAM回路210dはデータ24aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス1に、RAM回路210eはデータ25aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス2に、RAM回路210fはデータ26aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス3に、RAM回路210gはデータ27aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス4に、RAM回路210hはデータ28aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス5に、RAM回路210aはデータ29aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス6に、RAM回路210bはデータ30aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス7に、RAM回路210cはデータ31aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス0に、RAM回路210dはデータ24aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス1に、RAM回路210eはデータ25aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス2に、RAM回路210fはデータ26aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス3に、RAM回路210gはデータ27aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス4に、RAM回路210hはデータ28aを書き込む。
サイクルt4において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス4に、RAM回路210aはデータ36aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス5に、RAM回路210bはデータ37aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス6に、RAM回路210cはデータ38aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス7に、RAM回路210dはデータ39aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス0に、RAM回路210eはデータ32aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス1に、RAM回路210fはデータ33aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス2に、RAM回路210gはデータ34aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス3に、RAM回路210hはデータ35aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス4に、RAM回路210aはデータ36aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス5に、RAM回路210bはデータ37aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス6に、RAM回路210cはデータ38aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス7に、RAM回路210dはデータ39aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス0に、RAM回路210eはデータ32aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス1に、RAM回路210fはデータ33aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス2に、RAM回路210gはデータ34aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス3に、RAM回路210hはデータ35aを書き込む。
サイクルt5において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス3に、RAM回路210aはデータ43aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス4に、RAM回路210bはデータ44aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス5に、RAM回路210cはデータ45aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス6に、RAM回路210dはデータ46aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス7に、RAM回路210eはデータ47aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス0に、RAM回路210fはデータ40aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス1に、RAM回路210gはデータ41aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス2に、RAM回路210hはデータ42aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス3に、RAM回路210aはデータ43aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス4に、RAM回路210bはデータ44aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス5に、RAM回路210cはデータ45aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス6に、RAM回路210dはデータ46aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス7に、RAM回路210eはデータ47aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス0に、RAM回路210fはデータ40aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス1に、RAM回路210gはデータ41aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス2に、RAM回路210hはデータ42aを書き込む。
サイクルt6において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス2に、RAM回路210aはデータ50aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス3に、RAM回路210bはデータ51aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス4に、RAM回路210cはデータ52aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス5に、RAM回路210dはデータ53aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス6に、RAM回路210eはデータ54aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス7に、RAM回路210fはデータ55aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス0に、RAM回路210gはデータ48aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス1に、RAM回路210hはデータ49aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス2に、RAM回路210aはデータ50aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス3に、RAM回路210bはデータ51aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス4に、RAM回路210cはデータ52aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス5に、RAM回路210dはデータ53aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス6に、RAM回路210eはデータ54aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス7に、RAM回路210fはデータ55aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス0に、RAM回路210gはデータ48aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス1に、RAM回路210hはデータ49aを書き込む。
サイクルt7において、
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス1に、RAM回路210aはデータ57aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス2に、RAM回路210bはデータ58aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス3に、RAM回路210cはデータ59aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス4に、RAM回路210dはデータ60aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス5に、RAM回路210eはデータ61aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス6に、RAM回路210fはデータ62aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス7に、RAM回路210gはデータ63aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス0に、RAM回路210hはデータ56aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207aに出力したアドレス1に、RAM回路210aはデータ57aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207bに出力したアドレス2に、RAM回路210bはデータ58aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207cに出力したアドレス3に、RAM回路210cはデータ59aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207dに出力したアドレス4に、RAM回路210dはデータ60aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207eに出力したアドレス5に、RAM回路210eはデータ61aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207fに出力したアドレス6に、RAM回路210fはデータ62aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207gに出力したアドレス7に、RAM回路210gはデータ63aを書き込む。
書き込みアドレス制御部212が書き込みアドレス207hに出力したアドレス0に、RAM回路210hはデータ56aを書き込む。
以上説明したように、第1のアドレス順序では、RAM回路210a~210hの書き込みアドレスを指示する書き込みアドレス207a~207hに対して、互いに異なるアドレスが出力される。また、書き込みアドレス207a~207hのそれぞれには、t0~t7のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、書き込みアドレス207aには、t0~t7のサイクルにおいて、アドレス0~7の異なるアドレスが出力される。
次に、t8~t15のサイクルにおける、読み出しアドレス制御部213、及びそれに制御されるRAM回路210a~210hの読み出し動作の具体例を示す。
t0~t7のサイクルにおける書き込み動作の結果、サイクルt8の時点で、RAM回路210a~210hのそれぞれには、図4に示すようにデータ0a~63aが格納されている。
t8~t15の8サイクルでは、動作モード210が第2の動作モードである動作モード1を示しており、読み出しアドレス制御部213は、第2のアドレス順序に従って、読み出しアドレスを生成する。RAM回路210a~210hは、読み出しアドレス制御部213が生成した読み出しアドレスから、記憶していたデータを出力206a~206hに出力する。
具体的には、サイクルt8において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス0を出力する。
RAM回路210aは、アドレス0からデータ0aを読み出す。
RAM回路210bは、アドレス0からデータ8aを読み出す。
RAM回路210cは、アドレス0からデータ16aを読み出す。
RAM回路210dは、アドレス0からデータ24aを読み出す。
RAM回路210eは、アドレス0からデータ32aを読み出す。
RAM回路210fは、アドレス0からデータ40aを読み出す。
RAM回路210gは、アドレス0からデータ48aを読み出す。
RAM回路210hは、アドレス0からデータ56aを読み出す。
RAM回路210aは、アドレス0からデータ0aを読み出す。
RAM回路210bは、アドレス0からデータ8aを読み出す。
RAM回路210cは、アドレス0からデータ16aを読み出す。
RAM回路210dは、アドレス0からデータ24aを読み出す。
RAM回路210eは、アドレス0からデータ32aを読み出す。
RAM回路210fは、アドレス0からデータ40aを読み出す。
RAM回路210gは、アドレス0からデータ48aを読み出す。
RAM回路210hは、アドレス0からデータ56aを読み出す。
サイクルt9において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス1を出力する。
RAM回路210aは、アドレス1からデータ57aを読み出す。
RAM回路210bは、アドレス1からデータ1aを読み出す。
RAM回路210cは、アドレス1からデータ9aを読み出す。
RAM回路210dは、アドレス1からデータ17aを読み出す。
RAM回路210eは、アドレス1からデータ25aを読み出す。
RAM回路210fは、アドレス1からデータ33aを読み出す。
RAM回路210gは、アドレス1からデータ41aを読み出す。
RAM回路210hは、アドレス1からデータ49aを読み出す。
RAM回路210aは、アドレス1からデータ57aを読み出す。
RAM回路210bは、アドレス1からデータ1aを読み出す。
RAM回路210cは、アドレス1からデータ9aを読み出す。
RAM回路210dは、アドレス1からデータ17aを読み出す。
RAM回路210eは、アドレス1からデータ25aを読み出す。
RAM回路210fは、アドレス1からデータ33aを読み出す。
RAM回路210gは、アドレス1からデータ41aを読み出す。
RAM回路210hは、アドレス1からデータ49aを読み出す。
サイクルt10において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス2を出力する。
RAM回路210aは、アドレス2からデータ50aを読み出す。
RAM回路210bは、アドレス2からデータ58aを読み出す。
RAM回路210cは、アドレス2からデータ2aを読み出す。
RAM回路210dは、アドレス2からデータ10aを読み出す。
RAM回路210eは、アドレス2からデータ18aを読み出す。
RAM回路210fは、アドレス2からデータ26aを読み出す。
RAM回路210gは、アドレス2からデータ34aを読み出す。
RAM回路210hは、アドレス2からデータ42aを読み出す。
RAM回路210aは、アドレス2からデータ50aを読み出す。
RAM回路210bは、アドレス2からデータ58aを読み出す。
RAM回路210cは、アドレス2からデータ2aを読み出す。
RAM回路210dは、アドレス2からデータ10aを読み出す。
RAM回路210eは、アドレス2からデータ18aを読み出す。
RAM回路210fは、アドレス2からデータ26aを読み出す。
RAM回路210gは、アドレス2からデータ34aを読み出す。
RAM回路210hは、アドレス2からデータ42aを読み出す。
サイクルt11において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス3を出力する。
RAM回路210aは、アドレス3からデータ43aを読み出す。
RAM回路210bは、アドレス3からデータ51aを読み出す。
RAM回路210cは、アドレス3からデータ59aを読み出す。
RAM回路210dは、アドレス3からデータ3aを読み出す。
RAM回路210eは、アドレス3からデータ11aを読み出す。
RAM回路210fは、アドレス3からデータ19aを読み出す。
RAM回路210gは、アドレス3からデータ27aを読み出す。
RAM回路210hは、アドレス3からデータ35aを読み出す。
RAM回路210aは、アドレス3からデータ43aを読み出す。
RAM回路210bは、アドレス3からデータ51aを読み出す。
RAM回路210cは、アドレス3からデータ59aを読み出す。
RAM回路210dは、アドレス3からデータ3aを読み出す。
RAM回路210eは、アドレス3からデータ11aを読み出す。
RAM回路210fは、アドレス3からデータ19aを読み出す。
RAM回路210gは、アドレス3からデータ27aを読み出す。
RAM回路210hは、アドレス3からデータ35aを読み出す。
サイクルt12において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス4を出力する。
RAM回路210aは、アドレス4からデータ36aを読み出す。
RAM回路210bは、アドレス4からデータ44aを読み出す。
RAM回路210cは、アドレス4からデータ52aを読み出す。
RAM回路210dは、アドレス4からデータ60aを読み出す。
RAM回路210eは、アドレス4からデータ4aを読み出す。
RAM回路210fは、アドレス4からデータ12aを読み出す。
RAM回路210gは、アドレス4からデータ20aを読み出す。
RAM回路210hは、アドレス4からデータ28aを読み出す。
RAM回路210aは、アドレス4からデータ36aを読み出す。
RAM回路210bは、アドレス4からデータ44aを読み出す。
RAM回路210cは、アドレス4からデータ52aを読み出す。
RAM回路210dは、アドレス4からデータ60aを読み出す。
RAM回路210eは、アドレス4からデータ4aを読み出す。
RAM回路210fは、アドレス4からデータ12aを読み出す。
RAM回路210gは、アドレス4からデータ20aを読み出す。
RAM回路210hは、アドレス4からデータ28aを読み出す。
サイクルt13において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス5を出力する。
RAM回路210aは、アドレス5からデータ29aを読み出す。
RAM回路210bは、アドレス5からデータ37aを読み出す。
RAM回路210cは、アドレス5からデータ45aを読み出す。
RAM回路210dは、アドレス5からデータ53aを読み出す。
RAM回路210eは、アドレス5からデータ61aを読み出す。
RAM回路210fは、アドレス5からデータ5aを読み出す。
RAM回路210gは、アドレス5からデータ13aを読み出す。
RAM回路210hは、アドレス5からデータ21aを読み出す。
RAM回路210aは、アドレス5からデータ29aを読み出す。
RAM回路210bは、アドレス5からデータ37aを読み出す。
RAM回路210cは、アドレス5からデータ45aを読み出す。
RAM回路210dは、アドレス5からデータ53aを読み出す。
RAM回路210eは、アドレス5からデータ61aを読み出す。
RAM回路210fは、アドレス5からデータ5aを読み出す。
RAM回路210gは、アドレス5からデータ13aを読み出す。
RAM回路210hは、アドレス5からデータ21aを読み出す。
サイクルt14において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス6を出力する。
RAM回路210aは、アドレス6からデータ22aを読み出す。
RAM回路210bは、アドレス6からデータ30aを読み出す。
RAM回路210cは、アドレス6からデータ38aを読み出す。
RAM回路210dは、アドレス6からデータ46aを読み出す。
RAM回路210eは、アドレス6からデータ54aを読み出す。
RAM回路210fは、アドレス6からデータ62aを読み出す。
RAM回路210gは、アドレス6からデータ6aを読み出す。
RAM回路210hは、アドレス6からデータ14aを読み出す。
RAM回路210aは、アドレス6からデータ22aを読み出す。
RAM回路210bは、アドレス6からデータ30aを読み出す。
RAM回路210cは、アドレス6からデータ38aを読み出す。
RAM回路210dは、アドレス6からデータ46aを読み出す。
RAM回路210eは、アドレス6からデータ54aを読み出す。
RAM回路210fは、アドレス6からデータ62aを読み出す。
RAM回路210gは、アドレス6からデータ6aを読み出す。
RAM回路210hは、アドレス6からデータ14aを読み出す。
サイクルt15において、読み出しアドレス制御部213は、読み出しアドレス208a~208hのすべてにアドレス7を出力する。
RAM回路210aは、アドレス7からデータ15aを読み出す。
RAM回路210bは、アドレス7からデータ23aを読み出す。
RAM回路210cは、アドレス7からデータ31aを読み出す。
RAM回路210dは、アドレス7からデータ39aを読み出す。
RAM回路210eは、アドレス7からデータ47aを読み出す。
RAM回路210fは、アドレス7からデータ55aを読み出す。
RAM回路210gは、アドレス7からデータ63aを読み出す。
RAM回路210hは、アドレス7からデータ7aを読み出す。
RAM回路210aは、アドレス7からデータ15aを読み出す。
RAM回路210bは、アドレス7からデータ23aを読み出す。
RAM回路210cは、アドレス7からデータ31aを読み出す。
RAM回路210dは、アドレス7からデータ39aを読み出す。
RAM回路210eは、アドレス7からデータ47aを読み出す。
RAM回路210fは、アドレス7からデータ55aを読み出す。
RAM回路210gは、アドレス7からデータ63aを読み出す。
RAM回路210hは、アドレス7からデータ7aを読み出す。
以上説明したように、第2のアドレス順序では、RAM回路210a~210hの読み出しアドレスを指示する読み出しアドレス208a~208hに対して、すべて同じアドレスが出力される。また、読み出しアドレス208a~208hのそれぞれには、t8~t15のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、書き込みアドレス208aには、t8~t15のサイクルにおいて、アドレス0~7の異なるアドレスが出力される。
次に、t8~t15のサイクルにおける、書き込みアドレス制御部212、及びそれに制御されるRAM回路210a~210hの書き込み動作の具体例を示す。
t8~t15の8サイクルでは、動作モード210が第2の動作モードである動作モード1を示しており、書き込みアドレス制御部212は、第2のアドレス順序に従って、書き込みアドレスを生成する。RAM回路210a~210hは、書き込みアドレス制御部212が生成した書き込みアドレスに、第1のデータ振り分け部202が出力207a~207hに出力するデータを書き込む。
具体的には、サイクルt8において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス0を出力する。
RAM回路210aは、アドレス0にデータ0bを書き込む。
RAM回路210bは、アドレス0にデータ1bを書き込む。
RAM回路210cは、アドレス0にデータ2bを書き込む。
RAM回路210dは、アドレス0にデータ3bを書き込む。
RAM回路210eは、アドレス0にデータ4bを書き込む。
RAM回路210fは、アドレス0にデータ5bを書き込む。
RAM回路210gは、アドレス0にデータ6bを書き込む。
RAM回路210hは、アドレス0にデータ7bを書き込む。
RAM回路210aは、アドレス0にデータ0bを書き込む。
RAM回路210bは、アドレス0にデータ1bを書き込む。
RAM回路210cは、アドレス0にデータ2bを書き込む。
RAM回路210dは、アドレス0にデータ3bを書き込む。
RAM回路210eは、アドレス0にデータ4bを書き込む。
RAM回路210fは、アドレス0にデータ5bを書き込む。
RAM回路210gは、アドレス0にデータ6bを書き込む。
RAM回路210hは、アドレス0にデータ7bを書き込む。
サイクルt9において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス1を出力する。
RAM回路210aは、アドレス1にデータ15bを書き込む。
RAM回路210bは、アドレス1にデータ8bを書き込む。
RAM回路210cは、アドレス1にデータ9bを書き込む。
RAM回路210dは、アドレス1にデータ10bを書き込む。
RAM回路210eは、アドレス1にデータ11bを書き込む。
RAM回路210fは、アドレス1にデータ12bを書き込む。
RAM回路210gは、アドレス1にデータ13bを書き込む。
RAM回路210hは、アドレス1にデータ14bを書き込む。
RAM回路210aは、アドレス1にデータ15bを書き込む。
RAM回路210bは、アドレス1にデータ8bを書き込む。
RAM回路210cは、アドレス1にデータ9bを書き込む。
RAM回路210dは、アドレス1にデータ10bを書き込む。
RAM回路210eは、アドレス1にデータ11bを書き込む。
RAM回路210fは、アドレス1にデータ12bを書き込む。
RAM回路210gは、アドレス1にデータ13bを書き込む。
RAM回路210hは、アドレス1にデータ14bを書き込む。
サイクルt10において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス2を出力する。
RAM回路210aは、アドレス2にデータ22bを書き込む。
RAM回路210bは、アドレス2にデータ23bを書き込む。
RAM回路210cは、アドレス2にデータ16bを書き込む。
RAM回路210dは、アドレス2にデータ17bを書き込む。
RAM回路210eは、アドレス2にデータ18bを書き込む。
RAM回路210fは、アドレス2にデータ19bを書き込む。
RAM回路210gは、アドレス2にデータ20bを書き込む。
RAM回路210hは、アドレス2にデータ21bを書き込む。
RAM回路210aは、アドレス2にデータ22bを書き込む。
RAM回路210bは、アドレス2にデータ23bを書き込む。
RAM回路210cは、アドレス2にデータ16bを書き込む。
RAM回路210dは、アドレス2にデータ17bを書き込む。
RAM回路210eは、アドレス2にデータ18bを書き込む。
RAM回路210fは、アドレス2にデータ19bを書き込む。
RAM回路210gは、アドレス2にデータ20bを書き込む。
RAM回路210hは、アドレス2にデータ21bを書き込む。
サイクルt11において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス3を出力する。
RAM回路210aは、アドレス3にデータ29bを書き込む。
RAM回路210bは、アドレス3にデータ30bを書き込む。
RAM回路210cは、アドレス3にデータ31bを書き込む。
RAM回路210dは、アドレス3にデータ24bを書き込む。
RAM回路210eは、アドレス3にデータ25bを書き込む。
RAM回路210fは、アドレス3にデータ26bを書き込む。
RAM回路210gは、アドレス3にデータ27bを書き込む。
RAM回路210hは、アドレス3にデータ28bを書き込む。
RAM回路210aは、アドレス3にデータ29bを書き込む。
RAM回路210bは、アドレス3にデータ30bを書き込む。
RAM回路210cは、アドレス3にデータ31bを書き込む。
RAM回路210dは、アドレス3にデータ24bを書き込む。
RAM回路210eは、アドレス3にデータ25bを書き込む。
RAM回路210fは、アドレス3にデータ26bを書き込む。
RAM回路210gは、アドレス3にデータ27bを書き込む。
RAM回路210hは、アドレス3にデータ28bを書き込む。
サイクルt12において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス4を出力する。
RAM回路210aは、アドレス4にデータ36bを書き込む。
RAM回路210bは、アドレス4にデータ37bを書き込む。
RAM回路210cは、アドレス4にデータ38bを書き込む。
RAM回路210dは、アドレス4にデータ39bを書き込む。
RAM回路210eは、アドレス4にデータ32bを書き込む。
RAM回路210fは、アドレス4にデータ33bを書き込む。
RAM回路210gは、アドレス4にデータ34bを書き込む。
RAM回路210hは、アドレス4にデータ35bを書き込む。
RAM回路210aは、アドレス4にデータ36bを書き込む。
RAM回路210bは、アドレス4にデータ37bを書き込む。
RAM回路210cは、アドレス4にデータ38bを書き込む。
RAM回路210dは、アドレス4にデータ39bを書き込む。
RAM回路210eは、アドレス4にデータ32bを書き込む。
RAM回路210fは、アドレス4にデータ33bを書き込む。
RAM回路210gは、アドレス4にデータ34bを書き込む。
RAM回路210hは、アドレス4にデータ35bを書き込む。
サイクルt13において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス5を出力する。
RAM回路210aは、アドレス5にデータ43bを書き込む。
RAM回路210bは、アドレス5にデータ44bを書き込む。
RAM回路210cは、アドレス5にデータ45bを書き込む。
RAM回路210dは、アドレス5にデータ46bを書き込む。
RAM回路210eは、アドレス5にデータ47bを書き込む。
RAM回路210fは、アドレス5にデータ40bを書き込む。
RAM回路210gは、アドレス5にデータ41bを書き込む。
RAM回路210hは、アドレス5にデータ42bを書き込む。
RAM回路210aは、アドレス5にデータ43bを書き込む。
RAM回路210bは、アドレス5にデータ44bを書き込む。
RAM回路210cは、アドレス5にデータ45bを書き込む。
RAM回路210dは、アドレス5にデータ46bを書き込む。
RAM回路210eは、アドレス5にデータ47bを書き込む。
RAM回路210fは、アドレス5にデータ40bを書き込む。
RAM回路210gは、アドレス5にデータ41bを書き込む。
RAM回路210hは、アドレス5にデータ42bを書き込む。
サイクルt14において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス6を出力する。
RAM回路210aは、アドレス6にデータ50bを書き込む。
RAM回路210bは、アドレス6にデータ51bを書き込む。
RAM回路210cは、アドレス6にデータ52bを書き込む。
RAM回路210dは、アドレス6にデータ53bを書き込む。
RAM回路210eは、アドレス6にデータ54bを書き込む。
RAM回路210fは、アドレス6にデータ55bを書き込む。
RAM回路210gは、アドレス6にデータ48bを書き込む。
RAM回路210hは、アドレス6にデータ49bを書き込む。
RAM回路210aは、アドレス6にデータ50bを書き込む。
RAM回路210bは、アドレス6にデータ51bを書き込む。
RAM回路210cは、アドレス6にデータ52bを書き込む。
RAM回路210dは、アドレス6にデータ53bを書き込む。
RAM回路210eは、アドレス6にデータ54bを書き込む。
RAM回路210fは、アドレス6にデータ55bを書き込む。
RAM回路210gは、アドレス6にデータ48bを書き込む。
RAM回路210hは、アドレス6にデータ49bを書き込む。
サイクルt15において、書き込みアドレス制御部212が書き込みアドレス207a~207hのすべてにアドレス7を出力する。
RAM回路210aは、アドレス7にデータ57bを書き込む。
RAM回路210bは、アドレス7にデータ58bを書き込む。
RAM回路210cは、アドレス7にデータ59bを書き込む。
RAM回路210dは、アドレス7にデータ60bを書き込む。
RAM回路210eは、アドレス7にデータ61bを書き込む。
RAM回路210fは、アドレス7にデータ62bを書き込む。
RAM回路210gは、アドレス7にデータ63bを書き込む。
RAM回路210hは、アドレス7にデータ56bを書き込む。
RAM回路210aは、アドレス7にデータ57bを書き込む。
RAM回路210bは、アドレス7にデータ58bを書き込む。
RAM回路210cは、アドレス7にデータ59bを書き込む。
RAM回路210dは、アドレス7にデータ60bを書き込む。
RAM回路210eは、アドレス7にデータ61bを書き込む。
RAM回路210fは、アドレス7にデータ62bを書き込む。
RAM回路210gは、アドレス7にデータ63bを書き込む。
RAM回路210hは、アドレス7にデータ56bを書き込む。
以上説明したように、第2のアドレス順序では、RAM回路210a~210hの書き込みアドレスを指示する書き込みアドレス207a~207hに対して、すべて同じアドレスが出力される。また、書き込みアドレス207a~207hのそれぞれには、t8~t15のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、書き込みアドレス207aには、t0~t7のサイクルにおいて、アドレス0~7の異なるアドレスが出力される。
次に、t16~t23のサイクルにおける、読み出しアドレス制御部213、及びそれに制御されるRAM回路210a~210hの読み出し動作の具体例を示す。
t8~t15のサイクルにおける書き込み動作の結果、サイクルt16の時点で、RAM回路210a~210hには図5に示すようにデータ0b~63bが格納されている。
t16~t23の8サイクルでは、動作モード210が第1の動作モードである動作モード0を示しており、読み出しアドレス制御部213は、第1のアドレス順序に従って、読み出しアドレスを生成する。RAM回路210a~210hは、読み出しアドレス制御部213が生成した読み出しアドレスから、記憶していたデータを出力206a~206hに出力する。
具体的には、サイクルt16において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス0から、RAM回路210aはデータ0bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス1から、RAM回路210bはデータ8bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス2から、RAM回路210cはデータ16bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス3から、RAM回路210dはデータ24bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス4から、RAM回路210eはデータ32bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス5から、RAM回路210fはデータ40bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス6から、RAM回路210gはデータ48bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス7から、RAM回路210hはデータ56bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス0から、RAM回路210aはデータ0bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス1から、RAM回路210bはデータ8bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス2から、RAM回路210cはデータ16bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス3から、RAM回路210dはデータ24bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス4から、RAM回路210eはデータ32bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス5から、RAM回路210fはデータ40bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス6から、RAM回路210gはデータ48bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス7から、RAM回路210hはデータ56bを読み出す。
サイクルt17において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス7から、RAM回路210aはデータ57bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス0から、RAM回路210bはデータ1bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス1から、RAM回路210cはデータ9bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス2から、RAM回路210dはデータ17bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス3から、RAM回路210eはデータ25bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス4から、RAM回路210fはデータ33bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス5から、RAM回路210gはデータ41bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス6から、RAM回路210hはデータ49bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス7から、RAM回路210aはデータ57bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス0から、RAM回路210bはデータ1bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス1から、RAM回路210cはデータ9bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス2から、RAM回路210dはデータ17bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス3から、RAM回路210eはデータ25bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス4から、RAM回路210fはデータ33bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス5から、RAM回路210gはデータ41bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス6から、RAM回路210hはデータ49bを読み出す。
サイクルt18において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス6から、RAM回路210aはデータ50bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス7から、RAM回路210bはデータ58bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス0から、RAM回路210cはデータ2bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス1から、RAM回路210dはデータ10bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス2から、RAM回路210eはデータ18bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス3から、RAM回路210fはデータ26bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス4から、RAM回路210gはデータ34bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス5から、RAM回路210hはデータ42bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス6から、RAM回路210aはデータ50bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス7から、RAM回路210bはデータ58bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス0から、RAM回路210cはデータ2bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス1から、RAM回路210dはデータ10bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス2から、RAM回路210eはデータ18bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス3から、RAM回路210fはデータ26bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス4から、RAM回路210gはデータ34bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス5から、RAM回路210hはデータ42bを読み出す。
サイクルt19において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス5から、RAM回路210aはデータ43bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス6から、RAM回路210bはデータ51bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス7から、RAM回路210cはデータ59bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス0から、RAM回路210dはデータ3bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス1から、RAM回路210eはデータ11bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス2から、RAM回路210fはデータ19bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス3から、RAM回路210gはデータ27bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス4から、RAM回路210hはデータ35bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス5から、RAM回路210aはデータ43bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス6から、RAM回路210bはデータ51bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス7から、RAM回路210cはデータ59bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス0から、RAM回路210dはデータ3bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス1から、RAM回路210eはデータ11bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス2から、RAM回路210fはデータ19bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス3から、RAM回路210gはデータ27bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス4から、RAM回路210hはデータ35bを読み出す。
サイクルt20において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス4から、RAM回路210aはデータ36bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス5から、RAM回路210bはデータ44bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス6から、RAM回路210cはデータ52bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス7から、RAM回路210dはデータ60bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス0から、RAM回路210eはデータ4bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス1から、RAM回路210fはデータ12bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス2から、RAM回路210gはデータ20bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス3から、RAM回路210hはデータ28bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス4から、RAM回路210aはデータ36bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス5から、RAM回路210bはデータ44bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス6から、RAM回路210cはデータ52bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス7から、RAM回路210dはデータ60bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス0から、RAM回路210eはデータ4bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス1から、RAM回路210fはデータ12bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス2から、RAM回路210gはデータ20bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス3から、RAM回路210hはデータ28bを読み出す。
サイクルt21において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス3から、RAM回路210aはデータ29bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス4から、RAM回路210bはデータ37bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス5から、RAM回路210cはデータ45bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス6から、RAM回路210dはデータ53bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス7から、RAM回路210eはデータ61bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス0から、RAM回路210fはデータ5bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス1から、RAM回路210gはデータ13bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス2から、RAM回路210hはデータ21bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス3から、RAM回路210aはデータ29bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス4から、RAM回路210bはデータ37bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス5から、RAM回路210cはデータ45bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス6から、RAM回路210dはデータ53bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス7から、RAM回路210eはデータ61bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス0から、RAM回路210fはデータ5bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス1から、RAM回路210gはデータ13bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス2から、RAM回路210hはデータ21bを読み出す。
サイクルt22において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス2から、RAM回路210aはデータ22bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス3から、RAM回路210bはデータ30bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス4から、RAM回路210cはデータ38bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス5から、RAM回路210dはデータ46bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス6から、RAM回路210eはデータ54bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス7から、RAM回路210fはデータ62bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス0から、RAM回路210gはデータ6bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス1から、RAM回路210hはデータ14bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス2から、RAM回路210aはデータ22bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス3から、RAM回路210bはデータ30bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス4から、RAM回路210cはデータ38bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス5から、RAM回路210dはデータ46bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス6から、RAM回路210eはデータ54bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス7から、RAM回路210fはデータ62bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス0から、RAM回路210gはデータ6bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス1から、RAM回路210hはデータ14bを読み出す。
サイクルt23において、
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス1から、RAM回路210aはデータ15bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス2から、RAM回路210bはデータ23bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス3から、RAM回路210cはデータ31bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス4から、RAM回路210dはデータ39bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス5から、RAM回路210eはデータ47bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス6から、RAM回路210fはデータ55bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス7から、RAM回路210gはデータ63bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス0から、RAM回路210hはデータ7bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208aに出力したアドレス1から、RAM回路210aはデータ15bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208bに出力したアドレス2から、RAM回路210bはデータ23bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208cに出力したアドレス3から、RAM回路210cはデータ31bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208dに出力したアドレス4から、RAM回路210dはデータ39bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208eに出力したアドレス5から、RAM回路210eはデータ47bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208fに出力したアドレス6から、RAM回路210fはデータ55bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208gに出力したアドレス7から、RAM回路210gはデータ63bを読み出す。
読み出しアドレス制御部213が読み出しアドレス208hに出力したアドレス0から、RAM回路210hはデータ7bを読み出す。
以上説明したように、第1のアドレス順序では、RAM回路210a~210hの読み出しアドレスを指示する読み出しアドレス208a~208hに対して、互いに異なるアドレスが出力される。また、読み出しアドレス208a~208hのそれぞれには、t16~t23のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、読み出しアドレス208aには、t16~t23のサイクルにおいて、アドレス0~7の異なるアドレスが出力される。
次に、t8~t15のサイクルにおける、第2のデータ振り分け部203の動作について説明する。
具体的には、サイクルt8において、
206aから入力したデータ0aをout0に出力し、
206bから入力したデータ8aをout1に出力し、
206cから入力したデータ16aをout2に出力し、
206dから入力したデータ24aをout3に出力し、
206eから入力したデータ32aをout4に出力し、
206fから入力したデータ40aをout5に出力し、
206gから入力したデータ48aをout6に出力し、
206hから入力したデータ56aをout7に出力する。
206aから入力したデータ0aをout0に出力し、
206bから入力したデータ8aをout1に出力し、
206cから入力したデータ16aをout2に出力し、
206dから入力したデータ24aをout3に出力し、
206eから入力したデータ32aをout4に出力し、
206fから入力したデータ40aをout5に出力し、
206gから入力したデータ48aをout6に出力し、
206hから入力したデータ56aをout7に出力する。
サイクルt9において、
206aから入力したデータ57aをout7に出力し、
206bから入力したデータ1aをout0に出力し、
206cから入力したデータ9aをout1に出力し、
206dから入力したデータ17aをout2に出力し、
206eから入力したデータ25aをout3に出力し、
206fから入力したデータ33aをout4に出力し、
206gから入力したデータ41aをout5に出力し、
206hから入力したデータ49aをout6に出力する。
206aから入力したデータ57aをout7に出力し、
206bから入力したデータ1aをout0に出力し、
206cから入力したデータ9aをout1に出力し、
206dから入力したデータ17aをout2に出力し、
206eから入力したデータ25aをout3に出力し、
206fから入力したデータ33aをout4に出力し、
206gから入力したデータ41aをout5に出力し、
206hから入力したデータ49aをout6に出力する。
サイクルt10において、
206aから入力したデータ50aをout6に出力し、
206bから入力したデータ58aをout7に出力し、
206cから入力したデータ2aをout0に出力し、
206dから入力したデータ10aをout1に出力し、
206eから入力したデータ18aをout2に出力し、
206fから入力したデータ26aをout3に出力し、
206gから入力したデータ34aをout4に出力し、
206hから入力したデータ42aをout5に出力する。
206aから入力したデータ50aをout6に出力し、
206bから入力したデータ58aをout7に出力し、
206cから入力したデータ2aをout0に出力し、
206dから入力したデータ10aをout1に出力し、
206eから入力したデータ18aをout2に出力し、
206fから入力したデータ26aをout3に出力し、
206gから入力したデータ34aをout4に出力し、
206hから入力したデータ42aをout5に出力する。
サイクルt11において、
206aから入力したデータ43aをout5に出力し、
206bから入力したデータ51aをout6に出力し、
206cから入力したデータ59aをout7に出力し、
206dから入力したデータ3aをout0に出力し、
206eから入力したデータ11aをout1に出力し、
206fから入力したデータ19aをout2に出力し、
206gから入力したデータ27aをout3に出力し、
206hから入力したデータ35aをout4に出力する。
206aから入力したデータ43aをout5に出力し、
206bから入力したデータ51aをout6に出力し、
206cから入力したデータ59aをout7に出力し、
206dから入力したデータ3aをout0に出力し、
206eから入力したデータ11aをout1に出力し、
206fから入力したデータ19aをout2に出力し、
206gから入力したデータ27aをout3に出力し、
206hから入力したデータ35aをout4に出力する。
サイクルt12において、
206aから入力したデータ36aをout4に出力し、
206bから入力したデータ44aをout5に出力し、
206cから入力したデータ52aをout6に出力し、
206dから入力したデータ60aをout7に出力し、
206eから入力したデータ4aをout0に出力し、
206fから入力したデータ12aをout1に出力し、
206gから入力したデータ20aをout2に出力し、
206hから入力したデータ28aをout3に出力する。
206aから入力したデータ36aをout4に出力し、
206bから入力したデータ44aをout5に出力し、
206cから入力したデータ52aをout6に出力し、
206dから入力したデータ60aをout7に出力し、
206eから入力したデータ4aをout0に出力し、
206fから入力したデータ12aをout1に出力し、
206gから入力したデータ20aをout2に出力し、
206hから入力したデータ28aをout3に出力する。
サイクルt13において、
206aから入力したデータ29aをout3に出力し、
206bから入力したデータ37aをout4に出力し、
206cから入力したデータ45aをout5に出力し、
206dから入力したデータ53aをout6に出力し、
206eから入力したデータ61aをout7に出力し、
206fから入力したデータ5aをout0に出力し、
206gから入力したデータ13aをout1に出力し、
206hから入力したデータ21aをout2に出力する。
206aから入力したデータ29aをout3に出力し、
206bから入力したデータ37aをout4に出力し、
206cから入力したデータ45aをout5に出力し、
206dから入力したデータ53aをout6に出力し、
206eから入力したデータ61aをout7に出力し、
206fから入力したデータ5aをout0に出力し、
206gから入力したデータ13aをout1に出力し、
206hから入力したデータ21aをout2に出力する。
サイクルt14において、
206aから入力したデータ22aをout2に出力し、
206bから入力したデータ30aをout3に出力し、
206cから入力したデータ38aをout4に出力し、
206dから入力したデータ46aをout5に出力し、
206eから入力したデータ54aをout6に出力し、
206fから入力したデータ62aをout7に出力し、
206gから入力したデータ6aをout0に出力し、
206hから入力したデータ14aをout1に出力する。
206aから入力したデータ22aをout2に出力し、
206bから入力したデータ30aをout3に出力し、
206cから入力したデータ38aをout4に出力し、
206dから入力したデータ46aをout5に出力し、
206eから入力したデータ54aをout6に出力し、
206fから入力したデータ62aをout7に出力し、
206gから入力したデータ6aをout0に出力し、
206hから入力したデータ14aをout1に出力する。
サイクルt15において、
206aから入力したデータ15aをout1に出力し、
206bから入力したデータ23aをout2に出力し、
206cから入力したデータ31aをout3に出力し、
206dから入力したデータ39aをout4に出力し、
206eから入力したデータ47aをout5に出力し、
206fから入力したデータ55aをout6に出力し、
206gから入力したデータ63aをout7に出力し、
206hから入力したデータ7aをout0に出力する。
206aから入力したデータ15aをout1に出力し、
206bから入力したデータ23aをout2に出力し、
206cから入力したデータ31aをout3に出力し、
206dから入力したデータ39aをout4に出力し、
206eから入力したデータ47aをout5に出力し、
206fから入力したデータ55aをout6に出力し、
206gから入力したデータ63aをout7に出力し、
206hから入力したデータ7aをout0に出力する。
以上説明したように、第2のデータ振り分け部203によるデータの振り分け処理の結果、t8~t15のサイクルにおいて、out0~7にデータ0a~63aがビットリバース順序で出力される。
第2のデータ振り分け部203は、第1のデータ振り分け部202と同様に、並列して同時に入力する8つのデータに対してローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。
第2のデータ振り分け部203は、t16~t23のサイクルにおいても、データ0b~63bに対して同様の振り分け動作を行い、out0~7にデータ0b~63bがビットリバース順序で出力される。
以上、逐次順序からビットリバース順序への並べ替えを例に、データ並べ替え処理を説明したが、ビットリバース順序から逐次順序への並べ替えについても同様に実現することができる。
以上のように、本実施形態では、FFT装置10が備えるデータ並べ替え処理部200は、バタフライ演算において必要なデータの並べ替え処理である、「逐次順序」から、「ビットリバース順序」への並べ替えや、「ビットリバース順序」から「逐次順序」への並べ替えを、第1及び第2の2種類のアドレス順序によりRAM回路210a~210hの書き込み及び読み出し動作を制御することにより実現する。例えば、RAM回路に第1のアドレス順序で書き込みを行ったデータは、第2のアドレス順序で読み出しを行い、第2のアドレス順序で書き込みを行ったデータは、第1のアドレス順序で読み出しを行う。
その結果、本実施形態では、連続して入力される信号のFFT処理を行う場合でも、FFTのポイント数に等しい記憶容量のRAM回路でデータ並べ替え処理を実現することができる。従って、データ並べ替え処理に少なくともFFTのポイント数分の2倍の記憶容量を必要とする従来技術に比べて、RAM回路の記憶容量を1/2にすることができるため、RAM回路の回路規模や消費電力を小さくすることができる。その結果、データ並べ替え処理部を含むFFT装置全体の回路規模や消費電力を小さくすることができる。
また以上の動作は、あらかじめ動作の手順を記録したプログラムを実行することにより、実現することができる。このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2019年3月26日に出願された日本出願特願2019-058457を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10 FFT装置
11、12、13 データ並べ替え処理部
21、22 バタフライ演算処理部
31 ひねり乗算処理部
200 データ並べ替え処理部
202 第1のデータ振り分け部
203 第2のデータ振り分け部
210a~210h RAM回路
212 書き込みアドレス制御部
213 読み出しアドレス制御部
500 データフロー
501 データ並べ替え処理
502、503 バタフライ演算処理
504 ひねり乗算処理
505a~505h 部分データフロー
11、12、13 データ並べ替え処理部
21、22 バタフライ演算処理部
31 ひねり乗算処理部
200 データ並べ替え処理部
202 第1のデータ振り分け部
203 第2のデータ振り分け部
210a~210h RAM回路
212 書き込みアドレス制御部
213 読み出しアドレス制御部
500 データフロー
501 データ並べ替え処理
502、503 バタフライ演算処理
504 ひねり乗算処理
505a~505h 部分データフロー
Claims (7)
- 第1の順序で入力した複数のデータを第2の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置において、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第1または第2のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第2のアドレス順序に従って前記記憶手段から読み出しを行い、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第1のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするデジタルフィルタ装置。 - 前記データ並べ替え処理手段は、連続して処理を行う第1及び第2のデータ並べ替え処理において、
前記第1のデータ並べ替え処理において、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第2のアドレス順序に従って前記記憶手段から読み出しを行った場合は、前記第2のデータ並べ替え処理において、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第1のアドレス順序に従って前記記憶手段から読み出しを行い、
前記第1のデータ並べ替え処理において、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第1のアドレス順序に従って前記記憶手段から読み出しを行った場合は、前記第2のデータ並べ替え処理において、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第2のアドレス順序に従って前記記憶手段から読み出しを行う、
ことを特徴とする請求項1に記載のデジタルフィルタ装置。 - 前記記憶手段は複数の記憶回路を含み、
前記第1のアドレス順序は、前記複数の記憶回路のそれぞれに対して、常に異なるアドレスを指定するアドレス順序であり、
前記第2のアドレス順序は、前記複数の記憶回路のそれぞれに対して、常に同じアドレスを指定するアドレス順序である、
ことを特徴とする請求項1または請求項2に記載のデジタルフィルタ装置。 - データの並べ替えを行う第1のデータ並べ替え処理手段と、
前記第1のデータ並べ替え処理手段で並べ替えられたデータに対してバタフライ演算を行う第1のバタフライ演算処理手段と、
前記第1のバタフライ演算処理手段で処理されたデータを並び替える第2のデータ並べ替え処理手段と、
前記第2のデータ並べ替え処理手段で並び替えられたデータに対してひねり乗算を行うひねり乗算処理手段と、
前記ひねり乗算処理手段で処理されたデータに対してバタフライ演算を行う第2のバタフライ演算処理手段と、
前記第2のバタフライ演算処理手段で処理されたデータを並び替える第3のデータ並べ替え処理手段と、を備える
ことを特徴とする、請求項1~3のいずれか一項に記載のデジタルフィルタ装置。 - 前記第1のデータ並べ替え処理手段と、前記第1のバタフライ演算処理手段と、前記第2のデータ並べ替え処理手段と、前記ひねり乗算処理手段と、前記第2のバタフライ演算処理手段と、前記第3のデータ並べ替え処理手段の処理を、パイプライン処理により実行する
ことを特徴とする、請求項4に記載のデジタルフィルタ装置。 - 第1の順序で入力した複数のデータを第2の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置の動作方法であって、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第1または第2のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第2のアドレス順序に従って前記記憶手段から読み出しを行い、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第1のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするデジタルフィルタ装置の動作方法。 - 第1の順序で入力した複数のデータを第2の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置を動作させるプログラムを格納した非一時的なコンピュータ可読媒体であって、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第1または第2のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第1のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第2のアドレス順序に従って前記記憶手段から読み出しを行い、前記第2のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第1のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするプログラムを格納した非一時的なコンピュータ可読媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021508204A JP7284883B2 (ja) | 2019-03-26 | 2020-02-10 | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラム |
US17/439,902 US20220188014A1 (en) | 2019-03-26 | 2020-02-10 | Digital filter device, operation method for digital filter device, and non-transitory computer-readable medium storing program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-058457 | 2019-03-26 | ||
JP2019058457 | 2019-03-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020195239A1 true WO2020195239A1 (ja) | 2020-10-01 |
Family
ID=72610843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/005018 WO2020195239A1 (ja) | 2019-03-26 | 2020-02-10 | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220188014A1 (ja) |
JP (1) | JP7284883B2 (ja) |
WO (1) | WO2020195239A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014115540A1 (ja) * | 2013-01-23 | 2014-07-31 | 日本電気株式会社 | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム記憶媒体 |
WO2019031418A1 (ja) * | 2017-08-07 | 2019-02-14 | 日本電気株式会社 | 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム記録媒体 |
-
2020
- 2020-02-10 JP JP2021508204A patent/JP7284883B2/ja active Active
- 2020-02-10 US US17/439,902 patent/US20220188014A1/en active Pending
- 2020-02-10 WO PCT/JP2020/005018 patent/WO2020195239A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014115540A1 (ja) * | 2013-01-23 | 2014-07-31 | 日本電気株式会社 | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム記憶媒体 |
WO2019031418A1 (ja) * | 2017-08-07 | 2019-02-14 | 日本電気株式会社 | 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2020195239A1 (ja) | 2021-12-23 |
JP7284883B2 (ja) | 2023-06-01 |
US20220188014A1 (en) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9934199B2 (en) | Digital filter device, digital filtering method, and storage medium having digital filter program stored thereon | |
CN102652315B (zh) | 信息处理设备及其控制方法 | |
JP6256348B2 (ja) | 高速フーリエ変換回路、高速フーリエ変換処理方法及び高速フーリエ変換処理プログラム | |
CN104349260A (zh) | 低功耗wola滤波器组及其综合阶段电路 | |
JP6358096B2 (ja) | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム | |
US7467053B2 (en) | Three-dimensional fourier transform processing method for shared memory scalar parallel computer | |
WO2020195239A1 (ja) | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 | |
JP4755610B2 (ja) | 高速フーリエ変換装置 | |
JP6930607B2 (ja) | 信号処理装置、方法、プログラムと記録媒体 | |
WO2015087495A1 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 | |
KR20050081217A (ko) | 메모리를 반감하는 고속 푸리에 변환 프로세서 및 그 방법 | |
JP6977883B2 (ja) | 信号処理装置、方法、プログラム | |
JP6943283B2 (ja) | 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム | |
JP6992745B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびデジタルフィルタ処理プログラム | |
JP6451647B2 (ja) | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム | |
WO2015045310A1 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびプログラムを格納する記憶媒体 | |
US7996453B1 (en) | Methods and apparatus for providing an efficient FFT memory addressing and storage scheme | |
US20230289397A1 (en) | Fast fourier transform device, digital filtering device, fast fourier transform method, and non-transitory computer-readable medium | |
CN114116012B (zh) | 基于混洗操作的fft码位反序算法向量化实现方法及装置 | |
US20220309123A1 (en) | Fast fourier transform device and digital filter device | |
WO2021193947A1 (ja) | デジタルフィルタ装置 | |
Dusel | Balanced parabolic quotients and branching rules for Demazure crystals | |
JP3943224B2 (ja) | ウェーブレット変換のベクトル処理を行う処理装置および方法 | |
JP2024027962A (ja) | インタリーブ回路および通信装置 | |
TWI390416B (zh) | 快速傅立葉變換/反快速傅立葉變換運算核之裝置 |
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: 20778883 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021508204 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20778883 Country of ref document: EP Kind code of ref document: A1 |