(57)【要約】　【課題】　外部機能ブロックがシステムで不要になった場合、別のシステムＬＳＩを開発、生産するか、外部機能ブロックを内蔵したシステムＬＳＩを生産し、これに対してロイヤリティを課する必要があり、半導体集積回路の汎用性の確保とロイヤリティ支払いの最適化をともに充分満たすことがむずかしい。　【解決手段】　システムＬＳＩ７に内蔵した複数の外部機能ブロック５，６の入力、出力を有効または無効にする有効無効化手段（ＡＮＤゲート５４，５３，６４，６３）をもち、不揮発性メモリ８を切替手段として、その論理内容８１，８２に応じて有効無効化手段を制御し、外部機能ブロック５，６を有効または無効にする。【選択図】　図１
2004140376.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の外部機能ブロックと、
　前記外部機能ブロックを無効にするか有効にするかの論理内容を有する切替手段と、
　前記切替手段の論理内容に従って前記外部機能ブロックを無効または有効にする有効無効化手段とを含む半導体集積回路。
【請求項２】
前記切替手段は、前記外部機能ブロックを無効にするか有効にするかの論理内容が記憶されているメモリを含む請求項１に記載の半導体集積回路。
【請求項３】
前記メモリが不揮発性メモリである請求項２に記載の半導体集積回路。
【請求項４】
前記切替手段は、前記外部機能ブロックを無効にするか有効にするかの論理内容に対応する状態に設定されるヒューズである請求項１に記載の半導体集積回路。
【請求項５】
前記切替手段は、マスクによって前記外部機能ブロックを無効にするか有効にするかの論理内容を設定可能なマスクオプションで構成されている請求項１に記載の半導体集積回路。
【請求項６】
前記切替手段は、
　当該半導体集積回路を特定する識別情報を記憶する識別情報記憶手段と、
　専用端末から前記外部機能ブロックを有効にする有効化プログラムを受信する通信手段と、
　前記通信手段が受信した前記有効化プログラムを格納するメモリと、
　前記識別情報記憶手段に記憶されている識別情報が前記メモリの有効化プログラムに含まれる識別情報の少なくとも一部に一致するときに、前記有効化プログラムに基づいて前記外部機能ブロックを有効化する前記論理内容を生成し、不一致のときには前記外部機能ブロックを無効化する論理内容を生成する制御手段とを含む請求項１に記載の半導体集積回路。
【請求項７】
前記有効無効化手段は、前記切替手段からの論理内容が前記外部機能ブロックを無効にするものであるとき、前記外部機能ブロックに対する入出力を無効化する論理回路を含む請求項１から請求項６までのいずれかに記載の半導体集積回路。
【請求項８】
前記論理回路は、前記論理内容と入力信号との論理積をとって前記外部機能ブロックに入力するＡＮＤゲートを含む請求項７に記載の半導体集積回路。
【請求項９】
前記論理回路は、前記論理内容と前記外部機能ブロックの出力との論理積をとって出力信号とするＡＮＤゲートを含む請求項７記載の半導体集積回路。
【請求項１０】
前記有効無効化手段は、前記外部機能ブロックの入力と出力との間にリセット端子付きのラッチ手段を介在させたものであり、前記ラッチ手段のリセット端子に対して恒常的にリセット信号を印加して、前記外部機能ブロックへの入力が変化しても前記外部機能ブロックの出力を不変化することにより前記外部機能ブロックを無効化するように構成されている請求項１から請求項９でのいずれかに記載の半導体集積回路。
【請求項１１】
前記外部機能ブロックは、前記有効化プログラムが前記外部機能ブロックを有効にするときにＯＮとなり、前記外部機能ブロックを無効にするときにＯＦＦとなる電源用のスイッチを備えている請求項６から請求項１０でのいずれかに記載の半導体集積回路。
【請求項１２】
前記外部機能ブロックは、ロイヤリティを必要とするものである請求項１から請求項１１までのいずれかに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、１または複数の外部機能ブロックを内蔵した半導体集積回路（システムＬＳＩ）にかかわり、より詳しくは、前記各外部機能ブロックを有効化または無効化する技術に関する。
【背景技術】
【０００２】
　近年、半導体集積回路（システムＬＳＩ）の分野においては、回路の微細化や大規模化が進み、機能ブロックを用いた設計が主流になってきている。また、機能ブロックについては、メーカ側で自由に使用できる内部機能ブロックだけでなく、ロイヤリティを必要とする外部機能ブロックを導入して半導体集積回路を開発する場合が増えてきている。
【０００３】
　図８を参照して、従来の機能ブロックを用いた半導体集積回路を説明する。符号の７は半導体集積回路を示す。この半導体集積回路７は、中央演算処理装置（ＣＰＵ）１、プログラムを格納するメモリ２、周辺回路３、メーカ内部で保有する自由使用可能な内部機能ブロック４、および外部より導入したロイヤリティを必要とする外部機能ブロック５，６を備える。
【０００４】
　半導体集積回路７の仕様はあらかじめ決められている。半導体集積回路７は、その仕様に応じて必要な外部機能ブロック５，６を内蔵している。必要とする外部機能ブロックはユーザごとに異なる。したがって、そのような個別の外部機能ブロックを内蔵する半導体集積回路７が、それぞれ開発され、生産されることになる。
【０００５】
　すなわち、一方で、外部機能ブロック５のみを内蔵する半導体集積回路が単独に開発・生産される。他方で、上記とは別の外部機能ブロック６のみを内蔵する半導体集積回路が上記とは独立して開発・生産される。場合によっては、２つの外部機能ブロック５，６をともに内蔵する半導体集積回路もある。つまりは、数多くの種類の半導体集積回路が並行的に開発・生産される。
【特許文献１】米国特許第６,２２２,３８２号
【特許文献２】米国特許第５,０１５,８８４号
【特許文献３】米国特許第４,４４５,１７７号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
　このような従来の半導体集積回路では、そのような外部機能ブロックの種類が異なる複数仕様の半導体集積回路がそれぞれ別個に開発され、生産されなければならない。
【０００７】
　例えば、２つの外部機能ブロック５，６を備えた仕様が標準とされている状況で、いずれか一方の外部機能ブロックが不要の場合には、別の半導体集積回路を開発・生産するか、あるいは、その不要な外部機能ブロックを内蔵したままの半導体集積回路を生産し、これに対してロイヤリティを課する必要がある。
【０００８】
　このように、従来にあっては、半導体集積回路の汎用性の確保とロイヤリティの支払いの最適化とをともに充分に満たすことが難しい状況となっている。
【０００９】
　本発明は上記した課題の解決を図るべく創作したものであって、汎用性の向上とロイヤリティの支払いの最適化とをともに満足することができる半導体集積回路を提供することを目的としている。
【課題を解決するための手段】
【００１０】
　本発明は、次のような手段を講じることにより、上記の課題を解決する。すなわち、１または複数の外部機能ブロックと、前記外部機能ブロックを無効にするか有効にするかの論理内容を有する切替手段と、前記切替手段の論理内容に従って前記外部機能ブロックを無効または有効にする有効無効化手段とを備えている。
【００１１】
　当該の半導体集積回路には、メーカ側で必要性があると想定される１または複数の外部機能ブロックがあらかじめ内蔵されている。有効無効化手段は、切替手段からの論理内容に応じて、外部機能ブロックを無効または有効にする。したがって、半導体集積回路に１または複数の外部機能ブロックが内蔵されている場合において、ユーザは、必要とする外部機能ブロックに限って有効とし、必要としない外部機能ブロックについては無効とするというように対処できる。
【００１２】
　そして、ロイヤリティについては、運用により、有効とした外部機能ブロックの分のロイヤリティを該当のユーザに課し、無効とした外部機能ブロックの分のロイヤリティは課さないようにすればよい。外部機能ブロックの使用に対してロイヤリティが課される場合、ユーザは、有効とした外部機能ブロックに対するロイヤリティは課されるが、無効とした外部機能ブロックに対するロイヤリティは課されずに済む。
【００１３】
　上記の結果、本発明では、ユーザごとの様々なニーズに対して、汎用性の向上とロイヤリティの支払いの最適化とをともに満足する半導体集積回路を提供することができる。
【００１４】
　なお、本発明にあっては、ロイヤリティの有無は必ずしも必須ではない。ロイヤリティの支払いの義務があるときには、それに的確に対応できる。
【００１５】
　上記において好ましい態様は、前記の切替手段が、外部機能ブロックを無効にするか有効にするかの論理内容が記憶されているメモリで構成されていることである。そして、前記のメモリとしては不揮発性メモリが好ましい。論理内容をメモリに記憶しておくことにより、個々の外部機能ブロックに対する有効／無効の設定を持続化することができる。
【００１６】
　上記において、別の好ましい態様は、前記の切替手段が、外部機能ブロックを無効にするか有効にするかの論理内容に応じた状態のヒューズで構成されていることである。構成を簡単化することができる。
【００１７】
　また、別の好ましい態様は、前記の切替手段が、マスクによって外部機能ブロックを無効にするか有効にするかの論理内容を設定することが可能なマスクオプションで構成されていることである。論理内容の不当書き替えによる不正使用を予防し、セキュリティ性を確保できる。
【００１８】
　さらに、別の好ましい態様は、前記の切替手段が、暗号解除プログラムを記憶するメモリと、前記暗号解除プログラムを実行する演算処理装置と、前記演算処理装置による前記暗号解除プログラムの実行に伴って暗号解読を行う暗号解読手段と、前記暗号解読手段による暗号解読結果を前記論理内容として保持するとともに前記有効無効化手段に出力するレジスタとを含む状態で構成されていることである。暗号化の方式を採用することにより、セキュリティ性を確保し、もってロイヤリティ課金の信頼性をもたらすことが可能となる。
【００１９】
　上記において好ましい態様は、前記の暗号解除プログラムを記憶するメモリをマスクＲＯＭとすることである。暗号解除プログラムの不当書き替えによる不正使用を予防し、セキュリティ性を確保できる。なお、不揮発性メモリとしてもよい。
【００２０】
　また、別の好ましい態様は、前記の暗号解読手段が、前記演算処理装置から送られてくる値を格納するレジスタの値と基準の値とを比較する比較器と、前記比較器による比較結果が一致するときに前記論理内容を出力する前記レジスタに対してセット信号を出力するＡＮＤゲートを含む構成とされていることである。この場合、前記の演算処理装置は、前記暗号解除プログラムの実行により前記レジスタに対して送出する暗号解除のための値を生成するものとする。ハードウェア構成にて暗号解読を行わせることができる。また、比較器の個数を多くするほど、セキュリティ性が高くなる。なお、前記のレジスタをシフトレジスタとするのが好ましい。
【００２１】
　さらに、上記において好ましい態様は、前記の暗号解除プログラムが、前記外部機能ブロックを有効とする暗号解除のためのプログラムに加えて、その暗号解除には無関係な冗長なプログラムを含んだ構造に構成されていることである。暗号解除プログラムにおける規則性を崩し、第三者による暗号解除プログラムの不正解読を困難にする。
【００２２】
　また、別の好ましい態様は、前記の暗号解除プログラムが、前記外部機能ブロックを有効とする暗号解除のためのプログラムにおいて、そのプログラムの一部が論理的に複数のステップに分解された構造に構成されていることである。この場合も、暗号解除プログラムにおける規則性を崩し、第三者による暗号解除プログラムの不正解読を困難にする。
【００２３】
　さらに、前記の切替手段についての別の好ましい態様は、当該半導体集積回路を特定する識別情報を記憶する識別情報記憶手段と、専用端末から前記外部機能ブロックを有効にする有効化プログラムを受信する通信手段と、前記通信手段が受信した前記有効化プログラムを格納するメモリと、前記識別情報記憶手段に記憶されている識別情報が前記メモリの有効化プログラムに含まれる識別情報の少なくとも一部に一致するときに、前記有効化プログラムに基づいて前記外部機能ブロックを有効化する前記論理内容を生成し、不一致のときには前記外部機能ブロックを無効化する論理内容を生成する制御手段とを含んで構成されていることである。有効化プログラムをユーザに提供するに際して通信回線を介して行うので、メーカにとってユーザのロイヤリティ管理が容易となる。また、有効にすべき外部機能ブロックの切り替えを容易に行うことができる。
【００２４】
　上記において好ましい態様は、前記有効無効化手段が、前記切替手段からの論理内容が前記外部機能ブロックを無効にするものであるとき、前記外部機能ブロックに対する入出力を無効化する論理回路を含むように構成されていることである。この場合、好ましくは、前記の論理回路が、前記論理内容と入力信号との論理積をとって前記外部機能ブロックに入力するＡＮＤゲートを含むことである。あるいは、前記の論理回路が、前記論理内容と前記外部機能ブロックの出力との論理積をとって出力信号とするＡＮＤゲートを含むことである。論理内容を“１”としてＡＮＤゲートを導通状態とすることで外部機能ブロックを有効化し、論理内容を“０”としてＡＮＤゲートを非導通状態とすることで外部機能ブロックを無効化する。構成が簡単である。
【００２５】
　別の好ましい態様は、前記有効無効化手段が、前記外部機能ブロックの入力と出力との間にリセット端子付きのラッチ手段を介在させたものであり、前記ラッチ手段のリセット端子に対して恒常的にリセット信号を印加して、前記外部機能ブロックへの入力が変化しても前記外部機能ブロックの出力を不変化することにより前記外部機能ブロックを無効化するように構成されていることである。なお、ラッチ手段については、通常のラッチのほかフリップフロップでもよい。
【００２６】
　さらに、上記において好ましい態様は、前記有効化プログラムが前記外部機能ブロックを有効にするときにＯＮとなり、前記外部機能ブロックを無効にするときにＯＦＦとなる電源用のスイッチを前記外部機能ブロックが備えていることである。無効化時に貫通電流を防止するとともに、無駄な電力消費を抑制することができる。
【００２７】
　上記において、前記外部機能ブロックは、ロイヤリティを必要とするものとするのが一般的な態様となる。ロイヤリティ管理を有利に展開することができる。
【発明の効果】
【００２８】
　以上説明したように、本発明によれば、必要があると想定される１または複数の外部機能ブロックを内蔵する状態で半導体集積回路を製造し、ユーザが必要とする外部機能ブロックについては、切替手段と有効無効化手段により必要に応じて外部機能ブロックを有効にしたり無効にする。このことにより、ユーザごとの様々なニーズに対して、幅広い汎用性をもたせることができる。有効とした外部機能ブロックの分のロイヤリティを該当のユーザに課すればよい。結果として、半導体集積回路の汎用性の向上とロイヤリティの支払いの最適化とをともに満足することができる。
【００２９】
　また、外部機能ブロックを有効化するための情報を暗号化処理することにより、使用許可を取得していない者の不正使用を防止することが可能となり、セキュリティを確保することができる。
【００３０】
　また、外部機能ブロックを有効化するための情報を通信手段を介して取得するように構成することにより、多様なユーザに対する遠隔的で一元的なロイヤリティの管理を行うことができる。そして、遠方のマスターサーバーからのダウンロードも可能となる。
【発明を実施するための最良の形態】
【００３１】
　以下、本発明にかかわる半導体集積回路の具体的な実施の形態を図面に基づいて説明する。
【００３２】
　（実施の形態１）
　図１は本発明の実施の形態１の半導体集積回路の構成を示すブロック図である。
【００３３】
　半導体集積回路（システムＬＳＩ）７は、２つの外部機能ブロック５，６と、切替手段の一例としての不揮発性メモリ８と、有効無効化手段の一例としてのＡＮＤゲート５３，５４とを有している。切替手段は、不揮発性メモリ８以外の他のメモリでも代替可能である。
【００３４】
　不揮発性メモリ８の論理内容８１の出力端子はＡＮＤゲート５３，５４の１入力端子に接続されている。外部機能ブロック５に対する入力信号５２はＡＮＤゲート５４の別の入力端子に入力され、ＡＮＤゲート５４の出力端子は外部機能ブロック５の入力５６に接続されている。外部機能ブロック５の出力５５はＡＮＤゲート５３の別の入力端子に接続され、ＡＮＤゲート５３の出力端子が出力信号５１を出力する。
【００３５】
　上記同様に、不揮発性メモリ８の論理内容８２の出力端子はＡＮＤゲート６３，６４の１入力端子に接続されている。外部機能ブロック６に対する入力信号６２はＡＮＤゲート６４の別の入力端子に入力され、ＡＮＤゲート６４の出力端子は外部機能ブロック６の入力６６に接続されている。外部機能ブロック６の出力６５はＡＮＤゲート６３の別の入力端子に接続され、ＡＮＤゲート６３の出力端子が出力信号６１を出力する。
【００３６】
　外部機能ブロック５に対する入力信号５２は、不揮発性メモリ８の論理内容８１によって、論理回路としてのＡＮＤゲート５４を介して制御される。
【００３７】
　不揮発性メモリ８の論理内容８１が例えば“０”のときは、ＡＮＤゲート５４が非導通状態となり、外部機能ブロック５の入力５６は、入力信号５２の値に無関係に“０”に固定される。つまり、外部機能ブロック５に対する入力は、無効化される。
【００３８】
　不揮発性メモリ８の論理内容８１が例えば“１”のときは、ＡＮＤゲート５４が導通状態となり、入力信号５２の値がそのまま外部機能ブロック５の入力５６に入る。つまり、外部機能ブロック５に対する入力は、有効とされる。
【００３９】
　外部機能ブロック５からの出力信号５１は、不揮発性メモリ８の論理内容８１によって、論理回路としてのＡＮＤゲート５３を介して制御される。
【００４０】
　不揮発性メモリ８の論理内容８１が例えば“０”のときは、ＡＮＤゲート５３が非導通状態となり、出力信号５１は、“０”に固定される。つまり、外部機能ブロック５の出力は、無効化される。
【００４１】
　不揮発性メモリ８の論理内容８１が例えば“１”のときは、ＡＮＤゲート５３が導通状態となり、外部機能ブロック５の出力５５の値がそのまま出力信号５１に出る。つまり、外部機能ブロック５の出力は、有効とされる。
【００４２】
　以上のように、不揮発性メモリ８の論理内容８１によって、外部機能ブロック５に対する入出力をハードウエア上で有効または無効にすることができる。
【００４３】
　外部機能ブロック５の電源については、ＧＮＤは接地電位に、ＶＤＤはスイッチ５７を介して電源電位に接続されている。スイッチ５７は不揮発性メモリ８の論理内容８１によってＯＮ／ＯＦＦ制御されるようになっている。同様に、外部機能ブロック６の電源については、ＧＮＤは接地電位に、ＶＤＤはスイッチ６７を介して電源電位に接続されている。スイッチ６７は不揮発性メモリ８の論理内容８２によってＯＮ／ＯＦＦ制御されるようになっている。
【００４４】
　不揮発性メモリ８の論理内容８１が“１”のときは、スイッチ５７がＯＮとなり、外部機能ブロック５は、電源を供給されて動作する。
【００４５】
　不揮発性メモリ８の論理内容８１が“０”のときは、スイッチ５７がＯＦＦとなり、外部機能ブロック５には電源が供給されなくなる。外部機能ブロック５の出力５５はフローティング電位となるが、不揮発性メモリ８の論理内容８１が“０”になっているため、ＡＮＤゲート５３で不要な貫通電流が流れることはない。
【００４６】
　なお、スイッチ５７がＯＦＦとなるとき、外部機能ブロック５の出力がフローティング電位にならない構成の場合、ＡＮＤゲート５３はなくても外部機能ブロック５は無効化できる。
【００４７】
　外部機能ブロック５の入力５６は論理回路としてのＡＮＤゲート５４によって“０”のため、接地電位が出力され、外部機能ブロック５の内部も接地電位に固定されるため、外部機能ブロック５において不要な貫通電流が流れることはない。
【００４８】
　したがって、外部機能ブロック５の消費電力はゼロとなり、半導体集積回路７の消費電力を抑えることができる。
【００４９】
　外部機能ブロック６に関しても同様であり、不揮発性メモリ８の論理内容８２によって、外部機能ブロック６は動作状態と非動作状態とに切り替えられ、非動作状態にしたときは、消費電力を抑えることができる。
【００５０】
　このことにより、半導体集積回路７の生産後に外部機能ブロック５，６をそれぞれ有効にするか、無効にするかを決定することができるため、汎用的に複数の外部機能ブロックを内蔵して製造した後で、ユーザが必要とする外部機能ブロックのみを有効にすることができる。すなわち、工場出荷時に、不揮発性メモリ８に外部機能ブロック５，６を有効化するか否かの論理内容を書き込んでおく。また、その出荷先のユーザ情報と、出荷数量、有効化した外部機能ブロックなどを記録した上で出荷する。このようにすることにより、どこのユーザにどれだけの数量で、どの外部機能ブロックを有効にして出荷したかをメーカ側が管理できるため、各ユーザにおけるロイヤリティを管理できる。
【００５１】
　したがって、メーカにとっては汎用で大量生産可能でありながら、ユーザにとっては、未使用である外部機能ブロックについては、そのロイヤリティは支払わずに済ませることが可能となる。
【００５２】
　なお、切替手段については、不揮発性メモリ８に代えて、半導体集積回路７の内部に組み込まれたヒューズを用いてもかまわない。このヒューズは、切替手段として、外部機能ブロックに対する入出力を無効にするか有効にするかに応じて溶断状態とされたり、溶断せずにそのまま接続状態とされる。
【００５３】
　また、製造中にはなるが、マスクＲＯＭのように、マスクによって外部機能ブロックを無効にするか有効にするかの論理内容を設定することが可能なマスクオプションでもって切替手段を構成してもかまわない。
【００５４】
　不揮発性メモリでは論理内容を不当に書き替えられ、外部機能ブロックの不正使用の可能性がまったくないとはいえない。これに対して、マスクオプションとする場合には、不正使用を完全に阻止できる。
【００５５】
　（実施の形態２）
　図２は本発明の実施の形態２の半導体集積回路における外部機能ブロックの回路構成図であり、有効無効化手段の別の態様を示している。
【００５６】
　図２において、７９は外部機能ブロックを示している。この外部機能ブロック７９の内部は回路的にゲートとリセット端子付きのフリップフロップで構成されている。フリップフロップの代わりにラッチを用いてもよい。このフリップフロップおよびラッチなどを含めてラッチ手段という。この広い意味でのラッチ手段が有効無効化手段を構成している。論理回路としてのゲートについては、ここでは、ＡＮＤゲート７５、ＮＯＲゲート７６、ＮＯＴゲート７８で構成している。
【００５７】
　フリップフロップ７７は、そのリセット端子に対する制御信号７４の論理内容が“１”であるとき、アクティブとされ、入力信号７２によってクロック（ＣＫ）を供給され、また、入力信号７０，７１に応じ、ＡＮＤゲート７５、ＮＯＲゲート７６を介してデータ（Ｄ）を供給される。
【００５８】
　フリップフロップ７７はまた、出力（Ｑ）からＮＯＴゲート７８を介して出力信号７３を出力する。
【００５９】
　すなわち、フリップフロップ７７は、入力信号７０，７１，７２によって動作して出力信号７３を得る。
【００６０】
　ここで、リセット端子に対する制御信号７４の論理内容が“０”の場合、フリップフロップ７７はリセットされ、その出力（Ｑ）が“０”に固定される。出力（Ｑ）の値“０”はＮＯＴゲート７８を介して出力信号７３に値“１”で固定値として出力される。すなわち、入力信号７０，７１，７２のいかんによらずに出力信号７３に固定値“１”を得る。結果として、外部機能ブロック７９は無効化されている。
【００６１】
　この実施の形態の外部機能ブロックは、例えば、図１における外部機能ブロック５，６のいずれにも適用でき、その場合は、制御信号７４は不揮発性メモリ８の論理内容８１，８２に接続されることになる。また、後述する別の実施の形態における図３、図７の外部機能ブロック５にも適用できる。いずれの場合も、ＡＮＤゲート５３，５４は省略される。
【００６２】
　以上のように、有効無効化手段を外部機能ブロックの内部に構成することもできる。
【００６３】
　（実施の形態３）
　図３は本実施の形態３の半導体集積回路の構成を示すブロック図である。
【００６４】
　この半導体集積回路（システムＬＳＩ）１５は、メモリ１０、ＣＰＵ１１、暗号解読回路１２、レジスタ１３、外部機能ブロック５を有するとともに、レジスタ１３の論理内容によって外部機能ブロック５を有効または無効に切り替える２つのＡＮＤゲート５３，５４を有する。レジスタ１３の初期値はディスエーブル出力状態の“０”であり、外部機能ブロック５は無効化されている。
【００６５】
　半導体集積回路１５のリセット解除後、ＣＰＵ１１はバス１４を介してメモリ１０に記憶されているプログラムを読み出して実行する。メモリ１０には図５に示す暗号解除プログラムを含むプログラムが記憶されており、ＣＰＵ１１により順次実行される。
【００６６】
　暗号解読回路１２は、命令“＄５５”，“＄２３”，“＄ＦＥ”，“＄３６”，“＄ＣＤ”を順に受け取ると、レジスタ１３にイネーブル出力状態の“１”を設定しにいくようになっている。
【００６７】
　暗号解読回路１２の内部構成を図４に示す。シフトレジスタ１２１〜１２５は、レジスタのアドレスである“＠ｓｅｃｕｒｉｔｙ_Ａｄｒ”に書き込みがなされると、値を保存する。比較器１２６〜１３０はそれぞれのシフトレジスタと値を比較し、あらかじめ設定してある固定値と一致した場合に“１”を出力する。ＡＮＤゲート１３１はすべての比較器１２６〜１３０の出力が“１”の場合、レジスタセット信号を介してレジスタ１３の論理内容を“１”にする。
【００６８】
　ＣＰＵ１１は、メモリ１０より、命令“ｍｏｖ＃＄５５,＠ｓｅｃｕｒｉｔｙ_Ａｄｒ”を読み出して解読し、暗号解読回路１２に命令“＄５５”をバス１４を介して送る。シフトレジスタ１２１に命令“＄５５”が格納される。次に、ＣＰＵ１１は、メモリ１０より、命令“ｍｏｖ＃＄２３,＠ｓｅｃｕｒｉｔｙ_Ａｄｒ”を読み出して解読し、暗号解読回路１２に命令“＄２３”をバス１４を介して送る。シフトレジスタ１２２に命令“＄５５”が格納され、シフトレジスタ１２１に命令“＄２３”が格納される。同様にして、暗号解読回路１２に命令“＄ＦＥ”，“＄３６”，“＄ＣＤ”が送られ、シフトレジスタ１２５は命令“＄５５”、シフトレジスタ１２４は“＄２３”、シフトレジスタ１２３は“＄ＦＥ”、シフトレジスタ１２２は“＄３６”、シフトレジスタ１２１は“＄ＣＤ”となる。
【００６９】
　ここで、あらかじめ固定値として、比較器１３０には「＄５５」が格納されており、比較器１２９には「＄２３」が、比較器１２８には「＄ＦＥ」が、比較器１２７には「＄３６」が、比較器１２６には「＄ＣＤ」がそれぞれ格納されているものとする。すると、比較器１２６〜１３０における比較結果はすべて一致するため、ＡＮＤゲート１３１はレジスタセット信号を出力し、レジスタ１３は論理内容を“１”に設定される。これによって、外部機能ブロック５は有効化される。
【００７０】
　このことにより、半導体集積回路１５の生産後に外部機能ブロック５を有効にするか無効にするかをメモリ１０における暗号解除プログラムで決定することができる。
【００７１】
　なお、上記の複数のレジスタは、所定のレジスタに該当する値を格納されればよく、レジスタ１２１〜１２５のアドレスを各々異なるように構成しておき、値を書き込んでもよい。
【００７２】
　図３では、外部機能ブロックが１つであるが、もちろん、複数の外部機能ブロックを内蔵する半導体集積回路に対して本実施の形態を適用することができる。その場合、外部機能ブロック５、ＡＮＤゲート５３，５４、レジスタ１３に相当する組み合わせ回路構成が複数組設けられ、それぞれのレジスタが暗号解読回路１２に接続される。したがって、メーカが汎用的に複数の外部機能ブロックを内蔵して製造した後で、ユーザが必要とする外部機能ブロックのみを有効にする暗号解除プログラムをメモリ１０に書き込むことにより、必要とされる外部機能ブロックのみを有効にすることができる。
【００７３】
　暗号解除プログラムはメーカがそれぞれのユーザに対して発行、管理する。すなわち、メモリ１０がマスクＲＯＭの場合には、ＲＯＭデータの受け取り前において、また、メモリ１０が不揮発性メモリの場合は販売後において、それぞれ、出荷先のユーザ情報と、出荷数量、有効化した外部機能ブロックなどを記録した上でプログラムを書き込む。これにより、どこのユーザにどれだけの数量で、どの外部機能ブロックを有効にして出荷したかをメーカ側が管理することができる。すなわち、各ユーザにおけるロイヤリティを合理的に管理できる。結論として、メーカにとっては汎用で大量生産可能でありながら、ユーザにとっては、未使用である外部機能ブロックのロイヤリティは支払わずに済ませることが可能となる。
【００７４】
　（実施の形態４）
　本実施の形態４は、実施の形態３における暗号解除プログラムのセキュリティを高めたものである。実施の形態４を図６に基づいて説明する。
【００７５】
　実施の形態３の場合の図５の暗号解除プログラムは、通常のｍｏｖ命令を羅列しただけであり、“＠ｓｅｃｕｒｉｔｙ_Ａｄｒ”も規則的に並ぶため、第三者にとって本体プログラムの中から図５に示す暗号解除プログラム部分を見つけ出し、解読することは比較的容易である。
【００７６】
　そこで、第三者による解読を困難にするために規則正しいプログラムにわざと暗号解除とは無関係な命令を加えて、この規則を崩す。
【００７７】
　図５に示す本来の暗号解除プログラムとは無関係な命令２２すなわち“ｃｍｐ ｄ０，ｄ１”を加えている。また、命令２１すなわち“ｍｏｖ＃＄３６,＠ｓｅｃｕｒｉｔｙ_Ａｄｒ”は複数の命令列２３に分解している。“ｍｏｖ＃＄１２，ｄ０”と“ａｄｄ＃＄２４，ｄ０”で“ｄ０”に“＄３６”を作成し、この値を“ｍｏｖｄ０,＠ｓｅｃｕｒｉｔｙ_Ａｄｒ”で暗号解読回路１２に入れる。ユーザが作成した本体プログラムの中に図６に示した暗号解除プログラムが挿入されていても、どの部分が暗号解除の部分か分かりにくいものとなっている。
【００７８】
　すなわち、暗号解読回路１２にとっては、図５の規則的な並びの暗号解除プログラムと図６の解読困難な不規則的な暗号解除プログラムとは等価な効果を得られるが、図６の暗号解除プログラムに示した解読困難さがセキュリティ効果を高めることができる。
【００７９】
　（実施の形態５）
　図７は本発明の実施の形態５の半導体集積回路の構成を示すブロック図である。
【００８０】
　半導体集積回路３８は、外部機能ブロック５と、フラッシュメモリ３１の論理内容によって外部機能ブロック５を有効または無効に切り替えるＡＮＤゲート５３，５４をもつ。フラッシュメモリ３１の初期値はディスエーブル出力状態の“０”となっており、外部機能ブロック５は無効化されている。したがって、このままでは半導体集積回路３８の外部機能ブロック５は使用することができない。
【００８１】
　ここで、半導体集積回路を特定する識別情報を記憶する識別情報記憶手段としての記憶装置３６には当該の半導体集積回路を特定するためのシリアルナンバーとして、例えば“０００９８２”が書き込まれているとする。
【００８２】
　ユーザは半導体集積回路３８を購入した後、第１の専用端末４１を使って、この半導体集積回路３８の外部機能ブロック５を有効にするための有効化プログラムを買う。第１の専用端末４１は通信手段を介してマスターサーバー４２に接続でき、ユーザは入力情報として、ユーザ情報、購入した例えば１００個の半導体集積回路３８のシリアルナンバー情報の例えば“０００９０１−００１０００”と、有効化を求める外部機能ブロック５の識別情報とを入力する。マスターサーバー４２は、入力されたシリアルナンバーによる半導体集積回路の数量と有効化を求められた外部機能ブロック５の仕様等に基づいて売価を算出し、第１の専用端末４１に表示する。ユーザは売価を確認し、購入する場合、第１の専用端末４１から購入する旨を入力する。マスターサーバー４２は、ユーザ情報と売価を決済し、ユーザ情報とシリアルナンバーおよび数量と外部機能ブロックの情報を記録する。また、マスターサーバー４２は上記入力情報に従った情報を暗号化したプログラムを含む有効化プログラムを第１の専用端末４１に発行し、第１の専用端末４１はその有効化プログラムをダウンロードする。
【００８３】
　ユーザはダウンロードした有効化プログラムを第２の専用端末４３に移し、半導体集積回路３８と接続する。
【００８４】
　半導体集積回路３８では、そのメモリ３５に、第２の専用端末４３と通信を行い、外部機能ブロック５を有効にするためのプログラムが格納されている。ＣＰＵ３３は、バス３４を介してメモリ３５からプログラムを読み出し、実行する。
【００８５】
　まず、ＣＰＵ３３は、通信手段としての通信回路３７を介して第２の専用端末４３との間で通信を行い、シリアルナンバー情報と有効にしたい外部機能ブロックを解読し、シリアルナンバー情報“０００９０１−００１０００”と、外部機能ブロック５の情報を得る。この場合の通信は、ＳＳＬ（ＳｅｃｕｒｅＳｏｃｋｅｔ Ｌａｙｅｒ）を用いて暗号化した上で行う。
【００８６】
　次いで、ＣＰＵ３３は、記憶装置３６にあらかじめ格納されているシリアルナンバー“０００９８２”を読み出し、外部から取得したシリアルナンバー情報と照合する。条件が不一致の場合はプログラムを終了するが、条件が一致した場合は、外部機能ブロック情報に従って制御回路３２を動作させる。
【００８７】
　この場合、シリアルナンバー“０００９８２”はシリアルナンバー情報“０００９０１−００１０００”の条件に一致するため、外部機能ブロック５を有効にする情報に従って、制御回路３２はフラッシュメモリ３１を“０”から“１”に書き替える。これにより、外部機能ブロック５を有効にすることができる。
【００８８】
　このことにより、半導体集積回路３８の生産の後に、外部機能ブロック５を有効にすることができるため、メーカは汎用的に複数の外部機能ブロックを内蔵した状態で半導体集積回路を製造しておき、その後で、ユーザが必要とする外部機能ブロックのみを有効な状態に設定することができる。
【００８９】
　有効化プログラムについては、メーカがそれぞれのユーザに対して発行し、マスターサーバー４２で管理する。すなわち、販売後に、出荷先のユーザ情報と、数量、有効化した外部機能ブロックを記録することにより、メーカ側でロイヤリティを管理できる。したがって、メーカにとって汎用で大量生産可能でありながら、ユーザにとって未使用である外部機能ブロックのロイヤリティは支払わずに済ませることが可能となる。
【００９０】
　本発明では、機能ブロックを設計する機能ブロックプロバイダ、機能ブロックを用いて半導体集積回路を設計するシリコンベンダー、半導体集積回路のユーザそれぞれにメリットがある。例えば、機能ブロックプロバイダのＡ社、Ｂ社、Ｃ社から提供されたそれぞれ機能ブロックＡ、機能ブロックＢ、機能ブロックＣを内蔵した半導体集積回路を作ることで、シリコンベンダーは汎用性の高い半導体集積回路を開発でき、開発人員の大幅な削減が可能となる。
【００９１】
　すなわち、機能ブロックＡ、機能ブロックＢを内蔵した半導体集積回路を求めるユーザＵ１と、機能ブロックＢ、機能ブロックＣを内蔵した半導体集積回路を求めるユーザＵ２とがいる場合、従来の開発リソースでは、互いに別個の仕様の半導体集積回路しかできなかったものが、本発明では両方の要求を満たす半導体集積回路を開発できることになり、シリコンベンダーに収益増をもたらす。そして、いずれのユーザにとっても、ビジネスチャンスを得ることができる。
【００９２】
　また、機能ブロックプロバイダにおいては、従来であればユーザＵ１に対する機能ブロックＡ、機能ブロックＢにロイヤリティが支払われるだけであったが、本発明によれば、加えてユーザＵ２に対する機能ブロックＢ、機能ブロックＣにもロイヤリティが支払われることになり、その実用的効果はきわめて大きい。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施の形態１の半導体集積回路（システムＬＳＩ）の構成を示すブロック図
【図２】本発明の実施の形態２の半導体集積回路（システムＬＳＩ）における外部機能ブロックの構成を示すブロック図
【図３】本発明の実施の形態３の半導体集積回路（システムＬＳＩ）の構成を示すブロック図
【図４】本発明の実施の形態３における暗号解読回路の構成を示すブロック図
【図５】本発明の実施の形態３における暗号解除プログラムの説明図
【図６】本発明の実施の形態４における暗号解除プログラムの説明図
【図７】本発明の実施の形態５の半導体集積回路（システムＬＳＩ）の構成を示すブロック図
【図８】従来の技術の半導体集積回路の構成を示すブロック図
【符号の説明】
【００９４】
　５，６，７９　外部機能ブロック
　７，１５，３８　半導体集積回路（システムＬＳＩ）
　８　不揮発性メモリ
　１０　メモリ
　１１，３３　ＣＰＵ
　１２　暗号解読回路
　１３　レジスタ
　１４，３４　バス
　３１　フラッシュメモリ
　３２　制御回路
　３５　メモリ
　３６　記憶装置
　３７　通信回路
　４１，４３　専用端末
　４２　マスターサーバー
　７７　フリップフロップ
　１２１，１２２，１２３，１２４，１２５　シフトレジスタ
　１２６，１２７，１２８，１２９，１３０　比較器
【図１】
2004140376.tif 000003
【図２】
2004140376.tif 000004
【図３】
2004140376.tif 000005
【図４】
2004140376.tif 000006
【図５】
2004140376.tif 000007
【図６】
2004140376.tif 000008
【図７】
2004140376.tif 000009
【図８】
2004140376.tif 000010