Semiconductor integrated circuits, data transfer systems, and the method for data transfer
Summary by NHIP
Integrated circuit with dual decryption
The semiconductor integrated circuit connects to two external ROMs using separate decryption code blocks and decoder circuits. A configuration circuit determines the FPGA structure and the second decryption block, while a CPU processes data from the second ROM alongside an internal circuit controlled by both the FPGA and CPU.
Claim Score by NHIP
Abstract
A semiconductor integrated circuit configured for connection to an external ROM includes a decryption code block storing a decryption code; a decoder circuit connected to the decryption code block and decrypting encrypted data such that the encrypted data can be stored in the external ROM, by utilizing the decryption code; a configuration circuit connected to the decoder circuit; an FPGA circuit connected to the configuration circuit, the circuit structure of the FPGA circuit determined by the configuration circuit; and an internal circuit connected to the FPGA circuit, the circuit operation of which is determined by the FPGA circuit.

Term
Term ended
Expired 20 March 2023, 3.5 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
15 claims: 2 independent, 13 dependent
- 1Broadest claimClaim Score 43, average(NHIP)A semiconductor integrated circuit configured for connection to a first external ROM and a second external ROM, comprising:a first decryption code block storing a decryption code;a first decoder circuit connected to the first decryption code block and decrypting encrypted data stored in the first external ROM, by utilizing the decryption code in the first decryption code block;a configuration circuit connected to the first decoder circuit;an FPGA circuit connected to the configuration circuit, wherein the circuit structure of the FPGA circuit is determined by the configuration circuit;a second decryption code block connected to the configuration circuit and comprising a circuit structure, determined by the configuration circuit, for storing a decryption code;a second decoder circuit connected to the second decryption code block, wherein the second decoder circuit decrypts encrypted data stored in the second external ROM by using the decryption code in the second decryption code block;a CPU connected to the second decoder circuit, the CPU being operable in response to encrypted data stored in the second external ROM;and an internal circuit connected to the FPGA circuit and the CPU, the circuit operation of which is determined by the FPGA circuit and the CPU.
- 3A data transfer system configured for connection to external ROMs, comprising:a first external ROM storing encrypted FPGA circuit design information;a first decryption code block storing a decryption code;a first decoder circuit connected to the first decryption code block, wherein the first decoder circuit decrypts encrypted data from the first external ROM by utilizing the decryption code in the first decryption code block;a configuration circuit connected to the first decoder circuit;an FPGA circuit connected to the configuration circuit, the circuit structure of the FPGA circuit being determined by the configuration circuit;a second external ROM storing encrypted CPU software design information;a second decryption code block connected to the configuration circuit and comprising a circuit structure, determined by the configuration circuit, for storing a decryption code;a second decoder circuit connected to the second decryption code block, wherein the second decoder circuit decrypts encrypted data stored in the second external ROM by using the decryption code in the second decryption code block;a CPU connected to the second decoder circuit, the CPU being operable in response to the CPU software design information stored in the second external ROM;and an internal circuit connected to the FPGA circuit and the CPU, the circuit operation of the internal circuit being determined by the FPGA circuit and the CPU.
Independent claims2
291 paragraphs in 7 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
This application is based upon and claims the benefit of priority from prior Japanese Patent Applications P2002-S0073 filed on Mar. 22, 2002 and P2003-68392 filed on Mar. 13, 2003; the entire contents of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to semiconductor integrated circuits, in particular, it relates to semiconductor integrated circuits that have data input is from an external ROM, data transfer systems utilizing the semiconductor integrated circuits, and a method for data transfer for the semiconductor integrated circuit.
2. Description of the Related Art
There are semiconductor integrated circuits that have been developed with an embedded field programmable gate array (FPGA). An FPGA is a programmable logic device that allows user-design and operation. Lately, increases in integration, and as a result, increased appeal, have led to widespread usage of RAM FPGA circuits. RAM FPGA circuits allow reset of the circuit configuration each time the user turns on the power, as well as dynamic changes in the circuit configuration. Nevertheless, static random access memory (SRAM) is normally used with the RAM FPGA circuit, and because of the characteristics of volatile memory, the circuit data is erased each time the power supply is turned off As a result, configuration, which is an operation that promptly writes circuit data from an external read only memory (ROM), must be performed each time the power supply is switched on. In this case, configuration is an operation that includes inputting circuit-specific programming data into one or a plurality of FPGA, and connecting logic modules to surrounding internal connection path transistors to regulate functions. Immediately following configuration, the semiconductor integrated circuit is initialized, and then normal operation of the semiconductor integrated circuit begins.
With the conventional semiconductor integrated circuits and the data transfer systems such as those described above, the following problems occur: In an FPGA circuit where non-volatile memory (ROM) is used instead of RAM, design data written in the non-volatile memory can be easily read out externally. Accordingly, in the case of a ROM FPGA circuit, design data can be read out and parsed. Recent technology for FPGA circuits using ROM type non-volatile memory includes a technique where output buffer characteristics at the design data read-out terminal are changed after design data has been written to prevent the content of the internal non-volatile memory (ROM) from being externally read out. While this design data read out prevention using non-volatile memory (ROM) which can be used for IC products embedded with a non-volatile memory (ROM) FPGA circuit, it cannot be used for semiconductor integrated circuit products embedded with a RAM FPGA circuit. This is because circuit data must be input from the external ROM when the power supply is switched on, since the circuit data stored in the volatile memory (RAM) disappears when the power supply is cut off.
However, therein lies a problem where, since the FPGA circuit is all-purpose, analysis of the data stored in the external ROM allows for easy reading as to what kind of circuit should be formed and how the FPGA circuit should function. Thus, if a RAM FPGA circuit is used, since design data is stored on an external ROM and both the FPGA circuit and the external ROM are mounted on the same board, the confidential information contained in the design data can be easily revealed through analysis of the external ROM data. Among other things, this situation makes so-called “dead” copies possible. Accordingly, a semiconductor integrated circuit embedded with an FPGA circuit capable of protecting the secrecy of design data is also desired for a semiconductor integrated circuit embedded with a RAM FPGA circuit.
Similarly, in a semiconductor integrated circuit or system which has an internal CPU and operates by reading software in or from an external ROM, confidential software design data can be easily revealed through analysis of external ROM data. Since CPU instructions are generally published, the software program codes can easily be interpreted by analyzing ROM data. Accordingly, a high-security semiconductor integrated circuit that does not permit either design data or software read out is desired.
SUMMARY OF THE INVENTION
A first aspect of the present invention provides a semiconductor integrated circuit configured for connection to an external ROM which comprises a decryption code block storing a decryption code; a decoder circuit connected to the decryption code block and decrypting encrypted data such (hat the encrypted data can be stored in the external ROM, by utilizing the decryption code; a configuration circuit connected to the decoder circuit; an FPGA circuit connected to the configuration circuit, the circuit structure of the FPGA circuit determined by the configuration circuit; kind an internal circuit connected to the FPGA circuit and the circuit operation of which is determined by the FPGA circuit.
A second aspect of the present invention provides a semiconductor integrated circuit configured for connection to an external ROM which comprises a decryption code block storing a decryption code; a decoder circuit connected to the decryption code block and decrypting encrypted software data such that the encrypted software data can be stored in the external ROM, by utilizing the decryption code; a CPU connected to the decoder circuit; and an internal circuit connected to the CPU and the circuit operation of the internal circuit determined by the CPU.
A third aspect of the present invention provides a data transfer system configured for connection to an external ROM which comprises a first integrated semiconductor chip integrating the fist external ROM storing encrypted FPGA circuit design information; and a second integrated semiconductor chip comprising a first decryption code block storing a decryption code; a first decoder circuit connected to the first decryption code block and decrypting encrypted data from the first external ROM by utilizing the decryption code; a configuration circuit connected to the first decoder circuit; an FPGA circuit connected to the configuration circuit, the circuit structure of the FPGA circuit determined by the configuration circuit; and an internal circuit connected to the FPGA circuit, the circuit operation of the internal circuit determined by the FPGA circuit.
A fourth aspect of the present invention provides a data transfer system which comprises a first integrated semiconductor chip integrating a first external ROM storing encrypted CPU software design information; and a second integrated semiconductor chip comprising: a decryption code block storing a decryption code; a decoder circuit connected to the decryption code block and decrypting encrypted software data from the first external ROM by utilizing the decryption code; a CPU connected to the decoder circuit; and an internal circuit connected to the CPU, the circuit operation of the internal circuit determined by the CPU.
A fifth aspect of the present invention provides a method for data transfer and comprises storing a decryption code in a decryption code block of a semiconductor integrated circuit; writing encrypted ROM data to a first external ROM; receiving the encrypted ROM data from the first external ROM and decoding the encrypted ROM data in a decoder circuit in the semiconductor integrated circuit; determining whether all of the encrypted ROM data stored in the external ROM has been transferred to and received in the decoder circuit or not; repeating the determining operation, when all of the encrypted ROM data has not yet been transferred to and received in the decoder circuit; and shifting the FPGA circuit to a user mode and starting operation of the semiconductor integrated circuit, when all of the encrypted ROM data has been transferred to and received in the decoder circuit.
A sixth aspect of the present invention provides a method for data transfer and comprises storing a decryption code in a decryption code block in a semiconductor integrated circuit; writing encrypted ROM data to a first external ROM; requesting and determining a ROM address in the first external ROM by operation of a CPU in the semiconductor integrated circuit; decoding the encrypted ROM data in a decoder circuit in the semiconductor integrated circuit; and operating the CPU in response to a decrypted ROM data.
BRIEF DESCRIPTION OF DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram showing the configuration of an FPGA embedded semiconductor integrated circuit and data transfer system according to a comparative example of the present invention;
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram showing the configuration of a CPU embedded semiconductor integrated circuit and data transfer system according to another comparative example of the present invention;
<figref idref="DRAWINGS">FIG. 3</figref> is a block diagram showing the configuration of a semiconductor integrated circuit and data transfer system according to a first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart showing how a semiconductor integrated circuit and data transfer system according to the first embodiment of the present invention operate;
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram showing the configuration of a RAM FPGA circuit according to the first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram showing the RAM configuration of the RAM FPGA circuit according to the first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 7</figref> is a block diagram showing an exemplary D-type flip/flop to be used as the fundamental unit of the shift register configuring the RAM for the RAM FPGA circuit according to the first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 8</figref> is a block diagram showing the I/O register circuit configuration of the RAM FPGA circuit according to the first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 9</figref> is a flowchart describing a configuration method according to the first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 10</figref> is a logic circuit diagram representing the configuration of a decoder circuit and decryption code block according to the first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 11</figref> is a logic circuit diagram representing the configuration of a decoder circuit and decryption code block according to a modified example of the first embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 12</figref> is a block diagram showing the configuration of a semiconductor integrated circuit and data transfer system according to a second embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 13</figref> is a flowchart showing how a semiconductor integrated circuit and data transfer system according to the second embodiment of the present invention operate;
<figref idref="DRAWINGS">FIG. 14</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a third embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 15</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a fourth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 16</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a fifth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 17</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a sixth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 18</figref> is a flowchart showing how an ASIC and an ASIC system according to a sixth embodiment of the present invention operate;
<figref idref="DRAWINGS">FIG. 19</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a seventh embodiment of the present invention;
<figref idref="DRAWINGS">FIGS. 20A and 20B</figref> are a flowchart showing how an ASIC and an ASIC system according to a seventh embodiment of the present invention operate between CPU software encryption code determination and CPU operation;
<figref idref="DRAWINGS">FIG. 21</figref> is a flowchart showing how an ASIC and an ASIC system according to a seventh embodiment of the present invention operate between changing of the CPU software decryption code and CPU operation;
<figref idref="DRAWINGS">FIG. 22</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to an eighth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 23</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example 1 of the eighth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 24</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example 2 of the eighth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 25</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example 3 of the eighth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 26</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a ninth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 27</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example of the ninth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 28</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a tenth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 29</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example of the ninth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 30</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to an eleventh embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 31</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example of the eleventh embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 32</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a twelfth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 33</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example of the twelfth embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 34</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a thirteenth embodiment of the present invention; and
<figref idref="DRAWINGS">FIG. 35</figref> is a block diagram showing the configuration of an ASIC and an ASIC system according to a modified example of the thirteenth embodiment of the present invention.
DETAILED DESCRIPTION OF THE EMBODIMENTS
Various embodiments of the present invention will be described with reference to the accompanying drawings. It is to be noted that the same or similar reference numerals are applied to the same or similar parts and elements throughout the drawings, and the description of the same or similar parts and elements will be omitted or simplified.
Generally and as is conventional in the representation of circuit blocks, it will be appreciated that the various drawings are not drawn to scale from one figure to another nor inside a given figure, and in particular that the circuit diagrams are arbitrarily drawn for facilitating the reading of the drawings.
In the following descriptions, numerous specific details are set forth such as specific signal values, etc. to provide a thorough understanding of the present invention. However, it will be obvious to those skilled in the art that the present invention may be practiced without such specific details. In other instances, well-known circuits have been shown in block diagram form in order not to obscure the present invention in unnecessary detail.
At first, before beginning a detailed description of the first to the thirteenth embodiments of the present invention, comparative example 1 and 2 are examined as process as for explaining the present invention are presented.
The present invention relates to a semiconductor integrated circuit, data transfer system, and a method for data transfer. In the following embodiments, the first embodiment describes a semiconductor integrated circuit and a data transfer system embedded with an FPGA circuit. The second embodiment describes a semiconductor integrated circuit and a data transfer system embedded with a CPU. The third embodiment describes an application specific integrated circuit (ASIC) and an ASIC system embedded with an encryption object circuit. The fourth embodiment describes an ASIC and an ASIC system embedded with an FPGA circuit. The fifth embodiment describes an ASIC and an ASIC system embedded with a CPU. The sixth and seventh embodiments each describe an ASIC and an ASIC system embedded with an FPGA circuit and a CPU. The eighth embodiment describes an example where the ASIC, the FPGA circuit, etc., are mounted on separate chips in an FPGA embedded data transfer system. The ninth embodiment describes an example where plural external ROMs are provided, and the ASIC, the FPGA circuit, etc., are mounted on separate chips in a CPU embedded data transfer system. The tenth through thirteenth embodiments describe examples where a plurality of external ROMs are provided, and the ASIC, FPGA circuit, CPU, etc., are mounted on separate chips in an FPGA embedded data transfer system.
COMPARATIVE EXAMPLE 1
A RAM FPGA embedded semiconductor integrated circuit to be used as a comparative example of the present invention, as shown in <figref idref="DRAWINGS">FIG. 1</figref>, is a hybrid integrated circuit configured with an external ROM <b>50</b> and a semiconductor integrated circuit <b>51</b> respectively mounted on a printed circuit board <b>55</b>. The external ROM <b>50</b> is connected to the semiconductor integrated circuit <b>51</b>, which comprises a monolithic integrated circuit embedded with an FPGA circuit <b>53</b>. The external ROM <b>50</b> outputs data, in parallel, to the semiconductor integrated circuit <b>51</b>. The semiconductor integrated circuit <b>51</b> is configured with a configuration circuit <b>52</b>, which is connected to the external ROM <b>50</b> via a data bus line <b>56</b>, and an FPGA circuit <b>53</b>, which is connected to the configuration circuit <b>52</b>, and an internal circuit <b>54</b>.
RAM FPGA circuit <b>53</b> design data is stored in the external ROM <b>50</b>. A configuration circuit <b>52</b> which receives design data from the external ROM <b>50</b> is arranged in the semiconductor integrated circuit <b>51</b>. Circuit data from this configuration circuit <b>52</b> is received by the FPGA circuit <b>53</b> to configure the circuit within the FPGA circuit <b>53</b>. The FPGA circuit <b>53</b> is then able to implement a functional circuit that corresponds to the user's requirements.
Following formation of this functional circuit, the FPGA circuit <b>53</b> executes a circuit operation between it and an internal circuit <b>54</b> which is integrated within semiconductor integrated circuit <b>51</b>. Internally of this internal circuit <b>54</b> are circuits selected from a general purpose microprocessor, DSP core, memory, interface circuit, etc., which are determined in line with the intended purpose. Moreover, a data bus <b>56</b> having wiring connectors is provided of the integrated circuit, and the number of connectors is equal to the number of bits of FPGA design data transmitted from the external ROM <b>50</b>, on the printed circuit board <b>55</b> so as to connect the external ROM <b>50</b> and the semiconductor integrated circuit <b>51</b>.
COMPARATIVE EXAMPLE 2
A CPU core embedded data transfer system to be used as another comparative example, as shown in <figref idref="DRAWINGS">FIG. 2</figref>, is a hybrid integrated circuit configured with an external ROM <b>60</b> and a semiconductor integrated circuit <b>61</b>, respectively, mounted on a printed circuit board <b>66</b>. The external ROM <b>60</b> is connected to the semiconductor integrated circuit <b>61</b>, which comprises a monolithic integrated circuit having a CPU <b>62</b>-embedded structure. The external ROM <b>60</b>, which is semiconductor memory, has ports having one-to-one correspondence with the I/O ports of the semiconductor integrated circuit <b>61</b>, and outputs data in parallel to the semiconductor integrated Circuit <b>61</b>. The main structural elements of the semiconductor integrated circuit <b>61</b> include a CPU <b>62</b>, which is connected to the external ROM via an address bus data line <b>63</b> and a data bus line <b>64</b>, and an internal circuit <b>65</b> as components thereof.
Software data for the CPU <b>62</b> is stored in the external ROM <b>60</b>. The software data output from the external ROM <b>60</b> is input to the CPU <b>62</b>. Moreover, the CPU <b>62</b> and the external ROM <b>60</b> are directly connected via the address bus data line <b>63</b>, wherein the CPU <b>62</b> requests data from the external ROM <b>60</b> by specifying an address. The external ROM <b>60</b> transmits the specified address to the CPU <b>62</b> via the data bus line <b>64</b>.
Following the start of CPU <b>62</b> operation, circuit operation takes place with the internal circuit <b>65</b> internal to the semiconductor integrated circuit <b>61</b>. This internal circuit <b>65</b> has elements, which are selected from a general purpose microprocessor, DSP core, memory, interface circuit, etc., determined in line with the intended purpose of the integrated circuit. Moreover, a data bus <b>64</b> having wiring connectors, the number of which is equal to the number of bits of encrypted CPU software data transmitted from the external ROM <b>60</b>, and an address bus data line <b>63</b> is provided on the printed circuit board <b>66</b> so as to connect the external ROM <b>60</b> and the semiconductor integrated circuit <b>61</b>.
(First Embodiment)
A semiconductor integrated circuit and a data transfer system according to the first embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 3</figref>, is a hybrid integrated Circuit configured with an external ROM <b>1</b> integrated on the first semiconductor chip and a semiconductor integrated circuit <b>2</b> integrated on the second semiconductor chip, which is embedded with an FPGA circuit <b>6</b>, respectively mounted on a printed circuit board <b>8</b>. Moreover, the semiconductor integrated circuit <b>2</b> is a monolithic integrated circuit integrated on the same semiconductor chip configured with a decoder circuit <b>3</b>, which is connected to the external ROM <b>1</b> via a bus data line <b>9</b>; a decryption code block <b>4</b>, which is connected to the decoder circuit <b>3</b>; a configuration circuit <b>5</b>, which is also connected to the decoder circuit <b>3</b>; the FPGA circuit <b>6</b>, which is connected to the configuration circuit <b>5</b>; and an internal circuit <b>7</b>, which is connected to the FPGA circuit <b>6</b>. The external ROM <b>1</b>, which is integrated on a different semiconductor chip from the semiconductor chip of the semiconductor integrated circuit <b>2</b>, is a semiconductor memory device having ports with one-to-one correspondence to the I/O ports of the semiconductor integrated circuit <b>2</b>, and outputs data in parallel to the semiconductor integrated circuit <b>2</b>. In addition, the example in which the first semiconductor chip and the second semiconductor chip are implemented on the printed circuit board <b>8</b> together is shown in <figref idref="DRAWINGS">FIG. 1</figref>, but, it is clear that the first semiconductor chip and the second semiconductor chip may be implemented as a multi-layer structure via a soldered metal layer.
Encrypted design data to be used for the RAM FPGA circuit <b>6</b> is stored in the external ROM <b>1</b>. Accordingly, encrypted design data from the external ROM <b>1</b> is input to the decoder circuit <b>3</b> internal to the semiconductor integrated circuit <b>2</b> via the bus data line <b>9</b>. The decryption code is decided when designing the semiconductor integrated circuit <b>2</b>, and then stored and implanted inside the decryption code block <b>4</b> in the semiconductor integrated circuit <b>2</b>.
The decryption code is input to the decoder circuit <b>3</b> from the decryption code block (memory unit) <b>4</b>. Using this decryption code, the decoder circuit <b>3</b> decodes the encrypted design data input from the external ROM <b>1</b>, and then outputs the design data to the configuration circuit <b>5</b> provided in the semiconductor integrated circuit <b>2</b>. In the first embodiment of the present invention, a decoder circuit <b>3</b> is provided between the external ROM <b>1</b> and the configuration circuit <b>5</b>. With this decoder circuit <b>3</b>, design data from the external ROM <b>1</b> is received and then sent to the configuration circuit <b>5</b>. Circuit data from the configuration circuit <b>5</b> is received by the FPGA circuit <b>6</b> to configure the internal circuit thereof.
Following the formation of the FPGA circuit <b>6</b>, circuit operation takes place with the internal circuit <b>7</b> inside the semiconductor integrated circuit <b>2</b>. Inside this internal circuit <b>7</b> are circuits selected from a general purpose microprocessor, DSP core, interface circuit, etc., which are determined in line with the intended purpose of the integrated circuit. The semiconductor integrated circuit <b>2</b> is formed having the FPGA circuit <b>6</b> and the internal circuit <b>7</b> in an embedded structure. As a result, this structure may be used for a wide range of purposes. The external ROM <b>1</b> and the semiconductor integrated circuit <b>2</b> are mounted on the same printed circuit board <b>8</b> and configure or make up a data transfer system. Moreover, a data bus line <b>9</b> having wiring connectors, is provided on the printed circuit board <b>8</b>, in which a number of connectors is equal to the number of bits of encrypted FPGA design data transmitted from the external ROM <b>1</b>, and connects the external ROM <b>1</b> and the semiconductor integrated circuit <b>2</b>.
A method of operating a semiconductor integrated circuit and a data transfer system according to the first embodiment of the present invention is described below using <figref idref="DRAWINGS">FIG. 4</figref>.
(a) To begin with, in a first step ST<b>1</b>, a designer will design the FPGA circuit <b>6</b> which is internal to the semiconductor integrated circuit <b>2</b>.
(b) Next, in a second step ST<b>2</b>, the designed FPGA circuit <b>6</b> is generated as ROM data.
(c) Next, in a third step SO, the encryption code to be adopted, which is submitted by the manufacturer of the semiconductor integrated circuit <b>2</b>, is determined.
(d) Next, in a fourth step ST<b>4</b>, the ROM data is encrypted based on the encryption code.
(e) Next, in a fifth step ST<b>5</b>, encrypted ROM data is written in the external ROM <b>1</b>.
(f) Next, in a sixth step ST<b>6</b>, the external ROM is mounted on the printed circuit board <b>8</b>.
(g) Next, in a seventh step ST<b>7</b>, the power supply for the printed circuit board <b>8</b> is switched on.
(h) Next, in an eighth step ST<b>8</b>, the encrypted ROM data is acquired from the external ROM by the decoder circuit <b>3</b> in the semiconductor integrated circuit <b>2</b>. Using the decoder circuit <b>3</b>, the encrypted ROM data is decrypted into circuit design information data and output to the configuration circuit <b>5</b>. The configuration circuit <b>5</b> outputs instructions for circuit preparation of the FPGA circuit <b>6</b>.
(i) Next, in a ninth step ST<b>9</b>, the decrypted data is received by the FPGA circuit <b>6</b>.
(j) Next, in a tenth step ST<b>10</b>, it is determined whether or not the final piece of decrypted data has been received by the FPGA circuit <b>6</b>. If yes, then processing proceeds to an eleventh step ST<b>11</b>; if no, then processing returns to the eight step ST<b>8</b>.
(k) Next, in the eleventh step ST<b>11</b>, the FPGA circuit <b>6</b> is shifted into a user mode.
(l) Next, in a twelfth step ST<b>12</b>, operation of the semiconductor integrated circuit <b>2</b> starts.
(m) The above steps end when the power supply is turned off.
(n) Next, when the power supply is switched on again, the processing repeats starting from the writing of the ROM data to the decoder circuit <b>3</b>.
Immediately after the power supply is switched on, when all of the external ROM <b>1</b> data has been imported via decoder circuit <b>3</b> and the configuration circuit <b>5</b>, the semiconductor integrated circuit configures a RAM FPGA circuit. This circuit configuration can be performed immediately, and can be accomplished in the range of hundreds of milliseconds.
As shown in <figref idref="DRAWINGS">FIG. 5</figref>, the RPGA circuit <b>6</b> is a RAM type and is configured from configurable logic blocks <b>10</b>, <b>10</b><sub>i,j</sub>, <b>10</b><sub>i,j+1</sub>, . . . , <b>10</b><sub>i+1,j</sub>, <b>10</b><sub>i+1,j+1 </sub>. . . , which configure various circuits; switching matrices <b>11</b>, <b>11</b><sub>i,j</sub>, <b>11</b><sub>i,j+1</sub>, <b>11</b><sub>i,j+2</sub>, . . . , <b>11</b><sub>i+1j</sub>, <b>11</b><sub>i+1j+1</sub>, <b>11</b><sub>i+1j+2</sub>, . . . , <b>11</b><sub>i+2j</sub>, . . . , <b>11</b><sub>i+2j+1</sub>, <b>11</b><sub>i+2j+2</sub>, . . . , which perform line switching for the various circuits; main lines <b>12</b>; connecting lines <b>13</b>; and connection points <b>14</b>. A functional circuit that meets the demands of the designer can be put into practice by modifying the RAM data loaded into the configurable logic blocks <b>10</b>, <b>10</b><sub>i,j</sub>, <b>10</b><sub>i,j+1</sub>, . . . , <b>10</b><sub>i+1j</sub>, <b>10</b><sub>i+1j</sub>and so forth. That RAM data is stored in the external ROM <b>1</b>. More specifically, SRAM elements are provided inside the configurable logic blocks <b>10</b>. Surrounding the configurable logic blocks are main lines <b>12</b> which are connected to each other by the switching matrices <b>11</b>. A few of the main lines <b>12</b> and the configurable logic blocks <b>10</b> are connected via correction lines <b>13</b> at connection points <b>14</b>. In this manner, the connected/not connected states of the configurable logic block <b>10</b> and the main lines <b>12</b> are set for the FPGA circuit <b>6</b> and a circuit is configured based on the circuit design data.
Here, a decryption code determined when designing the semiconductor integrated circuit <b>2</b> is used for encryption. The decryption code is decided in advance, by the manufacturer of the semiconductor integrated circuit <b>2</b>. The purchaser of the semiconductor integrated circuit <b>2</b> is then notified of the details and forms a desired semiconductor integrated circuit <b>2</b> by encrypting the circuit design information and inputting the circuit design information to the semiconductor integrated circuit <b>2</b>.
The FPGA circuit RAM, as shown in <figref idref="DRAWINGS">FIG. 6</figref>, has a shift register configuration. The data sent from the configuration circuit <b>5</b>, in <figref idref="DRAWINGS">FIG. 6</figref>, is input at a D input terminal of the first stage shift register SR<b>1</b> as a shift register input signal S<b>1</b>, whereby new data is input one piece at a time, and each time one is stored in the shift register SR<b>1</b>, the old data is synchronized and shifts to the right. The output of each shift register SR<b>1</b>, SR<b>2</b>, SR<b>3</b>, . . . , SR<b>6</b>, is in a format such as Q<b>1</b> through Q<b>6</b>, and is distributed to a configurable logic block <b>10</b>, a switching matrix <b>11</b> or an I/O register unit to act as data that either determines the function of the configurable logic block <b>10</b>, determines the line connection method for the switch matrix <b>11</b>, or determines the I/O function.
With an initialization operation in the semiconductor integrated circuit <b>2</b>, data is sequentially written to shift registers SR<b>1</b>, SR<b>2</b>, SR<b>3</b>, . . . , SR<b>6</b> provided inside of the FPGA circuit <b>6</b> such as shown in <figref idref="DRAWINGS">FIG. 6</figref>, from the external ROM <b>1</b> via the configuration circuit <b>5</b>. With the shift registers SR<b>1</b>, SR<b>2</b>, SR<b>3</b>, . . . , SR<b>6</b> of <figref idref="DRAWINGS">FIG. 6</figref>, since not only is data sent piece-by-piece from the configuration circuit <b>5</b> to the D input terminal of the shift register, but additionally a synchronized clock signal is also sent, a shift register input signal S<b>1</b> that is input to the shift register D input terminal is brought into the shift register SR<b>1</b> in sync with the rising edge of the clock signal. That data is then output to Q<b>1</b>. Since the clock signal is input in sync with the reading of the next piece of data, the Q<b>1</b> signal is shifted to the second level shift register SR<b>2</b> and output to Q<b>2</b>, and then shift register input signal S<b>1</b> which is newly set in the shift register D input terminal is stored in Q<b>1</b> and output. Upon each arrival of the clock signal, new data is imported to the initial stage shift register SR<b>1</b>, which is connected to the shift register D input terminal, and old data is sequentially shifted to the register on the right.
For instance, as shown in <figref idref="DRAWINGS">FIG. 7</figref>, a D-type flip/flop is often used as the fundamental unit configuring the shift register. There are various modified examples where some of the input terminals PRESET, CLEAR, EN, QN of this D-type flip/flop are omitted. The signal input from a D input terminal is latched and stored in sync with the rising edge of the signal input to the CK input terminal. The stored data is output to the Q output terminal and the inverted signal is output to the QN terminal. The CK input is allowed to be valid only when “1” is input to the EN input terminal. The CK input is allowed to be invalid when “0” is input to the EN input terminal. While the PRESET terminal is normally input with “1”, when input with “0”, the stored content is set to “1”. The CLEAR terminal is normally input with “1”, but when input with “0”, the stored content is set to “0”. When resetting the register, a “0” pulse is applied to the CLEAR terminal and the stored content is made “0”.
As shown in <figref idref="DRAWINGS">FIG. 8</figref>, a typical example of an I/O register circuit for the FPGA circuit <b>6</b> is equipped with three registers surrounding the output buffer. An output register <b>501</b> determines whether the output is “0” or “1”. An output enable register (OE register) <b>502</b> determines if the I/O buffer <b>504</b> will output. When the OE register <b>502</b> is “0”, output is switched off to cause a high impedance state. An input register <b>503</b> stores the signal applied to a I/O terminal <b>505</b>.
During configuration, the content stored in the OE register <b>502</b> is made “0” and is output to prevent an output from the I/O buffer <b>504</b>. In addition, a “0” signal is applied to the enable (EN) terminal of the input register <b>503</b> to prevent the signal applied to the I/O terminal <b>505</b> from being brought into the integrated circuit. In other words, the FPGA circuit is left isolated from the external signal environment via the I/O terminal <b>505</b>. Through the initialization operation, the contents of these three registers <b>501</b>, <b>502</b>, and <b>503</b> are changed to values agreeing with the set content programmed in the external ROM <b>1</b>.
In addition, during the initialization operation, among the I/O register circuits shown in <figref idref="DRAWINGS">FIG. 8</figref>, a “0” signal is first applied to the EN terminals of the OE register <b>502</b> and the input register <b>503</b> to prevent an output from the I/O buffer <b>504</b> and also to prevent the signal applied to the I/O terminal <b>505</b> from being brought into the integrated circuit. In other words, the FPGA circuit is left isolated from the external signal environment via the I/O terminal <b>505</b>. Following the importation of all of the ROM data, a “1” is applied at the end to the EN terminals of the output register <b>501</b>, input register <b>503</b>, and OE register <b>502</b> to switch the I/O buffer <b>504</b> to an active state. In this manner, operation as a logic device is achieved.
In the first embodiment of the present invention, the configuration operating state and the initialization state are referred to as Command Mode and the normal operating state is referred to as User Mode. Once the power supply of the semiconductor integrated circuit <b>2</b> has been switched on, circuit data is immediately transmitted to the configuration circuit <b>5</b>, initialization is executed, and a circuit is newly configured in the FPGA circuit <b>6</b> based on the circuit data. Logic operation then starts.
A large number of logic elements are embedded within a SRAM-utilizing RAM FPGA circuit <b>6</b> which includes a small fan-in logic module and which has a small number of input terminals. Since operational testing of actual equipment is immediately available following circuit design by the designer using a RAM FPGA circuit <b>6</b> configured in this manner, it is possible to implement efficient circuit design. In addition, since it is possible to produce semiconductor integrated circuit products having the same fundamental structure as the FPGA circuit <b>6</b> itself, and since it is unnecessary to make modifications for each user when producing the FPGA circuit <b>6</b>, favorable manufacturing efficiency for the FPGA circuit is achieved. Specifically, mass production with favorable manufacturing efficiency is possible because the FPGA circuit <b>6</b> can be produced as an all-purpose product.
It is also possible for the semiconductor integrated circuit <b>2</b> including an FPGA circuit <b>6</b> to be configured with internal circuit elements such as an all-purpose microprocessor core, DSP core, and interface circuit. The embedded format allows a wider range of applications.
A configuration method is now described using the flowchart shown in <figref idref="DRAWINGS">FIG. 9</figref>.
(a) Although configuration automatically starts as the power supply is switched on; first, in step ST<b>101</b>, general I/O register circuits are disabled.
(b) Next, in step ST<b>102</b>, it is determined whether data input is parallel or serial. ROM data is received by the decoder circuit <b>3</b>, with the process differs depending on whether parallel data or serial data is received.
(c) In the case where parallel data is received, after receiving the data from the ROM <b>1</b> in step ST<b>106</b>, the parallel data is convened to serial data in step ST<b>107</b>, and then in step ST<b>108</b> data is sent to the FPGA circuit <b>6</b>. Next, in step ST<b>109</b>, it is determined whether the ROM data received is the final piece of data or not. If yes, then processing proceeds to step ST<b>110</b>; if no, then processing returns to step ST<b>106</b>.
(d) In the case where serial data is received, after receiving the data from the ROM <b>1</b> in step ST<b>103</b>, the data is transmitted as is to the FPGA circuit <b>6</b> in step ST<b>104</b>. Next, in step ST<b>105</b>, it is determined whether the ROM data received is the final piece of data or not. If yes, then processing proceeds to step ST<b>110</b>; if no, then processing returns to step ST<b>103</b>.
(e) Once all of the ROM data has been received, the configuration state ends and the initialization state is entered. In step ST<b>110</b>, the internal registers are reset. Next, in step ST<b>111</b>, the general I/O register circuits are enabled. Then in step ST<b>112</b>, system operation begins.
Steps ST<b>101</b> through ST<b>111</b> correspond to command mode; and steps ST<b>112</b> forward correspond to user mode.
Next, the configuration of a decoder circuit <b>3</b> and decryption code block <b>4</b> are described using <figref idref="DRAWINGS">FIG. 10</figref>. To facilitate description, a simple example of a decoder circuit <b>3</b> is shown in <figref idref="DRAWINGS">FIG. 10</figref>. The decoder circuit <b>3</b> includes eight exclusive OR circuits EO<b>0</b>, EO<b>1</b>, . . . , EO<b>7</b> and is input with one bit of data from the external ROM <b>1</b> and one bit of code from the decryption code block via the respective input terminals. The output of the exclusive OR circuits EO<b>0</b>, EO<b>1</b>, . . . , EO<b>7</b>, which heads towards the light side of <figref idref="DRAWINGS">FIG. 10</figref>, is connected to the configuration circuit <b>5</b> shown in <figref idref="DRAWINGS">FIG. 3</figref>.
In this embodiment, it is assumed that 8-bit parallel data enters the decoder circuit <b>3</b> from the external ROM <b>1</b>, for example. It is assumed that the encryption method used encrypts by inverting all of the “1”s and “0”s in the data. Naturally, when decrypting, all of the “1”s must be reverted to “0”s and likewise all of the “0”s to “1”s.
The exclusive OR circuits act to output a “1” when the two input signals are different, and conversely, output a “0” when the two input signals are “0”. Accordingly, with a decryption code given as “1”, when the signal input from ROM <b>1</b> is “1”, output is “0”, and when the input is “0”, output is “1”. Namely, the signal from the ROM <b>1</b> is inverted. In the opposite case, if the decryption code is given as “0”, when the signal input from ROM <b>1</b> is “1”, output is “1”, and when the input is “0”, output is “0”, In other words, the signal from the ROM <b>1</b> is output without change.
8-bit data D<b>0</b>, D<b>1</b>, D<b>2</b>, . . . , D<b>7</b> from the external ROM <b>1</b> enters from the left, as shown in the figure. Since all of the 8 bits being input are inversed, the decryption code should be all “1”s. In the case of non-inversed input bits, the decryption code must be made “0”s.
Therefore, if the four bits of data D<b>0</b>, D<b>1</b>, D<b>2</b>, and D<b>3</b> enter from the external ROM <b>1</b> as “0” signals, “1” signals are passed to the configuration circuit <b>5</b>. Conversely, if the four bits of data D<b>4</b>, D<b>5</b>, D<b>6</b>, and D<b>7</b> enter from the external ROM <b>1</b> as “1” signals, “0” signals are passed to the configuration circuit <b>5</b>.
The semiconductor integrated circuit, the data transfer system and the method for the data transfer, according to the first embodiment of the present invention, provide an FPGA circuit embedded semiconductor integrated circuit which functions to encrypt external ROM <b>1</b> data, and then using a decryption code implanted beforehand in a decryption code block <b>4</b> inside the semiconductor integrated circuit <b>2</b>, decrypts the encrypted data and writes the decrypted data in the FPGA circuit <b>6</b>. Since this implanted code differs for each semiconductor integrated circuit <b>2</b> designed, each product should have a different code. Naturally, even if a circuit is configured using cipher, operation on the printed circuit board <b>8</b> immediately following circuit formation is possible to verify whether the desired data transfer system, mounted with both a semiconductor integrated circuit <b>2</b> and an external ROM <b>1</b>, has been formed.
With the data transfer system according to the first embodiment of the present invention, when data is transferred between the semiconductor integrated circuit <b>2</b> and the external ROM <b>1</b>, encryption is used to protect data content from being deciphered by a third party. In the case where the encryption processing of the semiconductor integrated circuit according to the first embodiment of the present invention is not used, secrecy may not be protected unless the FPGA circuit <b>6</b> is separately redesigned. In contrast, with the semiconductor integrated circuit according to the first embodiment of the present invention, by encrypting the data in the external ROM <b>1</b>, circuit design data secrecy can be protected and furthermore, since it merely involves encryption of conventional FPGA design data, there is little imposition on the designer because the encryption can be automated. Compared to designing a completely new FPGA circuit <b>6</b>, design time and labor can be drastically reduced and the operational efficiency of the user design process is improved. The fact that the FPGA circuit embedded semiconductor integrated circuit is able to protect circuit design data secrecy and also improve circuit design efficiency makes it attractive for users.
In the case of parallel data input from the external ROM <b>1</b>, since data can be brought into the semiconductor integrated circuit <b>2</b> at a high speed, high speed configuring of the FPGA circuit <b>6</b> is made possible.
This embodiment, which uses a RAM FPGA circuit can provide an FPGA embedded semiconductor integrated circuit and data transfer system which allows easy manufacturing, a high level of secrecy, and also a more compact FPGA region than an FPGA using non-volatile memory (ROM).
With the semiconductor integrated circuit according to the test embodiment of the present invention, it is possible to provide an external ROM-applicable, FPGA circuit-loaded semiconductor integrated circuit having encrypted design data with a high level of secrecy. Moreover, with the data transfer system according to the first embodiment of the present invention, it is possible to provide an external ROM-type data transfer system having encrypted design data with a high level of secrecy. By utilizing encrypted data for transfers between the external ROM <b>1</b> and the semiconductor integrated circuit <b>2</b>, it is possible to improve software secrecy.
(Modified Example of the First Embodiment)
The modified example of the first embodiment of the present invention has a configuration which uses one data line <b>9</b> between the external ROM <b>1</b> and the FPGA circuit embedded semiconductor integrated circuit <b>2</b>, to perform serial instead of parallel data transfer from the external ROM <b>1</b> to the semiconductor integrated circuit <b>2</b>. The configuration of a decoder circuit <b>3</b> and a decryption code block <b>4</b> according to the modified example of the first embodiment of the present invention is now described using <figref idref="DRAWINGS">FIG. 11</figref>. To facilitate description, a simple example of a decoder circuit <b>3</b> is shown in <figref idref="DRAWINGS">FIG. 11</figref>. The external ROM <b>1</b>, which is a semiconductor memory device, has ports having one-to-one correspondence with the I/O ports of the semiconductor integrated circuit <b>2</b>. The external ROM <b>1</b> outputs serial data to the semiconductor integrated circuit <b>2</b>, This modified example illustrates an example of processing in the case where serial data from the external ROM <b>1</b> enters the semiconductor integrated circuit <b>2</b>. As with the parallel data, this case also illustrates the case of setting the encryption method in 8-bit units. A clock signal CLOCK, which is input to the external ROM <b>1</b> to control the timing of data output, is also input to this decoder circuit <b>3</b> to synchronize data acquisition with the external ROM <b>1</b>. This clock signal CLOCK is input to the clock signal input terminal CLOCK of the 3-bit binary counter <b>18</b>.
From this binary counter <b>18</b>, a 3-bit select signal is output from the output terminals QA, QB, and QC. This 3-bit select signal is input to the select signal input terminals A, B, and C of a data selector circuit (8-line to 1-line data selector) <b>19</b>. The 8-bit decryption code from the decryption code block <b>4</b> is input to the decryption code input terminals DE<b>0</b>, DE<b>1</b>, DE<b>2</b>, DE<b>3</b>, DE<b>4</b>, DE<b>5</b>, DE<b>6</b>, and DE<b>7</b> of the data selector circuit <b>19</b>.
The decoder circuit <b>3</b> further includes a single exclusive OR circuit EO and, to the input terminal thereof, one-bit data from the external ROM <b>1</b> and one bit of code from an output terminal Y of the data selector <b>19</b> is input. The output of the exclusive OR circuit EO, which heads towards the right side of <figref idref="DRAWINGS">FIG. 11</figref>, is coupled to the configuration circuit <b>5</b> shown in <figref idref="DRAWINGS">FIG. 3</figref>.
Next, a data acquisition method from the external ROM <b>1</b> is described. The order in which 8-bit units of serial data enters is given as D<b>0</b>, D<b>1</b>, D<b>2</b>, D<b>3</b>, D<b>4</b>, D<b>5</b>, D<b>6</b>, and D<b>7</b>, and whether to respectively invert each from “0” to “1” or vice-versa is determined and made into an decryption code, which is implanted beforehand into the decryption code block <b>4</b> of the semiconductor integrated circuit <b>2</b>. Once the serial data has reached D<b>7</b>, the decryption code returns to the beginning and repeats. As with the method shown in <figref idref="DRAWINGS">FIG. 10</figref>, this modified example illustrates the case where all of the bits are inverted. When encrypted data from the external ROM <b>1</b> enters, in order, as 0, 0, 0, 0, 1, 1, 1, 1, the data output from this decoder circuit <b>3</b> leaves, in order, as 1, 1, 1, 1, 0, 0, 0, 0.
The clock signal CLOCK external to the semiconductor integrated circuit <b>2</b> enters the 3-bit binary counter <b>18</b>, counting from 0 to 7 is performed inside of the binary counter <b>18</b>, and the current count is displayed at output terminals QC, QB, and QA in binary code. Here, QC is the most significant bit, and QA is the least significant bit. This signal is sent to the data selector circuit <b>19</b>, the data DE<b>0</b>, DE<b>1</b>, DE<b>2</b>, . . . , DE<b>7</b> is selected in conformity with the count and output to the Y output terminal. Since the data DE<b>0</b>, DE<b>1</b>, DE<b>2</b>, . . . , DE<b>7</b> is coupled to the decryption code block <b>4</b> embedded in the semiconductor integrated circuit <b>2</b>, each piece of data is sequentially selected and output to the Y terminal. The Y output signal is input to the exclusive OR circuit EO together with the data DATA from the external ROM <b>1</b>. This exclusive OR circuit EO functions to output “0” when the two input levels are equal, and output “1” when the two input signals differ. Accordingly, when one of the two is fixed at “1”, the exclusive OR circuit EO functions as an inversion circuit for the rest of the input; conversely, when one is fixed at “0”, it functions to output the rest of the values without change.
In this manner, the serial data is sequentially decrypted and sent to the configuration circuit <b>5</b>, which is the circuit of the next stage. In the case where data is acquired serially as described above, since the external ROM <b>1</b> and the semiconductor integrated circuit <b>2</b> may be connected with a less number of paths than with the first embodiment, it is possible to reduce the number of wires on the printed circuit board <b>8</b>. As a result, configuration of the modified example of the first embodiment of the present invention is also possible on a printed circuit board <b>8</b> where wiring density is high and the wiring layout is tight. Other configurations similar to those of the first embodiment are also possible in addition to that described above. As with the first embodiment, the modified example of the first embodiment of the present invention results in preservation of data secrecy.
With the modified example of the first embodiment of the present invention, a high security FPGA circuit embedded semiconductor integrated circuit, data transfer system, and semiconductor integrated circuit data transfer method, which prevents the reading of design data and software, can be provided.
(Second Embodiment)
A semiconductor integrated circuit and a data transfer system according to the second embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 12</figref>, is a hybrid integrated circuit configured with an external ROM <b>20</b> integrated on the first semiconductor chip and a semiconductor integrated circuit <b>21</b> integrated on the second semiconductor chip, which is embedded with a CPU <b>24</b>, respectively mounted on a printed circuit board <b>28</b>. Moreover, the semiconductor integrated circuit <b>21</b> is a monolithic integrated circuit configured with a decoder circuit <b>22</b>, which is connected to the external ROM <b>20</b> via a data line <b>26</b>; a decryption code block <b>23</b>, which is connected to the decoder circuit <b>22</b>; a CPU <b>24</b>, which is also connected to the decoder circuit <b>22</b>; and an internal circuit <b>27</b>, which is connected to the CPU <b>24</b>. The external ROM <b>20</b>, which is a semiconductor memory device having ports with one-to-one correspondence to the I/O ports of the semiconductor integrated circuit <b>21</b>, outputs data in parallel to the semiconductor integrated circuit <b>21</b>.
In addition, the example shows that the first semiconductor chip and the second semiconductor chip are implemented on the printed circuit board <b>28</b> in <figref idref="DRAWINGS">FIG. 12</figref>, but, it is clear that the first semiconductor chip and the second semiconductor chip may be implemented as a multi-layer structure via a soldered metal layer.
Encrypted software data for the CPU <b>24</b> is stored in the external ROM <b>20</b>. Accordingly, encrypted software data from the external ROM <b>20</b> is input to the decoder circuit <b>22</b> inside the semiconductor integrated circuit <b>21</b> via the data line <b>26</b>, The decryption code is decided when designing the semiconductor integrated circuit <b>21</b>, and is stored and implanted in the decryption code block <b>23</b> inside the semiconductor integrated circuit <b>21</b>.
The decryption code is input to the decoder circuit <b>22</b> from the decryption code block (memory unit) <b>23</b>. Using this decryption code, the decoder circuit <b>22</b> decodes the encrypted design data input from the external ROM <b>20</b>, and then outputs the design data to the CPU <b>24</b> provided in the semiconductor integrated circuit <b>21</b>. In the second embodiment of the present invention, a decoder circuit <b>22</b> is provided between the external ROM <b>20</b> and the CPU <b>24</b>. This decoder circuit <b>22</b> receives design data from the external ROM <b>20</b> and then sends it out to the CPU <b>24</b>.
In addition, in this embodiment, the CPU <b>24</b> and the external ROM <b>20</b> are directly connected via the address bus line <b>25</b>, wherein the CPU <b>24</b> requests data from the external ROM <b>20</b> by specifying an address The external ROM <b>20</b> transmits the specified data to the decoder circuit <b>22</b> via the data line <b>26</b>. The decoder <b>22</b> submits the specified data to the CPU <b>24</b>.
With the semiconductor integrated circuit according to the second embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 12</figref>, a decoder circuit <b>22</b> is disposed between the external ROM <b>20</b> and the CPU <b>24</b>, wherein decryption code data is transmitted to the decoder <b>22</b>.
An encryption code is first determined when designing the semiconductor integrated circuit <b>21</b>, and is recorded and implanted in the decryption code block <b>23</b> in the semiconductor integrated circuit <b>21</b>. Accordingly, the encrypted design data relating to the encrypted software data is encrypted into a unique code that differs for each semiconductor integrated circuit <b>21</b>.
The encrypted data procured from the external ROM <b>20</b>, is decrypted in the decoder circuit <b>22</b>, and then transmitted to the CPU <b>24</b> where it functions like a normal software program. Following the start of CPU <b>24</b> operation, circuit operation takes place with the internal circuit <b>27</b> inside of the semiconductor integrated circuit <b>21</b>. Included inside this internal circuit <b>27</b> are circuits selected from a general purpose microprocessor, DSP core, interface circuit, etc. which are determined in accordance with the intended purpose of the integrated circuit. The semiconductor integrated circuit <b>21</b> is thus formed having the CPU <b>24</b> and the internal circuit, etc., in an embedded structure. As a result, it may be used for a wide range of purposes. This external ROM <b>20</b> and the semiconductor integrated circuit <b>21</b> are mounted on the same printed circuit board <b>28</b> and configure a data transfer system. A bus data line <b>26</b> having wiring connectors, the number of connectors being equal to the number of bits of encrypted CPU software data transmitted from the external ROM <b>20</b>, and an address bus line <b>25</b> is further provided on the printed circuit board <b>28</b> so as to connect the external ROM <b>1</b> and the semiconductor integrated circuit.
A method of operating a semiconductor device and a data transfer system according to the second embodiment of the present invention is now described using <figref idref="DRAWINGS">FIG. 13</figref>.
(a) To begin with, in a first step SU<b>1</b>, the software designer for the CPU <b>24</b> inside the semiconductor integrated circuit <b>21</b> will design the software.
(b) Next, in a second step SU<b>2</b>, the designed software is generated as ROM data.
(c) Next, in a third step SU<b>3</b>, the encryption code to be adopted, which is submitted by the manufacturer of the semiconductor integrated circuit <b>21</b> is determined.
(d) Next, in a fourth step SU<b>4</b>, the ROM data is encrypted based on the encryption code.
(e) Next, in a fifth step SU<b>5</b>, encrypted ROM data is written into the external ROM <b>20</b>.
(f) Next, in a sixth step SU<b>6</b>, the external ROM <b>20</b> is mounted on the printed circuit board <b>28</b>.
(g) Next, in a seventh step SU<b>7</b>, the power supply for the printed circuit board <b>28</b> is switched on.
(h) Next, in an eight step SU<b>8</b>, a ROM address in the external ROM <b>20</b> is requested and determined by an operation of a CPU <b>24</b> in the semiconductor integrated circuit <b>21</b>.
(i) Next, in a ninth step SU<b>9</b>, the encrypted ROM data corresponding to the specified address is acquired from the external ROM <b>20</b> by the decoder circuit in the semiconductor integrated circuit <b>21</b>. In the decoder circuit <b>22</b>, using the decryption code input from the decryption code block <b>23</b>, encrypted ROM data is decrypted as software data and output to the CPU <b>24</b>
(j) Next, in a tenth step SU<b>10</b>, the CPU <b>24</b> is operated using the input software data.
(k) Next, in an eleventh step SU<b>11</b>, it is determined whether or not there is a next job command. If NO, then processing returns to the eleventh step SU<b>11</b>. If YES, then the processing returns to the eighth step SU<b>8</b>.
(l) The above steps end when the power supply is turned off.
(m) Next, when the power supply is switched on again, the processing repeats starting from the request of an address from the CPU <b>24</b> to the ROM <b>20</b>.
The decoder <b>22</b> has substantially the same configuration a that described using <figref idref="DRAWINGS">FIG. 10</figref> in the first embodiment, and therefore description is omitted.
In the case of parallel data input from the external ROM <b>20</b>, since data can be brought into the semiconductor integrated circuit <b>21</b> at a high speed, high speed data transmission to the CPU is possible. Parallel data input allows the software to be taken in at high speed and the CPU to operate at high speed. Depending on circumstances, as described in the modified example of the first embodiment of the present invention, the configuration of the decoder circuit <b>3</b> and the decryption code block <b>4</b> in <figref idref="DRAWINGS">FIG. 11</figref> can be used for the configuration of the decoder circuit <b>22</b> and the decryption code block <b>23</b> to perform serial data input. In the case of serial data input, since the external ROM <b>20</b> and the semiconductor integrated circuit <b>21</b> may be connected with a small number of paths, it is possible to reduce the number of wires on the printed circuit board <b>28</b>, thus it can be used on a printed circuit board <b>8</b> where wiring density is high and wiring layout is tight.
Software design secrecy can be improved if the data for the external ROM <b>20</b> is encrypted and input to the decoder circuit <b>22</b>, and then the encrypted data in the decoder circuit <b>22</b> is decoded in the decoder circuit using the decryption code recorded/implanted in the decryption code block <b>23</b> inside the CPU <b>24</b>-embedded integrated circuit <b>21</b> and used to drive the CPU <b>24</b>. In the case of a CPU <b>24</b> where the CPU instruction code has been determined, even if software design is carried out based on this instruction code, and the software data is stored in the external ROM <b>20</b>, there is no possibility that the software design content will be revealed even if the external ROM <b>20</b> data is analyzed.
With the semiconductor integrated circuit according to the second embodiment of the present invention, it is possible to provide an external ROM-applicable, CPU-loaded semiconductor integrated circuit having software design data with a high level of secrecy. Moreover; with the data transfer system according to the second embodiment of the present invention, it is possible to provide an external ROM-type data transfer system having software design data with a high level of secrecy. By utilizing encrypted data for transfers between the external ROM <b>20</b> and the semiconductor integrated circuit <b>21</b>, it is possible to improve software secrecy.
With the second embodiment of the present invention, a high security CPU-embedded semiconductor integrated circuit, data transfer system, and semiconductor integrated circuit data transfer method, which prevent the reading of design data and software, can be provided.
(Third Embodiment)
A semiconductor integrated circuit and a data transfer system according to the third embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 14</figref>, is a hybrid integrated circuit configured with an external ROM <b>30</b> integrated on the first semiconductor chip and an application specific integrated circuit (ASIC) <b>31</b> integrated-on the second semiconductor chip, respectively mounted on a printed circuit board <b>32</b>. Moreover, the ASIC <b>31</b> is configured with a decryption circuit <b>33</b>, which is connected to the external ROM <b>30</b> via a data bus <b>36</b>; a decryption code block <b>40</b>, which is connected to the decryption circuit <b>33</b>; an encryption object circuit <b>34</b>, which is also connected to the decryption circuit <b>33</b>; and an internal circuit <b>35</b>, which is connected to the encryption object circuit <b>34</b>. In this embodiment, the encryption object circuit <b>34</b> is stores confidential data and can define a circuit which executes a fixed circuit operation between it and the internal circuit <b>35</b>. It is mainly configured with a CPU or an FPGA circuit. Naturally, it may include other types of circuits as long as it is a circuit for the purpose of encryption.
The third embodiment of the present invention gives improved results by incorporating the automated design technology of ASIC. Specifically, even if a fundamental circuit for a general purpose FPGA circuit or CPU is stored in an ASIC database, cracking the stored data by a third party is impossible. Thus, simplification of the automated design process including: simplification of the automated design process through standardization of the FPGA circuit and the CPU, and standardization of decoder circuits such as the decryption circuit <b>33</b>; and simplification of the automated design process through standardization of the procedures for encryption code determination and decryption code design and standardization of the encryption process for the ROM is possible. Moreover, it is possible to improve the level of design secrecy in the final FPGA-embedded semiconductor integrated circuit and CPU-embedded semiconductor integrated circuit products.
Non-encrypted data for the FPGA circuit core and the CPU core is registered. Moreover, since decoder circuits such as the decryption process circuit <b>33</b> may be registered, their design data may be combined when downloading to allow utilization during LSI design.
Design process simplification is now described.
When automating design, it is necessary to first standardize the target circuit. This standardization emanates from the fact that it becomes easier to generate the software program for design automation if equivalent circuits or equivalent design processes can be used without modification and/or the correction process becomes more simplified. In the case of the third embodiment of the present invention, as the design data for the FPGA circuit and the CPU circuit can be used without modification, they avoid complexity of the design automation software program.
Moreover, by standardizing the encryption process and the decoding process, and/or the decryption Circuit, it becomes possible to utilize the design data for the decryption circuit without modification.
Moreover, by setting the encryption process, it becomes possible to develop a software program to automatically encrypt data to be written in the external ROM <b>30</b>. In addition, it is also possible to develop a software program for determining the encryption code, which implants automatically calculates the decryption code for that encryption, and then implanting the decryption code in the ASIC <b>31</b>.
Since a variety of circuits are registered in a database in order to allow automated design of an ASIC product circuit requested from a client, and the characteristics of those individual circuits are also registered, it is possible to retrieve design data for the requested circuit from the client and combine it so as to construct the ASIC <b>31</b>, and moreover, automatic calculation of a decrypted code for that determined encryption is possible. This allows for pre-determination of whether the performance expected by the client may reach a satisfactory level. Accordingly, with the third embodiment of the present invention, encrypting design data and automating the design of a decoding circuit, such as the decryption circuit <b>33</b>, is possible without any problems using an extended ASIC automated design technique. In addition, since the burden on the designer decreases, design efficiency is increased when used in combination with the ASIC technique.
(Fourth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the fourth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 15</figref>, is a hybrid integrated circuit configured with an external ROM <b>30</b> integrated on the first semiconductor chip and an ASIC <b>31</b> integrated on the second semiconductor chip, respectively mounted on a printed circuit board <b>32</b>. Moreover, the ASIC <b>31</b> is configured with a decryption circuit <b>33</b>, which is connected to the external ROM <b>30</b> via a bus data line <b>36</b>; a decryption code block <b>40</b>, which is connected to the decryption circuit <b>33</b>; an FPGA circuit <b>37</b>, which is also connected to the decryption circuit <b>33</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. In this embodiment, the FPGA circuit <b>37</b> is also the encryption object circuit <b>34</b> for encryption for illustrative purposes.
(Fifth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the fifth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 16</figref>, is a hybrid integrated circuit configured with an external ROM <b>30</b> integrated on the first semiconductor chip and an ASIC <b>31</b> integrated on the second semiconductor chip, respectively mounted on a printed circuit board <b>32</b>. Moreover, the ASIC <b>31</b> is a monolithic integrated circuit configured with a decryption circuit <b>33</b>, which is connected to the external ROM <b>30</b> via a bus data line <b>36</b>; a decryption code block <b>40</b>, which is connected to the decryption circuit <b>33</b>; a CPU <b>38</b>, which is also connected to the decryption circuit <b>33</b>; and an internal circuit <b>35</b>, which is connected to the CPU <b>38</b>. In this embodiment, the CPU <b>38</b> also functions as the encryption object circuit <b>34</b> for encryption for illustrative purposes.
(Sixth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the sixth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 17</figref>, is a hybrid integrated circuit configured with the second external ROM <b>301</b> and the first external ROM <b>302</b>, and an ASIC <b>31</b> integrated on the second semiconductor chip, respectively mounted on a printed circuit board <b>32</b>. The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip. Moreover, the ASIC <b>31</b> integrated on the second semiconductor chip is a monolithic integrated circuit configured with a decoder circuit <b>133</b>, which is connected to the external ROMs <b>301</b> and <b>302</b> via buses <b>360</b> and <b>361</b>, respectively; a decryption code block <b>40</b>, which is connected to the decoder circuit <b>133</b>; a configuration circuit <b>134</b>, which is also connected to the decoder circuit <b>133</b>; the FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>134</b>; an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>, and a CPU <b>38</b> which is connected to the decoder circuit <b>133</b>. In addition, the CPU <b>38</b> is further connected to the FPGA circuit <b>37</b>, the internal circuit <b>35</b>, and the external ROM <b>301</b>. The CPU <b>38</b> specifies an address to request data from the external ROM <b>301</b> via the address bus line <b>362</b>. As a result, the ROM data decrypted in the decoder circuit <b>133</b> is output to the CPU <b>38</b> via the data bus line <b>363</b>. With the sixth embodiment of the present invention, two external ROMs are provided, wherein encrypted data for driving the CPU <b>38</b> is stored in the second external ROM <b>301</b> and the encrypted data for driving the FPGA circuit <b>37</b> is stored in the fist external ROM <b>302</b>. A significant feature of the sixth embodiment of the present invention is the embedded structure of the FPGA circuit <b>37</b> and CPU <b>38</b> in the ASIC <b>31</b>.
In addition, the example wherein the first semiconductor chip and the second semiconductor chip are implemented together on the printed circuit board <b>32</b> is shown in <figref idref="DRAWINGS">FIG. 17</figref>, but, it is clear that the first semiconductor chip and the second semiconductor chip may be implemented as a multi-layer structure via a soldered metal layer.
A method of operating a semiconductor integrated circuit and a data transfer system according to the sixth embodiment of the present invention is now described using <figref idref="DRAWINGS">FIG. 18</figref>. <figref idref="DRAWINGS">FIG. 18</figref> shows the operational flow between switching on the power supply and activation of the CPU <b>38</b>. The data writing flow for the first external ROM <b>302</b>, which stores the encrypted data corresponding to the FPGA <b>37</b>, is substantially the same as that in <figref idref="DRAWINGS">FIG. 4</figref> between the step ST<b>1</b>, designing the FPGA circuit <b>37</b>, and the step ST<b>6</b>, mounting ROM to the circuit board, and is therefore omitted here. In addition, the data writing flow for the second external ROM <b>301</b>, which stores the encrypted data corresponding to the CPU <b>38</b>, is substantially the same as that in <figref idref="DRAWINGS">FIG. 13</figref> between the step SU<b>1</b>, software design, and the step SU<b>6</b>, mounting ROM to the circuit board, and is therefore omitted here.
Data for the function to be established for the FPGA circuit <b>37</b> is written in the first external ROM <b>302</b>. In addition, it is assumed that software data to be operated by the CPU <b>38</b> is stored in the second external ROM <b>301</b>. It is also assumed that both ROM <b>301</b> and ROM <b>302</b> are written with encrypted data.
(a) In step SV<b>1</b>, the power supply for the printed circuit board on which the ASIC <b>31</b> and the two ROMs are mounted is first switched on.
(b) Next, in step SV<b>2</b>, the decoder circuit <b>133</b> receives and decodes the encrypted data of the ROM <b>302</b>. Since the keyword for decoding is already embedded in the decryption code block <b>40</b> as the decryption code, that data is used.
(c) Next, in step SV<b>3</b>, the decoded data is sent to the configuration circuit <b>134</b>, that data is converted into an FPGA circuit <b>37</b> readable form, and this decoded data is received by the FPGA circuit <b>37</b>. The FPGA circuit is thus structured as a circuit satisfying the programmed function.
(d) Next, in step SV<b>4</b>, it is determined whether the final piece of data has been received. If YES, then processing proceeds to step SV<b>5</b>. If NO, then processing returns to step SV<b>2</b>.
(e) Next, in step SV<b>5</b>, once all of the data has been brought into the FPGA circuit <b>37</b>, the FPGA circuit <b>37</b> shifts to user mode.
(f) Then in step SV<b>6</b>, operation of the ASIC <b>31</b> begins.
The CPU in the ASIC similarly begins operation,
(g) Next, in step SV<b>7</b>, a start address set during CPU <b>38</b> design is requested from the CPU <b>38</b> to the second external ROM <b>301</b> to specify an address in the second external ROM <b>301</b>.
(h) Next, in step SV<b>8</b>, the encrypted software data from the ROM <b>301</b> is received and decoded by the decoder circuit <b>133</b>, and sent to the CPU <b>38</b>.
(i) Next, in step SV<b>9</b>, job commands are executed in the CPU based on the decrypted data.
(j) Next, in step SV<b>10</b>, it is determined whether or not there is a next job command. If YES, then processing returns to step SV<b>7</b>. If NO, then step SV<b>10</b> is repeated.
In this manner, even if data is read out from the ROM <b>301</b> or ROM <b>302</b>, secrecy is preserved for both the FPGA circuit <b>37</b> function and the software operating on the CPU <b>38</b>.
(Seventh Embodiment)
A semiconductor integrated circuit and data transfer system according to the seventh embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 19</figref>, is characterized by further including a decryption code block <b>400</b>, which is connected to a configuration circuit <b>134</b>, and a second decoder circuit <b>233</b>, which is connected to the decryption code block <b>400</b>. More specifically, the decryption code block <b>401</b> is configured with an FPGA circuit. Accordingly, the circuit structure thereof is defined by the configuration circuit <b>134</b>. The CPU <b>38</b> specifies an address to request data from the second external ROM <b>301</b> via the address bus line <b>362</b>. As a result, the ROM data decrypted in the second decoder circuit <b>233</b> is output to the CPU <b>38</b> via the data bus line <b>364</b>. With the seventh embodiment of the present invention, two external ROMs are provided, wherein encrypted data for driving the CPU <b>38</b> is stored in the second external ROM <b>301</b> and the encrypted data for driving the FPGA circuit <b>37</b> is stored in the first external ROM <b>302</b>. The embedded structure of the FPGA circuit <b>37</b> and CPU <b>38</b> in the ASIC <b>31</b> integrated on the second semiconductor chip, as shown in <figref idref="DRAWINGS">FIG. 19</figref>, is a significant feature for the seventh embodiment of the present invention. The configuration of the modified example shown in <figref idref="DRAWINGS">FIG. 19</figref> is substantially the same as the configuration shown in <figref idref="DRAWINGS">FIG. 17</figref>, except that the decryption code for the CPU <b>38</b> is structured in the decryption code block <b>400</b>, which is configured from an FPGA circuit.
The encrypted data used as the function data for building the FPGA circuit <b>37</b> is written in the ROM <b>302</b> integrated on the first semiconductor chip, and in addition, the decryption code for the CPU <b>38</b> is also written in the first external ROM <b>302</b> as data. The FPGA circuit <b>37</b> is structured before operation of the ASIC <b>31</b> starts. In addition, before operation of the CPU <b>38</b> starts, the decryption code for the CPU is established in the decryption code block <b>400</b>. Through this, in addition to the benefits of the semiconductor integrated circuit and data transfer system according to the sixth embodiment of the present invention shown in <figref idref="DRAWINGS">FIG. 17</figref>, there is the significant feature of being able to change the CPU <b>38</b> decryption code whenever necessary by changing the ROM <b>302</b> data. In other words, the seventh embodiment of the present invention is effective for cases when there is a desire to modify externally the encrypted data of the CPU <b>38</b>. If, for whatever reason, the encrypted data stored in the second external ROM <b>301</b> should be cracked, it is possible to modify the FPGA circuit configured in the decryption code block <b>400</b> in conformity with the content of the first external ROM <b>302</b>. At the same time, the content of the second external ROM <b>301</b> can also be modified to match the modified contents of the first external ROM <b>302</b>. Therefore, it is possible to arbitrarily change the content of encrypted data for a CPU <b>38</b> that has had its secrets revealed.
The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip.
In addition, the example that the first semiconductor chip and the second semiconductor chip are implemented together on the printed circuit board <b>32</b> is shown in the example of <figref idref="DRAWINGS">FIG. 19</figref>, but, it is clear that the first semiconductor chip and the second semiconductor chip may be implemented as a multi-layer structure via a soldered metal layer.
A method of operating a semiconductor integrated circuit and a data transfer system according to the seventh embodiment of the present invention is now described using <figref idref="DRAWINGS">FIG. 20</figref> and <figref idref="DRAWINGS">FIG. 21</figref>. The operational flow between CPU software encryption code determination and CPU operation is shown in <figref idref="DRAWINGS">FIG. 20</figref>; the operational flow between CPU operation and changing the CPU software encryption code is shown in <figref idref="DRAWINGS">FIG. 21</figref>.
(a) In step SW<b>1</b>, the CPU software encryption code is first determined.
(b) Next, in step SW<b>2</b>, circuit design for the decryption code block <b>400</b> and design of the function to be configured in the FPGA circuit <b>37</b> is performed based on the CPU software encryption code.
(c) Next, in step SW<b>3</b>, data for the ROM (<b>1</b>) <b>302</b> is generated based on that design data.
(d) Next, in step SW<b>4</b>, the FPGA encryption code determined when designing the ASIC is used.
(e) Next, in step SW<b>5</b>, data for the first external ROM (<b>1</b>) <b>302</b> is encrypted.
(f) Next, in step SW<b>6</b>, the encrypted data is written in the first external ROM (<b>1</b>) <b>302</b>.
The following steps SW<b>7</b> through SW<b>10</b> are carried out in parallel with the above steps SW<b>2</b> through SW<b>6</b>.
(g) In step SW<b>7</b>, the software to be operated by the CPU <b>38</b> is designed.
(h) Next, in step SW<b>8</b>, data for the second external ROM (<b>2</b>) <b>301</b> is generated based on that design data.
(i) Next, in step SW<b>9</b>, since the decryption code for the second external ROM (<b>2</b>) <b>301</b> data has already been set, encryption of the first external ROM (<b>2</b>) <b>301</b> data is performed using that data.
(j) Next, in step SW<b>10</b>, the encrypted data is written in the second external ROM (<b>2</b>) <b>301</b>.
(k) Next, in step SW<b>11</b>, the second external ROM <b>301</b>, the first external ROM <b>302</b> and ASIC <b>31</b> are mounted on the printed circuit board <b>32</b>.
(l) Next, in step SW<b>12</b>, the power supply for the printed circuit board <b>32</b> is switched on. The FPGA unit configuration operation then starts automatically.
(m) In step SW<b>13</b>, the first external ROM (<b>1</b>) <b>302</b> data is received by the ASIC <b>31</b>, and then while referencing the data in the decryption code block <b>40</b>, the data read in is decoded in the first decoder circuit <b>133</b>.
(n) Next, in step SW<b>14</b>, the decoded data is transformed into data appropriate for the FPGA circuit in the configuration circuit <b>134</b>, output, and received by the FPGA circuit <b>37</b>. At the same time, this data is received by the FPGA circuit in the decryption code block <b>400</b>.
(o) Next, in step SW<b>15</b>, it is determined whether all of the data in the first external ROM <b>302</b> has been read. If YES, then processing proceeds to step SW<b>16</b>; if NO, then processing returns to step SW<b>13</b>.
(p) Next, in step SW<b>16</b>, the FPGA circuit <b>37</b> and the FPGA circuit inside the decryption code block <b>400</b> shift to user mode. The FPGA functions as designed and also configures the decryption code block <b>400</b>.
(q) Then in step SW<b>17</b>, operation of the ASIC <b>31</b> begins. The CPU <b>38</b> is also activated.
(r) Next, in step SW<b>18</b>, data is requested by procuring a start address set when designing the CPU <b>38</b> to the second external ROM (<b>2</b>) <b>301</b>. In other words, the ROM (<b>2</b>) <b>301</b> read address is determined by requesting information received from the CPU <b>38</b>. The ROM (<b>2</b>) <b>301</b> sends out the data of the specified address to the ASIC <b>31</b>,
(s) Next, in step SW<b>19</b>, in the second decoder circuit <b>233</b>, decoding of is the received data is performed in the second decoder circuit <b>233</b> based on the decryption code in the decryption code block <b>400</b> configured during configuration.
(t) Next, in step SW<b>20</b>, the decoded data is transmitted to the CPU <b>38</b>, where it is interpreted by the CPU, the designated task is performed, and the configuration waits for the next instruction.
(u) Next, in step SW<b>21</b>, it is determined whether or not the next specified job is waiting. If YES, then processing returns to step SW<b>18</b>. If NO, then step SW<b>21</b> is repeated.
As a result, with the semiconductor integrated circuit and the data transfer system according to the seventh embodiment of the present invention shown in <figref idref="DRAWINGS">FIG. 19</figref>, in addition to the benefits of the semiconductor integrated circuit and data transfer system according to the sixth embodiment of the present invention shown in <figref idref="DRAWINGS">FIG. 17</figref>, there is the significant feature of being able to generate a plurality of CPU <b>38</b> decryption codes by changing the first external ROM (<b>1</b>) <b>302</b> data.
In the case of simultaneously designing multiple equipment models, it is possible to design a single ASIC for use in all of the equipment models. Moreover, it is possible to have CPU software decryption codes which differ for each model. Accordingly, any damage resulting from secret codes being broken can be minimized.
EEPROM, flash PROM, EPROM, OTPROM (one time PROM), NTPROM (n time PROM: rewritable many times), fuse ROM, mask ROM or the like can be used as the ROM for either of the external ROMs <b>301</b> and <b>302</b>.
Of these, in the case where EEPROM, flash PROM, or NTPROM is used, there is the additional benefit which allows the CPU software encryption code to be changed on the user side when the time comes to release a new version of the application software, after the equipment has infused the market.
<figref idref="DRAWINGS">FIG. 21</figref> shows the flow of decryption code change in such cases.
(a2) In step SW<b>22</b>, a new encryption code for changing the CPU software encryption code is first determined.
(b2) Next, in step SW<b>23</b>, circuit design for the decryption code block <b>400</b> and design of the function to be configured in the FPGA circuit <b>37</b> is performed based on the changed CPU software encryption code.
(c2) Next, in step SW<b>24</b>, data for the first external ROM (<b>1</b>) <b>302</b> is generated based on that design.
(d2) Then in step SW<b>25</b>, the FPGA encryption code is determined.
(e2) Next, in step SW<b>26</b>, encryption of the first external ROM (<b>1</b>) <b>302</b> data is performed.
(f2) Then in step SW<b>27</b>, the encrypted data is registered in a web page on the Internet,
(g2) Next, in step SW<b>28</b>, data for the first external ROM (<b>1</b>) <b>302</b> that has been registered in a web page on the Internet is downloaded.
(h2) Next, in step SW<b>29</b>, the encrypted data downloaded is written in the first external ROM (<b>1</b>) <b>302</b>.
The following steps SW<b>30</b> through SW<b>35</b> are carried out in parallel with the above steps SW<b>23</b> through SW<b>29</b>.
(i2) In step SW<b>30</b>, the new software to be operated on the CPU <b>38</b> is designed.
(j2) Next, in step SWS<b>1</b>, data for the second external ROM (<b>2</b>) <b>301</b> is generated based on that design data.
(k2) Next, in step SW<b>32</b>, encryption of second external ROM (<b>2</b>) <b>301</b> data is performed.
(l2) Then in step SW<b>33</b>, the encrypted data is registered in a web page on the Internet.
(m2) Next, in step SW<b>34</b>, the encrypted data for the second external ROM (<b>2</b>) <b>301</b> that has been registered in a web page on the Internet is downloaded.
(m2) Next, in step SW<b>35</b>, the encrypted data downloaded is written in the second external ROM (<b>2</b>) <b>301</b>.
(o2) Next, in step SW<b>36</b>, the power supply for the printed circuit board <b>32</b> is switched on. The FPGA unit configuration operation then starts automatically.
Hereafter, steps substantially similar to steps SW<b>13</b> through SW<b>21</b> shown in <figref idref="DRAWINGS">FIG. 20</figref> are executed.
There are also cases where the first external ROM (<b>1</b>) <b>302</b> data and the second external ROM (<b>2</b>) <b>301</b> data is widely distributed through means other than Internet registration, for example on CD-ROMs. Therefore, being able to change the encryption code as needed gives the benefit of eliminating the effect of secrets being leaked in new software even if the secret code of the old version has been broken.
(Eighth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the eighth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 22</figref>, is a hybrid integrated circuit configured with an external ROM <b>30</b> integrated on the first semiconductor chip, an ASIC <b>31</b> integrated on the second semiconductor chip, and an ASIC <b>310</b> integrated on the third semiconductor chip, respectively mounted on a printed circuit board <b>32</b>. Moreover, the ASIC <b>31</b> is a monolithic integrated circuit configured with a decoder circuit <b>133</b>, which is connected to the external ROM <b>30</b> via a bus data line <b>36</b>; a configuration circuit <b>134</b>, which is connected to the decoder circuit <b>133</b>; an FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>134</b>; a decryption code block <b>40</b>, which is also connected to the decoder block <b>133</b>, and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. The FPGA circuit <b>37</b> is further connected to an FPGA circuit <b>340</b> inside of another ASIC <b>310</b>.
In addition, the example that the first semiconductor chip, the second semiconductor chip and the third semiconductor chip are implemented on the printed circuit board <b>32</b> together is shown in an example of <figref idref="DRAWINGS">FIG. 22</figref>, but, it is clear that the first semiconductor chip, the second semiconductor chip, and the third semiconductor chip may be implemented as a multi-layer structure via a soldered metal layer.
The semiconductor integrated circuit and data transfer system according to the eight embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 22</figref>, can also be viewed as a modified example of the first embodiment of the present invention. A configuration circuit (not shown in the figure) and an FPGA circuit <b>340</b> are embedded in the ASIC <b>310</b>.
In addition, the two FPGA circuits <b>37</b> and <b>340</b> are coupled serially. Encrypted data from the external ROM <b>1</b> is received and decoded by the decoder circuit <b>133</b>, and the function data is stored in the FPGA circuit <b>37</b>. The RAM which stores the data for determining the function of the FPGA Circuit <b>37</b>, as shown in <figref idref="DRAWINGS">FIG. 15</figref>, is configured with the shift register, which has as the basic unit, for instance, D-type flip/flops coupled serially. Accordingly, in the case where two FPGA circuits <b>37</b> and <b>340</b> are coupled serially, merely the number of serially coupled stages changes, but the fundamental writing operation does not change. When the power supply to the printed circuit board <b>32</b> mounted with these LSI circuits is switched on, the encrypted ROM data is transferred to the decoder circuit <b>133</b>, decoded, and then transmitted to the configuration circuit <b>134</b>. The configuration circuit <b>134</b> converts the data into a format suitable for the FPGA circuit, and transfers the data to the FPGA circuit <b>37</b>. Data is brought to the entrance of the serially coupled shift register in the FPGA circuit <b>37</b>, and then when the next piece of data is brought in, all of the received data is transferred forward one step at a time. Data arriving at the final stage of the serially connected states in the FPGA circuit <b>37</b> in the ASIC <b>31</b>, is then received in the FPGA circuit <b>340</b> of the ASIC <b>310</b>.
When the last of the ROM data has been received, the two FPGA circuits <b>37</b> and <b>340</b> switch over to user mode and operation of the ASIC <b>31</b> and the ASIC <b>310</b> starts.
As clearly seen from the configuration of the semiconductor integrated circuit and the data transfer system according to the eighth embodiment of the present invention, even in the case where a plurality of ASICs are included, the function data of each ASIC-embedded FPGA circuit can be managed by using only a single decoder circuit connected to a single external ROM <b>30</b>. This gives the benefit of allowing security to be improved for the function data to be configured in a plurality of ASIC-embedded FPGA circuits by using only one decoder circuit <b>133</b>.
(Modified Example 1 of the Eighth Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example <b>1</b> of the eighth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 23</figref>, has a configuration where the output of an FPGA circuit embedded in an ASIC <b>310</b> is coupled to an FPGA circuit <b>350</b> embedded in another, separate ASIC <b>340</b>. As clearly seen with the seventh embodiment, even in the case where a plurality of ASICs are included, the function data of each ASIC-embedded FPGA Circuit can be managed by using only a single decoder circuit <b>133</b> connected to a single external ROM <b>30</b>. It is possible to improve security for the function data to be configured in a plurality of ASIC-embedded FPGA circuits by using only one decoder circuit <b>133</b>. Moreover, embedding an FPGA circuit in a separate ASIC, and serially coupling the separate ASIC to the output of the FPGA circuit <b>350</b> is also possible using a similar method.
(Modified Example 2 of the Eighth Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example 2 of the eighth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 24</figref>, has a configuration where an ASIC <b>31</b> embedded with an FPGA circuit <b>37</b>, and an FPGA circuit <b>340</b> are serially connected. In this case, as with the eighth embodiment shown in <figref idref="DRAWINGS">FIG. 22</figref>, after the ROM data of the external ROM <b>30</b> is decoded and written in the FPGA circuit <b>37</b> and the FPGA circuit <b>340</b>, the FPGA circuit <b>37</b> and the FPGA circuit <b>340</b> shift to user mode and operation of the ASIC <b>31</b> starts. Through this, not only is it possible to improve data security for the single FPGA circuit <b>37</b> embedded in the ASIC <b>31</b>, but it is also possible to improve data security for the externally connected FPGA circuit <b>340</b>.
(Modified Example 3 of the Eighth Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example 3 of the eighth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 25</figref>, has a configuration where an FPGA circuit <b>37</b> embedded ASIC <b>31</b> is coupled with an FPGA circuit <b>340</b> serially, and the FPGA circuit <b>340</b> is further coupled with an FPGA circuit <b>350</b> serially. In this case, as with the eighth embodiment shown in <figref idref="DRAWINGS">FIG. 22</figref>, after the ROM data of the external ROM <b>30</b> is decoded and written in the FPGA circuits <b>37</b>, <b>340</b>, and <b>350</b>, the FPGA circuits <b>37</b>, <b>340</b>, and <b>350</b> shift to user mode and operation of the ASIC <b>31</b> starts. Through this, not only is it possible to improve data security for the single FPGA circuit <b>37</b> embedded in the ASIC <b>31</b>, but it is also possible to improve data security for the externally connected FPGA circuits <b>340</b> and <b>350</b>. Even in the case where a plurality of ASICs are included, the function data of each FPGA circuit can be managed by using only a single decoder circuit <b>133</b> connected to a single external ROM <b>30</b>. It is possible to improve security for the function data to be configured in an FPGA circuit by using only one decoder circuit <b>133</b>. Moreover, serially connecting a separate FPGA device to the FPGA circuit <b>350</b> to expand the system is also possible using a similar method.
(Ninth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the ninth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 26</figref>, is a hybrid integrated circuit configured with the second external ROM <b>301</b> and the first external ROM <b>302</b> and an ASIC <b>31</b> integrated on the second semiconductor chip and an ASIC <b>310</b>, respectively mounted on a printed circuit board <b>32</b>. The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip.
In addition, the ASIC <b>31</b> is a monolithic integrated circuit configured with a decoder circuit <b>133</b>, which is connected to the second external ROMs <b>301</b> and <b>302</b> via buses <b>360</b> and <b>361</b>, respectively; a decryption code block <b>40</b>, which is connected to the decoder circuit <b>133</b>; a CPU <b>38</b>, which is also connected to the decoder circuit <b>133</b>; and an internal circuit <b>35</b>, which is connected to the CPU <b>38</b>. A configuration circuit (not shown in the figure) and an FPGA circuit <b>340</b> are embedded in the ASIC <b>310</b>. The decoder circuit <b>133</b> is further connected to an FPGA circuit <b>340</b> inside of the ASIC <b>310</b>. At this point, in the case of the eighth embodiment of the present invention, there are two external ROMs, each of which store encryption codes suited for their respective operations. Namely, encrypted circuit design information data to be used for the FPGA circuit <b>340</b> is stored in the first external ROM <b>302</b>. In addition, encrypted software data to be used in the CPU <b>38</b> is stored in the second external ROM <b>301</b>. In addition, all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> as shown in <figref idref="DRAWINGS">FIG. 26</figref>, but, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
When the power supply for the printed circuit board mounted with these LSI circuits is first switched on, the encrypted data for the first external ROM <b>302</b> is received in the ASIC <b>31</b>, decoded in the decoder circuit <b>133</b>, and then output to the ASIC <b>310</b> via a bus data line <b>365</b>. The data received in the ASIC <b>310</b> is also received in the FPGA circuit <b>340</b> via the configuration circuit. When all of the ROM data has been received, the FPGA circuit <b>340</b> shifts to user mode and operation of the ASIC <b>31</b> and the ASIC <b>310</b> starts.
When the operation of the ASIC <b>31</b> starts, the operation of the embedded CPU <b>38</b> also starts, whereupon a start address set during CPU <b>38</b> design is output to the ROM <b>301</b> and data is requested from the ROM <b>310</b>. The ROM <b>301</b> outputs the data of the specified address to the ASIC <b>31</b> via the data bus <b>360</b>. The data received by the ASIC <b>31</b> is decoded by the decoder circuit <b>133</b> and transferred to the CPU <b>38</b>. The data received by the CPU <b>38</b> is interpreted, tasks are executed, and the CPU <b>38</b> then waits for the next task to be designated.
In the case where an FPGA circuit <b>340</b> and a CPU <b>38</b> are embedded on separate ASICs, this makes it possible to improve data secrecy for both, with a single decoder circuit <b>133</b>.
(Modified Example of the Ninth Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example of the ninth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 27</figref>, has a configuration where an ASIC <b>31</b> embedded with a CPU <b>38</b>, and an FPGA circuit <b>340</b> are serially coupled. This illustrates a working example where a CPU <b>38</b> is loaded on an ASIC <b>31</b>, and data security for both the ASIC <b>31</b> and the externally connected FPGA circuit <b>340</b> is improved. As with the operation of the ninth embodiment shown in <figref idref="DRAWINGS">FIG. 26</figref>, after all of the data of the first external ROM <b>302</b> is written in the FPGA circuit <b>340</b>, the FPGA circuit <b>340</b>, shifts to user mode and operation of the ASIC <b>31</b> starts. The operation of the CPU <b>38</b> then also starts, and after data from the ROM <b>301</b> is received and decoded, the CPU interprets the data and tasks are executed. This not only allows software security to be improved for the ASIC <b>38</b> loaded with the CPU <b>38</b>, but data security can also be improved for the externally connected FPGA circuit <b>340</b>.
As with the semiconductor integrated circuit and data transfer system according to a modified example 3 of the eighth embodiment of the present invention shown in <figref idref="DRAWINGS">FIG. 25</figref>, for example as shown in <figref idref="DRAWINGS">FIG. 26</figref>, there is a configuration where an FPGA circuit <b>38</b> embedded ASIC <b>31</b> is serially coupled with an FPGA circuit <b>340</b>, and the FPGA circuit <b>340</b> is further serially coupled with an FPGA circuit <b>350</b>.
Even in the case where a plurality of ASICs are included, the function data of each FPGA circuit can be managed by using only a single decoder circuit <b>133</b> connected to the first external ROM <b>302</b>. It is possible to improve security for the function data to be configured in an FPGA circuit by using only one decoder circuit <b>133</b>. Moreover, serially connecting a separate FPGA device to the FPGA circuit <b>350</b> to expand the system is also possible using a similar method.
(Tenth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the tenth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 28</figref>, is a hybrid integrated circuit configured with external ROMs <b>301</b> and <b>302</b> and ASICs <b>31</b> and <b>310</b>, respectively mounted on a printed circuit board <b>32</b>. In addition, the ASIC <b>31</b> is a monolithic integrated circuit configured with a decoder circuit <b>133</b>, which is connected to the external ROMs <b>301</b> and <b>302</b> via buses <b>360</b> and <b>361</b>, respectively; a decryption code block <b>40</b>, which is connected to the decoder Circuit <b>133</b>; an FPGA circuit <b>37</b>, which is also connected to the decoder circuit <b>133</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. In addition a CPU <b>341</b> is loaded on the ASIC <b>310</b>. The decoder Circuit <b>133</b> in the ASIC <b>31</b> is further connected to the CPU <b>341</b> in the ASIC <b>310</b>. The FPGA circuit <b>37</b> executes fixed circuit operation between it and the internal circuit <b>35</b>. The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip. Also, the ASIC <b>31</b> is integrated on the second semiconductor chip and the ASIC <b>310</b> is integrated on the third semiconductor chip. In addition, the example that all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> is shown as an example of <figref idref="DRAWINGS">FIG. 28</figref>, but, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
A semiconductor integrated circuit and a data transfer system according to the tenth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 28</figref>, is similar to the ninth embodiment shown in <figref idref="DRAWINGS">FIG. 26</figref>, in that the configuration has two coupled ASICs which are each embedded with either an FPGA circuit or a CPU. In the tenth embodiment, the ASIC <b>31</b> embedded with the FPGA circuit <b>37</b> is also embedded with the decoder circuit <b>133</b>.
Encrypted data is first output to the ASIC <b>31</b> from the first external ROM <b>302</b>. Next, data decoding is performed in the decoder circuit <b>133</b> of the ASIC <b>31</b>. The decoded data is then written in the FPGA circuit <b>37</b> via the configuration circuit <b>134</b>. After all of the ROM data in the first external ROM <b>302</b> has been received, the FPGA circuit <b>37</b> shifts to user mode and operation of the ASIC <b>31</b> and the ASIC <b>310</b> starts.
Operation of the CPU <b>341</b> embedded in the ASIC <b>310</b> is also started. The CPU <b>341</b> specifies an address to request data from the ROM <b>301</b> via the address bus line <b>366</b>. The encrypted data of the second external ROM <b>301</b> is first sent out to the ASIC <b>31</b> and decoded in the decoder <b>133</b> of the same. Next, the decoded data is then sent to the ASIC <b>310</b> via the data bus <b>365</b>. The CPU <b>341</b> in the ASIC <b>310</b> interprets the received data and performs tasks.
In the case where an FPGA circuit <b>37</b> and a CPU <b>341</b> are embedded on separate ASICs, this makes it possible to improve data secrecy for both, using a single decoder circuit <b>133</b>.
(Modified Example of the Tenth Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example of the tenth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 29</figref>, has a configuration where an ASIC <b>31</b> embedded with an FPGA circuit <b>37</b>, and a CPU <b>341</b> are serially coupled. This illustrates a working example where an FPGA circuit <b>37</b> is loaded on an ASIC <b>31</b>, and data security for both the ASIC <b>31</b> and the externally connected CPU <b>341</b> is improved.
As with the operation of the tenth embodiment shown in <figref idref="DRAWINGS">FIG. 28</figref>, after all of the data of the first external ROM <b>302</b> is written in the FPGA circuit <b>37</b>, the FPGA circuit <b>37</b> shifts to user mode and operation of the ASIC <b>31</b> and the CPU <b>341</b> starts. The CPU <b>341</b> specifies an address to request data from the ROM <b>301</b>. The second external ROM <b>301</b> sends out the data of the specified address to the ASIC <b>31</b>. The data received is decoded by the decoder circuit <b>133</b> in the ASIC <b>31</b> and transferred to the CPU <b>341</b>. The CPU <b>341</b> interprets the received data and performs tasks.
This not only allows software security to be improved for the ASIC <b>37</b> loaded with the FPGA circuit <b>37</b>, hut software data security can also be improved for the externally connected FPGA circuit <b>340</b>.
(Eleventh Embodiment)
A semiconductor integrated circuit and a data transfer system according to the eleventh embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 30</figref>, is a hybrid integrated circuit configured with external ROMs <b>301</b> and <b>302</b> and ASICs <b>31</b>, <b>310</b>, and <b>320</b> respectively mounted on a printed circuit board <b>32</b>. In addition, the ASIC <b>31</b> is a monolithic integrated circuit configured with a decoder circuit <b>133</b>, which is connected to the first external ROM <b>302</b> via a bus data line <b>361</b>; a second decoder circuit <b>233</b>, which is connected to the second external ROM <b>301</b> via a bus data line <b>360</b>; a decryption code block <b>40</b>, which is connected to the decoder circuit <b>133</b> and the second decoder circuit <b>233</b>; a configuration circuit <b>134</b>, which is also connected to the second decoder circuit <b>233</b>; the FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>134</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. A configuration circuit (not shown in the figure) and FPGA circuits <b>340</b> and <b>350</b> are loaded onto the ASICs <b>310</b> and <b>320</b>. In addition, the FPGA circuit <b>37</b> is further connected to an FPGA circuit <b>340</b> inside of the ASIC <b>310</b>. In addition, the decoder circuit <b>133</b> is further connected to an FPGA circuit <b>350</b> inside of the ASIC <b>320</b>. In this embodiment, the FPGA circuit <b>37</b> executes a fixed circuit operation between the FPGA circuit and the internal circuit <b>35</b>, and defines the circuit formation of the FPGA circuit <b>340</b>.
The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip. Also, the ASIC <b>31</b> is integrated on the second semiconductor chip and the ASIC <b>310</b> is integrated on the third semiconductor chip. The ASIC <b>320</b> is integrated on the fourth semiconductor chip. In addition, the example that all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> is shown in an example of <figref idref="DRAWINGS">FIG. 30</figref>, but, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
A semiconductor integrated circuit and a data transfer system according to the eleventh embodiment as shown in <figref idref="DRAWINGS">FIG. 30</figref> corresponds to an embodiment configured by embedding an FPGA circuit in three ASICs and connecting each of the FPGA circuits. When the power supply for the printed circuit board <b>32</b> on which these LSI circuits are mounted is switched on, data stored in the ROM <b>301</b> and ROM <b>302</b> is imported to the ASIC <b>31</b> in parallel. The data stored in the second external ROM <b>301</b> is decrypted by the second decoder circuit <b>233</b>, and written in the FPGA Circuit <b>37</b> via the configuration circuit <b>134</b>, and further written in the FPGA circuit <b>340</b> inside the ASIC <b>310</b>. The data stored in the first external ROM <b>302</b> is decrypted by the decoder circuit <b>133</b> in the ASIC <b>31</b>, and written in the FPGA circuit <b>350</b> inside the ASIC <b>320</b>. After all of the data stored in the second external ROM <b>301</b> is written in the FPGA circuits <b>37</b> and <b>340</b>, and all of the data stored in the first external ROM <b>302</b> is written in the FPGA circuit <b>350</b>, all the FPGA circuits <b>37</b>, <b>340</b> and <b>350</b> shift into user mode, so as to initiate operation of the ASIC <b>31</b>, the ASIC <b>310</b>, and the ASIC <b>320</b>. Due to such operational configuration, even with multiple ASICs each embedded with the FPGA circuit, overall data security enhancement is possible with the single decryption code block <b>40</b>. Moreover, there is the advantage that configuration time is shortened since configuration for multiple ASICs can be performed with multiple lines at the same time.
(Modified Example of the Eleventh Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example of the eleventh embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 31</figref>, is a hybrid integrated circuit configured with an ASIC <b>31</b>, external ROMs <b>301</b> and <b>302</b> and external FPGA circuits <b>340</b> and <b>350</b>, respectively mounted on a printed circuit board <b>32</b>. In addition, the ASIC <b>31</b> is a monolithic integrated circuit configured with a decoder circuit <b>133</b>, which is connected to the first external ROM <b>302</b> via a bus data line <b>361</b>; a second decoder circuit <b>233</b>, which is connected to the second external ROM <b>301</b> via a bus data line <b>360</b>; a decryption code block <b>40</b>, which is connected to the decoder circuit <b>133</b> and the second decoder circuit <b>233</b>; a configuration circuit <b>134</b>, which is also connected to the second decoder circuit <b>233</b>; the FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>134</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>, The FPGA circuit <b>37</b> is further connected to an FPGA circuit <b>340</b>. In addition, the decoder circuit <b>133</b> is further connected to an FPGA circuit <b>350</b>. In this embodiment, the FPGA circuit <b>37</b> executes a fixed circuit operation between the FPGA circuit and the internal circuit <b>35</b>, and defines the circuit formation of the FPGA circuit <b>340</b>.
The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip. Also, the ASIC <b>31</b> is integrated on the second semiconductor chip and the FPGA circuit <b>340</b> is integrated on the third semiconductor chip. The FPGA circuit <b>350</b> is integrated on the fourth semiconductor chip. In addition, all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> is shown as an example of <figref idref="DRAWINGS">FIG. 30</figref>, but, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
The modified example of the eleventh embodiment as shown in <figref idref="DRAWINGS">FIG. 31</figref> corresponds to an embodiment configured by connecting the FPGA circuit <b>37</b> embedded ASIC <b>31</b> and two FPGA circuits <b>340</b> and <b>350</b>. The cited elements have almost the same operational conditions, as those in <figref idref="DRAWINGS">FIG. 30</figref>, they are modified such that, as shown in <figref idref="DRAWINGS">FIG. 30</figref>, the FPGA circuits <b>340</b> and <b>350</b> take the place of the ASICs <b>310</b> and <b>320</b> embedded with the FPGA circuits <b>340</b> and <b>350</b>, which are externally connected. In this case also, after all of the data stored in the ROMs <b>301</b> and <b>302</b> is written in the FPGA circuits <b>37</b> and <b>340</b>, or the FPGA circuit <b>350</b>, the FPGA circuits <b>37</b> and <b>340</b>, or the FPGA <b>350</b> shift into the user mode, causing the ASIC <b>31</b> to start operation, With such operational configuration, a single ASIC <b>31</b> embedded with the FPGA circuit <b>37</b> allows an enhancement in the secrecy of all data written in the FPGA including multiple FPGAs that are externally connected, Moreover, there is an advantage in that configuration time is shortened since configuration for multiple ASICs can be performed with multiple lines at the same time.
(Twelfth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the twelfth embodiment of the present invention, as shown in to <figref idref="DRAWINGS">FIG. 32</figref>, is a hybrid integrated circuit configured with external ROMs <b>301</b> and <b>302</b> and ASICs <b>31</b>, <b>310</b>, and <b>320</b> respectively mounted on a printed circuit board <b>32</b>. In addition, the ASIC <b>31</b> is a monolithic integrated circuit configured with a first decoder circuit <b>133</b>, which is connected to the first external ROM <b>302</b> via a bus data line <b>361</b>; a second decoder circuit <b>233</b>, which is connected to the second external ROM <b>301</b> via a bus data line <b>360</b>; a decryption code block <b>40</b>, which is connected to the decoder circuit <b>133</b> and the second decoder circuit <b>233</b>; a configuration circuit <b>134</b>, which is also connected to the second decoder circuit <b>233</b>; the FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>134</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. A configuration Circuit (not shown in the figure) and an FPGA circuit <b>340</b> are loaded on the ASIC <b>310</b>, and a CPU <b>341</b> is loaded on the ASIC <b>320</b>. In addition, the FPGA circuit <b>37</b> is further connected to an FPGA circuit <b>340</b> inside the ASIC <b>310</b>. In addition, the first decoder circuit <b>133</b> is further connected to CPU <b>341</b> inside the ASIC <b>320</b>. In this embodiment, the FPGA circuit <b>37</b> executes a fixed circuit operation between the FPGA circuit and the internal circuit <b>35</b>, and defines the circuit formation of the FPGA circuit <b>340</b>.
The first external ROM <b>302</b> is integrated on the first semiconductor so chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip. Also, the ASIC <b>31</b> is integrated on the second semiconductor chip and the ASIC <b>310</b> is integrated on the third semiconductor chip. The ASIC <b>320</b> is integrated on the fourth semiconductor chip. In addition, while all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> is shown as an example of <figref idref="DRAWINGS">FIG. 32</figref>, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
The twelfth embodiment as shown in <figref idref="DRAWINGS">FIG. 32</figref> corresponds to an embodiment configured by embedding an FPGA circuit in two of the three ASICs and a CPU in the other ASIC and connecting each of the ASICs. It can also be viewed as a combination of the eighth embodiment shown in <figref idref="DRAWINGS">FIG. 22</figref> and the tenth embodiment shown in <figref idref="DRAWINGS">FIG. 28</figref>. When the power supply for the printed circuit board <b>32</b> on which these LSI chips are mounted is switched on, all of the data stored in the second external ROM <b>301</b> is imported to the ASIC <b>31</b> and the FPGA circuits <b>37</b> and <b>340</b> are converted to user mode. Then, the data stored in the first external ROM <b>302</b> is imported to the ASIC <b>31</b>.
The data stored in the second external ROM <b>301</b> is decrypted by the second decoder circuit <b>233</b>, and written in the FPGA circuit <b>37</b> via the configuration circuit <b>134</b>, and further written in the FPGA circuit <b>340</b> inside the ASIC <b>310</b>. The data stored in the first external ROM <b>302</b> is decrypted by the first decoder circuit <b>133</b> in the ASIC <b>31</b>, and sent to the ASIC <b>320</b>, and then provided to the CPU <b>341</b> in the ASIC <b>320</b>.
After all of the data stored in the second external ROM <b>301</b> is written in the FPGA circuits <b>37</b> and <b>340</b>, the ASIC <b>31</b>, the ASIC <b>310</b>, and the ASIC <b>320</b> start to operate. An address assignment is requested from the CPU <b>341</b> for the first external ROM <b>302</b>, the encrypted software data stored in the first external ROM <b>302</b> is written in the CPU <b>341</b> in response to the address request. Due to such operational configuration, with multiple ASICs each embedded with the FPGA circuit or the CPU, overall data secrecy enhancement is possible with a single decryption code block <b>40</b>.
(Modified Example of the Twelfth Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example of the twelfth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 33</figref>, is a hybrid integrated circuit configured with an ASIC <b>31</b>, external ROMs <b>301</b> and <b>302</b>, external FPGA circuit <b>340</b>, and a CPU <b>341</b> respectively mounted on a printed circuit board <b>32</b>. In addition, the ASIC <b>31</b> is a monolithic integrated circuit configured with a first decoder circuit <b>133</b>, which is connected to the first external ROM <b>302</b> via a bus data line <b>361</b>; a second decoder circuit <b>233</b>, which is connected to the second external ROM <b>301</b> via a bus data line <b>360</b>; a decryption code block <b>40</b>, which is connected to the first decoder circuit <b>133</b> and the second decoder circuit <b>233</b>; a configuration circuit <b>134</b>, which is also connected to the second decoder circuit <b>233</b>; the FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>134</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. The FPGA circuit <b>37</b> is further connected to an FPGA circuit <b>340</b>. In addition, the decoder circuit <b>133</b> is further connected to CPU <b>341</b>. In this embodiment, the FPGA circuit <b>37</b> executes fixed Circuit operation between it and the internal circuit <b>35</b>, and defines the circuit formation of the FPGA circuit <b>340</b>.
The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip. Also, the ASIC <b>31</b> is integrated on the second semiconductor chip and the FPGA circuit <b>340</b> is integrated on the third semiconductor chip. The CPU <b>341</b> is integrated on the fourth semiconductor chip, In addition, while all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> is shown as an example of <figref idref="DRAWINGS">FIG. 33</figref>, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
The modified example of the twelfth embodiment as shown in <figref idref="DRAWINGS">FIG. 33</figref> corresponds to an embodiment configured by deploying the CPU <b>341</b> and the FPGA circuit <b>340</b> external to the ASIC <b>31</b> embedded with a single FPGA circuit <b>37</b>, and connecting each of the CPU <b>341</b>, the FPGA circuit <b>340</b> and the ASIC <b>31</b>. This can also be seen as a combination of the modified example 2 of the eighth embodiment shown in <figref idref="DRAWINGS">FIG. 24</figref> and the modified example of the tenth embodiment shown in <figref idref="DRAWINGS">FIG. 29</figref>. When the power supply for the printed circuit board <b>32</b> on which these LSI circuits are mounted is switched on, all of the data stored in the second external ROM <b>301</b> is imported to the ASIC <b>31</b> and the FPGA circuits <b>37</b> and <b>340</b> are converted to user mode. Then, the data stored in the first external ROM <b>302</b> is imported to the ASIC <b>31</b>. The data stored in the second external ROM <b>301</b> is decrypted by the second decoder circuit <b>233</b>, and written in the FPGA circuit <b>37</b> via the configuration circuit <b>134</b>, and further written in the FPGA circuit <b>340</b>. The data stored in the first external ROM <b>302</b> is decrypted by the first decoder circuit <b>133</b> in the ASIC <b>31</b>, and sent to the CPU <b>341</b>. After all of the data stored in the second external ROM <b>301</b> is written in the FPGA circuits <b>37</b> and <b>340</b>, the ASIC <b>31</b> starts to operate. An address assignment is requested from the CPU <b>341</b> for the first external ROM <b>302</b>, the encrypted software data stored in the first external ROM <b>302</b> is written in the CPU <b>341</b> in response to the address request. Due to such operational configuration, with multiple ASICs each embedded with the FPGA circuit or the CPU, an enhancement in the secrecy or security of all data with a single decryption code block <b>40</b> is possible.
(Thirteenth Embodiment)
A semiconductor integrated circuit and a data transfer system according to the thirteenth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 34</figref>, is a hybrid integrated circuit configured with external ROMs <b>301</b> and <b>302</b> and ASICs <b>31</b>, <b>310</b>, and <b>320</b> respectively mounted on a printed circuit board <b>32</b>. The ASIC <b>31</b> is a monolithic integrated circuit configured with a second decoder circuit <b>233</b>, which is connected to the second external ROM <b>301</b> via a bus data line <b>360</b>; a decoder circuit <b>133</b>, which is connected to the first external ROM <b>302</b> via a bus data line <b>360</b>; a decryption code block <b>40</b>, which is connected to the second decoder circuit <b>233</b>; a configuration circuit <b>134</b>, which is also connected to the second decoder circuit <b>233</b>; an FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>134</b>; a decryption code block <b>400</b>, which is also connected to the configuration circuit <b>134</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. <figref idref="DRAWINGS">FIG. 34</figref> has the significant feature that the decryption code block <b>400</b> is configured with an FPGA circuit. The ASIC <b>310</b> includes a configuration circuit (not shown in the drawings), an FPGA circuit <b>340</b>, and the ASIC <b>320</b> includes a CPU <b>341</b>. The FPGA circuit <b>37</b> is further connected to an FPGA circuit <b>340</b> via the configuration circuit in the ASIC <b>310</b>. In addition, the decoder circuit <b>133</b> is further connected to a CPU <b>341</b> in the ASIC <b>320</b>.
In the ASIC <b>31</b>, a decryption code used for decoding FPGA circuit information data is embedded in the decryption code block <b>40</b>, The decryption code used for decoding CPU software data is embedded in the decryption code block <b>400</b> configured by the FPGA. Since the FPGA circuit configuring the decryption code block <b>400</b> is defined by the configuration circuit <b>134</b>, the encrypted CPU software data may be altered through ROM <b>301</b> programming.
The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b>, may be integrated on the same semiconductor chip with the first semiconductor chip. Also, the ASIC <b>31</b> is integrated on the second semiconductor chip and the ASIC <b>310</b> is integrated on the third semiconductor chip. The ASIC <b>320</b> is integrated on the fourth semiconductor chip. In addition, while all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> is shown as an example of <figref idref="DRAWINGS">FIG. 34</figref>, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
The semiconductor integrated circuit and a data transfer system according to the thirteenth embodiment has substantially the same fundamental configuration and operation as the seventh embodiment of the present invention shown in <figref idref="DRAWINGS">FIG. 19</figref>. The CPU <b>341</b> is loaded on the externally connected ASIC <b>320</b> and the ASIC <b>310</b> loaded with the FPGA circuit <b>340</b> is externally connected to the FPGA circuit <b>37</b> of the ASIC <b>31</b>. This makes it possible to improve data secrecy for written data in the plurality of externally connected FPGA circuits <b>340</b> and the software data of the CPU <b>341</b> using the single ASIC <b>31</b> loaded with the FPGA circuit <b>37</b>. In addition to this advantage, by changing the data of the second external ROM <b>301</b>, the decryption code for the CPU <b>34</b>) stored in the second decryption code block <b>400</b> can be changed at any time.
(Modified Example of the Thirteenth Embodiment)
A semiconductor integrated circuit and a data transfer system according to a modified example of the thirteenth embodiment of the present invention, as shown in <figref idref="DRAWINGS">FIG. 35</figref>, is a hybrid integrated circuit configured with an ASIC <b>31</b>, external ROMs <b>301</b> and <b>302</b>, external FPGA circuit <b>340</b>, and an external CPU <b>341</b> respectively mounted on a printed circuit board <b>32</b>. The ASIC <b>31</b> is a monolithic integrated circuit configured with a second decoder circuit <b>233</b>, which is connected to the second external ROM <b>301</b> via a bus data line <b>360</b>; a decoder circuit <b>133</b>, which is connected to the first external ROM <b>302</b> via a bus data line <b>360</b>; a decryption code block <b>40</b>, which is connected to the second decoder circuit <b>233</b>; a configuration circuit <b>134</b>, which is also connected to the second decoder circuit <b>233</b>; an FPGA circuit <b>37</b>, which is connected to the configuration circuit <b>1314</b>; a decryption code block <b>400</b>, which is also connected to the configuration circuit <b>134</b>; and an internal circuit <b>35</b>, which is connected to the FPGA circuit <b>37</b>. As with <figref idref="DRAWINGS">FIG. 34</figref>, the decryption code block <b>400</b> is configured with an FPGA circuit. The FPGA circuit <b>37</b> is further connected to an FPGA circuit <b>340</b>. In addition, the decoder circuit <b>133</b> is further connected to a CPU <b>341</b>.
The first external ROM <b>302</b> is integrated on the first semiconductor chip. The second external ROM <b>301</b> is integrated on a semiconductor chip different from the second semiconductor chip. The second external ROM <b>301</b> may be integrated on the same semiconductor chip with the first semiconductor chip, Also, the ASIC <b>31</b> is integrated on the second semiconductor chip and the FPGA circuit <b>340</b> is integrated on the third semiconductor chip. The CPU <b>341</b> is integrated on the fourth semiconductor chip. In addition, while all of the semiconductor chips are implemented together on the printed circuit board <b>32</b> is shown as an example of <figref idref="DRAWINGS">FIG. 35</figref>, it is clear that all of the semiconductor chips may be implemented as a multi-layer structure via a soldered metal layer.
With the ASIC <b>31</b>, a decryption code that is used to decode the FPGA circuit data is implanted in the decryption code block <b>40</b>. The decryption code that is used to decode data for the CPU is implanted in the decryption code block <b>400</b>. Since the FPGA circuit that configures the decryption code block <b>400</b> is defined by the configuration circuit <b>134</b>, programming the second external ROM <b>301</b> allows a change in the encrypted software program for the CPU.
As apparent from a comparison of <figref idref="DRAWINGS">FIG. 34</figref> and <figref idref="DRAWINGS">FIG. 35</figref>, the structure and operation of a semiconductor integrated circuit and a data transfer system according to a modified example of the thirteenth embodiment are the same as those of the semiconductor integrated circuit and the data transfer system according to the thirteenth embodiment. With such a configuration, not only does a single ASIC <b>31</b> embedded with the FPGA circuit <b>37</b> allow an enhancement in the secrecy or security of data to be written in the FPGA circuit <b>37</b> embedded in the ASIC <b>31</b>, but also in the secrecy or security of data for the FPGA circuit <b>340</b> and CPU <b>341</b>, which are all-purpose products connected to the external elements. In addition to this advantage, it is possible to change the decryption code for the CPU <b>341</b> at any time by changing the FPGA circuit data stored in the second external ROM <b>301</b>.
Note that each of the above embodiments can be put into practice in combination with another. When combined, it is possible to provide a semiconductor integration circuit and a semiconductor integration circuit system by loading the CPU and the FPGA and using encrypted data for both the CPU and the FPGA.
(Other Embodiments)
Various modifications will become possible for those skilled in the art after receiving the teachings of the present disclosure without departing from the scope thereof.
Naturally, various embodiments not specifically mentioned in this specification may be thus included in the present invention Accordingly, the technical scope of the present invention as may be defined reasonable from the above description should be viewed as only being limited by the following claims.
Contents7
36 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36
Every citation, both waysCites: the store holds 28 of 29
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2009031111A1 | Cited by | United States of America | Pre-grant |
| US7941866B2 | Cited by | United States of America | Search report |
| US7444565B1 | Cited by | United States of America | Search report |
| US2009067632A1 | Cited by | United States of America | Pre-grant |
| US8189773B2 | Cited by | United States of America | Applicant |
| US10008279B1 | Cited by | United States of America | Search report |
| US11429751B2 | Cited by | United States of America | Applicant |
| US7783897B2 | Cited by | United States of America | Search report |
| US2008141340A1 | Cited by | United States of America | Pre-grant |
| US7962965B2 | Cited by | United States of America | Search report |
| US7865862B2 | Cited by | United States of America | Applicant |
| US2007296460A1 | Cited by | United States of America | Pre-grant |
| US2009125704A1 | Cited by | United States of America | Pre-grant |
| US7761690B2 | Cited by | United States of America | Search report |
| US7512813B2 | Cited by | United States of America | Search report |
| US2006265603A1 | Cited by | United States of America | Pre-grant |
| US2005278551A1 | Cited by | United States of America | Pre-grant |
| US2002112140A1 | Cited by | United States of America | Pre-grant |
| WO0049717A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0108411A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0146810A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| JP2000076144A | Cites | Japan | Applicant |
| US2001015919A1 | Cites | United States of America | Search report |
| US2001037457A1 | Cites | United States of America | Search report |
| JP2001325153A | Cites | Japan | Applicant |
| JP2002050956A | Cites | Japan | Applicant |
| US2002199110A1 | Cites | United States of America | Search report |
| JP2002334019A | Cites | Japan | Applicant |
| JP2004515001A | Cites | Japan | Applicant |
| JP2004515180A | Cites | Japan | Applicant |
| JP2005518691A | Cites | Japan | Applicant |
| US4786613A | Cites | United States of America | Search report |
| US5369772A | Cites | United States of America | Search report |
| US5388157A | Cites | United States of America | Search report |
| US5768372A | Cites | United States of America | Search report |
| US5970142A | Cites | United States of America | Search report |
| US6118869A | Cites | United States of America | Search report |
| US6141756A | Cites | United States of America | Search report |
| US6278289B1 | Cites | United States of America | Search report |
| US6351814B1 | Cites | United States of America | Applicant |
| US6356637B1 | Cites | United States of America | Search report |
| US6366117B1 | Cites | United States of America | Search report |
| US6425126B1 | Cites | United States of America | Search report |
| US6654889B1 | Cites | United States of America | Search report |
| JPH02155034A | Cites | Japan | Applicant |
| JPH1055135A | Cites | Japan | Applicant |
| Altera. “Configuring FLEX 10K Devices: Application Note 59”, 1995. | Non-patent | – | Search report |
| Atmel “FPGA Configuration E{circle around ( )}2PROM”, 1997. | Non-patent | – | Search report |
| ClearLogic. “LIBERATOR System Configuration and Intialization: Clear Logic CL10K Family, Application Note AN-15”, Jun. 2003. | Non-patent | – | Search report |
| Cowen. “How to load a Xilinx FPGA”, 1995. | Non-patent | – | Search report |
| Fidanci, Osman Devrim et al. “Performance and Overhead in a Hybrid Reconfigurable Computer”, 2003 IEEE. | Non-patent | – | Search report |
| FOLDOC. Definitions of “ASIC” and “FPGA” from “Free On-Line Dictionary Of Computing”, 1995 & 1997. | Non-patent | – | Search report |
| GoAhead Software. “Field Upgradeable Hardware and Software Systems: Enabling Technology from GoAhead Software and Xilinx”, 2000. | Non-patent | – | Search report |
| Gray, Jan. “Why FPGA CPUs?”, 1998. | Non-patent | – | Search report |
| Hauser, John R. et al. “Garp: A MIPS Processor with a Reconfigurable Coprocessor”, IEEE 1997. | Non-patent | – | Search report |
| Microsoft Press. “Microsoft Computer Dictionary, Third Edition”, 1997. | Non-patent | – | Search report |
| Virtual Computer Corporation (VCC). “Field Programmable Gate Arrays (FPGAs) and Enabling Technology”, 2000. | Non-patent | – | Search report |
| Xilinx. “FPGA Configuration”, 1999. | Non-patent | – | Search report |
| Xilinx. “Virtex 2.5V Field Programmable Gate Arrays”, 2001. | Non-patent | – | Search report |
| Xilinx. “Configuring FPGAs Over a Processor Bus”, 1995. | Non-patent | – | Search report |
| Yamaguchi, Teruyoshi et al. “A Study on Reconfigurable Computing System for Cryptography”, 2000 IEEE. | Non-patent | – | Search report |
| Yip, Kun-Wah et al. “Partial-Encryption Technique for Intellectual Property Protection of FPGA-Based Products”, 2000 IEEE. | Non-patent | – | Search report |
| Zhu, Xiaohan et al. “Hardware Compilation for FPGA-based Configurable Computing Machines”, 1999 ACM. | Non-patent | – | Search report |
| Copy of U.S. Appl. No. 10/106,103, filed Mar. 27, 2002, to Kaneko et al. | Non-patent | – | Third party observation |
| Notice of Grounds for Rejection Issued in counterpart Japanese application 2003-068392 on Feb. 7, 2006. | Non-patent | – | Third party observation |
| Altera. "Configuring FLEX 10K Devices: Application Note 59", 1995. | Non-patent | – | Search report |
| Atmel "FPGA Configuration E{circle around ( )}2PROM", 1997. | Non-patent | – | Search report |
| ClearLogic. "LIBERATOR System Configuration and Intialization: Clear Logic CL10K Family, Application Note AN-15", Jun. 2003. | Non-patent | – | Search report |
| Cowen. "How to load a Xilinx FPGA", 1995. | Non-patent | – | Search report |
| Fidanci, Osman Devrim et al. "Performance and Overhead in a Hybrid Reconfigurable Computer", 2003 IEEE. | Non-patent | – | Search report |
| FOLDOC. Definitions of "ASIC" and "FPGA" from "Free On-Line Dictionary Of Computing", 1995 & 1997. | Non-patent | – | Search report |
| GoAhead Software. "Field Upgradeable Hardware and Software Systems: Enabling Technology from GoAhead Software and Xilinx", 2000. | Non-patent | – | Search report |
| Gray, Jan. "Why FPGA CPUs?", 1998. | Non-patent | – | Search report |
| Hauser, John R. et al. "Garp: A MIPS Processor with a Reconfigurable Coprocessor", IEEE 1997. | Non-patent | – | Search report |
| Microsoft Press. "Microsoft Computer Dictionary, Third Edition", 1997. | Non-patent | – | Search report |
| Virtual Computer Corporation (VCC). "Field Programmable Gate Arrays (FPGAs) and Enabling Technology", 2000. | Non-patent | – | Search report |
| Xilinx. "FPGA Configuration", 1999. | Non-patent | – | Search report |
| Xilinx. "Virtex 2.5V Field Programmable Gate Arrays", 2001. | Non-patent | – | Search report |
| Xilinx. "Configuring FPGAs Over a Processor Bus", 1995. | Non-patent | – | Search report |
| Yamaguchi, Teruyoshi et al. "A Study on Reconfigurable Computing System for Cryptography", 2000 IEEE. | Non-patent | – | Search report |
| Yip, Kun-Wah et al. "Partial-Encryption Technique for Intellectual Property Protection of FPGA-Based Products", 2000 IEEE. | Non-patent | – | Search report |
| Zhu, Xiaohan et al. "Hardware Compilation for FPGA-based Configurable Computing Machines", 1999 ACM. | Non-patent | – | Search report |
| Copy of U.S. Appl. No. 10/106,103, filed Mar. 27, 2002, to Kaneko et al. | Non-patent | – | Applicant |
| Notice of Grounds for Rejection Issued in counterpart Japanese application 2003-068392 on Feb. 7, 2006. | Non-patent | – | Applicant |
3 members in 2 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| P2003068392 | Japan | – | |
| 2002080073 | Japan | A | |
| 2002080073 | Japan | A | |
| P2002080073 | Japan | – | |
| 2003068392 | Japan | A | |
| 2003068392 | Japan | A | |
| JP20020080073 | – | – | – |
| JP20030068392 | – | – | – |
| P2002080073 | – | – | – |
| P2003068392 | – | – | – |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2003229799A1 | United States of America | A1 | |
| JP2004007472A | Japan | A | |
| US7127616B2This record | United States of America | B2 |
55 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Supplemental ResponseSA.. | SA.. | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Response after Non-Final ActionA... | A... | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response to Election / Restriction FiledELC. | ELC. | |
| Mail Restriction RequirementMCTRS | MCTRS | |
| Restriction/Election RequirementCTRS | CTRS | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow incoming amendment IFWWAMD | WAMD | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Is Now CompleteCOMP | COMP | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Cleared by L&R (LARS)L128 | L128 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Lapse for failure to pay maintenance feesLapsedLAPS | LAPS | |
| Maintenance fee reminder mailedREMI | REMI | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| AssignmentAS | AS |
Numbers
- Publication
- 07127616
- Publication, DOCDB
- 7127616
- Publication, EPODOC
- US7127616
- Application
- 10391562
- Application, DOCDB
- 39156203
- Application, EPODOC
- US20030391562
Titles
- English
- Semiconductor integrated circuits, data transfer systems, and the method for data transfer
Patent term adjustment
- A delay
- +88 daysthe office missed an examination deadline
- Applicant delay
- −94 days
- Net adjustment
- 0 days
Classification
- CPC, 2
- G06F21/75
- G06F21/76
- IPC, 11
- G06F11 30
- G06F12 14
- G06F7 04
- G06F17 30
- H04L9 32
- H04L9 00
- G06F7 00
- G06F7 57
- G06F21 00
- G09C1 00
- H04L9 10
- USPC, 3
- 713191000
- 713193000
- 726026000