(57)【特許請求の範囲】
【請求項１】
ＲＡＭ、及び該ＲＡＭ内の記憶素子をビット単位で利用する論理回路を有する半導体集積回路の設計方法において、
上記ＲＡＭ内に設けられたデータ入力ポートから、記憶素子までの書込み時間、及び該記憶素子から、上記ＲＡＭ内に設けられたデータ出力ポートまでの読出し時間の少なくとも一方で表わされる、前記ＲＡＭの遅延値を記憶素子単位で設計ライブラリに定義し、
該遅延値を利用して回路設計を行うと共に、
該遅延値を用い、又前記ＲＡＭ外の遅延値も含め考慮し、タイミング解析を行うようにしたことを特徴とする半導体集積回路の設計方法。
【請求項２】
請求項１に記載の半導体集積回路の設計方法において、
前記タイミング解析結果を受け、動作タイミング不良、又は動作タイミングに余裕がないエラー箇所で用いている前記記憶素子に対する接続と、タイミングの余裕があり、かつ該エラー箇所より遅延値が小の箇所の前記記憶素子に対する接続とを、入れ替えるようにしたことを特徴とする半導体集積回路の設計方法。
【請求項３】
請求項２に記載の半導体集積回路の設計方法において、
前記入れ替えを、前記ＲＡＭ内部のビット線が敷設されている領域で行なうようにしたことを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＲＡＭ、及び該ＲＡＭの記憶素子をビット単位で利用する論理回路を有する半導体集積回路の設計方法に関する。
【０００２】
【従来の技術】
図１は、順序回路及び組合せ回路を含む論理回路の一例の回路図である。
【０００３】
この図において、符号Ｃ１〜Ｃ１０は、順序回路を含まない組合せ回路部分である。又、フリップフロップＦＦ及びＲＡＭ（random  access  memory）３は、順序回路の１つとして示されている。又、この図の回路は、入力ＩＮから入力した信号に対して、上記のような組合せ回路部分Ｃ１〜Ｃ１０、フリップフロップＦＦ、及びＲＡＭ３により所定の処理を行い、その結果を出力ＯＵＴとして出力する。
【０００４】
このような順序回路及び組合せ回路を含む論理回路では、いわゆるセットアップ時間、ホールド時間の制約を受ける。
【０００５】
例えばフリップフロップを一例とし、その動作を示す図２のようなタイムチャートを考える。又、時刻ｔ０におけるクロック信号ＣＬＫの立ち上がりで、入力Ｄの論理状態を取り込むものとする。
【０００６】
このような場合、該時刻ｔ０より「セットアップ時間」だけ前の時刻ｔ１までに、取り込もうとする論理状態の入力Ｄがフリップフロップに入力されている必要がある。更に、このように入力された入力Ｄの論理状態は、該時刻ｔ０より「ホールド時間」だけ後の時刻ｔ２まで、その論理状態が保持されている必要がある。
【０００７】
又、上記の場合で時刻ｔ１からｔ２までの時間で、入力Ｄの論理状態が変化してしまうとする。すると、フリップフロップＦＦに取り込まれる論理状態は、入力Ｄの論理状態の変化前によるものか、あるいは変化後によるものであるか、不定になってしまう。
【０００８】
このようなセットアップ時間やホールド時間に関する制約は、フリップフロップ以外にも、ラッチや、メモリなどのセルでも要求される。又、タイミングに関する制約には、これらセットアップ時間やホールド時間以外にもある。そして、このような素子やセルに関してタイミングの制約が守られていることを検証することが、タイミング解析と呼ばれている。
【０００９】
該タイミング解析は、例えば図１の回路において具体的には、クロック信号ＣＬＫにクロック波形を与え、入力ＩＮに入力タイミング、出力に出力ストローブを定義する。そして、入力ＩＮから、フリップフロップＦＦの入力Ｄまでの信号遅延が、クロック信号ＣＬＫのクロック波形に対して、タイミングの制約を満たしているか解析する。又、フリップフロップＦＦの出力Ｑから、ＲＡＭ３の入力Ｄ０までの信号遅延が、クロック信号ＣＬＫのクロック波形に対して、タイミングの制約を満たしているか解析する。更に、ＲＡＭ３の出力Ｑ０から、出力ＯＵＴまでの信号遅延が、クロック信号ＣＬＫのクロック波形と出力ストローブのタイミングから決定される制約を満たしているか解析するというものである。
【００１０】
【発明が解決しようとする課題】
従来のＡＳＩＣ（application  specific  integrated  circuit）の設計では、ＲＡＭ内のデータ入力ポートから各記憶素子までの書込み時間、及び各記憶素子からデータ出力ポートまでの読出し時間を一律に定義した、タイミング解析用のモデルを使用している。又、該モデルの諸データは、ＲＡＭ内の記憶素子で、書込み時間又は読出し時間が最長のものに基づいている。なお、書込み時間又は読出し時間に関係し、信号に対する処理や、信号伝播の遅延に係る、タイミング解析に用いるこのようなデータを、以下遅延値と呼ぶ。
【００１１】
ここで、一例として、図３のようなＡＳＩＣの半導体集積回路について考える。この図では、集積回路における説明上必要な各素子の、レイアウトを示すように回路図が図示されている。該半導体集積回路は、ＲＡＭ３、及び該ＲＡＭ３の記憶素子をビット単位で利用する、フリップフロップＦＦ１〜ＦＦ４による論理回路を有する。
【００１２】
ＲＡＭ３は１ワードが４ビットであり、１６ワードで構成される。該ＲＡＭ３は、選択信号ＣＳＮ、読出し書込み制御信号ＲＷＮの入力、及び４ビットのアドレス信号ＡＤＤＲに従って、該当するワードアドレスに対する書込みアクセス、あるいは読出しアクセスがなされる。書込みアクセスの際に入力するデータは、４ビットのデータ入力ＤＩＮによる。又、読出しアクセスの際に出力するデータは、４ビットのデータ出力ＤＯＵＴによる。符号３ａの範囲には、１６行４列のマトリックス状に、記憶素子が配列されている。又、この符号３ａの部分には、４対のビット線が図示されている。これら記憶素子はワード単位で、図示されないアドレスデコーダで４ビットのアドレス信号ＡＤＤＲをデーコードし、選択されたワードに対して、ビット線対を経由してアクセスされる。なお、該ＲＡＭ３において、説明上必要な記憶素子は、符号ＡあるいはＢを付して■印で図示している。
【００１３】
図３において、符号Ｃで示すＲＡＭ３の部分は、その内部の記憶素子に書き込むビットデータを入力する部分である。一方、符号Ｄで示すＲＡＭ３の部分は、その内部の記憶素子から読み出されるビットデータを出力する部分である。又、これら符号ＣやＤの箇所（データ入力ポート又はデータ出力ポート）から、各記憶素子までの距離や、ワード線やビット線の各記憶素子における配線長には、記憶素子間で較差が存在する。
【００１４】
ここで、該符号Ｃの示す部分からの距離は、記憶素子Ｂは記憶素子Ａに比べて遠い。従って、記憶素子Ｂにビットデータを書き込むアクセス時間は、記憶素子Ａに比べて長くなる。ここで、記憶素子Ｂのデータ書き込み時のアクセス時間が、ＲＡＭ３の記憶素子の中で最大であるとする。
【００１５】
このような半導体集積回路において、従来では、ＲＡＭ３の遅延値は、記憶素子Ｂのような、そのＲＡＭ中で最悪になる記憶素子のアクセス時間を基準にしている。このため、書き込みデータや読み出しデータの配線に、同一ワードでもデータの配線に長さの較差がある場合、実際の書込み時間にも較差が存在するようになる。特に、半導体集積回路の製造プロセスにおける、近年のディープ・サブミクロン化の進展に伴い、配線抵抗による遅延分が増加しているので、このような配線長較差による書込み時間較差も増大する傾向がある。
【００１６】
又、書込み時間の最悪値を基準にして遅延値を設定し設計すると、データビット幅方向に対し、タイミングの設計が冗長になる。即ち、同じＲＡＭの記憶素子でも実際のデータ入力ポートからの書込み時間が短いものは、該書込み時間を有効に活用するなどの回路設計においてタイミング上の最適化を行うことができない。
【００１７】
例えば、図３において、フリップフロップＦＦ４の出力Ｑから、符号Ｃの部分を経由して、ＲＡＭ３の記憶素子Ａにアクセスする場合を考える。このような場合も、フリップフロップＦＦ１の出力Ｑから、符号Ｃの部分を経由して、ＲＡＭ３の記憶素子Ｂにアクセスする場合と同じ書込み時間が採用される。
【００１８】
そのため、従来は、フリップフロップＦＦ１の出力Ｑから符号Ｃまでの配線途中に、バッファを追加して遅延を少なくしたりする。あるいは、フリップフロップＦＦ１とＦＦ４とを含めた回路全体の配置を変更したりする。
【００１９】
しかしながら、これらの変更を手修正によってする場合、他のネットも考慮すると困難である。又、自動配置配線ツールによって修正するようにしても、場合によっては、より大きなＣＰＵ（central  processing  unit）時間を要するという問題があった。
【００２０】
本発明は、前記従来の問題点を解決するべくなされたもので、動作タイミング不良を回避し、必要な動作速度を達成することができる半導体集積回路の設計方法を提供することを目的とする。
【００２１】
【課題を解決するための手段】
まず、本願の第１発明の半導体集積回路の設計方法は、ＲＡＭ、及び該ＲＡＭ内の記憶素子をビット単位で利用する論理回路を有する半導体集積回路の設計方法において、上記ＲＡＭ内に設けられたデータ入力ポートから、記憶素子までの書込み時間、及び該記憶素子から、上記ＲＡＭ内に設けられたデータ出力ポートまでの読出し時間の少なくとも一方で表わされる、前記ＲＡＭの遅延値を記憶素子単位で設計ライブラリに定義し、該遅延値を利用して回路設計を行うと共に、該遅延値を用い、又前記ＲＡＭ外の遅延値も含め考慮し、タイミング解析を行うようにしたことにより、前記課題を解決したものである。
【００２２】
又、前記半導体集積回路の設計方法において、前記タイミング解析結果を受け、動作タイミング不良、又は動作タイミングに余裕がないエラー箇所で用いている前記記憶素子に対する接続と、タイミングの余裕があり、かつ該エラー箇所より遅延値が小の箇所の前記記憶素子に対する接続とを、入れ替えるようにしたことにより、前記遅延値を利用した回路設計を容易に行うことができる。
【００２３】
更に、前記半導体集積回路の設計方法において、前記入れ替えを、前記ＲＡＭ内部のビット線が敷設されている領域で行なうことができる。
【００２４】
以下、本発明の作用について、簡単に説明する。
【００２５】
本発明では、ＲＡＭ、及び該ＲＡＭの記憶素子をビット単位で利用する論理回路を有する半導体集積回路が前提である。このような半導体集積回路において、本発明では、データ入力ポートから記憶素子までの書込み時間、及び該記憶素子からデータ出力ポートまでの読出し時間の少なくとも一方で表わされる、前記ＲＡＭの遅延値を記憶素子単位で設計ライブラリに定義する。即ち、該ＲＡＭの記憶素子全体で、同一の遅延値を用いるのではない。又、本発明では、このような遅延値を前提とし利用して、回路設計を行う。
【００２６】
本発明ではこのような遅延値を用い、又ＲＡＭ以外の遅延値も含め考慮し、タイミング解析を行うので、前述の従来例のようにアクセス時間の最悪値に基づいて、一律の遅延値を用いる場合のように、タイミングの設計が冗長になることはない。
【００２７】
即ち、同じＲＡＭの記憶素子でもアクセス時間が短いものは、該アクセス時間を有効に利用することができる。従って、タイミング不良を回避し、必要な動作速度を達成することができる。
【００２８】
なお、本発明は、ＲＡＭの記憶素子の遅延値を、かならずしも文字どおりに記憶素子１つずつ設定するものに限定するものではない。例えば、アクセス時間の較差を２〜５程度にグループ分けし、グループ毎に遅延値を設定するようにしてもよい。あるいは、ビット列間の較差の傾向を把握しておき、演算などで該傾向に基づいて各記憶素子の遅延値を求めるようにしてもよい。即ち、タイミング解析において、同一のＲＡＭの中記憶素子間で、異なる遅延値を用いるようにしたものは、本発明に含まれるものであり、利用する回路素子の動作速度は同一でも、タイミング不良を回避し、必要な動作速度を達成することができる。
【００２９】
【発明の実施の形態】
以下、図を用いて本発明の実施の形態を詳細に説明する。
【００３０】
図４は、本発明が適用された第１実施形態の半導体集積回路の回路図である。
【００３１】
前述した図３において、フリップフロップＦＦ１の出力Ｑから、符号Ｃの部分を経由して、ＲＡＭ３の記憶素子Ｂにアクセスする回路で、タイミング解析においてタイミング不良が発生したものとしている。又、該タイミング不良を解消するために、本発明を適用して設計変更したものが本実施形態である。なお、本実施形態の図４では前述の図３と同様、集積回路における説明上必要な各素子の、レイアウトを示すように回路図が図示されている。
【００３２】
具体的には、該タイミング不良を解消するために、フリップフロップＦＦ１の出力Ｑから、符号Ｃの部分を経由してアクセスするＲＡＭ３の記憶素子Ｂを、記憶素子Ａに変更している。又、フリップフロップＦＦ４の出力Ｑから、符号Ｃの部分を経由してアクセスするＲＡＭ３の記憶素子Ａを、記憶素子Ｂに変更している。このように、本発明を適用して、ＲＡＭ３内で比較して遅延値が小さい記憶素子Ａを、ＲＡＭ３に入力されるまでの遅延値が大きくてタイミング不良が生じた回路に接続して用いるようにしている。又、ＲＡＭ３で遅延値が大きい記憶素子Ｂについては、ＲＡＭ３に入力されるまでの遅延値が小さい回路に接続して用いるので、該遅延値大によって問題が生じることはない。
【００３３】
上記のようにデータ入力ＤＩＮ側で変更し、データ入力側の入れ換えを行った場合、論理を合わせるため、データ出力ＤＯＵＴ側の入れ換えも必要である。このため、該入れ換えに対応させるように、図４においてデータ出力ＤＯＵＴから出力された信号は、他の回路ブロック５に読み込まれる前に入れ換えて、これによりデータ出力側の入れ換えを行う。
【００３４】
ここで、本実施形態において行うタイミング解析のライブラリは、下記のとおりである。立ち上がり遅延や、立ち下がり遅延は、通常、図５に示すように、出力負荷や、入力なまりにより決定されるテーブルで遅延が定義される。しかしながら、以下では本発明の適用を簡潔に例示するため、立ち上がり遅延、立ち下がり遅延それぞれ１つの値のみを明記している。
【００３５】
ＤＯＵＴ〔３〕
立ち上がり遅延：｛１．２ナノ秒｝
立ち下がり遅延：｛１．１ナノ秒｝
ＤＯＵＴ〔２〕
立ち上がり遅延：｛１．０ナノ秒｝
立ち下がり遅延：｛０．９ナノ秒｝
ＤＯＵＴ〔１〕
立ち上がり遅延：｛０．９ナノ秒｝
立ち下がり遅延：｛０．８ナノ秒｝
ＤＯＵＴ〔０〕
立ち上がり遅延：｛０．８ナノ秒｝
立ち下がり遅延：｛０．７ナノ秒｝
【００３６】
一方、従来、ＲＡＭ３において一律の遅延値を用いる場合、タイミング解析のライブラリは、下記のとおりである。下記従来例では、ＤＯＵＴ〔３〕、ＤＯＵＴ〔２〕、ＤＯＵＴ〔１〕、ＤＯＵＴ〔０〕の内の最大値が採用されている。即ち、ＤＯＵＴ〔３〕の遅延値が採用されている。
【００３７】
ＤＯＵＴ〔３〕
立ち上がり遅延：｛１．２ナノ秒｝
立ち下がり遅延：｛１．１ナノ秒｝
ＤＯＵＴ〔２〕
立ち上がり遅延：｛１．２ナノ秒｝
立ち下がり遅延：｛１．１ナノ秒｝
ＤＯＵＴ〔１〕
立ち上がり遅延：｛１．２ナノ秒｝
立ち下がり遅延：｛１．１ナノ秒｝
ＤＯＵＴ〔０〕
立ち上がり遅延：｛１．２ナノ秒｝
立ち下がり遅延：｛１．１ナノ秒｝
【００３８】
図６は、本発明が適用された第２実施形態の半導体集積回路の回路図である。
【００３９】
この第２実施形態においても、前述した図３において、フリップフロップＦＦ１の出力Ｑから、符号Ｃの部分を経由して、ＲＡＭ３の記憶素子Ｂにアクセスする回路で、タイミング解析においてタイミング不良が発生したものとしている。又、該タイミング不良を解消するために、本発明を適用して設計変更したものが本実施形態である。なお、本実施形態の図６では前述の図３と同様、集積回路における説明上必要な各素子の、レイアウトを示すように回路図が図示されている。
【００４０】
本実施形態においても、前述した第１実施形態と同様、該タイミング不良を解消するために、フリップフロップＦＦ１の出力Ｑから、符号Ｃの部分を経由してアクセスするＲＡＭ３の記憶素子Ｂを、記憶素子Ａに変更している。又、フリップフロップＦＦ４の出力Ｑから、符号Ｃの部分を経由してアクセスするＲＡＭ３の記憶素子Ａを、記憶素子Ｂに変更している。
【００４１】
しかしながら、本実施形態では、第１実施形態とは異なる方法で該変更を行っている。
【００４２】
従来例の図３においては、符号Ｃの部分における配線パターンは、図７のようになっている。このような配線パターンを、本実施形態においては、図８のようなものに置きかえる。
【００４３】
更に、図３において、符号Ｄの部分における配線パターンは、図９のようになっている。このような配線パターンを、本実施形態においては、図１０のようなものに置きかえる。
【００４４】
以上のような置き換えにより本実施形態においては、前述した第１実施形態と同様の回路を実現している。図３に対する変更は、本実施形態ではこのような置き換えによるものであり、変更方法や変更箇所は第１実施形態とは異なる。このように本実施形態においては、動作タイミングの余裕がない回路に、ＲＡＭ３の記憶素子の内で比較して遅延値が小さいものが接続されるように、該ＲＡＭ３の内部のビット線が敷設されている領域で、記憶素子に対する接続を入れ替えることができる。
【００４５】
従って、本実施形態においては、本発明を適用して、ＲＡＭ３内で比較して遅延値が小さい記憶素子Ａを、ＲＡＭ３に入力されるまでの遅延値が大きくてタイミング不良が生じた回路に接続して用いることができる。又、ＲＡＭ３で遅延値が大きい記憶素子Ｂについては、ＲＡＭ３に入力されるまでの遅延値が小さい回路に接続して用いるので、該遅延値大によって問題が生じることはない。
【００４６】
又、本実施形態においては、上述のように接続変更を、ＲＡＭ３の内部のビット線が敷設されている領域において、図７〜図１０の配線パターンの変更（置き換え）で行う。この際、用いる配線パターンは、遅延値の大小による、ビット間の入れ替えのパターンに応じて、種々のものを予めライブラリ化して用意しておくこともできる。このようにすると、設計者による配線パターンに要する手間や時間を削減できるだけでなく、自動化することもできる。
【００４７】
なお、この第２実施形態におけるタイミング解析は、前述した第１実施形態と同様に行うものである。
【００４８】
【発明の効果】
本発明によれば、タイミング不良を回避し、必要かつ最適な動作速度を達成することができる。
【図面の簡単な説明】
【図１】順序回路及び組合せ回路を含む論理回路の一例の回路図
【図２】セットアップ時間やホールド時間を説明するためのタイムチャート
【図３】ＡＳＩＣにおける説明上必要な各素子のレイアウトを示すように作図された回路図
【図４】本発明が適用された第１実施形態の半導体集積回路の回路図
【図５】上記実施形態で用いるタイミング解析ライブラリのデータテーブルを示す表
【図６】本発明が適用された第２実施形態の半導体集積回路の回路図
【図７】上記実施形態においてＲＡＭの入力部で用いる配線パターンの第１例のレイアウト図
【図８】前記実施形態においてＲＡＭの入力部で用いる配線パターンの第２例のレイアウト図
【図９】前記実施形態においてＲＡＭの出力部で用いる配線パターンの第１例のレイアウト図
【図１０】前記実施形態においてＲＡＭの出力部で用いる配線パターンの第２例のレイアウト図
【符号の説明】
１…半導体集積回路
３…ＲＡＭ
３ａ…記憶素子マトリックス
５…他の回路ブロック
ＦＦ、ＦＦ１〜ＦＦ４…フリップフロップ
Ｃ１〜Ｃ１０…組合せ回路部分
ＩＮ…入力
ＯＵＴ…出力
ＣＬＫ…クロック信号
【図１】
0004305791.tif 000002
【図２】
0004305791.tif 000003
【図３】
0004305791.tif 000004
【図４】
0004305791.tif 000005
【図５】
0004305791.tif 000006
【図６】
0004305791.tif 000007
【図７】
0004305791.tif 000008
【図８】
0004305791.tif 000009
【図９】
0004305791.tif 000010
【図１０】
0004305791.tif 000011