(57)【要約】【課題】回路中に設けた所要のフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計システム、ＬＳＩ設計プログラム、ＬＳＩ設計装置において、短時間で適正な位置に遅延素子を挿入可能としたＬＳＩ設計システム、ＬＳＩ設計プログラム、ＬＳＩ設計装置を提供する。【解決手段】フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出し、検出したホールドパスに遅延素子を挿入した遅延素子挿入回路を生成し、この遅延素子挿入回路における各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出し、この周波数パスのみに対してホールドパスを用いて共通パスの検出を行い、検出した共通パスに基づいて遅延素子の挿入位置を決定する。【選択図】図２
2005215934.tif 000002
【特許請求の範囲】
【請求項１】
回路中に設けた所要のフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計システムにおいて、
前記フリップフロップに接続したパスから前記遅延素子が挿入されるホールドパスを検出し、検出した前記ホールドパスに前記遅延素子を挿入した遅延素子挿入回路を生成し、この遅延素子挿入回路における前記各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出し、この周波数パスのみに対して前記ホールドパスを用いて共通パスの検出を行い、検出した前記共通パスに基づいて前記遅延素子の挿入位置を決定していることを特徴とするＬＳＩ設計システム。
【請求項２】
回路中に設けたフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計プログラムにおいて、
前記フリップフロップに接続したパスから前記遅延素子が挿入されるホールドパスを検出し、このホールドパスの検出情報に基づいて第１データベースを生成するステップと、
検出した前記ホールドパスに前記遅延素子を挿入した遅延素子挿入回路を生成するステップと、
前記遅延素子挿入回路における前記各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出し、この周波数パスの検出情報に基づいて第２データベースを生成するステップと、
前記第１データベースと前記第２データベースとを用いて共通パスを検出し、前記遅延素子の挿入位置を決定するステップと
を有することを特徴とするＬＳＩ設計プログラム。
【請求項３】
回路中に設けたフリップフロップのタイミング解析を行う解析手段を有するＬＳＩ設計装置において、
前記フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出するホールドパス検出手段と、
検出した前記ホールドパスに前記遅延素子を挿入した遅延素子挿入回路を生成する遅延素子挿入回路生成手段と、
前記遅延素子挿入回路における前記各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出する周波数パス検出手段と、
前記周波数パスの検出情報のみに対して前記ホールドパスの検出情報を用いて共通パスを検出し、前記遅延素子の挿入位置を決定する挿入位置手段と
からなる解析手段を有することを特徴とするＬＳＩ設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ設計システム及びＬＳＩ設計プログラム及びＬＳＩ設計装置に関するものである。
【背景技術】
【０００２】
従来、電子回路を半導体基板上に構成してＬＳＩ（Large‐Scale Integrated circuit）化する場合には、次のような段階を経ることにより効率よくＬＳＩ設計を行っている。
（１）アーキテクチャ設計：作成する電子回路の仕様に基づいて命令セットの記述及びマイクロプログラムの作成を行う。
（２）機能設計：命令セットを実現するための具体的なハードウェアを、レジスタ、演算単位、トランスファ素子等の構成要素を用いて機能回路を設計する。
（３）論理設計：機能回路に基づいてＮＡＮＤ、ＮＯＲ、フリップフロップといった基本回路を用いて論理回路を設計する。
（４）回路設計：論理回路に基づいてトランジスタ、抵抗体等のデバイスを用いて表現したトランジスタ回路を設計する。
（５）レイアウト設計：トランジスタ回路に基づいて半導体基板に各デバイスを配置するために必要となるマスクパターンを設計する。
【０００３】
このようにして設計されたマスクパターンを用いながら順次製造することにより、所要のＬＳＩが製造されている。
【０００４】
ここで、回路設計において設計したトランジスタ回路に基づいて各素子のレイアウトを行い、各素子を接続する所要の配置配線を行った際には、あらかじめ設定したＬＳＩの動作速度周波数に基づいて、トランジスタ回路内に設けたフリップフロップにタイミング制約の違反が生じていないかを検証するタイミング解析を行っている。
【０００５】
このタイミング解析は、通常、電子計算機を用いたシミュレーションによって行っており、フリップフロップ間に設けた各種論理素子における遅延や、配線の遅延を考慮して動作シミュレーションを行うことによりフリップフロップのタイミング制約違反の有無を検証している（例えば、特許文献１参照。）。
【０００６】
そして、タイミング解析の結果、フリップフロップの入力端子に接続したパスにおいて、ホールドマージンが満たされないパスを発見した場合には、フリップフロップの前段のパスに遅延素子を挿入してホールドマージンを満たすようにしている。このように遅延素子が挿入されるパスを「ホールドパス」と呼ぶ。
【０００７】
この遅延素子の挿入は、ホールドパスのどこに行ってもよいと言うわけではなく、次のような禁止条件が存在している。
【０００８】
すなわち、図３を用いて具体的に説明すると、まず、第１フリップフロップ110の出力と第２フリップフロップ120の出力とが論理素子からなる第１素子210に入力され、第１素子210の出力が第３フリップフロップ130に入力されているものとし、第１素子210の出力端子と第３フリップフロップ130の入力端子とは第１接続パス310で接続して他の論理素子からなる素子が存在していないものとする。
【０００９】
さらに、第２フリップフロップ120と第１素子210との間には論理素子からなる第２素子220を設け、第２素子220の出力端子と第１素子210の入力端子とを第２接続パス320で接続するとともに、第２素子220の入力端子と第２フリップフロップ120の出力端子とを第３接続パス330で接続する一方で、第１フリップフロップ110と第１素子210との間には論理素子からなる第３素子230と、第４素子240と、第５素子250を設け、第３素子230の出力端子と第１素子210の入力端子とを第４接続パス340で接続し、第４素子240の出力端子と第３素子230の入力端子とを第５接続パス350で接続し、第５素子250の出力端子と第４素子240の入力端子とを第６接続パス360で接続し、第５素子250の入力端子と第１フリップフロップ110の出力端子とを第７接続パス370で接続しているものとする。
【００１０】
そして、第１フリップフロップ110と第３フリップフロップ130とを接続しているパスは、第５素子250と、第４素子240と、第３素子230と、第１素子210とが存在していることによってそれぞれの素子250,240,230,210による遅延の影響によって、ＬＳＩの動作速度周波数によって制約される周波数スペックがかろうじて満たされているものとする。
【００１１】
このような場合において、第２フリップフロップ120と第３フリップフロップ130とを接続しているパスがホールドパスとなっていたとすると、第１接続パス310または第２接続パス320または第３接続パス330のいずれか一つの中途部分に遅延素子を挿入するのであるが、第１フリップフロップ110と第３フリップフロップ130とを接続しているパスと、第２フリップフロップ120と第３フリップフロップ130とを接続しているパスとが共に使用している第１接続パス310の部分に遅延素子を挿入すると、第１フリップフロップ110と第３フリップフロップ130とを接続しているパスでは、挿入した遅延素子による遅延の影響によって周波数スペックを満たすことができなくなり、タイミング制約の違反が生じることとなる。
【００１２】
このように遅延素子を挿入することによってタイミング制約の違反が生じ、タイミング解析においてエラーとなるパスを「周波数パス」と呼ぶ。また、図３の第１接続パス310のように、ホールドパスの一部となるとともに周波数パスの一部ともなる接続パスを「共通パス」と呼ぶ。
【００１３】
したがって、遅延素子を挿入する場合には、共通パス部分への遅延素子の挿入を禁止しており、タイミング解析の際には、あらかじめ周波数パスの検出を行うとともにホールドパスの検出を行って、これらの検出結果から共通パスの検出を行うことにより遅延素子の挿入位置を決定し、遅延素子を挿入していた。
【特許文献１】特開２００２−７３７１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、共通パスを検出するために、全ての周波数パス情報と、全てのホールドパス情報とから共通パス解析を行った場合には、膨大なパスの組み合わせが発生するために、その処理に多大な時間を要するという問題があった。
【００１５】
そこで、本発明者は、この処理時間を大幅に削減させるために研究開発を行い、本発明を成すに至ったものである。
【課題を解決するための手段】
【００１６】
本発明のＬＳＩ設計システムでは、回路中に設けた所要のフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計システムにおいて、フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出し、検出したホールドパスに遅延素子を挿入した遅延素子挿入回路を生成し、この遅延素子挿入回路における各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出し、この周波数パスのみに対してホールドパスを用いて共通パスの検出を行い、検出した共通パスに基づいて遅延素子の挿入位置を決定することとした。
【００１７】
また、本発明のＬＳＩ設計プログラムでは、回路中に設けたフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計プログラムにおいて、フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出し、このホールドパスの検出情報に基づいて第１データベースを生成するステップと、検出したホールドパスに遅延素子を挿入した遅延素子挿入回路を生成するステップと、遅延素子挿入回路における各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出し、この周波数パスの検出情報に基づいて第２データベースを生成するステップと、第１データベースと第２データベースとを用いて共通パスを検出し、遅延素子の挿入位置を決定するステップとを設けた。
【００１８】
また、本発明のＬＳＩ設計装置では、回路中に設けたフリップフロップのタイミング解析を行う解析手段を有するＬＳＩ設計装置において、フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出するホールドパス検出手段と、検出したホールドパスに遅延素子を挿入した遅延素子挿入回路を生成する遅延素子挿入回路生成手段と、遅延素子挿入回路における各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出する周波数パス検出手段と、周波数パスの検出情報のみに対してホールドパスの検出情報を用いて共通パスを検出し、遅延素子の挿入位置を決定する挿入位置手段とからなる解析手段を有することとした。
【発明の効果】
【００１９】
請求項１記載の発明によれば、回路中に設けた所要のフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計システムにおいて、フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出し、検出したホールドパスに遅延素子を挿入した遅延素子挿入回路を生成し、この遅延素子挿入回路における各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出し、この周波数パスのみに対してホールドパスを用いて共通パスの検出を行い、検出した共通パスに基づいて遅延素子の挿入位置を決定することによって、遅延素子の挿入位置の調整が必要な周波数パスだけが検出されることとなるので、不必要な周波数パスの検出を防止して、短時間で所要の遅延素子の設計における挿入作業を行うことができる。
【００２０】
請求項２記載の発明によれば、回路中に設けたフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計プログラムにおいて、フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出し、このホールドパスの検出情報に基づいて第１データベースを生成するステップと、検出したホールドパスに遅延素子を挿入した遅延素子挿入回路を生成するステップと、遅延素子挿入回路における各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出し、この周波数パスの検出情報に基づいて第２データベースを生成するステップと、第１データベースと第２データベースとを用いて共通パスを検出し、遅延素子の挿入位置を決定するステップとを設けたことによって、請求項１記載の発明と同様に、遅延素子の挿入位置の調整が必要な周波数パスだけを検出することができるので、不必要な周波数パスの検出を防止して、短時間で所要の遅延素子の設計における挿入作業を行うことができる。
【００２１】
請求項３記載の発明によれば、回路中に設けたフリップフロップのタイミング解析を行う解析手段を有するＬＳＩ設計装置において、フリップフロップに接続したパスから遅延素子が挿入されるホールドパスを検出するホールドパス検出手段と、検出したホールドパスに遅延素子を挿入した遅延素子挿入回路を生成する遅延素子挿入回路生成手段と、遅延素子挿入回路における各フリップフロップに接続したパスからタイミング解析においてエラーを生じる周波数パスを検出する周波数パス検出手段と、周波数パスの検出情報のみに対してホールドパスの検出情報を用いて共通パスを検出し、遅延素子の挿入位置を決定する挿入位置手段とからなる解析手段を有することによって、請求項１記載の発明と同様に、不必要な周波数パスの検出を防止して遅延素子の挿入位置の調整が必要な周波数パスだけを検出することができるので、適正な部分への遅延素子の挿入作業を速やかに行うことができ、短時間で遅延素子の挿入作業を終了することができる。
【発明を実施するための最良の形態】
【００２２】
本発明のＬＳＩ設計システム、及びＬＳＩ設計プログラム、及びＬＳＩ設計装置では、回路中に設けた所要のフリップフロップの前段に遅延素子を挿入してタイミングを調整するＬＳＩ設計システム、及びＬＳＩ設計プログラム、及びＬＳＩ設計装置において、タイミング解析でエラーを生じる周波数パスの検出件数を必要最小限とすることによって、周波数パスとホールドパスとの共通パスの検出作業量を削減し、ホールドパスに挿入する遅延素子の適正な挿入位置決定処理の迅速化を図っているものである。
【００２３】
すなわち、遅延素子の挿入が必要なホールドパスにはあらかじめ遅延素子を挿入し、遅延素子を挿入した遅延素子挿入回路に基づいてタイミング解析を実行することによって、遅延素子を挿入したにもかかわらずタイミング解析においてエラーとならないパスでは、遅延素子を挿入した位置が共通パスであるかどうかにかかわらずその位置に遅延素子を挿入できるので、そのホールドパスにおける共通パスの検出作業を不要とすることができる。
【００２４】
そして、遅延素子を挿入したことによってタイミング解析においてエラーとなったパス、すなわち周波数パスでは、遅延素子の挿入位置が共通パス部分であるために、この場合にだけ共通パスの検出を行って遅延素子の挿入位置を決定することにより、検出しなければならない周波数パスの数を必要最小限とすることができるので、短時間で所要の遅延素子の設計における挿入作業を行うことができる。
【００２５】
以下において、図面に基づいて本発明の実施形態を詳説する。図１は、本実施形態のＬＳＩ設計装置Ａの概略説明図である。
【００２６】
ＬＳＩ設計装置Ａは、演算処理を行う中央演算装置（ＣＰＵ）１と、バス２を介してそれぞれ中央演算装置１と接続したマウス３，キーボード４、ディスプレイ５、ＲＯＭやＲＡＭあるいはハードディスク等によって構成した記憶部６とから構成している。
【００２７】
特に、記憶部６には、後述する処理を実行するためのプログラムを格納したプログラム記憶領域6a、設計している回路の回路情報を記憶する回路情報記憶領域6b、さらに、後述するように検出したホールドパスの情報を記憶する第１データベース記憶領域6c、及び検出した周波数パスの情報を記憶する第２データベース記憶領域6d、及び検出したホールドパスに遅延素子を挿入した遅延素子挿入回路の回路情報を記憶する遅延素子挿入回路情報記憶領域6eを設けている。
【００２８】
ＬＳＩ設計装置Ａでは、マウス３あるいはキーボード４から入力された作業者による操作命令に基づいて、プログラム記憶領域6aに格納した所要のプログラムを動作させて、回路情報記憶領域6bに記憶された回路情報を用いながらホールドパスの検出を行い、次いで検出したホールドパスの情報を第１データベース記憶領域6cに記憶するとともにホールドパスの情報に基づいて生成した遅延素子挿入回路の回路情報を遅延素子挿入回路情報記憶領域6eに記憶し、次いで遅延素子挿入回路の回路情報に基づいて検出した周波数パスの情報を第２データベース記憶領域6dに記憶し、次いで第１データベース記憶領域6cと第２データベース記憶領域6dとを用いて共通パスの検出を行って遅延素子の挿入位置を決定し、その挿入位置に遅延素子を挿入した回路情報を回路情報記憶領域6bに記憶している。
【００２９】
以下において、図２に示すフローチャートに基づいて、ＬＳＩ設計装置Ａの動作について詳説する。
【００３０】
ＬＳＩ設計装置Ａにおいて、設計されたトランジスタ回路に基づいて各素子のレイアウトを行い、各素子を接続する所要の配置配線を行った後、トランジスタ回路内に設けたフリップフロップのタイミング解析を行う処理に達すると、ＬＳＩ設計装置Ａでは、まず、配置配線に対する実配線容量から算出される各配線での遅延量を回路情報記憶領域6bに記憶して、各配線での遅延量を設定する（ステップS1）。
【００３１】
次いで、ＬＳＩ設計装置Ａでは、回路情報記憶領域6bに記憶された回路情報に基づいて一次タイミング解析を実行する。この一次タイミング解析では、各フリップフロップのホールドマージンの検証を行い、ホールドマージンが満たされないホールドパスを検出している。すなわち、一次タイミング解析はホールドパス検出用タイミング解析である（ステップS2）。
【００３２】
検出したホールドパスの情報、すなわちどのフリップフロップの前段に接続されているパスがホールドパスであるかという情報は、第１データベース記憶領域6cに設けた第１データベースに登録して記憶している（ステップS3）。
【００３３】
次いで、ＬＳＩ設計装置Ａでは、検出されたホールドパスに所要の遅延素子を挿入した遅延素子挿入回路を生成し、この遅延素子挿入回路の回路情報を遅延素子挿入回路情報記憶領域6eに記憶している（ステップS4）。
【００３４】
このとき、遅延素子が挿入される接続パス部分では、その接続パスで構成される配線における遅延量を、遅延素子の遅延量と、遅延素子に接続した接続パスの仮容量に基づく仮遅延量との和に変更している。
【００３５】
なお、ホールドパスに遅延素子を挿入する場合には、通常、設計上の簡便さのためにホールドマージンを満たしていないフリップフロップの直前段に挿入しており、本実施形態でも、遅延素子はホールドマージンを満たしていないフリップフロップの直前段に挿入しているものとする。
【００３６】
次いで、ＬＳＩ設計装置Ａでは、生成した遅延素子挿入回路の各フリップフロップに接続したパスにおいて、遅延素子の挿入の影響による遅延のために周波数スペックを満たすことができなくなって、タイミング制約違反によるエラーを生じるパスである周波数パスを検出するための二次タイミング解析を実行する。すなわち、二次タイミング解析は周波数パス検出用タイミング解析である（ステップS5）。
【００３７】
検出した周波数パスの情報、すなわちどのフリップフロップの前段に接続されているパスが周波数パスであるかという情報は、第２データベース記憶領域6dに設けた第２データベースに登録して記憶している（ステップS6）。
【００３８】
次いで、ＬＳＩ設計装置Ａでは、第１データベース記憶領域6cに記憶された第１データベースと、第２データベース記憶領域6dに記憶された第２データベースとを用いて、ホールドパスと周波数パスとの共用部分である共通パスの検出を行う（ステップS7）。
【００３９】
そして、ＬＳＩ設計装置Ａでは、検出した共通パス部分以外のホールドパス上に遅延素子を新たに挿入するように挿入位置を決定する（ステップS8）。
【００４０】
ちなみに、遅延素子が挿入されたにもかかわらず、その遅延素子を含むパスが周波数パスとして検出されなかったパスは、はじめに遅延素子を挿入した位置が適正な挿入位置であるとして処理される。
【００４１】
この遅延素子の挿入位置情報に基づいて、ＬＳＩ設計装置Ａでは、回路情報記憶領域6bに記憶している回路情報を更新して、所要の位置に遅延素子が挿入された回路情報を新たに記憶している（ステップS9）。
【００４２】
そして、ＬＳＩ設計装置Ａでは、更新された回路情報に基づいてレイアウト設計の次の処理を実行している。
【００４３】
このように、ＬＳＩ設計装置Ａでは、あらかじめ検出したホールドパスに遅延素子を挿入した後に周波数パスの検出を行う段階的なタイミング解析からなる解析手段を設けたことにより、遅延素子の挿入によって周波数パスとなるパスを確実に検出することができる。
【００４４】
したがって、従来では共通パスを検出するためにホールドパスの検出数よりも多くのパスを周波数パスとして検出するように周波数パス検出のタイミング解析を行っていたが、周波数パスの検出数がホールドパスの検出数よりも少なくても確実な共通パスの検出を実行できるので、共通パスの検出作業時間を削減して、短時間で遅延素子の挿入作業を終了することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明に係るＬＳＩ設計装置の概略説明図である。
【図２】本発明に係るＬＳＩ設計装置における動作説明用フローチャートである。
【図３】ホールドパスと周波数パス及び共通パスの説明図である。
【符号の説明】
【００４６】
Ａ  ＬＳＩ設計装置
１  中央演算装置（ＣＰＵ）
２  バス
３  マウス
４  キーボード
５  ディスプレイ
６  記憶部
6a  プログラム記憶領域
6b  回路情報記憶領域
6c  第１データベース記憶領域
6d  第２データベース記憶領域
6e  遅延素子挿入回路情報記憶領域
【図１】
2005215934.tif 000003
【図２】
2005215934.tif 000004
【図３】
2005215934.tif 000005