説明

ネットリスト変換装置、論理合成装置及びコンピュータプログラム

【課題】半導体集積回路の開発期間を短縮し、且つ、レイアウトエラー確率を低減する。
【解決手段】本発明の実施形態のネットリスト変換装置は、半導体集積回路を構成する複数のセルであって、第1遅延時間だけスキャン用データ信号を遅延させる第1スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換する。そのようなネットリスト変換装置は、論理ライブラリ30と、ネットリスト変換部18と、を備える。論理ライブラリ30は、半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、第1スキャンフリップフロップの論理的機能を示す情報と、第1遅延時間より大きいスキャン用第2遅延時間だけデータ信号を遅延させる第2スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を記憶する。ネットリスト変換部18は、セル論理情報を参照して、ネットリストの第1スキャンフリップフロップを第2スキャンフリップフロップに置換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ネットリスト変換装置、論理合成装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
半導体集積回路の開発フローは、論理合成工程及びレイアウト作成工程が行われる。
【0003】
論理合成工程では、ハードウェア記述言語(以下「HDL(Hardware Description Language)」という)で記述されたHDL記述を用いてネットリストが作成される。
【0004】
レイアウト作成工程では、ネットリストに基づいて、セットアップタイム及びホールドタイムを満たすような半導体集積回路のレイアウトを示すレイアウトデータが作成される。レイアウト作成工程では、セットアップタイムを満たすことを前提として複数のスキャンフリップフロップの配置と、各スキャンフリップフロップに与えるべきクロック信号用の配線の配置(以下「クロックツリー」という)と、を決定し、次いで、ホールドタイムを満たすように、複数のスキャンフリップフロップ間に配置すべきタイミング調整セルの位置を決定する。
【0005】
しかしながら、タイミング調整セルの数は、ホールドタイムとスキャンフリップフロップの数に応じて増加する。従って、ホールドタイムが長くなるほど、タイミング調整セルの位置の決定の所要時間も長くなる。その結果、半導体集積回路の開発期間が長期化する。また、タイミング調整セルの位置の決定は、タイミング調整セルの数が増えるほど困難になる。その結果、タイミング調整セルの位置を決めることができない確率(以下「レイアウトエラー確率」という)が増加する。
【0006】
特に、車両用の統合ECU(Engine Control Unit)は、多くの機能をリアルタイムで処理するための大規模且つ高機能な半導体集積回路により実現されるので、極めて多くのタイミング調整セルが必要である。従って、このような半導体集積回路では、開発期間の長期化及びレイアウトエラー確率の増加もより顕著である。
【0007】
上記のとおり、従来の半導体集積回路の開発フローでは、半導体集積回路の開発期間の短縮及びレイアウトエラー確率の低減が困難である。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2002−259284号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明が解決しようとする課題は、半導体集積回路の開発期間を短縮し、且つ、レイアウトエラー確率を低減することである。
【課題を解決するための手段】
【0010】
本発明の実施形態のネットリスト変換装置は、半導体集積回路を構成する複数のセルであって、第1遅延時間だけスキャン用データ信号を遅延させる第1スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換する。そのようなネットリスト変換装置は、論理ライブラリと、ネットリスト変換部と、を備える。論理ライブラリは、半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、第1スキャンフリップフロップの論理的機能を示す情報と、第1遅延時間より大きい第2遅延時間だけスキャン用データ信号を遅延させる第2スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を記憶する。ネットリスト変換部は、セル論理情報を参照して、ネットリストの第1スキャンフリップフロップを第2スキャンフリップフロップに置換する。
【図面の簡単な説明】
【0011】
【図1】第1実施形態の半導体集積回路の開発システム1のブロック図。
【図2】第1実施形態の論理合成のフローチャート。
【図3】第1実施形態のネットリスト作成(S204)で得られるネットリストに対応する構成の一部を示す概略図。
【図4】第1実施形態のネットリスト変換(S206)のフローチャート。
【図5】第1実施形態の置換対象スキャンフリップフロップ決定(S400)の説明図。
【図6】第1実施形態の置換対象スキャンフリップフロップ決定(S400)の説明図。
【図7】図5のネットリストに基づいて、第1実施形態のネットリスト変換(S206)で得られるネットリストに対応する構成の一部を示す概略図。
【図8】図6のネットリストに基づいて、第1実施形態のネットリスト変換(S206)で得られるネットリストに対応する構成の一部を示す概略図。
【図9】第1実施形態のレイアウト作成のフローチャート。
【図10】図7のネットリストに基づいて、第1実施形態のホールドタイミング最適化(S906)で得られるレイアウトに対応する構成の一部を示す概略図。
【図11】図8のネットリストに基づいて、第1実施形態のホールドタイミング最適化(S906)で得られるレイアウトに対応する構成の一部を示す概略図。
【図12】第2実施形態の置換対象スキャンフリップフロップ決定(S400)の説明図。
【図13】図5のネットリストに基づいて、第2実施形態のネットリスト変換(S206)で得られるネットリストに対応する構成の一部を示す概略図。
【図14】図13のネットリストに基づいて、第2実施形態のホールドタイミング最適化(S906)で得られるレイアウトに対応する構成の一部を示す概略図。
【発明を実施するための形態】
【0012】
本実施形態について、図面を参照して説明する。
【0013】
(第1実施形態)
第1実施形態について説明する。第1実施形態では、複数ビットで構成されたインスタンスのデータ信号を保持する第1スキャンフリップフロップを第2スキャンフリップフロップに置換する例について説明する。
【0014】
第1実施形態の半導体集積回路の開発システム1について説明する。図1は、第1実施形態の半導体集積回路の開発システム1のブロック図である。
【0015】
図1に示すように、半導体集積回路の開発システム1は、論理合成装置10と、レイアウト作成装置20と、論理ライブラリ30と、レイアウトライブラリ40と、を備える。論理ライブラリ30には、ネットリストの作成に必要なセル論理情報が記憶される。レイアウトライブラリ40には、レイアウトデータの作成に必要なセルレイアウト情報が記憶される。
【0016】
論理合成装置10は、論理合成装置10のユーザが与えるHDL記述と、論理ライブラリ30に記憶されたセル論理情報と、に基づいてネットリストを作成する。HDL記述は、HDLで記述された半導体集積回路の構成を示すプログラムである。ネットリストは、半導体集積回路を構成する複数のセルの接続関係を示すデータである。論理合成装置10は、論理合成アプリケーションのコンピュータプログラムを実行するコンピュータプロセッサであり、論理式変換部12と、論理式圧縮部14と、テクノロジマッピング部16と、ネットリスト変換部18と、を備える。
【0017】
レイアウト作成装置20は、論理合成装置10が作成したネットリストと、レイアウトライブラリ40に記憶されたセルレイアウト情報と、に基づいてレイアウトデータを作成する。レイアウト作成装置20は、レイアウト作成アプリケーションのコンピュータプログラムを実行するコンピュータプロセッサであり、セル配置決定部21と、セットアップタイミング最適化部23と、クロックツリー合成部25と、ホールドタイミング最適化部27と、レイアウトデータ作成部29と、を備える。
【0018】
表1に示すように、セル論理情報は、「セル名」と、「ファンクション」と、「遅延時間」と、「セットアップタイム」と、「ホールドタイム」と、を含む。「セル名」には、セルの名称(例えば、「ANDゲート」、「ORゲート」、「フリップフロップ」、「第1スキャンフリップフロップ」及び「第2スキャンフリップフロップ」)を示す情報が登録される。「ファンクション」には、セルの機能を示す情報が登録される。例えば、「AND演算」は複数の入力信号の論理積が出力信号であることを意味し、「OR演算」は複数の入力信号の論理和が出力信号であることを意味し、「データ保持」は半導体集積回路の動作時にデータ信号が保持されることを意味し、「データ保持(スキャンテスト)」は半導体集積回路のスキャンテスト用のデータ信号が保持されることを意味する。「遅延時間」には、セルが動作したときの信号の遅延時間が登録される。例えば、「Dand」はANDゲートの遅延時間であり、「Dor」はORゲートの遅延時間であり、「Dt0」はフリップフロップのデータ信号の遅延時間であり、「Dt1」は第1スキャンフリップフロップのデータ信号の遅延時間であり、「Dt2」は第2スキャンフリップフロップのデータ信号の遅延時間であり、「D1」は第1スキャンフリップフロップのスキャン用データ信号の遅延時間であり、「D2」は第2スキャンフリップフロップのスキャン用データ信号の遅延時間である。なお、第2スキャンフリップフロップの第2遅延時間D2は、第1スキャンフリップフロップの第1遅延時間D1より大きい。「セットアップタイム」には、フリップフロップ又はスキャンフリップフロップについて、クロック信号が発行される前にセルがデータ信号を保持すべき時間の最小時間を示すセットアップタイムが登録される。「St0」はフリップフロップのセットアップタイムであり、「St1」は第1スキャンフリップフロップのセットアップタイムであり、「St2」は第2スキャンフリップフロップのセットアップタイムである。「ホールドタイム」には、フリップフロップ又はスキャンフリップフロップについて、クロック信号が発行された後にセルがデータ信号を保持すべき最小時間を示すホールドタイムが登録される。「Ht0」はフリップフロップのホールドタイムであり、「Ht1」は第1スキャンフリップフロップのホールドタイムであり、「Ht2」は第2スキャンフリップフロップのホールドタイムである。即ち、セル論理情報とは、半導体集積回路を構成する複数のセルの論理的機能及びタイミング制約を示す情報である。
【表1】

