1. Field of the Invention
The present invention relates to a logic device which is re-programmable during its operation. For instance, the invention relates to a logic device, such as a Field Programmable Gate Array (FPGA), suitable for use in exchanges, whose system down should be avoided. The invention makes it possible to add new functions in such exchanges, and also makes it possible to correct any failures occurring in the exchanges without termination operation.
2. Description of the Related Art
FPGAs are Application Specific Integrated Circuits (ASICs) whose functions can be defined by users. The FPGAs are formed of more than one logic circuit (Configurable Logic Block; CLB) including multiple logic components (AND gates and OR gates, or the like), with a sufficient degree of integration. Those logic components and CLBs are combined, in accordance with programs, to perform a variety of functions.
In this memory 102, required pieces of circuit configuration and maintenance data, each corresponding to functions to be implemented, are stored, and based on such data, the CLBs 103 are configured and maintained in the FPGA 100 to perform the above functions. Here, apart from the above-mentioned circuit configuration and maintenance data, the memory 102 also has areas for storing data (connection net data) for wiring the CLBs 103. The CLBs 103 are also automatically connected, using unwired areas, according to the data written in the wiring data storage areas.
When circuit configuration and maintenance data is written in the memory 102 in a conventional device, the address counter 101 writes the data sequentially, starting from the first address of the memory 102, since there is no concept of addresses. If some memory addresses (unused areas) are empty (unused), data indicating that the corresponding CLBs are non-configured (unused) is written therein.
Further, the following patent document 1 shows another technique in another conventional FPGA. This technique provides the FPGA with memory circuits (RAM modules 10 in
[Patent Document 1]
Japanese Patent Application Laid Open No. HEI 11-243334
In the foregoing conventional FPGAs, however, it is impossible to write circuit configuration and maintenance data in arbitrary addresses specified in the memory 102 which is provided for deciding (configuring and maintaining) the CLBs 103. Therefore, if an additional function needs to be added or a problem in the device needs to be solved, the device is required to be turned off once, and then turned on again, so that all the circuit configuration and maintenance data is reset before rewriting is performed. In this instance, although it is also possible to repeat the configuration operation once again without turning the power off, the FPGA itself is reset (equal to turning off the power).
Accordingly, in order to add some functions in the FPGA or to correct any problems in the FPGA, system down of the corresponding functions has always been necessary, and it has been impossible to perform such processing while the system is in operation.
With the foregoing problems in view, it is an object of the present invention to provide a logic device in which data re-writing, such as addition of functions and correction of problems, is available as required, without terminating operation of the device.
In order to accomplish the above object, according to the present invention, there is provided a logic device re-programmable without terminating operation. In the logic device, a logic circuit is configured and maintained based on logic circuit configuration data for implementing a desired function. The logic device comprises a memory holding the logic circuit configuration data for configuring and maintaining the logic circuit; and an address controller for writing, in an unused area of the memory, logic circuit configuration data for configuring and maintaining one or more additional logic circuits without terminating operation of the logic device.
As a preferred feature, in case of dissatisfactory functioning of a logic circuit, the address controller writes, in the unused memory area of the memory, logic circuit configuration data for configuring and maintaining (i) a substitute logic circuit which realizes a same function of the dissatisfactory logic circuit and (ii) a switch logic circuit for switching between the dissatisfactory logic circuit and the substitute logic circuit, as the above additional logic circuits.
According to the present embodiment, as described above, the address controller specifies the unused area of the memory, which stores circuit data for configuring and maintaining logic circuits in the FPGA, and adds therein data for configuring and maintaining the additional logic circuits, thus making it possible to configure the additional logic circuits in an unused logic circuits without giving any effects on the existing CLBs in operation. Consequently, the present device is applicable in exchanges, whose system down is not allowed, so that some functions newly necessitated by service upgrade or the like can be added as required, without terminating operation of the exchange, and so that problems in logic circuits can be corrected without terminating operation of the exchanges.
Embodiments of the present invention are described hereinafter with reference to the relevant accompanying drawings.
[1] First Embodiment:
The memory 3 stores circuit decision data (logic circuit configuration data; hereinafter also called “circuit data”) for deciding (producing [or configuring] and maintaining) CLBs 4, which implement functions required in the above exchange. As shown in
In other words, the CLBs 4 have the same construction formed of multiple logic components, such as ANDS, ORs, and selectors, as a default condition. On the basis of the above circuit data, these logic components are activated/inactivated and combined (connected) as appropriate, thereby implementing the required functions corresponding to the above circuit data.
As for wiring (connecting) of logic circuits (CLBs) 4, wiring data (connection net data) is written in a predetermined area (gate configuration area (will be mentioned later)) of the memory 3, and according to the wiring data, connection nets 5 are configured and maintained in unwired areas. In this manner, wiring of the CLBs 4 is automatically performed.
In addition, as shown in
The address decoder (address controller) 2 receives data (address data) specifying an arbitrary memory address (hereinafter also simply called “address” or “address area”) of the memory 3, from an external apparatus (an unillustrated microprocessor or the like), and writes circuit data, which is supplied also from the external apparatus (a microprocessor or the like), in the address area, which is specified by the address data, of the memory 3.
In the present FPGA 1, the address decoder 2 makes it possible to write circuit data in the specific address area of the memory 3. Accordingly, it is possible to add CLB configuration data, which is for configuring and maintaining one or more additional CLBs, in arbitrary unused areas 31 of the memory 3, so that new functions implemented by such additional CLBs are added in unused CLBs 6 corresponding to the unused areas 31, without terminating operation of other existing CLBs.
Referring now to
First of all, as shown in
Under this condition, as shown in
Secondly, if one more additional CLB is added, the address decoder 2 specifies another unused area C of the memory 3, as shown in
As shown in
Here, when such circuit configuration and wiring are performed for the unused area B, procedures similar to the above are also performed.
According to the present embodiment, as described above, the address decoder 2 specifies the unused area 31 of the memory 3, which stores circuit data for configuring and maintaining a CLB in the FPGA 1, and adds therein circuit data for configuring and maintaining the additional CLB, thus making it possible to configure the additional CLB in a non-configured CLB 7 without having any effect on the existing CLB 4 in operation.
Consequently, the present device is applicable in an exchange whose system down should be avoided, so that some functions newly necessitated by service upgrade or the like can be added as required, without terminating operation of the exchange.
[2] One Modified Example:
In the FPGA 1 of the present embodiment, as described above, it is possible to add new functions using non-configured CLBs 7, and thus, if a problem occurs in part of the CLBs 6, it is also possible to solve the problem without causing a system down.
Referring to
In this manner, even if part of the CLBs 4 in the FPGA 1 experiences failure, it is possible to replace the failed circuits, 4WA and 4WB, with the correction circuits, 4PA and 4PB, which are newly configured in the non-configured circuits 6, without terminating operation of the other CLBs having no failure, which are in operation.
In this case, however, when the correction circuits, 4PA and 4PB, are activated, the switching needs to be performed in such a condition that operation timing of the failed circuits, 4WA and 4WB, matches that of the correction circuits, 4PA and 4PB. Because of their failure, however, operation timing of the failed circuits, 4WA and 4WB, cannot match that of the correction circuits, 4PA and 4PB.
In consideration of this, the correction circuits, 4PA and 4PB, are activated in a manner shown in
As shown in
Under this condition, an inactivated latch (FF: Flip-Flop) 43 is interposed in the other one of the input paths of the control gate 42, as shown in FIG. 9. The address decoder 2 specifies address “2B” to overwrite the existing data therein with data for adding the inactivated latch 43, thus inserting the latch 43.
After that, according to the address decoder 2, address “1A” (unused area) of the memory 3 is specified to write therein data for producing switch point information, and a CLB (switch point information producing circuit) 4C′ for producing switch point information is thus configured and maintained in a non-configured CLB 6 that corresponds to the address “1A,” as shown in FIG. 10.
Next, according to the address decoder 2, address “2A” (unused area) of the memory 3 is specified to write therein circuit data for producing and maintaining a switching circuit 4C, and the switching circuit 4C, which is for replacing the failed circuit 4WB with the correction circuit 4PB, is thus configured and maintained in a non-configured CLB 6 that corresponds to the address “2A” of the memory 3.
After that, according to the address decoder 2, a gate configuration data area 32 (see
Here, as shown in
Next, according to the address decoder 2, address “2C” (unused area) of the memory 3 is specified to write therein circuit data for configuring and maintaining a correction circuit 4PB that implements the same function as that of the failed circuit 4WB, the correction circuit 4PB is thus configured and maintained in a non-configured CLB 6 corresponding to the address “2C” of the memory 3.
After that, according to the address decoder 2, the gate configuration data area 32 of the memory 3 is specified to write therein data for connecting (wiring) address “1B” and address “2C,” or the previous circuit 4, which is provided before the failed circuit 4WB, and a correction circuit 4PB, and the previous circuit 4 and the correction circuit 4PB are thus wired using a non-wired area.
Further, according to the address decoder 2, the gate configuration data area 32 of the memory 3 is specified to write therein data for connecting (wiring) address “2C” and address “2B,” or the correction circuit 4PB and the failed circuit 4WB, and the correction circuit 4PB and the failed circuit 4WB are thus wired. More specifically, wiring is performed so that an input to the failed circuit 4WB also enters the correction circuit 4PB, and an output of the correction circuit 4PB enters the other input “2” of the selector 41 of the failed circuit 4WB.
Subsequently, according to the address decoder 2, the gate configuration data area 32 of the memory 3 is specified to write therein data for connecting (wiring) address “2A” and address “2B,” or the switching circuit 4C and the failed circuit 4WB, and the switching circuit 4C and the failed circuit 4WB are thus wired using an unwired area, as shown in FIG. 11.
At that time, the output of the switching circuit 4C is connected to the input of the latch 43 of the failed circuit 4WB to sweep a point where operation timing of the failed circuit 4WB matches that of the correction circuit 4PB. Then, according to the address decoder 2, address “2B” is specified and the control gate 42 of the failed circuit 4WB is opened (one of the inputs, which is grounded, turns into H-level), and the existing data is overwritten with data for activating the control gate 42. In this manner, the control gate 42 is opened and the latch 43 is activated.
With this construction, when operation timing of the failed circuit 4WB and that of the correction circuit 4PB match, the output of the control gate 42 becomes H-level, as shown in
The following table 1 shows the above-described procedures. It is to be noted that the order of configuring each BLB, described as “write order=1, 2, 3, 5,” can be modified as necessary.
In this modified example, it is possible to solve problems in the FPGA 1, preventing unnecessary or unexpected signals from being sent out, without terminating operation of working CLBs. With use of this device in an exchange whose system down is never allowed, it is possible to solve such problems without terminating operation of the exchange.
It is to be noted that the present invention should by no means be limited to the above-illustrated embodiment, and various changes or modifications may be suggested without departing from the gist of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2003-058525 | Mar 2003 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5550782 | Cliff et al. | Aug 1996 | A |
5559450 | Ngai et al. | Sep 1996 | A |
Number | Date | Country |
---|---|---|
11-243334 | Sep 1998 | JP |
Number | Date | Country | |
---|---|---|---|
20040174186 A1 | Sep 2004 | US |