(57)【要約】【課題】スキャンチェインの機能を維持しつつ、スキャンチェイン上に挿入された不要なセルを削除することが可能な半導体集積回路の設計方法、半導体集積回路の設計装置及び半導体集積回路の設計プログラムを提供すること。【解決手段】本発明にかかる半導体集積回路の設計方法では、入力端子がスキャンチェイン上に挿入されたセルの出力端子に接続され、出力端子がオープンであるセルを削除する（ステップＳ１４）。次いで、スキャンチェイン上に挿入されたセルのスキャン出力端子以外の出力端子がオープンである場合に、スキャンチェイン上に挿入されたセルを削除する。そして、削除したスキャンチェイン上に挿入されたセルのスキャン入力端子とスキャン出力端子との間を接続する（ステップＳ１５）。【選択図】図１
2013149136.tif 000002
【特許請求の範囲】
【請求項１】
入力端子がスキャンチェイン上に挿入されたセルの出力端子に接続され、出力端子がオープンであるセルを削除し、
前記スキャンチェイン上に挿入されたセルのスキャン出力端子以外の出力端子がオープンである場合に、前記スキャンチェイン上に挿入されたセルを削除し、
削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子とスキャン出力端子との間を接続する、
半導体集積回路の設計方法。
【請求項２】
出力端子がオープンであるか否かの判断処理が未処理のセルを選択セルとして選択し、
前記選択セルの出力端子がオープンであるか否かを判断し、
前記選択セルの出力端子がオープンでない場合には、前記選択セルの入力端子の数を判断し、
前記選択セルの前記入力端子の数が２以上である場合には、前記選択セルのオープンでない出力端子が前記スキャンチェインのみに接続されているかを判断し、
前記選択セルのオープンでない前記出力端子が前記スキャンチェインのみに接続されている場合には、前記選択セルを削除することを特徴とする、
請求項１に記載の半導体集積回路の設計方法。
【請求項３】
前記選択セルの前記出力端子がオープンである場合には、前記選択セルを削除し、
削除した前記選択セルの前記入力端子に接続されるセルを、新たな選択セルとして選択し、
選択セルの出力端子がオープンであるか否かの前記判断に戻ることを特徴とする、
請求項２に記載の半導体集積回路の設計方法。
【請求項４】
削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子以外の入力端子に接続されるセルを、新たな選択セルとして選択し、
選択セルの出力端子がオープンであるか否かの前記判断に戻ることを特徴とする、
請求項２又は３に記載の半導体集積回路の設計方法。
【請求項５】
前記選択セルの前記入力端子の数が１つである場合には、
出力端子がオープンであるか否かの判断処理が未処理のセルを、新たな選択セルとして選択し直すことを特徴とする、
請求項２乃至４のいずれか一項に記載の半導体集積回路の設計方法。
【請求項６】
前記選択セルのオープンでない前記出力端子のうちで、前記スキャンチェインに接続されていないものが有る場合には、出力端子がオープンであるか否かの判断処理が未処理のセルを、選択セルとして選択し直すことを特徴とする、
請求項２乃至５のいずれか一項に記載の半導体集積回路の設計方法。
【請求項７】
前記スキャンチェイン上に挿入されたセルは、スキャンフリップフロップセルであることを特徴とする、
請求項１乃至６のいずれか一項に記載の半導体集積回路の設計方法。
【請求項８】
入力端子がスキャンチェイン上に挿入されたセルの出力端子に接続され、出力端子がオープンであるセルを削除する第１のセル削除部と、
前記スキャンチェイン上に挿入されたセルのスキャン出力端子以外の出力端子がオープンである場合に、前記スキャンチェイン上に挿入されたセルを削除し、削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子とスキャン出力端子との間を接続する第２のセル削除部と、を備える、
半導体集積回路の設計装置。
【請求項９】
出力端子がオープンであるか否かの判断処理が未処理のセルを選択セルとして選択する未処理セル選択部を更に備え、
前記第１のセル削除部は、
前記選択セルの出力端子がオープンであるか否かを判断する出力オープン判定部を備え、
前記第２のセル削除部は、
前記選択セルの出力端子がオープンでない場合に、前記選択セルの入力端子の数を判断する入力端子数判定部と、
前記選択セルの前記入力端子の数が２以上である場合に、前記選択セルのオープンでない出力端子が前記スキャンチェインのみに接続されているかを判断する出力端子検査部と、
前記選択セルのオープンでない前記出力端子が前記スキャンチェインのみに接続されている場合に、前記選択セルを削除する第２選択セル削除部と、を備えることを特徴とする、
請求項８に記載の半導体集積回路の設計装置。
【請求項１０】
前記第１のセル削除部は、  
前記選択セルの前記出力端子がオープンである場合には、前記選択セルを削除する第１選択セル削除部と、
削除した前記選択セルの前記入力端子に接続されるセルを、新たな選択セルとして選択する第１選択セル変更部と、を備え、
前記第１選択セル変更部は、前記新たな選択セルを選択したのち、処理を前記出力オープン判定部に返すことを特徴とする、
請求項９に記載の半導体集積回路の設計装置。
【請求項１１】
前記第２のセル削除部は、
削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子以外の入力端子に接続されるセルを、新たな選択セルとして選択する第２選択セル変更部を備え、
前記第２選択セル変更部は、前記新たな選択セルを選択したのち、処理を前記出力オープン判定部に返すことを特徴とする、
請求項９又は１０に記載の半導体集積回路の設計装置。
【請求項１２】
前記入力端子数判定部は、前記選択セルの前記入力端子の数が１つである場合には、処理を前記未処理セル選択部に返し、
前記未処理セル選択部は、出力端子がオープンであるか否かの判断処理が未処理のセルを、選択セルとして選択し直すことを特徴とする、
請求項９乃至１１のいずれか一項に記載の半導体集積回路の設計装置。
【請求項１３】
前記選択セルのオープンでない前記出力端子のうちで、前記スキャンチェインに接続されていないものが有る場合に、処理を前記未処理セル選択部に返す未処理セル検出部を更に備え、
前記未処理セル選択部は、出力端子がオープンであるか否かの判断処理が未処理のセルを、選択セルとして選択し直すことを特徴とする、
請求項９乃至１２のいずれか一項に記載の半導体集積回路の設計装置。
【請求項１４】
前記スキャンチェイン上に挿入されたセルは、スキャンフリップフロップセルであることを特徴とする、
請求項８乃至１３のいずれか一項に記載の半導体集積回路の設計装置。
【請求項１５】
入力端子がスキャンチェイン上に挿入されたセルの出力端子に接続され、出力端子がオープンであるセルを削除する処理と、
前記スキャンチェイン上に挿入されたセルのスキャン出力端子以外の出力端子がオープンである場合に、前記スキャンチェイン上に挿入されたセルを削除する処理と、
削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子とスキャン出力端子との間を接続する処理と、をコンピュータに実行させる、
半導体集積回路の設計プログラム。
【請求項１６】
出力端子がオープンであるか否かの判断処理が未処理のセルを選択セルとして選択する処理と、
前記選択セルの出力端子がオープンであるか否かを判断する処理と、
前記選択セルの前記出力端子がオープンでない場合に、前記選択セルの入力端子の数を判断する処理と、
前記選択セルの前記入力端子の数が２以上である場合に、前記選択セルのオープンでない出力端子が前記スキャンチェインのみに接続されているかを判断する処理と、
前記選択セルのオープンでない前記出力端子が前記スキャンチェインのみに接続されている場合に前記選択セルを削除する処理と、をコンピュータに実行させることを特徴とする、
請求項１５に記載の半導体集積回路の設計プログラム。
【請求項１７】
前記選択セルの前記出力端子がオープンである場合に、前記選択セルを削除する処理と、
削除した前記選択セルの前記入力端子に接続されるセルを、新たな選択セルとして選択する処理と、
選択セルの出力端子がオープンであるか否かを判断する前記処理に戻る処理と、をコンピュータに実行させることを特徴とする、
請求項１６に記載の半導体集積回路の設計プログラム。
【請求項１８】
削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子以外の入力端子に接続されるセルを、新たな選択セルとして選択する処理と、
選択セルの出力端子がオープンであるか否かを判断する前記処理に戻る処理と、をコンピュータに実行させることを特徴とする、
請求項１６又は１７に記載の半導体集積回路の設計プログラム。
【請求項１９】
前記選択セルの前記入力端子の数が１つである場合には、出力端子がオープンであるか否かの判断処理が未処理のセルを選択セルとして選択する前記処理に戻る処理を、コンピュータに実行させることを特徴とする、
請求項１６乃至１８のいずれか一項に記載の半導体集積回路の設計プログラム。
【請求項２０】
前記選択セルのオープンでない前記出力端子のうちで、前記スキャンチェインに接続されていないものが有る場合に、出力端子がオープンであるか否かの判断処理が未処理のセルを選択セルとして選択する前記処理に戻る処理を、コンピュータに実行させることを特徴とする、
請求項１６乃至１９のいずれか一項に記載の半導体集積回路の設計プログラム。
【請求項２１】
前記スキャンチェイン上に挿入されたセルは、スキャンフリップフロップセルであることを特徴とする、
請求項１５乃至２０のいずれか一項に記載の半導体集積回路の設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路の設計方法、半導体集積回路の設計装置及び半導体集積回路の設計プログラムに関する。
【背景技術】
【０００２】
半導体集積回路のレイアウト設計では、設計の過程で、ＥＣＯ（Ｅｎｇｉｎｎｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）により回路変更が発生し、配線のつなぎ替えを実施する場合がある。配線のつなぎ替えを行うと、ＥＣＯによる回路変更前の回路の一部が、不要な回路となる場合が有る。動作しないにもかかわらず、不要な回路がチップ上に残存してしまうと、ＥＣＯによりレイアウト変更を実施する際に、タイミング調整用の追加セルの配置や配線性が悪化してしまう。また、リークによる消費電力増大の懸念がある。
【０００３】
こうした現象に対して、ＥＣＯによる回路変更により生じた不要な回路を削除する方法が提案されている（特許文献１）。この方法では、ＥＣＯによる回路変更後に、出力端子がオープンとなっているセルを順次削除することで、不要になった回路を構成するセルを削除する。
【０００４】
図８は、特許文献１にかかるＥＣＯによる回路変更により生じた不要な回路を削除する方式を示すフローチャートである。この方式は、マクロ抽出部マクロを含む回路図Ａ８０１を入力とし回路図中のマクロを抽出してマクロ名情報とマクロ出力ピン情報をマクロ情報８０３として出力するマクロ抽出部８０２と、マクロ情報８０３を入力としマクロ名情報より該当するマクロ回路図Ａ８０５を読み込むマクロ回路入力部８０４と、読み込んだマクロ回路図Ａ８０５を出力側から入力側へトレースしてマクロ出力ピン情報より出力オープンとなるブロックを検出して順次削除する空出力端子処理部８０６とを有する。また、出力オープンのブロック削除処理後のマクロ回路図Ｂ８１０について同一マクロが複数回使用している場合を考慮してマクロ回路図名をユニークになるように変更し、さらにマクロを含む回路図の該当するマクロ名を変更後のユニークなマクロ名とする処理を行う回路図名修正部８０７と、回路図中のすべてのマクロについて修正が終了したとき修正後の回路図Ｂ８０９およびマクロ回路図Ｂ８１０を出力する回路図出力部８０８とを有する。
【０００５】
他にも、不要な回路を削除する技術が提案されている。例えば、スキャンチェイン上に、スキャン入力端子とスキャン出力端子との間を接続するスルーパスが設けられたダミーブロックを有する半導体集積回路が提案されている（特許文献２）。また、出力オープンとなる回路素子を検出して順次削除する空出力端子処理部を有するマクロ回路図の処理方式が提案されている（特許文献３）。さらに、論理回路の入力あるいは出力端子の空条件（オープン）にある冗長回路を削除する回路削除手段を有する集積回路論理設計装置が提案されている（特許文献４）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０４−２３５６７８号公報
【特許文献１】特開２００９−０３８０７２号公報
【特許文献１】特開平０４−３３６６７５号公報
【特許文献１】特開昭６３−１９３２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、発明者らは、上述の技術には、半導体集積回路の設計を行う上で以下に示す問題点が有ることを見出した。近年、半導体集積回路の製造後に不良の有無を確認するテストに関し、テスタビリティを高めるテスト設計（ＤＦＴ：Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔａｂｉｌｉｔｙ）の一手法として、スキャンテストが広く採用されている。スキャンテストは、半導体集積回路内のフリップフロップをスキャンフリップフロップに置き換える。そして、テスト実施時にスキャンフリップフロップをシリアルに接続することでシフトレジスタを形成し、半導体集積回路の外部端子からスキャンフリップフロップを制御する経路（スキャンチェイン）を設け、テストを行う。このとき、スキャンフリップフロップは、通常動作の経路（データライン）に接続する入出力端子と、スキャンチェインと接続する入出力端子と、を有している。
【０００８】
例えば、特許文献１にかかる方式では、ＥＣＯによる回路修正が発生し、出力オープンセルを順次削除する過程でスキャンフリップフロップが存在する場合がある。この場合、スキャンフリップフロップの通常ラインに接続する出力端子はオープンであるが、スキャンチェインに接続する出力端子がオープンでないことがある。そのため、空出力端子処理部８０６において出力オープンセルとして削除対象とならず、そのスキャンフリップフロップは削除されない。その結果、データライン上においてスキャンフリップフロップの前段に接続するセルが出力オープンとして削除するべきセルであっても、不要なスキャンフリップフロップを削除することができないという問題が生じる。
【０００９】
図９Ａは、マクロ回路入力部８０４に入力するマクロ回路図Ａ８０２の一例である。スキャンＦＦセルＦＦ８１のデータ入力端子Ｄには、バッファ８１ａ及び８１ｂが縦列に接続される。スキャンＦＦセルＦＦ８１のデータ出力端子Ｑには、バッファ８１ｃが接続される。バッファ８１ｃの出力は、ＮＯＲゲートセル８２の一方の入力と接続される。ＮＯＲゲートセル８２の他方の入力は、バッファ８１ｄの出力と接続される。バッファ８１ｄの入力は、任意のセルと接続される。ＮＯＲゲートセル８２の出力は、バッファ８１ｅの入力と接続される。バッファ８１ｅの出力は、バッファ８１ｆの入力と接続される。バッファ８１ｆの出力は、オープンになっている。
【００１０】
スキャンＦＦセルＦＦ８１のスキャン入力端子ＳＩＮは、スキャンライン上で従属接続されたバッファ８３ａ、スキャンＦＦセルＦＦ８２及びバッファ８３ｂと接続される。バッファ８３ａの入力は、任意のセルと接続される。バッファ８３ａの出力は、スキャンＦＦセルＦＦ８２のスキャン入力端子ＳＩＮと接続される。スキャンＦＦセルＦＦ８２のスキャン出力端子ＳＯＵＴは、バッファ８３ｂの入力と接続される。スキャンＦＦセルＦＦ８２のデータ入力端子Ｄ及びデータ出力端子Ｑは、任意のセルと接続される。バッファ８３ｂの出力は、スキャンＦＦセルＦＦ８１のスキャン入力端子ＳＩＮと接続される。スキャンＦＦセルＦＦ８１のスキャン出力端子ＳＯＵＴは、スキャンライン上で従属接続されたバッファ８３ｃ、スキャンＦＦセルＦＦ８３及びバッファ８３ｄと接続される。スキャンＦＦセルＦＦ８１のスキャン出力端子ＳＯＵＴは、バッファ８３ｃの入力と接続される。バッファ８３ｃの出力は、スキャンＦＦセルＦＦ８３のスキャン入力端子ＳＩＮと接続される。スキャンＦＦセルＦＦ８３のスキャン出力端子ＳＯＵＴは、バッファ８３ｄの入力と接続される。バッファ８３ｄの出力は、任意のセルと接続される。
【００１１】
図９Ｂは、回路図出力部８０８から出力する修正後の回路図Ｂ８０９の一例である。図９Ｂでは、図９Ａと比べて、出力オープンセルであるバッファ８１ｆ及び８１ｅ、ＮＯＲゲートセル８２、バッファ８１ｃ及び８１ｄが削除されている。つまり、出力オープンセルであるバッファ８１ｆを削除することで、バッファ８１ｅが出力オープンセルとなる。バッファ８１ｅを削除することでＮＯＲゲートセル８２が出力オープンセルとなる。ＮＯＲゲートセル８２を削除することで、バッファ８１ｃ及び８１ｄが出力オープンセルとなる。よって、バッファ８１ｃ及び８１ｄが削除される。
【００１２】
ところが、スキャンＦＦセルＦＦ８１は、スキャン入力端子ＳＩＮ及びスキャン出力端子ＳＯＵＴにスキャンチェインの配線が接続される。そのため、スキャンＦＦセルＦＦ８１は、削除の対象とならない。つまり、スキャンＦＦセルＦＦ８１は残存してしまう。その結果、スキャンＦＦセルＦＦ８１のデータ入力端子Ｄの前段のバッファ８１ａ及び８１ｂは出力オープンセルとは判断されず、バッファ８１ａ及び８１ｂも残存してしまう。よって、このままでは回路動作には不要なスキャンＦＦセルＦＦ８１、バッファ８１ａ及び８１ｂが残存してしまう。
【００１３】
これに対し、以下のような対策が考え得る。まず、スキャンチェインの配線のみを予め削除し、出力オープンとなるセルの削除を行う。そして、スキャンチェインの接続順序を記載したスキャン接続のオーダーファイルに従って、スキャンチェインを再配線する。これにより、スキャンチェインを元の接続順序に復元する。この方法では、出力オープンとして削除するべき、スキャンＦＦセルＦＦ８１、バッファ８１ａ及び８１ｂを削除することができる。
【００１４】
しかしながら、この方法では、スキャンチェイン上のタイミング調整用のホールド用のバッファも同時に削除されてしまう。そのため、タイミング調整をやり直す必要が生じる。さらに、この方法は、回路全体に対してスキャントレースを行う必要があり、非常に時間がかかってしまう。
【００１５】
従って、上述の方式のみでは、回路動作には不要なスキャンチェイン上のセルが残存してしまう。更に、スキャンチェイン上の不要セルを削除するため、別途の処理を導入すると処理時間が延びてしまい、現実的ではない。つまり、上述の方式では、回路動作に不要なスキャンチェイン上のセルを効率的かつ実現可能な時間内に除去することは困難である。
【課題を解決するための手段】
【００１６】
本発明の一態様である半導体集積回路の設計方法は、入力端子がスキャンチェイン上に挿入されたセルの出力端子に接続され、出力端子がオープンであるセルを削除し、前記スキャンチェイン上に挿入されたセルのスキャン出力端子以外の出力端子がオープンである場合に、前記スキャンチェイン上に挿入されたセルを削除し、削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子とスキャン出力端子との間を接続するものである。この半導体集積回路の設計方法によれば、スキャンチェイン上に挿入され、スキャン出力以外の出力端子がオープンであるセルを削除することができる。そして、削除したスキャンチェイン上のセルのスキャン入出力間を接続することにより、スキャンチェインの機能を維持することができる。
【００１７】
本発明の一態様である半導体集積回路の設計装置は、入力端子がスキャンチェイン上に挿入されたセルの出力端子に接続され、出力端子がオープンであるセルを削除する第１のセル削除部と、前記スキャンチェイン上に挿入されたセルのスキャン出力端子以外の出力端子がオープンである場合に、前記スキャンチェイン上に挿入されたセルを削除し、削除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子とスキャン出力端子との間を接続する第２のセル削除部と、を備えるものである。この半導体集積回路の設計装置によれば、スキャンチェイン上に挿入され、スキャン出力以外の出力端子がオープンであるセルを削除することができる。そして、削除したスキャンチェイン上のセルのスキャン入出力間を接続することにより、スキャンチェインの機能を維持することができる。
【００１８】
本発明の一態様である半導体集積回路の設計プログラムは、入力端子がスキャンチェイン上に挿入されたセルの出力端子に接続され、出力端子がオープンであるセルを削除する処理と、前記スキャンチェイン上に挿入されたセルのスキャン出力端子以外の出力端子がオープンである場合に、前記スキャンチェイン上に挿入されたセルを削除する処理と、除した前記スキャンチェイン上に挿入されたセルのスキャン入力端子とスキャン出力端子との間を接続する処理と、をコンピュータに実行させるものである。この半導体集積回路の設計プログラムによれば、スキャンチェイン上に挿入され、スキャン出力以外の出力端子がオープンであるセルを削除することができる。そして、削除したスキャンチェイン上のセルのスキャン入出力間を接続することにより、スキャンチェインの機能を維持することができる。
【発明の効果】
【００１９】
本発明によれば、スキャンチェインの機能を維持しつつ、スキャンチェイン上に挿入された不要なセルを削除することが可能な半導体集積回路の設計方法、半導体集積回路の設計装置及び半導体集積回路の設計プログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態１にかかる半導体集積回路の設計方法を示すフローチャートである。
【図２Ａ】ステップＳ１２で回路情報が変更された後の半導体集積回路の例を示すブロック図である。
【図２Ｂ】ステップＳ１４２で出力オープンセルを削除した後の半導体集積回路の例を示すブロック図である。
【図２Ｃ】ステップＳ１４（ステップＳ１４１〜Ｓ１４３）を繰り返すことにより出力オープンセルを順次削除した場合の半導体集積回路の例を示すブロック図である。
【図２Ｄ】ステップＳ１５３でスキャンＦＦセルＦＦが削除された後の半導体集積回路の例を示すブロック図である。
【図２Ｅ】ステップＳ１５４でスキャンチェイン（ＳＣ）を再接続した後の半導体集積回路の例を示すブロック図である。
【図３】実施の形態２にかかる半導体集積回路の設計方法を示すフローチャートである。
【図４Ａ】実施の形態２にかかる半導体集積回路の設計方法の適用対象となる半導体集積回路の例を示すブロック図である。
【図４Ｂ】ステップＳ２５のステップＳ１５１終了時点における半導体集積回路の例を示すブロック図である。
【図４Ｃ】スキャンＦＦセルＦＦＢを削除してスキャンチェインを再接続した後の半導体集積回路の例を示すブロック図である。
【図５】実施の形態３にかかる半導体集積回路の設計装置３００の構成を示すブロック図である。
【図６】実施の形態４にかかる半導体集積回路の設計装置４００の構成を示すブロック図である。
【図７】実施の形態５にかかる半導体集積回路の設計プログラム５００の実行環境例を示すシステム５０００の構成図である。
【図８】特許文献１にかかるＥＣＯによる回路変更により生じた不要な回路を削除する方式を示すフローチャートである。
【図９Ａ】マクロ回路入力部８０４に入力するマクロ回路図Ａ８０２の一例である。
【図９Ｂ】回路図出力部８０８から出力する修正後の回路図Ｂ８０９の一例である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
【００２２】
実施の形態１
まず、本発明の実施の形態１にかかる半導体集積回路の設計方法について説明する。図１は、実施の形態１にかかる半導体集積回路の設計方法を示すフローチャートである。図１は、ＥＣＯによる回路変更にともなう処理手順を示したものである。本実施の形態にかかる半導体集積回路の設計方法では、スキャンチェインに挿入されたセルに接続される出力オープンのセルを削除し、さらに、削除されたセルに接続されるスキャンチェインに挿入されたセルをも削除する。
【００２３】
なお、以下では、削除対象となるスキャンチェインに挿入されたセルとして、スキャンフリップフロップセル（以下、スキャンＦＦセル）を例として説明する。ただし、これは例示に過ぎず、スキャンライン上に挿入されるセルであるならば、フリップフロップに制限されるものではない。
【００２４】
ステップＳ１１
まず、ＳＴＡの結果に基づくタイミング調整、仕様変更及び不具合修正などの理由による回路変更を反映した回路を作成する。回路の変更情報は、新たな回路情報やオリジナルとの差分情報として、ユーザ又はＳＴＡツールなどより作成される。
【００２５】
ステップＳ１２
ステップＳ１１で作成した回路の変更情報に従って、回路情報を変更する。図２Ａは、ステップＳ１２で回路情報が変更された後の半導体集積回路の例を示すブロック図である。スキャンＦＦセルＦＦ１１のデータ入力端子Ｄには、バッファ１ａ及び１ｂが縦列に接続される。スキャンＦＦセルＦＦ１１のデータ出力端子Ｑには、バッファ１ｃが接続される。バッファ１ｃの出力は、ＮＯＲゲートセル２の一方の入力と接続される。ＮＯＲゲートセル２の他方の入力は、バッファ１ｄの出力と接続される。バッファ１ｄの入力は、任意のセルと接続される。ＮＯＲゲートセル２の出力は、バッファ１ｅの入力と接続される。バッファ１ｅの出力は、バッファ１ｆの入力と接続される。バッファ１ｆの出力は、オープンになっている。
【００２６】
スキャンＦＦセルＦＦ１１のスキャン入力端子ＳＩＮは、スキャンライン上で従属接続されたバッファ３ａ、スキャンＦＦセルＦＦ１２及びバッファ３ｂと接続される。バッファ３ａの入力は、任意のセルと接続される。バッファ３ａの出力は、スキャンＦＦセルＦＦ１２のスキャン入力端子ＳＩＮと接続される。スキャンＦＦセルＦＦ１２のスキャン出力端子ＳＯＵＴは、バッファ３ｂの入力と接続される。スキャンＦＦセルＦＦ１２のデータ入力端子Ｄ及びデータ出力端子Ｑは、任意のセルと接続される。バッファ３ｂの出力は、スキャンＦＦセルＦＦ１１のスキャン入力端子ＳＩＮと接続される。スキャンＦＦセルＦＦ１１のスキャン出力端子ＳＯＵＴは、スキャンライン上で従属接続されたバッファ３ｃ、スキャンＦＦセルＦＦ１３及びバッファ３ｄと接続される。スキャンＦＦセルＦＦ１１のスキャン出力端子ＳＯＵＴは、バッファ３ｃの入力と接続される。バッファ３ｃの出力は、スキャンＦＦセルＦＦ１３のスキャン入力端子ＳＩＮと接続される。スキャンＦＦセルＦＦ１３のスキャン出力端子ＳＯＵＴは、バッファ３ｄの入力と接続される。バッファ３ｄの出力は、任意のセルと接続される。
【００２７】
ステップＳ１３
半導体集積回路中から未処理のセルを１つ選択する。
【００２８】
ステップＳ１４
ステップＳ１４では、ステップＳ１３で選択されたセル（以下、選択セルと称する）の出力がオープンである場合に、選択セルを削除する。具体的には、ステップＳ１４では、以下のステップＳ１４１〜Ｓ１４３の処理を行う。
ステップＳ１４１
まず、選択セルのすべての出力端子に接続があるかどうかを確認する。そして、出力端子に接続が１つも無い、すなわち出力オープンであれば、出力オープンセルであると判断する。なお、選択したセルに複数の出力端子が有る場合には、全ての出力端子が出力オープンであるときに、出力オープンセルであると判断する。出力オープンセルと判断した場合には、ステップＳ１４２へ進む。出力オープンセルではないと判断した場合には、ステップＳ１５へ進む。
【００２９】
例えば、図２Ａに示す半導体集積回路において、選択セルとしてバッファ１ｅを選択した場合は、バッファ１ｅの出力がバッファ１ｆと接続されるため、出力オープンではないと判断する。一方、選択セルとしてバッファ１ｆを選択した場合は、バッファ１ｆの出力はオープンであるので、バッファ１ｆを出力オープンセルと判断する。
【００３０】
ステップＳ１４２
ステップＳ１４１で出力オープンと判断したセルを、半導体集積回路中から削除する。図２Ｂは、ステップＳ１４２で出力オープンセルを削除した後の半導体集積回路の例を示すブロック図である。例えば、ステップＳ１４１でバッファ１ｆを出力オープンセルと判断した場合には、バッファ１ｆを削除する。
【００３１】
ステップＳ１４３
ステップＳ１４２で削除した出力オープンセルの入力端子に接続する配線をバックトレースする。そして、バックトレースした接続元のセルを選択セルとする。すなわち、選択セルの変更を行う。その後、ステップＳ１４１に戻る。図２Ｂでは、削除したバッファ１ｆの入力端子は、バッファ１ｅの出力端子と接続される。この場合、ステップＳ１４３では、バッファ１ｅが選択される。つまり、ステップＳ１４（ステップＳ１４１〜Ｓ１４３）の処理を繰り返すことで、出力オープンセルを順次遡って削除することができる。
【００３２】
図２Ｃは、ステップＳ１４（ステップＳ１４１〜Ｓ１４３）を繰り返すことにより出力オープンセルを順次削除した場合の半導体集積回路の例を示すブロック図である。ステップＳ１４（ステップＳ１４１〜Ｓ１４３）を繰り返すと、バッファ１ｆ、バッファ１ｅ、ＮＯＲゲートセル２及びバッファ１ｃ及び１ｄが順次削除される。そして、バッファ１ｃを削除した後のステップＳ１４３において、スキャンＦＦセルＦＦ１１が選択される。その後、ステップＳ１４１に戻るが、スキャンＦＦセルＦＦ１１のスキャン出力端子ＳＯＵＴはバッファ３ｃと接続されているので、スキャンＦＦセルＦＦ１１は、出力オープンセルではないと判断される。よって、ステップＳ１５へ進むこととなる。つまり、スキャンＦＦセルＦＦ１１のように、スキャンチェイン上に挿入されているセルを検出することが可能である。
【００３３】
ステップＳ１５
続いて、ステップＳ１５では、スキャンチェイン上に挿入されたスキャンＦＦセルＦＦ１１を条件に応じて削除する処理を行う。具体的には、ステップＳ１５では、以下のステップＳ１５１〜Ｓ１５３の処理を行う。
【００３４】
ステップＳ１５１
ここでは、ステップＳ１４１で出力オープンではないと判断したセルの入力端子の数を検出する。具体的には、ステップＳ１４１で出力オープンではないと判断したセルの入力端子が１つだけの場合は、ステップＳ１３に戻る。一方、入力端子が２つ以上である場合は、ステップＳ１５２に進む。図２Ｃでは、ステップＳ１４１でスキャンＦＦセルＦＦ１１が選択される。スキャンＦＦセルＦＦ１１は、データ入力端子Ｄとスキャン入力端子ＳＩＮの２つの入力端子を有するので、ステップＳ１５２に進む。
【００３５】
ステップＳ１５２
ステップＳ１５１で入力端子を２つ以上有すると判断されたセルの出力端子のうち、接続がある出力端子（オープンではない出力端子）のすべてがスキャンチェインに接続している場合は、ステップＳ１５３へ進む。接続がある出力端子（オープンではない出力端子）のうち、スキャンチェイン以外に接続している出力端子が有る場合には、ステップＳ１６に進む。図２Ｃでは、スキャンＦＦセルＦＦ１１は、データ入力端子Ｄ以外の出力端子であるスキャン出力端子ＳＯＵＴがスキャンチェインのみに接続されるので、ステップＳ１５３に進む。
【００３６】
ステップＳ１５３
ステップＳ１５２で接続がある出力端子（オープンではない出力端子）のすべてがスキャンチェインに接続していると判断したセルを削除する。図２Ｄは、ステップＳ１５３でスキャンＦＦセルＦＦ１１が削除された後の半導体集積回路の例を示すブロック図である。ステップＳ１５２で、スキャンＦＦセルＦＦ１１は、接続がある出力端子（オープンではない出力端子）のすべてがスキャンチェインに接続していると判断される。よって、スキャンＦＦセルＦＦ１１が削除される。
【００３７】
ステップＳ１５４
ステップＳ１５３でセルを削除したため、削除されたセルのスキャン入力端子とスキャン出力端子との間は切断されてしまう。よって、スキャンチェインを修復するため、削除されたセルのスキャン入力端子とスキャン出力端子との間を再接続する。図２Ｅは、ステップＳ１５４でスキャンチェイン（ＳＣ）を再接続した後の半導体集積回路の例を示すブロック図である。図２Ｅに示すように、削除されたスキャンＦＦセルＦＦ１１のスキャン入力端子ＳＩＮとスキャン出力端子ＳＯＵＴとの間を再接続する。
【００３８】
ステップＳ１５５
ステップＳ１５４で削除した出力オープンセルの入力端子に接続する配線をバックトレースする。そして、バックトレースした接続元のセルを選択セルとする。すなわち、選択セルの変更を行う。その後、ステップＳ１２（すなわち、ステップＳ１４１）に戻る。つまり、ステップＳ１５４で選択したセルが出力オープンではないと判断されるまで、ステップＳ１２（ステップＳ１４１〜Ｓ１４３）の処理が繰り返され、順次に出力オープンセルが削除される。例えば、図２Ｅに示す半導体集積回路において、バッファ１ｂ及び１ａが順次削除される。
【００３９】
ステップＳ１６
ステップＳ１５の処理の結果、すべてのセルに対して処理が終わっていない、すなわち未処理のセルが有る場合には、ステップＳ１３へ戻る。未処理セルが無い場合には、ステップＳ１７へ進む。
【００４０】
ステップＳ１７
全てのセルについて処理が終了したら、回路情報を確定する。そして、確定した回路情報によって追加や変更になったセルを既配置セルに影響がないように配置（差分修正）し、既配線に影響がないように未配線部分の配線と配線エラーの修正（差分配線）を行い、設計作業を終了する。
【００４１】
以上のように、本実施の形態にかかる半導体集積回路の設計方法によれば、スキャンチェイン上に挿入された不要なセルを、スキャンチェインの機能を維持しつつ削除することが可能である。これにより、回路動作に不要なセルを好適に除去することができる半導体集積回路の設計方法を提供することができる。
【００４２】
実施の形態２
次に、本発明の実施の形態２にかかる半導体集積回路の設計方法について説明する。図３は、実施の形態２にかかる半導体集積回路の設計方法を示すフローチャートである。図３は、図１に示した実施の形態１にかかる半導体集積回路の設計方法のステップＳ１５をステップＳ２５に変更したものである。
【００４３】
図４Ａは、実施の形態２にかかる半導体集積回路の設計方法の適用対象となる半導体集積回路の例を示すブロック図である。図４Ａで示す半導体集積回路は、図２Ａで示す半導体集積回路のスキャンＦＦセルＦＦ１１〜ＦＦ１３を、それぞれスキャンＦＦセルＦＦ２１〜ＦＦ２３に置換した構成を有する。スキャンＦＦセルＦＦ１１〜ＦＦ１３では、データ入力端子Ｄ、データ出力端子Ｑ、スキャン入力端子ＳＩＮ及びスキャン出力端子ＳＯＵＴは、それぞれ別個に設けられていた。これに対し、スキャンＦＦセルＦＦ２１〜ＦＦ２３は、データ出力端子Ｑがスキャン出力端子を兼ねる構成を有する。
【００４４】
以下、ステップＳ２５について説明する。ステップＳ２５は、実施の形態１にかかるステップＳ１５のステップＳ１５１とステップＳ１５２との間に、ステップＳ２５１を追加したものである。ステップＳ１１〜Ｓ１４、Ｓ１６、Ｓ１７及びステップＳ２５のステップＳ１５１〜Ｓ１５５については、実施の形態１と同様であるので、説明を省略する。ここでは、実施の形態１とは異なるステップＳ２５１について説明する。
【００４５】
図４Ｂは、ステップＳ２５のステップＳ１５１終了時点における半導体集積回路の例を示すブロック図である。図４Ｂに示すように、ステップＳ１４（ステップＳ１４１〜Ｓ１４３）を繰り返すことで、バッファ１ｆ、バッファ１ｅ、ＮＯＲゲートセル２及びバッファ１ｃ及び１ｄが順次削除される。この回路に対し、ステップＳ２５１の処理を行う。
【００４６】
ステップＳ２５１
ステップＳ１４１で出力オープンセルではないと判断され、かつステップＳ１５１で入力端子が２つ以上あると判断された選択セルついて、出力端子の接続のフォワードトレースを行う。そして、フォワードトレースにより、出力端子がスキャンチェインに接続しているかを確認する。出力端子がスキャンチェインに接続していなければ、選択セルを削除する必要はないので、ステップＳ１６に進む。出力端子がスキャンチェインに接続していれば、ステップＳ１５２へ進む。図４Ｂでは、スキャンＦＦセルＦＦ２１のデータ出力端子Ｑは、スキャンチェインと接続されているので、この場合はステップＳ１５２へ進む。
【００４７】
その後、スキャンＦＦセルＦＦ２１のデータ出力端子Ｑがスキャンチェインとのみ接続されていれば、スキャンＦＦセルＦＦ２１は削除され（ステップＳ１５３）、スキャンチェインが再接続される（ステップＳ１５４）。図４Ｃは、スキャンＦＦセルＦＦ２１を削除してスキャンチェインを再接続した後の半導体集積回路の例を示すブロック図である。
【００４８】
以上のように、本実施の形態にかかる半導体集積回路の設計方法によれば、スキャンチェイン上に挿入されたセルの出力端子がスキャン出力端子を兼ねる場合でも、スキャンチェイン上に挿入された不要なセルを、スキャンチェインの機能を維持しつつ削除することが可能である。これにより、実施の形態１と同様に、回路動作に不要なセルを好適に除去することができる半導体集積回路の設計方法を提供することができる。
【００４９】
実施の形態３
次に、本発明の実施の形態３にかかる半導体集積回路の設計装置について説明する。図５は、実施の形態３にかかる半導体集積回路の設計装置３００の構成を示すブロック図である。本実施の形態にかかる半導体集積回路の設計装置３００は、実施の形態１にかかる半導体集積回路の設計方法の処理を実施する装置である。設計装置３００は、回路変更情報作成部１１、回路変更処理部１２、未処理セル選択部１３、第１のセル削除部１４、第２のセル削除部１５、未処理セル検出部１６及び差分配置・差分配線部１７を有する。
【００５０】
回路変更情報作成部１１は、ＳＴＡの結果に基づくタイミング調整、仕様変更及び不具合修正などの理由による回路変更を反映した半導体集積回路を作成する。回路の変更情報は、新たな回路情報やオリジナルとの差分情報として、ＳＴＡツールなどを用いて作成する。つまり、回路変更情報作成部１１は、図１のステップＳ１１に相当する処理を実行する。
【００５１】
回路変更処理部１２は、回路変更情報作成部１１が作成した回路の変更情報に従って、回路情報を変更する。つまり、回路変更処理部１２は、図１のステップＳ１２に相当する処理を実行する。
【００５２】
未処理セル選択部１３は、半導体集積回路中から未処理のセルを１つ選択する。つまり、未処理セル選択部１３は、図１のステップＳ１３に相当する処理を実行する。
【００５３】
第１のセル削除部１４は、未処理セル選択部１３が選択したセル（以下、選択セルと称する）の出力がオープンである場合に、選択セルを削除する。つまり、第１のセル削除部１４は、図１のステップＳ１４に相当する処理を実行する。第１のセル削除部１４は、出力オープン判定部１４１、第１選択セル削除部１４２及び第１選択セル変更部１４３を有する。
【００５４】
出力オープン判定部１４１は、選択セルのすべての出力端子に接続があるかどうかを確認する。そして、出力端子に接続が１つも無い、すなわち出力端子がオープン（出力オープン）であれば、出力オープンセルであると判断する。なお、選択したセルに複数の出力端子が有る場合には、全ての出力端子がオープンであるときに、出力オープンセルであると判断する。つまり、出力オープン判定部１４１は、図１のステップＳ１４１に相当する処理を実行する。
【００５５】
出力オープン判定部１４１が選択セルを出力オープンセルと判断した場合には、第１選択セル削除部１４２は、選択セルを半導体集積回路中から削除する。つまり、第１選択セル削除部１４２は、図１のステップＳ１４２に相当する処理を実行する。
【００５６】
第１選択セル変更部１４３は、第１選択セル削除部１４２が削除した出力オープンセルの入力端子に接続する配線をバックトレースする。そして、バックトレースした接続元のセルを選択セルとする選択セルの変更を行う。つまり、第１選択セル変更部１４３は、図１のステップＳ１４３に相当する処理を実行する。その後、処理を出力オープン判定部１４１に返す。つまり、第１のセル削除部１４（出力オープン判定部１４１、第１選択セル削除部１４２及び第１選択セル変更部１４３）による処理を繰り返すことで、出力オープンセルを順次遡って削除することができる。
【００５７】
第２のセル削除部１５は、スキャンチェイン上に挿入されたスキャンＦＦセルＦＦ１１を条件に応じて削除する処理を行う。つまり、第２のセル削除部１５は、図１のステップＳ１５に相当する処理を実行する。第２のセル削除部１５は、入力端子数判定部１５１、出力端子検査部１５２、第２選択セル削除部１５３、スキャンチェイン（ＳＣ）再接続部１５４及び第２選択セル変更部１５５を有する。
【００５８】
入力端子数判定部１５１は、第１のセル削除部の出力オープン判定部１４１が選択セルを出力オープンセルではないと判断した場合、選択セルの入力端子の数を検出する。具体的には、選択セルの入力端子が１つだけの場合は、未処理セル選択部１３に処理を返す。つまり、入力端子数判定部１５１は、図１のステップＳ１５１に相当する処理を実行する。
【００５９】
入力端子数判定部１５１が、選択セルの入力端子が２つ以上であると判断した場合には、出力端子検査部１５２は、選択セルの出力端子のうち、接続がある出力端子（オープンではない出力端子）のすべてがスキャンチェインに接続しているかを判断する。つまり、出力端子検査部１５２は、図１のステップＳ１５２に相当する処理を実行する。
【００６０】
出力端子検査部１５２が、選択セルの出力端子のうち、接続がある出力端子（オープンではない出力端子）のすべてがスキャンチェインに接続していると判断した場合には、第２選択セル削除部１５３は、選択セルを半導体集積回路中から削除する。つまり、第２選択セル削除部１５３は、図１のステップＳ１５３に相当する処理を実行する。
【００６１】
スキャンチェイン（ＳＣ）再接続部１５４は、スキャンチェインを修復するため、削除されたセルのスキャン入力端子とスキャン出力端子との間を再接続する。つまり、スキャンチェイン（ＳＣ）再接続部１５４は、図１のステップＳ１５４に相当する処理を実行する。
【００６２】
第２選択セル変更部１５５は、第２選択セル削除部１５３が削除した出力オープンセルの入力端子に接続する配線をバックトレースする。そして、バックトレースした接続元のセルを選択セルとする選択セルの変更を行う。つまり、第２選択セル変更部１５５は、図１のステップＳ１５５に相当する処理を実行する。その後、処理を第１のセル削除部１４の出力オープン判定部１４１に返す。つまり、第２選択セル変更部１５５が選択したセルが出力オープンではないと判断されるまで、第１のセル削除部１４（出力オープン判定部１４１、第１選択セル削除部１４２及び第１選択セル変更部１４３）による処理が繰り返され、順次に出力オープンセルが削除される。
【００６３】
出力端子検査部１５２が、選択セルの接続がある出力端子（オープンではない出力端子）のうち、スキャンチェイン以外に接続しているものが有ると判断した場合、未処理セル検出部１６は、すべてのセルに対して処理が終わっていない、すなわち未処理セルが有るかを判断する。未処理セル検出部１６が、未処理セルが存在すると判断した場合には、処理を未処理セル選択部１３に返す。つまり、未処理セル検出部１６は、図１のステップＳ１６に相当する処理を実行する。
【００６４】
未処理セル検出部１６が、未処理セルが存在しないと判断した場合には、差分配置・差分配線部１７は、回路情報を確定する。そして、差分配置・差分配線部１７は、確定した回路情報によって追加や変更になったセルを既配置セルに影響がないように配置（差分修正）し、既配線に影響がないように未配線部分の配線と配線エラーの修正（差分配線）を行い、設計作業を終了する。つまり、差分配置・差分配線部１７は、図１のステップＳ１７に相当する処理を実行する。
【００６５】
以上より、本実施の形態にかかる半導体集積回路の設計装置３００によれば、スキャンチェイン上に挿入された不要なセルを、スキャンチェインの機能を維持しつつ削除する半導体集積回路の設計を行うことができる。これにより、回路動作に不要なセルを好適に除去することができる半導体集積回路の設計装置を提供することができる。
【００６６】
実施の形態４
次に、本発明の実施の形態４にかかる半導体集積回路の設計装置について説明する。図６は、実施の形態４にかかる半導体集積回路の設計装置４００の構成を示すブロック図である。本実施の形態にかかる半導体集積回路の設計装置４００は、実施の形態２にかかる半導体集積回路の設計方法の処理を実施する装置である。半導体集積回路の設計装置４００は、実施の形態３にかかる半導体集積回路の設計装置３００の第２のセル削除部１５を第２のセル削除部２５に変更したものである。
【００６７】
第２のセル削除部２５は、実施の形態３にかかる第２のセル削除部１５に出力端子接続判定部２５１を追加したものである。出力端子接続判定部２５１は、出力オープン判定部１４１が出力オープンセルではないと判断し、かつ入力端子数判定部１５１が、入力端子が２つ以上あると判断した選択セルについて、出力端子の接続のフォワードトレースを行う。そして、フォワードトレースにより、出力端子がスキャンチェインに接続しているかを確認する。
【００６８】
出力端子がスキャンチェインに接続していなければ、選択セルを削除する必要はないので、出力端子接続判定部２５１は、処理を未処理セル検出部１６に渡す。出力端子がスキャンチェインに接続していれば、出力端子接続判定部２５１は、処理を出力端子検査部１５２へ渡す。半導体集積回路の設計装置４００のその他の構成は、半導体集積回路の設計装置３００と同様であるので、説明を省略する。
【００６９】
以上のように、本実施の形態にかかる半導体集積回路の設計方法によれば、図４Ａ〜Ｃに示すように、スキャンチェイン上に挿入されたセルの出力端子がスキャン出力端子を兼ねる場合でも、スキャンチェイン上に挿入された不要なセルを、スキャンチェインの機能を維持しつつ削除することが可能である。これにより、実施の形態３と同様に、回路動作に不要なセルを好適に除去することができる半導体集積回路の設計方法を提供することができる。
【００７０】
実施の形態５
上述の実施の形態３及び４では半導体集積回路の設計装置について説明した。しかし、半導体集積回路の設計装置３００及び４００による処理は、コンピュータなどのハードウェア資源を用いてプログラムを動作させることにより、同様の結果を得ることができる。すなわち、半導体集積回路の設計装置３００及び４００と同様の処理をコンピュータなどのハードウェア資源に実行させるプログラムとして構成することも可能である。以下では、例えば半導体集積回路の設計装置３００と同様の処理をコンピュータなどのハードウェア資源に実行させる半導体集積回路の設計プログラム５００について説明する。
【００７１】
図７は、実施の形態５にかかる半導体集積回路の設計プログラム５００の実行環境例を示すシステム５０００の構成図である。図７に示すように、システム５０００は、サーバ５１０、ネットワーク５２０及びコンピュータ装置５３０を有する。
【００７２】
サーバ５１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で構成する処理部５１１、記録媒体５１２、入出力インターフェースである入出力部５１３を有する。
【００７３】
記録媒体５１２は、本実施の形態にかかる半導体集積回路の設計プログラム５００や、ＥＣＯ時のレイアウトデータを記憶する。記録媒体５１２は、ハードディスクやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）といった記憶装置を用いることができる。なお、半導体集積回路の設計プログラム５００や他のデータは、例えばサーバ５１０の管理者により、キーボード、マウスや、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）といった入出力部５１３を用いて、外部から記録媒体５１２へ記憶することができる。
【００７４】
処理部５１１は、記録媒体５１２に記憶したサーバ５１０の機能を実現するための実行プログラムを読み込んで実行することで、サーバ５１０の機能を実現する。つまり、処理部５１１は、記録媒体５１２から半導体集積回路の設計プログラム５００を読み込んで、実行することが可能である。
【００７５】
ネットワーク５２０は、コンピュータ装置５３０とサーバ５１０との間の通信を媒介する。例えば、ネットワーク５２０は、移動体通信網や、専用線網や、ＬＡＮ(Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続したネットワークを適用可能である。よって、サーバ５１０は、半導体集積回路の設計プログラム５００やデータを、ネットワーク５２０を介してコンピュータ装置５３０へ提供することが可能である。
【００７６】
コンピュータ装置５３０は、通信部５３１、記録媒体５３２、ＣＰＵで構成する処理部５３３、入出力インターフェースである入出力部５３４を有する。コンピュータ装置５３０は、例えば、パーソナルコンピュータのような一般的な汎用コンピュータを用いることができる。コンピュータ装置５３０は、通信部５３１により、ネットワーク５２０を介してサーバ５１０と通信が可能である。
【００７７】
コンピュータ装置５３０は、ネットワーク５２０を介してサーバ５１０へ接続して、半導体集積回路の設計プログラム５００やデータを取得し、記録媒体５３２へ記憶する。処理部５３３は、記録媒体５３２部に記憶した導体集積回路の設計プログラム５００を読み込んで実行することができる。入出力部５３４は、例えば、キーボード、マウスや、ＬＣＤなどで構成する。コンピュータ装置５３０は、上述の構成により、サーバ５１０から半導体集積回路の設計プログラム５００を読み込んで実行することが可能である。
【００７８】
なお、半導体集積回路の設計プログラム５００は、サーバ５１０の記録媒体５１２に記憶する形態には限定されない。半導体集積回路の設計プログラム５００は、例えば、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）やフラッシュメモリを搭載したＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリといった持ち運び可能な記憶媒体に記録してもよい。この場合、半導体集積回路の設計プログラム５００は、持ち運び可能な記憶媒体から、コンピュータ装置５３０のＣＤドライブや、ＵＳＢポート等を介して導入することが可能である。
【００７９】
以上より、半導体集積回路の設計プログラム５００を、コンピュータ等のハードウェア資源に実行させることで、スキャンチェイン上に挿入された不要なセルを、スキャンチェインの機能を維持しつつ削除することが可能である。すなわち、回路動作に不要なセルを好適に除去することができる半導体集積回路の設計プログラムを提供することができる。
【００８０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、半導体集積回路の設計プログラム５００は、半導体集積回路の設計装置３００と同様の処理をコンピュータなどのハードウェア資源に実行させるプログラムとして説明したが、これは例示に過ぎない。例えば、半導体集積回路の設計装置４００と同様の処理をコンピュータなどのハードウェア資源に実行させるプログラムとすることも可能である。
【００８１】
図２Ａ〜２Ｅ、図４Ａ〜４Ｃに示す回路はあくまで例示に過ぎない。したがって、用いられるセルは、バッファやＮＯＲゲートセルに限られない。
【符号の説明】
【００８２】
１ａ〜１ｆ、３ａ〜３ｄ、８１ａ〜８１ｆ、８３ａ〜８３ｄ  バッファ
２、８２  ＮＯＲゲートセル
１１  回路変更情報作成部
１２  回路変更処理部
１３  未処理セル選択部
１４  第１のセル削除部
１５、２５  第２のセル削除部
１６  未処理セル検出部
１７  差分配置・差分配線部
１４１  出力オープン判定部
１４２  第１選択セル削除部
１４３  第１選択セル変更部
１５１  入力端子数判定部
１５２  出力端子検査部
１５３  第２選択セル削除部
１５４  ＳＣ再接続部
１５５  第２選択セル変更部
２５１  出力端子接続判定部
３００、４００  半導体集積回路の設計装置
５００  半導体集積回路の設計プログラム
５１０  サーバ
５１１  処理部
５１２  記録媒体
５１３  入出力部
５２０  ネットワーク
５３０  コンピュータ装置
５３１  通信部
５３２  記録媒体
５３３  処理部
５３４  入出力部
８０１  回路図Ａ
８０２  マクロ抽出部
８０３  マクロ情報
８０４  マクロ回路入力部
８０５  マクロ回路図Ａ
８０６  空出力端子処理部
８０７  回路図名修正部
８０８  回路図出力部
８０９  回路図Ｂ
８１０  マクロ回路図Ｂ
５０００  システム
Ｄ  データ入力端子
ＦＦ１１〜ＦＦ１３、ＦＦ２１〜ＦＦ２３、ＦＦ８１〜ＦＦ８３  スキャンＦＦセル
Ｑ  データ出力端子
ＳＩＮ  スキャン入力端子
ＳＯＵＴ  スキャン出力端子
【図１】
2013149136.tif 000003
【図２Ａ】
2013149136.tif 000004
【図２Ｂ】
2013149136.tif 000005
【図２Ｃ】
2013149136.tif 000006
【図２Ｄ】
2013149136.tif 000007
【図２Ｅ】
2013149136.tif 000008
【図３】
2013149136.tif 000009
【図４Ａ】
2013149136.tif 000010
【図４Ｂ】
2013149136.tif 000011
【図４Ｃ】
2013149136.tif 000012
【図５】
2013149136.tif 000013
【図６】
2013149136.tif 000014
【図７】
2013149136.tif 000015
【図８】
2013149136.tif 000016
【図９Ａ】
2013149136.tif 000017
【図９Ｂ】
2013149136.tif 000018