【0019】
表2に示すように、セルレイアウト情報は、「セル名」と、「遅延時間」と、「セットアップタイム」と、「ホールドタイム」と、「セル面積」と、「ピン座標」と、を含む。「セル名」、「遅延時間」、「セットアップタイム」及び「ホールドタイム」は、セル論理情報と同様である。「セル面積」には、セルの面積を示す情報が登録される。例えば、「Sand」はANDゲートの面積であり、「Sor」はORゲートの面積であり、「S0」はフリップフロップの面積であり、「S1」は第1スキャンフリップフロップの面積であり、「S2」は第2スキャンフリップフロップの面積である。「ピン座標」には、セルのピンの座標が登録される。例えば、「Xand,Yand」はANDゲートのピンの座標であり、「Xor,Yor」はORゲートのピンの座標であり、「X0,Y0」はフリップフロップのピンの座標であり、「X1,Y1」は第1スキャンフリップフロップのピンの座標であり、「X2,Y2」は第2スキャンフリップフロップのピンの座標である。セルレイアウト情報とは、半導体集積回路を構成する複数のセルの物理的仕様及びタイミング制約を示す情報である。
【表2】

【0020】
第1実施形態の論理合成装置10の動作について説明する。図2は、第1実施形態の論理合成のフローチャートである。
【0021】
<S200> 論理式変換部12は、HDL記述を論理式に変換する。例えば、論理式変換部12は、HDL記述において、ANDゲートに対応する部分をAND演算式に変換し、ORゲートに対応する部分をOR演算式に変換し、レジスタに対応する部分をフリップフロップ用の論理式に変換し、スキャンチェインに対応する部分をスキャンフリップフロップ用の論理式に変換することにより、HDL記述を論理式に変換する。
【0022】
<S202> 論理式圧縮部14は、論理式変換部12が変換した論理式を圧縮する。例えば、論理式圧縮部14は、複数の論理式の組み合わせを1つの論理式に置換することにより、論理式を圧縮する。なお、S202では、AND演算式及びOR演算式は圧縮されるが、フリップフロップ用の論理式及びスキャンフリップフロップ用の論理式は圧縮されない。
【0023】
<S204> テクノロジマッピング部16は、論理ライブラリ30に記憶されたセル論理情報(表1を参照)を参照しながら、ネットリストを作成する。例えば、テクノロジマッピング部16は、S202で得られた論理式を実現する複数のセル毎にインスタンスを割り当てることにより、ネットリストを作成する。
【0024】
図3は、第1実施形態のネットリスト作成(S204)で得られるネットリストに対応する構成の一部を示す概略図である。図3に示すように、S204で得られるネットリストの一部は、第1スキャンフリップフロップ91〜96により構成されるスキャンチェインに対応する構成を示す。図3のネットリストでは、第1スキャンフリップフロップ91が1ビットで構成されるインスタンスAのデータ信号を保持し、第1スキャンフリップフロップ92及び93が32ビットで構成されるインスタンスBのデータ信号を保持し、第1スキャンフリップフロップ94及び95が64ビットで構成されるインスタンスCのデータ信号を保持し、第1スキャンフリップフロップ96が1ビットで構成されるインスタンスDのデータ信号を保持するように定義される。第1スキャンフリップフロップ91〜96は、それぞれ、データ信号を入力する入力端子Dと、クロック信号を入力するクロック端子CPと、スキャンデータ信号を入力するスキャン入力端子TIと、スキャンシフトイネーブル信号を入力するスキャンシフトイネーブル端子TEと、データ信号を出力する出力端子Qと、スキャンデータ信号を出力するスキャン出力端子SOと、を備える。図3のネットリストは、表1のセル論理情報を参照しながら作成されるので、第1スキャンフリップフロップ91〜96の遅延時間は、それぞれ、Dt1である。
【0025】
<S206> ネットリスト変換部18は、S204で得られたネットリストにおいて、所定の置換条件を具備するセルを別のセルに置換する。これにより、ネットリストが変換される。
【0026】
第1実施形態のネットリスト変換(S206)について説明する。図4は、第1実施形態のネットリスト変換(S206)のフローチャートである。図5及び図6は、第1実施形態の置換対象スキャンフリップフロップ決定(S400)の説明図である。
【0027】
<S400> ネットリスト変換部18は、S204で得られたネットリストの第1スキャンフリップフロップ91〜96のうち、所定の置換条件を具備する第1スキャンフリップフロップを置換対象スキャンフリップフロップとして決定する。
【0028】
図5に示すように、「N(Nは2以上)ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」という置換条件の下では、図3の第1スキャンフリップフロップ91〜96のうち、第1スキャンフリップフロップ92〜95が置換対象スキャンフリップフロップに決まる。なお、Nの値は、論理合成装置10のユーザが任意に設定可能である。
【0029】
図6に示すように、「N(Nは2以上)ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」且つ「置換禁止インスタンスCのデータ信号を保持しないスキャンフリップフロップである」という置換条件の下では、図3の第1スキャンフリップフロップ91〜96のうち、第1スキャンフリップフロップ92及び93が置換対象スキャンフリップフロップに決まる。なお、置換禁止インスタンスは、論理合成装置10のユーザが任意に設定可能である。
【0030】
<S402> ネットリスト変換部18は、置換対象スキャンフリップフロップに決まった第1スキャンフリップフロップを第2スキャンフリップフロップに置換する。
【0031】
図7は、図5のネットリストに基づいて、第1実施形態のネットリスト変換(S206)で得られるネットリストに対応する構成の一部を示す概略図である。図7に示すように、ネットリスト変換部18は、第1スキャンフリップフロップ92〜95を、それぞれ、第2遅延時間D2に対応する第2スキャンフリップフロップ82〜85に置換する。
【0032】
図8は、図6のネットリストに基づいて、第1実施形態のネットリスト変換(S206)で得られるネットリストに対応する構成の一部を示す概略図である。図8に示すように、ネットリスト変換部18は、第1スキャンフリップフロップ92及び93を、それぞれ、第2遅延時間D2に対応する第2スキャンフリップフロップ82及び83に置換する。
【0033】
第1実施形態のレイアウト作成装置20の動作について説明する。図9は、第1実施形態のレイアウト作成のフローチャートである。
【0034】
<S900> セル配置決定部21は、レイアウトライブラリ40に記憶されたセルレイアウト情報(表2を参照)を参照しながら、S206で得られたネットリストに対応するセル配置を決定する。
【0035】
<S902> セットアップタイミング最適化部23は、セルレイアウト情報を参照しながら、各セルのセットアップタイミングがセットアップタイムを満たすように、S900で決定したセル配置を変更する。
【0036】
<S904> クロックツリー合成部25は、セルレイアウト情報を参照しながら、S902で得られたセルレイアウトに基づいて、複数のセルに供給すべきクロック信号の配線(以下「クロックツリー」という)を決定する。
【0037】
<S906> ホールドタイミング最適化部27は、セルレイアウト情報を参照しながら、S902で得られたセルレイアウトと、S904で得られたクロックツリーと、に基づいて、各セルのホールドタイミングがホールドタイムを満たすように、複数のセル間に挿入すべきタイミング調整セルのレイアウトを決定する。なお、タイミング調整セルは、比較的サイズの小さいインバータで構成されるセルである。
【0038】
図10は、図7のネットリストに基づいて、第1実施形態のホールドタイミング最適化(S906)で得られるレイアウトに対応する構成の一部を示す概略図である。図10に示すように、第1スキャンフリップフロップ91及び96の後段に、それぞれ、第1タイミング調整セル71が挿入され、第2スキャンフリップフロップ82〜85の後段に、それぞれ、第2タイミング調整セル72が挿入される。第2遅延時間D2は第1遅延時間D1より大きいので、第2タイミング調整セル72を構成するインバータの数は第1タイミング調整セル71を構成するインバータの数より少ない。
【0039】
図11は、図8のネットリストに基づいて、第1実施形態のホールドタイミング最適化(S906)で得られるレイアウトに対応する構成の一部を示す概略図である。図11に示すように、第1スキャンフリップフロップ91、94〜96の後段に、それぞれ、第1タイミング調整セル71が挿入され、第2スキャンフリップフロップ82及び83の後段に、それぞれ、第2タイミング調整セル72が挿入される。第2遅延時間D2は第1遅延時間D1より大きいので、第2タイミング調整セル72を構成するインバータの数は第1タイミング調整セル71を構成するインバータの数より少ない。
【0040】
<S908> レイアウトデータ作成部29は、S902で得られたセルレイアウトと、S904で得られたクロックツリーと、S906で得られたタイミング調整セルのレイアウトと、に基づいて、複数のセル及びタイミング調整セルに接続すべきデータ信号の配線、並びにクロック信号の配線のレイアウトを決定する。これにより、図10又は図11の構成に対応するレイアウトデータが作成される。
【0041】
仮に、S206が実行されなかった場合には、図3の構成についてレイアウト作成が実行される。この場合には、S908において、6個の第1スキャンフリップフロップ91〜96の後段に第1タイミング調整セル71が挿入されたレイアウトデータが作成される。
【0042】
これに対して、第1実施形態によれば、S206が実行される。この場合には、S908において、図10又は図11に示すように、第1スキャンフリップフロップの後段には第1タイミング調整セル71が挿入されるものの、第2スキャンフリップフロップの後段には第2タイミング調整セル72が挿入されたレイアウトデータが作成される。即ち、第1実施形態で得られるレイアウトデータのインバータの総数は、S206が実行されなかった場合に得られるレイアウトデータのインバータの総数より少ない。換言すると、第1実施形態によれば、遅延時間の大きい複数のセルが近傍に位置するように作成されるというネットリストの性質を利用して、挿入すべきタイミング調整セルのインバータの総数を低減できる。その結果、レイアウト作成(特に、S902及びS906)の所要時間が低減し、且つ、レイアウト作成が容易になる。それにより、半導体集積回路の開発期間を短縮でき、且つ、レイアウトエラー確率を低減できる。
【0043】
また、第1実施形態によれば、図11に示すように、置換禁止インスタンスのデータ信号を保持する第1スキャンフリップフロップ94及び95が置換対象から除外される。換言すると、ユーザは、置換対象スキャンフリップフロップを任意に決めることができ、それにより、半導体集積回路の開発効率を改善できる。なお、ネットリスト変換部18は、データ信号のインスタンスが置換禁止インスタンスであるか否かに基づいて置換対象スキャンフリップフロップを決定するだけでなく、所定の外部ファイル(例えば、セル論理情報)に設定された置換禁止フラグに基づいて置換対象スキャンフリップフロップを決定しても良い。
【0044】
(第2実施形態)
第2実施形態について説明する。第2実施形態では、複数ビットで構成されたインスタンスのデータ信号を保持する第1スキャンフリップフロップを、当該インスタンスのビット数に応じたスキャンフリップフロップ(第2スキャンフリップフロップ又は第3スキャンフリップフロップ)に置換する例について説明する。なお、上述の実施形態と同様の説明は省略する。
【0045】
第2実施形態の開発システム1は、第1実施形態と同様である(図1を参照)。
【0046】
表3に示すように、セル論理情報は、第1実施形態のセル論理情報と同様の情報に加えて(表1を参照)、「セル名」に、「第3スキャンフリップフロップ」を示す情報が登録され、「遅延時間」に、第3スキャンフリップフロップのデータ信号の遅延時間Dt3とスキャンデータ信号の遅延時間D3が登録され、「セットアップタイム」に第3スキャンフリップフロップのセットアップタイムSt3が登録され、「ホールドタイム」に第3スキャンフリップフロップのホールドタイムHt3が登録される。
【表3】

