(57)【要約】      （修正有）【課題】スキャン配線の配線長を短くすることにより、半導体集積回路の集積化を促進する。【解決手段】半導体集積回路の設計装置１は、論理合成部１１、圧縮回路生成部１２、スキャン合成部１３、レジスタ配置決定部１５、圧縮回路変更部１６、レイアウトデータ生成部１７を備え、論理合成部１１は、論理合成を実行することによりハードウェア記述を生成し、圧縮回路生成部１２は、ハードウェア記述に圧縮スキャン記述を追加し、スキャン合成部１３は、ハードウェア記述に対してスキャン合成を実行することにより第１ネットリストを生成し、レジスタ配置決定部１５は、第１ネットリストに対応する半導体集積回路のレイアウト上のレジスタ配置を決定し、圧縮回路変更部１６は、圧縮スキャン回路の構成を変更することにより第２ネットリストを生成し、レイアウトデータ生成部１７は、第２ネットリストに対応するレイアウトデータを生成する。【選択図】図１
2013186620.tif 000002
【特許請求の範囲】
【請求項１】
レジスタ転送レベル記述に対して論理合成を実行することにより、ハードウェア記述を生成する論理合成部と、
前記ハードウェア記述に、圧縮スキャン回路を示す圧縮スキャン記述を追加する圧縮回路生成部と、
前記圧縮スキャン記述が追加されたハードウェア記述に対して、スキャン合成を実行することにより、機能グループ毎の複数のスキャンチェーンに対応する第１ネットリストを生成するスキャン合成部と、
前記第１ネットリストに基づいて、前記第１ネットリストに対応する半導体集積回路のレイアウト上のレジスタ配置を決定するレジスタ配置決定部と、
前記レジスタ配置に基づいて、前記複数のスキャンチェーンと前記圧縮スキャン回路とを接続するスキャン配線の総配線長が短くなるように、前記圧縮スキャン回路の構成を変更することにより、第２ネットリストを生成する圧縮回路変更部と、
前記第２ネットリストに基づいて、前記第２ネットリストに対応する半導体集積回路のレイアウトを示すレイアウトデータを生成するレイアウトデータ生成部と、を備えることを特徴とする半導体集積回路の設計装置。
【請求項２】
前記圧縮スキャン回路は、複数の圧縮器を含み、
前記圧縮回路変更部は、
前記複数の圧縮器と前記複数のスキャンチェーンとの組み合わせ毎の圧縮パターンを生成し、
前記圧縮パターン毎の総配線長を計算し、
前記総配線長が最短となる圧縮パターンを最適圧縮パターンとして選択し、
前記最適圧縮パターンに基づいて、前記第２ネットリストを生成する、請求項１に記載の半導体集積回路の設計装置。
【請求項３】
コンピュータが、
レジスタ転送レベル記述に対して論理合成を実行することにより、ハードウェア記述を生成し、
前記ハードウェア記述に、圧縮スキャン回路を示す圧縮スキャン記述を追加し、
前記圧縮スキャン記述が追加されたハードウェア記述に対して、スキャン合成を実行することにより、機能グループ毎の複数のスキャンチェーンに対応する第１ネットリストを生成し、
前記第１ネットリストに基づいて、前記第１ネットリストに対応する半導体集積回路のレイアウト上のレジスタ配置を決定し、
前記レジスタ配置に基づいて、前記複数のスキャンチェーンと前記圧縮スキャン回路とを接続するスキャン配線の総配線長が短くなるように、前記圧縮スキャン回路の構成を変更することにより、第２ネットリストを生成し、
前記第２ネットリストに基づいて、前記第２ネットリストに対応する半導体集積回路のレイアウトを示すレイアウトデータを生成する、ことを特徴とする半導体集積回路の設計方法。
【請求項４】
レジスタ転送レベル記述に対して論理合成を実行することにより、ハードウェア記述を生成し、
前記ハードウェア記述に、圧縮スキャン回路を示す圧縮スキャン記述を追加し、
前記圧縮スキャン記述が追加されたハードウェア記述に対して、スキャン合成を実行することにより、機能グループ毎の複数のスキャンチェーンに対応する第１ネットリストを生成し、
前記第１ネットリストに基づいて、前記第１ネットリストに対応する半導体集積回路のレイアウト上のレジスタ配置を決定し、
前記レジスタ配置に基づいて、前記複数のスキャンチェーンと前記圧縮スキャン回路とを接続するスキャン配線の総配線長が短くなるように、前記圧縮スキャン回路の構成を変更することにより、第２ネットリストを生成し、
前記第２ネットリストに基づいて、前記第２ネットリストに対応する半導体集積回路のレイアウトを示すレイアウトデータを生成する、
ステップをコンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
プログラム。
【請求項５】
レジスタ転送レベル記述に対して論理合成を実行することにより、ハードウェア記述を生成し、
前記ハードウェア記述に、圧縮スキャン回路を示す圧縮スキャン記述を追加し、
前記圧縮スキャン記述が追加されたハードウェア記述に対して、スキャン合成を実行することにより、機能グループ毎の複数のスキャンチェーンに対応する第１ネットリストを生成し、
前記第１ネットリストに基づいて、前記第１ネットリストに対応する半導体集積回路のレイアウト上のレジスタ配置を決定し、
前記レジスタ配置に基づいて、前記複数のスキャンチェーンと前記圧縮スキャン回路とを接続するスキャン配線の総配線長が短くなるように、前記圧縮スキャン回路の構成を変更することにより、第２ネットリストを生成し、
前記第２ネットリストに基づいて、前記第２ネットリストに対応する半導体集積回路のレイアウトを示すレイアウトデータを生成する、
ステップをコンピュータに実行させる半導体集積回路の設計プログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、設計装置、設計方法、半導体集積回路の設計プログラム、及び半導体集積回路の設計プログラムを記憶した記憶媒体に関する。
【背景技術】
【０００２】
一般に、半導体集積回路の設計では、レイアウトデータの生成と、レイアウトデータに基づくテストと、が行われる。
【０００３】
半導体集積回路のテスト方法として、スキャンテストが知られる。スキャンテストは、半導体集積回路に組み込まれるスキャンテストモジュールを用いて行われる。スキャンテストモジュールは、スキャンチェーン及び圧縮スキャン回路の組み合わせである。圧縮スキャン回路は、展開器と、圧縮器と、から構成される。展開器は、半導体集積回路の外部回路（例えば、別の半導体集積回路）に接続される。圧縮器は、スキャンチェーンに接続される。スキャンチェーンは、機能ブロック毎のグループ（以下「機能グループ」）に分けられる。圧縮スキャン回路は、機能グループ内又は機能グループ外に配置される。
【０００４】
しかしながら、従来、レイアウトデータの生成において、機能グループ単位で、半導体集積回路内のセル配置が決められる。機能グループ単位で決められたセル配置は、半導体集積回路に配置されるセルの位置関係（例えば、複数のセル間の距離）を考慮したものではない。
【０００５】
従って、レイアウトデータに基づいて得られた半導体集積回路では、スキャンチェーンと圧縮スキャン回路との間の距離が長くなる。その結果、スキャンチェーンと圧縮スキャン回路とを接続する配線（以下「スキャン配線」という）の配線長も長くなる。これにより、半導体集積回路の集積化が妨げられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００５号−５１７１８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、スキャン配線の配線長を短くすることにより、半導体集積回路の集積化を促進することである。
【課題を解決するための手段】
【０００８】
本発明の実施形態の半導体集積回路の設計装置は、論理合成部と、圧縮回路生成部と、スキャン合成部と、レジスタ配置決定部と、圧縮回路変更部と、レイアウトデータ生成部と、を備える。論理合成部は、レジスタ転送レベル記述に対して論理合成を実行することにより、ハードウェア記述を生成する。圧縮回路生成部は、ハードウェア記述に、圧縮スキャン回路を示す圧縮スキャン記述を追加する。スキャン合成部は、圧縮スキャン記述が追加されたハードウェア記述に対して、スキャン合成を実行することにより、機能グループ毎の複数のスキャンチェーンに対応する第１ネットリストを生成する。レジスタ配置決定部は、第１ネットリストに基づいて、第１ネットリストに対応する半導体集積回路のレイアウト上のレジスタ配置を決定する。圧縮回路変更部は、レジスタ配置に基づいて、複数のスキャンチェーンと圧縮スキャン回路とを接続するスキャン配線の総配線長が短くなるように、圧縮スキャン回路の構成を変更することにより、第２ネットリストを生成する。レイアウトデータ生成部は、第２ネットリストに基づいて、第２ネットリストに対応する半導体集積回路のレイアウトを示すレイアウトデータを生成する。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の設計装置１の構成を示すブロック図。
【図２】本実施形態の設計処理のフローチャート。
【図３】本実施形態のＳ１０４で得られた第１ネットリストに対応する半導体集積回路の構成図。
【図４】本実施形態の圧縮回路変更（Ｓ１１０）のフローチャート。
【図５】本実施形態の総配線長計算（Ｓ１１０−４）で得られた圧縮パターンテーブルの概略図。
【図６】本実施形態のネットリスト変更（Ｓ１１０−８）で得られた第２ネットリストに対応する半導体集積回路の構成図。
【図７】本実施形態の比較例で得られたレイアウトデータに対応する半導体集積回路ＬＳＩの概略図。
【図８】本実施形態の設計処理で得られたレイアウトデータに対応する半導体集積回路ＬＳＩの概略図。
【発明を実施するための形態】
【００１０】
本実施形態について、図面を参照して説明する。
【００１１】
本実施形態の設計装置の構成について説明する。図１は、本実施形態の設計装置１の構成を示すブロック図である。
【００１２】
図１に示すように、設計装置１は、コンピュータ１０と、メモリ３０と、ディスプレイ５０と、を備える。メモリ３０には、設計プログラムが記憶される。設計プログラムとは、本実施形態の設計処理をコンピュータ１０に実行させるためのプログラムである。
【００１３】
コンピュータ１０は、設計プログラムを起動することにより、論理合成部１１と、圧縮回路生成部１２と、スキャン合成部１３と、スキャンルールチェッカ１４と、レジスタ配置決定部１５と、圧縮回路変更部１６と、レイアウトデータ生成部１７と、を実現する。コンピュータ１０の各部については、後述する。例えば、コンピュータ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１４】
メモリ３０には、設計プログラムだけでなく、設計処理に必要な様々なデータが記憶される。例えば、設計処理に必要なデータは、レジスタ転送レベル（以下「ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）」という）記述である。ＲＴＬ記述とは、設計すべき半導体集積回路のレジスタレベルの動作を示すデータである。
【００１５】
ディスプレイ５０は、コンピュータ１０の処理結果を示す画像を表示する装置である。例えば、ディスプレイ５０は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００１６】
本実施形態の設計装置の動作について説明する。図２は、本実施形態の設計処理のフローチャートである。
【００１７】
＜Ｓ１００＞  論理合成部１１が、ＲＴＬ記述に対して論理合成を実行することにより、ハードウェア記述を生成する。ハードウェア記述とは、ＲＴＬ記述が示す動作を実現するための、半導体集積回路の構成（例えば、レジスタの配列）を示すデータである。例えば、ハードウェア記述は、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述である。
【００１８】
＜Ｓ１０２＞  圧縮回路生成部１２が、Ｓ１００で得られたハードウェア記述に、圧縮スキャン回路を示す圧縮スキャン記述と、非圧縮スキャン回路を示す非圧縮スキャン記述と、を追加する。圧縮スキャン回路とは、半導体集積回路のサイズを圧縮するために、複数のレジスタに接続されるスキャン配線を集約する回路である。なお、非圧縮スキャン記述は、省略可能である。
【００１９】
＜Ｓ１０４＞  スキャン合成部１３が、Ｓ１０２で得られたハードウェア記述（即ち、圧縮スキャン記述が追加されたハードウェア記述）に対して、スキャン合成を実行することにより、第１ネットリストを生成する。第１ネットリストとは、Ｓ１０２で得られたハードウェア記述に対応する半導体集積回路の構成の端子間接続（例えば、２個のレジスタ間の接続）の関係を示すデータである。例えば、スキャン合成部１３は、Ｓ１０２で得られたハードウェア記述に対応する半導体集積回路において、機能グループ毎のスキャンチェーンが形成されるように、当該ハードウェア記述を書き換える。これにより、第１ネットリストが得られる。図３は、本実施形態のＳ１０４で得られた第１ネットリストに対応する半導体集積回路の構成図である。
【００２０】
図３（Ａ）に示すように、第１ネットリストに対応する半導体集積回路ＬＳＩは、複数のレジスタＲＥＧと、圧縮スキャン回路ＣＯＭと、非圧縮スキャン回路ＤＣＯＭと、を備える。
【００２１】
図３（Ｂ）は、図３（Ａ）の破線Ａに囲まれた領域の拡大図である。図３（Ｂ）に示すように、複数のレジスタＲＥＧは、スキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３を形成する。
【００２２】
スキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３は、機能ブロック（機能ブロックＢＬＫａ及びＢＬｋｂ）毎に、集約される。これにより、スキャンチェーンＳＣａ１〜ＳＣａ３は、機能ブロックＢＬＫａを形成し、スキャンチェーンＳＣｂ１〜ＳＣｂ３は、機能ブロックＢＬＫｂを形成する。
【００２３】
圧縮スキャン回路ＣＯＭは、複数の圧縮器ＣＭ１及びＣＭ２と、展開器ＳＰと、を備える。例えば、複数の圧縮器ＣＭ１及びＣＭ２、並びに展開器ＳＰは、ＸＯＲ素子である。
【００２４】
圧縮器ＣＭ１は、機能ブロックＢＬＫａを集約する（即ち、スキャンチェーンＳＣａ１〜ＳＣａ３に接続されたスキャン配線を統合する）モジュールである。圧縮器ＣＭ２は、機能ブロックＢＬＫｂを集約する（即ち、スキャンチェーンＳＣｂ１〜ＳＣｂ３に接続されたスキャン配線を統合する）モジュールである。展開器ＳＰは、圧縮器ＣＭ１及びＣＭ２を展開する（即ち、圧縮器ＣＭ１及びＣＭ２と半導体集積回路ＬＳＩの外部回路（例えば、別の半導体集積回路）とを接続する）モジュールである。
【００２５】
＜Ｓ１０６＞  スキャンルールチェッカ１４が、第１ネットリストに対して、半導体集積回路の動作制約に基づいて、第１ネットリストに対応する半導体集積回路が、動作制約を満たすか否かをチェックする。当該半導体集積回路が動作制約を満たさない場合には、ＲＴＬ記述及びハードウェア記述の少なくとも１つが修正された後に、Ｓ１００〜Ｓ１０４が再び実行される。
【００２６】
＜Ｓ１０８＞  レジスタ配置決定部１５が、第１ネットリストに基づいて、半導体集積回路のレイアウト上のレジスタ配置を決定する。
【００２７】
＜Ｓ１１０＞  圧縮回路変更部１６が、圧縮回路変更を行う。圧縮回路変更では、圧縮回路変更部１６は、レジスタ配置に基づいて、半導体集積回路ＬＳＩ内のスキャン配線の総配線長が短くなるように、圧縮スキャン回路ＣＯＭの構成（例えば、圧縮器とスキャンチェーンとの間の接続関係）を変更し、次いで、第２ネットリストを生成する。第２ネットリストとは、変更後の圧縮スキャン回路ＣＯＭの構成に対応する半導体集積回路の構成の端子間接続（例えば、２個のレジスタ間の接続）の関係を示すデータである。図４は、本実施形態の圧縮回路変更（Ｓ１１０）のフローチャートである。
【００２８】
＜Ｓ１１０−２＞  圧縮回路変更部１６が、圧縮器ＣＭ１及びＣＭ２と、スキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３と、の組み合わせ毎の圧縮パターンを生成する。
【００２９】
＜Ｓ１１０−４＞  圧縮回路変更部１６が、Ｓ１１０−２で生成した圧縮パターン毎の総配線長を計算し、次いで、圧縮パターンテーブルを生成する。例えば、圧縮回路変更部１６は、Ｓ１０８で決定したレジスタ配置における、圧縮器ＣＭ１及びＣＭ２の位置を示す位置情報と、スキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３の位置を示す位置情報と、に基づいて、圧縮パターン毎の総配線長を計算する。これにより、圧縮パターンテーブルが得られる。図５は、本実施形態の総配線長計算（Ｓ１１０−４）で得られた圧縮パターンテーブルの概略図である。
【００３０】
図５に示すように、圧縮パターンテーブルは、「圧縮パターンＩＤ」、「圧縮器ＣＭ１」、「圧縮器ＣＭ２」、及び「総配線長」という項目を含む。「圧縮パターンＩＤ」は、圧縮パターン毎の固有情報を示す。「圧縮器ＣＭ１」及び「圧縮器ＣＭ２」は、それぞれ、圧縮器ＣＭ１及びＣＭ２に接続されるスキャンチェーンを示す。総配線長は、圧縮パターン毎の配線長の合計を示す。例えば、「圧縮パターンＩＤ」２に対応する総配線長Ｌ２は、圧縮器ＣＭ１と、スキャンチェーンＳＣａ１、ＳＣａ３、ＳＣｂ２、及びＳＣｂ３とを接続する配線長と、圧縮器ＣＭ２と、スキャンチェーンＳＣａ２及びＳＣｂ１とを接続する配線長と、の合計を示す。なお、「圧縮パターンＩＤ」０は、圧縮回路変更（Ｓ１１０）が実行される前の圧縮パターン（即ち、スキャン合成（Ｓ１０４）で得られた圧縮パターン（図３（Ｂ）を参照）に対応する。
【００３１】
＜Ｓ１１０−６＞  圧縮回路変更部１６が、Ｓ１１０−４で計算した圧縮パターン毎の総配線長が最短の圧縮パターン（以下「最適圧縮パターン」という）を選択する。例えば、図５において総配線長Ｌ２が総配線長Ｌ０及びＬ１より短い場合には、圧縮回路変更部１６は、「圧縮パターンＩＤ」２に対応する圧縮パターンを、最適圧縮パターンとして選択する。
【００３２】
＜Ｓ１１０−８＞  圧縮回路変更部１６が、Ｓ１１０−６で選択した最適圧縮パターンに基づいて、第２ネットリストを生成する。図６は、本実施形態のネットリスト変更（Ｓ１１０−８）で得られた第２ネットリストに対応する半導体集積回路の構成図である。
【００３３】
図６に示すように、第２ネットリストに対応する半導体集積回路ＬＳＩでは、圧縮器ＣＭ１が、スキャンチェーンＳＣａ１、ＳＣａ３、ＳＣｂ２、及びＳＣｂ３と接続され、圧縮器ＣＭ２が、スキャンチェーンＳＣａ２及びＳＣｂ１と接続され、展開器ＳＰが、圧縮器ＣＭ１及びＣＭ２と接続される。図６の圧縮器ＣＭ１及びＣＭ２とスキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３との間の総配線長Ｌ２は、図３の圧縮器ＣＭ１及びＣＭ２とスキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３との間の総配線長Ｌ０より短い。
【００３４】
＜Ｓ１１２＞  レイアウトデータ生成部１７が、第２ネットリストに基づいて、レイアウトデータを生成し、次いで、当該レイアウトデータをディスプレイ５０に出力する。レイアウトデータとは、第２ネットリストに対応する半導体集積回路ＬＳＩのレイアウト（例えば、圧縮器ＣＭ１及びＣＭ２、並びにスキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３のレイアウト）を示すデータである。
【００３５】
本実施形態の比較例について説明する。図７は、本実施形態の比較例で得られたレイアウトデータに対応する半導体集積回路ＬＳＩの概略図である。図８は、本実施形態の設計処理で得られたレイアウトデータに対応する半導体集積回路ＬＳＩの概略図である。
【００３６】
図７に示すように、一般的な設計処理で得られたレイアウトデータでは、圧縮スキャン回路ＣＯＭとスキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３との間のスキャン配線の配線長が長く、且つ、スキャン配線が混雑する（図７の破線Ｂ１を参照）。これは、一般的な設計処理では、機能グループ毎のスキャンチェーンが形成されるように、ハードウェア記述が書き換えられることにより得られたネットリスト（本実施形態の第１ネットリストに対応）から、レイアウトデータが生成されるためである。
【００３７】
これに対して、図８に示すように、本実施形態の設計処理で得られたレイアウトデータでは、圧縮スキャン回路ＣＯＭとスキャンチェーンＳＣａ１〜ＳＣａ３及びＳＣｂ１〜ＳＣｂ３との間のスキャン配線の配線長が短く、且つ、スキャン配線の混雑が、図７に比べて緩和される（図８の破線Ｂ２を参照）。これは、本実施形態の設計処理では、半導体集積回路ＬＳＩのモジュールの位置情報に基づいたネットリスト（即ち、本実施形態の第２ネットリスト）から、レイアウトデータが生成されるためである。
【００３８】
本実施形態に係る設計装置１の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、設計装置１の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【００３９】
また、本実施形態に係る設計装置１の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【００４０】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００４１】
１  設計装置
１０  コンピュータ
１１  論理合成部
１２  圧縮回路生成部
１３  スキャン合成部
１４  スキャンルールチェッカ
１５  レジスタ配置決定部
１６  圧縮回路変更部
１７  レイアウトデータ生成部
３０  メモリ
５０  ディスプレイ
【図１】
2013186620.tif 000003
【図２】
2013186620.tif 000004
【図３】
2013186620.tif 000005
【図４】
2013186620.tif 000006
【図５】
2013186620.tif 000007
【図６】
2013186620.tif 000008
【図７】
2013186620.tif 000009
【図８】
2013186620.tif 000010