Abstract:
A semiconductor integrated circuit includes one or more function blocks, a nonvolatile memory unit which stores therein coded license information, and a decoder circuit which decodes the license information stored in the nonvolatile memory unit, and makes one of the function blocks either usable or unusable depending on the decoded license information.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention generally relates to semiconductor integrated circuits, and particularly relates to a semiconductor integrated circuit that manages and controls license information.  
           [0003]    2. Description of the Related Art  
           [0004]    As the circuit density of semiconductor integrated circuits increases, a semiconductor integrated circuit becomes like a single system including a variety of functions, resulting in a need to properly manage and control the legal right to use each of these functions. For example, it becomes necessary to provide a function to permit or deny the use of a particular function block based on license information. When function blocks subject to intellectual property protection are implemented, there may be a need to calculate royalties according to a period of use or the time of use or to make settings to a valid period of use with respect to these function blocks. Further, when a particular function block is used based on a license, additional license may become necessary to expand the function of the block.  
           [0005]    In semiconductor integrated circuits, a function to permit or deny the use of particular function blocks based on license information may be implemented by entering license codes at each start-up operation from an exterior of circuitry and storing them in volatile memory. Operations of the function blocks are then controlled based on the license codes. This method requires the proper management of license codes outside the semiconductor integrated circuits. Further, the number of use needs to be kept record of if there is a need to limit the number of use or the like based on license information, and such a record must be kept outside the device as a precaution against a power failure.  
           [0006]    Accordingly, there is a need for a semiconductor integrated circuit that can manage and control license information on its own inside its own circuit.  
         SUMMARY OF THE INVENTION  
         [0007]    It is a general object of the present invention to provide a semiconductor integrated circuit that substantially obviates one or more of the problems caused by the limitations and disadvantages of the related art.  
           [0008]    Features and advantages of the present invention will be set forth in the description which follows, and in part will become apparent from the description and the accompanying drawings, or may be learned by practice of the invention according to the teachings provided in the description. Objects as well as other features and advantages of the present invention will be realized and attained by a semiconductor integrated circuit particularly pointed out in the specification in such full, clear, concise, and exact terms as to enable a person having ordinary skill in the art to practice the invention.  
           [0009]    To achieve these and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, a semiconductor integrated circuit of the invention includes one or more function blocks, a nonvolatile memory unit which stores therein coded license information, and a decoder circuit which decodes the license information stored in the nonvolatile memory unit, and makes one of the function blocks either usable or unusable depending on the decoded license information.  
           [0010]    In the semiconductor integrated circuit as described above, the nonvolatile memory unit comprised of a nonvolatile memory such as an EEPROM stores therein the coded license code, and the decoder circuit decodes the license code, thereby making it possible to make each function block either usable or unusable depending on the license code. This eliminates the need to enter license codes each time the circuit is powered on.  
           [0011]    According to another aspect of the present invention, the semiconductor integrated circuit as described above further includes a status unit that has at least part of the decoded license information stored therein in such a manner as to be accessible from an exterior of the semiconductor integrated circuit.  
           [0012]    Since the decoded license code information decoded by the decoder circuit is stored in such a manner as to be accessible from the exterior as status information, the status information about the license can be supplied to the exterior of the semiconductor integrated circuit in response to a user request.  
           [0013]    According to another aspect of the present invention, the semiconductor integrated circuit as described above further includes a calendar circuit which indicates a current date and time, wherein the decoder circuit makes the one of the function blocks usable in response to a finding that the current date and time indicated by the calendar circuit is within a valid period indicated by the decoded license information, and makes the one of the function blocks unusable in response to a finding that the current date and time indicated by the calendar circuit is after a valid period indicated by the decoded license information.  
           [0014]    In the semiconductor integrated circuit as described above, the calendar circuit indicating the current date and time is provided, so that a valid period can be managed and controlled based on the license information.  
           [0015]    According to another aspect of the present invention, the semiconductor integrated circuit as described above further includes a counter circuit that counts a number indicative of how many times the one of the function blocks is used, wherein the decoder circuit makes the one of the function blocks usable in response to a finding that the number counted by the counter circuit is within a number of valid use indicated by the decoded license information, and makes the one of the function blocks unusable in response to a finding that the number counted by the counter circuit exceeds the number of valid use indicated by the decoded license information.  
           [0016]    In the semiconductor integrated circuit as described above, the counter circuit counting the number of use of a function block is provided, so that the number of valid use can be managed and controlled based on the license information.  
           [0017]    Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]    [0018]FIG. 1 is a block diagram of an embodiment of a semiconductor integrated circuit according to the present invention;  
         [0019]    [0019]FIG. 2 is a block diagram of a portion of the semiconductor integrated circuit that relates to the management and control of a valid period; and  
         [0020]    [0020]FIG. 3 is a block diagram showing a portion relevant to the management of the number of valid use in the semiconductor integrated circuit. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0021]    In the following, embodiments of the present invention will be described with reference to the accompanying drawings.  
         [0022]    [0022]FIG. 1 is a block diagram of an embodiment of a semiconductor integrated circuit according to the present invention.  
         [0023]    The semiconductor integrated circuit  10  of FIG. 1 includes a nonvolatile memory unit  11 , a decoder circuit  12 , a status register circuit  13 , a calendar circuit  14 , a counter  15 , a function block  16 , and a function block  17 .  
         [0024]    The nonvolatile memory unit  11  is comprised of a nonvolatile memory, and stores license information about each function block. The decoder circuit  12  decodes the license information stored in the nonvolatile memory unit  11 , and controls an operation of each of the function blocks  16  and  17  based on the decoded results as to whether its operation is valid or invalid. The calendar circuit  14  provides data of a date and time that is used to check whether the valid license period is expired. The counter  15  counts the number of use with respect to each function block, and provides data regarding the number of use. The status register circuit  13  receives the decoded results by the decoder circuit  12 , and stores therein status information of the semiconductor integrated circuit  10  about licenses.  
         [0025]    Operations of the semiconductor integrated circuit  10  will be described in detail in the following.  
         [0026]    The nonvolatile memory unit  11  is comprised of EEPROM or the like, and stores license codes provided from an exterior of the semiconductor integrated circuit  10 . These license codes each include information indicative of operation/suspension of a function block, a valid period of a function block, information about the number of use of a function block, etc. The license codes are stored in memory after encoding (encryption) for the purpose of preventing illegal copying or tampering.  
         [0027]    The decoder circuit  12  decodes license codes received from the nonvolatile memory unit  11 . Based on the decoded results, together with information from the calendar circuit  14  and the counter  15 , the decoder circuit  12  determines whether the function blocks  16  and  17  are valid or invalid. According to the determination of validity or invalidity of the function blocks  16  and  17 , the decoder circuit  12  outputs control signals b and a to the function blocks  16  and  17 , respectively. The control signals b and a may be chip enable signals or the like to the function blocks  16  and  17 , respectively. These signals, however, are not limited to particular signals, and can be any signals as long as they can control the operation of function blocks.  
         [0028]    The decoder circuit  12  stores the count numbers of use of each function block in the nonvolatile memory unit  11  as these numbers are counted by the counter  15 . This is done in order to prevent the information about the number of use of each function block counted by the counter  15  from being lost at the time of power failure.  
         [0029]    The information about the license codes decoded by the decoder circuit  12  is stored in the status register circuit  13  as information indicative of the status of the semiconductor integrated circuit  10 . The license codes stored in the nonvolatile memory unit  11  are given in an encoded (encrypted) format so as to prevent illegal copying, so that reading the contents of the nonvolatile memory unit  11  does not give a clue to the details of the licenses. The status register circuit  13  stores therein the information about the license codes decoded by the decoder circuit  12  as license status information indicative of the status of the semiconductor integrated circuit  10 , and outputs the license status information to the exterior of the semiconductor integrated circuit  10  in response to a user request.  
         [0030]    As described above, the semiconductor integrated circuit  10  according to the present invention stores encrypted license codes in the nonvolatile memory unit  11  comprised of a nonvolatile memory such as an EEPROM, and uses the decoder circuit  12  to decode the license codes, thereby controlling the operation/suspension of each function block according to the license codes. Further, the information about the license codes decoded by the decoder circuit  12  is stored in the status register circuit  13  as the license status information, so that the status information about the licenses can be supplied to the exterior of the semiconductor integrated circuit  10  in response to a user request.  
         [0031]    A means of encryption used in the present invention may be any one of encryption schemes conventionally used in various arts, and is not limited to a particular scheme.  
         [0032]    [0032]FIG. 2 is a block diagram of a portion of the semiconductor integrated circuit  10  that relates to the management and control of a valid period.  
         [0033]    In FIG. 2, the decoder circuit  12  includes a license code decoder  21 , a license code register  22 , a comparison circuit  23 , an AND circuit  24 , and an inverter  25 .  
         [0034]    A license code indicating that the function block  16  is valid through Oct. 1, 2001, for example, is entered from the exterior of the semiconductor integrated circuit  10 , and is stored in the nonvolatile memory unit  11  comprised of EEPROM. This license code is provided in an encrypted format. Even if a user accesses the nonvolatile memory unit  11 , the user cannot learn the details of the license. Without the knowledge of the employed encryption scheme, the user cannot write an illegal license code.  
         [0035]    The license code decoder  21  receives the license code from the nonvolatile memory unit  11 , and decodes it according to predetermined rules. The decoded license code is supplied to and stored in the license code register  22 .  
         [0036]    The decoded license code stored in the license code register  22  is “0010A01”, for example, as shown in FIG. 2. The most significant bit “0” indicates the first function block among a plurality of function blocks, which is the function block  16  in this example. The next two bytes “01” indicate “year 2001”, and the following “0A” represents “October”. The last two bytes “01” refers to the first day of a given month. In this manner, this license code indicates that the function block  16  is valid through Oct. 1, 2001. In this case, the use of the function block  16  is permitted until Oct. 1, 2001, but will not be allowed thereafter unless the license is extended or a new license is purchased.  
         [0037]    As shown in FIG. 2, the calendar circuit  14  shows a current date “Dec. 28, 2000” as “0000C1C”. The first two bytes “00” indicates the year 2000, and the following “0C” represents “October”. The last two bytes “1C” points to the twenty-eighth day of a given month.  
         [0038]    The comparison circuit  23  of the decoder circuit  12  receives “010A01” indicative of the valid period from the license code register  22 , and receives “000C1C” indicative of a current date from the calendar circuit  14 . The comparison circuit  23  compares the expiration date with the current date by subtracting “000C1C” from “010A01”, for example. If the subtraction results in a positive number, the license is valid, so that the comparison circuit  23  outputs a value “1” indicative of a valid status. If the subtraction produces a negative number, it is ascertained that the license has been expired, so that the comparison circuit  23  outputs a value “0” indicative of an invalid status.  
         [0039]    The output of the comparison circuit  23  is supplied to one input of the AND circuit  24 . The other input of the AND circuit  24  receives an output of the inverter  25 . The inverter  25  receives the most significant bit “0” of the decoded license code “0010A01”, and outputs “1” when the license code is directed to the first function block that is the function block  16  in this example.  
         [0040]    If the license code is directed to the second function block that is the function block  17  in this example, the most significant bit of the license code is “1”, which results in the output of the inverter  25  being “0”. Although not shown in FIG. 2, a control circuit for the function block  17  may be configured such that an additional AND circuit is provided in parallel to the AND circuit  24 , and the output of the comparison circuit  23  is supplied to one input of the additional AND circuit with the most significant bit of the license code being supplied directly to the other input thereof without an intervening inverter.  
         [0041]    The AND circuit  24  outputs “1” as the control signal b for the function block  16  when the comparison circuit  23  outputs “1” indicative of the valid state, and the license code points to the function block  16 .  
         [0042]    The semiconductor integrated circuit  10  further includes an AND circuit  30 . The AND circuit  30  receives a chip select signal CS and the control signal b that is supplied from the decoder circuit  12  (i.e., from the AND circuit  24 ). The chip select signal CS serves to select the function block  16  during routine and normal operations regardless of the license information. When both the chip select signal CS and the control signal b are “1”, the AND circuit  30  supplies “1” to the function block  16  as an activated chip select signal CS. In this manner, the decoder circuit  12  generates a control signal that activates the function block  16  as a valid block if the license code provides a valid period for the function block  16  and if the date of expiration of this period is later than the current date indicated by the calendar circuit  14 .  
         [0043]    Data “0010A01” of the valid period stored in the license code register  22  is stored in the status register circuit  13  by the decoder circuit  12 . By reading the data contents of the status register circuit  13  from an exterior of the semiconductor integrated circuit  10 , the user can learn the details of license information that is currently used.  
         [0044]    [0044]FIG. 3 is a block diagram showing a portion relevant to the management of the number of valid use in the semiconductor integrated circuit  10 .  
         [0045]    In FIG. 3, the decoder circuit  12  includes the license code decoder  21 , the license code register  22 , a license encoder  26 , an AND circuit  27 , and an inverter  28 .  
         [0046]    A license code indicating that the number of valid use of the function block  17  is n, for example, is entered from the exterior of the semiconductor integrated circuit  10 , and is stored in the nonvolatile memory unit  11  comprised of EEPROM. For example, such license information may be written into the semiconductor integrated circuit  10  by use of an LSI tester or the like at the time of shipping out from the factory. If this is the way it is done, there is no need to provide the package of the semiconductor integrated circuit with external pins for the purpose of writing license codes.  
         [0047]    The license code is provided in an encrypted format. Even if a user accesses the nonvolatile memory unit  11 , the user cannot learn the details of the license. Without the knowledge of the employed encryption scheme, the user cannot write an illegal license code.  
         [0048]    The license code decoder  21  receives the license code from the nonvolatile memory unit  11 , and decodes (decrypts) it according to predetermined rules. The decoded license code is supplied to and stored in the license code register  22 .  
         [0049]    The decoded license code stored in the license code register  22  may be “1n”, for example, as shown in FIG. 3. The most significant bit “1” indicates the second function block among a plurality of function blocks, which is the function block  17  in this case. The next bits “n” represent the number of times that the function block  17  can be used. Namely, this license code indicates that the function block  17  can be used only n times or less. In this case, the use of the function block  17  is permitted until it is used n times, but will not be allowed thereafter unless the license is extended or a new license is purchased.  
         [0050]    The number of use of the function block  17  may be kept record of by counting how many times the chip enable signal CS is asserted to the function block  17 . The counter  15  includes a subtraction circuit  41  and a CS signal rising edge detection circuit  42  in order to count the number of occurrences of assertion of the chip enable signal CS.  
         [0051]    The CS signal rising edge detection circuit  42  detects a rising edge of the chip enable signal CS when the chip enable signal CS supplied to the function block  17  is activated, and supplies a rising edge detection signal to the subtraction circuit  41 . Each time the rising edge detection signal is supplied from the CS signal rising edge detection circuit  42 , the subtraction circuit  41  subtracts “1” from the number of valid use stored in the license code register  22 , thereby updating the number of valid use with the subtracted number.  
         [0052]    The license encoder  26  encodes (encrypts) the license code stored in the license code register  22  when the number of valid use stored in the license code register  22  is updated, and writes the decoded value in the nonvolatile memory unit  11 . This insures that the nonvolatile memory unit  11  maintains the license code indicative of the correct number of use even if the semiconductor integrated circuit  10  suffers a power failure.  
         [0053]    If the number of valid use stored in the license code register  22  is more than 0, the license code register  22  supplies a HIGH signal to the inverter  28 . In response, the inverter  28  outputs “0”, so that the output of the AND circuit  27  is “0” at all times. In this case, an output of an OR circuit  31  supplied to a clock input terminal of the function block  17  is a clock signal CLK supplied from an exterior of the semiconductor integrated circuit  10 . The function block  17  thus operates properly.  
         [0054]    As the number of valid use stored in the license code register  22  becomes zero, the license code register  22  supplies a LOW signal to the inverter  28 . In response, the inverter  28  outputs “1” (HIGH), which is supplied to one input of the AND circuit  27 . The other input of the AND circuit  27  receives the most significant bit “1” of the decoded license code “1n”, which indicates that this license code is directed to the second function block  17 .  
         [0055]    The AND circuit  27  outputs “1” as the control signal a for the function block  17  if the number of valid use in the license code register  22  is zero and if the license code points to the function block  17 .  
         [0056]    Since the OR circuit  31  receives the control signal a of “1” at one input thereof, the output of the OR circuit  31  is fixed to “1” (HIGH) regardless of a HIGH/LOW state of the clock signal CLK supplied to the other input thereof.  
         [0057]    Accordingly, the function block  17  operating based on the clock signal CLK does not operate any longer when the number of use exceeds the number permitted by the license.  
         [0058]    If the license code is directed to the first function block that is the function block  16  in this example, the most significant bit of the license code is “0”, which results in the output of the AND circuit  27  being fixed to “0”. Although not shown in FIG. 3, a control circuit for the function block  16  may be configured such that an additional AND circuit is provided in parallel to the AND circuit  27 , and the output of the inverter  28  is supplied to one input of the additional AND circuit with an inverse of the most significant bit of the license code being supplied to the other input thereof.  
         [0059]    Information “1n” about the number of valid use stored in the license code register  22  is stored in the status register circuit  13  by the decoder circuit  12 . By reading the data contents of the status register circuit  13  from an exterior of the semiconductor integrated circuit  10 , the user can learn the details of license information that is currently used.  
         [0060]    If the license code indicative of the number of valid use is entered again and written in the nonvolatile memory unit  11 , unlimited illegal use becomes possible. To prevent this, once a code is stored in the nonvolatile memory unit  11 , the original code may be kept inside separately from the code that continues to be updated. Provision can then be made such that the license code decoder  21  insures that the same code cannot be used more than twice.  
         [0061]    In the embodiment described above, the clock signal CLK is regarded as a signal that is essential for the operation of the function block  17 , and the supply of the clock signal CLK is controlled based on the license information to switch the permission/denial of use of the function block  17 . This is only an example. In the same manner as in FIG. 2, for example, the chip enable signal CS may be controlled to switch the permission/denial of use of the function block  17 . Further, the configuration described above counts the rising edges of the chip enable signal CS for the purpose of counting the number of use of the function block  17 . Alternatively, a power-on signal, a reset signal, or the like may be counted to achieve the same results. The present invention is not limited to any particular configuration in terms of how to count the number of use of function blocks.  
         [0062]    Further, the present invention is not limited to these embodiments, but various variations and modifications may be made without departing from the scope of the present invention.  
         [0063]    The present application is based on Japanese priority application No. 2001-103835 filed on Apr. 2, 2001, with the Japanese Patent Office, the entire contents of which are hereby incorporated by reference.