(57)【特許請求の範囲】
【請求項１】
通常動作モードと、内部論理回路をスキャンテストするテストモードとを有する半導体集積回路であって、
前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、
論理レベルにより前記通常動作モードか前記テストモードを選択的に指定するモード信号に応じて、前記通常動作モードから前記テストモードに遷移するとき前記複数のフリップフロップをリセットするリセット手段と、
を備えたことを特徴とする半導体集積回路。
【請求項２】
前記リセット手段は、前記モード信号に応じてさらに前記テストモードから前記通常動作モードに遷移するとき前記複数のフリップフロップをリセットする請求項１に記載の半導体集積回路。
【請求項３】
前記複数のフリップフロップに対して直列接続され、前記テストモードにおいて供給されたデータを出力すると共に、前記通常動作モードにおいて供給されたデータの出力を禁止する出力制御手段を、
さらに備えた請求項２に記載の半導体集積回路。
【請求項４】
前記複数のフリップフロップに接続された記憶手段と、
前記モード信号に応じて、前記テストモードでは前記記憶手段へのアクセスを禁止するアクセス制御手段と、
をさらに備えた請求項３に記載の半導体集積回路。
【請求項５】
通常動作モードと、内部論理回路をスキャンテストするテストモードとを有する半導体集積回路であって、
前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、
論理レベルにより前記通常動作モードか前記テストモードを選択的に指定するモード信号に応じて、前記テストモードから前記通常動作モードに遷移するとき前記複数のフリップフロップをリセットするリセット手段と、
を備えたことを特徴とする半導体集積回路。
【請求項６】
前記モード信号の前記論理レベルの遷移タイミングを検出する遷移検出手段をさらに備え、
前記リセット手段は、前記遷移検出手段が前記遷移タイミングを検出したときに前記複数のフリップフロップをリセットする請求項１又は請求項５に記載の半導体集積回路。
【請求項７】
通常動作モードと内部論理回路をスキャンテストするテストモードとを有する半導体集積回路であって、
前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、
前記複数のフリップフロップに対して直列接続され、前記テストモードにおいて供給されたデータを出力すると共に、前記通常動作モードにおいて供給されたデータの出力を禁止する出力制御手段と、
を備えたことを特徴とする半導体集積回路。
【請求項８】
通常動作モードと、内部論理回路をスキャンテストするテストモードとを有する半導体集積回路であって、
前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、
前記複数のフリップフロップに接続された記憶手段と、
論理レベルにより前記通常動作モードか前記テストモードを選択的に指定するモード信号に応じて、前記テストモードでは前記記憶手段へのアクセスを禁止するアクセス制御手段と、
を備えたことを特徴とする半導体集積回路。
【請求項９】
内部論理回路と前記内部回路をスキャンテストするための複数のフリップフロップとを備え、通常動作モードと前記スキャンテストを実行するテストモードとを有する半導体集積回路の試験方法であって、
前記通常動作モードから前記テストモードに遷移するとき前記複数のフリップフロップをリセットすることを特徴とする半導体集積回路の試験方法。
【請求項１０】
内部論理回路と前記内部回路をスキャンテストするための複数のフリップフロップとを備え、通常動作モードと前記スキャンテストを実行するテストモードとを有する半導体集積回路の試験方法であって、
前記テストモードから前記通常動作モードに遷移するとき前記複数のフリップフロップをリセットすることを特徴とする半導体集積回路の試験方法。
【請求項１１】
内部論理回路と前記内部回路をスキャンテストするための複数のフリップフロップと、前記複数のフリップフロップに接続された記憶手段とを備え、通常動作モードと前記スキャンテストを実行するテストモードとを有する半導体集積回路の試験方法であって、
前記テストモードにおいては前記記憶手段へのアクセスを禁止することを特徴とする半導体集積回路の試験方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＬＳＩなどの半導体集積回路であって、特にスキャン回路が設けられている半導体集積回路、及びその試験方法に関するものである。
【０００２】
【従来の技術】
従来より、ＬＳＩの製造テスト手法としてスキャンテストが知られている。
図４は、スキャンテストを実行可能とする半導体集積回路（ＬＳＩ）のモデルである。このＬＳＩには、内部回路６０として各種論理回路が構築され、例えば入力端子ｉｎ１〜ｉｎ４からの入力データについて、内部回路６０で演算が行われる。そしてその演算結果が出力端子ｏｕｔ１〜ｏｕｔ４から出力される。
このようなＬＳＩにおいて、スキャンテストを可能とするために、図示するようにスキャンフリップフロップ６１〜６８が接続される。このスキャンＦＦ６１〜６８は、例えばマルチプレクサ機能を有するフリップフロップであり、スキャン入力端子（scan in）からスキャン出力端子（scan out）までの間、所要数のスキャンフリップフロップがシリアル接続される。このシリアル接続はスキャンチェーンと呼ばれる。
【０００３】
そしてスキャン入力端子（scan in）からスキャンデータパターンを入力することで、内部回路６０に対する入力としてスキャンフリップフロップ６１〜６４に任意の値をセットする。セットされた値は内部回路６０で処理され、その結果データがスキャンフリップフロップ６５〜６８に出力される。その後、スキャンチェーンをシフトさせ、スキャン出力端子（scan out）から結果データを観測する。このような手法により、ＬＳＩの不良個所等の検査を行う。
この図４は非常に簡略化したスキャンテストのモデルであるが、例えば下記文献には、各種スキャンテスト手法が記載されている。
【０００４】
【特許文献１】
特開昭６３−１３４９７０号公報
【特許文献２】
特開平４−７２５８３号公報
【特許文献３】
特開平５−１７２８９７号公報
【特許文献４】
特開平４−２８７５１０号公報
【０００５】
【発明が解決しようとする課題】
ところが、上記スキャンチェーンのようにスキャン回路を挿入したＬＳＩでは、動作途中のＬＳＩ内部のレジスタの値を外部に出力する事、及び外部からレジスタにデータを入力することができるため、次のような不都合が起きる場合がある。
【０００６】
例えば、暗号などのセキュリティデータを扱うＬＳＩを考えると、データが送受信されレジスタにロードされているときにスキャン動作を行なうと、スキャンチェーンを経由してセキュリティデータが外部に出力される可能性がある。即ち、スキャンチェーンの構成を利用することで、セキュリティデータが抜き出されて知られてしまうおそれがある。
また、同じく受信等に係るセキュリティデータを内部のＲＡＭに書き込んでいるときにスキャン動作を行うことで、そのセキュリティデータがスキャンチェーンを経由して外部に出力できる可能性もある。
さらには、通常モードにおいて何らかの手法でシフトイネーブルを制御し、スキャンチェーンシフト動作を実行させて、データを取り出すおそれもある。
また、スキャンチェーンを使ってデータ入力が可能であるため、スキャンチェーンを介して内部のレジスタやＲＡＭにデータを書き込むことで、暗号などのデータをすり替え、ＬＳＩを不正に動作させることも無いとは言えない。いわゆるなりすましである。
【０００７】
つまり、特に暗号などのセキュリティデータを扱うＬＳＩにおいては、スキャンチェーンを備えてスキャンテストを可能とすることは、セキュリティデータの不正な読み出しや暗号解読、或いはデータ改竄によるなりすましなどが行われてしまう危険性をはらむものとなる。
その一方で、スキャンテスト手法を用いないと、品質の高いＬＳＩテストが非常に困難になり、製造上問題である。
【０００８】
【課題を解決するための手段】
本発明はこのような問題に鑑みて、ＬＳＩ内部に格納された、セキュリティデータの不正な読み出しや、書き換えを防止しつつ、スキャンテストが可能な半導体集積回路を提供することを目的とする。
【０００９】
即ち本発明の半導体集積回路は、通常動作モードと、内部論理回路をスキャンテストするテストモードとを有する半導体集積回路である。そして前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、論理レベルにより前記通常動作モードか前記テストモードを選択的に指定するモード信号に応じて、前記通常動作モードから前記テストモードに遷移するとき前記複数のフリップフロップをリセットするリセット手段とを備える。
また、前記リセット手段は、前記モード信号に応じてさらに前記テストモードから前記通常動作モードに遷移するとき前記複数のフリップフロップをリセットする。
また、前記複数のフリップフロップに対して直列接続され、前記テストモードにおいて供給されたデータを出力すると共に、前記通常動作モードにおいて供給されたデータの出力を禁止する出力制御手段を、さらに備える。
また、前記複数のフリップフロップに接続された記憶手段と、前記モード信号に応じて、前記テストモードでは前記記憶手段へのアクセスを禁止するアクセス制御手段とをさらに備える。
また、前記モード信号の前記論理レベルの遷移タイミングを検出する遷移検出手段をさらに備え、前記リセット手段は、前記遷移検出手段が前記遷移タイミングを検出したときに前記複数のフリップフロップをリセットする。
【００１０】
本発明の半導体集積回路は、通常動作モードと、内部論理回路をスキャンテストするテストモードとを有する半導体集積回路であって、前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、論理レベルにより前記通常動作モードか前記テストモードを選択的に指定するモード信号に応じて、前記テストモードから前記通常動作モードに遷移するとき前記複数のフリップフロップをリセットするリセット手段とを備える。
また、前記モード信号の前記論理レベルの遷移タイミングを検出する遷移検出手段をさらに備え、前記リセット手段は、前記遷移検出手段が前記遷移タイミングを検出したときに前記複数のフリップフロップをリセットする。
【００１１】
本発明の半導体集積回路は、通常動作モードと内部論理回路をスキャンテストするテストモードとを有する半導体集積回路であって、前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、前記複数のフリップフロップに対して直列接続され、前記テストモードにおいて供給されたデータを出力すると共に、前記通常動作モードにおいて供給されたデータの出力を禁止する出力制御手段とを備える。
【００１２】
本発明の半導体集積回路は、通常動作モードと、内部論理回路をスキャンテストするテストモードとを有する半導体集積回路であって、前記内部論理回路に対するスキャンテストを実行するように配された複数のフリップフロップと、前記複数のフリップフロップに接続された記憶手段と、論理レベルにより前記通常動作モードか前記テストモードを選択的に指定するモード信号に応じて、前記テストモードでは前記記憶手段へのアクセスを禁止するアクセス制御手段とを備える。
【００１３】
本発明の試験方法は、内部論理回路と前記内部回路をスキャンテストするための複数のフリップフロップとを備え、通常動作モードと前記スキャンテストを実行するテストモードとを有する半導体集積回路の試験方法であって、前記通常動作モードから前記テストモードに遷移するとき前記複数のフリップフロップをリセットすることを特徴とする。
また本発明の試験方法は、前記テストモードから前記通常動作モードに遷移するとき前記複数のフリップフロップをリセットすることを特徴とする。
また本発明の試験方法は、内部論理回路と前記内部回路をスキャンテストするための複数のフリップフロップと、前記複数のフリップフロップに接続された記憶手段とを備え、通常動作モードと前記スキャンテストを実行するテストモードとを有する半導体集積回路の試験方法であって、前記テストモードにおいては前記記憶手段へのアクセスを禁止することを特徴とする。
【００１４】
以上の本発明によれば、通常動作状態とスキャン動作状態を切り替える為のモード信号により、スキャンテストが開始される際やスキャンテストが終了される際にスキャンチェーンを構成するフリップフロップがリセットされる。つまりフリップフロップに何らかのデータが残されていない状態でスキャン動作が開始され、又終了される。
また本発明によれば、スキャンテスト時に、スキャンテスト動作を使って内部の記憶手段にアクセスすることはできなくなる。
また本発明によれば、複数のフリップフロップに直列接続される出力制御手段は、スキャンテスト時にのみデータ出力動作するものとされ、通常動作時にはデータ出力、例えばスキャンチェーンによるシフトアウトはできないものとされる。
【００１５】
【発明の実施の形態】
以下、本発明の半導体集積回路の実施の形態となり、又本発明の試験方法を実行するＬＳＩ１について説明する。
図１にＬＳＩ１の要部の構成を示す。なお図１においては、図４で説明した内部回路６０に相当する回路系、即ち当該ＬＳＩ１の主たる論理回路系については図示を省略し、本発明に直接関連する部位のみを示している。
【００１６】
ＬＳＩ１には、スキャンイン端子５，スキャンアウト端子６が設けられ、このスキャンイン端子５とスキャンアウト端子６の間は、スキャンフリップフロップ４１−１・・・４１−ｎ、及びダミーフリップフロップ３２によるスキャンチェーンが形成されている。
各スキャンフリップフロップ４１−１・・・４１−ｎは、それぞれマルチプレクス機能を備えたフリップフロップであり、例えば図４に示した内部回路６０に対するスキャンフリップフロップ６１・・・６８に相当するように、図示しない内部回路に接続され、スキャンテストが可能となるように構成されている。この図１では、図４に破線で示したスキャンシフト経路のみを示しているものとなる。
そしてスキャンテスト時には、スキャンイン端子５からスキャンフリップフロップ４１−１・・・にスキャンパターンが入力される。またスキャンチェーンのシフトアウトにより、スキャンテストとして観測すべきデータがスキャンアウト端子６からシフトアウトされる。
【００１７】
また、各スキャンフリップフロップ４１−１・・・４１−ｎ及びダミーフリップフロップ３２としては、非同期リセット付のフリップフロップが使用される。
【００１８】
スキャンモード入力端子２は、スキャンモード信号が入力される。スキャンモード信号は、ＬＳＩ１を通常動作状態とスキャン動作状態を切り換える信号である。本例ではスキャンモード信号が「Ｌ」の場合は、ＬＳＩ１は通常動作状態となり、スキャンモード信号が「Ｈ」となると、ＬＳＩ１がスキャン動作状態となるものとする。
【００１９】
クロック入力端子３は、当該ＬＳＩ１のシステムクロックが入力される。本例では、システムクロックをスキャン動作時のスキャンクロックとしても使用する。つまりスキャンフリップフロップ４１−１・・・４１−ｎの動作クロックとしても、クロック入力端子３からのシステムクロックがそのままスキャンクロックとして使用される。
【００２０】
リセット入力端子４は、ＬＳＩ１を内部リセットするリセット信号が入力される。図示していない内部回路は、外部から供給されたリセット信号に応じてリセットされる。
【００２１】
この図１に示すＬＳＩ１では、構成上、次の３つの特徴を有するものとなる。▲１▼スキャンチェーンのフリップフロップに対するリセット制御
▲２▼スキャン動作時の内部記憶手段（ＲＡＭ１１）に対するアクセス禁止制御
▲３▼ダミーフリップフロップ３２による出力制御
以下、これらについて述べる。
【００２２】
＜▲１▼スキャンチェーンのフリップフロップに対するリセット制御＞
図示するようにリセット制御ブロック２０として、フリップフロップ２１，２２、ＥＸ−ＯＲゲート２３、アンドゲート２４が設けられる。
フリップフロップ２１，２２、ＥＸ−ＯＲゲート２３は、スキャンモード信号の論理レベルの遷移タイミングを検出するために設けられている。
【００２３】
フリップフロップ２１，２２はクロック入力端子３からのシステムクロックで動作する。初段のフリップフロップ２１はスキャンモード信号をラッチし、また次段のフリップフロップ２２は、フリップフロップ２１のラッチ出力をラッチする。
各フリップフロップ２１，２２のラッチ出力については、ＥＸ−ＯＲゲート２３において排他的論理和（反転出力）がとられてアンドゲート２４に供給される。アンドゲート２４の他端は、リセット入力端子４が接続され、外部リセット信号が供給されるようになされている。
そしてアンドゲート２４の論理積出力は、スキャンフリップフロップ４１−１・・・４１−ｎ、及びダミーフリップフロップ３２に対するリセット信号とされる。
【００２４】
このリセット制御ブロック２０の動作を図２で説明する。
図２（ａ）にスキャンモード信号に示す。スキャンモード信号が「Ｈ」となることで、ＬＳＩ１はスキャン動作モードとなる。
リセット制御ブロック２０においては、上記のようにフリップフロップ２１，２２が図２（ｂ）のシステムクロックにより動作してスキャンモード信号をラッチし、ＥＸ−ＯＲゲート２３を介して出力するため、スキャンモード信号の立ち上がりエッジ、及び立ち下がりエッジに対応して、図２（ｃ）のエッジ検出信号が得られる。
なお、２段構成のフリップフロップ２１，２２のラッチ出力がＥＸ−ＯＲゲート２３を介して出力される構成とすることで、出力されるエッジ検出信号（Ｌレベル）が、少なくともシステムクロックの１クロック周期以上のパルス長となるようにしている。
【００２５】
このエッジ検出信号は、アンドゲート２４を介してスキャンフリップフロップ４１−１・・・４１−ｎ及びダミーフリップフロップ３２に供給されるため、Ｌレベルのエッジ検出信号により、図２（ｅ）に示すようにスキャンモード信号の立ち上がり及び立ち下がりに応じたタイミングで、スキャンフリップフロップ４１−１・・・４１−ｎ及びダミーフリップフロップ３２はリセットされることになる。
また、リセット入力端子４から図２（ｄ）のようにリセット信号（Ｌレベル）が入力された際も、このリセット信号はアンドゲート２４を介してスキャンフリップフロップ４１−１・・・４１−ｎ及びダミーフリップフロップ３２に供給されるため、これらは外部リセット入力によっても、図２（ｅ）に示すようにリセットされる。
【００２６】
このようにスキャンフリップフロップ４１−１・・・４１−ｎ及びダミーフリップフロップ３２は、スキャンモード信号のエッジタイミング、即ち通常動作状態からスキャン動作状態に移行する際、及びスキャン動作状態を終了して通常動作状態に移行する際に、リセットされることになる。
従って、スキャン動作開始時にリセットをかけずにスキャン動作を行なったり、スキャン動作終了時にリセットがかからないままＬＳＩ１を通常動作させることはできないものとされている。
【００２７】
本例のようにスキャン回路を挿入したＬＳＩ１では、通常動作からスキャン動作に入り、スキャンチェーンを使ってフリップフロップ４１−１・・・４１−ｎのデータをシフトアウトさせることで、スキャン動作に入る直前の通常動作時のフリップフロップ４１−１・・・４１−ｎの状態が外部に出力されてしまうおそれがある。これは暗号鍵等のセキュリティデータが漏洩する可能性があることになる。
そこで本例では上記のようにスキャンモード信号の立ち上がりエッジに基づいて、スキャンモードとなった際にリセットをかけ、ＬＳＩ内部を初期化するようにすることで、通常動作時に保持されたデータをシフトアウトさせることはできないようにするものである。
【００２８】
またスキャン回路を挿入することで、スキャン動作中に外部からスキャンチェーンを経由して、フリップフロップ４１−１・・・４１−ｎにデータをロードすることができるが、そのまま通常動作状態に移行すると、ロードさせたデータを用いてＬＳＩ１に通常動作させることが可能となってしまう。これによって暗号などのセキュリティデータがすり替えられて使用される可能性もある。
そこで本例では上記のようにスキャンモード信号の立ち下がりエッジに基づいて、スキャンモードが終了される際にもリセットをかけるようにし、ＬＳＩ１内部を初期化することで、これを防止する。
【００２９】
なお、リセット信号となるエッジ検出信号は、上記のように少なくともシステムクロックの１クロック周期以上のパルス長となるようにしている。これによってスキャンフリップフロップ４１−１・・・４１−ｎのリセットが確実にかかるようにしている。
【００３０】
ところで、本例ではスキャンクロックとしてはシステムクロックをそのまま用いるようにし、リセット制御ブロック２０におけるエッジ検出でも、そのシステムクロックを用いるようにしている。これは次の理由による。
【００３１】
例えば、仮にスキャンクロックとシステムクロックを共通化しないで、スキャン動作時に使用しないクロック（例えばシステムクロック）を用いてスキャンモード信号の両エッジ検出回路（フリップフロップ２１，２２、ＥＸ−ＯＲゲート２３）を構成してしまうと、通常動作からスキャン動作に移行した後、エッジ検出回路にクロックを入力しなくてもスキャン動作を行なうことができてしまう。このため、スキャン動作開始時にリセットがかからず内部のレジスタの値を外部に出力することが可能となるおそれがある。
また逆に、通常動作時に使用しないクロック（例えばスキャンクロック）を用いてスキャンモード信号の両エッジ検出回路を構成していると、スキャン動作終了後、エッジ検出回路にクロックを入力しなくても通常動作させられる。これによって外部から任意の値をレジスタにセットし、ＬＳＩを動作させることが可能になってしまう。
このようなことを防止するため本例では、システム動作時にもスキャン動作時にも同一のクロックを使用し、そのクロック（システムクロック）を、スキャンモード信号の両エッジ検出回路に入力するようにしているものである。
【００３２】
なお、本例においてスキャンパターン作成時には、スキャンモードに入ってから、システムクロックを2クロック入力すればよい。図３（ａ）〜（ｅ）に図２と同様の波形を示すが、システムクロックを2クロック入力するとリセットが解除されるため、その後（ｔ１時点以降）、スキャン動作を行なうことができる。従前のスキャンパターン作成の際との相違点は、最初に２クロック入力することのみとなる。
【００３３】
＜▲２▼スキャン動作時の内部記憶手段に対するアクセス禁止制御＞
続いて、スキャン動作状態における内部記憶手段に対するアクセス禁止制御を説明する。
図１に示すＲＡＭ制御ブロック１０として、ＲＡＭ１１及びオアゲート１２が設けられる。ＲＡＭ１１は、例えばセキュリティデータが記憶される記憶部であるとする。このＲＡＭ１１はチップイネーブル端子１１ａに入力されるチップイネーブル信号ＸＣＥによって、アクセス可能／不能が制御される。この場合、アクティブローとする。
【００３４】
通常動作において、ＬＳＩ１の内部回路から発生されるチップイネーブル信号ＸＣＥは、オアゲート１２を介してチップイネーブル端子１１ａに供給され、ＲＡＭ１１のアクセス制御が行われる。
さらに本例では、スキャンモード信号が、オアゲート１２を介してチップイネーブル端子１１ａに供給される。
上述したように、スキャンモード信号「Ｈ」によってＬＳＩ１はスキャンモードとなる。そしてチップイネーブル端子１１ａはアクティブロー構成であるため、スキャン動作期間には、ＲＡＭ１１はアクセス禁止制御されることになる。
【００３５】
本例のようにスキャン回路を挿入したＬＳＩでは、スキャン動作時に、スキャン動作を使って内部ＲＡＭにアクセスし、内部ＲＡＭのデータをスキャンチェーンを経由して読み出したり、内部ＲＡＭに任意の値を書き込んで、通常動作させることが出来てしまう可能性がある。そこで本例では、スキャンモード信号をチップイネーブル信号として利用することで、スキャン動作中はＲＡＭ１１にアクセスできないようにするものである。
【００３６】
なお、図１ではＲＡＭ１１の例で示したが、ＬＳＩ内部のＲＯＭ、フラッシュメモリなどについても、同様の手法でスキャン動作中にアクセス可能とし、記憶されたセキュリティデータ等を保護することもできる。
【００３７】
＜▲３▼ダミーフリップフロップによる出力制御＞
続いて、ダミーフリップフロップ３２による出力制御を説明する。
図１に示すダミーフリップフロップ制御ブロック３０は、スキャンフリップフロップ４１−１・・・４１−ｎによるスキャンチェーンの出力制御手段として設けられる。
図１に示すように、ダミーフリップフロップ制御ブロック３０として、アンドゲート３１が設けられ、このアンドゲート３１の出力がダミーフリップフロップ３２のクロックとされている。
アンドゲート３１は、システムクロックとスキャンモード信号の論理積をとるようにされる。
【００３８】
スキャンモード信号が「Ｈ」となることでＬＳＩ１はスキャンモードとなるため、アンドゲート３１は、スキャン動作期間中のみに、システムクロックをダミーフリップフロップ３２に供給する機能を備えたものとなる。
つまりダミーフリップフロップ３２は、通常動作状態においてクロックが供給されず、動作しない。
ダミーフリップフロップ３２はスキャンチェーンの最終段に接続されており、通常動作時にダミーフリップフロップ３２が動作しないということは、通常動作時にスキャンチェーンを使ったシフトアウトはできないことを意味する。
【００３９】
上述したスキャンモード信号のエッジ検出によるリセット処理は、通常動作時のシフトアウトに対するセキュリティ対策ではない。
そして、通常動作時にスキャンイネーブルのみを切り替えてスキャンシフトさせられることで、スキャンチェーンを使って内部のスキャンフリップフロップ４１−１・・・４１−ｎの値を読み出せる可能性がある。
このような通常動作状態でのデータ読出を防ぐ為、本例ではスキャンチェーンの最終段に、スキャン動作時のみ動作するダミーフリップフロップ３２を接続することで、通常動作時にシフトアウト不能とするものである。
【００４０】
なお、本例ではダミーフリップフロップ３２をスキャンチェーンの最終段に１つ接続するようにしたが、ダミーフリップフロップ３２の接続位置や配設数は他にも考えられる。
すなわち例えば、セキュリティデータを扱うフリップフロップの後段に配してセキュリティデータのみを保護してもよい。
また、ダミーフリップフロップ３２の代わりにアンドゲート等を適切に配置して出力制御手段を構成し、通常動作時にデータがスキャンアウト端子６に出力されないようにしても同様の効果が得られる。
【００４１】
以上、本実施の形態の３つの特徴的な構成を説明した。このような構成によってＬＳＩ１は、スキャンチェーンを備えてスキャン動作が可能とされる一方で、スキャンチェーンを利用したデータの漏洩、外部からの不正な書換等を防止することができる。従って、ＬＳＩのセキュリティ度を下げることなくスキャン手法を用いてＬＳＩテストが出来るものとなり、セキュリティデータを扱うＬＳＩとして非常に好適である。
【００４２】
なお図１では、▲１▼スキャンチェーンのリセット制御、▲２▼スキャン動作時の内部記憶手段に対するアクセス禁止制御、▲３▼ダミーフリップフロップによる出力制御、として述べた３つの機能を備える構成を示したが、これらの機能のうち、少なくとも１つを備えることで、セキュリティ機能の高いスキャン回路付きＬＳＩとして実現できる。▲１▼▲２▼▲３▼のどの機能を搭載するかは、設計するＬＳＩの目的、回路構成やその規模、処理データ内容、要求されるセキュリティ度、などに応じて決められればよい。
また、図１のリセット制御ブロック２０、ＲＡＭ制御ブロック１０、ダミーフリップフロップ制御ブロック３０における具体的構成、例えば使用するレジスタやゲートの種類／数などは、多様に考えられることはいうまでもない。
【００４３】
【発明の効果】
以上の説明から理解されるように本発明によれば次のような効果が得られる。即ち、通常動作モードとテストモードを選択的に指定するモード信号に応じて、スキャンテストが開始される際にスキャンチェーンを構成するフリップフロップがリセットされる。従って、通常動作モードにおいてフリップフロップに保持されたデータが残されていない状態でスキャン動作が開始されるため、スキャンテスト動作を利用して通常動作モードにおけるデータを抜き出すことはできないようになる。
また、スキャンテストが終了される際にスキャンチェーンを構成するフリップフロップがリセットされるため、スキャンテスト動作時にフリップフロップにロードしたデータが残された状態で通常動作モードに移ることは防止される。従って、スキャンテスト動作を利用してデータをロードして通常動作させることも防止される。
【００４４】
また、スキャンテスト時に、スキャンテスト動作を使って内部の記憶手段にアクセスすることはできない。このため、スキャンテスト時に、スキャンテスト動作を利用してＲＡＭ等の記憶手段にアクセスし、記憶手段のデータをスキャンチェーンを経由して読み出すことや、記憶手段に任意の値を書き込んで通常動作させるということもできないものとなる。これによって暗号等のセキュリティデータの抜き出しや、書換によるなりすましなどを防止できる。
【００４５】
さらに、スキャンチェーンに直列接続され、テストモードにおいて供給されたデータを出力すると共に、通常動作モードにおいて供給されたデータの出力を禁止する出力制御手段が設けられることで、通常動作モード時はスキャンチェーンによるシフトアウトはできないようにされている。このため、通常動作モード時にスキャンイネーブルのみを変化させ、スキャンチェーンを使ったシフトアウトにより内部のフリップフロップの値を読み出すということを防止できる。
【００４６】
これらのことから、スキャンテスト動作やスキャンチェーンを利用してＬＳＩ（半導体集積回路）の内部レジスタの値が外部に漏洩されてしまうことが防止され、また、スキャンテスト動作を利用してＬＳＩ内部レジスタやメモリに値を外部から設定して通常動作させることも防止される。従って、セキュリティデータ（暗号鍵等）を扱うＬＳＩなどであっても、スキャンテスト可能に回路を構成しても問題ないものとなる。つまり、セキュリティ度を下げることなくスキャンテストが可能で製造に好適な半導体集積回路（ＬＳＩ）を実現できるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態のＬＳＩの要部の回路図である。
【図２】実施の形態のスキャンチェーンのリセット動作の説明のための波形図である。
【図３】実施の形態のスキャンパターン作成時の説明のための波形図である。
【図４】スキャン動作の説明図である。
【符号の説明】
１  ＬＳＩ、２  スキャンモード信号入力端子、３  クロック入力端子、４  リセット信号入力端子、５  スキャンイン端子、６  スキャンアウト端子、１０ＲＡＭ制御ブロック、１１  ＲＡＭ、１２  オアゲート、２０  リセット制御ブロック、２１，２２  フリップフロップ、２３  ＥＸ−ＯＲゲート、２４，３１  アンドゲート、３０  ダミーフリップフロップ制御ブロック、３２  ダミーフリップフロップ、４１−１・・・４１−ｎ  スキャンフリップフロップ
【図１】
0003671948.tif 000002
【図２】
0003671948.tif 000003
【図３】
0003671948.tif 000004
【図４】
0003671948.tif 000005