(57)【特許請求の範囲】
【請求項１】
コンピュータが回路内の複数のセルの配置及び配線の設計を前記各セルの情報を含む回路情報に基づいて行う回路設計方法において、該コンピュータが、
前記セルのパラメータ値毎に用意され、該セルの入力側回路の入力スルー値と負荷値との組み合せに対応する遅延時間の正負を示す値を格納した、複数のパレメータ値テーブルのうち１つを、前記回路情報中のセルのパラメータ値に基づいて特定する第１のテーブル特定手順と、
前記回路情報に基づいて計算された前記入力側回路の入力スルー値と負荷値とに基づいて、前記第１のテーブル特定手順において特定されたパラメータ値テーブル上の表位置を特定する第１の表位置特定手順と、
前記第１のテーブル特定手順において特定されたパラメータ値テーブル以外の各パラメータ値テーブル内の、前記第１の表位置特定手順において特定された表位置と同一の表位置を、パラメータ値が増える順に順次参照することによって、参照される遅延時間が正から負或いは負から正へと変わるときのパラメータ値を取得するパラメータ値取得手順と、
前記回路情報の前記セルのパラメータ値を、前記パラメータ値取得手順において取得されたパラメータ値に変更する回路構成変更手順とを実行することを特徴とする回路設計方法。
【請求項２】
前記コンピュータが、
前記セルの前記入力側回路のイオン注入量毎に用意され、該入力側回路の入力スルー値と負荷値との組み合わせに対応する遅延時間の正負を示す値を格納した、複数のイオン注入量テーブルのうち１つを、前記回路情報中のイオン注入量に基づいて特定する第２のテーブル特定手順と、
前記回路情報に基づいて計算された入力スルー値と負荷値とに基づいて、前記第２のテーブル特定手順において特定されたイオン注入テーブル上の表位置を特定する第２の表位置特定手順と、
前記第２のテーブル特定手順において特定されたイオン注入テーブル以外の各イオン注入テーブルの、前記第２の表位置特定手順において特定された表位置と同一の表位置を、イオン注入量が増える順に順次参照することによって、参照される遅延時間が正から負に変わる直前の正の遅延時間を示すイオン注入量を特定するイオン注入量特定手順と、
前記回路情報の前記イオン注入量を、前記イオン注入量特定手順において特定したイオン注入量に変更するイオン注入量指定変更手順とを実行することを特徴とする請求項１記載の回路設計方法。
【請求項３】
コンピュータによって回路内の複数のセルの配置及び配線の設計を前記各セルの情報を含む回路情報に基づいて行うシミュレーションシステムであって、
前記セルのパラメータ値毎に用意され、該セルの入力側回路の入力スルー値と負荷値との組み合せに対応する遅延時間の正負を示す値を格納した、複数のパレメータ値テーブルのうち１つを、前記回路情報中のセルのパラメータ値に基づいて特定する第１のテーブル特定手段と、
前記回路情報に基づいて計算された前記入力側回路の入力スルー値と負荷値とに基づいて、前記第１のテーブル特定手段において特定されたパラメータ値テーブル上の表位置を特定する第１の表位置特定手段と、
前記第１のテーブル特定手段において特定されたパラメータ値テーブル以外の各パラメータ値テーブル内の、前記第１の表位置特定手段において特定された表位置と同一の表位置を、パラメータ値が増える順に順次参照することによって、参照される遅延時間が正から負或いは負から正へと変わるときのパラメータ値を取得するパラメータ値取得手段と、
前記回路情報の前記セルのパラメータ値を、前記パラメータ値取得手段において取得されたパラメータ値に変更する回路構成変更手段とを有することを特徴とするミュレーションシステム。
【請求項４】
前記セルの前記入力側回路のイオン注入量毎に用意され、該入力側回路の入力スルー値と負荷値との組み合わせに対応する遅延時間の正負を示す値を格納した、複数のイオン注入量テーブルのうち１つを、前記回路情報中のイオン注入量に基づいて特定する第２のテーブル特定手段と、
前記回路情報に基づいて計算された入力スルー値と負荷値とに基づいて、前記第２のテーブル特定手段において特定されたイオン注入テーブル上の表位置を特定する第２の表位置特定手段と、
前記第２のテーブル特定手段において特定されたイオン注入テーブル以外の各イオン注入テーブルの、前記第２の表位置特定手段において特定された表位置と同一の表位置を、イオン注入量が増える順に順次参照することによって、参照される遅延時間が正から負に変わる直前の正の遅延時間を示すイオン注入量を特定するイオン注入量特定手段と、
前記回路情報の前記イオン注入量を、前記イオン注入量特定手段において特定したイオン注入量に変更するイオン注入量指定変更手段とを有することを特徴とする請求項３記載のミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の回路設計方法に関し、特に、バッファを挿入することなく負の遅延を回避するように入力トランジスタの構成を変更する回路設計方法及びシミュレーションシステムに関する。
【背景技術】
【０００２】
従来より、半導体集積回路の微細化に伴うと共に、その動作の高速化が重要となってきている。動作を高速に行うために、従来の集積回路設計において、配線経路における遅延時間の計測が行われてきた。また、その遅延時間の計測結果に基づいて、回路の変更或いは配線の変更等を自動的に行う回路設計を支援するシミュレーションソフトウェアが開発されてきた。
【０００３】
例えば、所定値を超える遅延時間の配線経路について遅延時間を短縮する修正を行うようにした半導体装置の設計方法が提案されている（特許文献１）。
【０００４】
また、設計データのタイミング検証結果からフリップフロップの各々に供給されるデータ信号及びクロック信号の各々のレベル遷移時間を抽出して、各レベル遷移時間の差に合わせてフリップフロップのタイミング設計規格に対するタイミング特性を最適化することによって、データ信号及びクロック信号波形の劣化に起因する遷移時間差による誤動作を防止するようにした自動回路設計方法が提案されている（特許文献２）。
【特許文献１】特開平９−３１９７７５号公報
【特許文献２】特開平１０−９１６６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、半導体集積回路の微細化に伴い、ゲート長も短くなり、電源電圧を低くすることが可能となり、また、低減電圧化によりトランジスタの閾値電圧（Ｖth）も低くなり、そのため回路動作も速くなる一方で、回路に入力する波形がなまると、入力信号が十分にスイングする以前に出力が変化してしまうことによって負の遅延時間となり、回路の遅延時間を正確に表現することが困難となる場合があった。
【０００６】
上記従来技術では、負の遅延時間による回路の遅延時間を正確に表現することができない場合について考慮していないため、その解決方法を提供していない。従って、入力波形がなまることによる負の遅延時間を解決するためには、なまりのない入力波形となるように、従来より行われているようにセル（例えば、ゲート回路）を挿入して長配線を回避するようにしていた。しかしながら、この方法では、挿入したセルの配置及び配線に伴い、レイアウト処理を再度実行し、遅延時間などの検証をし直さなければならない。この際、新たなエラーが検出される場合がある他、セルを挿入することによるゲート規模の増大（配置領域の増大及び電源供給の増大）を引き起こしていた。
【０００７】
従って、本発明の目的は、負の遅延時間を解消するように入力側トランジスタの閾値電圧を変化させることを可能とする回路設計方法及びシミュレーションシステムを提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、開示の技術は、コンピュータによって回路内の複数のセルの配置及び配線の設計を前記各セルの情報を含む回路情報に基づいて行うシミュレーションシステムであって、前記セルのパラメータ値毎に用意され、該セルの入力側回路の入力スルー値と負荷値との組み合せに対応する遅延時間の正負を示す値を格納した、複数のパレメータ値テーブルのうち１つを、前記回路情報中のセルのパラメータ値に基づいて特定する第１のテーブル特定手段と、前記回路情報に基づいて計算された前記入力側回路の入力スルー値と負荷値とに基づいて、前記第１のテーブル特定手段において特定されたパラメータ値テーブル上の表位置を特定する第１の表位置特定手段と、前記第１のテーブル特定手段において特定されたパラメータ値テーブル以外の各パラメータ値テーブル内の、前記第１の表位置特定手段において特定された表位置と同一の表位置を、パラメータ値が増える順に順次参照することによって、参照される遅延時間が正から負或いは負から正へと変わるときのパラメータ値を取得するパラメータ値取得手段と、前記回路情報の前記セルのパラメータ値を、前記パラメータ値取得手段において取得されたパラメータ値に変更する回路構成変更手段とを有するように構成される。
【０００９】
このような回路設計方法では、バッファ挿入を行うことなく、負の遅延時間を解消するように入力側トランジスタの閾値電圧を変化させることを可能とする。
【００１０】
また、上記課題を解決するため、コンピュータによって回路設計を行うシミュレーションシステムであって、負の遅延時間を示す回路内の入力回路の構成を変更することによって、該入力回路の閾値電圧を上げる第一変更手段と、正の遅延時間を示す回路内の入力回路のイオン注入量を変更することによって、該入力回路の閾値電圧を下げる第二変更手段とを有するように構成される。
【００１１】
このようなシミュレーションシステムでは、負の遅延時間を回避すると共に正の遅延時間を小さくするように回路構成を変更し、かつ、入力回路のイオン注入量を変更して正の遅延時間を短くすることが可能となる。よって、タイミング検証におけるデータ信号のタイミング及びクロック信号のタイミングの最小遅延時間と最大遅延時間との差を略等しくすることが可能となる。
【００１２】
上記課題を解決するための手段として、本発明は、上記手順をコンピュータに実行させるためのプログラムを記憶したコンピュータ読取可能な記憶媒体、及び、コンピュータ実行可能なプログラムとすることもできる。
【発明の効果】
【００１３】
本願発明は、入力トランジスタのイオン注入量を変更して正の遅延時間を短くし、かつ、負の遅延時間を回避すると共に正の遅延時間を小さくするように回路構成を変更することが可能となる。よって、タイミング検証におけるデータ信号のタイミング及びクロック信号のタイミングの最小遅延時間と最大遅延時間との差を略等しくすることが可能となる。また、バッファ等の回路の挿入の繰り返しによる回路規模の増大及び電源供給の増大を抑止することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１５】
本発明に係る回路設計方法を実現するシミュレーションシステムは、コンピュータ装置であって、図１に示すようなハードウェア構成を有する。図１は、本発明の一実施例に係るシミュレーションシステムのハードウェア構成を示す図である。
【００１６】
図１において、シミュレーションシステム１００は、コンピュータによって制御される装置であって、ＣＰＵ（Central  Processing  Unit）１１と、メモリユニット１２と、表示ユニット１３と、出力ユニット１４と、入力ユニット１５と、通信ユニット１６と、記憶装置１７と、ドライバ１８とで構成され、システムバスＢに接続される。
【００１７】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従ってシミュレーションシステム１００を制御する。メモリユニット１２は、ＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read-Only  Memory）等にて構成され、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００１８】
表示ユニット１３は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。出力ユニット１４は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット１５は、マウス、キーボード等を有し、利用者がシミュレーションシステム１００が処理を行なうための必要な各種情報を入力するために用いられる。
【００１９】
通信ユニット１６は、シミュレーションシステム１００が例えばインターネット、ＬＡＮ（Local  Area  Network）等のネットワーク２を介して例えばＰＣ（パーソナルコンピュータ）と接続する場合に、ＰＣ３との間の通信制御をするための装置である。このようにネットワークを構成することによって、本発明に係るタイミング調整方法での処理をＰＣの利用者が利用することができる。
【００２０】
記憶装置１７は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
【００２１】
シミュレーションシステム１００によって行われる回路設計方法での処理を実現するプログラムは、論理回路のセルレイアウトを行うプログラムであって、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）等の記憶媒体１９によってシミュレーションシステム１００に提供される。即ち、プログラムが保存された記憶媒体１９がドライバ１８にセットされると、ドライバ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１７にインストールされる。そして、プログラムが起動されると、記憶装置１７にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。
【００２２】
尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る処理を実現するプログラムは、通信ユニット１６によってネットワークを介してダウンロードし、記憶装置１７にインストールするようにしても良い。また、シミュレーションシステム１００が外部との接続を行うＵＳＢ（Universal  Serial  Bus）等のインタフェースを有する場合には、ＵＳＢ接続によって外部記憶媒体からプログラムを読み込んでもよい。
【００２３】
シミュレーションシステム１００のＣＰＵ１１によって実行される回路設計処理の概要について図２で説明する。図２は、回路設計処理の概要を説明するための図である。
【００２４】
図２において、配線及び配置されたゲート回路２にて、入力波形が所定の高さに到達するまでに要した時間（以後、入力スルー（slew）という）が制限値を超えた場合、このゲート回路２は、エラーとして検出される。
【００２５】
本発明では、制限値を満たさないエラー検出されたゲート回路２の入力側のトランジスタ（以下、入力トランジスタという）の構成を変更することによって負の遅延時間を回避する、又は、このゲート回路２の入力トランジスタのイオン注入量を変更することによって正の遅延時間を短くすることが可能となる。また、このイオン注入量の変更に応じて閾値電圧Ｖthは変化し、閾値電圧Ｖthが改善される。
【００２６】
また、負の遅延時間を回避するように入力トランジスタの構成を変更することによって、タイミング検証における遅延時間の検証をより正確に行うことができる。また、この入力トランジスタの構成の変更に応じて閾値電圧Ｖthは変化し、閾値電圧Ｖthが改善される。
【００２７】
更に、入力トランジスタのイオン注入量を変更して正の遅延時間を短くし、かつ、負の遅延時間を回避すると共に正の遅延時間を小さくすることによって、タイミング検証におけるデータ信号のタイミング及びクロック信号のタイミングの最小遅延時間と最大遅延時間との差を略等しく、かつ、固定のクロック周期内に抑えることができるように調整することが可能となる。
【００２８】
従来、入力波形がなまると回路遅延が大きくなることから、スルー制限（入力スルーの上限値）を設け、スルー制限を満たさない素子間にはバッファを挿入して波形整形を行うようにしていたが、そのような余分なバッファの挿入を不要とすることができる。
【００２９】
従って、バッファ等の回路の挿入の繰り返しによる回路規模の増大及び電源供給の増大を抑止することができる。
【００３０】
次に、本発明に係る回路設計処理について図３から図６で詳述する。
【００３１】
図３は、回路設計処理の概要を説明するためのフローチャート図である。図３において、シミュレーションシステム１００のＣＰＵ１１は、セルを基板上に配置する処理を行う（ステップＳ１１）。そして、配置したセル間を配線する処理を行う（ステップＳ１２）。その後、複数のセルが配置され、各セルへの配線処理がなされた集積回路のＲＣ抽出を行う（ステップＳ１３）。ステップＳ１１からＳ１２による結果は、その都度、レイアウトされた回路に係るレイアウト回路情報としてレイアウト回路情報テーブル３４に格納される。
【００３２】
ＣＰＵ１１は、所定の配線経路毎に遅延時間を計算して、その結果を遅延計算結果３０として記憶領域に出力する（ステップＳ１４）。ここで、配線抵抗成分から入力スルーが算出される。
【００３３】
ＣＰＵ１１は、遅延計算結果３０から入力スルーに関するスルー情報を取得して、入力波形の設計オーダに基づくスルー制限３２を参照することによって、レイアウトされたセルの入力スルーがスルー制限３２を満たしているか否かをチェックする（ステップＳ１５）。このようにスルー制限のチェックを行う場合、ぎりぎりでスルー制限を満たす回路についてエラーとして処理をするために、例えば、スルー制限を１から２％下回る回路をエラーとして検出するようにする。従って、エラーとして検出された回路の中には、正の遅延時間を示す回路も含まれる。
【００３４】
スルー制限３２を満たしている場合、遅延計算結果３０を参照することによってタイミング検証を行う（ステップＳ１６）。
【００３５】
一方、入力スルーがスルー制限３２を満たしていない場合、エラーを検出した回路に係る回路情報をレイアウト回路情報テーブル３４から取得する（ステップＳ１７）。
【００３６】
次に、スルー情報に基づいて、入力波形の要求される波形の高さとその高さまでに要した時間を示す入力スルーとによって求められる入力スルーの傾きが、出力波形の要求される波形の高さとその高さまでに要した時間を示す出力スルーとによって求められる出力スルーの傾きより大きいか否かを判断する（ステップＳ１８）。例えば、入力トランジスタ側の入力信号が閾値電圧Ｖthに達するまでの単位時間当たりの傾きを入力スルーの傾きとして算出する。同様に、出力スルーの傾きも算出する。
【００３７】
ステップＳ１８において、入力スルーの傾きが出力スルーの傾き以下である場合、負の遅延ではないため、入力トランジスタの構成を変更してしまうと回路の動作自体が更に遅くなるため、ＣＰＵ１１は、入力トランジスタへのイオン注入量を調整することによって閾値電圧Ｖthを変更して遅延時間をより小さくする処理を行い、回路情報を変更する（ステップＳ１９）。その後、ＣＰＵ１１は、ステップＳ１２に戻り、変更した回路情報に基づいて上記同様の処理を繰り返す。
【００３８】
ステップＳ１８において、入力スルーの傾きが出力スルーの傾きより大きい場合、負の遅延となるため、ＣＰＵ１１は、入力トランジスタの構成を変更して閾値電圧Ｖthを変更し負の遅延を回避する処理を行、回路情報を変更する（ステップＳ２０）。その後、ＣＰＵ１１は、ステップＳ１２に戻り、変更した回路情報に基づいて上記同様の処理を繰り返す。
【００３９】
次に、図３のステップＳ１９にて実行されるイオン注入量変更処理について説明する。図４は、イオン注入量変更処理を説明するためのフローチャート図である。図４において、イオン注入量に基づく閾値電圧変換テーブル４１と、イオン注入量に基づくトランジスタ可変情報５１とが、ＣＰＵ１１によって参照される。また、イオン注入量に基づく閾値電圧変換テーブル４１と、イオン注入量に基づくトランジスタ可変情報５１とは、例えば、図１の記憶装置１７に格納されている。
【００４０】
イオン注入量に基づく閾値電圧変換テーブル４１は、複数のテーブルで構成され、イオン注入量が大きくなる順にイオン注入量１からｐの所定注入量毎にテーブルが用意されている。この場合、イオン注入量が大きくなる順にイオン注入量１からｐの順に、閾値電圧Ｖthは低くなる。
【００４１】
例えば、イオン注入量１のためのテーブルは、入力スルーの傾きが大きくなる順に各行にスルー１１からスルー１ｎのスルー値が設定され、また、負荷が大きくなる順に各列に負荷１１から負荷１ｍの負荷値が設定されたマトリクスである。このテーブルでは、イオン注入量１の場合のスルー値と負荷値とによって遅延の正負が示されている。イオン注入量１からｐ毎にテーブルではスルー値と負荷値とが個別に設定されているため、テーブル上の表位置を特定し、現在のテーブルから順に以降のテーブルを参照していくことによって遅延が正から負或いは負から正へと変更する状態を検証することができる。
【００４２】
イオン注入量に基づくトランジスタ可変情報５１は、イオン注入量に基づく閾値電圧可変テーブル４１のイオン注入量１からｐに対応させてトランジスタ情報５１−１から５１−ｐを示している。トランジスタ情報５１−１から５１−ｐは、対応するイオン注入量１からｐに係る詳細な情報であって、例えば、イオン注入量を示すと供に製造工程にて参照される情報を含む。
【００４３】
ＣＰＵ１１は、図３のステップＳ１７で取得した回路情報に示されるイオン注入量に対応するテーブルをイオン注入量に基づく閾値電圧変換テーブル４１から特定する（ステップＳ１９１）。例えば、回路情報にてイオン注入量１が示される場合、イオン注入量１のためのテーブルを特定する。
【００４４】
ＣＰＵ１１は、ステップＳ１５にて参照されたスルー情報からエラー検出時のスルー（入力スルーの傾き）と負荷とによって表位置を特定する（ステップＳ１９２）。イオン注入量１のためのテーブルが特定された場合であって、スルー情報にてスルー１ｉと負荷１１とが示されている場合、スルー１ｉと負荷１１とによって特定される行番号「ｉ」と列番号「１」との組み合わせによって表位置を特定する。
【００４５】
ＣＰＵ１１は、同一表位置で、遅延が正から負へと変化するまで、ステップＳ１９１で特定されたテーブルからイオン注入量が増える順にテーブルを参照する（ステップＳ１９３）。つまり、ステップＳ１９１で特定されたイオン注入量１のためのテーブルでは、行番号「ｉ」と列番号「１」とによる表位置にて遅延は正であるので、ＣＰＵ１１は、イオン注入量２、３、・・・のためのテーブルの順に、同一行番号「ｉ」と列番号「１」とによる表位置における遅延の状態をチェックし、遅延の状態が最初に負に変化するテーブルまで参照する。最後となるイオン注入量ｐのためのテーブルまで参照してステップＳ１９３での処理を終了する。
【００４６】
そして、ＣＰＵ１１は、最初に遅延が正から負になるテーブルが存在したか否かを判断する（ステップＳ１９４）。遅延が正から負になるテーブルが無かった場合、つまり、イオン注入量ｐのためのテーブルまで参照したが遅延は正のままで変化しなかった場合、ＣＰＵ１１は、イオン注入量変更処理を終了する。
【００４７】
一方、遅延が正から負になるテーブルが存在した場合、負の遅延になる直前の正の遅延となるイオン注入量に対応するトランジスタ情報を、イオン注入量に基づくトランジスタ可変情報５１から取得する（ステップＳ１９５）。例えば、イオン注入量４のためのテーブルにて負の遅延に変化した場合、イオン注入量３をイオン注入量として取得し、このイオン注入量３に対応するトランジスタ情報５１−３をイオン注入量に基づくトランジスタ可変情報５１から取得する。
【００４８】
ＣＰＵ１１は、取得したトランジスタ情報をエラーの回路情報に設定することによって、レイアウト回路情報テーブル３４を変更して（ステップＳ１９６）、イオン注入量変更処理を終了する。この場合、イオン注入量３に関するトランジスタ情報５１−３が回路情報に設定され、イオン注入量１からイオン注入量３へと製造工程におけるイオン注入量の指定が変更されることになる。また、ステップＳ１９５にて特定したイオン注入量のためのテーブルのステップＳ１９２にて特定した表位置からスルーと負荷とを取得して、それらを併せて回路情報に設定するようにしても良い。
【００４９】
次に、図３のステップＳ２０にて実行される入力トランジスタ構成変更処理を説明する。図５は、入力トランジスタ構成変更処理を説明するためのフローチャート図である。図５において、パラメータ毎のパラメータ値に基づく閾値電圧可変テーブル４２と、パラメータ毎のパラメータ値に基づくトランジスタ可変情報５２とが、ＣＰＵ１１によって参照される。また、パラメータ値に基づく閾値電圧可変テーブル４２とパラメータ値に基づくトランジスタ可変情報５２とは、例えば、図１の記憶装置１７に格納されている。
【００５０】
パラメータ値に基づく閾値電圧可変テーブル４２は、例えば、ゲート長、ゲート幅、Ｓ／Ｄ（ソース・ドレイン）幅などのパラメータ毎に複数のテーブルで構成され、各パラメータの値が大きくなる順にパラメータ値１からｐの所定値毎にテーブルが用意されている。この場合、入力トランジスタの閾値電圧Ｖthは、パラメータの値が大きくなるパラメータ値１からｐに応じて順に高くなる。
【００５１】
例えば、ゲート長の値に基づく閾値電圧可変テーブル４２では、所定のゲート長の値１からｐ毎にテーブルが用意されており、パラメータ及びパラメータ値１からｐをゲート長及びゲート長の値と読み替えることができる。ゲート幅、Ｓ／Ｄ幅についても同様である。Ｓ／Ｄ幅については、ソース幅とドレイン幅の夫々に閾値電圧可変テーブル４２を用意しても良いし、ソース幅とドレイン幅の組み合わせ毎に閾値電圧可変テーブル４２を用意するようにしても良い。
【００５２】
例えば、パラメータ値１のためのテーブルは、入力スルーの傾きが大きくなる順に各行にスルー１１からスルー１ｎのスルー値が設定され、また、負荷が大きくなる順に各列に負荷１１から負荷１ｍの負荷値が設定されたマトリクスである。このテーブルでは、パラメータ値１の場合のスルー値と負荷値とによって遅延の正負が示されている。パラメータ値１からｐ毎にテーブルではスルー値と負荷値とが個別に設定されているため、テーブル上の表位置を特定し、現在のテーブルから順に以降のテーブルを参照していくことによって遅延が正から負或いは負から正へと変更する状態を検証することができる。
【００５３】
パラメータ値に基づくトランジスタ可変情報５２は、パラメータ値に基づく閾値電圧可変テーブル４２のパラメータ値１からｐに対応させてトランジスタ情報５２−１から５２−ｐを示している。トランジスタ情報５２−１から５２−ｐは、対応するパラメータ値１からｐに係る詳細な情報であって、例えば、パラメータ値を示すと供に製造工程にて参照される情報を含む。
【００５４】
トランジスタ可変情報５２も、パラメータ値に基づく閾値電圧可変テーブル４２と同様に、例えば、ゲート長、ゲート幅、Ｓ／Ｄ（ソース・ドレイン）幅などのパラメータ毎に用意される。すなわち、ゲート長の値に基づくトランジスタ可変情報５２では、所定のゲート長の値１からｐに対応させてトランジスタ情報５２−１から５２−ｐが用意されており、パラメータ及びパラメータ値１からｐをゲート長及びゲート長の値と読み替えることができる。ゲート幅、Ｓ／Ｄ幅についても同様である。Ｓ／Ｄ幅については、ソース幅とドレイン幅の夫々にトランジスタ可変情報５２を用意しても良いし、ソース幅とドレイン幅の組み合わせ毎にトランジスタ可変情報５２を用意するようにしても良い。
【００５５】
ＣＰＵ１１は、エラーの回路構成の制約及びテーブル参照の有無に基づいて変更するパラメータを決定する（ステップＳ２０１）。例えば、入力トランジスタのゲート幅に制約があるレイアウトでは、先ず、ゲート長をパラメータとして決定する。一方、ゲート幅に制約のないレイアウトでは、先ず、ゲート幅をパラメータとして決定する。更にゲート長もゲート幅も既に対応する閾値電圧テーブル４２を参照している場合には、Ｓ／Ｄ幅をパラメータとして決定する。この場合、Ｓ／Ｄ幅も既に対応する閾値電圧テーブル４２を参照している場合は、ステップＳ２０１での処理結果をパラメータの決定不可とする。
【００５６】
そして、ＣＰＵ１１は、ステップＳ２０１での処理にてパラメータを決定できたか否かを判断する（ステップＳ２０２）。パラメータを決定できなかった場合、ＣＰＵ１１は、負の遅延を回避するためにバッファを挿入するステップＳ２１０へと進む。一方、パラメータを決定できた場合、決定した変更するパラメータ（ゲート長、ゲート幅、又はＳ／Ｄ幅）に対応する閾値電圧可変テーブルを取得する（ステップＳ２０３）。例えば、ゲート長を変更するパラメータと決定した場合、ゲート長の値に基づく閾値電圧可変テーブル４２を取得する。
【００５７】
次に、ＣＰＵ１１は、図３のステップＳ１７で取得した回路情報に示されるパラメータ値に対応するテーブルをパラメータ値に基づく閾値電圧可変テーブル４２から特定する（ステップＳ２０４）。回路情報のパラメータ値（ゲート長の値）がパラメータ値１（ゲート長の値１）である場合、パラメータ値１のためのテーブルを特定する。
【００５８】
ＣＰＵ１１は、ステップＳ１５にて参照されたスルー情報からエラー検出時のスルー（入力スルーの傾き）と負荷とによって表位置を特定する（ステップＳ２０４）。パラメータ値１のためのテーブルが特定された場合であって、スルー情報にてスルー１ｉと負荷１１とが示されている場合、スルー１ｉと負荷１１とによって特定される行番号「ｉ」と列番号「１」との組み合わせによって表位置を特定する。
【００５９】
ＣＰＵ１１は、同一表位置で、遅延が正から負へと変化するまで、ステップＳ２０４で特定されたテーブルからパラメータ値が増える順にテーブルを参照する（ステップＳ２０６）。つまり、ステップＳ２０７で特定されたパラメータ値１のためのテーブルでは、行番号「ｉ」と列番号「１」とによる表位置にて遅延は負であるので、ＣＰＵ１１は、パラメータ値２、３、・・・のためのテーブルの順に、同一行番号「ｉ」と列番号「１」とによる表位置における遅延の状態をチェックし、遅延の状態が最初に負に変化するテーブルまで参照する。最後となるパラメータ値ｐのためのテーブルまで参照してステップＳ２０６での処理を終了する。
【００６０】
そして、ＣＰＵ１１は、最初に遅延が負から正になるテーブルが存在したか否かを判断する（ステップＳ２０７）。遅延が負から正になるテーブルが無かった場合、つまり、パラメータ値ｐのためのテーブルまで参照したが遅延は負のままで変化しなかった場合、ＣＰＵ１１は、ステップＳ２０１へ戻り、変更可能な他のパラメータで上記同様の処理を行う。
【００６１】
一方、最初に遅延が負から正になるテーブルが存在した場合、そのテーブルのパラメータ値に対応するトランジスタ情報をパラメータ値に基づくトランジスタ可変情報５２から取得する（ステップＳ２０８）。例えば、パラメータ値３のためのテーブルにて正の遅延に変化した場合、パラメータ値３に対応するトランジスタ情報５２−３をパラメータ値に基づくトランジスタ可変情報５２から取得する。ここで、ゲート長の値３がパラメータ値３に相当する場合、ゲート長の値３とするための製造工程で参照される情報が含まれるトランジスタ情報５２−３を取得する。
【００６２】
ＣＰＵ１１は、取得したトランジスタ情報をエラーの回路情報に設定することによって、レイアウト回路情報テーブル３４を変更して（ステップＳ２０９）、入力トランジスタ構成変更処理を終了する。この場合、パラメータ値３に関するトランジスタ情報５２−３が回路情報に設定され、パラメータ値１（バッファ長の値１）からパラメータ値３（バッファ長の値３）へと変更されることになる。また、ステップＳ２０８にて特定したパラメータ値のためのテーブルのステップＳ２０５にて特定した表位置からスルーと負荷とを取得して、それらを併せて回路情報に設定するようにしても良い。
【００６３】
一方、ステップＳ２０２の判断処理において、パラメータを決定できなかったと判断した場合、ＣＰＵ１１は、バッファの挿入を行う処理を実行し、生成された回路情報をレイアウト回路情報テーブル３４に追加する（ステップＳ２１０）。そして、ＣＰＵ１１は、入力トランジスタ構成変更処理を終了する。このように、バッファの挿入は、変更可能なパラメータがない場合に行われるため、バッファの使用回数を低減することができる。
【００６４】
上述より、図３に示すステップＳ１９でのイオン注入量変更処理及びステップＳ２０での入力とランジスタ構成変更処理を行うことによって、入力トランジスタのイオン注入量を変更して正の遅延時間を短くし、かつ、負の遅延時間を回避すると共に正の遅延時間を小さくすることによって、タイミング検証におけるデータ信号のタイミング及びクロック信号のタイミングの最小遅延時間と最大遅延時間との差を略等しくすることが可能となる。つまり、最小遅延時間と最大遅延時間との差を略等しくする閾値電圧Vｔｈへと変更することができる。
【００６５】
従って、バッファ等の回路の挿入の繰り返しによる回路規模の増大及び電源供給の増大を抑止することができる。
【００６６】
上述した本発明に係るシミュレーションシステム１００は、ＣＡＤ（Computer  Aided  Design）システム等に適用される。
【００６７】
以上の説明に関し、更に以下の項を開示する。
（付記１）
コンピュータが回路設計を行う回路設計方法において、該コンピュータが、
回路を構成する入力回路のパラメータ値毎に入力スルーの傾きと負荷とで遅延時間の正負を示す複数のパラメータ値テーブルを所定順に参照することによって、負の遅延時間を示す回路が正の遅延時間に変わるときのパラメータ値を取得するパラメータ値取得手順と、
前記取得したパラメータ値を用いて、前記回路内の前記入力回路の構成を変更する回路構成変更手順とを実行することを特徴とする回路設計方法。
（付記２）
前記コンピュータが、
前記回路の入力スルーの傾きが出力スルーの傾き以上であるか否かを判断するスルー傾き判断手順を実行し、
入力スルーの傾きが出力スルーの傾き以上である場合に、前記パラメータ値取得手順と前記回路構成変更手順とを有効とすることを特徴とする付記１記載の回路設計方法。
（付記３）
前記コンピュータが、
入力スルーの傾きが出力スルーの傾きより小さい場合に、回路を構成する入力回路へのイオン注入量毎に入力スルーの傾きと負荷とで遅延時間の正負を示す複数のイオン注入量テーブルを所定順に参照することによって、正から負への遅延時間に変わるときの正の遅延時間を示すイオン注入量を取得するイオン注入量取得手順と、
前記取得したイオン注入量を用いて、前記回路内の前記入力回路へのイオン注入量の指定を変更するイオン注入量指定変更手順とを実行することを特徴とする付記２記載の回路設計方法。
（付記４）
前記スルー傾き判断手順は、
回路内の入力回路の入力信号が閾値電圧に達するまでの単位時間当たりの傾きを前記入力スルーの傾きとして算出する第一傾き算出手順と、
該回路内の出力回路の出力信号が閾値電圧に達するまでの単位時間当たりの傾きを前記出力スルーの傾きとして算出する第二傾き算出手順とを有することを特徴とする付記２又は３記載の回路設計方法。
（付記５）
前記パラメータ値取得手順によって取得した前記パラメータ値は、前記入力回路の閾値電圧を高くすることを特徴とする付記１乃至４のいずれか一項記載の回路設計方法。
（付記６）
コンピュータによって回路設計を行うシミュレーションシステムであって、
負の遅延時間を示す回路内の入力回路の構成を変更することによって、該入力回路の閾値電圧を上げる第一変更手段と、
正の遅延時間を示す回路内の入力回路のイオン注入量を変更することによって、該入力回路の閾値電圧を下げる第二変更手段とを有することを特徴とするシミュレーションシステム。
（付記７）
前記第一変更手段は、
回路を構成する入力回路のパラメータ値毎に入力スルーの傾きと負荷とで遅延時間の正負を示す複数のパラメータ値テーブルを所定順に参照することによって、負の遅延時間を示す回路が正の遅延時間に変わるときのパラメータ値を取得するパラメータ値取得手段と、
前記取得したパラメータ値を用いて、前記回路内の前記入力回路の構成を変更する回路構成変更手段とを有することを特徴とする付記６記載のシミュレーションシステム。
（付記８）
前記第二変更手段は、
回路を構成する入力回路へのイオン注入量毎に入力スルーの傾きと負荷とで遅延時間の正負を示す複数のイオン注入量テーブルを所定順に参照することによって、正から負への遅延時間に変わるときの正の遅延時間を示すイオン注入量を取得するイオン注入量取得手段と、
前記取得したイオン注入量を用いて、前記回路内の前記入力回路へのイオン注入量の指定を変更するイオン注入量指定変更手段とを有することを特徴とする付記６又は７記載のシミュレーションシステム。
（付記９）
コンピュータによって回路設計を行うシミュレーションシステムであって、
回路を構成する入力回路のパラメータ値毎に入力スルーの傾きと負荷とで遅延時間の正負を示す複数のパラメータ値テーブルと、
前記パラメータ値テーブルを所定順に参照することによって、負の遅延時間を示す回路が正の遅延時間に変わるときのパラメータ値を取得するパラメータ値取得手段と、
前記取得したパラメータ値を用いて、前記回路内の前記入力回路の構成を変更する回路構成変更手段とを有することを特徴とするシミュレーションシステム。
（付記１０）
回路設計処理をコンピュータに行わせるプログラムを記憶したコンピュータ読取可能な記憶媒体であって、該コンピュータに、
回路を構成する入力回路のパラメータ値毎に入力スルーの傾きと負荷とで遅延時間の正負を示す複数のパラメータ値テーブルを所定順に参照することによって、負の遅延時間を示す回路が正の遅延時間に変わるときのパラメータ値を取得するパラメータ値取得手順と、
前記取得したパラメータ値を用いて、前記回路内の前記入力回路の構成を変更する回路構成変更手順とを実行させることを特徴とするプログラムを記憶したコンピュータ読取可能な記憶媒体。
【００６８】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００６９】
【図１】本発明の一実施例に係るシミュレーションシステムのハードウェア構成を示す図である。
【図２】回路設計処理の概要を説明するための図である。
【図３】回路設計処理の概要を説明するためのフローチャート図である。
【図４】イオン注入量変更処理を説明するためのフローチャート図である。
【図５】入力トランジスタ構成変更処理を説明するためのフローチャート図である。
【符号の説明】
【００７０】
１１          ＣＰＵ
１２          メモリユニット
１３          表示ユニット
１４          出力ユニット
１５          入力ユニット
１６          通信ユニット
１７          記憶装置
１８          ドライバ
１９          記憶媒体
１００        シミュレーションシステム
【図１】
0004624890.tif 000002
【図２】
0004624890.tif 000003
【図３】
0004624890.tif 000004
【図４】
0004624890.tif 000005
【図５】
0004624890.tif 000006