【0047】
表4に示すように、セルレイアウト情報は、第1実施形態のセルレイアウト情報と同様の情報に加えて(表2を参照)、「セル名」に、「第3スキャンフリップフロップ」を示す情報が登録され、「遅延時間」に、第3スキャンフリップフロップのデータ信号の遅延時間Dt3とスキャンデータ信号の遅延時間D3が登録され、「セットアップタイム」に第3スキャンフリップフロップのセットアップタイムSt3が登録され、「ホールドタイム」に第3スキャンフリップフロップのホールドタイムHt3が登録され、「セル面積」に第3スキャンフリップフロップのセル面積S3が登録され、「ピン座標」に第3スキャンフリップフロップのピン座標「X3,Y3」が登録される。
【表4】

【0048】
第2実施形態の論理合成装置10の動作について説明する。第2実施形態の論理合成のフローチャートは、第1実施形態と同様である(図2を参照)。また、第2実施形態のネットリスト変換(S206)のフローチャートは、第1実施形態と同様である(図4を参照)。図12は、第2実施形態の置換対象スキャンフリップフロップ決定(S400)の説明図である。
【0049】
<S400> ネットリスト変換部18は、S204で得られたネットリストの第1スキャンフリップフロップ91〜96のうち、所定の置換条件を具備する第1スキャンフリップフロップを置換対象スキャンフリップフロップとして決定する。
【0050】
図12に示すように、「P(2≦P≦32)ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」という第1置換条件(1)及び「Q(Q>32)ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップである」という第2置換条件(2)の下では、図3の第1スキャンフリップフロップ91〜96のうち、第1スキャンフリップフロップ92及び93が第1置換対象スキャンフリップフロップに決まり、第1スキャンフリップフロップ94及び95が第2置換対象スキャンフリップフロップに決まる。なお、P及びQの値は、論理合成装置10のユーザが任意に設定可能である。
【0051】
<S402> ネットリスト変換部18は、第1置換対象スキャンフリップフロップに決まった第1スキャンフリップフロップを第2スキャンフリップフロップに置換し、第2置換対象スキャンフリップフロップに決まった第1スキャンフリップフロップを第3スキャンフリップフロップに置換する。
【0052】
図13は、図5のネットリストに基づいて、第2実施形態のネットリスト変換(S206)で得られるネットリストに対応する構成の一部を示す概略図である。図13に示すように、ネットリスト変換部18は、第1スキャンフリップフロップ92及び93を、それぞれ、第2遅延時間D2に対応する第2スキャンフリップフロップ82及び83に置換し、第1スキャンフリップフロップ94及び95を、それぞれ、第3遅延時間D3に対応する第3スキャンフリップフロップ54及び55に置換する。
【0053】
第2実施形態のレイアウト作成のフローチャートは、第1実施形態と同様である(図9を参照)。
【0054】
図14は、図13のネットリストに基づいて、第2実施形態のホールドタイミング最適化(S906)で得られるレイアウトに対応する構成の一部を示す概略図である。図14に示すように、第1スキャンフリップフロップ91及び96の後段に、それぞれ、第1タイミング調整セル71が挿入され、第2スキャンフリップフロップ82及び83の後段に、それぞれ、第2タイミング調整セル72が挿入され、第3スキャンフリップフロップ54及び55の後段に、それぞれ、第3タイミング調整セル73が挿入される。第2遅延時間D2は第1遅延時間D1より大きく、且つ、第3遅延時間D3は第2遅延時間D2より大きいので、第2タイミング調整セル72を構成するインバータの数は第1タイミング調整セル71を構成するインバータの数より少なく、且つ、第3タイミング調整セル73を構成するインバータの数は第2タイミング調整セル72を構成するインバータの数より少ない。
【0055】
第2実施形態によれば、スキャンフリップフロップ置換(S402)で、第1スキャンフリップフロップを、第1スキャンフリップフロップが保持するデータ信号のビット数に応じたスキャンフリップフロップ(第2スキャンフリップフロップ又は第3スキャンフリップフロップ)に置換する。この場合には、図14に示すように、第1スキャンフリップフロップの後段には第1タイミング調整セル71が挿入されるものの、第2スキャンフリップフロップの後段には第2タイミング調整セル72が挿入され、第3スキャンフリップフロップの後段には第3タイミング調整セル73が挿入される。即ち、第2実施形態で得られるレイアウトデータのインバータの総数は、第1実施形態で得られるレイアウトデータのインバータの総数より少ない。換言すると、第2実施形態によれば、挿入すべきタイミング調整セルのインバータの総数を第1実施形態より低減できる。その結果、第1実施形態に比べて、レイアウト作成(特に、S902及びS906)の所要時間が低減し、且つ、レイアウト作成が容易になる。それにより、第1実施形態に比べて、半導体集積回路の開発期間を短縮でき、且つ、レイアウトエラー確率を低減できる。
【0056】
特に、第2実施形態では、P及びQの値が大きい方が好ましい。P及びQの値が大きいほど、置換対象スキャンフリップフロップの数が増える。その結果、配置すべきタイミング調整セルのインバータの総数が低減する。
【0057】
また、第2実施形態では、P及びQの初期値を大きく設定し、好適なネットリストが得られるまで、P及びQの値を小さくしながらS206を繰り返し実行することが好ましい。その結果、レイアウトエラー確率をさらに低減できる。
【0058】
なお、第2実施形態では、第1スキャンフリップフロップを、2種類のスキャンフリップフロップの何れか(第2スキャンフリップフロップ又は第3スキャンフリップフロップ)に置換する例について説明したが、本発明の範囲はこれに限られるものではない。本発明は、第1スキャンフリップフロップを、第1スキャンフリップフロップが保持するデータ信号を構成するインスタンスのビット数に応じた3種類以上のスキャンフリップフロップの何れかに置換する場合にも適用可能である。この場合には、P及びQ等の閾値が3つ以上設定される。
【0059】
なお、上述の実施形態では、ネットリスト変換部18が論理合成装置10に組み込まれる例について説明したが、本発明の範囲はこれに限られるものではない。本発明は、ネットリスト変換部18が、論理合成装置10及びレイアウト作成装置20から独立して設けられる場合、又は、レイアウト作成装置20に組み込まれる場合にも適用可能である。なお、ネットリスト変換部18がレイアウト作成装置20に組み込まれる場合には、レイアウト作成装置20は、レイアウトライブラリ40だけでなく、論理ライブラリ30も参照可能に構成される。
【0060】
本実施形態に係る論理合成装置10及びレイアウト作成装置20の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、論理合成装置10及びレイアウト作成装置20の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【0061】
また、本実施形態に係る論理合成装置10及びレイアウト作成装置20の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【0062】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0063】
1 開発システム
10 論理合成装置
12 論理式変換部
14 論理式圧縮部
16 テクノロジマッピング部
18 ネットリスト変換部
20 レイアウト作成装置
21 セル配置決定部
23 セットアップタイミング最適化部
25 クロックツリー合成部
27 ホールドタイミング最適化部
29 レイアウトデータ作成部
30 論理ライブラリ
40 レイアウトライブラリ

