WO2021060059A1 - 生成装置、生成方法およびプログラム - Google Patents

生成装置、生成方法およびプログラム Download PDF

Info

Publication number
WO2021060059A1
WO2021060059A1 PCT/JP2020/034786 JP2020034786W WO2021060059A1 WO 2021060059 A1 WO2021060059 A1 WO 2021060059A1 JP 2020034786 W JP2020034786 W JP 2020034786W WO 2021060059 A1 WO2021060059 A1 WO 2021060059A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
output
circuit
group
arithmetic circuits
Prior art date
Application number
PCT/JP2020/034786
Other languages
English (en)
French (fr)
Inventor
満徳 勝
象一 関口
吉田 賢司
Original Assignee
太陽誘電株式会社
株式会社Trl
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 太陽誘電株式会社, 株式会社Trl filed Critical 太陽誘電株式会社
Publication of WO2021060059A1 publication Critical patent/WO2021060059A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level

Definitions

  • the present invention relates to a generator, a generator and a program.
  • FPGA Field Programmable Gate Array
  • a semiconductor device called FPGA Field Programmable Gate Array
  • FPGAs are suitable for incorporation into low volume equipment.
  • FPGA includes various circuits such as logic circuits, wirings, and switches, the structure is complicated, and it cannot be realized unless it is a semiconductor having a multi-layer wiring structure.
  • a programmable semiconductor device having a plurality of memories such as SRAM (Static Random Access Memory) called MRLD (registered trademark) or MPLD (registered trademark) is known.
  • SRAM Static Random Access Memory
  • MRLD Static Random Access Memory
  • MPLD registered trademark
  • a plurality of memories are arranged so as to form a plurality of columns. Then, in this semiconductor device, the columns are connected so that the output data of the memory of the first row is given to the address of the memory of the second row.
  • This semiconductor device stores data corresponding to the output value of the truth table data in each of a plurality of memories at an address corresponding to the input value of the truth table data generated in advance. As a result, each of the plurality of memories can output the output data obtained by performing the logical operation according to the truth table data when the input data is given to the address.
  • this semiconductor device when this semiconductor device receives the target data to be calculated from another information processing device or the like, the target data is given to the address of the memory at the head of the column.
  • the plurality of memories execute the logical operation corresponding to the truth table data in order for each column. Therefore, the semiconductor device called MRLD (registered trademark) can execute arithmetic processing according to a pre-programmed logic circuit as a whole.
  • the logic circuit includes a D-type flip-flop that outputs data synchronized with the clock
  • this semiconductor device realizes the D-type flip-flop separately from the memory that stores the truth table data. Had to be equipped with the hardware circuit of.
  • the generator that generates the configuration data to be stored in the memory uses the D-type flip-flop as a hardware circuit separate from the memory. The logic circuit had to be wired and arranged so that it could be realized.
  • the present invention has been made in view of the above, and is a generation device, a generation method, and a generation device capable of easily causing a programmable data processing device to perform data processing corresponding to a logic circuit including a D-type flip-flop.
  • the purpose is to provide a program.
  • the generator executes data processing corresponding to a logic circuit and sets the data processing for a programmable data processing device.
  • the data processing device includes a plurality of arithmetic circuits. When each of the plurality of arithmetic circuits stores the configuration data corresponding to each of the plurality of addresses and acquires input data for designating any one of the plurality of addresses, the input is described. It has a memory for outputting the configuration data stored in correspondence with the data as output data.
  • the generation device analyzes the description data describing the logic circuit, detects the D-type flip-flop included in the logic circuit, and buffers the D-type flip-flop included in the description data. It is provided with a replacement unit for replacing with, and a mapping unit for converting the description data after the replacement process into the configuration data.
  • a programmable data processing device can easily execute data processing corresponding to a logic circuit including a D-type flip-flop.
  • FIG. 1 is a diagram showing a configuration of an information processing device.
  • FIG. 2 is a diagram showing a mode transition of the information processing apparatus.
  • FIG. 3 is a diagram showing a configuration of a data processing device according to the first example.
  • FIG. 4 is a diagram showing a configuration of an arithmetic circuit according to the first example.
  • FIG. 5 is a diagram showing a memory configuration.
  • FIG. 6 is a diagram showing an example of data stored in the memory.
  • FIG. 7 is a diagram showing an example of a flow of arithmetic processing by the data processing apparatus according to the first example.
  • FIG. 8 is a diagram showing a configuration of a data processing device according to the second example.
  • FIG. 1 is a diagram showing a configuration of an information processing device.
  • FIG. 2 is a diagram showing a mode transition of the information processing apparatus.
  • FIG. 3 is a diagram showing a configuration of a data processing device according to the first example.
  • FIG. 4 is a
  • FIG. 9 is a diagram showing a configuration of an arithmetic circuit according to a second example.
  • FIG. 10 is a diagram showing an example of a flow of arithmetic processing by the data processing apparatus according to the second example.
  • FIG. 11 is a diagram showing a generator and an information processing device according to the embodiment.
  • FIG. 12 is a diagram showing a configuration of a generator according to an embodiment.
  • FIG. 13 is a diagram showing an example of a counter circuit described by descriptive data.
  • FIG. 14 is a diagram showing an example of a counter circuit after the replacement process.
  • FIG. 15 is a diagram showing an example of a counter circuit arranged in the data processing device.
  • FIG. 16 is a diagram showing an example of data written in the memory of the arithmetic circuit.
  • FIG. 17 is a diagram showing a hardware configuration of the generator.
  • the generation device 110 executes data processing corresponding to the logic circuit, and generates configuration data for setting the data processing for the programmable data processing device 20.
  • the information processing device 10 including the data processing device 20 in which the configuration data is set will be described.
  • FIG. 1 is a diagram showing a configuration of an information processing device 10 according to an embodiment.
  • the information processing device 10 is a semiconductor device including one or more semiconductor chips.
  • the information processing device 10 includes a processor 11, a main memory 12, a non-volatile memory 13, an analog input / output circuit 14, an interface circuit 15, and a data processing device 20.
  • the processor 11, the main memory 12, the non-volatile memory 13, the analog input / output circuit 14, and the interface circuit 15 are connected by a bus.
  • the processor 11 executes a program such as a CPU (Central Processing Unit) to execute information processing.
  • the processor 11 reads a program from the non-volatile memory 13 and executes information processing using the main memory 12 as a work area. Further, the processor 11 may acquire the program via the interface circuit 15.
  • a program such as a CPU (Central Processing Unit) to execute information processing.
  • the processor 11 reads a program from the non-volatile memory 13 and executes information processing using the main memory 12 as a work area. Further, the processor 11 may acquire the program via the interface circuit 15.
  • the main memory 12 is a volatile storage medium such as a DRAM (Dynamic Random Access Memory).
  • the main memory 12 functions as a work area of the processor 11.
  • the non-volatile memory 13 stores the program executed by the processor 11 and various setting information in a non-rewritable manner. Further, the non-volatile memory 13 stores the configuration data set in the data processing device 20.
  • the analog input / output circuit 14 acquires an analog sensor signal output from a sensor or the like and converts it into analog digital.
  • the analog input / output circuit 14 supplies the sensor signal converted into a digital signal to the processor 11. Further, the analog input / output circuit 14 outputs an analog signal to the outside according to the control from the processor 11. Further, the analog input / output circuit 14 may generate a clock signal or the like.
  • the interface circuit 15 transmits / receives data to / from another semiconductor device and another device via a predetermined interface line according to the control of the processor 11.
  • the data processing device 20 executes data processing corresponding to the logic circuit.
  • the data processing device 20 can program the data processing to be executed.
  • the data processing device 20 receives the target data to be calculated from the processor 11 via the bus.
  • the data processing device 20 executes data processing corresponding to the logic circuit on the received target data. Then, the data processing device 20 outputs the result data of executing the data processing to the processor 11 via the bus.
  • FIG. 2 is a diagram showing a mode transition of the information processing device 10.
  • the information processing device 10 operates in the configuration mode (S11) after the power is turned on.
  • the processor 11 reads preset configuration data from the non-volatile memory 13.
  • the processor 11 may read the configuration data from the outside via the interface circuit 15.
  • the processor 11 writes the configuration data to each of the plurality of addresses in the memory 40 (details will be described later) of each of the plurality of arithmetic circuits 30 (details will be described later) provided in the data processing device 20. ..
  • the information processing device 10 operates in the operation mode (S12). That is, the configuration mode is executed prior to the operation mode.
  • the processor 11 executes the program stored in the non-volatile memory 13.
  • the processor 11 may acquire the program from the outside via the interface circuit 15.
  • the processor 11 gives the target data to the data processing device 20 according to the execution of the program, and acquires the result data obtained by giving the target data from the data processing device 20. Then, the processor 11 executes information processing using the result data.
  • the information processing device 10 having such a configuration can set the configuration data in the data processing device 20 so that the data processing corresponding to the logic circuit can be executed in the configuration mode. Then, the information processing device 10 can cause the data processing device 20 to execute the data processing corresponding to the logic circuit in the operation mode.
  • FIG. 3 is a diagram showing the configuration of the data processing device 20 according to the first example.
  • the data processing device 20 has a plurality of arithmetic circuits 30.
  • Each of the plurality of arithmetic circuits 30 acquires input data representing the values of a plurality of bits. Then, each of the plurality of arithmetic circuits 30 outputs output data representing the values of the plurality of bits. The output data represents the result of performing a logical operation on the acquired input data according to the preset configuration data.
  • the plurality of arithmetic circuits 30 are composed of a group of M (M is an integer of 2 or more).
  • M is an integer of 2 or more.
  • each of the M groups includes two or more arithmetic circuits 30.
  • each of the M groups includes N (N is an integer of 2 or more) arithmetic circuits 30.
  • each of the N groups includes three arithmetic circuits 30.
  • the upper bit group of the output data output by each of the plurality of arithmetic circuits 30 is indicated by DU, and the lower bit group of the output data is indicated by DL.
  • the output data is 8 bits
  • the upper 4 bits of the output data are indicated as DU
  • the lower 4 bits are indicated as DL.
  • the y-th arithmetic circuit 30 (y is 1 or more and N or less) is referred to as the yth arithmetic circuit 30. Expressed as-(x, y).
  • each of the first group to the (M-1) group among the M groups uses the output data output from the included arithmetic circuit 30 in any of the arithmetic circuits 30 included in the next group. Is connected so that it can be acquired as input data.
  • two or more arithmetic circuits 30 included in each of the M groups are arranged so as to form a row for each group.
  • the columns are connected so that the output data of the arithmetic circuit 30 in the previous column becomes the input data of any arithmetic circuit 30 in the subsequent column.
  • the M groups are arranged with the bit positions of the input data so that the connection relationship between the two or more arithmetic circuits 30 included in the front row and the two or more arithmetic circuits 30 included in the rear row is staggered.
  • the bit position of the output data is out of alignment and the connection is made.
  • each of the N arithmetic circuits 30 included in the first group of the M groups acquires a bit group of a part of the target data given by the processor 11 as input data. Further, each of the N arithmetic circuits 30 included in the Mth group (the fourth group in this example) of the M groups is a bit of a part of the result data that gives the output data to the processor 11. Output as a group.
  • Each of the N arithmetic circuits 30 included in the mth group (m is an integer of 2 or more and M or less) in the M group is in the (m-1) group of the M groups.
  • a combination of bits of a part of the output data output from each of the predetermined arithmetic circuits 30 among the N arithmetic circuits 30 included is acquired as input data.
  • the nth arithmetic circuit 30- (m, n) (n is an integer of 1 or more and (N-1) or less) is (m-1).
  • the combination of the output data output from -1, n + 1) with the lower bit group is acquired as input data.
  • the Nth arithmetic circuit 30- (m, N) of the N arithmetic circuits 30 included in the mth group is the third of the N arithmetic circuits 30 included in the (m-1) group.
  • FIG. 4 is a diagram showing the configuration of the arithmetic circuit 30 according to the first example.
  • Each of the plurality of arithmetic circuits 30 has the same configuration. However, each of the plurality of arithmetic circuits 30 has a different connection relationship with the other arithmetic circuits 30.
  • FIG. 4 shows the connection relationship of the nth arithmetic circuit 30- (m, n) included in the mth group.
  • the arithmetic circuit 30- (m, n) has a memory 40.
  • the memory 40 is a random access memory.
  • the memory 40 is a SRAM (Static Random Access Memory).
  • the memory 40 may be a DRAM (Dynamic Random Access Memory).
  • the memory 40 stores data corresponding to each of a plurality of addresses.
  • the configuration data is written to each of the plurality of addresses in the configuration mode. Then, when the memory 40 acquires the input data that specifies any one of the plurality of addresses, the memory 40 outputs the stored data corresponding to the input data as the output data.
  • the memory 40 acquires 8-bit length input data (A1 to A8) as an address. Therefore, in the example of FIG. 4, the memory 40 can store 256 words of output data. Further, in the example of FIG. 4, the memory 40 stores output data (D1 to D8) having the same 8-bit length as the input data.
  • the input data and the output data are not limited to the 8-bit length, and may have other bit lengths.
  • the nth arithmetic circuit 30- (m, n) included in the mth group is the output of the nth arithmetic circuit 30- (m-1, n) included in the (m-1) group.
  • the upper half (4 bits) of the data (D5 to D8) is acquired as the lower half (4 bits) of the input data (A1 to A4).
  • the nth arithmetic circuit 30- (m, n) included in the mth group is the (n + 1) th arithmetic circuit 30- (m-1, n + 1) included in the (m-1) group.
  • the lower half (4 bits) of the output data (4 bits) of the data (D1 to D4) is acquired as the upper half (4 bits) of the input data (A5 to A8).
  • the nth arithmetic circuit 30- (m, n) included in the m-th group sets the lower half (4 bits) of the data (D1 to D4) of the output data into the (m + 1) th group. It is output as data (A5 to A8) of the upper half (4 bits) of the input data of the third (n-1) arithmetic circuit 30- (m + 1, n-1) included in.
  • the nth arithmetic circuit 30- (m, n) included in the m-th group sets the upper half (4 bits) of the output data (4 bits) of the data (D5 to D8) into the (m + 1) th group. It is output as data (A1 to A4) of the lower half (4 bits) of the input data of the nth arithmetic circuit 30- (m + 1, n) included in.
  • FIG. 5 is a diagram showing the configuration of the memory 40.
  • the memory 40 includes a memory cell 62, an address decoder 64, a write control circuit 66, and an output control circuit 68.
  • the memory cell 62 stores data corresponding to each of the plurality of addresses.
  • the address decoder 64 acquires the address data and selects the cell of the address specified by the address data in the memory cell 62.
  • the write control circuit 66 writes data to the cell at the address specified by the address decoder 64 in the memory cell 62.
  • the output control circuit 68 reads data from the cell at the address specified by the address decoder 64 in the memory cell 62 and outputs the data.
  • the memory 40 outputs data in synchronization with the clock.
  • the clock may be a synchronous clock given to each circuit included in the data processing device 20, or may be an asynchronous clock generated at the timing when output data is output from the arithmetic circuit 30 in the previous stage. Further, the memory 40 may be able to switch between outputting data in synchronization with the synchronous clock and outputting data in synchronization with the asynchronous clock.
  • FIG. 6 is a diagram showing an example of data stored in the memory 40.
  • the memory 40 is written with pre-generated configuration data corresponding to each of the plurality of addresses. For example, in the example of FIG. 6, 256 words of configuration data represented by 8-bit addresses (A1 to A8) are written.
  • the memory 40 can store the corresponding data for all the logical patterns represented by the input data. Then, when the input data is acquired, the memory 40 outputs the data stored corresponding to the acquired input data as output data. As a result, the memory 40 can perform the same operation as the logic circuit that executes the logical operation according to the preset truth table data. That is, the memory 40 functions as a circuit that executes a preset logical operation.
  • FIG. 7 is a diagram showing an example of the flow of arithmetic processing by the data processing device 20 according to the first example.
  • the plurality of arithmetic circuits 30 included in the data processing device 20 are composed of M groups, and the M groups are connected in series. Therefore, when the data processing device 20 receives the target data from the processor 11, the data processing device 20 can sequentially execute a plurality of logical operations on the target data. Then, the data processing device 20 can output the result data obtained by sequentially executing a plurality of logical operations on the target data.
  • FIG. 8 is a diagram showing the configuration of the data processing device 20 according to the second example.
  • the data processing device 20 according to the second example has substantially the same configuration and function as the data processing device 20 according to the first example shown in FIG. The difference between the data processing device 20 according to the second example and the data processing device 20 according to the first example will be described.
  • each of the plurality of arithmetic circuits 30 acquires two input data. One of the two input data is forward input data and the other is reverse input data. Further, in the second example, each of the plurality of arithmetic circuits 30 outputs two output data. One of the two output data is forward output data and the other is reverse output data.
  • the upper bit group of the forward output data output by each of the plurality of arithmetic circuits 30 is indicated by DU, and the lower bit group of the forward output data is indicated by DL.
  • the upper bit group of the reverse direction output data output by each of the plurality of arithmetic circuits 30 is referred to as GU, and the lower bit group of the reverse direction output data is referred to as GL.
  • M groups are connected in both directions.
  • Each of the first group to the (M-1) group among the M groups transfers the forward output data output from the included arithmetic circuit 30 to any of the arithmetic circuits 30 included in the next group. It is connected so that it can be acquired as forward input data.
  • each of the M group to the second group among the M groups reverses the reverse direction output data output from the included arithmetic circuit 30 to any of the arithmetic circuits 30 included in the previous group. It is connected so that it can be acquired as input data.
  • each of the N arithmetic circuits 30 included in the first group of the M groups acquires a bit group of a part of the target data given by the processor 11 as forward input data. To do. Further, each of the N arithmetic circuits 30 included in the Mth group (the fourth group in this example) of the M groups is a part of the result data that gives the forward output data to the processor 11. Is output as a bit group of.
  • Each of the N arithmetic circuits 30 included in the mth group of the M groups is a predetermined of the N arithmetic circuits 30 included in the (m-1) group of the M groups.
  • a combination of bits of a part of the forward output data output from each of the arithmetic circuits 30 is acquired as forward input data.
  • the nth arithmetic circuit 30- (m, n) of the N arithmetic circuits 30 included in the mth group is the thth of the N arithmetic circuits 30 included in the (m-1) group.
  • the combination with the lower bit group of is acquired as forward input data.
  • the Nth arithmetic circuit 30- (m, N) of the N arithmetic circuits 30 included in the mth group is the third of the N arithmetic circuits 30 included in the (m-1) group.
  • the combination with the side bit group is acquired as forward input data.
  • each of the N arithmetic circuits 30 included in the Mth group (in this example, the fourth group) of the M groups is the target data given by the processor 11. A part of the bit group is acquired as reverse input data. Further, each of the N arithmetic circuits 30 included in the first group of the M groups outputs the reverse direction output data as a bit group of a part of the result data given to the processor 11.
  • Each of the N arithmetic circuits 30 included in the m'group (m'is an integer of 1 or more and (M-1) or less) among the M groups is the th (1) of the M groups.
  • the combination of a part of the bit group of the reverse direction output data output from each of the predetermined number of the calculation circuits 30 among the N calculation circuits 30 included in the m'+ 1) group is acquired as the reverse direction input data.
  • the nth arithmetic circuit 30- (m', n') (n'is an integer of 2 or more and N or less) is (m'. +1) Higher-order bit group of reverse output data output from the (n'-1) th operation circuit 30- (m'+ 1, n'-1) of the N arithmetic circuits 30 included in the group. And, the combination with the lower bit group of the reverse direction output data output from the nth arithmetic circuit 30- (m'+ 1, n') is acquired as the reverse direction input data.
  • the first arithmetic circuit 30- (m', 1) among the N arithmetic circuits 30 included in the m'group is among the N arithmetic circuits 30 included in the (m'+ 1) group.
  • the combination with the lower bit group of is acquired as reverse input data.
  • FIG. 9 is a diagram showing the configuration of the arithmetic circuit 30 according to the second example.
  • FIG. 9 shows the connection relationship of the nth arithmetic circuit 30- (m, n) included in the mth group.
  • the arithmetic circuit 30- (m, n) has a forward memory 82, a reverse memory 84, and an OR circuit 86 instead of the memory 40.
  • the forward memory 82 stores configuration data corresponding to each of a plurality of addresses.
  • the forward memory 82 acquires the forward input data that specifies any one of the plurality of addresses, the forward memory 82 outputs the configuration data stored in correspondence with the forward input data as output data. ..
  • the reverse memory 84 stores the configuration data corresponding to each of the plurality of addresses.
  • the reverse direction memory 84 acquires the reverse direction input data that specifies any one of the plurality of addresses
  • the reverse direction memory 84 outputs the configuration data stored corresponding to the reverse direction input data as output data. ..
  • the forward memory 82 and the reverse memory 84 have the same configuration as the memory 40 according to the first example. However, the bit width of the stored data in the forward memory 82 and the reverse memory 84 is twice that of the memory 40. That is, the forward memory 82 and the reverse memory 84 have twice the bit width of the stored data with respect to the bit width of the address.
  • the forward memory 82 acquires 8-bit length forward input data (A1 to A8) as an address. Further, in the example of FIG. 9, the reverse direction memory 84 acquires the reverse direction input data (A1 to A8) having an 8-bit length as an address. Then, in the example of FIG. 9, the forward memory 82 and the reverse memory 84 output 16-bit length output data (D1 to D16).
  • the OR circuit 86 generates OR data obtained by performing an OR operation on the corresponding bits of the output data output from the forward memory 82 and the output data output from the reverse memory 84.
  • the OR circuit 86 generates 16-bit OR data (D1 to D16) obtained by performing an OR operation on D1 bits, D2 bits, and D16 bits.
  • the OR circuit 86 outputs a bit group of a part of the OR data as forward output data. Further, the OR circuit 86 outputs a bit group of another part of the OR data that is not output as forward output data as reverse output data.
  • the OR circuit 86 outputs 8-bit length data of D9 to D16 of the OR data as forward output data. Further, the OR circuit 86 outputs 8-bit length data of D1 to D86 of the OR data as reverse output data.
  • the arithmetic circuit 30- (m, n) having such a configuration can output the result of logical operation on the forward input data as forward output data or as reverse output data. Further, the arithmetic circuit 30- (m, n) having such a configuration can output the result of the logical operation on the reverse input data as forward output data or as reverse output data. it can.
  • FIG. 10 is a diagram showing an example of the flow of arithmetic processing by the data processing device 20 according to the second example.
  • the plurality of arithmetic circuits 30 included in the data processing device 20 are composed of M groups, and the M groups are connected in series in both directions.
  • the data processing device 20 when the data processing device 20 receives the target data from the processor 11, the data processing device 20 can execute a plurality of logical operations on the target data. Then, the data processing device 20 can output the result data obtained by executing a plurality of logical operations on the target data.
  • the data processing device 20 according to the second example can also transfer the logical operation result from the group in the latter stage to the group in the previous stage in the reverse direction in the arithmetic circuit 30 in the middle.
  • the data processing device 20 according to the second example can increase the degree of freedom in design and increase the number of executable logic circuits.
  • FIG. 11 is a diagram showing a generation device 110 and an information processing device 10 according to the embodiment.
  • the generator 110 is realized by a computer executing a program.
  • the generator 110 may be implemented by a server on the network.
  • the generation device 110 may be a device in which a plurality of computers operate in cooperation with each other.
  • the generation device 110 generates configuration data for setting with respect to the data processing device 20 provided in the information processing device 10 described with reference to FIGS. 1 to 10.
  • the configuration data is stored in, for example, the non-volatile memory 13 included in the information processing apparatus 10, and is written in a plurality of memories 40 included in the data processing apparatus 20 in the configuration mode.
  • the configuration data is stored in a server or the like, and the data processing device 20 may download the configuration data from the server or the like via the network in the configuration mode.
  • FIG. 12 is a diagram showing the configuration of the generator 110 according to the embodiment.
  • the generation device 110 includes an acquisition unit 122, a logic synthesis unit 124, an arrangement / wiring unit 126, a mapping unit 128, a detection unit 132, and a replacement unit 134.
  • the acquisition unit 122 acquires RTL (Register Transfer Level) description data in which the logic circuit corresponding to the data processing to be executed by the data processing device 20 is described by the register transfer level. For example, the acquisition unit 122 acquires the logically verified RTL description data.
  • RTL Registered Transfer Level
  • the logic synthesis unit 124 converts the RTL description data into gate level description data in which the logic circuit is described by the gate level.
  • the gate level description data is data representing a logic circuit in a state where a plurality of circuit elements are connected.
  • the logic synthesizer 124 generates gate-level description data by referring to a library of circuit elements generated in advance.
  • the logic synthesis unit 124 may further perform logic verification of the logic circuit described in the gate level description data.
  • the placement / wiring unit 126 executes the placement process and the wiring process based on the gate level description data.
  • the arrangement / wiring unit 126 arranges each of the plurality of elements included in the logic circuit in the plurality of arithmetic circuits 30 included in the data processing device 20. Further, the arrangement and wiring unit 126 generates wiring for connecting between each of the plurality of arithmetic circuits 30 so that data processing according to the logic circuit is performed in the wiring processing.
  • the mapping unit 128 generates configuration data to be stored in the memory 40 for each of the plurality of arithmetic circuits 30 based on the gate level description data that has been arranged and wired. That is, the mapping unit 128 generates truth table data that describes all the addresses of the memory 40 and the data to be stored in each of the addresses for each of the plurality of arithmetic circuits 30 as configuration data. The configuration data is written in the memory 40 of each of the plurality of arithmetic circuits 30.
  • the detection unit 132 analyzes the description data describing the logic circuit and detects the D-type flip-flop included in the logic circuit.
  • the detection unit 132 analyzes the gate level description data which is the description data and detects the D-type flip-flop included in the gate level description data.
  • the replacement unit 134 replaces the D-type flip-flop detected by the detection unit 132 and included in the description data with a buffer circuit.
  • the replacement unit 134 replaces the D-type flip-flop included in the gate level description data with a buffer circuit.
  • the detection unit 132 may analyze the RTL description data, which is the description data, to detect the D-type flip-flop included in the RTL description data.
  • the replacement unit 134 replaces the D-type flip-flop included in the RTL description data with a buffer circuit.
  • the placement / wiring unit 126 arranges the replaced buffer circuit included in the gate level description data in any of the plurality of calculation circuits 30 included in the data processing device 20. As a result, the arithmetic circuit 30 can execute the logical operation according to the buffer circuit.
  • each of the plurality of arithmetic circuits 30 is given a clock signal to the memory 40 as shown in FIG. 5, and data is output from the memory 40 at the timing of the clock signal. Therefore, each of the plurality of arithmetic circuits 30 operates in the same manner as the D-type flip-flop when the logical operation according to the buffer circuit is executed. That is, each of the plurality of arithmetic circuits 30 can function as a D-type flip-flop.
  • the clock signal given to the D-type flip-flop is a synchronous clock given to each circuit included in the data processing device 20, or when the output data is output from the arithmetic circuit 30 in the previous stage. It may be detected whether it is an asynchronous clock that occurs.
  • the arrangement / wiring unit 126 arranges the replaced buffer circuit in the arithmetic circuit 30 in which the synchronous clock is given to the internal memory 40.
  • the placement / wiring unit 126 arranges the replaced buffer circuit in the arithmetic circuit 30 in which the asynchronous clock is given to the internal memory 40.
  • the generation device 110 may be configured to directly convert the RTL description data acquired by the acquisition unit 122 into configuration data. That is, the generation device 110 may be configured to directly convert the RTL description data acquired by the acquisition unit 122 into the truth table data.
  • the detection unit 132 analyzes the RTL description data and detects the D-type flip-flop included in the RTL description data before the conversion to the configuration data. Then, in this case, the replacement unit 134 replaces the D-type flip-flop included in the RTL description data with a buffer circuit.
  • FIG. 13 is a diagram showing an example of the counter circuit 200 described by the descriptive data.
  • the counter circuit 200 as shown in FIG. 13 is described in the description data (RTL description data or gate level description data).
  • the counter circuit 200 includes a first output terminal 211, a second output terminal 212, a third output terminal 213, a first D type flip-flop 221 and a second D type flip flop 222, and a third D type flip flop 223.
  • the inverter circuit 224, the first EXOR circuit 225, the AND circuit 226, and the second EXOR circuit 227 are included.
  • a clock signal is supplied to the clock terminal, the output value of the inverter circuit 224 is supplied to the D terminal, and the Q terminal is connected to the first output terminal 211.
  • a clock signal is supplied to the clock terminal, the output value of the first EXOR circuit 225 is supplied to the D terminal, and the Q terminal is connected to the second output terminal 212.
  • a clock signal is supplied to the clock terminal, the output value of the second EXOR circuit 227 is supplied to the D terminal, and the Q terminal is connected to the third output terminal 213.
  • the inverter circuit 224 outputs a logical value obtained by inverting the logical value of the first output terminal 211.
  • the first EXOR circuit 225 outputs a logical value representing the exclusive OR of the logical value of the first output terminal 211 and the logical value of the second output terminal 212.
  • the AND circuit 226 outputs a logical value representing the logical product of the logical value of the first output terminal 211 and the logical value of the second output terminal 212.
  • the first EXOR circuit 225 outputs a logical value representing the exclusive OR of the output value of the AND circuit 226 and the logical value of the third output terminal 213.
  • Such a counter circuit 200 can output a 3-bit value that increases the value for each rising edge of the clock signal from the first output terminal 211, the second output terminal 212, and the third output terminal 213.
  • FIG. 14 is a diagram showing an example of the counter circuit 200 after the replacement process.
  • the generator 110 uses the first D type flip-flop 221 and the second D type flip flop 222 and the third D type flip flop 223 as the first buffer circuit. It is replaced with 231 and the second buffer circuit 232 and the third buffer circuit 233.
  • the output value of the inverter circuit 224 is given to the input terminal, and the output terminal is connected to the first output terminal 211.
  • the output value of the first EXOR circuit 225 is given to the input terminal, and the output terminal is connected to the second output terminal 212.
  • the output value of the second EXOR circuit 227 is given to the input terminal, and the output terminal is connected to the third output terminal 213.
  • FIG. 15 is a diagram showing an example of a counter circuit 200 arranged in the data processing device 20.
  • the generation device 110 can arrange the first buffer circuit 231 and the second buffer circuit 232 and the third buffer circuit 233 in any one or more arithmetic circuits 30, for example.
  • the input terminal of the first buffer circuit 231 is A8 in the arithmetic circuit 30- (x, y), and the output terminal of the first buffer circuit 231 is the arithmetic circuit 30- (x, y). , Y) are arranged and wired so as to be D8. Note that x and y are arbitrary integers of 1 or more.
  • the input terminal of the second buffer circuit 232 is A7 in the arithmetic circuit 30- (x, y), and the output terminal of the second buffer circuit 232 is the arithmetic circuit 30- (x, y). It is arranged and wired so that it becomes D7.
  • the input terminal of the third buffer circuit 233 is A6 in the arithmetic circuit 30- (x, y), and the output terminal of the third buffer circuit 233 is the arithmetic circuit 30- (x, y). It is arranged and wired so that it becomes D6.
  • the inverter circuit 224, the first EXOR circuit 225, the AND circuit 226, and the second EXOR circuit 227 are realized by an arithmetic circuit 30 other than the arithmetic circuit 30- (x, y).
  • FIG. 16 is a diagram showing an example of data written in the memory 40 of the arithmetic circuit 30- (x, y). Further, when the counter circuit 200 is realized by the data processing device 20 by the arrangement as shown in FIG. 15, the generation device 110 generates the configuration data to be stored in the memory 40 of the arithmetic circuit 30- (x, y). Therefore, the truth table data as shown in FIG. 16 is generated.
  • A8 and D8 in the arithmetic circuit 30- (x, y) have the same logical value
  • A7 and D7 have the same logical value
  • A6 and D6 have the same logical value.
  • the generation device 110 can execute the logical operation according to the first buffer circuit 231 and the second buffer circuit 232 and the third buffer circuit 233 by the arithmetic circuit 30- (x, y).
  • the generation device 110 replaces the D-type flip-flop with a buffer circuit when the description data representing the logic circuit to be executed by the programmable data processing device 20 includes the D-type flip-flop. .. Thereby, according to the generation device 110 according to the present embodiment, the programmable data processing device 20 can easily execute the data processing corresponding to the logic circuit including the D-type flip-flop.
  • FIG. 17 is a diagram showing a hardware configuration of the generator 110.
  • the generator 110 is realized by, for example, a computer having a hardware configuration as shown in FIG.
  • the generator 110 includes a CPU 401, a ROM (Read Only Memory) 402, a RAM (Random Access Memory) 403, a storage device 404, a network I / F 406, a display 411, a display I / F 412, and an input device 413. And an input I / F 414.
  • the CPU 401, ROM 402, RAM 403, storage device 404, network I / F 406, display I / F 412, and input I / F 414 are connected by a bus.
  • the CPU 401 expands the program stored in the storage device 404 into the RAM 403 and executes it, and controls each part to perform input / output and process data.
  • the ROM 402 stores a start program that reads the operating system boot program from the storage device 404 into the RAM 403.
  • the storage device 404 is, for example, a hard disk drive or a flash memory.
  • the storage device 404 stores the operating system, application programs, and data. These programs are files in installable or executable format that are recorded and distributed on computer-readable recording media. The program may also be distributed by downloading from the server.
  • the network I / F 406 is, for example, an interface device for connecting to a network.
  • the display 411 is a device that displays information.
  • the display I / F 412 supplies an image signal to the display 411 according to the control of the CPU 401.
  • the input device 413 is a keyboard, a mouse, a touch panel, or the like, and acquires operation information by the user.
  • the input I / F 414 stores the information acquired by the input device 413 in the RAM 403 according to the control of the CPU 401.
  • the program executed by the generator 110 of the present embodiment is a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, or a DVD in an installable or executable format file. Recorded and provided on.
  • a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, or a DVD in an installable or executable format file. Recorded and provided on.
  • the program executed by the generator 110 may be stored on a computer connected to a network such as the Internet and provided by downloading via the network. Further, the program executed by the generation device 110 may be configured to be provided or distributed via a network such as the Internet. Further, the program executed by the generation device 110 may be configured to be provided by incorporating it into the ROM 402 or the like in advance.
  • the program for making the computer function as the generator 110 includes an acquisition module, a logic synthesis module, a placement / routing module, a mapping module, a detection module, and a replacement module.
  • each module is loaded on the main storage device (RAM 403) by the processor (CPU 401) reading a program from a storage medium (storage device 404 or the like) and executing the program.
  • the processor (CPU 401) functions as an acquisition unit 122, a logic synthesis unit 124, an arrangement / wiring unit 126, a mapping unit 128, a detection unit 132, and a replacement unit 134.
  • the generation device 110 may have a part or all of the configurations of the acquisition unit 122, the logic synthesis unit 124, the arrangement / wiring unit 126, the mapping unit 128, the detection unit 132, and the replacement unit 134 realized by hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

実施形態に係る生成装置は、論理回路に対応するデータ処理を実行し、データ処理をプログラム可能なデータ処理装置に対して設定するためのコンフィグレーションデータを生成する。生成装置は、論理回路を記述した記述データを解析して、論理回路に含まれるD型フリップフロップを検出する検出部と、記述データに含まれるD型フリップフロップを、バッファ回路に置き換える置換部と、置換処理後の記述データをコンフィグレーションデータに変換するマッピング部と、を備える。

Description

生成装置、生成方法およびプログラム
 本発明は、生成装置、生成方法およびプログラムに関する。
 FPGA(Field Programmable Gate Array)と呼ばれる、製造後において論理回路をプログラム可能な半導体装置が知られている。FPGAは、少量生産される装置への組み込みに適する。しかし、FPGAは、論理回路、配線、スイッチ等の多種の回路を含むので、構造が複雑であり、多層配線構造の半導体でなければ実現することができなかった。
 これに対して、MRLD(登録商標)またはMPLD(登録商標)と呼ばれる、SRAM(Static Random Access Memory)等の複数のメモリを備えるプログラム可能な半導体装置が知られている。この半導体装置は、複数のメモリが、複数の列を形成するように配置される。そして、この半導体装置は、前段の列のメモリの出力データが、後段の列のメモリのアドレスに与えられるように、列と列との間が接続される。
 この半導体装置は、複数のメモリのそれぞれに、予め生成された真理値表データの入力値に対応するアドレスに、真理値表データの出力値に対応するデータを記憶させる。これにより、複数のメモリのそれぞれは、アドレスに入力データが与えた場合、真理値表データに従った論理演算をした出力データを出力することができる。
 そして、動作時において、この半導体装置は、他の情報処理装置等から演算対象の対象データを受け取った場合、列の先頭のメモリのアドレスに対象データを与える。列の先頭のメモリのアドレスに対象データが与えられた場合、複数のメモリは、列毎に順番に、真理値表データに対応する論理演算を実行する。従って、MRLD(登録商標)と呼ばれる半導体装置は、全体として、予めプログラミングされた論理回路に従った演算処理を実行することができる。
特開2003-224468号公報 国際公開第2007/060738号公報
 ところで、この半導体装置は、論理回路にクロックに同期したデータ出力を行うD型フリップフロップが含まれている場合、真理値表データを記憶するメモリとは別個に、D型フリップフロップを実現するためのハードウェア回路を搭載しなければならなかった。また、メモリに記憶させるコンフィグレーションデータを生成する生成装置は、論理回路を記述した記述データにD型フリップフロップが含まれている場合には、D型フリップフロップをメモリとは別個のハードウェア回路に実現させるように、論理回路の配線および配置をしなければならなかった。
 本発明は、上記に鑑みてなされたものであって、プログラム可能なデータ処理装置に、D型フリップフロップを含む論理回路に対応するデータ処理を簡易に実行させることができる生成装置、生成方法およびプログラムを提供することを目的とする。
 上述した課題を解決し、目的を達成するために、本発明に係る生成装置は、論理回路に対応するデータ処理を実行し、前記データ処理をプログラム可能なデータ処理装置に対して設定するためのコンフィグレーションデータを生成する。前記データ処理装置は、複数の演算回路を備える。前記複数の演算回路のそれぞれは、複数のアドレスのそれぞれに対応させて前記コンフィグレーションデータを記憶し、前記複数のアドレスのうちの何れか1つのアドレスを指定する入力データを取得した場合、前記入力データに対応させて記憶している前記コンフィグレーションデータを出力データとして出力するメモリを有する。前記生成装置は、前記論理回路を記述した記述データを解析して、前記論理回路に含まれるD型フリップフロップを検出する検出部と、前記記述データに含まれる前記D型フリップフロップを、バッファ回路に置き換える置換部と、置換処理後の前記記述データを前記コンフィグレーションデータに変換するマッピング部と、を備える。
 本発明によれば、プログラム可能なデータ処理装置に、D型フリップフロップを含む論理回路に対応するデータ処理を簡易に実行させることができる。
図1は、情報処理装置の構成を示す図である。 図2は、情報処理装置のモードの遷移を示す図である。 図3は、第1例に係るデータ処理装置の構成を示す図である。 図4は、第1例に係る演算回路の構成を示す図である。 図5は、メモリの構成を示す図である。 図6は、メモリに記憶されたデータの一例を示す図である。 図7は、第1例に係るデータ処理装置による演算処理の流れの一例を示す図である。 図8は、第2例に係るデータ処理装置の構成を示す図である。 図9は、第2例に係る演算回路の構成を示す図である。 図10は、第2例に係るデータ処理装置による演算処理の流れの一例を示す図である。 図11は、実施形態に係る生成装置および情報処理装置を示す図である。 図12は、実施形態に係る生成装置の構成を示す図である。 図13は、記述データにより記述されたカウンタ回路の一例を示す図である。 図14は、置き換え処理後のカウンタ回路の一例を示す図である。 図15は、データ処理装置に配置されたカウンタ回路の一例を示す図である。 図16は、演算回路が有するメモリに書き込まれるデータの一例を示す図である。 図17は、生成装置のハードウェア構成を示す図である。
 以下、図面を参照しながら実施形態について説明する。本実施形態に係る生成装置110は、論理回路に対応するデータ処理を実行し、データ処理をプログラム可能なデータ処理装置20に対して設定するためのコンフィグレーションデータを生成する。まず、前提として、コンフィグレーションデータが設定されるデータ処理装置20を備える情報処理装置10について説明する。
 (情報処理装置10)
 図1は、実施形態に係る情報処理装置10の構成を示す図である。例えば、情報処理装置10は、1または複数の半導体チップを含む半導体装置である。
 情報処理装置10は、プロセッサ11と、メインメモリ12と、不揮発メモリ13と、アナログ入出力回路14と、インターフェース回路15と、データ処理装置20とを備える。プロセッサ11、メインメモリ12、不揮発メモリ13、アナログ入出力回路14およびインターフェース回路15は、バスにより接続される。
 プロセッサ11は、CPU(Central Processing Unit)等のプログラムを実行して情報処理を実行する。プロセッサ11は、不揮発メモリ13からプログラムを読み出し、メインメモリ12を作業領域として用いて情報処理を実行する。また、プロセッサ11は、インターフェース回路15を介してプログラムを取得してもよい。
 メインメモリ12は、例えばDRAM(Dynamic Random Access Memory)等の揮発性の記憶媒体である。メインメモリ12は、プロセッサ11の作業領域として機能する。
 不揮発メモリ13は、プロセッサ11により実行されるプログラムおよび各種設定情報等を書き換え不可能に記憶する。また、不揮発メモリ13は、データ処理装置20に設定されるコンフィグレーションデータを記憶する。
 アナログ入出力回路14は、センサ等から出力されたアナログのセンサ信号を取得し、アナログデジタル変換する。アナログ入出力回路14は、デジタル信号に変換したセンサ信号をプロセッサ11に供給する。また、アナログ入出力回路14は、プロセッサ11からの制御に応じて、アナログ信号を外部に出力する。また、アナログ入出力回路14は、クロック信号等を発生してもよい。
 インターフェース回路15は、プロセッサ11の制御に応じて、他の半導体装置および他の装置と所定のインターフェース回線を介してデータの送受信をする。
 データ処理装置20は、論理回路に対応するデータ処理を実行する。データ処理装置20は、実行するデータ処理をプログラム可能である。データ処理装置20は、プロセッサ11から演算対象となる対象データをバスを介して受け取る。データ処理装置20は、受け取った対象データに対して、論理回路に対応するデータ処理を実行する。そして、データ処理装置20は、データ処理を実行した結果データを、バスを介してプロセッサ11に出力する。
 図2は、情報処理装置10のモードの遷移を示す図である。情報処理装置10は、電源投入後、コンフィグレーションモード(S11)で動作する。コンフィグレーションモードにおいて、プロセッサ11は、不揮発メモリ13から、予め設定されたコンフィグレーションデータを読み出す。プロセッサ11は、インターフェース回路15を介して外部からコンフィグレーションデータを読み出してもよい。
 そして、コンフィグレーションモードにおいて、プロセッサ11は、データ処理装置20に備えられる複数の演算回路30(詳細後述)のそれぞれが有するメモリ40(詳細後述)における複数のアドレスのそれぞれに、コンフィグレーションデータを書き込む。
 コンフィグレーションモードの終了後、情報処理装置10は、動作モード(S12)で動作する。すなわち、コンフィグレーションモードは、動作モードに先だって実行される。動作モードにおいて、プロセッサ11は、不揮発メモリ13に記憶されたプログラムを実行する。プロセッサ11は、プログラムをインターフェース回路15を介して外部から取得してもよい。
 そして、プロセッサ11は、動作モードにおいて、プログラムの実行に従って、データ処理装置20に対象データを与え、対象データを与えたことにより得られた結果データをデータ処理装置20から取得する。そして、プロセッサ11は、結果データを用いて、情報処理を実行する。
 このような構成の情報処理装置10は、コンフィグレーションモードにおいて、論理回路に対応するデータ処理を実行可能なように、データ処理装置20にコンフィグレーションデータを設定することができる。そして、情報処理装置10は、動作モードにおいて、データ処理装置20に、論理回路に対応するデータ処理を実行させることができる。
 図3は、第1例に係るデータ処理装置20の構成を示す図である。データ処理装置20は、複数の演算回路30を有する。
 複数の演算回路30のそれぞれは、複数のビットの値を表す入力データを取得する。そして、複数の演算回路30のそれぞれは、複数のビットの値を表す出力データを出力する。出力データは、取得した入力データに対して予め設定されたコンフィグレーションデータに従った論理演算をした結果を表す。
 複数の演算回路30は、M個(Mは、2以上の整数)のグループにより構成されている。図3の例において、複数の演算回路30は、4個(M=4)のグループにより構成されている。すなわち、図3の例において、データ処理装置20は、第1グループ、第2グループ、第3グループおよび第4グループを有する。
 また、M個のグループのそれぞれは、2以上の演算回路30を含む。本実施形態においては、M個のグループのそれぞれは、N個(Nは、2以上の整数)の演算回路30を含む。図3の例では、N個のグループのそれぞれは、3個の演算回路30を含む。
 図3において、複数の演算回路30のそれぞれが出力する出力データの上位側のビット群をDUと示し、出力データの下位側のビット群をDLと示す。例えば、出力データが8ビットであれば、出力データの上位の4ビットをDUと示し、下位の4ビットをDLと示す。
 また、第xグループ(xは、1以上、M以下)に含まれるN個の演算回路30のうち、y番目(yは、1以上、N以下)の演算回路30を、第y演算回路30-(x,y)と表す。
 ここで、M個のグループのうちの第1グループから第(M-1)グループのそれぞれは、含まれる演算回路30から出力された出力データを、次のグループに含まれる何れかの演算回路30に入力データとして取得させるように接続される。例えば、M個のグループのそれぞれに含まれる2以上の演算回路30は、グループ毎に列を形成するように配置される。また、M個のグループは、前段の列の演算回路30の出力データが、後段の列の何れかの演算回路30の入力データとなるように、列と列との間が接続される。さらに、M個のグループは、前段の列に含まれる2以上の演算回路30と後段列に含まれる2以上の演算回路30との接続関係が千鳥状になるように、入力データのビット位置と出力データのビット位置とがずれて接続されている。
 より具体的には、M個のグループのうちの第1グループに含まれるN個の演算回路30のそれぞれは、プロセッサ11から与えられた対象データの一部分のビット群を、入力データとして取得する。また、M個のグループのうちの第Mグループ(本例においては、第4グループ)に含まれるN個の演算回路30のそれぞれは、出力データを、プロセッサ11へと与える結果データの一部分のビット群として出力する。
 M個のグループのうちの第mグループ(mは、2以上、M以下の整数)に含まれるN個の演算回路30のそれぞれは、M個のグループのうちの第(m-1)グループに含まれるN個の演算回路30のうちの所定個の演算回路30のそれぞれから出力された出力データの一部分のビット群の組み合わせを、入力データとして取得する。
 例えば、第mグループに含まれるN個の演算回路30のうちの第n演算回路30-(m,n)(nは、1以上(N-1)以下の整数)は、(m-1)グループに含まれるN個の演算回路30のうちの、第n演算回路30-(m-1,n)から出力された出力データの上位側ビット群と、第(n+1)演算回路30-(m-1,n+1)から出力された出力データの下位側ビット群との組み合わせを、入力データとして取得する。
 また、第mグループに含まれるN個の演算回路30のうちの第N演算回路30-(m,N)は、(m-1)グループに含まれるN個の演算回路30のうちの、第N演算回路30-(m-1,N)から出力された出力データの上位側ビット群と、第1演算回路30-(m-1,1)から出力された出力データの下位側ビット群との組み合わせを、入力データとして取得する。
 図4は、第1例に係る演算回路30の構成を示す図である。複数の演算回路30のそれぞれは、同一の構成を有する。しかし、複数の演算回路30のそれぞれは、他の演算回路30との接続関係が異なる。図4には、第mグループに含まれる第n演算回路30-(m,n)の接続関係が示されている。
 演算回路30-(m,n)は、メモリ40を有する。メモリ40は、ランダムアクセスメモリである。本実施形態において、メモリ40は、SRAM(Static Random Access Memory)である。メモリ40は、DRAM(Dynamic Random Access Memory)であってもよい。
 メモリ40は、複数のアドレスのそれぞれに対応させてデータを記憶する。メモリ40は、コンフィグレーションモードにおいて、複数のアドレスのそれぞれに、コンフィグレーションデータが書き込まれる。そして、メモリ40は、複数のアドレスのうちの何れか1つのアドレスを指定する入力データを取得した場合、入力データに対応させて記憶しているデータを出力データとして出力する。
 図4の例において、メモリ40は、8ビット長の入力データ(A1~A8)を、アドレスとして取得する。従って、図4の例において、メモリ40は、256ワードの出力データを記憶することができる。また、図4の例において、メモリ40は、入力データと同一の8ビット長の出力データ(D1~D8)を記憶する。なお、入力データおよび出力データは、8ビット長に限らず、他のビット長であってもよい。
 図4の例において、第mグループに含まれる第n演算回路30-(m,n)は、第(m-1)グループに含まれる第n演算回路30-(m-1,n)の出力データの上位側の半分(4ビット)のデータ(D5~D8)を、入力データのうちの下位側の半分(4ビット)のデータ(A1~A4)として取得する。図4の例において、第mグループに含まれる第n演算回路30-(m,n)は、第(m-1)グループに含まれる第(n+1)演算回路30-(m-1,n+1)の出力データの下位側の半分(4ビット)のデータ(D1~D4)を、入力データのうちの上位側の半分(4ビット)のデータ(A5~A8)として取得する。
 図4の例において、第mグループに含まれる第n演算回路30-(m,n)は、出力データの下位側の半分(4ビット)のデータ(D1~D4)を、第(m+1)グループに含まれる第(n-1)演算回路30-(m+1,n-1)の入力データのうちの上位側の半分(4ビット)のデータ(A5~A8)として出力する。図4の例において、第mグループに含まれる第n演算回路30-(m,n)は、出力データの上位側の半分(4ビット)のデータ(D5~D8)を、第(m+1)グループに含まれる第n演算回路30-(m+1,n)の入力データのうちの下位側の半分(4ビット)のデータ(A1~A4)として出力する。
 図5は、メモリ40の構成を示す図である。メモリ40は、メモリセル62と、アドレスデコーダ64と、書込制御回路66と、出力制御回路68とを含む。
 メモリセル62は、複数のアドレスのそれぞれに対応させてデータを記憶する。アドレスデコーダ64は、アドレスデータを取得し、メモリセル62におけるアドレスデータにより指定されたアドレスのセルを選択する。書込制御回路66は、メモリセル62における、アドレスデコーダ64により指定されたアドレスのセルにデータを書き込む。出力制御回路68は、メモリセル62における、アドレスデコーダ64により指定されたアドレスのセルからデータを読み出して出力する。
 ここで、メモリ40は、クロックに同期して、データを出力する。クロックは、データ処理装置20に含まれる各回路に与えられる同期クロックであってもよいし、前段の演算回路30から出力データが出力されたタイミングにおいて発生する非同期クロックであってもよい。また、メモリ40は、同期クロックに同期してデータを出力するか、非同期クロックに同期してデータを出力するかを切り替え可能であってもよい。
 図6は、メモリ40に記憶されたデータの一例を示す図である。メモリ40は、コンフィグレーションモードにおいて、複数のアドレスのそれぞれに対応させて、予め生成されたコンフィグレーションデータが書き込まれる。例えば、図6の例においては、8ビットのアドレス(A1~A8)により表される256ワード分のコンフィグレーションデータが書き込まれる。
 すなわち、メモリ40は、入力データにより表される全ての論理パターンについて、対応するデータを記憶することができる。そして、メモリ40は、入力データを取得した場合、取得した入力データに対応して記憶しているデータを、出力データとして出力する。これにより、メモリ40は、予め設定された真理値表データに従った論理演算を実行する論理回路と同一の動作をすることができる。すなわち、メモリ40は、予め設定された論理演算を実行する回路として機能する。
 図7は、第1例に係るデータ処理装置20による演算処理の流れの一例を示す図である。データ処理装置20が備える複数の演算回路30は、M個のグループにより構成されているとともに、M個のグループが直列に接続されている。従って、データ処理装置20は、プロセッサ11から対象データを受け取った場合、対象データに対して、複数の論理演算を順次に実行することができる。そして、データ処理装置20は、対象データに対して複数の論理演算を順次に実行することにより得られた結果データを出力することができる。
 図8は、第2例に係るデータ処理装置20の構成を示す図である。第2例に係るデータ処理装置20は、図3に示した第1例に係るデータ処理装置20と略同一の構成および機能を有する。第2例に係るデータ処理装置20については、第1例に係るデータ処理装置20との相違点について説明する。
 第2例において、複数の演算回路30のそれぞれは、2つの入力データを取得する。2つの入力データのうちの一方は、順方向入力データであり、他方が逆方向入力データである。また、第2例において、複数の演算回路30のそれぞれは、2つの出力データを出力する。2つの出力データのうちの一方は、順方向出力データであり、他方が逆方向出力データである。
 図8において、複数の演算回路30のそれぞれが出力する順方向出力データの上位側のビット群をDUと示し、順方向出力データの下位側のビット群をDLと示す。図8において、複数の演算回路30のそれぞれが出力する逆方向出力データの上位側のビット群をGUと示し、逆方向出力データの下位側のビット群をGLと示す。
 ここで、M個のグループは、双方向に接続される。M個のグループのうちの第1グループから第(M-1)グループのそれぞれは、含まれる演算回路30から出力された順方向出力データを、次のグループに含まれる何れかの演算回路30に順方向入力データとして取得させるように接続される。また、M個のグループのうちの第Mグループから第2グループのそれぞれは、含まれる演算回路30から出力された逆方向出力データを、前のグループに含まれる何れかの演算回路30に逆方向入力データとして取得させるように接続される。
 より具体的には、M個のグループのうちの第1グループに含まれるN個の演算回路30のそれぞれは、プロセッサ11から与えられた対象データの一部分のビット群を、順方向入力データとして取得する。また、M個のグループのうちの第Mグループ(本例においては、第4グループ)に含まれるN個の演算回路30のそれぞれは、順方向出力データを、プロセッサ11へと与える結果データの一部分のビット群として出力する。
 M個のグループのうちの第mグループに含まれるN個の演算回路30のそれぞれは、M個のグループのうちの第(m-1)グループに含まれるN個の演算回路30のうちの所定個の演算回路30のそれぞれから出力された順方向出力データの一部分のビット群の組み合わせを、順方向入力データとして取得する。
 例えば、第mグループに含まれるN個の演算回路30のうちの第n演算回路30-(m,n)は、(m-1)グループに含まれるN個の演算回路30のうちの、第n演算回路30-(m-1,n)から出力された順方向出力データの上位側ビット群と、第(n+1)演算回路30-(m-1,n+1)から出力された順方向出力データの下位側ビット群との組み合わせを、順方向入力データとして取得する。
 また、第mグループに含まれるN個の演算回路30のうちの第N演算回路30-(m,N)は、(m-1)グループに含まれるN個の演算回路30のうちの、第N演算回路30-(m-1,N)から出力された順方向出力データの上位側ビット群と、第1演算回路30-(m-1,1)から出力された順方向出力データの下位側ビット群との組み合わせを、順方向入力データとして取得する。
 また、より具体的には、M個のグループのうちの第Mグループ(本例においては、第4グループ)に含まれるN個の演算回路30のそれぞれは、プロセッサ11から与えられた対象データの一部分のビット群を、逆方向入力データとして取得する。また、M個のグループのうちの第1グループに含まれるN個の演算回路30のそれぞれは、逆方向出力データを、プロセッサ11へと与える結果データの一部分のビット群として出力する。
 M個のグループのうちの第m´グループ(m´は、1以上、(M-1)以下の整数)に含まれるN個の演算回路30のそれぞれは、M個のグループのうちの第(m´+1)グループに含まれるN個の演算回路30のうちの所定個の演算回路30のそれぞれから出力された逆方向出力データの一部分のビット群の組み合わせを、逆方向入力データとして取得する。
 例えば、第m´グループに含まれるN個の演算回路30のうちの第n´演算回路30-(m´,n´)(n´は、2以上、N以下の整数)は、(m´+1)グループに含まれるN個の演算回路30のうちの、第(n´-1)演算回路30-(m´+1,n´-1)から出力された逆方向出力データの上位側ビット群と、第n´演算回路30-(m´+1,n´)から出力された逆方向出力データの下位側ビット群との組み合わせを、逆方向入力データとして取得する。
 また、第m´グループに含まれるN個の演算回路30のうちの第1演算回路30-(m´,1)は、(m´+1)グループに含まれるN個の演算回路30のうちの、第N演算回路30-(m´+1,N)から出力された逆方向出力データの上位側ビット群と、第1演算回路30-(m´+1,1)から出力された逆方向出力データの下位側ビット群との組み合わせを、逆方向入力データとして取得する。
 図9は、第2例に係る演算回路30の構成を示す図である。図9には、第mグループに含まれる第n演算回路30-(m,n)の接続関係が示されている。
 演算回路30-(m,n)は、メモリ40に代えて、順方向メモリ82と、逆方向メモリ84と、論理和回路86とを有する。
 順方向メモリ82は、複数のアドレスのそれぞれに対応させてコンフィグレーションデータを記憶する。順方向メモリ82は、複数のアドレスのうちの何れか1つのアドレスを指定する順方向入力データを取得した場合、順方向入力データに対応させて記憶しているコンフィグレーションデータを出力データとして出力する。
 また、逆方向メモリ84は、複数のアドレスのそれぞれに対応させてコンフィグレーションデータを記憶する。逆方向メモリ84は、複数のアドレスのうちの何れか1つのアドレスを指定する逆方向入力データを取得した場合、逆方向入力データに対応させて記憶しているコンフィグレーションデータを出力データとして出力する。
 なお、順方向メモリ82および逆方向メモリ84は、第1例に係るメモリ40と同一の構成である。ただし、順方向メモリ82および逆方向メモリ84は、記憶しているデータのビット幅が、メモリ40の2倍である。すなわち、順方向メモリ82および逆方向メモリ84は、アドレスのビット幅に対して、記憶しているデータのビット幅が2倍である。
 図9の例において、順方向メモリ82は、8ビット長の順方向入力データ(A1~A8)を、アドレスとして取得する。また、図9の例において、逆方向メモリ84は、8ビット長の逆方向入力データ(A1~A8)を、アドレスとして取得する。そして、図9の例において、順方向メモリ82および逆方向メモリ84は、16ビット長の出力データ(D1~D16)を出力する。
 論理和回路86は、順方向メモリ82から出力された出力データと、逆方向メモリ84から出力された出力データとを対応するビット同士で論理和演算した論理和データを生成する。例えば、論理和回路86は、D1のビット同士、D2のビット同士、および、D16のビット同士を論理和演算した16ビットの論理和データ(D1~D16)を生成する。
 そして、論理和回路86は、論理和データのうちの一部分のビット群を順方向出力データとして出力する。また、論理和回路86は、論理和データのうち順方向出力データとして出力されない他の一部分のビット群を逆方向出力データとして出力する。
 図9の例において、論理和回路86は、論理和データのうちのD9~D16の8ビット長のデータを、順方向出力データとして出力する。また、論理和回路86は、論理和データのうちのD1~D86の8ビット長のデータを、逆方向出力データとして出力する。
 このような構成の演算回路30-(m,n)は、順方向入力データに対して論理演算した結果を、順方向出力データとして出力することも、逆方向出力データとして出力することもできる。また、このような構成の演算回路30-(m,n)は、逆方向入力データに対して論理演算した結果を、順方向出力データとして出力することも、逆方向出力データとして出力することもできる。
 図10は、第2例に係るデータ処理装置20による演算処理の流れの一例を示す図である。データ処理装置20が備える複数の演算回路30は、M個のグループにより構成されているとともに、M個のグループが双方向に直列に接続されている。
 従って、データ処理装置20は、プロセッサ11から対象データを受け取った場合、対象データに対して、複数の論理演算を実行することができる。そして、データ処理装置20は、対象データに対して複数の論理演算を実行することにより得られた結果データを出力することができる。
 第2例に係るデータ処理装置20は、途中の演算回路30において、論理演算結果を後段のグループから前段のグループへと逆方向に転送することもできる。これにより、第2例に係るデータ処理装置20は、設計の自由度を大きくして、実行可能な論理回路を多くすることができる。
 (生成装置110)
 図11は、実施形態に係る生成装置110および情報処理装置10を示す図である。生成装置110は、コンピュータがプログラムを実行することにより実現される。生成装置110は、ネットワーク上のサーバにより実現されてもよい。生成装置110は、複数のコンピュータが協働して動作する装置であってもよい。
 生成装置110は、図1から図10を参照して説明した情報処理装置10に備えられるデータ処理装置20に対して設定するためのコンフィグレーションデータを生成する。コンフィグレーションデータは、例えば、情報処理装置10が備える不揮発メモリ13に記憶され、コンフィグレーションモードにおいて、データ処理装置20が有する複数のメモリ40に書き込まれる。なお、コンフィグレーションデータは、サーバ等に記憶され、コンフィグレーションモードにおいて、データ処理装置20がネットワークを介してサーバ等からダウンロードしてもよい。
 図12は、実施形態に係る生成装置110の構成を示す図である。生成装置110は、取得部122と、論理合成部124と、配置配線部126と、マッピング部128と、検出部132と、置換部134とを備える。
 取得部122は、データ処理装置20に実行させるデータ処理に対応する論理回路をレジスタ転送レベルにより記述したRTL(Register Transfer Level)記述データを取得する。例えば、取得部122は、論理検証済みのRTL記述データを取得する。
 論理合成部124は、RTL記述データを、論理回路をゲートレベルにより記述したゲートレベル記述データに変換する。ゲートレベル記述データは、複数の回路要素を接続した状態の論理回路を表すデータである。例えば、論理合成部124は、予め生成されている回路要素のライブラリを参照して、ゲートレベル記述データを生成する。論理合成部124は、さらに、ゲートレベル記述データに記述された論理回路を論理検証してもよい。
 配置配線部126は、ゲートレベル記述データに基づき、配置処理、および、配線処理を実行する。配置配線部126は、配置処理において、論理回路に含まれる複数の要素のそれぞれをデータ処理装置20が備える複数の演算回路30に配置する。また、配置配線部126は、配線処理において、論理回路に従ったデータ処理がされるように複数の演算回路30のそれぞれの間を接続する配線を生成する。
 マッピング部128は、配置処理および配線処理がされたゲートレベル記述データに基づき、複数の演算回路30のそれぞれ毎に、メモリ40に記憶させるコンフィグレーションデータを生成する。すなわち、マッピング部128は、複数の演算回路30のそれぞれについて、メモリ40の全てのアドレスと、全てのアドレスのそれぞれに記憶させるデータとを記述した真理値表データを、コンフィグレーションデータとして生成する。コンフィグレーションデータは、複数の演算回路30のそれぞれが有するメモリ40に書き込まれる。
 検出部132は、論理回路を記述した記述データを解析して、論理回路に含まれるD型フリップフロップを検出する。本実施形態においては、検出部132は、記述データであるゲートレベル記述データを解析して、ゲートレベル記述データに含まれるD型フリップフロップを検出する。
 置換部134は、検出部132により検出され記述データに含まれるD型フリップフロップを、バッファ回路に置き換える。本実施形態においては、置換部134は、ゲートレベル記述データに含まれるD型フリップフロップを、バッファ回路に置き換える。
 なお、検出部132は、記述データであるRTL記述データを解析して、RTL記述データに含まれるD型フリップフロップを検出してもよい。この場合、置換部134は、RTL記述データに含まれるD型フリップフロップを、バッファ回路に置き換える。
 配置配線部126は、ゲートレベル記述データに含まれる置き換え後のバッファ回路を、データ処理装置20が備える複数の演算回路30のうちの何れかの演算回路30に配置する。これにより、演算回路30は、バッファ回路に従った論理演算を実行することができる。
 ここで、複数の演算回路30のそれぞれは、図5に示したようにメモリ40にクロック信号が与えられ、クロック信号のタイミングにおいて、メモリ40からデータが出力される。従って、複数の演算回路30のそれぞれは、バッファ回路に従った論理演算を実行した場合、D型フリップフロップと同一の動作をする。すなわち、複数の演算回路30のそれぞれは、D型フリップフロップとして機能することができる。
 なお、置換部134は、D型フリップフロップに与えられるクロック信号が、データ処理装置20に含まれる各回路に与えられる同期クロックであるか、前段の演算回路30から出力データが出力されたタイミングにおいて発生する非同期クロックであるかを検出してもよい。
 D型フリップフロップに与えられるクロック信号が同期クロックである場合、配置配線部126は、内部のメモリ40に同期クロックが与えられる演算回路30に、置き換え後のバッファ回路を配置する。また、D型フリップフロップに与えられるクロック信号が非同期クロックである場合、配置配線部126は、内部のメモリ40に非同期クロックが与えられる演算回路30に、置き換え後のバッファ回路を配置する。
 なお、生成装置110は、取得部122が取得したRTL記述データを、直接、コンフィグレーションデータに変換する構成であってもよい。すなわち、生成装置110は、取得部122が取得したRTL記述データを、直接、真理値表データに変換する構成であってもよい。この場合、検出部132は、コンフィグレーションデータへの変換の前に、RTL記述データを解析して、RTL記述データに含まれるD型フリップフロップを検出する。そして、この場合、置換部134は、RTL記述データに含まれるD型フリップフロップを、バッファ回路に置き換える。
 図13は、記述データにより記述されたカウンタ回路200の一例を示す図である。例えば、データ処理装置20に実行させるデータ処理の一例として、図13に示されるようなカウンタ回路200が記述データ(RTL記述データまたはゲートレベル記述データ)に記述されているとする。
 カウンタ回路200は、第1出力端子211と、第2出力端子212と、第3出力端子213と、第1D型フリップフロップ221と、第2D型フリップフロップ222と、第3D型フリップフロップ223と、インバータ回路224と、第1EXOR回路225と、AND回路226と、第2EXOR回路227とを含む。
 第1D型フリップフロップ221は、クロック端子にクロック信号が供給され、D端子にインバータ回路224の出力値が供給され、Q端子が第1出力端子211に接続される。第2D型フリップフロップ222は、クロック端子にクロック信号が供給され、D端子に第1EXOR回路225の出力値が供給され、Q端子が第2出力端子212に接続される。第3D型フリップフロップ223は、クロック端子にクロック信号が供給され、D端子に第2EXOR回路227の出力値が供給され、Q端子が第3出力端子213に接続される。
 インバータ回路224は、第1出力端子211の論理値を反転した論理値を出力する。第1EXOR回路225は、第1出力端子211の論理値と、第2出力端子212の論理値との排他的論理和を表す論理値を出力する。
 AND回路226は、第1出力端子211の論理値と、第2出力端子212の論理値との論理積を表す論理値を出力する。第1EXOR回路225は、AND回路226の出力値と、第3出力端子213の論理値との排他的論理和を表す論理値を出力する。
 このようなカウンタ回路200は、第1出力端子211、第2出力端子212および第3出力端子213から、クロック信号の立上りエッジ毎に値を増加させる3ビットの値を出力することができる。
 図14は、置き換え処理後のカウンタ回路200の一例を示す図である。生成装置110は、図13に示すようなカウンタ回路200が記述データに記述されている場合、第1D型フリップフロップ221、第2D型フリップフロップ222および第3D型フリップフロップ223を、第1バッファ回路231、第2バッファ回路232および第3バッファ回路233に置き換える。
 第1バッファ回路231は、インバータ回路224の出力値が入力端子に与えられ、出力端子が第1出力端子211に接続される。第2バッファ回路232は、第1EXOR回路225の出力値が入力端子に与えられ、出力端子が第2出力端子212に接続される。第3バッファ回路233は、第2EXOR回路227の出力値が入力端子に与えられ、出力端子が第3出力端子213に接続される。
 図15は、データ処理装置20に配置されたカウンタ回路200の一例を示す図である。生成装置110は、第1バッファ回路231、第2バッファ回路232および第3バッファ回路233を、例えば、何れかの1または複数の演算回路30に配置することができる。
 図15の例において、生成装置110は、第1バッファ回路231の入力端子が、演算回路30-(x,y)におけるA8となり、第1バッファ回路231の出力端子が、演算回路30-(x,y)におけるD8となるように、配置および配線をしている。なお、x、yは、1以上の任意の整数である。
 また、生成装置110は、第2バッファ回路232の入力端子が、演算回路30-(x,y)におけるA7となり、第2バッファ回路232の出力端子が、演算回路30-(x,y)におけるD7となるように、配置および配線をしている。また、生成装置110は、第3バッファ回路233の入力端子が、演算回路30-(x,y)におけるA6となり、第3バッファ回路233の出力端子が、演算回路30-(x,y)におけるD6となるように、配置および配線をしている。
 なお、図15において、インバータ回路224、第1EXOR回路225、AND回路226および第2EXOR回路227は、演算回路30-(x,y)以外の演算回路30により実現される。
 図16は、演算回路30-(x,y)が有するメモリ40に書き込まれるデータの一例を示す図である。また、生成装置110は、図15に示すような配置によりカウンタ回路200をデータ処理装置20により実現する場合、演算回路30-(x,y)が有するメモリ40に記憶させるコンフィグレーションデータを生成するために、図16に示すような真理値表データを生成する。
 すなわち、生成装置110は、演算回路30-(x,y)におけるA8とD8とが同一の論理値となり、A7とD7とが同一の論理値となり、A6とD6とが同一の論理値となるような、真理値表データを生成する。これにより、生成装置110は、第1バッファ回路231、第2バッファ回路232および第3バッファ回路233に従った論理演算を、演算回路30-(x,y)により実行させることができる。
 以上のように、本実施形態に係る生成装置110は、プログラム可能なデータ処理装置20に実行させる論理回路を表す記述データにD型フリップフロップが含まれる場合、D型フリップフロップをバッファ回路に置き換える。これにより、本実施形態に係る生成装置110によれば、プログラム可能なデータ処理装置20に、D型フリップフロップを含む論理回路に対応するデータ処理を簡易に実行させることができる。
 図17は、生成装置110のハードウェア構成を示す図である。生成装置110は、例えば、図17に示すようなハードウェア構成のコンピュータにより実現される。
 生成装置110は、CPU401と、ROM(Read Only Memory)402と、RAM(Random Access Memory)403と、記憶デバイス404と、ネットワークI/F406と、ディスプレイ411と、表示I/F412と、入力デバイス413と、入力I/F414とを有する。CPU401、ROM402、RAM403、記憶デバイス404、ネットワークI/F406、表示I/F412および入力I/F414は、バスにより接続されている。
 CPU401は、記憶デバイス404に記憶されたプログラムをRAM403に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。ROM402には、オペレーティングシステムの起動用プログラムを記憶デバイス404からRAM403に読み出すスタートプログラムが記憶されている。
 記憶デバイス404は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶デバイス404は、オペレーティングシステム、アプリケーションプログラムおよびデータを記憶している。これらのプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディアに記録して配布される。また、プログラムは、サーバからダウンロードすることにより配布されてもよい。ネットワークI/F406は、例えばネットワークに接続するためのインターフェース装置である。
 ディスプレイ411は、情報を表示するデバイスである。表示I/F412は、CPU401の制御に従ってディスプレイ411に画像信号を供給する。入力デバイス413は、キーボード、マウスおよびタッチパネル等であり、ユーザによる操作情報を取得する。入力I/F414は、CPU401の制御に従って、入力デバイス413が取得した情報をRAM403に記憶させる。
 本実施形態の生成装置110で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
 また、生成装置110で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、生成装置110で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、生成装置110で実行されるプログラムを、ROM402等に予め組み込んで提供するように構成してもよい。
 コンピュータを生成装置110として機能させるためのプログラムは、取得モジュールと、論理合成モジュールと、配置配線モジュールと、マッピングモジュールと、検出モジュールと、置換モジュールとを含む。生成装置110は、実際のハードウェアとしてはプロセッサ(CPU401)が記憶媒体(記憶デバイス404等)からプログラムを読み出して実行することにより、各モジュールが主記憶装置(RAM403)上にロードされる。これにより、プロセッサ(CPU401)は、取得部122、論理合成部124、配置配線部126、マッピング部128、検出部132および置換部134として機能する。なお、生成装置110は、取得部122、論理合成部124、配置配線部126、マッピング部128、検出部132および置換部134の構成の一部または全部がハードウェアにより実現されていてもよい。
 以上、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。実施形態は、種々の変更を行うことができる。
10 情報処理装置
11 プロセッサ
12 メインメモリ
13 不揮発メモリ
14 アナログ入出力回路
15 インターフェース回路
20 データ処理装置
30 演算回路
40 メモリ
62 メモリセル
64 アドレスデコーダ
66 書込制御回路
68 出力制御回路
82 順方向メモリ
84 逆方向メモリ
86 論理和回路
110 生成装置
122 取得部
124 論理合成部
126 配置配線部
128 マッピング部
132 検出部
134 置換部
200 カウンタ回路
211 第1出力端子
212 第2出力端子
213 第3出力端子
221 第1D型フリップフロップ
222 第2D型フリップフロップ
223 第3D型フリップフロップ
224 インバータ回路
225 第1EXOR回路
226 AND回路
227 第2EXOR回路
231 第1バッファ回路
232 第2バッファ回路
233 第3バッファ回路

Claims (10)

  1.  論理回路に対応するデータ処理を実行し、前記データ処理をプログラム可能なデータ処理装置に対して設定するためのコンフィグレーションデータを生成する生成装置であって、
     前記データ処理装置は、複数の演算回路を備え、
     前記複数の演算回路のそれぞれは、複数のアドレスのそれぞれに対応させて前記コンフィグレーションデータを記憶し、前記複数のアドレスのうちの何れか1つのアドレスを指定する入力データを取得した場合、前記入力データに対応させて記憶している前記コンフィグレーションデータを出力データとして出力するメモリを有し、
     前記生成装置は、
     前記論理回路を記述した記述データを解析して、前記論理回路に含まれるD型フリップフロップを検出する検出部と、
     前記記述データに含まれる前記D型フリップフロップを、バッファ回路に置き換える置換部と、
     置換処理後の前記記述データを前記コンフィグレーションデータに変換するマッピング部と、
     を備える生成装置。
  2.  前記複数の演算回路は、直列に並べられたM個(Mは、2以上の整数)のグループにより構成され、
     前記M個のグループのうちの第1グループから第(M-1)グループのそれぞれは、含まれる演算回路から出力された前記出力データを、次のグループに含まれる何れかの演算回路に前記入力データとして取得させるように接続される
     請求項1に記載の生成装置。
  3.  前記論理回路をレジスタ転送レベルにより記述したRTL記述データを取得する取得部と、
     前記RTL記述データを、前記論理回路をゲートレベルにより記述したゲートレベル記述データに変換する論理合成部と、
     前記ゲートレベル記述データに基づき、前記論理回路に含まれる複数の要素のそれぞれを前記データ処理装置が備える前記複数の演算回路に配置する配置処理、および、前記論理回路に従った前記データ処理がされるように前記複数の演算回路のそれぞれの間を接続する配線を生成する配線処理を実行する配置配線部と、
     をさらに備え、
     前記マッピング部は、前記配置処理および前記配線処理がされた前記ゲートレベル記述データに基づき、前記複数の演算回路のそれぞれ毎に前記メモリに記憶させる前記コンフィグレーションデータを生成する
     請求項2に記載の生成装置。
  4.  前記検出部は、前記記述データであるRTL記述データを解析して、前記RTL記述データに含まれる前記D型フリップフロップを検出し、
     前記置換部は、前記RTL記述データに含まれる前記D型フリップフロップを、前記バッファ回路に置き換える
     請求項2または3に記載の生成装置。
  5.  前記検出部は、前記記述データであるゲートレベル記述データを解析して、前記ゲートレベル記述データに含まれる前記D型フリップフロップを検出し、
     前記置換部は、前記ゲートレベル記述データに含まれる前記D型フリップフロップを、前記バッファ回路に置き換える
     請求項2または3に記載の生成装置。
  6.  前記データ処理装置は、対象データを受け取り、前記対象データに対して前記データ処理を実行した結果データを出力し、
     前記M個のグループのそれぞれは、2以上の演算回路を有し、
     前記M個のグループのうちの第1グループに含まれる2以上の演算回路のそれぞれは、前記対象データの一部分のビット群を前記入力データとして取得し、
     前記M個のグループのうちの第mグループ(mは、2以上、M以下の整数)に含まれる2以上の演算回路のそれぞれは、前記M個のグループのうちの第(m-1)グループに含まれる2以上の演算回路のうちの所定個の演算回路のそれぞれから出力された前記出力データの一部分のビット群の組み合わせを、前記入力データとして取得し、
     前記M個のグループのうちの第Mグループに含まれる2以上の演算回路のそれぞれは、前記出力データを前記結果データの一部分のビット群として出力する
     請求項2から5の何れか1項に記載の生成装置。
  7.  前記M個のグループのそれぞれは、N個(Nは、2以上の整数)の演算回路を有し、
     前記第mグループに含まれるN個の演算回路のうちの第n演算回路(nは、1以上(N-1)以下の整数)は、前記(m-1)グループに含まれるN個の演算回路のうちの第n演算回路から出力された前記出力データの下位側ビット群と、第(n+1)演算回路から出力された前記出力データの上位側ビット群との組み合わせを、前記入力データとして取得し、
     前記第mグループに含まれるN個の演算回路のうちの第N演算回路は、前記(m-1)グループに含まれるN個の演算回路のうちの、第N演算回路から出力された前記出力データの下位側ビット群と、第1演算回路から出力された前記出力データの上位側ビット群との組み合わせを、前記入力データとして取得する
     請求項6に記載の生成装置。
  8.  前記複数の演算回路のそれぞれは、前記メモリに代えて、
     複数のアドレスのそれぞれに対応させて前記コンフィグレーションデータを記憶し、前記複数のアドレスのうちの何れか1つのアドレスを指定する順方向入力データを取得した場合、前記順方向入力データに対応させて記憶している前記コンフィグレーションデータを前記出力データとして出力する順方向メモリと、
     複数のアドレスのそれぞれに対応させて前記コンフィグレーションデータを記憶し、前記複数のアドレスのうちの何れか1つのアドレスを指定する逆方向入力データを取得した場合、前記逆方向入力データに対応させて記憶している前記コンフィグレーションデータを前記出力データとして出力する逆方向メモリと、
     前記順方向メモリから出力された前記出力データと前記逆方向メモリから出力された前記出力データとを対応するビット同士で論理和演算した論理和データを生成し、前記論理和データのうちの一部分のビット群を順方向出力データとして出力し、前記論理和データのうち前記順方向出力データとして出力されない他の一部分のビット群を逆方向出力データとして出力する論理和回路と、
     を有し、
     前記複数の演算回路は、直列に並べられたM個(Mは、2以上の整数)のグループに分割され、
     前記M個のグループのうちの第1グループから第(M-1)グループのそれぞれは、含まれる演算回路から出力された前記順方向出力データを、次のグループに含まれる何れかの演算回路に前記順方向入力データとして取得させるように接続され、
     前記M個のグループのうちの第Mグループから第2グループのそれぞれは、含まれる演算回路から出力された前記逆方向出力データを、前のグループに含まれる何れかの演算回路に前記逆方向入力データとして取得させるように接続される
     請求項2から5の何れか1項に記載の生成装置。
  9.  コンピュータが、論理回路に対応するデータ処理を実行し、前記データ処理をプログラム可能なデータ処理装置に対して設定するためのコンフィグレーションデータを生成する生成方法であって、
     前記データ処理装置は、複数の演算回路を備え、
     前記複数の演算回路のそれぞれは、複数のアドレスのそれぞれに対応させて前記コンフィグレーションデータを記憶し、前記複数のアドレスのうちの何れか1つのアドレスを指定する入力データを取得した場合、前記入力データに対応させて記憶している前記コンフィグレーションデータを出力データとして出力するメモリを有し、
     前記生成方法において、
     コンピュータが、前記論理回路を記述した記述データを解析して、前記論理回路に含まれるD型フリップフロップを検出し、
     前記記述データに含まれる前記D型フリップフロップを、バッファ回路に置き換え、
     置換処理後の前記記述データを前記コンフィグレーションデータに変換する
     生成方法。
  10.  コンピュータを、論理回路に対応するデータ処理を実行し、前記データ処理をプログラム可能なデータ処理装置に対して設定するためのコンフィグレーションデータを生成する生成装置として機能させるためのプログラムであって、
     前記データ処理装置は、複数の演算回路を備え、
     前記複数の演算回路のそれぞれは、複数のアドレスのそれぞれに対応させて前記コンフィグレーションデータを記憶し、前記複数のアドレスのうちの何れか1つのアドレスを指定する入力データを取得した場合、前記入力データに対応させて記憶している前記コンフィグレーションデータを出力データとして出力するメモリを有し、
     前記コンピュータを、
     前記論理回路を記述した記述データを解析して、前記論理回路に含まれるD型フリップフロップを検出する検出部と、
     前記記述データに含まれる前記D型フリップフロップを、バッファ回路に置き換える置換部と、
     置換処理後の前記記述データを前記コンフィグレーションデータに変換するマッピング部と、
     して機能させるプログラム。
PCT/JP2020/034786 2019-09-27 2020-09-14 生成装置、生成方法およびプログラム WO2021060059A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-177928 2019-09-27
JP2019177928 2019-09-27

Publications (1)

Publication Number Publication Date
WO2021060059A1 true WO2021060059A1 (ja) 2021-04-01

Family

ID=75165695

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/034786 WO2021060059A1 (ja) 2019-09-27 2020-09-14 生成装置、生成方法およびプログラム

Country Status (1)

Country Link
WO (1) WO2021060059A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014080872A2 (ja) * 2012-11-20 2014-05-30 太陽誘電株式会社 再構成可能な半導体装置の論理構成方法
WO2014163099A2 (ja) * 2013-04-02 2014-10-09 太陽誘電株式会社 再構成可能な論理デバイス
JP2017038247A (ja) * 2015-08-11 2017-02-16 太陽誘電株式会社 再構成可能な半導体装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014080872A2 (ja) * 2012-11-20 2014-05-30 太陽誘電株式会社 再構成可能な半導体装置の論理構成方法
WO2014163099A2 (ja) * 2013-04-02 2014-10-09 太陽誘電株式会社 再構成可能な論理デバイス
JP2017038247A (ja) * 2015-08-11 2017-02-16 太陽誘電株式会社 再構成可能な半導体装置

Similar Documents

Publication Publication Date Title
TWI625631B (zh) 用於提供藉由狀態機器引擎所接收之資料之方法及裝置
TW201423581A (zh) 用於狀態機引擎之結果產生
JPH06103161A (ja) データを組合せるためのデータ・フィールド合成器
JPH0727458B2 (ja) 乗算器
US20060245101A1 (en) Data input circuit of semiconductor memory device
WO2021060059A1 (ja) 生成装置、生成方法およびプログラム
US7284113B2 (en) Synchronous periodical orthogonal data converter
JPH10508441A (ja) 多目的誤り訂正計算回路
US7386650B2 (en) Memory test circuit with data expander
WO2021130876A1 (ja) 生成装置、生成方法およびプログラム
JP5429164B2 (ja) 有限オートマトン生成システム
JP2007328894A (ja) 半導体記憶装置、および半導体記憶装置の検査方法
JP2002269162A (ja) 動作合成方法
JP5206063B2 (ja) 記述処理装置、記述処理方法およびプログラム
JP5545054B2 (ja) デバッグ回路及びデバッグシステム
JPS5962959A (ja) 記憶装置
JP3270659B2 (ja) 演算回路および演算方法
WO2021090711A1 (ja) データ処理装置および情報処理装置
JP2005128832A (ja) データ処理装置と剰余演算回路
JP2022042035A (ja) 表示システム、表示方法、及び表示プログラム
JP5072558B2 (ja) データ処理装置
JP3702475B2 (ja) 回路自動生成装置
JPH06236680A (ja) シリアルアドレス入力用メモリ装置及びシリアルアドレス発生装置
US7761822B2 (en) File information generating method, file information generating apparatus, and storage medium storing file information generation program
JP2001142681A (ja) デジタル除算回路、および被除数と除数とから商を計算するための方法

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: 20869545

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20869545

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP