The present invention relates to a reconfigurable circuit device and a receiving apparatus using the reconfigurable circuit device.
In recent years, reconfigurable devices as represented by field programmable gate arrays (FPGAs) have been widely used. The reconfigurable device is an integrated circuit which includes a plurality of logic elements and which is capable of performing any function by changing a function of each logic element or the connection state between the logic elements.
In the reconfigurable device as represented by an FPGA, a circuit description for the reconfigurable device is created by a user using, for example, a register transfer level (RTL) and C language; the circuit description is converted into data for realizing the circuit description in the reconfigurable device; and the data is configured in the reconfigurable device so as to use the reconfigurable device. However, once the data is configured in the reconfigurable device, it was impossible for a third party to know about accompanying information, such as the type of the circuit realized in the reconfigurable device and the version of the circuit.
As a solution to this problem, a conventional technique provides means for obtaining information about the circuit configured in the reconfigurable device by an external device, by adding a memory for storing accompanying information, such as version information, within a reconfigurable core of the reconfigurable device, and an interface for accessing the memory from the external of the reconfigurable device (see, for example, PATENT DOCUMENT 1).
PATENT DOCUMENT 1: Japanese Patent Publication No. 2001-14359
However, the means for solving the problem according to the conventional technique uses resources of the reconfigurable core. This may result in reduced resources for the circuit to be realized which needs flexibility.
In addition, since accompanying information such as version information is configured in the reconfigurable device, whether or not to perform configuration cannot be decided depending on the accompanying information.
To solve the above problems, a reconfigurable device according to the present invention includes a first control unit for outputting configuration data and accompanying information, a first storing unit for receiving and storing the accompanying information, and a core for receiving the configuration data and reconfiguring a circuit. It is possible to obtain information about a circuit configured in the reconfigurable core by reading the first storing unit from an external device, such as a CPU.
The reconfigurable device according to the present invention may include a first control unit for outputting configuration data and accompanying information, a first storing unit for receiving and storing the accompanying information, a second storing unit for receiving and storing expected value information, which is data set by a user or a system in which the device of the present invention is included, a first comparing unit for comparing an output of the first storing unit and an output of the second storing unit, a second control unit for receiving an output of the first comparing unit and determining an execution of a reconfiguration based on the output of the first comparing unit, and a reconfigurable core for receiving an output of the second control unit and reconfiguring a circuit.
The reconfigurable device according to the present invention may include a first control unit for outputting configuration data and accompanying information, a first storing unit for receiving and storing the accompanying information, a second storing unit for receiving and storing expected value information, which is data set by a user or a system in which the device of the present invention is included, a first comparing unit for comparing an output of the first storing unit and an output of the second storing unit, a second control unit for receiving an output of the first comparing unit and determining an execution of a read-back operation from a reconfigurable core based on the output of the first comparing unit, and a reconfigurable core for receiving the configuration data, reconfiguring a circuit, and having a read-back function.
A receiving apparatus according to the present invention includes a reconfigurable device of any one of the above reconfigurable devices, and a configuration in which configuration data and accompanying information both on a network are obtained, wherein the reconfigurable device further includes a second comparing unit for comparing accompanying information of configuration data in the reconfigurable device and the accompanying information of the configuration data on the network, and the configuration data in the reconfigurable device is updated according to a result of the comparison by the second comparing unit.
The receiving apparatus according to the present invention may include any one of the above reconfigurable devices, and a storage device connected to the reconfigurable device and having configuration data and accompanying information, wherein the reconfigurable device further includes a second comparing unit for comparing accompanying information of configuration data in the reconfigurable device and the accompanying information of the configuration data stored in the storage device, and the configuration data in the reconfigurable device is updated according to a result of the comparison by the second comparing unit.
As described in the above, it is possible to obtain circuit information configured in a reconfigurable device without consuming resources of a reconfigurable core. It is also possible to perform a function, such as control of execution of configuration, depending on accompanying information.
The accompanying information detection unit 203 detects the accompanying information in predetermined steps, and distinguishes between the configuration data and the accompanying information (the predetermined steps are described later in an example structure of the configuration data and its accompanying information). If the data distinguished by the accompanying information detection unit 203 is accompanying information, the accompanying information 204 is output to the first storing unit 103, and the valid flag 205 is asserted. At this time, invalid data (e.g., data in which all bits are “0”) is output as the configuration data 206 to the reconfigurable core 104, and the valid flag 207 is deasserted. If the data distinguished by the accompanying information detection unit 203 is configuration data, invalid data (e.g., data in which all bits are “0”) is output to the first storing unit 103, and the valid flag 205 is deasserted. At this time, the configuration data portion of the configuration data and its accompanying information 201 is output as the configuration data 206 to the reconfigurable core 104, and the valid flag 207 is asserted. Although the invalid data is described as data in which all bits are “0,” the data that is input to the accompanying information detection unit 203 may be output as it is, or the bits may be arbitrary bits other than “0.” Also, the valid flags 202, 205, and 207 may be a chip select signal, a write enable signal, an address signal, etc. The first valid flag 202 may be a signal for separating the accompanying information and the configuration data from each other.
According to the invention of Embodiment 1, information in the first storing unit 103 is read by an external device, such as a CPU, thereby allowing information about a circuit configured in the reconfigurable core 104 to be obtained from external.
The first control unit 304 in Embodiment 2 is the same as the first control unit 102 in Embodiment 1. The first control unit 304 distinguishes between the configuration data and its accompanying information, which are input in the first control unit 304, and stores the accompanying information in the first storing unit 305. The first control unit 304 outputs the configuration data to the second control unit 307. Accompanying information of the configuration data which the user wishes to configure is set beforehand in the second storing unit 306 from a device such as a CPU. Part or all of the accompanying information stored in the first storing unit 305 and part or all of the accompanying information stored in the second storing unit 306 are compared with each other, and the comparison result is output to the second control unit 307. In
If the comparison result 403 indicates a match, configuration is carried out. If the comparison result 403 indicates a mismatch, nothing is carried out. In the case where configuration is carried out, the input configuration data 401 is output to the reconfigurable core 309 as the configuration data 404, and the valid flag 405 is simultaneously asserted. In the case where configuration is not carried out, the configuration data 401 is not output as the configuration data 404, and the valid flag 405 is not asserted. Whether to configure the reconfigurable core 309 may be decided using only the signal of valid flag 405 indicating that the configuration data is valid, by allowing the configuration data 401 to pass through the second control unit 307 and to be directly output as the configuration data 404. Further, instead of deciding whether to perform configuration by using the second control unit 307, whether to operate a circuit actually configured in the reconfigurable core 309 may be decided. Moreover, in this example, whether to configure the reconfigurable core 309 is decided according to the comparison result 403 which indicates a match. However, it may also be decided according to the comparison result 403 which indicates a mismatch, or according to the comparison result 403 which indicates that one of the output of the first storing unit 305 and the output of the second storing unit 306 is greater than, smaller than, equal to or greater than, or equal to or smaller than the other.
According to the invention in Embodiment 2, accompanying information of the user-desired configuration data is stored in the second storing unit 306, and thereby, configuration of the reconfigurable core 309 using configuration data other than the user-desired configuration data, or operation of a circuit configured using the configuration data other than the user-desired configuration data can be prevented.
The second control unit 609 is configured to decide whether or not to read back data from the reconfigurable core 610 based on a result of comparison between part or all of the accompanying information of the data configured in the reconfigurable core 610 (i.e., data stored in the first storing unit 606) and part or all of the data set by the user (i.e., data stored in the second storing unit 607).
According to the invention of Embodiment 3, the output of read-back data which is unintended by the user can be avoided.
This enables the first control units 102, 304 and 605 described in Embodiments 1-3 to detect an identification code from the configuration data and the accompanying information in the above-described structure, and thereby the accompanying information and the configuration data can be separated from each other.
The identifier of the above comment is detected to extract version information from the source code 901. Information concerning date and time of an update is extracted by reading a time stamp of a source code file. Other methods include, if the source code is controlled by a version control system such as Concurrent Versions System (CVS), extracting accompanying information by sending an inquiry to the version control system. Also, information (e.g., name, current time, etc.) of a computer which generates configuration data and accompanying information may be used as accompanying information.
By these methods, data 905 in which the configuration data and accompanying information are combined can be automatically formed.
In the configuration of
According to Embodiment 4 shown in
Although the system LSI 1111 is described as including an accelerator, a reconfigurable core, reconfiguration control circuit, a CPU, a memory control circuit, a video I/F and a bus, the system LSI 1111 may include other function blocks, and some of the function blocks may be provided on a different chip. Also, although the CPU is used as comparison means, the comparison means does not have to be a CPU as long as it has a comparison function.
A system using the reconfigurable device according to Embodiment 1 has been described. However, any one of the reconfigurable devices according to Embodiments 1-3 may be used.
A digital television system has been described. However, the present invention can, of course, be applied to mobile phones, recorders, video cameras, still cameras, vehicle-mounted equipment, and so on.
In the above example, configuration data has been obtained from a network. However, the configuration data may be obtained from a storage, such as a hard disk and a flash memory.
As described in the above, the present invention is useful in using reconfigurable devices, as represented by FPGAs, in a system.
Number | Date | Country | Kind |
---|---|---|---|
2007-299097 | Nov 2007 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2008/002390 | 9/1/2008 | WO | 00 | 12/7/2009 |