【特許請求の範囲】
【請求項1】
半導体集積回路を構成する複数のセルであって、第1遅延時間だけスキャン用データ信号を遅延させる第1スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換するネットリスト変換装置において、
前記半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、前記第1スキャンフリップフロップの論理的機能を示す情報と、前記第1遅延時間より大きい第2遅延時間だけスキャン用データ信号を遅延させる第2スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を記憶する論理ライブラリと、
前記セル論理情報を参照して、前記ネットリストの前記第1スキャンフリップフロップを前記第2スキャンフリップフロップに置換するネットリスト変換部と、を備える、ネットリスト変換装置。
【請求項2】
前記ネットリスト変換部は、前記ネットリストにおいて、所定の置換条件を具備する第1スキャンフリップフロップを置換対象スキャンフリップフロップとして決定し、前記置換対象スキャンフリップフロップに決まった前記第1スキャンフリップフロップを前記第2スキャンフリップフロップに置換する、請求項1に記載のネットリスト変換装置。
【請求項3】
前記ネットリスト変換部は、前記ネットリストにおいて、複数ビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップであるという置換条件を具備する第1スキャンフリップフロップを前記置換対象スキャンフリップフロップとして決定する、請求項2に記載のネットリスト変換装置。
【請求項4】
前記セル論理情報は、さらに、前記第2遅延時間より大きい第3遅延時間だけスキャン用データ信号を遅延させる第3スキャンフリップフロップの論理的機能を示す情報を含み、
前記ネットリスト変換部は、前記ネットリストにおいて、
複数ビットであって所定の閾値より少ないビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップであるという第1置換条件を具備する第1スキャンフリップフロップを第1置換対象スキャンフリップフロップとして決定し、
前記閾値以上のビットで構成されるインスタンスのデータ信号を保持するスキャンフリップフロップであるという第2置換条件を具備する第1スキャンフリップフロップを第2置換対象スキャンフリップフロップとして決定し、
前記第1置換対象スキャンフリップフロップに決まった第1スキャンフリップフロップを前記第2スキャンフリップフロップに置換し、
前記第2置換対象スキャンフリップフロップに決まった第1スキャンフリップフロップを前記第3スキャンフリップフロップに置換する、請求項3に記載のネットリスト変換装置。
【請求項5】
前記ネットリスト変換部は、前記ネットリストにおいて、置換禁止インスタンスのデータ信号を保持しないスキャンフリップフロップであるという条件と、前記置換条件と、を具備する第1スキャンフリップフロップを置換対象スキャンフリップフロップとして決定する、請求項2乃至4の何れかに記載のネットリスト変換装置。
【請求項6】
半導体集積回路の構成を示すHDL(Hardware Description Language)記述を論理式に変換する論理式変換部と、
前記論理式変換部が変換した論理式を圧縮する論理式圧縮部と、
前記論理ライブラリに記憶されたセル論理情報を参照しながら、前記論理式圧縮部が圧縮した論理式を実現する複数のセルであって、前記第1スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを作成するテクノロジマッピング部と、
前記セル論理情報を参照して、前記テクノロジマッピング部が作成したネットリストにおいて、前記第1スキャンフリップフロップを前記第2スキャンフリップフロップに置換するネットリスト変換部と、を備える、論理合成装置。
【請求項7】
半導体集積回路を構成する複数のセルであって、第1遅延時間だけスキャン用データ信号を遅延させる第1スキャンフリップフロップを含む複数のセルの接続関係を示すネットリストを変換する処理をコンピュータに実行させるコンピュータプログラムにおいて、
前記半導体集積回路を構成する複数のセルの論理的機能を示す情報を含むセル論理情報であって、前記第1スキャンフリップフロップの論理的機能を示す情報と、前記第1遅延時間より大きい第2遅延時間だけデータ信号を保持する第2スキャンフリップフロップの論理的機能を示す情報と、を含むセル論理情報を参照して、前記ネットリストの前記第1スキャンフリップフロップを前記第2スキャンフリップフロップに置換する手順を前記コンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2013−20382(P2013−20382A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2011−152217(P2011−152217)
【出願日】平成23年7月8日(2011.7.8)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】