(57)【要約】 【課題】半導体集積回路の開発期間を短縮し、且つ、レイアウトエラー確率を低減する。【解決手段】本発明の実施形態のネットリスト変換装置は、半導体集積回路を構成する複数のセルであって、第１遅延時間だけスキャン用データ信号を遅延させる第１スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換する。そのようなネットリスト変換装置は、論理ライブラリ３０と、ネットリスト変換部１８と、を備える。論理ライブラリ３０は、半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、第１スキャンフリップフロップの論理的機能を示す情報と、第１遅延時間より大きいスキャン用第２遅延時間だけデータ信号を遅延させる第２スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を記憶する。ネットリスト変換部１８は、セル論理情報を参照して、ネットリストの第１スキャンフリップフロップを第２スキャンフリップフロップに置換する。【選択図】図１
2013020382.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路を構成する複数のセルであって、第１遅延時間だけスキャン用データ信号を遅延させる第１スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換するネットリスト変換装置において、
前記半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、前記第１スキャンフリップフロップの論理的機能を示す情報と、前記第１遅延時間より大きい第２遅延時間だけスキャン用データ信号を遅延させる第２スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を記憶する論理ライブラリと、
前記セル論理情報を参照して、前記ネットリストの前記第１スキャンフリップフロップを前記第２スキャンフリップフロップに置換するネットリスト変換部と、を備える、ネットリスト変換装置。
【請求項２】
前記ネットリスト変換部は、前記ネットリストにおいて、所定の置換条件を具備する第１スキャンフリップフロップを置換対象スキャンフリップフロップとして決定し、前記置換対象スキャンフリップフロップに決まった前記第１スキャンフリップフロップを前記第２スキャンフリップフロップに置換する、請求項１に記載のネットリスト変換装置。
【請求項３】
前記ネットリスト変換部は、前記ネットリストにおいて、複数ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップであるという置換条件を具備する第１スキャンフリップフロップを前記置換対象スキャンフリップフロップとして決定する、請求項２に記載のネットリスト変換装置。
【請求項４】
前記セル論理情報は、さらに、前記第２遅延時間より大きい第３遅延時間だけスキャン用データ信号を遅延させる第３スキャンフリップフロップの論理的機能を示す情報を含み、
前記ネットリスト変換部は、前記ネットリストにおいて、
複数ビットであって所定の閾値より少ないビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップであるという第１置換条件を具備する第１スキャンフリップフロップを第１置換対象スキャンフリップフロップとして決定し、
前記閾値以上のビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップであるという第２置換条件を具備する第１スキャンフリップフロップを第２置換対象スキャンフリップフロップとして決定し、
前記第１置換対象スキャンフリップフロップに決まった第１スキャンフリップフロップを前記第２スキャンフリップフロップに置換し、
前記第２置換対象スキャンフリップフロップに決まった第１スキャンフリップフロップを前記第３スキャンフリップフロップに置換する、請求項３に記載のネットリスト変換装置。
【請求項５】
前記ネットリスト変換部は、前記ネットリストにおいて、置換禁止インスタンスのデータ信号を保持しないスキャンフリップフロップであるという条件と、前記置換条件と、を具備する第１スキャンフリップフロップを置換対象スキャンフリップフロップとして決定する、請求項２乃至４の何れかに記載のネットリスト変換装置。
【請求項６】
半導体集積回路の構成を示すＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述を論理式に変換する論理式変換部と、
前記論理式変換部が変換した論理式を圧縮する論理式圧縮部と、
前記論理ライブラリに記憶されたセル論理情報を参照しながら、前記論理式圧縮部が圧縮した論理式を実現する複数のセルであって、前記第１スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを作成するテクノロジマッピング部と、
前記セル論理情報を参照して、前記テクノロジマッピング部が作成したネットリストにおいて、前記第１スキャンフリップフロップを前記第２スキャンフリップフロップに置換するネットリスト変換部と、を備える、論理合成装置。
【請求項７】
半導体集積回路を構成する複数のセルであって、第１遅延時間だけスキャン用データ信号を遅延させる第１スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換する処理をコンピュータに実行させるコンピュータプログラムにおいて、
前記半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、前記第１スキャンフリップフロップの論理的機能を示す情報と、前記第１遅延時間より大きい第２遅延時間だけデータ信号を保持する第２スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を参照して、前記ネットリストの前記第１スキャンフリップフロップを前記第２スキャンフリップフロップに置換する手順を前記コンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットリスト変換装置、論理合成装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の開発フローは、論理合成工程及びレイアウト作成工程が行われる。
【０００３】
論理合成工程では、ハードウェア記述言語（以下「ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）」という）で記述されたＨＤＬ記述を用いてネットリストが作成される。
【０００４】
レイアウト作成工程では、ネットリストに基づいて、セットアップタイム及びホールドタイムを満たすような半導体集積回路のレイアウトを示すレイアウトデータが作成される。レイアウト作成工程では、セットアップタイムを満たすことを前提として複数のスキャンフリップフロップの配置と、各スキャンフリップフロップに与えるべきクロック信号用の配線の配置（以下「クロックツリー」という）と、を決定し、次いで、ホールドタイムを満たすように、複数のスキャンフリップフロップ間に配置すべきタイミング調整セルの位置を決定する。
【０００５】
しかしながら、タイミング調整セルの数は、ホールドタイムとスキャンフリップフロップの数に応じて増加する。従って、ホールドタイムが長くなるほど、タイミング調整セルの位置の決定の所要時間も長くなる。その結果、半導体集積回路の開発期間が長期化する。また、タイミング調整セルの位置の決定は、タイミング調整セルの数が増えるほど困難になる。その結果、タイミング調整セルの位置を決めることができない確率（以下「レイアウトエラー確率」という）が増加する。
【０００６】
特に、車両用の統合ＥＣＵ（Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）は、多くの機能をリアルタイムで処理するための大規模且つ高機能な半導体集積回路により実現されるので、極めて多くのタイミング調整セルが必要である。従って、このような半導体集積回路では、開発期間の長期化及びレイアウトエラー確率の増加もより顕著である。
【０００７】
上記のとおり、従来の半導体集積回路の開発フローでは、半導体集積回路の開発期間の短縮及びレイアウトエラー確率の低減が困難である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−２５９２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明が解決しようとする課題は、半導体集積回路の開発期間を短縮し、且つ、レイアウトエラー確率を低減することである。
【課題を解決するための手段】
【００１０】
本発明の実施形態のネットリスト変換装置は、半導体集積回路を構成する複数のセルであって、第１遅延時間だけスキャン用データ信号を遅延させる第１スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換する。そのようなネットリスト変換装置は、論理ライブラリと、ネットリスト変換部と、を備える。論理ライブラリは、半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、第１スキャンフリップフロップの論理的機能を示す情報と、第１遅延時間より大きい第２遅延時間だけスキャン用データ信号を遅延させる第２スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を記憶する。ネットリスト変換部は、セル論理情報を参照して、ネットリストの第１スキャンフリップフロップを第２スキャンフリップフロップに置換する。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態の半導体集積回路の開発システム１のブロック図。
【図２】第１実施形態の論理合成のフローチャート。
【図３】第１実施形態のネットリスト作成（Ｓ２０４）で得られるネットリストに対応する構成の一部を示す概略図。
【図４】第１実施形態のネットリスト変換（Ｓ２０６）のフローチャート。
【図５】第１実施形態の置換対象スキャンフリップフロップ決定（Ｓ４００）の説明図。
【図６】第１実施形態の置換対象スキャンフリップフロップ決定（Ｓ４００）の説明図。
【図７】図５のネットリストに基づいて、第１実施形態のネットリスト変換（Ｓ２０６）で得られるネットリストに対応する構成の一部を示す概略図。
【図８】図６のネットリストに基づいて、第１実施形態のネットリスト変換（Ｓ２０６）で得られるネットリストに対応する構成の一部を示す概略図。
【図９】第１実施形態のレイアウト作成のフローチャート。
【図１０】図７のネットリストに基づいて、第１実施形態のホールドタイミング最適化（Ｓ９０６）で得られるレイアウトに対応する構成の一部を示す概略図。
【図１１】図８のネットリストに基づいて、第１実施形態のホールドタイミング最適化（Ｓ９０６）で得られるレイアウトに対応する構成の一部を示す概略図。
【図１２】第２実施形態の置換対象スキャンフリップフロップ決定（Ｓ４００）の説明図。
【図１３】図５のネットリストに基づいて、第２実施形態のネットリスト変換（Ｓ２０６）で得られるネットリストに対応する構成の一部を示す概略図。
【図１４】図１３のネットリストに基づいて、第２実施形態のホールドタイミング最適化（Ｓ９０６）で得られるレイアウトに対応する構成の一部を示す概略図。
【発明を実施するための形態】
【００１２】
本実施形態について、図面を参照して説明する。
【００１３】
（第１実施形態）
第１実施形態について説明する。第１実施形態では、複数ビットで構成されたインスタンスのデータ信号を保持する第１スキャンフリップフロップを第２スキャンフリップフロップに置換する例について説明する。
【００１４】
第１実施形態の半導体集積回路の開発システム１について説明する。図１は、第１実施形態の半導体集積回路の開発システム１のブロック図である。
【００１５】
図１に示すように、半導体集積回路の開発システム１は、論理合成装置１０と、レイアウト作成装置２０と、論理ライブラリ３０と、レイアウトライブラリ４０と、を備える。論理ライブラリ３０には、ネットリストの作成に必要なセル論理情報が記憶される。レイアウトライブラリ４０には、レイアウトデータの作成に必要なセルレイアウト情報が記憶される。
【００１６】
論理合成装置１０は、論理合成装置１０のユーザが与えるＨＤＬ記述と、論理ライブラリ３０に記憶されたセル論理情報と、に基づいてネットリストを作成する。ＨＤＬ記述は、ＨＤＬで記述された半導体集積回路の構成を示すプログラムである。ネットリストは、半導体集積回路を構成する複数のセルの接続関係を示すデータである。論理合成装置１０は、論理合成アプリケーションのコンピュータプログラムを実行するコンピュータプロセッサであり、論理式変換部１２と、論理式圧縮部１４と、テクノロジマッピング部１６と、ネットリスト変換部１８と、を備える。
【００１７】
レイアウト作成装置２０は、論理合成装置１０が作成したネットリストと、レイアウトライブラリ４０に記憶されたセルレイアウト情報と、に基づいてレイアウトデータを作成する。レイアウト作成装置２０は、レイアウト作成アプリケーションのコンピュータプログラムを実行するコンピュータプロセッサであり、セル配置決定部２１と、セットアップタイミング最適化部２３と、クロックツリー合成部２５と、ホールドタイミング最適化部２７と、レイアウトデータ作成部２９と、を備える。
【００１８】
表１に示すように、セル論理情報は、「セル名」と、「ファンクション」と、「遅延時間」と、「セットアップタイム」と、「ホールドタイム」と、を含む。「セル名」には、セルの名称（例えば、「ＡＮＤゲート」、「ＯＲゲート」、「フリップフロップ」、「第１スキャンフリップフロップ」及び「第２スキャンフリップフロップ」）を示す情報が登録される。「ファンクション」には、セルの機能を示す情報が登録される。例えば、「ＡＮＤ演算」は複数の入力信号の論理積が出力信号であることを意味し、「ＯＲ演算」は複数の入力信号の論理和が出力信号であることを意味し、「データ保持」は半導体集積回路の動作時にデータ信号が保持されることを意味し、「データ保持（スキャンテスト）」は半導体集積回路のスキャンテスト用のデータ信号が保持されることを意味する。「遅延時間」には、セルが動作したときの信号の遅延時間が登録される。例えば、「Ｄａｎｄ」はＡＮＤゲートの遅延時間であり、「Ｄｏｒ」はＯＲゲートの遅延時間であり、「Ｄｔ０」はフリップフロップのデータ信号の遅延時間であり、「Ｄｔ１」は第１スキャンフリップフロップのデータ信号の遅延時間であり、「Ｄｔ２」は第２スキャンフリップフロップのデータ信号の遅延時間であり、「Ｄ１」は第１スキャンフリップフロップのスキャン用データ信号の遅延時間であり、「Ｄ２」は第２スキャンフリップフロップのスキャン用データ信号の遅延時間である。なお、第２スキャンフリップフロップの第２遅延時間Ｄ２は、第１スキャンフリップフロップの第１遅延時間Ｄ１より大きい。「セットアップタイム」には、フリップフロップ又はスキャンフリップフロップについて、クロック信号が発行される前にセルがデータ信号を保持すべき時間の最小時間を示すセットアップタイムが登録される。「Ｓｔ０」はフリップフロップのセットアップタイムであり、「Ｓｔ１」は第１スキャンフリップフロップのセットアップタイムであり、「Ｓｔ２」は第２スキャンフリップフロップのセットアップタイムである。「ホールドタイム」には、フリップフロップ又はスキャンフリップフロップについて、クロック信号が発行された後にセルがデータ信号を保持すべき最小時間を示すホールドタイムが登録される。「Ｈｔ０」はフリップフロップのホールドタイムであり、「Ｈｔ１」は第１スキャンフリップフロップのホールドタイムであり、「Ｈｔ２」は第２スキャンフリップフロップのホールドタイムである。即ち、セル論理情報とは、半導体集積回路を構成する複数のセルの論理的機能及びタイミング制約を示す情報である。
【表１】
2013020382.tif 000003
【００１９】
表２に示すように、セルレイアウト情報は、「セル名」と、「遅延時間」と、「セットアップタイム」と、「ホールドタイム」と、「セル面積」と、「ピン座標」と、を含む。「セル名」、「遅延時間」、「セットアップタイム」及び「ホールドタイム」は、セル論理情報と同様である。「セル面積」には、セルの面積を示す情報が登録される。例えば、「Ｓａｎｄ」はＡＮＤゲートの面積であり、「Ｓｏｒ」はＯＲゲートの面積であり、「Ｓ０」はフリップフロップの面積であり、「Ｓ１」は第１スキャンフリップフロップの面積であり、「Ｓ２」は第２スキャンフリップフロップの面積である。「ピン座標」には、セルのピンの座標が登録される。例えば、「Ｘａｎｄ，Ｙａｎｄ」はＡＮＤゲートのピンの座標であり、「Ｘｏｒ，Ｙｏｒ」はＯＲゲートのピンの座標であり、「Ｘ０，Ｙ０」はフリップフロップのピンの座標であり、「Ｘ１，Ｙ１」は第１スキャンフリップフロップのピンの座標であり、「Ｘ２，Ｙ２」は第２スキャンフリップフロップのピンの座標である。セルレイアウト情報とは、半導体集積回路を構成する複数のセルの物理的仕様及びタイミング制約を示す情報である。
【表２】
2013020382.tif 000004
【００２０】
第１実施形態の論理合成装置１０の動作について説明する。図２は、第１実施形態の論理合成のフローチャートである。
【００２１】
＜Ｓ２００＞  論理式変換部１２は、ＨＤＬ記述を論理式に変換する。例えば、論理式変換部１２は、ＨＤＬ記述において、ＡＮＤゲートに対応する部分をＡＮＤ演算式に変換し、ＯＲゲートに対応する部分をＯＲ演算式に変換し、レジスタに対応する部分をフリップフロップ用の論理式に変換し、スキャンチェインに対応する部分をスキャンフリップフロップ用の論理式に変換することにより、ＨＤＬ記述を論理式に変換する。
【００２２】
＜Ｓ２０２＞  論理式圧縮部１４は、論理式変換部１２が変換した論理式を圧縮する。例えば、論理式圧縮部１４は、複数の論理式の組み合わせを１つの論理式に置換することにより、論理式を圧縮する。なお、Ｓ２０２では、ＡＮＤ演算式及びＯＲ演算式は圧縮されるが、フリップフロップ用の論理式及びスキャンフリップフロップ用の論理式は圧縮されない。
【００２３】
＜Ｓ２０４＞  テクノロジマッピング部１６は、論理ライブラリ３０に記憶されたセル論理情報（表１を参照）を参照しながら、ネットリストを作成する。例えば、テクノロジマッピング部１６は、Ｓ２０２で得られた論理式を実現する複数のセル毎にインスタンスを割り当てることにより、ネットリストを作成する。
【００２４】
図３は、第１実施形態のネットリスト作成（Ｓ２０４）で得られるネットリストに対応する構成の一部を示す概略図である。図３に示すように、Ｓ２０４で得られるネットリストの一部は、第１スキャンフリップフロップ９１〜９６により構成されるスキャンチェインに対応する構成を示す。図３のネットリストでは、第１スキャンフリップフロップ９１が１ビットで構成されるインスタンスＡのデータ信号を保持し、第１スキャンフリップフロップ９２及び９３が３２ビットで構成されるインスタンスＢのデータ信号を保持し、第１スキャンフリップフロップ９４及び９５が６４ビットで構成されるインスタンスＣのデータ信号を保持し、第１スキャンフリップフロップ９６が１ビットで構成されるインスタンスＤのデータ信号を保持するように定義される。第１スキャンフリップフロップ９１〜９６は、それぞれ、データ信号を入力する入力端子Ｄと、クロック信号を入力するクロック端子ＣＰと、スキャンデータ信号を入力するスキャン入力端子ＴＩと、スキャンシフトイネーブル信号を入力するスキャンシフトイネーブル端子ＴＥと、データ信号を出力する出力端子Ｑと、スキャンデータ信号を出力するスキャン出力端子ＳＯと、を備える。図３のネットリストは、表１のセル論理情報を参照しながら作成されるので、第１スキャンフリップフロップ９１〜９６の遅延時間は、それぞれ、Ｄｔ１である。
【００２５】
＜Ｓ２０６＞  ネットリスト変換部１８は、Ｓ２０４で得られたネットリストにおいて、所定の置換条件を具備するセルを別のセルに置換する。これにより、ネットリストが変換される。
【００２６】
第１実施形態のネットリスト変換（Ｓ２０６）について説明する。図４は、第１実施形態のネットリスト変換（Ｓ２０６）のフローチャートである。図５及び図６は、第１実施形態の置換対象スキャンフリップフロップ決定（Ｓ４００）の説明図である。
【００２７】
＜Ｓ４００＞  ネットリスト変換部１８は、Ｓ２０４で得られたネットリストの第１スキャンフリップフロップ９１〜９６のうち、所定の置換条件を具備する第１スキャンフリップフロップを置換対象スキャンフリップフロップとして決定する。
【００２８】
図５に示すように、「Ｎ（Ｎは２以上）ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」という置換条件の下では、図３の第１スキャンフリップフロップ９１〜９６のうち、第１スキャンフリップフロップ９２〜９５が置換対象スキャンフリップフロップに決まる。なお、Ｎの値は、論理合成装置１０のユーザが任意に設定可能である。
【００２９】
図６に示すように、「Ｎ（Ｎは２以上）ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」且つ「置換禁止インスタンスＣのデータ信号を保持しないスキャンフリップフロップである」という置換条件の下では、図３の第１スキャンフリップフロップ９１〜９６のうち、第１スキャンフリップフロップ９２及び９３が置換対象スキャンフリップフロップに決まる。なお、置換禁止インスタンスは、論理合成装置１０のユーザが任意に設定可能である。
【００３０】
＜Ｓ４０２＞  ネットリスト変換部１８は、置換対象スキャンフリップフロップに決まった第１スキャンフリップフロップを第２スキャンフリップフロップに置換する。
【００３１】
図７は、図５のネットリストに基づいて、第１実施形態のネットリスト変換（Ｓ２０６）で得られるネットリストに対応する構成の一部を示す概略図である。図７に示すように、ネットリスト変換部１８は、第１スキャンフリップフロップ９２〜９５を、それぞれ、第２遅延時間Ｄ２に対応する第２スキャンフリップフロップ８２〜８５に置換する。
【００３２】
図８は、図６のネットリストに基づいて、第１実施形態のネットリスト変換（Ｓ２０６）で得られるネットリストに対応する構成の一部を示す概略図である。図８に示すように、ネットリスト変換部１８は、第１スキャンフリップフロップ９２及び９３を、それぞれ、第２遅延時間Ｄ２に対応する第２スキャンフリップフロップ８２及び８３に置換する。
【００３３】
第１実施形態のレイアウト作成装置２０の動作について説明する。図９は、第１実施形態のレイアウト作成のフローチャートである。
【００３４】
＜Ｓ９００＞  セル配置決定部２１は、レイアウトライブラリ４０に記憶されたセルレイアウト情報（表２を参照）を参照しながら、Ｓ２０６で得られたネットリストに対応するセル配置を決定する。
【００３５】
＜Ｓ９０２＞  セットアップタイミング最適化部２３は、セルレイアウト情報を参照しながら、各セルのセットアップタイミングがセットアップタイムを満たすように、Ｓ９００で決定したセル配置を変更する。
【００３６】
＜Ｓ９０４＞  クロックツリー合成部２５は、セルレイアウト情報を参照しながら、Ｓ９０２で得られたセルレイアウトに基づいて、複数のセルに供給すべきクロック信号の配線（以下「クロックツリー」という）を決定する。
【００３７】
＜Ｓ９０６＞  ホールドタイミング最適化部２７は、セルレイアウト情報を参照しながら、Ｓ９０２で得られたセルレイアウトと、Ｓ９０４で得られたクロックツリーと、に基づいて、各セルのホールドタイミングがホールドタイムを満たすように、複数のセル間に挿入すべきタイミング調整セルのレイアウトを決定する。なお、タイミング調整セルは、比較的サイズの小さいインバータで構成されるセルである。
【００３８】
図１０は、図７のネットリストに基づいて、第１実施形態のホールドタイミング最適化（Ｓ９０６）で得られるレイアウトに対応する構成の一部を示す概略図である。図１０に示すように、第１スキャンフリップフロップ９１及び９６の後段に、それぞれ、第１タイミング調整セル７１が挿入され、第２スキャンフリップフロップ８２〜８５の後段に、それぞれ、第２タイミング調整セル７２が挿入される。第２遅延時間Ｄ２は第１遅延時間Ｄ１より大きいので、第２タイミング調整セル７２を構成するインバータの数は第１タイミング調整セル７１を構成するインバータの数より少ない。
【００３９】
図１１は、図８のネットリストに基づいて、第１実施形態のホールドタイミング最適化（Ｓ９０６）で得られるレイアウトに対応する構成の一部を示す概略図である。図１１に示すように、第１スキャンフリップフロップ９１、９４〜９６の後段に、それぞれ、第１タイミング調整セル７１が挿入され、第２スキャンフリップフロップ８２及び８３の後段に、それぞれ、第２タイミング調整セル７２が挿入される。第２遅延時間Ｄ２は第１遅延時間Ｄ１より大きいので、第２タイミング調整セル７２を構成するインバータの数は第１タイミング調整セル７１を構成するインバータの数より少ない。
【００４０】
＜Ｓ９０８＞  レイアウトデータ作成部２９は、Ｓ９０２で得られたセルレイアウトと、Ｓ９０４で得られたクロックツリーと、Ｓ９０６で得られたタイミング調整セルのレイアウトと、に基づいて、複数のセル及びタイミング調整セルに接続すべきデータ信号の配線、並びにクロック信号の配線のレイアウトを決定する。これにより、図１０又は図１１の構成に対応するレイアウトデータが作成される。
【００４１】
仮に、Ｓ２０６が実行されなかった場合には、図３の構成についてレイアウト作成が実行される。この場合には、Ｓ９０８において、６個の第１スキャンフリップフロップ９１〜９６の後段に第１タイミング調整セル７１が挿入されたレイアウトデータが作成される。
【００４２】
これに対して、第１実施形態によれば、Ｓ２０６が実行される。この場合には、Ｓ９０８において、図１０又は図１１に示すように、第１スキャンフリップフロップの後段には第１タイミング調整セル７１が挿入されるものの、第２スキャンフリップフロップの後段には第２タイミング調整セル７２が挿入されたレイアウトデータが作成される。即ち、第１実施形態で得られるレイアウトデータのインバータの総数は、Ｓ２０６が実行されなかった場合に得られるレイアウトデータのインバータの総数より少ない。換言すると、第１実施形態によれば、遅延時間の大きい複数のセルが近傍に位置するように作成されるというネットリストの性質を利用して、挿入すべきタイミング調整セルのインバータの総数を低減できる。その結果、レイアウト作成（特に、Ｓ９０２及びＳ９０６）の所要時間が低減し、且つ、レイアウト作成が容易になる。それにより、半導体集積回路の開発期間を短縮でき、且つ、レイアウトエラー確率を低減できる。
【００４３】
また、第１実施形態によれば、図１１に示すように、置換禁止インスタンスのデータ信号を保持する第１スキャンフリップフロップ９４及び９５が置換対象から除外される。換言すると、ユーザは、置換対象スキャンフリップフロップを任意に決めることができ、それにより、半導体集積回路の開発効率を改善できる。なお、ネットリスト変換部１８は、データ信号のインスタンスが置換禁止インスタンスであるか否かに基づいて置換対象スキャンフリップフロップを決定するだけでなく、所定の外部ファイル（例えば、セル論理情報）に設定された置換禁止フラグに基づいて置換対象スキャンフリップフロップを決定しても良い。
【００４４】
（第２実施形態）
第２実施形態について説明する。第２実施形態では、複数ビットで構成されたインスタンスのデータ信号を保持する第１スキャンフリップフロップを、当該インスタンスのビット数に応じたスキャンフリップフロップ（第２スキャンフリップフロップ又は第３スキャンフリップフロップ）に置換する例について説明する。なお、上述の実施形態と同様の説明は省略する。
【００４５】
第２実施形態の開発システム１は、第１実施形態と同様である（図１を参照）。
【００４６】
表３に示すように、セル論理情報は、第１実施形態のセル論理情報と同様の情報に加えて（表１を参照）、「セル名」に、「第３スキャンフリップフロップ」を示す情報が登録され、「遅延時間」に、第３スキャンフリップフロップのデータ信号の遅延時間Ｄｔ３とスキャンデータ信号の遅延時間Ｄ３が登録され、「セットアップタイム」に第３スキャンフリップフロップのセットアップタイムＳｔ３が登録され、「ホールドタイム」に第３スキャンフリップフロップのホールドタイムＨｔ３が登録される。
【表３】
2013020382.tif 000005
【００４７】
表４に示すように、セルレイアウト情報は、第１実施形態のセルレイアウト情報と同様の情報に加えて（表２を参照）、「セル名」に、「第３スキャンフリップフロップ」を示す情報が登録され、「遅延時間」に、第３スキャンフリップフロップのデータ信号の遅延時間Ｄｔ３とスキャンデータ信号の遅延時間Ｄ３が登録され、「セットアップタイム」に第３スキャンフリップフロップのセットアップタイムＳｔ３が登録され、「ホールドタイム」に第３スキャンフリップフロップのホールドタイムＨｔ３が登録され、「セル面積」に第３スキャンフリップフロップのセル面積Ｓ３が登録され、「ピン座標」に第３スキャンフリップフロップのピン座標「Ｘ３，Ｙ３」が登録される。
【表４】
2013020382.tif 000006
【００４８】
第２実施形態の論理合成装置１０の動作について説明する。第２実施形態の論理合成のフローチャートは、第１実施形態と同様である（図２を参照）。また、第２実施形態のネットリスト変換（Ｓ２０６）のフローチャートは、第１実施形態と同様である（図４を参照）。図１２は、第２実施形態の置換対象スキャンフリップフロップ決定（Ｓ４００）の説明図である。
【００４９】
＜Ｓ４００＞  ネットリスト変換部１８は、Ｓ２０４で得られたネットリストの第１スキャンフリップフロップ９１〜９６のうち、所定の置換条件を具備する第１スキャンフリップフロップを置換対象スキャンフリップフロップとして決定する。
【００５０】
図１２に示すように、「Ｐ（２≦Ｐ≦３２）ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」という第１置換条件（１）及び「Ｑ（Ｑ＞３２）ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」という第２置換条件（２）の下では、図３の第１スキャンフリップフロップ９１〜９６のうち、第１スキャンフリップフロップ９２及び９３が第１置換対象スキャンフリップフロップに決まり、第１スキャンフリップフロップ９４及び９５が第２置換対象スキャンフリップフロップに決まる。なお、Ｐ及びＱの値は、論理合成装置１０のユーザが任意に設定可能である。
【００５１】
＜Ｓ４０２＞  ネットリスト変換部１８は、第１置換対象スキャンフリップフロップに決まった第１スキャンフリップフロップを第２スキャンフリップフロップに置換し、第２置換対象スキャンフリップフロップに決まった第１スキャンフリップフロップを第３スキャンフリップフロップに置換する。
【００５２】
図１３は、図５のネットリストに基づいて、第２実施形態のネットリスト変換（Ｓ２０６）で得られるネットリストに対応する構成の一部を示す概略図である。図１３に示すように、ネットリスト変換部１８は、第１スキャンフリップフロップ９２及び９３を、それぞれ、第２遅延時間Ｄ２に対応する第２スキャンフリップフロップ８２及び８３に置換し、第１スキャンフリップフロップ９４及び９５を、それぞれ、第３遅延時間Ｄ３に対応する第３スキャンフリップフロップ５４及び５５に置換する。
【００５３】
第２実施形態のレイアウト作成のフローチャートは、第１実施形態と同様である（図９を参照）。
【００５４】
図１４は、図１３のネットリストに基づいて、第２実施形態のホールドタイミング最適化（Ｓ９０６）で得られるレイアウトに対応する構成の一部を示す概略図である。図１４に示すように、第１スキャンフリップフロップ９１及び９６の後段に、それぞれ、第１タイミング調整セル７１が挿入され、第２スキャンフリップフロップ８２及び８３の後段に、それぞれ、第２タイミング調整セル７２が挿入され、第３スキャンフリップフロップ５４及び５５の後段に、それぞれ、第３タイミング調整セル７３が挿入される。第２遅延時間Ｄ２は第１遅延時間Ｄ１より大きく、且つ、第３遅延時間Ｄ３は第２遅延時間Ｄ２より大きいので、第２タイミング調整セル７２を構成するインバータの数は第１タイミング調整セル７１を構成するインバータの数より少なく、且つ、第３タイミング調整セル７３を構成するインバータの数は第２タイミング調整セル７２を構成するインバータの数より少ない。
【００５５】
第２実施形態によれば、スキャンフリップフロップ置換（Ｓ４０２）で、第１スキャンフリップフロップを、第１スキャンフリップフロップが保持するデータ信号のビット数に応じたスキャンフリップフロップ（第２スキャンフリップフロップ又は第３スキャンフリップフロップ）に置換する。この場合には、図１４に示すように、第１スキャンフリップフロップの後段には第１タイミング調整セル７１が挿入されるものの、第２スキャンフリップフロップの後段には第２タイミング調整セル７２が挿入され、第３スキャンフリップフロップの後段には第３タイミング調整セル７３が挿入される。即ち、第２実施形態で得られるレイアウトデータのインバータの総数は、第１実施形態で得られるレイアウトデータのインバータの総数より少ない。換言すると、第２実施形態によれば、挿入すべきタイミング調整セルのインバータの総数を第１実施形態より低減できる。その結果、第１実施形態に比べて、レイアウト作成（特に、Ｓ９０２及びＳ９０６）の所要時間が低減し、且つ、レイアウト作成が容易になる。それにより、第１実施形態に比べて、半導体集積回路の開発期間を短縮でき、且つ、レイアウトエラー確率を低減できる。
【００５６】
特に、第２実施形態では、Ｐ及びＱの値が大きい方が好ましい。Ｐ及びＱの値が大きいほど、置換対象スキャンフリップフロップの数が増える。その結果、配置すべきタイミング調整セルのインバータの総数が低減する。
【００５７】
また、第２実施形態では、Ｐ及びＱの初期値を大きく設定し、好適なネットリストが得られるまで、Ｐ及びＱの値を小さくしながらＳ２０６を繰り返し実行することが好ましい。その結果、レイアウトエラー確率をさらに低減できる。
【００５８】
なお、第２実施形態では、第１スキャンフリップフロップを、２種類のスキャンフリップフロップの何れか（第２スキャンフリップフロップ又は第３スキャンフリップフロップ）に置換する例について説明したが、本発明の範囲はこれに限られるものではない。本発明は、第１スキャンフリップフロップを、第１スキャンフリップフロップが保持するデータ信号を構成するインスタンスのビット数に応じた３種類以上のスキャンフリップフロップの何れかに置換する場合にも適用可能である。この場合には、Ｐ及びＱ等の閾値が３つ以上設定される。
【００５９】
なお、上述の実施形態では、ネットリスト変換部１８が論理合成装置１０に組み込まれる例について説明したが、本発明の範囲はこれに限られるものではない。本発明は、ネットリスト変換部１８が、論理合成装置１０及びレイアウト作成装置２０から独立して設けられる場合、又は、レイアウト作成装置２０に組み込まれる場合にも適用可能である。なお、ネットリスト変換部１８がレイアウト作成装置２０に組み込まれる場合には、レイアウト作成装置２０は、レイアウトライブラリ４０だけでなく、論理ライブラリ３０も参照可能に構成される。
【００６０】
本実施形態に係る論理合成装置１０及びレイアウト作成装置２０の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、論理合成装置１０及びレイアウト作成装置２０の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【００６１】
また、本実施形態に係る論理合成装置１０及びレイアウト作成装置２０の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【００６２】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００６３】
１  開発システム
１０  論理合成装置
１２  論理式変換部
１４  論理式圧縮部
１６  テクノロジマッピング部
１８  ネットリスト変換部
２０  レイアウト作成装置
２１  セル配置決定部
２３  セットアップタイミング最適化部
２５  クロックツリー合成部
２７  ホールドタイミング最適化部
２９  レイアウトデータ作成部
３０  論理ライブラリ
４０  レイアウトライブラリ
【図１】
2013020382.tif 000007
【図２】
2013020382.tif 000008
【図３】
2013020382.tif 000009
【図４】
2013020382.tif 000010
【図５】
2013020382.tif 000011
【図６】
2013020382.tif 000012
【図７】
2013020382.tif 000013
【図８】
2013020382.tif 000014
【図９】
2013020382.tif 000015
【図１０】
2013020382.tif 000016
【図１１】
2013020382.tif 000017
【図１２】
2013020382.tif 000018
【図１３】
2013020382.tif 000019
【図１４】
2013020382.tif 000020