(57)【要約】【課題】  回路規模の増大を招くことなく、システムＬＳＩ全体の初期化にかかる時間を少なくする。【解決手段】  システムＬＳＩ１０１の外部不揮発性ＲＡＭ制御回路１１１の内部に、通常動作に使用する内部バス１５３とスキャンチェーン１６１とを選択的に切り替えるスキャンチェーン切替回路１２４と、スキャンチェーン１６１を選択したときに外部不揮発性ＲＡＭ１０３を制御するスキャン回路１２１とを備えておき、初期設定時には、外部不揮発性ＲＡＭ１０３に記録されている初期設定値を、外部ワークＲＡＭ１０２や内蔵マイコン１１３を経由せずに直接内部のレジスタに設定させる。【選択図】  図１
2006023257.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを演算処理するプログラム演算処理手段と、
前記プログラムが格納されたプログラム格納手段から実行すべきプログラムを読み込むプログラム読み込み手段と、
前記読み込んだプログラムを前記プログラム演算処理手段に送る内部データ転送手段と、
前記プログラム演算処理手段を制御して所定のデータ処理を行わせるデータ処理手段と、
所定のデータを保持しておく複数のデータ保持素子同士がチェーン状に接続され、各データ保持素子の保持しているデータを同期クロックに合わせてシフトさせることで回路内の欠陥を検査する内部検査手段と、
少なくとも前記内部検査手段を動作させるクロックを制御するクロック制御手段とを備えた集積回路であって、
前記プログラム読み込み手段を介して前記プログラム格納手段からデータを読み出すとともに、読み出したデータの出力先として前記内部データ転送手段又は前記内部検査手段の何れか一方を選択するプログラム読み出し選択手段と、
前記プログラム読み出し選択手段が前記データの出力先として前記内部検査手段を選択している場合に、前記プログラム格納手段を制御するためのプログラム格納手段制御手段とを備えており、
前記プログラム格納手段から前記内部検査手段に対して初期設定データが送られることで、前記データ処理手段が初期設定されるように構成されていることを特徴とする集積回路。
【請求項２】
請求項１に記載された集積回路において、
前記プログラム格納手段に対してデータを書き込むプログラム書き込み手段をさらに備え、
前記プログラム格納手段制御手段は、前記プログラム書き込み手段を制御して前記内部検査手段から出力されるデータを前記プログラム格納手段に書き込ませる機能をさらに有し、
前記内部検査手段のデータ保持素子の保持値が、前記プログラム書き込み手段を介して前記プログラム格納手段に書き込まれるように構成されていることを特徴とする集積回路。
【請求項３】
請求項１又は２に記載された集積回路において、
内部検査に使用するデータと前記内部検査手段により出力された検査結果とに基づいて、回路内の欠陥の有無を判定する内部検査結果確認手段をさらに備えていることを特徴とする集積回路。
【請求項４】
請求項１乃至３のうち何れか１項に記載された集積回路において、
前記内部検査手段のチェーン本数と前記プログラム読み込み手段におけるデータ信号本数とが一致していることを特徴とする集積回路。
【請求項５】
請求項１乃至４のうち何れか１項に記載された集積回路において、
前記プログラム格納手段から前記内部検査手段を通じて前記データ処理手段の初期設定を行っている間、回路の入出力端子の値及び入出力方向が固定されるように、該入出力端子に接続される内部信号を制御する入出力端子制御手段をさらに備えていることを特徴とする集積回路。
【請求項６】
請求項２に記載された集積回路において、
前記内部検査手段におけるデータ保持素子同士を接続したチェーンがリング状に構成され、その任意の箇所でのデータ値を読み出し又は書き込みを行うデータ保持素子チェーンアクセス手段をさらに備え、
前記プログラム格納手段制御手段は、前記データ保持素子チェーンアクセス手段又は前記プログラム書き込み手段のうち何れか一方を選択して、その選択された手段を用いて前記プログラム格納手段にデータを書き込む機能を有し、
前記クロック制御手段は、前記データ保持素子チェーンに接続されているデータ保持素子の段数の分だけクロックを発生させる機能を有し、
任意の時刻における各データ保持素子の保持値が、前記データ保持素子チェーンアクセス手段又は前記プログラム書き込み手段を介して前記プログラム格納手段に書き込まれるように構成されていることを特徴とする集積回路。
【請求項７】
プログラムを演算処理するプログラム演算処理手段と、
前記プログラムが格納されたプログラム格納手段から実行すべきプログラムを読み込むプログラム読み込み手段と、
前記読み込んだプログラムを前記プログラム演算処理手段に送る内部データ転送手段と、
前記プログラム演算処理手段を制御して所定のデータ処理を行うデータ処理手段と、
回路を動作させるために必要な設定データ群を保持する内部データ群保持手段と、
前記内部データ群保持手段に保持されているデータにおける任意の箇所を読み書きする内部データ群保持手段直接アクセス手段とを備えた集積回路であって、
前記プログラム読み込み手段と前記内部データ群保持手段直接アクセス手段とを接続するプログラム読み込み先選択手段と、
前記プログラム読み込み先選択手段が前記内部データ群保持手段直接アクセス手段を選択している場合に、前記プログラム格納手段を制御するためのプログラム格納手段制御手段とを備えており、
前記プログラム格納手段から前記内部データ群保持手段直接アクセス手段に対して初期設定データが送られることで、前記内部データ群保持手段が初期設定されるように構成されていることを特徴とする集積回路。
【請求項８】
請求項７に記載された集積回路において、
前記プログラム格納手段に対してデータを書き込むプログラム書き込み手段をさらに備え、
前記プログラム格納手段制御手段は、前記プログラム書き込み手段を制御して前記内部データ群保持手段直接アクセス手段から出力されるデータを前記プログラム格納手段に書き込ませる機能をさらに有し、
前記内部データ群保持手段の保持値が、前記内部データ群保持手段直接アクセス手段及び前記プログラム書き込み手段を介して前記プログラム格納手段に書き込まれるように構成されていることを特徴とする集積回路。
【請求項９】
請求項７又は８に記載された集積回路において、
前記プログラム格納手段から前記内部データ群保持手段直接アクセス手段を通じて前記データ処理手段の初期設定を行っている間、回路の入出力端子の値及び入出力方向が固定されるように、該入出力端子に接続される内部信号を制御する入出力端子制御手段をさらに備えていることを特徴とする集積回路。
【請求項１０】
請求項１に記載された集積回路において、
前記プログラム格納手段制御手段は、前記プログラム格納手段に格納されているデータが前記プログラム読み出し手段を介して前記内部データ転送手段に対して読み出し中であることを検知し、このデータ読み出し期間以外の期間に前記プログラム格納手段を前記内部検査手段に接続させる機能をさらに有していることを特徴とする集積回路。
【請求項１１】
請求項１に記載された集積回路において、
データ転送対象のアドレス情報を解析するアドレス解析手段をさらに備え、
前記内部データ転送手段は、データ転送対象のアドレス情報を有しており、
前記内部検査手段は、前記アドレス解析手段で解析されたアドレスに基づいて任意の前記データ保持素子に対してデータを読み出し又は書き出しを行う機能を有し、
任意の時刻において、前記プログラム演算処理手段から任意の前記データ保持素子に対してアクセスできるように構成されていることを特徴とする集積回路。
【請求項１２】
請求項７に記載された集積回路において、
前記プログラム格納手段制御手段は、前記プログラム格納手段に格納されているデータが前記プログラム読み出し手段を介して前記内部データ転送手段に対して読み出し中であることを検知し、このデータ読み出し期間以外の期間に前記プログラム格納手段を前記内部データ群保持手段直接アクセス手段に接続させる機能をさらに有していることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に関し、特にマイコン機能を内蔵した大規模システムＬＳＩの検査技術及び通常動作時の初期化技術に関するものである。
【背景技術】
【０００２】
＜従来例１＞
通常、製品を出荷する前には、その製品が仕様通りに製造されているかの確認作業を行うことが必要である。例えば、半導体の場合には、出荷前に実際に動作させることでその製品が有する機能が仕様通り働いているかを検査している。
【０００３】
しかし、大規模システムＬＳＩの場合には、以下に説明するような２つの理由から、出荷前の検査工程を考慮しないで開発されたシステムＬＳＩに対して検査を行うことは非常に困難となる問題があった。
【０００４】
まず、第１の理由として、大規模システムＬＳＩの有する機能の数が、検査に費やすことができる時間に対して非常に多いということがあげられる。これは、近年のシステムＬＳＩの高機能化及び周辺部品統合化（１チップ化）によってさらに顕著になっている。
【０００５】
次に、第２の理由は、システムＬＳＩの端子の数が、検査すべき機能の数に対して少ないということである。通常、システムＬＳＩの検査は、該システムＬＳＩの端子に信号を加えて動作させることによって行われる。しかし、システムＬＳＩが有する機能が飛躍的に増大しているのに対して、ＬＳＩの周辺や裏面に準備される端子数はそれほど増大していない。そのため、ＬＳＩ内部の機能を動作させるには、極めて複雑な手順をとらなければならないか、そもそも外部端子からの制御では検査しきれないおそれがある。
【０００６】
このような問題を解決する技術として、従来、特許文献１には、大規模システムＬＳＩ内にスキャン回路を内蔵することが開示されている。以下、このような従来の技術を図２に基づいて説明する。
【０００７】
システムＬＳＩ２００は、スキャン制御回路２０１と、データ保持素子２１１〜２１４と、組み合わせ回路２２１〜２２３と、システムＬＳＩ外部端子群２３０と、スキャン制御端子２３１とを備えている。
【０００８】
前記データ保持素子２１１〜２１４は、一般的にフリップフロップと呼ばれるもので、データ入力端子Ｄと、データ出力端子Ｑと、該データ出力端子Ｑの出力信号に対する反転信号を出力するデータ出力端子ＮＱと、クロック入力端子ＣＫ（図示せず）と、スキャンデータ入力端子ＤＴと、スキャン動作モードへ切り替えるためのＮＴ端子（図示せず）とから構成されている。
【０００９】
なお、図２では、スキャン回路のシンプルな構成を例示するために最小限の回路のみを記載しているが、この回路構成に限定されず、例えば、データ保持素子は２個以上あればよく、また組み合わせ回路は何個あっても構わない。
【００１０】
次に、図２における通常回路の接続について説明する。データ保持素子２１１〜２１４と組み合わせ回路２２１〜２２３とは、データ保持素子２１１〜２１４のＤ端子、Ｑ端子、及びＮＱ端子と、組み合わせ回路２２１〜２２３の入出力端子とを任意に接続し、その組み合わせによって所定の動作を行うように接続されている。
【００１１】
そして、データ保持素子２１１〜２１４が保持しているデータの更新タイミングを得るために、各データ保持素子２１１〜２１４のＣＫ端子には、図示しない共通の同期クロック信号が入力される。
【００１２】
前記データ保持素子２１１〜２１４と前記組み合わせ回路２２１〜２２３とで構成される機能回路群に対する入力信号は、複数のシステムＬＳＩ外部端子群２３０のうちの１つから入力される。そして、前記機能回路群での処理結果は、前記複数のシステムＬＳＩ外部端子群２３０のうちの１つから出力される。
【００１３】
前記スキャン制御回路２０１は、前記機能回路群とシステムＬＳＩ外部端子群２３０とを固定接続しており、該機能回路群が通常動作するときには、常に端子群の各仕様通りに内部機能が動作するようになっている。
【００１４】
次に、図２におけるスキャン回路の接続について説明する。データ保持素子２１１〜２１４におけるスキャンデータ入力端子ＤＴとデータ出力端子Ｑ又はＮＱとが、一連の信号線２５１（図２において太点線で記載）によってチェーン状に接続されている。以下、このようにチェーン状に接続された一連の信号線２５１をスキャンチェーンと呼ぶ。
【００１５】
前記スキャンチェーン２５１の始点２８１及び終点２９１は、スキャン制御回路２０１を介して複数のシステムＬＳＩ外部端子群２３０の何れかにそれぞれ接続されている。ここで、スキャン制御端子２３１により前記機能回路群を制御する際、システムＬＳＩ外部端子群２３０に本数的な余裕がある場合には専用端子として使用する一方、本数的な余裕がない場合には通常機能との兼用端子として使用する。
【００１６】
次に、前記スキャン回路の動作及びシステムＬＳＩの欠陥検出原理について説明する。システムＬＳＩの検査時には、前記スキャン制御端子２３１から入力信号が入力されて前記機能回路群が制御される。この動作をスキャンモードという。
【００１７】
このとき、スキャン制御回路２０１により、システムＬＳＩ外部端子群２３０と前記スキャンチェーン２５１とが接続され、各データ保持素子２１１〜２１４のＮＴ端子（図示せず）がオン状態となる。この状態で動作クロックを与えると、スキャンチェーンの始点２８１に接続された端子のデータがデータ保持素子２１１のＤＴ端子に与えられてその値が保持される。
【００１８】
そして、次の動作クロックを与えると、データ保持素子２１１に保持された値の反転信号がデータ保持素子２１２のＤＴ端子に与えられてその値が保持される。一方、端子に与えられた次のデータがスキャンチェーンの始点２８１を経由してデータ保持素子２１１のＤＴ端子に与えられてその値が保持される。このとき、データ保持素子２１２に与えられた値はデータ保持素子２１１が保持していた値に比べて反転した値となっているが、スキャンテストで用いる場合には、後述するように反転した値であっても構わない。
【００１９】
このように、データをシフトさせながらデータ保持素子２１１〜２１４に対して順に設定していき、該データ保持素子２１１〜２１４の個数分だけ動作クロックが入力されると、全てのデータ保持素子２１１〜２１４に対して端子から与えたデータが保持されることとなる。この一連の動作をスキャンシフトという。
【００２０】
スキャンシフト完了後に、全てのデータ保持素子２１１〜２１４のＮＴ端子をオフ状態にする。このとき、各データ保持素子２１１〜２１４の値が組み合わせ回路２２１〜２２３にて演算され、その演算結果が各データ保持素子２１１〜２１４のＤ端子に与えられる。そして、次の動作クロックにおいて、前記演算結果による値が各データ保持素子２１１〜２１４に保持される。この動作をスキャンキャプチャという。
【００２１】
そして、スキャンキャプチャ完了後に再びスキャンシフトさせることで、このキャプチャした各データ保持素子２１１〜２１４の各々の値をスキャンチェーンの終点２９１に出力させる。この出力結果を複数のシステムＬＳＩ外部端子群２３０のうちの１つから出力させることにより、キャプチャしたデータを観測することができる。
【００２２】
これにより、スキャンキャプチャ時に、組み合わせ回路２２１〜２２３に対して任意の値をスキャンシフトすることで設定することができる。また、その組み合わせ回路２２１〜２２３の演算結果をスキャンシフトすることで取り出すことができる。
【００２３】
ここで、組み合わせ回路群やスキャン回路を構成するデータ保持素子群がどのような回路構成であるかは、システムＬＳＩ２００の開発段階で明確となっているため、スキャンシフト及びスキャンキャプチャの出力結果がその回路構成においてどのような結果になるかということは、予め理論的に演算しておくことができる。従って、この理論値と実際のスキャンシフト及びスキャンキャプチャの出力結果とを比較することで、内部の回路が仕様通りに製造されているかを検出することができる。
【００２４】
なお、本従来例１では、通常動作の回路が閉鎖的になるように記載しているが、実際のスキャンテスト時には、これらの入力端子にも任意の値を与えて出力端子の値を保持することにより、通常回路の入出力端子とデータ保持素子間の検査を行うようにしている。
【００２５】
ここで、データ保持素子のＤＴ端子に対して前段のデータ保持素子のＮＱ端子を接続すると、データが反転して受け渡されることになる。しかし、各データ保持素子に対して任意の値を与えることができればよく、ＬＳＩ開発段階において明確となっているデータの反転箇所を考慮してデータを与えればよい。すなわち、スキャンチェーン上において、データ反転箇所以降のデータ保持素子に値を与える場合には反転した値を与えることで対応可能である。また、反転箇所が複数あれば、それに応じて対応できることも明らかである。そして、スキャンキャプチャ後にデータを観測する場合も同様である。
【００２６】
なお、敢えて反転信号が使用されるのは次の理由による。通常のデータ保持素子に用いられるフリップフロップには、Ｑ端子とＮＱ端子が存在している。通常機能として、回路構成的にはＱ端子（又はＮＱ端子）のみしか用いられない場合には、使用していないＮＱ端子（又はＱ端子）をスキャンチェーンの接続に用いた方が設計時のファンアウトや配線リソースの分散の観点において有利となるためである。
【００２７】
＜従来例２＞
一般的なシステムＬＳＩでは、データ処理の過程で一時的にデータを保持しておきたい場合がよくある。また、データ処理に必要な設定を保持しておく必要もある。そのデータ量が少ない場合には、フリップフロップ等のデータ保持素子に保持させている。しかし、データ量が多く、またそのデータ単位がまとまっている場合には、ＲＡＭ（Randam Access Memory）を内蔵して該ＲＡＭにデータを保持させることがある。このように、データ処理量が多く複雑なシステムＬＳＩにおいては、多くの内部ＲＡＭを使用することが一般的である。
【００２８】
ここで、内部ＲＡＭが仕様通りに製造されているかを検査するために、内部ＲＡＭテスト用の回路を内蔵することが一般的である。内部ＲＡＭのテスト方法としては、ＬＳＩの外部から直接的に内部ＲＡＭを制御することで検査する直接アクセス方式と、内部にＲＡＭ検査回路を備えておき該検査回路を外部から制御することでＲＡＭの検査を行う間接アクセス方式との２種類がある。
【００２９】
近年、内部ＲＡＭの多使用と大容量化が進み、全ての内部ＲＡＭについて全ての機能を一定時間内で外部端子から検査することが困難になってきている。また、ＲＡＭが実使用時の周波数で動作するかについても検査する必要があるが、システムＬＳＩの外部端子から内部ＲＡＭへの高速アクセスも困難になってきている。従って、内部ＲＡＭの検査方法の主流は、間接アクセス方式になってきている。
【００３０】
しかし一方で、製造上の欠陥箇所の特定や冗長回路の搭載、さらにＬＳＩ品質維持向上を目的として、直接アクセス方式による検査回路を内蔵する場合も多い。直接アクセス方式では、内部ＲＡＭが持つアドレスバス、入力データバス、出力データバス、チップイネーブル端子、ライトイネーブル端子等が、ＬＳＩの外部端子に直接接続されるように構成され、ＬＳＩの外部から内部ＲＡＭを自由に制御できるようになっている。
【００３１】
しかしながら、多くのＲＡＭを持つシステムＬＳＩの場合、全てのＲＡＭについて全ての端子をＬＳＩの外部端子と常に接続することは、端子数の制限からできないことが多いので、アドレスバスやデータバスを共有し、検査するＲＡＭをイネーブル端子にて選択して検査することが多い。
【００３２】
図３に、ＲＡＭの検査方法の一つである直接アドレス方式の一例を示す。図３に示すように、システムＬＳＩ３０１には内部ＲＡＭ３１１〜３１３が内蔵されている。これらは、通常動作時にはセレクタ群３２１〜３２３によって論理回路に接続されているが、内部ＲＡＭ３１１〜３１３に対して外部から直接アクセスするＲＡＭテスト時には、これらのセレクタ群３２１〜３２３を切り替える。
【００３３】
これにより、内部ＲＡＭ３１１〜３１３のアドレス端子やリード端子がシステムＬＳＩ３０１外部から見える形となり、該内部ＲＡＭ３１１〜３１３の検査が容易となる。本従来例２における検査回路は、アドレスバス、ライトデータバスは各内部ＲＡＭ３１１〜３１３で共有し、各内部ＲＡＭ３１１〜３１３ごとのイネーブル信号にて対象となる内部ＲＡＭを選択する。
【００３４】
なお、内部ＲＡＭ３１１〜３１３をリードしたい場合には、イネーブル信号によってデータセレクタ３２４を切り替えて、対象となる内部ＲＡＭのリードデータが出力されるようにすればよい。
【００３５】
＜従来例３＞
マイコン機能を内蔵するシステムＬＳＩにおいては、内蔵マイコンが実行するのに必要なプログラムを、内蔵マイコンがフェッチ可能な箇所に格納しておく必要がある。ここで、その格納場所については様々な方式があるが、システムＬＳＩの内部に置くか又は外部に置くかの２つの方式に大別される。
【００３６】
システムＬＳＩ内部にプログラムを置くための手段として、システムＬＳＩに組み込まれたＲＯＭ（Read Only Memory）や不揮発性ＲＡＭが挙げられるが、何れも大きなプログラムを格納する領域を確保しようとすると、ＬＳＩの製造コストが高くなるという欠点がある。また、比較的安価なＲＯＭでは、システムＬＳＩ製造後のプログラム変更ができない。従って現在は、プログラムをシステムＬＳＩの外部に置く方式が主流となっている。
【００３７】
システムＬＳＩ外部にプログラムを置くための手段としては、ＲＯＭと不揮発性ＲＡＭとが考えられる。ＲＯＭにプログラムを置く方式は、コストとアクセス速度の観点からは有利であるが、内蔵ＲＯＭ方式と同様、ハードウェア化後のプログラム修正ができず、今日のプログラムの大規模化、システムＬＳＩ使ったセットの開発スピードからいっても現実的ではない。以上のような理由により、システムＬＳＩが使用するプログラムは、外部の不揮発性ＲＡＭに格納させる方式が主流となっている。
【００３８】
以下、不揮発性ＲＡＭを使ったシステムＬＳＩのプログラム実行の動作について、図４に基づいて説明する。図４に示すように、システムＬＳＩ４０１は、内蔵マイコン４１１と、外部ワークＲＡＭ制御回路４１２と、不揮発性ＲＡＭ制御回路４１３と、データ処理回路群４１４と、内部バス４２１と、レジスタアクセスバス４２２とを備えている。
【００３９】
前記システムＬＳＩ４０１には、外部ワークＲＡＭ制御回路４１２を介して外部ワークＲＡＭ４０２が、不揮発性ＲＡＭ制御回路４１３を介して不揮発性ＲＡＭ４０３がそれぞれ接続されている。
【００４０】
次に、この回路の初期化時の動作について説明する。システムＬＳＩ４０１に通電した後でリセット解除された内蔵マイコン４１１は、アクセス可能なアドレス空間のうち、その内蔵マイコン４１１によって予め決められている特定のアドレスに対してフェッチを行い、命令実行を開始する。本従来例３では、プログラムが不揮発性ＲＡＭ４０３に格納されており、最初のフェッチはここにアクセスされるように設計されている。その後、ジャンプ命令や分岐命令等がない限り、アドレスの順にフェッチと命令処理が実行されてシステムＬＳＩ４０１が動作し始める。
【００４１】
しかし、一般的には不揮発性ＲＡＭ４０３は動作性能が低く、高性能な内蔵マイコン４１１の動作性能に追いつかない。従って、高性能な内蔵マイコン４１１を有するシステムＬＳＩ４０１を使ったプログラムは、内蔵マイコン４１１が常時使用するプログラムを不揮発性ＲＡＭ４０３から動作性能の高い外部ワークＲＡＭ４０２に複写してから実行される。
【００４２】
このような複写の方法には、内蔵マイコン４１１によりリード／ライトする方法と、内蔵マイコン４１１以外に複写用の制御回路を備えて該制御回路により行う方法とがあるが、ここでは詳細については触れないこととする。
【００４３】
一方、データ処理回路群４１４は、内蔵マイコン４１１で制御されて動作する。データ処理回路群４１４が動作を開始するためには、内蔵マイコン４１１からレジスタアクセスバス４２２を介して初期設定を行う必要がある。
【００４４】
図５は、システムＬＳＩの初期化の手順を示すフローチャート図である。まず、ステップＳ５０１でシステムＬＳＩ４０１に通電した後、ステップＳ５０２で内蔵マイコン４１１をリセット解除し、ステップＳ５０３で不揮発性ＲＡＭ４０３から初期のフェッチと命令実行を行う。
【００４５】
そして、最小限の命令処理が完了した時点で、内蔵マイコン４１１又は図示しない複写用制御回路が動作して、ステップＳ５０４で不揮発性ＲＡＭ４０３から外部ワークＲＡＭ４０２へプログラム複写を行う。プログラム転送終了後、ステップＳ５０５で改めて外部ワークＲＡＭ４０２からフェッチと命令実行を行う。
【００４６】
なお、全体の初期化時間を短縮するために、ステップＳ５０４とステップＳ５０５とを同時に行う場合がある。その場合には、複写用制御回路が必須の構成要素となり、さらにステップＳ５０５で実行中のプログラムが複写中のプログラムに影響を及ぼさないように注意しておく必要がある。
【００４７】
内蔵マイコン４１１自体の初期化が終了すると、ステップＳ５０６で実際に動作させたいデータ処理回路群の初期設定を行う。初期設定が終了すると、ステップＳ５０７で実際にデータ処理が開始し、システムＬＳＩ４０１全体が通常動作状態となる。
【特許文献１】特開２００２−２５０７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００４８】
ここで、スキャン回路は、出荷前の検査時（通常は数秒程度）しか使用しないものであるにも拘わらず、ＬＳＩの回路規模を例えば１割程度増大させる要因となっている。ＬＳＩのコストは、該ＬＳＩの回路規模で決定されるチップ面積が大きく影響するので、できるだけチップ面積を抑えて開発する必要がある。しかしながら、前記スキャン回路をＬＳＩ内に実装することによってコストを押し上げているという問題点があった。同様の問題点がＲＡＭ検査回路にも当てはまる。
【００４９】
また、システムＬＳＩでは、内蔵マイコンが起動してＬＳＩ内部の初期設定を行ってから実際のデータ処理を開始するまでに一定の時間がかかる。これは、近年のシステムＬＳＩの高集積化や内蔵マイコン実行用のプログラムの大規模化に伴い、特に顕著になってきている。このようなシステムＬＳＩの動作開始までの時間の増大は、そのシステムＬＳＩを使った機器の動作開始時間が延びることに他ならず、製品の魅力が低下するという問題点があった。
【００５０】
このように、システムＬＳＩの全体の初期化に時間がかかるのは、不揮発性ＲＡＭに格納されている内蔵マイコン実行用プログラムを、一旦、外部ワークＲＡＭに格納した上で内蔵マイコンが読み出して設定するという手順に問題があるからである。すなわち、データ処理回路の初期設定までに時間がかかっていた。しかし、この問題を解決するために、それ専用の回路を追加することは、システムＬＳＩの回路規模増大を招いてしまうため好ましくない。
【００５１】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、回路規模の増大を招くことなく、システムＬＳＩ全体の初期化にかかる時間を少なくすることにある。
【課題を解決するための手段】
【００５２】
本発明は、上記目的に対して、不揮発性ＲＡＭのデータをシステムＬＳＩ内に取り込んだ後、データ処理回路の検査用スキャン回路やＲＡＭ検査回路を使ってデータ処理回路内を初期化するようにした。
【００５３】
すなわち、請求項１の発明は、プログラムを演算処理するプログラム演算処理手段と、
前記プログラムが格納されたプログラム格納手段から実行すべきプログラムを読み込むプログラム読み込み手段と、
前記読み込んだプログラムを前記プログラム演算処理手段に送る内部データ転送手段と、
前記プログラム演算処理手段を制御して所定のデータ処理を行わせるデータ処理手段と、
所定のデータを保持しておく複数のデータ保持素子同士がチェーン状に接続され、各データ保持素子の保持しているデータを同期クロックに合わせてシフトさせることで回路内の欠陥を検査する内部検査手段と、
少なくとも前記内部検査手段を動作させるクロックを制御するクロック制御手段とを備えた集積回路であって、
前記プログラム読み込み手段を介して前記プログラム格納手段からデータを読み出すとともに、読み出したデータの出力先として前記内部データ転送手段又は前記内部検査手段の何れか一方を選択するプログラム読み出し選択手段と、
前記プログラム読み出し選択手段が前記データの出力先として前記内部検査手段を選択している場合に、前記プログラム格納手段を制御するためのプログラム格納手段制御手段とを備えており、
前記プログラム格納手段から前記内部検査手段に対して初期設定データが送られることで、前記データ処理手段が初期設定されるように構成されていることを特徴とする。
【００５４】
請求項２の発明は、請求項１に記載された集積回路において、
前記プログラム格納手段に対してデータを書き込むプログラム書き込み手段をさらに備え、
前記プログラム格納手段制御手段は、前記プログラム書き込み手段を制御して前記内部検査手段から出力されるデータを前記プログラム格納手段に書き込ませる機能をさらに有し、
前記内部検査手段のデータ保持素子の保持値が、前記プログラム書き込み手段を介して前記プログラム格納手段に書き込まれるように構成されていることを特徴とする。
【００５５】
請求項３の発明は、請求項１又は２に記載された集積回路において、
内部検査に使用するデータと前記内部検査手段により出力された検査結果とに基づいて、回路内の欠陥の有無を判定する内部検査結果確認手段をさらに備えていることを特徴とする。
【００５６】
請求項４の発明は、請求項１乃至３のうち何れか１項に記載された集積回路において、
前記内部検査手段のチェーン本数と前記プログラム読み込み手段におけるデータ信号本数とが一致していることを特徴とする。
【００５７】
請求項５の発明は、請求項１乃至４のうち何れか１項に記載された集積回路において、
前記プログラム格納手段から前記内部検査手段を通じて前記データ処理手段の初期設定を行っている間、回路の入出力端子の値及び入出力方向が固定されるように、該入出力端子に接続される内部信号を制御する入出力端子制御手段をさらに備えていることを特徴とする。
【００５８】
請求項６の発明は、請求項２に記載された集積回路において、
前記内部検査手段におけるデータ保持素子同士を接続したチェーンがリング状に構成され、その任意の箇所でのデータ値を読み出し又は書き込みを行うデータ保持素子チェーンアクセス手段をさらに備え、
前記プログラム格納手段制御手段は、前記データ保持素子チェーンアクセス手段又は前記プログラム書き込み手段のうち何れか一方を選択して、その選択された手段を用いて前記プログラム格納手段にデータを書き込む機能を有し、
前記クロック制御手段は、前記データ保持素子チェーンに接続されているデータ保持素子の段数の分だけクロックを発生させる機能を有し、
任意の時刻における各データ保持素子の保持値が、前記データ保持素子チェーンアクセス手段又は前記プログラム書き込み手段を介して前記プログラム格納手段に書き込まれるように構成されていることを特徴とする。
【００５９】
請求項７の発明は、プログラムを演算処理するプログラム演算処理手段と、
前記プログラムが格納されたプログラム格納手段から実行すべきプログラムを読み込むプログラム読み込み手段と、
前記読み込んだプログラムを前記プログラム演算処理手段に送る内部データ転送手段と、
前記プログラム演算処理手段を制御して所定のデータ処理を行うデータ処理手段と、
回路を動作させるために必要な設定データ群を保持する内部データ群保持手段と、
前記内部データ群保持手段に保持されているデータにおける任意の箇所を読み書きする内部データ群保持手段直接アクセス手段とを備えた集積回路であって、
前記プログラム読み込み手段と前記内部データ群保持手段直接アクセス手段とを接続するプログラム読み込み先選択手段と、
前記プログラム読み込み先選択手段が前記内部データ群保持手段直接アクセス手段を選択している場合に、前記プログラム格納手段を制御するためのプログラム格納手段制御手段とを備えており、
前記プログラム格納手段から前記内部データ群保持手段直接アクセス手段に対して初期設定データが送られることで、前記内部データ群保持手段が初期設定されるように構成されていることを特徴とする。
【００６０】
請求項８の発明は、請求項７に記載された集積回路において、
前記プログラム格納手段に対してデータを書き込むプログラム書き込み手段をさらに備え、
前記プログラム格納手段制御手段は、前記プログラム書き込み手段を制御して前記内部データ群保持手段直接アクセス手段から出力されるデータを前記プログラム格納手段に書き込ませる機能をさらに有し、
前記内部データ群保持手段の保持値が、前記内部データ群保持手段直接アクセス手段及び前記プログラム書き込み手段を介して前記プログラム格納手段に書き込まれるように構成されていることを特徴とする。
【００６１】
請求項９の発明は、請求項７又は８に記載された集積回路において、
前記プログラム格納手段から前記内部データ群保持手段直接アクセス手段を通じて前記データ処理手段の初期設定を行っている間、回路の入出力端子の値及び入出力方向が固定されるように、該入出力端子に接続される内部信号を制御する入出力端子制御手段をさらに備えていることを特徴とする。
【００６２】
請求項１０の発明は、請求項１に記載された集積回路において、
前記プログラム格納手段制御手段は、前記プログラム格納手段に格納されているデータが前記プログラム読み出し手段を介して前記内部データ転送手段に対して読み出し中であることを検知し、このデータ読み出し期間以外の期間に前記プログラム格納手段を前記内部検査手段に接続させる機能をさらに有していることを特徴とする。
【００６３】
請求項１１の発明は、請求項１に記載された集積回路において、
データ転送対象のアドレス情報を解析するアドレス解析手段をさらに備え、
前記内部データ転送手段は、データ転送対象のアドレス情報を有しており、
前記内部検査手段は、前記アドレス解析手段で解析されたアドレスに基づいて任意の前記データ保持素子に対してデータを読み出し又は書き出しを行う機能を有し、
任意の時刻において、前記プログラム演算処理手段から任意の前記データ保持素子に対してアクセスできるように構成されていることを特徴とする。
【００６４】
請求項１２の発明は、請求項７に記載された集積回路において、
前記プログラム格納手段制御手段は、前記プログラム格納手段に格納されているデータが前記プログラム読み出し手段を介して前記内部データ転送手段に対して読み出し中であることを検知し、このデータ読み出し期間以外の期間に前記プログラム格納手段を前記内部データ群保持手段直接アクセス手段に接続させる機能をさらに有していることを特徴とする。
【発明の効果】
【００６５】
本発明の集積回路によれば、システムＬＳＩの初期化のうち、データ処理回路の初期化において外部ワークＲＡＭや内蔵マイコンを経由しないことから、従来技術に比べて短時間のうちに初期化させることができ、システムＬＳＩの初期設定時間を短縮することができる。しかも、本発明では、通常システムＬＳＩが備えていることが多いスキャン回路やＲＡＭ検査回路を流用することから、それを実現するための回路規模の増大はわずかでありコストの増大を抑える上で有利となる。
【００６６】
また、電源オフ時にスキャン回路を使ってシステムＬＳＩ内部の状態をＬＳＩ外部に保持させ、電源オン時に本発明における初期化回路を使って初期化することにより、電源オフ時の状態を電源オン時に再現させることができる。
【００６７】
さらに、システムＬＳＩ開発時においては、スキャン回路を使って内部状態を外部ＲＡＭへ出力したり内蔵マイコンによって読み出したりすることによって、内部状態を観測することができる。
【発明を実施するための最良の形態】
【００６８】
以下、本発明の実施形態を図面に基づいて詳細に説明する。以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものでは全くない。
【００６９】
＜実施形態１＞
図１に本発明の実施形態１に係るシステムＬＳＩの構成を示す。図１に示すように、システムＬＳＩ１０１の内部には、外部不揮発性ＲＡＭ制御回路１１１（プログラム読み込み手段）と、外部ワークＲＡＭ制御回路１１２（プログラム演算処理手段）と、内蔵マイコン１１３（データ処理手段）と、データ処理回路１１４（内部検査手段）とを備えている。
【００７０】
このうち、前記外部不揮発性ＲＡＭ制御回路１１１は、スキャン制御回路１２１（プログラム格納手段制御手段）と、外部不揮発性ＲＡＭ切替回路１２２（プログラム読み出し選択手段）と、アクセス制御回路１２３と、スキャンチェーン切替回路１２４とを備えている。
【００７１】
また、前記データ処理回路１１４は、多数のデータ保持素子（フリップフロップ）で構成されており、従来技術で説明した通り各データ保持素子同士はチェーン状に接続されている。なお、本実施形態１ではスキャンチェーン１６１のみを記載し、その途中に接続されている各データ保持素子の記載は省略している。
【００７２】
前記外部不揮発性ＲＡＭ制御回路１１１は、データバス１５１とアドレスバス１５２とを介して外部不揮発性ＲＡＭ１０３（プログラム格納手段）に接続され、前記外部ワークＲＡＭ制御回路１１２は、データバス１５４を介して外部ワークＲＡＭ１０２に接続されている。
【００７３】
前記外部不揮発性ＲＡＭ切替回路１２２は、外部不揮発性ＲＡＭ１０３からのデータバス１５１と内部バス１５３（内部データ転送手段）とを接続し、内蔵マイコン１１３や外部ワークＲＡＭ制御回路１１２からのアクセスを可能としている。
【００７４】
次に、図１に基づいて本発明の動作について説明する。システムＬＳＩ１０１は、電源投入時にリセット解除することで動作を開始する。従来の技術では、リセット解除後に供給されている動作クロックにて初期化動作を開始するが、本実施形態１においては、初期設定制御信号を与えてスキャン用外部クロックを供給している。この時点では内蔵マイコン１１３は停止させたままである。
【００７５】
前記アクセス制御回路１２３は、初期設定制御信号により動作を開始する。そして、所定の方法（外部から指定したり、内部で固定値として持っておく等）で与えられたアドレスをアドレスバス１５２を介して外部不揮発性ＲＡＭ１０３に出力する。外部不揮発性ＲＡＭ１０３は、そのアドレスに対応するデータをデータバス１５１を介してシステムＬＳＩ１０１に返す。そして、外部不揮発性ＲＡＭ切替回路１２２は、前記初期設定制御信号に従い、データバス１５１からのデータをパラレル／シリアル変換回路を経由してスキャンチェーン切替回路１２４に出力する。
【００７６】
なお、パラレル／シリアル変換回路は、バス幅やスキャンチェーン本数に応じて実装するものであり、本発明の本質には直接関係がないため搭載していなくても構わない。
【００７７】
また、前記スキャンチェーン切替回路１２４は、初期設定のデータとスキャンテスト用のデータとを切り替えるものであり、前記初期設定制御信号に従い、スキャンチェーン１６１には前記データバス１５１からのデータが出力される。
【００７８】
スキャン用外部クロックに次の動作クロックを与えると、アクセス制御回路１２３から次のアドレスが出力される。このアドレスとしては前のアドレスのインクリメント値（前値に“１”を加えた値）がふさわしいが特に問わない。これに従い、次のデータが外部不揮発性ＲＡＭ１０３から出力され、先ほどと同様にスキャンチェーン１６１に出力される。このとき、スキャンチェーンの始点１８１に入力されたデータがスキャンチェーン１６１上のデータ保持素子にシフトしながら設定されていく。
【００７９】
このようにして、スキャン用外部クロックが入力されるごとに外部不揮発性ＲＡＭ１０３のデータがデータ処理回路１１４内のデータ保持素子にシフトしながら保持され、必要なデータ保持素子のデータ設定が完了した時点で終了する。その後、初期設定制御信号を解除して内蔵マイコン１１３を起動させる。
【００８０】
なお、この時点で既にデータ処理回路の初期化が終了しているので、データ処理を開始させておくこともできる。内蔵マイコン１１３は、従来の技術でも説明した通り、外部不揮発性ＲＡＭ１０３からフェッチを行い、プログラム本体を外部不揮発性ＲＡＭ１０３から外部ワークＲＡＭ１０２に転送した後、外部ワークＲＡＭ１０２内のプログラム本体の実行処理を行う。
【００８１】
以上説明したように、本発明によれば、入力されたデータが外部ワークＲＡＭ１０２や内蔵マイコン１１３を経由することなく、外部不揮発性ＲＡＭ１０３から直接各データ保持素子に設定することができ、その設定が完了し次第、データ処理を開始することができる。このため、システムＬＳＩ全体の初期化にかかる時間や、特にデータ処理を開始するまでの時間を短縮することができる。
【００８２】
一方、前記外部不揮発性ＲＡＭ１０３とスキャンチェーン１６１とを接続することで、電源オン時の初期設定だけでなく、電源オフ時の各データ保持素子の値を外部不揮発性ＲＡＭ１０３に記録することもできる。この構成と動作を図１に基づいて説明する。
【００８３】
前記スキャンチェーン１６１の終点１９１は、前記スキャン制御回路１２１を介して外部不揮発性ＲＡＭ切替回路１２２に接続されている。ここで、初期設定制御信号にて制御すると、このデータをデータバス１５１に出力することができる。なお、途中に介するシリアル／パラレル変換回路は、上述したパラレル／シリアル変換回路と同様でなくてもよい。
【００８４】
そして、スキャンシフトを使って各データ保持素子の値をスキャンチェーン１６１の終点１９１を介してスキャン制御回路１２１に出力する。スキャン制御回路１２１は、電源オフ時のデータ保持の場合には外部不揮発性ＲＡＭ切替回路１２２を介して外部不揮発性ＲＡＭ１０３にそのデータを出力する。このデータを外部不揮発性ＲＡＭ１０３に保持し、次に電源をオンにしてスキャンチェーン１６１上の各データ保持素子に設定し直すことにより、電源オフ時の状態をそのまま再現することができる。
【００８５】
一般的に、システムＬＳＩ１０１のスキャン回路では、システムＬＳＩ１０１の検査時間を短縮するために複数本のスキャンチェーンを有しており、各チェーンに対して同時にスキャンシフトが行われている。通常のスキャンチェーンは、ＬＳＩ上のデータ保持素子の配置場所やそのデータ保持素子に与えられる通常動作用のクロックの種類等を考慮して、そのチューンの種類や順番を決定している。スキャン回路をＬＳＩ検査にのみ使用するのであれば、このような構成であっても問題ない。
【００８６】
しかし、本発明では、スキャン回路を初期設定にも使用することを想定している。その場合、初期設定の値をプログラム開発の容易性を考慮して、データ保持素子の設定グループごとにスキャンチェーンを接続することが有効である。この構成を図６に基づいて説明する。
【００８７】
システムＬＳＩ６０１には、外部不揮発性ＲＡＭ６０２が接続されている。なお、接続に用いるバス幅は、図６では一例として８ビットとしているが、これに限定されないことは言うまでもない。
【００８８】
前記システムＬＳＩ６０１の内部には、外部不揮発性ＲＡＭ切替回路６１１と、スキャンチェーン切替回路６１２と、データ保持素子群６１３，６１４と、内蔵マイコン６１５とを備えている。
【００８９】
また、設定に必要なデータ保持素子群６１３，６１４は、内蔵マイコン６１５からレジスタアクセスバス６５１を介して接続され、該内蔵マイコン６１５からアクセス可能な回路を構成している。
【００９０】
前記外部不揮発性ＲＡＭ６０２は、外部不揮発性ＲＡＭ制御回路６１１及びスキャンチェーン切替回路６１２を介して、データ保持素子群６１３に接続されている。
【００９１】
前記データ保持素子群６１３は、スキャンチェーン群（この例では８本）の各々の先頭となるデータ保持素子であり、外部不揮発性ＲＡＭ６０２から入力された初期設定値は、最初に該データ保持素子群６１３に保持される。
【００９２】
前記データ保持素子群６１３，６１４、及びその後段のデータ保持素子群（図示しない）はスキャンチェーンとして接続されており、データ保持素子群６１３に格納されたデータがスキャンクロックに応じてスキャンシフトされていく。
【００９３】
ここで、このスキャンチェーン群のビット定義（ビット０、ビット１等）を内蔵マイコン６１５からアクセスする場合のビット定義と一致させることにより、内蔵マイコン６１５が初期設定を行うプログラムと同様の形で外部不揮発性ＲＡＭ６０２に保持させておくことができる。これにより、プログラムの透過性を良好にすることができる。
【００９４】
ところで、システムＬＳＩ６０１の各外部端子はＬＳＩ内部の状態や動作で決定され、通常、リセット中やリセット解除後の初期設定の段階では、システムＬＳＩ６０１の外部端子はそのシステムＬＳＩ６０１を実装している基板上の回路に悪影響を与えないようにされているか、又は基板上でその期間中の動作を保証するようにしている。
【００９５】
スキャンチェーンを使った初期設定や状態保持動作では、スキャンシフト中に想定外の状態になることがある。このとき、内部は動作していないので問題ないが、システムＬＳＩ外部の基板上の回路には悪影響を与えるおそれがある。具体的には、システムＬＳＩの外部端子の出力が想定していないタイミングで想定していない論理値になった場合、周辺の回路が勝手に動作してしまったり、機器の表示が勝手になされる等の不具合が発生するおそれがある。
【００９６】
本発明では、初期設定制御信号を入力することにより初期設定や状態保持動作を行っているので、この信号を用いてシステムＬＳＩの各外部端子の状態を固定することにより、外部への悪影響を回避することができる。
【００９７】
また、システムＬＳＩの開発段階において、システムＬＳＩ内部の動作や状態を確認したい場合がある。その観測方法として、観測ポイントの信号を直接端子に出力する手段や内蔵マイコンから読み出す手段を予めシステムＬＳＩ内に持たせておくことが考えられる。しかしながら、前者では観測ポイントが端子数の制限から限定され、後者ではそのための回路規模が増大するといった欠点があった。
【００９８】
本発明では、上述したような欠点がなく、少ない回路追加で内部の状態を観測する機能を提供することができる。その動作原理を図７に基づいて説明する。
【００９９】
システムＬＳＩ７０１には、外部不揮発性ＲＡＭ７０２が接続されている。そして、システムＬＳＩ７０１内部には、スキャン制御回路７１１と、データ保持素子７１２〜７１４と、外部不揮発性ＲＡＭ制御回路７１５とを備えている。
【０１００】
前記スキャン制御回路７１１とデータ保持素子７１２〜７１４とは、スキャンチェーン７２１によりリング状に接続されている。この構成は図１に基づいて説明した回路構成と同様である。従って、専用回路を必要とせずに回路内部の状態を観測する機能を実現することができる。
【０１０１】
前記データ保持素子７１２〜７１４は、動作クロックを停止するとその時の値を保持するものである。従って、観測したいタイミングで動作クロックを停止することにより、内部状態を保持することができる。次にスキャンシフト動作させることにより、上述した電源オフ時の各データ保持素子の値を記録する場合と同様に、外部不揮発性ＲＡＭ７０２にデータを出力することができる。
【０１０２】
ここで、スキャン制御回路７１１によりスキャンシフトしてスキャンチェーン７２１の終点７９１からのシフトデータを外部不揮発性ＲＡＭ７０２に出力する一方、スキャンチェーン７２１の始点７８１に対して同じデータを与えることにより、このデータは再度内部回路に戻る。
【０１０３】
そして、例えば図７に示す回路においては、３回スキャンシフトさせることにより、３つのデータ保持素子７１２〜７１４のデータを外部不揮発性ＲＡＭ７０２に出力しながら、内部のデータ保持素子７１２〜７１４のデータは元に戻ることになる。
【０１０４】
ここで、停止していた動作クロックを再び与えることにより、先ほど停止した状態から再び動作させることができるようになる。外部不揮発性ＲＡＭ７０２に記録しておけば、その値は内蔵マイコン等を使って任意に取り出すことができる。
【０１０５】
このように、動作クロック及びスキャン用外部クロックを制御することにより、任意のタイミングで内部のデータ保持素子の値を観測することができる。
【０１０６】
次に、初期化効率を高めてさらに初期化の時間を短縮する発明について、図１及び図８に基づいて説明する。
【０１０７】
システムＬＳＩの初期化にかかる時間は初期化の手順や量によって決まるが、初期設定に関わる各部品やブロックの動作速度による影響も大きい。すなわち、図１において、初期化に必要なプログラムや初期設定値を読み出す外部不揮発性ＲＡＭ１０３と外部不揮発性ＲＡＭ制御回路１１１、外部ワークＲＡＭ１０２と外部ワークＲＡＭ制御回路１１２、内蔵マイコン１１３、スキャン制御回路１２１やスキャンチェーン１６１等の動作速度である。これらの動作速度は、部品の選定、システムＬＳＩとしての総合必要性能、回路の制約等、様々な条件によって決まる。それらは必ずしも初期化に最適な動作速度とならない場合も多い。
【０１０８】
例えば、スキャンチェーン１６１の速度に対して外部不揮発性ＲＡＭ１０３の動作が遅く、実際に初期設定すべきデータが読み出されてくるまでスキャンチェーン１６１が待たされる場合が考えられる。スキャンチェーンの本数に対してデータバス１５１の本数が多い場合には、それは特に顕著になる。
【０１０９】
また、内蔵マイコン１１３は様々な処理をしながら外部不揮発性ＲＡＭ１０３や外部ワークＲＡＭ１０２にアクセスしているので、両ＲＡＭ１０２，１０３を絶え間なく使用しているわけではない。このように、各機能や部品はその性能を完全に使い切っているわけではなく、実際には空き時間が発生していると考えられる。
【０１１０】
本発明においても、初期設定制御信号を入力して外部不揮発性ＲＡＭ１０３からデータ処理回路１１４への初期設定中、内蔵マイコン１１３や外部ワークＲＡＭ１０２は動作していない。また、動作速度によっては、データ処理回路１１４への設定のため、外部不揮発性ＲＡＭ１０３からのデータ読み出しが待たされる可能性もある。
【０１１１】
そこで、外部不揮発性ＲＡＭ制御回路１１１に対して、図８のように初期設定制御回路８１２を追加する。本回路は、初期設定制御信号が入力されているときに有効となる。
【０１１２】
前記外部不揮発性ＲＡＭ切替回路８１３は、通常、外部不揮発性ＲＡＭ８１１（図１における１０３）からのデータバス８５１と内部バス８５２（図１における内部バス１５３）を接続し、内蔵マイコン（図１における１１３）や外部ワークＲＡＭ制御回路（図１における１１２）からのアクセスを可能としている。
【０１１３】
初期設定制御信号が入力されてスキャンチェーン８５３へ出力する時には、初期設定制御回路８１２の動作により、外部不揮発性ＲＡＭ切替回路８１３が切り替えられ、データバス８５１の信号はスキャンチェーン切替回路８１４を介してスキャンチェーン８５３へ出力される。
【０１１４】
なお、パラレル／シリアル変換回路は、データバス８５１のバス幅とスキャンチェーン８５３の本数により必要に応じて実装するが、本発明の本質ではないので説明を省略する。
【０１１５】
このような構成により、外部不揮発性ＲＡＭ１０３は、スキャンチェーン８５３へ初期設定データを出力している間に、内部バス１５３を介して外部ワークＲＡＭ１０２や内蔵マイコン１１３へのデータ出力が可能になり、システムＬＳＩ１０１の初期化にかかる時間を短縮することができる。
【０１１６】
＜実施形態２＞
図９に本発明の実施形態２に係るシステムＬＳＩの構成を示す。図９に示すように、システムＬＳＩ９０１の内部には、外部不揮発性ＲＡＭ制御回路９１１と、外部ワークＲＡＭ制御回路９１２と、内蔵マイコン９１３と、データ処理回路９１４とを備えている。
【０１１７】
前記外部不揮発性ＲＡＭ制御回路９１１は、内部ＲＡＭ制御回路９２１と、外部不揮発性ＲＡＭ切替回路９２２と、アクセス制御回路９２３とを備えている。
【０１１８】
前記データ処理回路９１４は、内部に初期設定データや処理過程での一時的なデータを保持するための内部ＲＡＭ９３１〜９３３を備えている。
【０１１９】
前記外部不揮発性ＲＡＭ制御回路９１１は、データバス９５１とアドレスバス９５２とを介して前記外部不揮発性ＲＡＭ９０３に接続されている。
【０１２０】
なお、外部ワークＲＡＭ９０２と、外部ワークＲＡＭ制御回路９１２と、内蔵マイコン９１３との接続は、前記実施形態１と同様であるためその説明を省略する。
【０１２１】
次に、図９に基づいて本発明の動作について説明する。システムＬＳＩ９０１は、電源投入時にリセット解除することで動作を開始する。そして、リセット解除後に初期設定制御信号を与えてアクセス制御回路９２３を動作させる。このとき、内蔵マイコン９１３は停止したままである。
【０１２２】
前記アクセス制御回路９２３は、アドレスバス９５２を介して外部不揮発性ＲＡＭ９０３へアドレスを出力する一方で、対応すべき内部ＲＡＭ９３１〜９３３のアドレスをアドレスバス９６１を介して内部ＲＡＭ制御回路９２１に送る。
【０１２３】
そして、前記外部不揮発性ＲＡＭ９０３は、与えられたアドレスに対応するデータをデータバス９５１及びバス９６２を介して内部ＲＡＭ制御回路９２１に送る。
【０１２４】
前記内部ＲＡＭ制御回路９２１は、アドレスバス９６１からのアドレスに従い、対象の内部ＲＡＭ９３１〜９３３を特定して対応するイネーブル信号９６３〜９６５のうち何れか一つに出力しながら、その内部ＲＡＭ９３１〜９３３に書き込むべきアドレスをアドレスバス９６６に出力する。
【０１２５】
ここで、初期設定制御信号が入力されている場合には、バス９６２のデータがバス９６７に出力され、イネーブル信号９６３〜９６５で選択された内部ＲＡＭ９３１〜９３３に書き込まれる。これにより、アドレス制御回路９２３の制御に基づいて内部ＲＡＭ９３１〜９３３にデータが設定されていく。
【０１２６】
内部ＲＡＭ９３１〜９３３の設定が完了した時点で、初期設定制御信号を解放して内部動作クロックを供給する。これにより、内蔵マイコン９１３が動作を開始して、上述した実施形態１と同様にプログラムを実行する。
【０１２７】
本実施形態２においても、前記実施形態１におけるスキャン回路による初期設定と同様、システムＬＳＩ全体の初期化のかかる時間や、特にデータ処理を開始するまでに時間を短縮することができる。
【０１２８】
また、図９におけるデータ処理回路９１４内は、図３に基づいて説明した内部ＲＡＭの直接アクセス方式の回路を使うことにより、回路を大きく追加することなく本発明による機能を実現することができる。
【０１２９】
なお、前記実施形態１における初期設定制御回路による初期化時間短縮について、内部ＲＡＭの初期設定についても同様に構成することができる。その原理や動作については、スキャン回路を用いたものと同様であるため、ここでは説明を省略する。
【０１３０】
＜実施形態３＞
図１０に本発明の実施形態３に係るシステムＬＳＩの構成を示す。図１０に示すように、システムＬＳＩ１００１の内部には、外部不揮発性ＲＡＭ制御回路１０１１と、内蔵マイコン１０１２と、データ処理回路１０１３とを備えている。
【０１３１】
前記外部不揮発性ＲＡＭ制御回路１０１１は、スキャン制御回路１０２１と、外部不揮発性ＲＡＭ切替回路１０２２と、アドレス変換回路１０２３と、スキャンチェーン切替回路１０２４とを備えている。
【０１３２】
前記スキャンチェーン１０５３には、図示しない複数のデータ保持素子が配置されている。なお、前記外部不揮発性ＲＡＭ制御回路１０１１及び外部不揮発性ＲＡＭ切替回路１０２２は、前記実施形態１又は２で説明したように外部不揮発性ＲＡＭとのアクセス機能を有するが、本実施形態３における動作には影響しないので、その機能については説明を省略する。
【０１３３】
次に、図１０に基づいて本発明の動作について説明する。前記内蔵マイコン１０１２は、任意のタイミングでスキャンチェーン１０５３上の任意のデータ保持素子へのアクセスを行うため、アドレスバス１０５２を介して対応するアドレスをアドレス変換回路１０２３に送る。
【０１３４】
前記アドレス変換回路１０２３は、受け取ったアドレスに応じて、対象となるデータ保持素子のスキャンチェーン１０５３とその場所（段数）を特定し、その情報をスキャン制御回路１０２１に渡す。
【０１３５】
前記スキャン制御回路１０２１は、この段階でデータ処理回路への動作クロック供給を停止し、各データ保持素子のＮＴ端子をオン状態にすることによりスキャンモードに切り替えた上でスキャンクロックを供給する。
【０１３６】
ここで、内蔵マイコン１０１２からのアクセスが読み出し（リード）の場合には、対象となるデータ保持素子のデータがスキャンチェーン１０５３の終点１０９１から出力されるまでスキャンクロックの供給を続ける。このとき、スキャンチェーン１０５３の終点１０９１から出力されるデータを始点１０８１に供給し直すことによって、読み出し時のデータ保持素子の状態を再現することができる。
【０１３７】
また、対象となるデータ保持素子のデータが出力されたところで、外部不揮発性ＲＡＭ切替回路１０２２を介してバス１０５１にその値を出力することで、内蔵マイコン１０１２は所望のデータを読み出すことができる。
【０１３８】
なお、その後もスキャンチェーンの段数分だけスキャンクロックを供給し続けることにより、データ処理回路１０１３内の各データ保持素子を元の値に戻すことができる。
【０１３９】
一方、内蔵マイコン１０１２からのアクセスが書き込み（ライト）の場合には、バス１０５１から受け取った書き込むべきデータは、外部不揮発性ＲＡＭ切替回路１０２２を介してスキャンチェーン切替回路１０２４に送られる。
【０１４０】
そして、スキャン制御回路１０２１は、対象となるデータ保持素子の値がスキャンチェーン１０５３の終点１０９１から出力されてくるまでスキャンクロックを供給し続ける。このとき、スキャンチェーン１０５３の終点１０９１から出力されてくるデータを始点１０８１に供給し直すことは、上述した読み出しの場合と同様である。
【０１４１】
また、対象のデータ保持素子のデータが出力されたところで、スキャンチェーン切替回路１０２４を切り替え、バス１０５１からのデータに入れ替える。その後はスキャンパス切替回路１０２４を元に戻し、スキャンシフトをスキャンチェーンの段数分だけ続けることにより、対象のデータ保持素子のみが新たなデータに書き替えられ、その他のデータ保持素子はそのままの状態を保つことができる。
【産業上の利用可能性】
【０１４２】
本発明は、システムＬＳＩを内蔵するデジタル機器に対し、これらの機器の電源オン時に実際に起動して動作を始めるまでの時間を短縮することができ、さらに、電源オフ時の状態を保持しておくことで電源オン時に電源オフ時の状態を容易に再現することができるという実用性の高い効果が得られることから、きわめて有用で産業上の利用可能性は高い。
【図面の簡単な説明】
【０１４３】
【図１】本発明の実施形態１におけるスキャン回路を初期動作に使用する構成例である。
【図２】従来例１におけるスキャン回路構成例である。
【図３】従来例２における直接アクセス方式のＲＡＭ検査回路の構成例である。
【図４】従来例３におけるシステムＬＳＩの初期化に関する回路の構成例である。
【図５】従来例３におけるシステムＬＳＩの初期化に関する手順の例である。
【図６】本発明の実施形態１におけるバスと内部スキャンチェーンのビット定義を統一する回路の構成例である。
【図７】本発明の実施形態１におけるスキャンチェーンを使った内部状態観測機能の原理を示す図である。
【図８】本発明の実施形態１におけるシステムＬＳＩの初期化に関する回路の構成例である。
【図９】本発明の実施形態２における初期設定制御回路を持つ外部不揮発性ＲＡＭ制御回路の構成例である。
【図１０】本発明の実施形態３における内蔵マイコンからスキャン回路を使ってデータ処理回路にアクセスできるシステムＬＳＩの構成例である。
【符号の説明】
【０１４４】
１０１    システムＬＳＩ（集積回路）
１０２    外部ワークＲＡＭ
１０３    外部不揮発性ＲＡＭ（プログラム格納手段）
１１１    外部不揮発性ＲＡＭ制御回路（プログラム読み込み手段）
１１２    外部ワークＲＡＭ制御回路（プログラム演算処理手段）
１１３    内蔵マイコン（データ処理手段）
１１４    データ処理回路（内部検査手段）
１２１    スキャン制御回路（プログラム格納手段制御手段）
１２２    外部不揮発性ＲＡＭ切替回路（プログラム読み出し選択手段）
１２３    アクセス制御回路
１２４    スキャンチェーン切替回路
１５３    内部バス（内部データ転送手段）
１６１    スキャンチェーン
６０１，７０１，９０１，１００１  システムＬＳＩ
８０２  外部ワークＲＡＭ
６０２，７０２，９０３  外部不揮発性ＲＡＭ
６１１，７１５，８１１，９１１，１０１１  外部不揮発性ＲＡＭ制御回路
９１２  外部ワークＲＡＭ制御回路
６１５，９１３，１０１２  内蔵マイコン
９１４，１０１３  データ処理回路
７１１，１０２１  スキャン制御回路
８１３，９２２，１０２２  外部不揮発性ＲＡＭ切替回路
９２３  アクセス制御回路
６１２，８１４，１０２４  スキャンチェーン切替回路
８５３，１０５３  スキャンチェーン
７１２，７１３，７１４  データ保持素子（フリップフロップ）
９３１，９３２，９３３  内部ＲＡＭ
６１３，６１４  データ保持素子群
８１２  初期設定制御回路
９２１  内部ＲＡＭ制御回路
１０２３  アドレス変換回路
【図１】
2006023257.tif 000003
【図２】
2006023257.tif 000004
【図３】
2006023257.tif 000005
【図４】
2006023257.tif 000006
【図５】
2006023257.tif 000007
【図６】
2006023257.tif 000008
【図７】
2006023257.tif 000009
【図８】
2006023257.tif 000010
【図９】
2006023257.tif 000011
【図１０】
2006023257.tif 000012