(57)【要約】【課題】短時間での初期設定データをレジスタに設定可能とした半導体集積回路及びその方法を提供する。【解決手段】スキャンチェーンで接続された複数の内部レジスタを有し、初期設定データを前記内部レジスタに設定する半導体集積回路であって、圧縮された状態で入力される初期設定データを解凍する解凍部と、スキャンチェーンに従って、前記解凍部により解凍された前記初期設定データを前記内部レジスタに設定する制御部とを有することとした。  また、初期設定データは、同一のビット単位データの連続性を考慮して、初期化に不要なビット単位のデータを変更や、スキャンチェーンの接続を行うこととしているため、圧縮度を高めることができる初期設定データとなっている。【選択図】図１
2006178689.tif 000002
【特許請求の範囲】
【請求項１】
スキャンチェーンで接続された複数の内部レジスタを有し、初期設定データを前記内部レジスタに設定する半導体集積回路であって、
圧縮された状態で入力される前記初期設定データを解凍する解凍部と、
スキャンチェーンに従って、前記解凍部により解凍された前記初期設定データを前記内部レジスタに設定する制御部とを有する半導体集積回路。
【請求項２】
前記初期設定データは、初期化に不要なビット単位のデータを変更することにより、同一のビット単位データが連続するようにしたことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記スキャンチェーンは、同一のビット単位データの連続性を考慮して、前記内部レジスタを接続されたことを特徴とする請求項１又は請求項２に記載の半導体集積回路。
【請求項４】
スキャンチェーンで接続された複数のレジスタに、初期設定データを設定するレジスタ設定方法であって、
圧縮された状態で入力される前記初期設定データを解凍する第１の工程と、
スキャンチェーンに従って、前記解凍部により解凍された前記初期設定データを前記レジスタに設定する第２の工程とを有するレジスタ設定方法
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びそのレジスタ設定方法に関し、特に外部から入力された初期設定データを内部レジスタに設定するものに関する。
【背景技術】
【０００２】
従来、マイクロコンピュータなどにより所要のプログラムに基づいて動作制御される電子機器では、電源投入にともなってこの電子機器を初期起動状態とするブートプログラムが実行される（例えば、特許文献１参照。）。このように電子機器を初期起動状態とすることを単に「ブート」と呼ぶ。
【０００３】
このような電子機器では、ブートにともなってブートプログラムのコードを逐次実行していくことにより、電子機器内に設けられている半導体集積回路のレジスタ回路等に所定の初期値データを記憶させることによりブートが完了する。
【特許文献１】特開平１０−１１６１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の半導体集積回路では、レジスタ回路のすべてのレジスタに対して、所定の初期値データを設定していたため、電子機器が使用できるようになるまでの時間が長くなり、その間、利用者は待機しなければならないという問題があった。
【０００５】
本発明者はこのような現状に鑑み、短時間でブートを完了可能なレジスタ回路を開発すべく研究を行い、本発明をなすに至ったものである。
【課題を解決するための手段】
【０００６】
本発明の半導体集積回路では、スキャンチェーンで接続された複数の内部レジスタを有し、初期設定データを内部レジスタに設定する半導体集積回路であって、圧縮された状態で入力される初期設定データを解凍する解凍部と、スキャンチェーンに従って、解凍部により解凍された初期設定データを内部レジスタに設定する制御部とを有することとした。
【０００７】
また、初期設定データは、初期化に不要なビット単位のデータを変更することにより、同一のビット単位データが連続するようにした。
【０００８】
また、スキャンチェーンは、同一のビット単位データの連続性を考慮して、内部レジスタを接続することとした。
【０００９】
また、本発明のレジスタ方法では、スキャンチェーンで接続された複数のレジスタに、初期設定データを設定するレジスタ設定方法であって、圧縮された状態で入力される初期設定データを解凍する第１の工程と、スキャンチェーンに従って、解凍部により解凍された初期設定データをレジスタに設定する第２の工程とを有することとした。
【発明の効果】
【００１０】
請求項１記載の発明によれば、スキャンチェーンで接続された複数の内部レジスタを有し、初期設定データを内部レジスタに設定する半導体集積回路であって、圧縮された状態で入力される初期設定データを解凍する解凍部と、スキャンチェーンに従って、解凍部により解凍された初期設定データを内部レジスタに設定する制御部とを有することとしたので、初期設定データを圧縮して外部メモリに蓄積することができ、外部メモリのメモリサイズを削減することができる。しかも、外部メモリから半導体集積回路へのデータ転送量も減少させることができ、データ転送の効率化を図ることができる。
【００１１】
請求項２記載の発明によれば、初期設定データは、初期化に不要なビット単位のデータを変更することにより、同一のビット単位データが連続することとしたので、初期設定データの圧縮率を高めることができる。したがって、外部メモリのメモリサイズの削減、データ転送の効率化及び消費電力の削減をさらに向上させることが可能となる。さらに、データ配列の連続性が増加するため、スキャンチェーンでのスイッチング回数が低減できるため、消費電力を大幅に低減することができる。
【００１２】
請求項３記載の発明によれば、スキャンチェーンは、同一のビット単位データの連続性を考慮して、内部レジスタを接続することとしたので、初期設定データの圧縮率を大幅に高めることができる。したがって、外部メモリのメモリサイズの削減、データ転送の効率化及び消費電力の削減を大幅に向上させることが可能となる。さらに、データ配列の連続性が増加するため、スキャンチェーンでのスイッチング回数が低減できるため、消費電力を大幅に低減することができる。
【００１３】
請求項４記載の発明によれば、スキャンチェーンで接続された複数のレジスタに、初期設定データを設定するレジスタ設定方法であって、圧縮された状態で入力される初期設定データを解凍する第１の工程と、スキャンチェーンに従って、解凍部により解凍された初期設定データをレジスタに設定する第２の工程とを有することとしたので、初期設定データを圧縮して外部メモリに蓄積することができ、外部メモリのメモリサイズを削減することができる。しかも、外部メモリから半導体集積回路へのデータ転送量も減少させることができ、データ転送の効率化を図ることができる。
【発明を実施するための最良の形態】
【００１４】
本実施の形態の半導体集積回路及びそのレジスタ設定方法は、電子機器がブート動作する際に、電子機器内の半導体集積回路のレジスタを初期設定するために、予めメモリなどの記憶手段に記憶された圧縮状態の初期設定データが、記憶手段から半導体集積回路へ入力され、半導体集積回路は、その入力された圧縮状態の初期設定データを解凍して、スキャンチェーンに従って内部レジスタを設定するようにしたものである。
【００１５】
このように、半導体集積回路製造時のスキャンテストに使用するスキャンチェーンに従って内部レジスタを設定するようにしたので、その前段にデータ解凍部を挿入することが可能となる。
【００１６】
その結果、初期値データを圧縮された状態で受信することが可能となり、初期設定データを圧縮した形で記憶手段に記憶でき、記憶手段のメモリサイズを削減できる。
【００１７】
しかも、記憶手段から半導体集積回路へのデータ転送の効率化も図れる。
【００１８】
また、初期設定データ内で同一のビット単位データが連続するように、初期状態で必ずしも所定のデータを必要としないレジスタの値を変更したり、スキャンチェーンを張ったりするものである。
【００１９】
このように、初期設定データのデータ配列の連続性を増加させたため、スキャンチェーンでのスイッチング回数が低減できる。
【００２０】
その結果、消費電力を大幅に低減することができる。
【００２１】
以下において図面に基づいて本発明の実施形態を詳説する。図１は、本実施形態の半導体集積回路におけるレジスタ回路の要部を示した構成図である。
【００２２】
図１に示すように、本実施形態の半導体集積回路１は、データ解凍部２、スキャンコントロール部３、複数のレジスタ４ａ〜ｚ，５ａ〜ｑを有している。
【００２３】
データ解凍部２は、外部メモリ６から圧縮された状態で入力される初期設定データを解凍する回路である。
【００２４】
また、スキャンコントロール部３は、データ解凍部２で解凍された初期設定データをスキャンチェーンへ挿入し、このスキャンチェーンに従って、初期設定データを順次シフトして複数のレジスタ４ａ〜ｚ，５ａ〜ｑに設定する。
【００２５】
なお、レジスタ４ａ〜ｚ，５ａ〜ｑは、フリップフロップなどにより構成される。
【００２６】
ここで、スキャンチェーンとは、レジスタであるフリップフロップをチェーン状に接続し、入力されたシリアルデータを、シフトレジスタを用いてこのチェーン状に接続されたフリップフロップに次々と値を設定，読み出しを可能にしたものである。
【００２７】
本実施形態では、このスキャンチェーンで接続された各レジスタ４ａ〜ｚ，５ａ〜ｑへ初期設定データの設定を行う制御部である。
【００２８】
このように、半導体集積回路製造時のスキャンテストにのみ使用されていたスキャンチェーンに従って内部レジスタを設定するようにしたので、その前段にデータ解凍部を挿入することが可能となり、圧縮された初期設定データを受け入れ可能となる。
【００２９】
以下、圧縮された初期設定データをどのように生成するかという点につき、図面を参照して説明する。
【００３０】
図２は、データ解凍部２を有しない半導体集積回路１において、レジスタ４ａ〜ｚ，５ａ〜ｑに、初期設定データがそれぞれ設定された状態を示している。この状態においては、同一ビット単位データの連続性、すなわち０の連続性や１の連続性は少ない。
【００３１】
ここで、初期状態で必ず所定の値のビット単位データを設定する必要があるEssentialレジスタ(以下、「重要レジスタ」とする。)の他に、初期状態では必ずしも所定の値のビット単位データを設定する必要がなく、ブート後に必要なデータに書き換えられるDon’t-careレジスタ（以下、「非重要レジスタ」）が複数存在する。
【００３２】
そこで、初期設定データのうち、重要レジスタに設定される値は変更せずに、非重要レジスタに設定される値を変更することによって、変更後の初期設定データの同一ビット単位データの連続性を増加させようにする。
【００３３】
そして、初期設定データの同一ビット単位データの連続性を増加させる非重要レジスタの書き換えは、図４に示すようなアルゴリズムで実行することができる。
【００３４】
このアルゴリズムは、初期設定データのビット単位データを先頭から順次読み込んで、非重要レジスタを検出すると、直前の重要レジスタのビット単位データと同一の値にすることで、期設定データの同一ビット単位データの連続性を増加させるアルゴリズムである。
【００３５】
以下、図２，３を参照して、具体的に説明する。
【００３６】
図３は、図２で説明した初期設定データを図４のアルゴリズムで変更した初期設定データが、スキャンチェーンで接続されたレジスタ４ａ〜ｚ、５ａ〜ｑに、それぞれ設定された状態を示している。
【００３７】
ここで、本実施形態では、重要レジスタは、４ａ,４ｋ，４ｍ，４ｎ，４ｏ，４ｐ，４ｚ，５ｂ，５ｃ，５ｅ，５ｇ，５ｈ，５ｊ，５ｌであり、それ以外は非重要レジスタとする。
【００３８】
そして、初期設定データは、以下のように同一ビット単位データの連続性が増加するように非重要レジスタが変更される。
【００３９】
まず、重要レジスタ４ａの次のレジスタは、非重要レジスタ４ｂ〜ｊであるため、同一ビット単位データの連続性を増加するように、非重要レジスタ４ｂ〜ｊは重要レジスタ３ａと同じ値、すなわち「１」に統一される。したがって、「１」の値でない非重要レジスタ４ｂ，４ｃ，４ｆ，４ｉが、「０」から「１」へ変更される。
【００４０】
次の重要レジスタ４ｋは「０」であり、その次のレジスタは非重要レジスタ４ｌであるため、データ配列の連続性を増加するように、非重要レジスタ４ｌは重要レジスタ４ｋと同じ値、すなわち「０」に統一される。したがって、非重要レジスタ４ｌが、「１」から「０」へ変更される。以下、同様に同一ビット単位データの連続性を増加するように非重要レジスタが変更される。
【００４１】
このように、同一ビット単位データの連続性を増加させように初期設定データを変更することによって、高圧縮可能な初期設定データとすることができる。
【００４２】
この結果、初期設定データを圧縮して外部メモリ６に蓄積することができ、外部メモリ６のメモリサイズを削減することができる。
【００４３】
しかも、外部メモリ６から半導体集積回路１へのデータ転送量も減少させることができ、データ転送の効率化を図ることができる。
【００４４】
さらに、同一ビット単位データの連続性が増加するため、スキャンチェーンでのスイッチング回数が低減できるため、消費電力を大幅に低減することができる。
【００４５】
次に、同一ビット単位データの連続性を増加させる別の方法として、スキャンチェーンの張り方を変更する方法について説明する。
【００４６】
図５は、半導体集積回路１において、図４のアルゴリズムによって非重要レジスタの値が変更された初期設定データが、図２や図３のスキャンチェーンとはチェーン張りを異にするスキャンチェーンで接続されたレジスタ４ａ〜ｚ、５ａ〜ｑに、それぞれ設定された状態を示している。
【００４７】
図５の半導体集積回路では、図２、３に比べて、重要レジスタ４ｋと非重要レジスタ４ｑとが入れ替わるようにスキャンチェーンで接続されている。さらに、非重要レジスタ４ｑの値は、「１」へ変更されている。加えて、重要レジスタ５ｌと重要レジスタ５ｇとが入れ替わるようにスキャンチェーンで接続されている。
【００４８】
また、図６の半導体集積回路では、「１」の値を示す重要レジスタ、「０」の値を示す重要レジスタ、そして非重要レジスタの順にスキャンチェーンで接続し、非重要レジスタのレジスタを「０」に統一している。
【００４９】
このように、同一ビット単位データの連続性を考慮したスキャンチェーンの使用及び非重要レジスタに設定される値の変更によって、初期設定データの圧縮率を高めることができる。
【００５０】
なお、図２，３，５，６で示したスキャンチェーン順のレジスタ値を初期設定データとして圧縮した場合のデータサイズを表１に示す。なお、表１において、（１）（２）（３）（４）は、図２，３，５，６に対応する。
【００５１】
【表１】
2006178689.tif 000003
【００５２】
なお、上記の圧縮に際して使用する圧縮アルゴリズムは、以下に示すものであり、１又は０の繰り返し群ごとのデータを８ビットのデータとして出力するものである。
【００５３】
圧縮アルゴリズム：
［1bit：繰り返しデータ‘1’or‘0’］［7it：繰り返し数］=total 8bit
【００５４】
例えば、「100110・・」をこの圧縮アルゴリズムで圧縮する場合、最初の「1」を「10000001（81h）」と、次の「00」を「00000010（02h）」と、その次の「11」を「10000010(82h)」というように、１又は０の繰り返し群毎に８ビットの圧縮データとする。
【００５５】
このように、同一ビット単位データの連続性を増加させるように、スキャンチェーンを張り、さらに非重要レジスタの値を変更することによって、高圧縮可能な初期設定データで半導体集積回路のレジスタの初期設定を行うことができる。
【００５６】
ここで、同一ビット単位データの連続性を考慮したスキャンチェーンを生成する方法について、図７にそのアルゴリズムの例を示す。
【００５７】
このアルゴリズムは、配線コスト、遅延コストに加え、上述の圧縮度（以下、「圧縮コスト」とする。）を考慮してスキャンチェーンを生成するものである。
【００５８】
図７中（１）の式は、配線コスト（Ａ）、遅延コスト（Ｂ）、圧縮コスト（Ｃ）に所定の定数をそれぞれ乗算した後、それらを加算したものを最終的なコストとして算出するものである。
【００５９】
この式（１）によって、圧縮コストを考慮したコスト、すなわち、配線面、遅延面及び圧縮面の多面から見て一番良好なレジスタを判別することができる。
【００６０】
そして、式（２）に示すように、スキャンチェーン未接続のレジスタのうち、一番コストの低いレジスタに順次算出しながらスキャンチェーンを接続していく。
【００６１】
ここで、配線コストとは、レジスタ間を配線した場合の配線距離に基づいたものであり、遅延コストとは、レジスタ間を配線した場合の信号遅延に基づいたものである。
【００６２】
これらの算出方法としては、GATTO:a Genetic Algorithm for Automatic Test Pattern
Generation for Large Synchronous Sequential Circuits（IEEE Transactions on Computer-Aided Design, August 1996, Vol. 15, No. 8, pp. 943-951）などが挙げられる。
【００６３】
また、圧縮コストは、スキャンチェーンで未接続のレジスタ数を分子とし、一つの連続する同一ビット単位データの群に存在するビット数（Length[value_group]）を分母としたものを、同一ビット単位データの群毎に除算し、その結果を加算した値を基準としている。
【００６４】
たとえば、スキャンチェーンで接続されるレジスタの値が111100001111とすると、value_group(1)(2)(3)は、それぞれ１２／４となり、Σは９となる。この値が小さいチェーン接続のものが一番圧縮コストの小さいものとなる。
【００６５】
すなわち、同一ビット単位データの群が少なく、群に存在するビット単位データ数が多ければ、圧縮率を高めることができるから、圧縮コストが小さくなる。
【００６６】
このように、圧縮コストを考慮してスキャンチェーンをレジスタに接続することによって、同一ビット単位データの連続性を増すことができる。
【００６７】
したがって、初期設定データの圧縮率を高くすることができるので、記憶手段のメモリサイズの削減、記憶手段から半導体集積回路へのデータ転送の効率化、及びスキャンチェーンでのスイッチング回数の低減による消費電力の削減を実現することができる。
【００６８】
なお、本実施形態では、圧縮された初期設定データを外部メモリから入力することとしているが、半導体集積回路内部に設けられたメモリから入力するようにしてもよい。
【００６９】
また、圧縮アルゴリズムも本実施形態のものに限られず、適宜適切なアルゴリズムの選択を行ってもよい。
【図面の簡単な説明】
【００７０】
【図１】本実施形態の半導体集積回路の構成図
【図２】本実施形態のレジスタの設定状態を示す図
【図３】本実施形態のレジスタの設定状態を示す図
【図４】本実施形態の初期設定データの変更アルゴリズムを示す図
【図５】本実施形態のレジスタの設定状態を示す図
【図６】本実施形態のレジスタの設定状態を示す図
【図７】本実施形態のスキャンチェーンの変更アルゴリズムを示す図
【符号の説明】
【００７１】
１  半導体集積回路
２  データ解凍部
３  スキャンコントロール部
４，５  レジスタ
【図１】
2006178689.tif 000004
【図２】
2006178689.tif 000005
【図３】
2006178689.tif 000006
【図４】
2006178689.tif 000007
【図５】
2006178689.tif 000008
【図６】
2006178689.tif 000009
【図７】
2006178689.tif 000010