JP2003006257A - 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム - Google Patents

論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム

Info

Publication number
JP2003006257A
JP2003006257A JP2001189533A JP2001189533A JP2003006257A JP 2003006257 A JP2003006257 A JP 2003006257A JP 2001189533 A JP2001189533 A JP 2001189533A JP 2001189533 A JP2001189533 A JP 2001189533A JP 2003006257 A JP2003006257 A JP 2003006257A
Authority
JP
Japan
Prior art keywords
circuit block
block
circuit
value
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001189533A
Other languages
English (en)
Other versions
JP3992947B2 (ja
Inventor
Ariyoshi Okada
有美 岡田
Masami Mizuno
理美 水野
Eiji Furukawa
英司 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001189533A priority Critical patent/JP3992947B2/ja
Priority to US09/986,916 priority patent/US6678870B2/en
Publication of JP2003006257A publication Critical patent/JP2003006257A/ja
Application granted granted Critical
Publication of JP3992947B2 publication Critical patent/JP3992947B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 【課題】 論理回路が有する回路遅延の最適化を行なう
新たな手法を提供する。 【解決手段】 論理回路は複数の回路ブロックが接続さ
れて構成されているものとする。駆動能力値算出手段1
1は、該回路ブロックに与えられる負荷容量値が該回路
ブロック内を伝播する信号を遅延させる割合を示す該回
路ブロックの遅延率と、対象回路ブロックの前段である
前段回路ブロックの駆動能力値と、該対象回路ブロック
に対して与えられる負荷容量値とに基づいて該対象回路
ブロックに要求する駆動能力値の算出を行なう。変更手
段12は、駆動能力値算出手段11によって得られた駆
動能力値に基づいて該対象回路ブロックで使用される前
記素子の指定の変更を行なう。この構成によれば、対象
回路ブロックの前後段として接続されている回路ブロッ
クに関する特性値から対象回路ブロックでの使用に最適
な素子の選択が可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、論理回路の最適化
を行なう技術に関し、特に、論理回路設計の初期段階に
おいて論理回路内を伝播する信号に生じる遅延の最適化
を行なう技術に関する。
【0002】
【従来の技術】従来、論理回路の有する回路遅延の最適
化、すなわちその論理回路内を伝播する信号に生じる遅
延の最適化を計算機に行なわせる技術として、例えば特
開平5−151310号公報や特開平11−12022
2号公報に開示されているように、論理回路におけるク
リティカルパスを抽出して抽出されたクリティカルパス
に対して遅延最適化を施すというものが多数提案されて
いる。
【0003】
【発明が解決しようとする課題】上述した従来の技術で
行なわれているクリティカルパスの抽出には多大な処理
量を要するため、高い処理能力を有する計算機を長時間
稼動させる必要があった。
【0004】また、計算機に行なわせる従来の遅延最適
化処理においては、クリティカルパスに対して最適化を
施すときに、そのパス上の回路ブロックの後段にファン
アウトが複数存在しているときには、その中でクリティ
カルパス上にあるものについてのみ最適化処理を行って
おり、そのファンアウトを構成している複数の被駆動ブ
ロック同士の関係は考慮されていなかった。そのため、
例えばこれらの被駆動ブロックのうちクリティカルパス
上にあるものについての駆動能力(被駆動ブロックの駆
動のためにその被駆動ブロックに対して求められる能
力)が肥大してしまい、その駆動能力を確保するために
被駆動ブロックの実装回路面積が過剰に大きくなってし
まうことがあった。
【0005】また、従来の処理では、設計対象の論理回
路が他の回路と接続される外部入出力端子は、他の回路
の外部入出力端子に一般的なバッファの素子が接続され
ているものとみなして最適化を行っていた。更に、論理
回路内部において外部入出力端子に接続される入力ピン
についての駆動能力は予め定義されているものに固定さ
れており、駆動能力を変更するにはその入力ピンを含む
回路そのものの使用を止めて代わりに他の回路を選択す
ることしか許容されていなかった。
【0006】また、従来の処理では、ネット(回路ブロ
ック間を接続する配線)の負荷容量には遅延最適化処理
後に行なわれる実装設計によって得られる情報が反映さ
れることはなく、最適化の際に考慮しないか、あるいは
概算値を反映するようにしていた。そのため、論理回路
の回路遅延の最適化を行なっても実装設計後の回路遅延
が改善されないこともあった。
【0007】また、従来の処理では、例えばユーザが敢
えて遅延最適化を行なうことを望まないなどの理由によ
って最適化を行なわないようにするブロックを設定する
ためには、素子毎もしくはパス毎にその指示を行なう必
要があった。また、従来の処理では、遅延最適化を実行
するとその対象である回路自体が自動的に変換されて出
力されてしまい、最適化による素子の置換の内容を知る
には、その実行の前後の論理回路を比較しなければなら
なかった。
【0008】以上の問題を鑑み、論理回路が有する回路
遅延の最適化を行なう新たな手法を提供することが本発
明が解決しようとする課題である。
【0009】
【課題を解決するための手段】図1は本発明の原理構成
を示す図である。本発明は、複数の回路ブロックを接続
してなる論理回路に対し、該回路ブロック毎に指定がさ
れている該回路ブロックを構成するために使用するプリ
ミティブな素子についての該指定を該素子と同一の機能
を有し且つ駆動能力値は異なる他のプリミティブな素子
へ変更することによって、該論理回路内を伝播する信号
の遅延についての最適化を行なう論理回路遅延最適化シ
ステムまたは論理回路遅延最適化方法を前提とする。
【0010】ここで、「プリミティブな素子」とは、こ
こでは論理回路において基本となる素子を意味する語で
あり、具体的には、インバータ、バッファ、AND、O
R、NAND、NORなどの各種のゲートや、RS、J
K、Dなどの各種のフリップフロップ等の基本的な論理
素子を総称したものである。また、「駆動能力値」と
は、素子に信号が入力されたときに駆動し得る能力の高
さ、つまり、その素子の出力信号によって示されている
論理の反転を、その素子の出力に接続されている負荷に
抗して行なわせ得る能力の高さを示す値である。
【0011】まず、図1の(a)に示す第一の構成を説
明する。これは、本発明に係る論理回路遅延最適化シス
テム第一の原理構成を示している。駆動能力値算出手段
11は、回路ブロックに与えられる負荷容量値が該回路
ブロック内を伝播する信号を遅延させる割合を示す該回
路ブロックの遅延率と、前記指定変更の対象である対象
回路ブロックの前段として該対象回路ブロックに接続さ
れている前段回路ブロックに指定がされている該素子に
よって定まる該前段回路ブロックの駆動能力値と、該対
象回路ブロックの後段に他の回路ブロックが接続される
ことにより該対象回路ブロックに対して与えられる負荷
容量値とに基づいて該対象回路ブロックに要求する駆動
能力値の算出を行なうものである。
【0012】変更手段12は、駆動能力値算出手段11
によって得られた駆動能力値に基づいて該対象回路ブロ
ックで使用される前記素子の指定の変更を行なう。この
第一の構成によれば、対象回路ブロックの前後段として
接続されている回路ブロックに関する特性値から対象回
路ブロックでの使用に最適な素子の選択が可能となる。
従って、論理回路中の全ての回路ブロックについて最適
な素子の選択を行なうことでクリティカルパスの抽出を
行なうことなく論理回路に対する遅延最適化が行なえる
ので、遅延最適化のために必要となる処理量が低減され
る。
【0013】なお、上述した第一の構成において、変更
手段12が、該変更前に選択されていたものと同一の実
装回路面積を要する前記素子を選択するように該変更を
行なうようにしてもよい。この構成によれば、遅延最適
化に起因する論理回路の実装面積の増加を防止すること
が可能となる。
【0014】また、上述した第一の構成において、該論
理回路に入力された信号若しくは該論理回路内のフリッ
プフロップである回路ブロックから出力された信号が、
該対象回路ブロックについての該回路ブロックを通過し
て出力されるまでに生じ得る遅延量を、該前段回路ブロ
ックまでの遅延量として算出する遅延量算出手段と、該
対象回路ブロックに信号を入力するための複数の入力ピ
ンのうち、該対象回路ブロックについての該回路ブロッ
クであって該前段回路ブロックまでの該遅延量が最大で
あるものが接続されている該入力ピンを該指定変更の対
象である回路ブロックの代表ピンとする代表ピン決定手
段と、を更に有し、駆動能力値算出手段11が、前記対
象回路ブロックについての前段回路ブロックのうち、該
代表ピンに接続されている該回路ブロックについての駆
動能力値に基づいて該算出を行なうようにしてもよい。
【0015】この構成によれば、本発明によれば、複数
の入力を有する回路ブロックの遅延最適化を適切に行な
うことが可能になる。また、上述した第一の構成におい
て、該論理回路の外部入力端子に接続される素子の駆動
能力値が入力される外部素子駆動能力値入力手段を更に
有し、駆動能力値算出手段11が、該外部入力端子に接
続されている該対象回路ブロックに要求する駆動能力値
の算出を、該外部素子駆動能力値入力手段に入力された
駆動能力値が該前段回路ブロックの駆動能力値であると
みなして行なうようにしてもよい。
【0016】この構成によれば、現実に想定される外部
入力端子に接続される素子の駆動能力を論理回路の遅延
最適化により正確に反映できるようになる。また、上述
した第一の構成において、該前段回路ブロックの駆動能
力値が入力される前段回路ブロック駆動能力値入力手段
を更に有し、駆動能力値算出手段11が、該前段回路ブ
ロック駆動能力値入力手段に入力された駆動能力値を該
前段回路ブロックの駆動能力値とみなして該対象回路ブ
ロックに要求する駆動能力値の算出を行なうようにして
もよい。
【0017】この構成によれば、前段回路ブロックまで
の回路構成について設計変更が予想されるときであって
も、前段回路ブロックの仮の駆動能力値が入力されれ
ば、後段回路ブロックの最適化が先行して行なえるよう
になる。また、上述した第一の構成において、該論理回
路の外部出力端子に接続される素子によって該論理回路
に与えられる負荷容量値が入力される外部素子負荷容量
値入力手段を更に有し、駆動能力値算出手段11が、該
外部出力端子に接続されている該対象回路ブロックに要
求する駆動能力値の算出を、該外部素子負荷容量値入力
手段に入力された負荷容量値が該対象回路ブロックに対
して与えられた負荷容量値であるとみなして行なうよう
にしてもよい。
【0018】この構成によれば、現実に想定される外部
出力端子に接続される素子による負荷容量を論理回路の
遅延最適化により正確に反映できるようになる。また、
上述した第一の構成において、該論理回路の実装設計が
行なわれることによって得られる該回路ブロック間の配
線によって生じる配線容量を取得する配線容量取得手段
を更に有し、駆動能力値算出手段11が、該配線容量取
得手段によって取得された配線容量を該負荷容量値に加
味して該対象回路ブロックに要求する駆動能力値の算出
を行なうようにしてもよい。
【0019】この構成によれば、実装設計によってより
正確に求められる配線容量を論理回路の遅延最適化に反
映できるようになる。また、上述した第一の構成におい
て、該回路ブロックに対して該指定の変更を行なわない
ことを示す属性を付与する非最適化属性付与手段を更に
有し、変更手段12は、該非最適化属性付与手段によっ
て該属性が付与されている該対象回路ブロックについて
は、前記指定の変更を行なわないようにしてもよい。
【0020】この構成によれば、ユーザが変更を望まな
い回路ブロックを該指定の変更を行なう回路ブロックの
対象外とすることができるようになるので、遅延最適化
の処理に要する処理量が低減され、また、回路設計作業
における手戻り(繰り返し作業)の減少が期待できる。
【0021】また、上述した第一の構成において、変更
手段12によって該指定の変更が行なわれた該対象回路
ブロックにおける該変更の内容を出力する変更内容出力
手段を更に有するように構成してもよい。この構成によ
れば、遅延最適化の結果を実装設計システム等の他のシ
ステムでの処理に反映することができ、設計効率の改善
が可能となる。また、この結果をファイル出力すること
で変更内容を明確にユーザに告知できるようになるの
で、後の実装設計等の作業における作業効率の向上が期
待できる。
【0022】次に図1の(b)に示す第二の構成を説明
する。これは、本発明に係る論理回路遅延最適化システ
ム第ニの原理構成を示している。スラック値算出手段2
1は、該回路ブロックのスラック値の算出を行なう。な
お、回路ブロックのスラック値とは、その回路ブロック
までで生じ得る最大遅延とその回路ブロックに許容され
ている到達時間(許容到達時間)との差であり、その回
路ブロックにおけるタイミングの余裕度を示すものであ
る。
【0023】駆動能力値分配手段22は、該論理回路中
の回路ブロックの有するひとつの出力が該回路ブロック
の後段の複数の回路ブロックである後段回路ブロックに
接続されているときに、該後段回路ブロックに指定がさ
れている該素子によって定まる該指定変更前の該後段回
路ブロック毎の駆動能力値を、該後段回路ブロック毎の
駆動能力値の合計値は維持しつつ且つ該後段回路ブロッ
ク毎に算出されたスラック値の差異に基づいて該後段回
路ブロックの各々に分配する。なお、「該論理回路中の
回路ブロックの有するひとつの出力が該回路ブロックの
後段の複数の回路ブロックである後段回路ブロックに接
続されているとき」とは、後段回路ブロックが、該論理
回路中の回路ブロックの有するひとつの出力に対して複
数のファンアウトを構成していることを示している。
【0024】後段回路ブロック駆動能力値算出手段23
は、駆動能力値分配手段22によって分配された駆動能
力値を該後段回路ブロックの前段の回路ブロックの駆動
能力値とみなして該後段回路ブロックに要求する駆動能
力値の算出を行なう。後段回路ブロック変更手段24
は、該算出によって得られた駆動能力値に基づいて該後
段回路ブロックで使用される該素子の指定の変更を行な
う。
【0025】この第二の構成によれば、駆動能力値分配
手段22が、各回路ブロックのスラック値に基づき、タ
イミングの余裕が少ない後段回路ブロックには駆動能力
値を多めに分配し、タイミングの余裕が多い後段回路ブ
ロックには駆動能力値を少なめに分配することで、信号
遅延量が大きくなっている信号パスを優先する最適化が
可能となり、駆動能力のバランスの良好な遅延最適化が
可能となる。
【0026】なお、上述した第二の構成において、該論
理回路の実装設計が行なわれることによって得られる該
回路ブロック間の配線によって生じる配線容量を取得す
る配線容量取得手段を更に有し、後段回路ブロック駆動
能力値算出手段23は、該配線容量取得手段によって取
得された配線容量を加味して前記算出を行なううに構成
してもよい。
【0027】この構成によれば、実装設計によってより
正確に求められる配線容量を論理回路の遅延最適化に反
映できるようになる。次に図1の(c)に示す第三の構
成を説明する。これは、本発明に係る論理回路遅延最適
化システム第三の原理構成を示している。
【0028】スラック値算出手段31は、該回路ブロッ
クのスラック値の算出を行なう。駆動能力比率算出手段
32は、該論理回路中の回路ブロックの有するひとつの
出力が該回路ブロックの後段の複数の回路ブロックであ
る後段回路ブロックに接続されているときに、該後段回
路ブロックに指定がされている該素子によって定まる該
指定変更前の該後段回路ブロック毎の駆動能力値の合計
と、該後段回路ブロックのうちスラック値によって最も
タイミングの余裕が少ないことが示されているものにつ
いての該指定変更前における駆動能力値の比率を算出す
る。
【0029】第一駆動能力値算出手段33は、駆動能力
比率算出手段32によって算出された駆動能力値の比率
に基づいて、該後段回路ブロックであってスラック値に
よって最もタイミングの余裕が少ないことが示されてい
る該後段回路ブロックに要求する駆動能力値を算出す
る。
【0030】第一後段回路ブロック変更手段34は、該
算出によって得られた駆動能力値に基づいて該後段回路
ブロックであってスラック値によって最もタイミングの
余裕が少ないことが示されている該後段回路ブロックに
ついての前記指定の変更を行なう。
【0031】この第三の構成によれば、後段回路ブロッ
クが複数のファンアウトを構成している場合におけるス
ラック値によって最もタイミングの余裕が少ないことが
示されている後段回路ブロックについての該素子の指定
の変更の際に、その後段回路ブロックと同時に駆動され
る他の後段回路ブロックについての特性値が考慮される
ので、該素子の選択が適切に行なえるようになる。
【0032】なお、上述した第三の構成において、該後
段回路ブロックのうちスラック値によって最もタイミン
グの余裕が少ないことが示されているものについての該
指定変更前における駆動能力値と該第一後段回路ブロッ
ク変更手段による変更後に指定されている該素子の駆動
能力値とよりこれらの駆動能力値の変化率を算出する変
化率算出手段と、該後段回路ブロックであってスラック
値によって最もタイミングの余裕が少ないことが示され
ているものを除いた他の後段回路ブロックに要求する駆
動能力値を、該変化率に基づいて算出する第二駆動能力
値算出手段と、該第二駆動能力値算出手段によって算出
された駆動能力値に基づいて該後段回路ブロックであっ
てスラック値によって最もタイミングの余裕が少ないこ
とが示されているものを除いた他の後段回路ブロックに
ついての該指定の変更を行なう第ニ後段回路ブロック変
更手段と、を更に有するように構成してもよい。
【0033】この構成によれば、後段回路ブロックが複
数のファンアウトを構成している場合に、同時に駆動さ
れる他の後段回路ブロックの特性値を考慮した該素子の
指定の変更が行なわれるので、回路面積の過剰な増大が
抑えられる。また、上述した第三の構成において、該論
理回路の実装設計が行なわれることによって得られる該
回路ブロック間の配線によって生じる配線容量を取得す
る配線容量取得手段を更に有し、第一駆動能力値算出手
段33は、該後段回路ブロックであってスラック値によ
って最もタイミングの余裕が少ないことが示されている
該後段回路ブロックに要求する駆動能力値の算出を、該
配線容量取得手段によって取得された配線容量を加味し
て行なうようにしてもよい。
【0034】この構成によれば、実装設計によってより
正確に求められる配線容量を論理回路の遅延最適化に反
映できるようになる。なお、前述した本発明に係る論理
回路遅延最適化システムを構成する各要素により実現さ
れる機能と同様のものをコンピュータに行なわせるため
のプログラムを作成し、そのプログラムをコンピュータ
に実行させることによっても、前述した課題を解決する
ことができる。
【0035】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて説明する。図2は、本発明を実施する論理回
路遅延最適化装置の構成を示す図である。同図におい
て、CPU101、ROM102、RAM103、I/
F部104、入力部105、表示部106、出力部10
7、記憶部108はいずれもバス109に接続されてお
り、相互にデータの授受が行なえる。
【0036】CPU(Central Processing Unit )10
1はこの論理回路遅延最適化装置(以下、「本装置」と
いう)全体の動作制御を司る中央処理装置である。RO
M(Read Only Memory)102は、CPU101によっ
て実行される制御プログラムが予め格納されているメモ
リであり、CPU101がこの制御プログラムを実行す
ることによって本装置全体の動作の制御が行なわれる。
【0037】RAM(Random Access Memory)103
は、各種のデータの一時的な格納領域として、またRO
M102に格納されている制御プログラムをCPU10
1が実行するときにワークメモリとして必要に応じて使
用されるメモリである。I/F(Interface)部104
は他の機器との間で通信ネットワークを介して行なわれ
る各種データの授受を制御する。
【0038】入力部105は外部からの入力を受け取っ
て該入力をCPU101に渡すものであり、例えばキー
ボードやマウスなどといった本装置のユーザからの指示
を受け取る入力装置、あるいはFD(Floppy Disk)、
CD−ROM(Compact Disc-ROM)、DVD−ROM
(Digital Versatile Disc-ROM)、MO(Magneto-Opti
cs)ディスクなどといった可搬型の記録媒体の読出装置
を備えて構成される。
【0039】表示部106はCPU101からの指示に
応じた表示を行なうものであり、例えばCRT(Cathod
e Ray Tube)やLCD(Liquid Crystal Display)から
なるディスプレイ装置である。出力部107は、CPU
101からの指示に応じた表示を行なうものであり、例
えばプリンタ装置や、あるいは上述したFDやMOディ
スク等の可搬型の記録媒体の書込装置を備えて構成され
る。勿論、可搬型の記録媒体についての書込機能と読出
機能とを兼ね備えている装置を入力部105と出力部1
07との共用の装置として利用することも可能である。
【0040】記憶部108は本装置による評価対象であ
るパートプログラムを含む各種のプログラムや、評価対
象であるそのパートプログラムに対して期待されている
測定精度を示す期待精度情報、更に後述するステージ精
度情報を含む各種のデータを記憶するものであり、例え
ばハードディスク装置を備えて構成される。なお、CP
U101は、ROM102に格納されている制御プログ
ラムを実行する代わりに、記憶部17に予め記憶されて
いる制御プログラムを読み出してRAM103に一旦格
納しておき、その後RAM103からその制御プログラ
ムを読み出して実行するようにして本装置全体の動作の
制御を行なうようにしてもよい。
【0041】本装置は以上の各構成要素を備えて構成さ
れる。なお、図2に示す本装置の構成は多くの標準的な
コンピュータが有しているものであるので、このような
コンピュータで本発明を実施することもできる。次に、
図2に示されているCPU101によって行なわれる制
御処理について説明する。なお、これより説明する各処
理は、いずれも本装置を制御するための制御プログラム
をCPU101が実行することによって実現される。
【0042】まず、図3について説明する。図3は、C
PU101によって行なわれる回路遅延最適化処理の処
理内容を示すフローチャートである。まず、S101に
おいて、記憶部108に予め格納されている回路ブロッ
クのライブラリが参照され、各回路ブロックに使用可能
な素子として定義されている各素子の素子面積、素子属
性、同一論理素子グループ、素子の入力ピンの駆動能
力、寄生容量、及び遅延率の各値が読み出されてRAM
103の所定領域に格納される。
【0043】続くS102において、遅延最適化処理の
対象である論理回路を示す回路網情報が例えばネット情
報の形態で入力部105に入力されて取得され、RAM
103の所定領域に格納される。S103では、その論
理回路において、回路ブロックの入力ピンが外部入力端
子に直接繋げられている回路ブロック、及びフリップフ
ロップである回路ブロック(以下、回路ブロックを単に
「ブロック」とも称する)を1段目としたときの、各ブ
ロックの段数が検出される。
【0044】S104では、その論理回路において、前
ステップで検出された段数に基づき、外部入力端子もし
くはフリップフロップのクロックピンから各ブロックま
での最大遅延が計算される。S105では、その論理回
路における各ブロックからその論理回路における外部出
力端子もしくはフリップフロップの入力ピンまでの許容
到達時間が計算され、その結果得られた許容到達時間と
各ブロックまでの最大パス遅延との差分が計算されてス
ラック値が求められる。
【0045】その後、S106において、論理回路内に
存在する全てのブロックに対して、最適化が行なわれた
か否かが判定される。ここで、非最適化の属性を持つ素
子が割り付けられているブロックは最適化が既に行なわ
れたものとみなして判定が行なわれる。この判定処理の
結果がYes、すなわち全てのブロックの最適化が行な
われたと判定されたときにはこの回路遅延最適化処理が
終了する。
【0046】一方、このS106の判定処理の結果がN
o、すなわち、最適化の行われていないブロックが未だ
残っていると判定されたならば、S107へと処理が進
んでそれらのうちの段数の小さいブロックからブロック
最適化処理が行なわれる。以下、このブロック最適化処
理について説明する。
【0047】図4はブロック最適化処理の第一の例の処
理内容を示すフローチャートである。図4において、S
111では、最適化処理の対象であるブロック(このブ
ロックを、以下「被最適化ブロック」と称することとす
る)の前段のブロック(このブロックを、以下「ドライ
バブロック」と称することとする)について使用するこ
とが現在指定されている素子と、前述したライブラリに
定義されていたその素子の駆動能力とが照合されて前段
ブロックの駆動能力が取得される。ここで、被最適化ブ
ロックにおいて、その入力ピンが外部入力端子に繋げら
れているものについては、その被最適化ブロックの前段
が論理回路中に存在しない為、特に指示がなければ標準
的に使用されるインバータによって駆動されているもの
として処理が進められる。
【0048】S112では、被最適化ブロックが駆動す
るこことなる後段の全てのブロックについても、各ブロ
ックについて使用することが現在指定されている素子
と、前述したライブラリに定義されていたその素子の駆
動能力とが照合されて後段ブロック各々の駆動能力が検
出され、それらの駆動能力の総和が計算される。この総
和の値は被最適化ブロックにとっての負荷容量とみるこ
とができる。ここで、被最適化ブロックのうちその出力
ピンが外部出力端子に直接繋げられているものについて
は、被最適化ブロックによって駆動されるブロックが回
路中に存在しない為、特に指示がなければ標準的に使用
される1個のインバータを駆動するものとして処理が進
められる。
【0049】S113では、更に、ドライバブロックと
被最適化ブロックとについて、各ブロックについて使用
することが現在指定されている各素子と、前述したライ
ブラリに定義されていたこれらの各素子の遅延率及び寄
生容量が照合され、各ブロックの遅延率及び寄生容量が
取得される。
【0050】S114では、以上のようにして取得され
た各ブロックの駆動能力、負荷容量、遅延率より、ドラ
イバブロックから被最適化ブロックにかけての遅延を最
小とするような、被最適化ブロックの最適駆動能力が求
められる。S115では、前ステップで求められた最適
駆動能力に基づいて、被最適化ブロックでの使用が現在
指定されている素子と同じ論理素子グループに属する素
子のうち、被最適化ブロックの最適駆動能力を満たす最
適な駆動能力を有するものが選択され、被最適化ブロッ
クについての指定がその素子を使用するように置換され
る。この処理を終えた後には処理が図3へと戻る。
【0051】以上の図3及び図4に示されている処理が
CPU101によって行なわれることによって論理回路
が最適化される具体例を示す。図5は素子情報が定義さ
れているライブラリの例を示している。ここで、図5に
用いられている用語について説明する。
【0052】入力ピンの寄生容量とは、素子の入力ピン
から見たその素子内部で定常的に有している容量であ
る。入力ピンの駆動能力とは、出力ピンに接続される容
量であって、その入力ピンに信号が入力されたときに駆
動し得る(出力信号の論理の反転を行なわせ得る)容量
の最大値であり、これは論理の反転という過渡的な動作
を行なわせる能力の高さを示す。
【0053】入力ピンの遅延率とは、その入力ピンから
その素子の出力ピンへの信号の伝播において、その素子
を駆動する(出力信号の論理の反転を行なわせる)と生
じる遅延に対し、その入力ピンの駆動能力とその出力ピ
ンについての負荷容量とがその遅延時間にどの程度の影
響を及ぼすかを示すものであり、 遅延率=(単位負荷容量で生じる遅延)×(駆動能力)
÷(最適化対象である論理回路における基準クロックの
1周期分の時間) で求められる。なお、負荷容量とは、出力ピンに接続さ
れている後段の全ての素子を駆動する(信号の論理を反
転する)過渡的な動作を行なうときに負荷としてその出
力ピンにかかり得る容量をいう。
【0054】また、素子の平均遅延率、平均駆動能力、
及び平均寄生容量とは、それぞれその素子の有する各入
力ピンの遅延率、駆動能力、寄生容量の平均値である。
図5について説明すると、素子名が「AAA」なる素子
は2入力NANDであり、「2NAND」グループなる
素子グループに属している。また、この素子に対する最
適化は「可」とされており、非最適化の属性は有してい
ない。そして、この素子を実装するには50の面積を要
し、その平均遅延率は1.3である。また、この素子は
A及びBなる入力ピンとXなる出力ピンとを有してお
り、入力ピンAについては遅延率が1.2、駆動能力が
33.5、寄生容量が9.0と定義され、入力ピンBに
ついては遅延率が1.4、駆動能力が32.0、寄生容
量が10.5と定義されている。
【0055】前述した図3のS101の処理において
は、この図5に示したようなライブラリが読み出され
る。次に図6について説明する。同図はこれより遅延最
適化処理を施す回路網の一例を示している。同図に示す
回路網において、ブロックF及びIはフリップフロップ
である。前述した図3のS102の処理においては、こ
の図6の回路網を示す情報が取得される。
【0056】なお、以降の説明においては、図6に示す
回路網を「回路網A」と称することとする。図7は、前
述した図3のS103の処理の実行によって回路網Aの
各ブロックに対して行なわれた段数付けの結果を示す図
である。同図において、各ブロックに付された数字が、
そのブロックの段数を示している。
【0057】図7において、例えばブロックDの前段に
はブロックA及びブロックCの2つが存在する。この2
つのブロックのうち段数の大きいブロックCの段数は2
であるから、ブロックCの段数である2段に1段を加え
た3段を、ブロックDの段数とする。他のブロックE、
H、及びKについても同様に、前段ブロックの段数のう
ちの最大のものに1段加えた段数をそのブロックの段数
とする。
【0058】図8は、前述した図3のS104の処理の
実行によって回路網Aの各ブロックに対して行なわれた
遅延計算の結果の例である。同図において、各ブロック
に付されている数字が、そのブロックの入力ピンから出
力ピンまでのブロック遅延を示す。なお、各ブロックの
遅延は次式によって算出される。
【0059】
【数1】
【0060】上式において、負荷容量は、自ブロックの
出力ピンに接続されている後段の全てのブロックの駆動
能力の総和となる。なお、上式の計算を行なうときに
は、遅延率、駆動能力、寄生容量として各ブロックの平
均遅延率、平均駆動能力、平均寄生容量を用い、また、
負荷容量についても、後段の全てのブロックの平均駆動
能力の総和を用いる。
【0061】図9は、前述した図3のS104の処理の
実行によって図8に示した遅延計算に続いて回路網Aの
各ブロックに対して行なわれた最大遅延の計算結果の例
である。同図において、各ブロックに付されている数字
が、そのブロックの出力ピンまでに生じ得る最大遅延を
示している。
【0062】図9において、例えばブロックDでは、前
段のブロックであるブロックAとブロックCとのうち、
その段までの最大遅延が大きいブロックAの最大遅延3
0に、ブロックD自身の遅延5を加えた値35が、ブロ
ックDまでの最大遅延となる。なお、ここではブロック
の段数は考慮しない。他のブロックE、H、及びKにつ
いても同様に、前段ブロックの最大遅延に自身の遅延を
加えた値を、そのブロックまでの最大遅延とする。
【0063】図10は、回路網Aにおいて外部出力端子
もしくはフリップフロップの入力ピンに繋がるブロック
までで許容される到達時間を80とした場合に、前述し
た図3のS105の処理の実行によって各ブロックに対
して行なわれた許容到達時間の計算結果の例である。同
図において、各ブロックに付されている括弧付の数字は
図7で示していた各ブロックの素子遅延を、また、それ
らの数字の下に示されている括弧無しの数字は許容到達
時間を、それぞれ示している。
【0064】図10において、例えばブロックJにおい
て、その出力ピンは外部出力端子と共にブロックKにも
繋げられている。ここで、ブロックKについて、その許
容到達時間が80であり、その素子遅延が10であるこ
とから、その差分は70となり、この値がブロックJか
らブロックKへのパスの許容到達時間となる。ここで、
ブロックJから外部出力端子へと繋げられているパスの
外部出力端子における許容到達時間は本来80である
が、ブロックKへのパスの許容到達時間の制限がより小
さいがためにブロックJの許容到達時間は70となる。
他のブロックについても同様である。
【0065】図11は、前述した図3のS105の処理
の実行によって回路網Aの各ブロックに対して行なわれ
たスラック値の計算結果の例である。同図において、各
ブロックに付されている数字がそのブロックのスラック
値を示している。ブロックのスラック値とは、そのブロ
ックまでで生じ得る最大遅延とそのブロックに許容され
ている到達時間(許容到達時間)との差であり、そのブ
ロックにおけるタイミングの余裕度を示すものである。
なお、本実施例では、そのブロックについての最大遅延
からそのブロックについての許容到達時間を減じた値を
スラック値とする。従って、スラック値の符号が正であ
って大きいほど許容到達時間に対する違反の程度が重度
であることを示し、一方、スラック値の符号が負であっ
て小さいほど(スラック値の符号が負であってその絶対
値が大きいほど)許容到達時間に対する余裕が大きいこ
とを示すこととなる。
【0066】図11において、例えばブロックJにおい
ては、最大遅延は図9より15であり、許容到達時間は
図10より70であることが分かるので、その差である
−55がこのブロックのスラック値となる。次に、前述
した図3のS107で行なわれる図4に示したブロック
最適化処理について説明する。
【0067】図4のS114で行なわれる被最適化ブロ
ックの最適駆動能力の算出は次のようにして行なわれ
る。ドライバブロックで生じる遅延と被最適化ブロック
で生じる遅延との和Dは、前述した[数1]式より、
【0068】
【数2】
【0069】となる。なお、上式において、 ドライバブロックの遅延+被最適化ブロックの遅延:D ドライバブロックの駆動能力:C1 ドライバブロックの遅延率:G1 ドライバブロックの寄生容量:P1 被最適化ブロックの駆動能力(=ドライバブロックの負
荷容量):c2 被最適化ブロックの遅延率:G2 被最適化ブロックの寄生容量:P2 被最適化ブロックの負荷容量:C3 クロック単位時間:τ である。
【0070】この[数2]式をc2で微分したときの値
が0となればこの部分の遅延が最小となる。従って、こ
のようなc2の値が最適な駆動能力となる。すなわち、
【0071】
【数3】
【0072】となり、このc2を最適駆動能力とする。
次に、図4のS115で行なわれる、前述したようにし
て求められた最適駆動能力に基づく素子の選択の一例を
説明する。ここでは、被最適化ブロックの素子が属する
論理素子グループ名を”INVERTER”であったとし、この
グループに含まれる素子名とその駆動能力が下記の表の
ようにライブラリに定義されていたものとする。
【0073】
【表1】
【0074】ここで、例えば、前述した図4のS114
の処理によって求められた被最適化ブロックの最適駆動
能力が14.0であった場合には、上記の[表1]よ
り、その値に最も近い駆動能力13.0を有している”
INV2”が選択される。その結果、S115の処理によっ
て被最適化ブロックの最適素子としてこの選択された素
子への置換が行なわれる。
【0075】次に図12について説明する。同図はブロ
ック最適化処理の第二の例の処理内容を示すフローチャ
ートである。この第二の処理は、素子の実装面積に制限
を付加することによって、最適化による実装面積の過大
な増加を抑制するというものである。
【0076】図12において、図4と同一の処理内容を
示すステップには同一の符号を付している。図12を図
4に示すブロック最適化処理の第一の例の処理内容を示
すフローチャートと比較すると分かるように、この第二
の例は、図4のS114の処理とS115の処理との間
にS121からS123にかけての処理が追加されたも
のである。
【0077】図12において、S115に続くS121
では、前述した図3のS102の処理において取得され
た回路網情報において、この被最適化ブロックに対して
回路面積を変更させない指示がなされているか否かが調
べられる。そして、S121の判定結果がYes、すな
わち上述した指示がなされているのであれば、S122
において、前述したライブラリにおいて定義されている
その被最適化ブロックでの使用が現在指定されている素
子についての素子面積が取得され、続くS123におい
て、その被最適化ブロックでの使用が現在指定されてい
る素子と同じ論理素子グループに属する素子において、
被最適化ブロックの素子面積と同一の面積を持つ素子が
その後の素子置換の選択候補とされ、その後はS115
に処理が進む。S115では、その選択候補とされた素
子がその被最適化ブロックで使用する素子としての指定
となるような使用素子の置換が行なわれる。
【0078】一方、S121の判定結果がNo、すなわ
ち上述した指示がなされていないのであれば、処理が直
ちにS115へと進み、図4と同様の処理が行なわれ
る。以上の図12に示されている処理がCPU101に
よって行なわれることによって論理回路が最適化される
具体例を示す。
【0079】被最適化ブロックの素子が属する論理素子
グループ名が”INVERTER”であったとし、このグループ
に含まれる素子名とその駆動能力及び素子面積とが下記
の表のようにライブラリに定義されていたものとする。
【0080】
【表2】
【0081】今、被最適化ブロックでの使用が現在指定
されている素子が”INV4”であったとき、その素子面積
は、上記の表により30であることが分かる。また、”
INVERTER”グループの素子のうち素子面積が30のもの
は、上記の表により”INV3”及び”INV4”の2つである
から、回路面積を変更させない指示がある場合にはこの
2つが素子置換の選択候補となる。
【0082】ここで、計算によって求められた被最適化
ブロックの最適駆動能力が14.0であった場合には、
その駆動能力に近い”INV3”が被最適化ブロックの最適
素子として選択されて置換される。この結果、被最適化
ブロックの回路面積は最適化が行なわれても保持され、
実装面積の過大な増加が抑制される。
【0083】次に図13について説明する。同図は代表
ピン選択処理の処理内容を示すフローチャートである。
この処理は、被最適化ブロックが複数の入力ピンを有し
ているときの最適化を行なうための処理であり、従来の
クリティカルパス上の入力ピンについて行なう手法に代
えて、その被最適化ブロックの前段のブロックであって
遅延量の最も大きなプロックが接続されている入力ピン
について駆動能力の最適化を行なうようにするものであ
る。
【0084】この図13の処理は、前述した図4若しく
は図12のブロック最適化処理におけるS111の処理
の際に実行される。まず、S131において、被最適化
ブロックが信号多入力のブロックであるか否か、すなわ
ち入力ピンを複数持つブロックであるか否かが判定され
る。そして、この判定結果がYesのときにのみ、S1
32において、各入力ピンがつながっている前段の各ブ
ロックについての最大遅延の値が取得される。
【0085】続くS133では、それらの値のうちで最
大であるもののブロックに繋げられている入力ピンが、
その被最適化ブロックの代表ピンとして選択される。な
お、S131の判定結果がNo、すなわち被最適化ブロ
ックが入力ピンを1つのみ有している場合は、そのピン
が代表ピンとされる。
【0086】以上の代表ピン選択処理がCPU101に
よって行なわれることによって被最適化ブロックの代表
ピンが選択される具体例を示す。前述した図9におい
て、被最適化ブロックとして例えばブロックDについて
注目する。
【0087】ブロックDはa及びbの入力ピンを有して
いる。そして、これらの2つの入力ピンにつながる前段
のブロックは、ブロックA及びブロックCである。これ
らのブロックまでの最大遅延の値はそれぞれ30、25
であることが図9には示されており、その値はブロック
Aの方が大きい。よって、ブロックDにおいては、ブロ
ックAに繋げられているピンaが代表ピンとなる。
【0088】次に、例えばブロックCが被最適化ブロッ
クである場合について考える。ブロックCの入力ピンは
aのみであるから、このピンaがブロックCの代表ピン
となる。次に図14について説明する。同図は駆動能力
分配処理の処理内容を示すフローチャートである。この
処理は、後段に複数のブロックが繋げられている、つま
り複数のファンアウトを有する被最適化ブロックの最適
化を行なった後に、これらの後段の各ブロックに指定さ
れていた駆動能力の違いをスラック値(タイミングの余
裕度)に基づいて平準化させることによって、これらの
各ブロックに対して後に行なわれる最適化において要求
することとなる駆動能力が過剰に見込まれることを抑制
させるものである。
【0089】この図14の処理は、前述した図3の回路
遅延最適化処理におけるS107のブロック最適化処理
の直後に実行される。図14において、S141では、
被最適化ブロックの後段のブロックのうち、その被最適
化ブロックの出力ピンに接続されている入力ピンがその
ブロックの代表ピンであるものが全て検出される。以下
の説明においては、この処理によって検出された後段の
ブロックを「ブランチブロック」と称することとする。
【0090】続くS142において、ブランチブロック
が複数検出されたか否かが判定され、この判定結果がY
esならばS143に処理が進む。一方、この判定結果
がNoならばブランチブロックの駆動能力の分配は行な
われずにこのままこの駆動能力分配処理が終了する。
【0091】S143では、各ブランチブロックの代表
ピンについて、それらの駆動能力が前述したライブラリ
での定義から取得され、それらの合計値が算出される。
S144では、前述した図3のS105の処理によって
既に算出されている、各ブランチブロックについてのス
ラック値が取得され、続くS145において取得された
スラック値の平均値(スラック平均値)が算出される。
【0092】S146では、算出されたスラック平均値
と各ブランチブロックのスラック値との差分に基づき、
且つブランチブロック全体での駆動能力を保持するよう
な駆動能力が各ブランチブロックについて算出され、各
ブランチブロックに分配される。
【0093】以上の駆動能力分配処理によって求められ
た駆動能力が各ブランチブロックについての最適化前の
駆動能力として設定され、後にこれらのブランチブロッ
クについての最適化処理が行なわれる。駆動能力分配処
理がCPU101によって行なわれることによってブラ
ンチブロックに対する駆動能力の分配が行なわれる具体
例を示す。
【0094】図15はこれより駆動能力分配処理を施す
回路網の一例を示している。同図において、各ブロック
の入力ピンa及びbのうち黒丸印が付されているものは
そのブロックの代表ピンであることを示している。な
お、以降の説明においては、図15に示す回路網を「回
路網B」と称することとする。
【0095】回路網Bにおいて、被最適化ブロックとし
てブロックAが選択されていた場合、そのブロックAの
出力ピンxはブロックC、ブロックD、及びブロックE
のいずれも入力ピンaに繋げられている。ここで、ブロ
ックC、ブロックD、及びブロックEの入力ピンaはい
ずれも代表ピンであることが図15に示されている。よ
って、被最適化ブロックAに対するブランチブロックは
ブロックC、ブロックD、及びブロックEとなる。
【0096】また、回路網Bにおいて、被最適化ブロッ
クとしてブロックBが選択されていた場合、そのブロッ
クAの出力ピンxは、ブロックD及びブロックEのいず
れも入力ピンbとブロックFの入力ピンaとに繋げられ
ている。ここで、ブロックD及びブロックEの入力ピン
bはいずれも代表ピンではなく、ブロックFの入力ピン
aは代表ピンであることが図15に示されている。よっ
て、被最適化ブロックBに対するブランチブロックはブ
ロックFのみとなる。
【0097】被最適化ブロックAに対するブランチブロ
ックC、D、及びEについての説明を続ける。これらの
ブランチブロックの素子名、代表ピンの駆動能力、スラ
ック値はそれぞれ下記の表に示すものであったとする。
【0098】
【表3】
【0099】上記の表において、これらのブランチブロ
ックの駆動能力の合計値は48.0であり、スラック平
均値は−40.0である。ここで、スラック値が平均値
以上、すなわちタイミングの余裕の少ないブランチブロ
ックについてはその駆動能力を次のように計算する。
【0100】
【数4】
【0101】上式において、 駆動能力計算値:C’ そのブランチブロックについて現在指定されている駆動
能力:C そのブランチブロックのスラック値:S ブランチブロック全体のスラック平均値:Sav 補正係数:k 例えば補正係数kを0.01とすると、[表3]におい
て、スラック値が平均値以上、すなわちタイミングの余
裕の少ないブランチブロックであるブロックCについて
はC’=15.6となり、ブロックCに対して現在指定
されているものよりも高めに駆動能力が分配される。な
お、補正係数kは経験や実験での実測結果等に基づいて
適切に設定される。
【0102】次に、スラック値が平均値よりも小さい、
すなわちタイミングの余裕が多いブランチブロックにつ
いてはその駆動能力を次のように計算する。まず、スラ
ック値が平均値よりも小さいブランチブロックについて
の駆動能力計算値C’を用いて下記の式を計算する。
【0103】
【数5】
【0104】上式において、Cdiffは駆動能力差分
の和である。[表3]においては、Cdiffは2.6
と算出される。次に、スラック値が平均値よりも小さい
ブランチブロックについて、駆動能力×(スラック平均
値−スラック値)の総和Sdiffを次式より算出す
る。
【0105】
【数6】
【0106】[表3]において、スラック値が平均値よ
りも小さいブランチブロックはブロックD及びブロック
Eであり、このときのSdiffは335.0と算出さ
れる。以上のようにして取得されたCdiff及びSd
iffの値に基づき、スラック値が平均値より大きいブ
ロックの駆動能力を、下記の式に沿って算出する。
【0107】
【数7】
【0108】[表3]において、スラック値が平均値よ
りも小さい、すなわちタイミングの余裕の多いブランチ
ブロックであるブロックD及びブロックEについて、ブ
ロックDはC’=18.3、ブロックEはC’=14.
1となり、ブロックD及びブロックEに対して現在指定
されているものよりも低めに駆動能力が分配される。こ
のように、ブロックD及びブロックEについては要求さ
れる駆動能力が抑制されたので、実装面積の低減化等が
期待できる。
【0109】次に図16について説明する。同図は駆動
能力比率計算処理の処理内容を示すフローチャートであ
る。この処理は、被最適化ブロックについてのブランチ
ブロック全体の駆動能力と、そのブランチブロックの各
々に指定されているものの中での最小の駆動能力との比
率(駆動能力比率)を算出する処理であり、後に説明す
る処理においてはこの駆動能力比率の値を利用してブラ
ンチブロックの最適化を行なう。
【0110】図16において、図14と同一の処理内容
を示すステップには同一の符号を付している。図16を
図14に示す駆動能力分配処理の処理内容を示すフロー
チャートと比較すると分かるように、この図16に示さ
れている処理は、図14のS145及びS146の処理
がS151及びS152の処理に置き換えられたもので
ある。
【0111】なお、この駆動能力比率計算処理は、被最
適化ブロックに対するブロック最適化が完了した後に、
その被最適化ブロックの後段のブランチブロックに対し
て行なわれる処理であり、前述した図3の回路遅延最適
化処理におけるS107のブロック最適化処理の後であ
って、前述した図14の駆動能力分配処理の直後に実行
される。
【0112】図16において、S144の処理に続くS
151では、各ブランチブロックのうちからスラック値
が最も大きい、すなわちタイミングの余裕が最も少ない
ブランチブロックが選択される。続くS152では、既
に計算されているブランチブロック全体の駆動能力の和
と、最大のスラック値を有するブランチブロックの駆動
能力との比率、すなわち駆動能力比率が計算される。
【0113】以上の駆動能力比率計算処理がCPU10
1によって行なわれることによって駆動能力比率が計算
される具体例を示す。前述した図15の回路網B中のブ
ロックAについてのブランチブロックC、D、及びEに
おいて、それぞれの素子名、駆動能力、スラック値、駆
動能力計算値(前述した駆動能力分配処理によって算出
された値)が下記の表の通りであったとする。
【0114】
【表4】
【0115】上記の表より、これらブランチブロックの
駆動能力の和は48.0であり、また、これらブランチ
ブロックの中でスラック値が最も大きい、すなわちタイ
ミングの余裕が少ないのはスラック値−20.0のブロ
ックCであることは容易に分かる。
【0116】[表4]において、ブロックCの駆動能力
計算値は15.6である。従ってこのときの駆動能力比
率mは、 m=48.0/15.6=3.1 と求められる。
【0117】次に、この駆動能力比率を用いたブランチ
ブロックの最適化について説明する。図17は、この駆
動能力比率を用いて行なわれる駆動能力変化率反映処理
の処理内容を示すフローチャートである。この駆動能力
変化率反映処理は、被最適化ブロックに対するブロック
最適化が完了した後に、その被最適化ブロックの後段の
ブランチブロックに対して行なわれる処理であり、前述
した図3の回路遅延最適化処理におけるS107のブロ
ック最適化処理の後であって、前述した図14の駆動能
力分配処理の直後に実行される。
【0118】図17において、図16と同一の処理内容
を示すステップには同一の符号を付している。図17を
図16に示す駆動能力比率計算処理の処理内容を示すフ
ローチャートと比較すると分かるように、この図17に
示されている処理は、図16のS152の処理に続いて
S153からS158にかけての処理が追加されたもの
である。
【0119】S152に続くS153では、同一のドラ
イブブロックに繋げられているブランチブロックのうち
スラック値が最大であり、最もタイミングの余裕が少な
いものの最適駆動能力が計算される。なお、このとき
に、S152の処理によって算出された駆動能力比率が
利用される。
【0120】S154では、前ステップで求められた最
適駆動能力に基づいて、そのブランチブロックでの使用
が現在指定されている素子と同じ論理素子グループに属
する素子のうち、そのブランチブロックの最適駆動能力
を満たす最適な駆動能力を有するものが選択され、その
ブランチブロックについての指定がその素子を使用する
ように置換される。
【0121】S155では、スラック値が最大のブラン
チブロックについて、S154の処理において置換され
た素子の駆動能力と、その置換前に設定されていた駆動
能力とからその駆動能力の変化率が計算される。その
後、S156において、同一のドライブブロックに繋げ
られている全てのブランチブロックに対して最適化が行
なわれたか否かが判定される。この判定処理の結果がY
es、すなわち全てのブランチブロックの最適化が行な
われたと判定されたときにはこの駆動能力最適化反映処
理が終了する。
【0122】一方、このS156の判定処理の結果がN
o、すなわち、最適化の行われていないブランチブロッ
クが未だ残っていると判定されたならば、S157へと
処理が進む。S157では、最適化を行なうブランチブ
ロックの駆動能力と、スラック値が最大のブロックにつ
いての駆動能力変化率とに基づいてそのブランチブロッ
クについての最適駆動能力が計算される。
【0123】続くS158では、前ステップで求められ
た最適駆動能力に基づいて、ブランチブロックでの使用
が現在指定されている素子と同じ論理素子グループに属
する素子のうち、そのブランチブロックの最適駆動能力
を満たす最適な駆動能力を有するものが選択され、その
ブランチブロックについての指定がその素子を使用する
ように置換される。この処理を終えた後にはS156へ
と処理が戻り、上述した処理が繰り返される。
【0124】以上の駆動能力最適化反映処理について、
更に詳説する。ます、前述した駆動能力比率、すなわち
ブランチブロック全体の駆動能力をスラック値が最大の
ブランチブロックの駆動能力で割った値をmとする。図
17のS153の処理においてスラック値が最大のブラ
ンチブロックについての最適駆動能力を計算するときに
は、前述した図4のS114の処理のために用いた[数
2]式に代えて下記の式を用いる。
【0125】
【数8】
【0126】なお、上式において、 最適化済ブロックの遅延+被最適化ブランチブロックの
遅延:D 最適化済ブロックの駆動能力:C1 最適化済ブロックの遅延率:G1 最適化済ブロックの寄生容量:P1 被最適化ブランチブロックの駆動能力:c2 被最適化ブランチブロックの遅延率:G2 被最適化ブランチブロックの寄生容量: P2 被最適化ブランチブロックの負荷容量: C3 クロック単位時間: τ 被最適化ブランチブロック分を除いた最適化済ブロック
の負荷容量の和(ネットの負荷容量も含む):Coth
er である。従って、最適化済ブロックの負荷容量は、c2
×m+Cotherで表されることになる。
【0127】この[数8]式をc2で微分したときの値
が0となればこの部分の遅延が最小となる。従って、こ
のようなc2の値が最適な駆動能力となる。すなわち、
【0128】
【数9】
【0129】となり、このc2を被最適化ブランチブロ
ックの最適駆動能力とする。図17のS155の処理に
おける駆動能力の変化率の計算では、S154の処理に
おいて最適化によって置換された素子の駆動能力をその
置換前の素子の駆動能力計算値で除算した結果の値を駆
動能力変化率とする。なお、ここでは、駆動能力変化率
を係数Gとして表すこととする。
【0130】[表4]において、ブロックCは最適化前
の駆動能力計算値が15.6である。ここで、ブロック
Cに対して施された最適化によって置換された素子の駆
動能力が16.0であったとすると、係数Gの値は1.
026となる。一方、スラック値が最小ではない他のブ
ランチブロックの最適駆動能力は、駆動能力計算値に係
数Gを掛けて求める。例えば、スラック値が最小でない
ブランチブロックであるブロックDの駆動能力計算値
は、[表4]より18.3であることが分かる。ここ
で、係数Gを1.026とすると、このブロックDの最
適駆動能力は18.8となる。よって、ブロックDの最
適化では、このブロックDに現在指定されている素子と
同一の論理素子グループに属し、前述した計算により求
められた最適駆動能力に最も近い駆動能力を持つ素子へ
の置換が行なわれる。
【0131】次に図18について説明する。同図はピン
駆動能力指示検出処理の処理内容を示すフローチャート
である。この処理は、遅延最適化を行なうときに、その
対象である論理回路網の入力端子に接続される外部の素
子の入力ピンの駆動能力値や論理回路網の出力端子に接
続される外部の素子の入力ピンの負荷容量値(すなわち
駆動能力値)、あるいは回路内部のブロックの入力ピン
についての駆動能力値について、前述したライブラリな
どで定義されている所定のものを適用させる代わりに、
ユーザが本装置へ任意に指示できるようにするものであ
り、実際に想定される外部端子への接続の再現や、回路
構成の変更が予定される箇所でのその変更を見込んだ上
での最適化を可能とするためのものである。
【0132】この図18の処理は、前述した図3の回路
遅延最適化処理におけるS101及びS102の処理に
より最適化の対象である回路網についての情報が読み込
まれた直後に実行される。図18において、まず、S1
61では、ピンの駆動能力についての外部指示が入力部
105になされたか否かが判定され、この判定の結果が
YesならばS162に処理が進む。一方、この判定の
結果がNoならばこのまま何もせずにこのピン駆動能力
指示検出処理を終了する。
【0133】S162では、入力部105へ指示された
駆動能力の読み込みが行なわれる。S163では、入力
部105へ指示された全てのピンについて、後述するS
164の検索処理が行なわれたか否かが判定され、この
判定の結果がYesならばこのピン駆動能力指示検出処
理を終了する。一方この判定の結果がNoならばS16
4に進む。
【0134】S164では入力部105へ指示されたピ
ンが最適化対象である論理回路網から検索され、続くS
165でそのピンがその論理回路網に存在するか否かが
判定される。そして、このS165の判定結果がYes
のときにのみ、S166において、そのピンの駆動能力
値が入力部105へ指示された値に変更されて後に行な
われる最適化の処理に反映される。その後は処理がS1
63へ戻って上述した処理が繰り返される。
【0135】以上の図18に示されている処理がCPU
101によって行なわれることによってピンの駆動能力
の指示が反映される具体例を示す。まず、前述した図1
5の回路網Bにおいて、各入力ピンの駆動能力がライブ
ラリにおいて下記の表のように定義されていたとする。
【0136】
【表5】
【0137】このとき、外部指示で“ブロックC−a=
10.0”なる指示がなされた場合、ブロックC−aピ
ンには、ライブラリでは13.0が定義されているが、
これに代えて最適化前の駆動能力値として10.0が設
定される。同様に“回路網B−a=13.0”なる指示
がなされた場合にも、回路網B−aピンには駆動能力値
として13.0が設定される。この指示はすなわち、ブ
ロックA−aピンが駆動能力13.0のブロックで駆動
されているとみなされることとなる。
【0138】また、もしも“ブロックB−b=16.
0”のような指示がなされた場合には、ブロックB−b
ピンは回路網Bには存在しないので、無視される。次に
図19について説明する。同図はネット負荷容量反映処
理の処理内容を示すフローチャートである。この処理
は、遅延の最適化を、ネット容量、すなわちブロック間
の配線に起因して生じる容量を反映させて行なうことを
可能とするための処理である。なお、ネット容量は、例
えば論理回路の実装設計をある程度行なった時点で再度
回路遅延の最適化を行なうような場合に、その実装設計
の情報から部分的に取得することが可能である。
【0139】この図19の処理は、前述した図3の回路
遅延最適化処理におけるS101及びS102の処理に
より最適化の対象である回路網についての情報が読み込
まれた直後に実行される。図19において、まず、S1
71では、ネットの負荷容量を遅延最適化に反映させる
指示が入力部105になされたか否かが判定され、この
判定の結果がYesならばS172に処理が進む。一
方、この判定の結果がNoならばこのまま何もせずにこ
のネット負荷容量反映処理を終了する。
【0140】S172では実装情報を持つデータベース
から最適化の対象である回路網中の各ネットの負荷容量
の情報が抽出され、続くS173においてその情報が通
信ネットワークを介してI/F部104より読み込まれ
る。S174では、取得された全てのネット容量の情報
について、後述するS175の検索処理が行なわれたか
否かが判定され、この判定の結果がYesならばこのネ
ット負荷容量反映処理を終了する。一方この判定の結果
がNoならばS175に進む。
【0141】S175では取得されたネット容量の情報
に対応するネット(配線)が最適化対象である論理回路
網から検索され、続くS176でそのネットがその論理
回路網に存在するか否かが判定される。そして、このS
176の判定結果がYesのときにのみ、S177にお
いて、そのネットの負荷容量が、標準的に用いられてい
る値から取得された情報に示されている値へと変更され
て後に行なわれる最適化の処理に反映される。その後は
処理がS174へ戻って上述した処理が繰り返される。
【0142】以上の図18に示されている処理がCPU
101によって行なわれることによってネットの負荷容
量が反映される具体例を示す。まず、前述した図15の
回路網Bについての実装情報を持つデータベースDB1
の存在を想定する。
【0143】このデータベースDB1は、回路網Bにお
けるネットNetA及びNetBの実装配線情報を有し
ており、それと共にそれらのネットの負荷容量情報Cn
eta及びCnetbをも有している。図19のS17
2の処理によってこれらの情報が抽出されると、下記の
ような形式のテキスト情報がデータベースDB1から本
装置へと送られてくる。
【0144】 NetCapacity{ NetA=Cneta; NetB=Cnetb; … … … } CPU101では上記の情報が読み込まれて解釈され
る。そしてNetAには負荷容量Cnetaが、また、
NetBには負荷容量Cnetbが設定される。
【0145】これらの値が設定されると、例えばブロッ
クAの負荷容量は、ブロックC−a、ブロックD−a、
ブロックE−aの各々の駆動能力とネット負荷容量Cn
etaとの和となる。次に図20について説明する。同
図はブロック非最適化指示検出処理の処理内容を示すフ
ローチャートである。この処理は、遅延最適化を行なう
ときに、その対象である論理回路網のうちのブロックに
ついてはユーザの指示に応じて最適化を行なわないよう
にすることを可能とする処理であり、例えば論理回路の
実装面積及び信号遅延に余裕があるときには敢えて新た
な実装設計を行なわずに既に設計済みのものをそのまま
流用するときなどに有効なものである。
【0146】この図20の処理は、前述した図3の回路
遅延最適化処理におけるS101及びS102の処理に
より最適化の対象である回路網についての情報が読み込
まれた直後に実行される。図20において、まず、S1
81では、ブロックの非最適化についての外部指示、す
なわち一部の回路ブロックについて最適化を行なわない
旨の外部指示が入力部105になされたか否かが判定さ
れ、この判定の結果がYesならばS182に処理が進
む。一方、この判定の結果がNoならばこのまま何もせ
ずにこのブロック非最適化指示検出処理を終了する。
【0147】S182では、入力部105へ指示された
最適化を行なわないブロックを示す情報の読み込みが行
なわれる。S183では、入力部105へ指示された全
てのブロックについて、後述するS184の検索処理が
行なわれたか否かが判定され、この判定の結果がYes
ならばこのブロック非最適化指示検出処理を終了する。
一方この判定の結果がNoならばS184に進む。
【0148】S184では入力部105へ指示されたブ
ロックが最適化対象である論理回路網から検索され、続
くS185でそのブロックがその論理回路網に存在する
か否かが判定される。そして、このS185の判定結果
がYesのときにのみ、S186において、非最適化を
示す属性がそのブロックに設定される。その後は処理が
S183へ戻って上述した処理が繰り返される。
【0149】以上のブロック非最適化指示検出処理が実
行されるときには、前述した図3の回路遅延最適化処理
の処理内容が図21に示すように変更される。図21を
参照すると分かるように、この変更は図3のS106の
処理とS107の処理との間にS187の処理として、
最適化対象のブロックに非最適化の属性が設定されてい
るか否かの判定処理が挿入されるというものである。そ
して、この変更により、この判定処理の結果がYesの
ときにのみ、S107のブロック最適化処理が実行され
るようになる。
【0150】以上の処理がCPU101によって行なわ
れることによって最適化対象の論理回路の一部のブロッ
クについて最適化が行なわれなくなる具体例を示す。前
述した図15の回路網Bにおいて、例えばブロックDが
非最適化ブロックとして外部指示されると、ブロックD
には非最適化の属性が付与される。このときには、ブロ
ックAにおける負荷容量としてブロックD−aの駆動能
力は加算されるが、ブロックAについてのブランチブロ
ックにはブロックDは含まれず、ブロックC、Eのみと
する。つまり、ブロックDについては最適化処理が行な
われない。
【0151】次に図22について説明する。同図は素子
変更情報出力処理の処理内容を示すフローチャートであ
る。この処理は、回路の遅延最適化によって使用する素
子に変更が生じたときにその変更内容をユーザに提示可
能とするものであり、変更内容を明確にユーザに告知で
きるようにすることで後の実装設計等の作業における作
業効率の向上を目指すものである。
【0152】なお、この素子変更情報出力処理は、S1
91の処理として示すように、前述した図3の回路遅延
最適化処理に続けて実行される。S191に続くS19
2では、使用素子の変更情報が格納される変更情報ファ
イルの出力指示がユーザによって入力部105になされ
ているか否かが判断され、この判定の結果がYesなら
ばS193に処理が進む。一方、この判定の結果がNo
ならば直ちにこの素子変更情報出力処理が終了する。
【0153】S193では、遅延最適化の対象である論
理回路における全てのブロックについて、後述するS1
94からS196にかけての処理が行なわれたか否かが
判定され、この判定の結果がYesならばこの素子変更
情報出力処理を終了する。一方この判定の結果がNoな
らばS194に進む。
【0154】S194では、処理対象のブロックについ
てそのブロックに付されている名称(固有名)が取得さ
れ、続くS195では、そのブロックで最適化の前に使
用することが指定されていた素子の素子名とそのブロッ
クで最適化によって使用することとされた素子の素子名
とが取得される。
【0155】S196では、上述したS195及びS1
96の処理によって取得された固有名及び素子名を関連
付けて変更情報ファイルに格納する。その後はS193
へと処理が戻って上述した処理が繰り返される。以上の
図22に示されている処理がCPU101によって行な
われることによって使用する素子の変更情報が出力され
る具体例を示す。
【0156】前述した図15の回路網Bについて、前述
した回路遅延最適化処理の結果、下記の表のように素子
の置換が行なわれたものとする。
【0157】
【表6】
【0158】図22のS196の処理では、上記の表に
示されている情報から、例えば次のような形式で変更情
報ファイルに格納して出力する。 Change ブロックA: INV4,INV5; Change ブロックB: INV1,INV2; Change ブロックC: INV2,INV3; Change ブロックD: 2NAND4,2NAND4; Change ブロックE: 2NOR3,2NOR2; Change ブロックF: INV3,INV1; なお、本発明を標準的なコンピュータで実施するには、
以上までに説明した本発明の実施形態において本装置の
有するCPU101が行なっていたものと同様の処理を
そのコンピュータに行なわせるための制御プログラムを
作成し、その制御プログラムをコンピュータに読み込ま
せて実行させることにより可能となる。
【0159】また、このような制御プログラムをコンピ
ュータで読み取り可能な記録媒体に記録させ、そのプロ
グラムを記録媒体からコンピュータに読み出させて実行
させることによって本発明をコンピュータで実施するこ
とも可能である。記録させた制御プログラムをコンピュ
ータで読み取ることの可能な記録媒体の例を図23に示
す。同図に示すように、記録媒体としては、例えば、コ
ンピュータ201に内蔵若しくは外付けの付属装置とし
て備えられるROMやハードディスク装置などのメモリ
202、あるいはフロッピー(登録商標)ディスク、M
O(光磁気ディスク)、CD−ROM、DVD−ROM
などといった可搬型記憶媒体203等が利用できる。ま
た、記録媒体は回線204を介してコンピュータ201
と接続される、プログラムサーバ205として機能する
コンピュータが備えている記憶装置206であってもよ
い。この場合には、制御プログラムを表現するデータ信
号で搬送波を変調して得られる伝送信号を、プログラム
サーバ205から伝送媒体である回線204を通じて伝
送するようにし、コンピュータ201では受信した伝送
信号を復調して制御プログラムを再生することで当該制
御プログラムを実行できるようになる。 (付記1) 複数の回路ブロックを接続してなる論理回
路に対し、該回路ブロック毎に指定がされている該回路
ブロックを構成するために使用するプリミティブな素子
についての該指定を該素子と同一の機能を有し且つ駆動
能力値は異なる他のプリミティブな素子へ変更すること
によって、該論理回路内を伝播する信号の遅延について
の最適化を行なうシステムであって、回路ブロックに与
えられる負荷容量値が該回路ブロック内を伝播する信号
を遅延させる割合を示す該回路ブロックの遅延率と、前
記指定変更の対象である対象回路ブロックの前段として
該対象回路ブロックに接続されている前段回路ブロック
に指定がされている前記素子によって定まる該前段回路
ブロックの駆動能力値と、該対象回路ブロックの後段に
他の回路ブロックが接続されることにより該対象回路ブ
ロックに対して与えられる負荷容量値とに基づいて該対
象回路ブロックに要求する駆動能力値の算出を行なう駆
動能力値算出手段と、前記算出によって得られた駆動能
力値に基づいて前記対象回路ブロックで使用される前記
素子の指定の変更を行なう変更手段と、を有することを
特徴とする論理回路遅延最適化システム。 (付記2) 前記変更手段は、前記変更前に選択されて
いたものと同一の実装回路面積を要する前記素子を選択
するように該変更を行なうことを特徴とする付記1に記
載の論理回路遅延最適化システム。 (付記3) 前記論理回路に入力された信号若しくは該
論理回路内のフリップフロップである回路ブロックから
出力された信号が、前記対象回路ブロックについての前
段回路ブロックを通過して出力されるまでに生じ得る遅
延量を、該前段回路ブロックまでの遅延量として算出す
る遅延量算出手段と、前記対象回路ブロックに信号を入
力するための複数の入力ピンのうち、該対象回路ブロッ
クについての前段回路ブロックであって該前段回路ブロ
ックまでの前記遅延量が最大であるものが接続されてい
る該入力ピンを該指定変更の対象である回路ブロックの
代表ピンとする代表ピン決定手段と、を更に有し、前記
駆動能力値算出手段は、前記対象回路ブロックについて
の前段回路ブロックのうち、前記代表ピンに接続されて
いる前段回路ブロックについての駆動能力値に基づいて
前記算出を行なう、ことを特徴とする付記1に記載の論
理回路遅延最適化システム。 (付記4) 複数の回路ブロックを接続してなる論理回
路に対し、該回路ブロック毎に指定がされている該回路
ブロックを構成するために使用するプリミティブな素子
についての該指定を該素子と同一の機能を有し且つ駆動
能力値は異なる他のプリミティブな素子へ変更すること
によって、該論理回路内を伝播する信号の遅延について
の最適化を行なう装置であって、前記回路ブロックのス
ラック値の算出を行なうスラック値算出手段と、前記論
理回路中の回路ブロックの有するひとつの出力が該回路
ブロックの後段の複数の回路ブロックである後段回路ブ
ロックに接続されているときに、該後段回路ブロックに
指定がされている前記素子によって定まる前記指定変更
前の該後段回路ブロック毎の駆動能力値を、該後段回路
ブロック毎の駆動能力値の合計値は維持しつつ且つ該後
段回路ブロック毎に算出されたスラック値の差異に基づ
いて該後段回路ブロックの各々に分配する駆動能力値分
配手段と、前記駆動能力値分配手段によって分配された
駆動能力値を前記後段回路ブロックの前段の回路ブロッ
クの駆動能力値とみなして該後段回路ブロックに要求す
る駆動能力値の算出を行なう後段回路ブロック駆動能力
値算出手段と、前記算出によって得られた駆動能力値に
基づいて前記後段回路ブロックで使用される前記素子の
指定の変更を行なう後段回路ブロック変更手段と、を有
することを特徴とする論理回路遅延最適化システム。 (付記5) 複数の回路ブロックを接続してなる論理回
路に対し、該回路ブロック毎に指定がされている該回路
ブロックを構成するために使用するプリミティブな素子
についての該指定を該素子と同一の機能を有し且つ駆動
能力値は異なる他のプリミティブな素子へ変更すること
によって、該論理回路内を伝播する信号の遅延について
の最適化を行なう装置であって、前記回路ブロックのス
ラック値の算出を行なうスラック値算出手段と、前記論
理回路中の回路ブロックの有するひとつの出力が該回路
ブロックの後段の複数の回路ブロックである後段回路ブ
ロックに接続されているときに、該後段回路ブロックに
指定がされている前記素子によって定まる前記指定変更
前の該後段回路ブロック毎の駆動能力値の合計と、該後
段回路ブロックのうちスラック値によって最もタイミン
グの余裕が少ないことが示されているものについての該
指定変更前における駆動能力値の比率を算出する駆動能
力比率算出手段と、前記駆動能力比率算出手段によって
算出された駆動能力値の比率に基づいて、前記後段回路
ブロックであってスラック値によって最もタイミングの
余裕が少ないことが示されている該後段回路ブロックに
要求する駆動能力値を算出する第一駆動能力値算出手段
と、前記算出によって得られた駆動能力値に基づいて前
記後段回路ブロックであってスラック値によって最もタ
イミングの余裕が少ないことが示されている該後段回路
ブロックについての前記指定の変更を行なう第一後段回
路ブロック変更手段と、を有することを特徴とする論理
回路遅延最適化システム。 (付記6) 前記後段回路ブロックのうちスラック値に
よって最もタイミングの余裕が少ないことが示されてい
るものについての前記指定変更前における駆動能力値と
前記第一後段回路ブロック変更手段による変更後に指定
されている前記素子の駆動能力値とよりこれらの駆動能
力値の変化率を算出する変化率算出手段と、前記後段回
路ブロックであってスラック値によって最もタイミング
の余裕が少ないことが示されているものを除いた他の後
段回路ブロックに要求する駆動能力値を、前記変化率に
基づいて算出する第二駆動能力値算出手段と、前記第二
駆動能力値算出手段によって算出された駆動能力値に基
づいて前記後段回路ブロックであってスラック値によっ
て最もタイミングの余裕が少ないことが示されているも
のを除いた他の後段回路ブロックについての前記指定の
変更を行なう第ニ後段回路ブロック変更手段と、を更に
有することを特徴とする付記5に記載の論理回路遅延最
適化システム。 (付記7) 前記論理回路の外部入力端子に接続される
素子の駆動能力値が入力される外部素子駆動能力値入力
手段を更に有し、前記駆動能力値算出手段は、前記外部
入力端子に接続されている前記対象回路ブロックに要求
する駆動能力値の算出を、前記外部素子駆動能力値入力
手段に入力された駆動能力値が前記前段回路ブロックの
駆動能力値であるとみなして行なう、ことを特徴とする
付記1から3までのうちのいずれか一項に記載の論理回
路遅延最適化システム。 (付記8) 前記前段回路ブロックの駆動能力値が入力
される前段回路ブロック駆動能力値入力手段を更に有
し、前記駆動能力値算出手段は、前記前段回路ブロック
駆動能力値入力手段に入力された駆動能力値を前記前段
回路ブロックの駆動能力値とみなして前記対象回路ブロ
ックに要求する駆動能力値の算出を行なう、ことを特徴
とする付記1から3までのうちのいずれか一項に記載の
論理回路遅延最適化システム。 (付記9) 前記論理回路の外部出力端子に接続される
素子によって該論理回路に与えられる負荷容量値が入力
される外部素子負荷容量値入力手段を更に有し、前記駆
動能力値算出手段は、前記外部出力端子に接続されてい
る前記対象回路ブロックに要求する駆動能力値の算出
を、前記外部素子負荷容量値入力手段に入力された負荷
容量値が該対象回路ブロックに対して与えられた負荷容
量値であるとみなして行なう、ことを特徴とする付記1
から3までのうちのいずれか一項に記載の論理回路遅延
最適化システム。 (付記10) 前記論理回路の実装設計が行なわれるこ
とによって得られる前記回路ブロック間の配線によって
生じる配線容量を取得する配線容量取得手段を更に有
し、前記駆動能力値算出手段は、前記配線容量取得手段
によって取得された配線容量を前記負荷容量値に加味し
て前記対象回路ブロックに要求する駆動能力値の算出を
行なう、ことを特徴とする付記1から3までのうちのい
ずれか一項に記載の論理回路遅延最適化システム。 (付記11) 前記論理回路の実装設計が行なわれるこ
とによって得られる前記回路ブロック間の配線によって
生じる配線容量を取得する配線容量取得手段を更に有
し、前記後段回路ブロック駆動能力値算出手段は、前記
配線容量取得手段によって取得された配線容量を加味し
て前記算出を行なう、ことを特徴とする付記4に記載の
論理回路遅延最適化システム。 (付記12) 前記論理回路の実装設計が行なわれるこ
とによって得られる前記回路ブロック間の配線によって
生じる配線容量を取得する配線容量取得手段を更に有
し、前記第一駆動能力値算出手段は、前記後段回路ブロ
ックであってスラック値によって最もタイミングの余裕
が少ないことが示されている該後段回路ブロックに要求
する駆動能力値の算出を、前記配線容量取得手段によっ
て取得された配線容量を加味して行なう、ことを特徴と
する付記5に記載の論理回路遅延最適化システム。 (付記13) 前記論理回路の実装設計が行なわれるこ
とによって得られる前記回路ブロック間の配線によって
生じる配線容量を取得する配線容量取得手段を更に有
し、前記第一駆動能力値算出手段は、前記後段回路ブロ
ックであってスラック値によって最もタイミングの余裕
が少ないことが示されている該後段回路ブロックに要求
する駆動能力値の算出を、前記配線容量取得手段によっ
て取得された配線容量を加味して行ない、前記第ニ駆動
能力値算出手段は、前記後段回路ブロックであってスラ
ック値によって最もタイミングの余裕が少ないことが示
されているものを除いた他の後段回路ブロックに要求す
る駆動能力値の算出を、前記配線容量取得手段によって
取得された配線容量を加味して行なう、ことを特徴とす
る付記6に記載の論理回路遅延最適化システム。 (付記14) 前記回路ブロックに対して前記指定の変
更を行なわないことを示す属性を付与する非最適化属性
付与手段を更に有し、前記変更手段は、前記非最適化属
性付与手段によって前記属性が付与されている前記対象
回路ブロックについては、前記指定の変更を行なわな
い、ことを特徴とする付記1から3までのうちのいずれ
か一項に記載の論理回路遅延最適化システム。 (付記15) 前記変更手段によって前記指定の変更が
行なわれた前記対象回路ブロックにおける該変更の内容
を出力する変更内容出力手段を更に有することを特徴と
する付記1から3までのうちのいずれか一項に記載の論
理回路遅延最適化システム。 (付記16) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう方法であって、回路ブロックに与え
られる負荷容量値が該回路ブロック内を伝播する信号を
遅延させる割合を示す該回路ブロックの遅延率と、前記
指定変更の対象である対象回路ブロックの前段として該
対象回路ブロックに接続されている前段回路ブロックに
指定がされている前記素子によって定まる該前段回路ブ
ロックの駆動能力値と、該対象回路ブロックの後段に他
の回路ブロックが接続されることにより該対象回路ブロ
ックに対して与えられる負荷容量値とに基づいて該対象
回路ブロックに要求する駆動能力値の算出を行ない、前
記算出によって得られた駆動能力値に基づいて前記対象
回路ブロックで使用される前記素子の指定の変更を行な
う、ことを特徴とする論理回路遅延最適化方法。 (付記17) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう方法であって、前記回路ブロックの
スラック値の算出を行ない、前記論理回路中の回路ブロ
ックの有するひとつの出力が該回路ブロックの後段の複
数の回路ブロックである後段回路ブロックに接続されて
いるときに、該後段回路ブロックに指定がされている前
記素子によって定まる前記指定変更前の該後段回路ブロ
ック毎の駆動能力値を、該後段回路ブロック毎の駆動能
力値の合計値は維持しつつ且つ該後段回路ブロック毎に
算出されたスラック値の差異に基づいて該後段回路ブロ
ックの各々に分配し、前記後段回路ブロックの各々に分
配された駆動能力値を前記後段回路ブロックの前段の回
路ブロックの駆動能力値とみなして該後段回路ブロック
に要求する駆動能力値の算出を行ない、前記算出によっ
て得られた駆動能力値に基づいて前記後段回路ブロック
で使用される前記素子の指定の変更を行なう、ことを特
徴とする論理回路遅延最適化方法。 (付記18) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう方法であって、前記回路ブロックの
スラック値の算出を行ない、前記論理回路中の回路ブロ
ックの有するひとつの出力が該回路ブロックの後段の複
数の回路ブロックである後段回路ブロックに接続されて
いるときに、該後段回路ブロックに指定がされている前
記素子によって定まる前記指定変更前の該後段回路ブロ
ック毎の駆動能力値の合計と、該後段回路ブロックのう
ちスラック値によって最もタイミングの余裕が少ないこ
とが示されているものについての該指定変更前における
駆動能力値の比率を算出し、前記比率に基づいて、前記
後段回路ブロックであってスラック値によって最もタイ
ミングの余裕が少ないことが示されている該後段回路ブ
ロックに要求する駆動能力値を算出し、前記比率に基づ
いて算出された駆動能力値に基づいて前記後段回路ブロ
ックであってスラック値によって最もタイミングの余裕
が少ないことが示されている該後段回路ブロックについ
ての前記指定の変更を行なう、ことを特徴とする論理回
路遅延最適化方法。 (付記19) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう処理をコンピュータに行なわせるた
めのプログラムであって、回路ブロックに与えられる負
荷容量値が該回路ブロック内を伝播する信号を遅延させ
る割合を示す該回路ブロックの遅延率と、前記指定変更
の対象である対象回路ブロックの前段として該対象回路
ブロックに接続されている前段回路ブロックに指定がさ
れている前記素子によって定まる該前段回路ブロックの
駆動能力値と、該対象回路ブロックの後段に他の回路ブ
ロックが接続されることにより該対象回路ブロックに対
して与えられる負荷容量値とに基づいて該対象回路ブロ
ックに要求する駆動能力値の算出を行なう処理と、前記
算出によって得られた駆動能力値に基づいて前記対象回
路ブロックで使用される前記素子の指定の変更を行なう
処理と、を該コンピュータに行なわせるためのプログラ
ム。 (付記20) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう処理をコンピュータに行なわせるた
めのプログラムであって、前記回路ブロックのスラック
値の算出を行なう処理と、前記論理回路中の回路ブロッ
クの有するひとつの出力が該回路ブロックの後段の複数
の回路ブロックである後段回路ブロックに接続されてい
るときに、該後段回路ブロックに指定がされている前記
素子によって定まる前記指定変更前の該後段回路ブロッ
ク毎の駆動能力値を、該後段回路ブロック毎の駆動能力
値の合計値は維持しつつ且つ該後段回路ブロック毎に算
出されたスラック値の差異に基づいて該後段回路ブロッ
クの各々に分配する処理と、前記後段回路ブロックの各
々に分配された駆動能力値を前記後段回路ブロックの前
段の回路ブロックの駆動能力値とみなして該後段回路ブ
ロックに要求する駆動能力値の算出を行なう処理と、前
記算出によって得られた駆動能力値に基づいて前記後段
回路ブロックで使用される前記素子の指定の変更を行な
う処理と、を該コンピュータに行なわせるためのプログ
ラム。 (付記21) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう処理をコンピュータに行なわせるた
めのプログラムであって、前記回路ブロックのスラック
値の算出を行なう処理と、前記論理回路中の回路ブロッ
クの有するひとつの出力が該回路ブロックの後段の複数
の回路ブロックである後段回路ブロックに接続されてい
るときに、該後段回路ブロックに指定がされている前記
素子によって定まる前記指定変更前の該後段回路ブロッ
ク毎の駆動能力値の合計と、該後段回路ブロックのうち
スラック値によって最もタイミングの余裕が少ないこと
が示されているものについての該指定変更前における駆
動能力値の比率を算出する処理と、前記比率に基づい
て、前記後段回路ブロックであってスラック値によって
最もタイミングの余裕が少ないことが示されている該後
段回路ブロックに要求する駆動能力値を算出する処理
と、前記比率に基づいて算出された駆動能力値に基づい
て前記後段回路ブロックであってスラック値によって最
もタイミングの余裕が少ないことが示されている該後段
回路ブロックについての前記指定の変更を行なう処理
と、を該コンピュータに行なわせるためのプログラム。 (付記22) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう処理をコンピュータに行なわせるた
めのプログラムを含む搬送波に具現化されたコンピュー
タ・データ・シグナルであって、該プログラムは以下の
処理をコンピュータに行なわせる:回路ブロックに与え
られる負荷容量値が該回路ブロック内を伝播する信号を
遅延させる割合を示す該回路ブロックの遅延率と、前記
指定変更の対象である対象回路ブロックの前段として該
対象回路ブロックに接続されている前段回路ブロックに
指定がされている前記素子によって定まる該前段回路ブ
ロックの駆動能力値と、該対象回路ブロックの後段に他
の回路ブロックが接続されることにより該対象回路ブロ
ックに対して与えられる負荷容量値とに基づいて該対象
回路ブロックに要求する駆動能力値の算出を行なう処
理、及び前記算出によって得られた駆動能力値に基づい
て前記対象回路ブロックで使用される前記素子の指定の
変更を行なう処理。 (付記23) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう処理をコンピュータに行なわせるた
めのプログラムを含む搬送波に具現化されたコンピュー
タ・データ・シグナルであって、該プログラムは以下の
処理をコンピュータに行なわせる:前記回路ブロックの
スラック値の算出を行なう処理、前記論理回路中の回路
ブロックの有するひとつの出力が該回路ブロックの後段
の複数の回路ブロックである後段回路ブロックに接続さ
れているときに、該後段回路ブロックに指定がされてい
る前記素子によって定まる前記指定変更前の該後段回路
ブロック毎の駆動能力値を、該後段回路ブロック毎の駆
動能力値の合計値は維持しつつ且つ該後段回路ブロック
毎に算出されたスラック値の差異に基づいて該後段回路
ブロックの各々に分配する処理、前記後段回路ブロック
の各々に分配された駆動能力値を前記後段回路ブロック
の前段の回路ブロックの駆動能力値とみなして該後段回
路ブロックに要求する駆動能力値の算出を行なう処理、
及び前記算出によって得られた駆動能力値に基づいて前
記後段回路ブロックで使用される前記素子の指定の変更
を行なう処理。 (付記24) 複数の回路ブロックを接続してなる論理
回路に対し、該回路ブロック毎に指定がされている該回
路ブロックを構成するために使用するプリミティブな素
子についての該指定を該素子と同一の機能を有し且つ駆
動能力値は異なる他のプリミティブな素子へ変更するこ
とによって、該論理回路内を伝播する信号の遅延につい
ての最適化を行なう処理をコンピュータに行なわせるた
めのプログラムを含む搬送波に具現化されたコンピュー
タ・データ・シグナルであって、該プログラムは以下の
処理をコンピュータに行なわせる:前記回路ブロックの
スラック値の算出を行なう処理、前記論理回路中の回路
ブロックの有するひとつの出力が該回路ブロックの後段
の複数の回路ブロックである後段回路ブロックに接続さ
れているときに、該後段回路ブロックに指定がされてい
る前記素子によって定まる前記指定変更前の該後段回路
ブロック毎の駆動能力値の合計と、該後段回路ブロック
のうちスラック値によって最もタイミングの余裕が少な
いことが示されているものについての該指定変更前にお
ける駆動能力値の比率を算出する処理、前記比率に基づ
いて、前記後段回路ブロックであってスラック値によっ
て最もタイミングの余裕が少ないことが示されている該
後段回路ブロックに要求する駆動能力値を算出する処
理、及び前記比率に基づいて算出された駆動能力値に基
づいて前記後段回路ブロックであってスラック値によっ
て最もタイミングの余裕が少ないことが示されている該
後段回路ブロックについての前記指定の変更を行なう処
理。
【0160】
【発明の効果】以上詳細に説明したように、複数の回路
ブロックを接続してなる論理回路に対し、該回路ブロッ
ク毎に指定がされている該回路ブロックを構成するため
に使用するプリミティブな素子についての該指定を該素
子と同一の機能を有し且つ駆動能力値は異なる他のプリ
ミティブな素子へ変更することによって、該論理回路内
を伝播する信号の遅延についての最適化を行なうとき
に、本発明は、回路ブロックに与えられる負荷容量値が
該回路ブロック内を伝播する信号を遅延させる割合を示
す該回路ブロックの遅延率と、該指定変更の対象である
対象回路ブロックの前段として該対象回路ブロックに接
続されている該回路ブロックに指定がされている該素子
によって定まる該前段回路ブロックの駆動能力値と、該
対象回路ブロックの後段に他の回路ブロックが接続され
ることにより該対象回路ブロックに対して与えられる負
荷容量値とに基づいて該対象回路ブロックに要求する駆
動能力値の算出を行ない、該算出によって得られた駆動
能力値に基づいて該対象回路ブロックで使用される前記
素子の指定の変更を行なうようにする。
【0161】こうすることにより、対象回路ブロックの
前後段として接続されている回路ブロックに関する特性
値から対象回路ブロックでの使用に最適な素子の選択が
可能となる。その結果、論理回路中の全ての回路ブロッ
クについて最適な素子の選択を行なうことでクリティカ
ルパスの抽出を行なうことなく論理回路に対する遅延最
適化が行なえるので、遅延最適化のために必要となる処
理量が低減される。
【0162】あるいは、本発明は、該回路ブロックのス
ラック値の算出を行ない、該論理回路中の回路ブロック
の有するひとつの出力が該回路ブロックの後段の複数の
回路ブロックである後段回路ブロックに接続されている
ときに、該後段回路ブロックに指定がされている該素子
によって定まる該指定変更前の該後段回路ブロック毎の
駆動能力値を、該後段回路ブロック毎の駆動能力値の合
計値は維持しつつ且つ該後段回路ブロック毎に算出され
たスラック値の差異に基づいて該後段回路ブロックの各
々に分配し、該後段回路ブロックの各々に分配された駆
動能力値を該後段回路ブロックの前段の回路ブロックの
駆動能力値とみなして該後段回路ブロックに要求する駆
動能力値の算出を行ない、該算出によって得られた駆動
能力値に基づいて該後段回路ブロックで使用される該素
子の指定の変更を行なうようにする。
【0163】こうすることにより、各回路ブロックのス
ラック値に基づき、タイミングの余裕が少ない後段回路
ブロックには駆動能力値を多めに分配し、タイミングの
余裕が多い後段回路ブロックには駆動能力値を少なめに
分配すると、信号遅延量が大きくなっている信号パスを
優先する最適化が可能となり、駆動能力のバランスの良
好な遅延最適化が可能となる。
【0164】もしくは、本発明は、該回路ブロックのス
ラック値の算出を行ない、該論理回路中の回路ブロック
の有するひとつの出力が該回路ブロックの後段の複数の
回路ブロックである後段回路ブロックに接続されている
ときに、該後段回路ブロックに指定がされている該素子
によって定まる該指定変更前の該後段回路ブロック毎の
駆動能力値の合計と、該後段回路ブロックのうちスラッ
ク値によって最もタイミングの余裕が少ないことが示さ
れているものについての該指定変更前における駆動能力
値の比率を算出し、該比率に基づいて、該後段回路ブロ
ックであってスラック値によって最もタイミングの余裕
が少ないことが示されている該後段回路ブロックに要求
する駆動能力値を算出し、該比率に基づいて算出された
駆動能力値に基づいて該後段回路ブロックであってスラ
ック値によって最もタイミングの余裕が少ないことが示
されている該後段回路ブロックについての該指定の変更
を行なうようにする。
【0165】こうすることにより、後段回路ブロックが
複数のファンアウトを構成している場合におけるスラッ
ク値によって最もタイミングの余裕が少ないことが示さ
れている後段回路ブロックについての該素子の指定の変
更の際に、その後段回路ブロックと同時に駆動される他
の後段回路ブロックについての特性値が考慮されるの
で、該素子の選択が適切に行なえるようになる。
【0166】以上のように、本発明のいずれの構成によ
っても、論理回路が有する回路遅延の最適化を行なうこ
とができる。
【図面の簡単な説明】
【図1】本発明の原理構成を示す図である。
【図2】本発明を実施する論理回路遅延最適化装置の構
成を示す図である。
【図3】回路遅延最適化処理の処理内容を示すフローチ
ャートである。
【図4】ブロック最適化処理の第一の例の処理内容を示
すフローチャートである。
【図5】素子情報が定義されているライブラリの例を示
す図である。
【図6】遅延最適化処理を施す回路網の例を示す図であ
る。
【図7】回路網Aの各ブロックに対して行なわれた段数
検出の結果を示す図である。
【図8】回路網Aの各ブロックに対して行なわれた遅延
計算を示す図である。
【図9】回路網Aの各ブロックに対して行なわれた最大
遅延の計算結果の例を示す図である。
【図10】回路網Aの各ブロックに対して行なわれた許
容到達時間の計算結果の例を示す図である。
【図11】回路網Aの各ブロックに対して行なわれたス
ラック値の計算結果の例を示す図である。
【図12】ブロック最適化処理の第二の例の処理内容を
示すフローチャートである。
【図13】代表ピン選択処理の処理内容を示すフローチ
ャートである。
【図14】駆動能力分配処理の処理内容を示すフローチ
ャートである。
【図15】駆動能力分配処理を施す回路網の一例を示す
図である。
【図16】駆動能力比率計算処理の処理内容を示すフロ
ーチャートである。
【図17】駆動能力変化率反映処理の処理内容を示すフ
ローチャートである。
【図18】ピン駆動能力指示検出処理の処理内容を示す
フローチャートである。
【図19】ネット負荷容量指示反映処理の処理内容を示
すフローチャートである。
【図20】ブロック非最適化指示検出処理の処理内容を
示すフローチャートである。
【図21】図3に示す回路最適化処理においてブロック
非最適化指示が行なわれるときの変更を示す図である。
【図22】素子変更情報出力処理の処理内容を示すフロ
ーチャートである。
【図23】記録させた制御プログラムをコンピュータで
読み取ることの可能な記録媒体の例を示す図である。
【符号の説明】
11 駆動能力値算出手段 12 変更手段 21、31 スラック値算出手段 22 駆動能力値分配手段 23 後段回路ブロック駆動能力値算出手段 24 後段回路ブロック変更手段 32 駆動能力比率算出手段 33 第一駆動能力値算出手段 34 第一後段回路ブロック変更手段 101 入力部 102 ROM 103 RAM 104 I/F部 105 入力部 106 表示部 107 出力部 108 記憶部 109 バス 201 コンピュータ 202 メモリ 203 可搬型記憶媒体 204 回線 205 プログラムサーバ 206 記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 古川 英司 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B046 AA08 BA04 CA06 DA05 GA01 JA03 JA05 KA06 5F064 AA06 BB05 BB07 DD03 DD07 DD20 DD25 EE43 EE47 HH02 HH06 HH10 HH12

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数の回路ブロックを接続してなる論理
    回路に対し、該回路ブロック毎に指定がされている該回
    路ブロックを構成するために使用するプリミティブな素
    子についての該指定を該素子と同一の機能を有し且つ駆
    動能力値は異なる他のプリミティブな素子へ変更するこ
    とによって、該論理回路内を伝播する信号の遅延につい
    ての最適化を行なうシステムであって、 回路ブロックに与えられる負荷容量値が該回路ブロック
    内を伝播する信号を遅延させる割合を示す該回路ブロッ
    クの遅延率と、前記指定変更の対象である対象回路ブロ
    ックの前段として該対象回路ブロックに接続されている
    前段回路ブロックに指定がされている前記素子によって
    定まる該前段回路ブロックの駆動能力値と、該対象回路
    ブロックの後段に他の回路ブロックが接続されることに
    より該対象回路ブロックに対して与えられる負荷容量値
    とに基づいて該対象回路ブロックに要求する駆動能力値
    の算出を行なう駆動能力値算出手段と、 前記算出によって得られた駆動能力値に基づいて前記対
    象回路ブロックで使用される前記素子の指定の変更を行
    なう変更手段と、 を有することを特徴とする論理回路遅延最適化システ
    ム。
  2. 【請求項2】 複数の回路ブロックを接続してなる論理
    回路に対し、該回路ブロック毎に指定がされている該回
    路ブロックを構成するために使用するプリミティブな素
    子についての該指定を該素子と同一の機能を有し且つ駆
    動能力値は異なる他のプリミティブな素子へ変更するこ
    とによって、該論理回路内を伝播する信号の遅延につい
    ての最適化を行なう方法であって、 回路ブロックに与えられる負荷容量値が該回路ブロック
    内を伝播する信号を遅延させる割合を示す該回路ブロッ
    クの遅延率と、前記指定変更の対象である対象回路ブロ
    ックの前段として該対象回路ブロックに接続されている
    前段回路ブロックに指定がされている前記素子によって
    定まる該前段回路ブロックの駆動能力値と、該対象回路
    ブロックの後段に他の回路ブロックが接続されることに
    より該対象回路ブロックに対して与えられる負荷容量値
    とに基づいて該対象回路ブロックに要求する駆動能力値
    の算出を行ない、 前記算出によって得られた駆動能力値に基づいて前記対
    象回路ブロックで使用される前記素子の指定の変更を行
    なう、 ことを特徴とする論理回路遅延最適化方法。
  3. 【請求項3】 複数の回路ブロックを接続してなる論理
    回路に対し、該回路ブロック毎に指定がされている該回
    路ブロックを構成するために使用するプリミティブな素
    子についての該指定を該素子と同一の機能を有し且つ駆
    動能力値は異なる他のプリミティブな素子へ変更するこ
    とによって、該論理回路内を伝播する信号の遅延につい
    ての最適化を行なう処理をコンピュータに行なわせるた
    めのプログラムであって、 回路ブロックに与えられる負荷容量値が該回路ブロック
    内を伝播する信号を遅延させる割合を示す該回路ブロッ
    クの遅延率と、前記指定変更の対象である対象回路ブロ
    ックの前段として該対象回路ブロックに接続されている
    前段回路ブロックに指定がされている前記素子によって
    定まる該前段回路ブロックの駆動能力値と、該対象回路
    ブロックの後段に他の回路ブロックが接続されることに
    より該対象回路ブロックに対して与えられる負荷容量値
    とに基づいて該対象回路ブロックに要求する駆動能力値
    の算出を行なう処理と、 前記算出によって得られた駆動能力値に基づいて前記対
    象回路ブロックで使用される前記素子の指定の変更を行
    なう処理と、 を該コンピュータに行なわせるためのプログラム。
  4. 【請求項4】 複数の回路ブロックを接続してなる論理
    回路に対し、該回路ブロック毎に指定がされている該回
    路ブロックを構成するために使用するプリミティブな素
    子についての該指定を該素子と同一の機能を有し且つ駆
    動能力値は異なる他のプリミティブな素子へ変更するこ
    とによって、該論理回路内を伝播する信号の遅延につい
    ての最適化を行なう処理をコンピュータに行なわせるた
    めのプログラムであって、 前記回路ブロックのスラック値の算出を行なう処理と、 前記論理回路中の回路ブロックの有するひとつの出力が
    該回路ブロックの後段の複数の回路ブロックである後段
    回路ブロックに接続されているときに、該後段回路ブロ
    ックに指定がされている前記素子によって定まる前記指
    定変更前の該後段回路ブロック毎の駆動能力値を、該後
    段回路ブロック毎の駆動能力値の合計値は維持しつつ且
    つ該後段回路ブロック毎に算出されたスラック値の差異
    に基づいて該後段回路ブロックの各々に分配する処理
    と、 前記後段回路ブロックの各々に分配された駆動能力値を
    前記後段回路ブロックの前段の回路ブロックの駆動能力
    値とみなして該後段回路ブロックに要求する駆動能力値
    の算出を行なう処理と、 前記算出によって得られた駆動能力値に基づいて前記後
    段回路ブロックで使用される前記素子の指定の変更を行
    なう処理と、 を該コンピュータに行なわせるためのプログラム。
  5. 【請求項5】 複数の回路ブロックを接続してなる論理
    回路に対し、該回路ブロック毎に指定がされている該回
    路ブロックを構成するために使用するプリミティブな素
    子についての該指定を該素子と同一の機能を有し且つ駆
    動能力値は異なる他のプリミティブな素子へ変更するこ
    とによって、該論理回路内を伝播する信号の遅延につい
    ての最適化を行なう処理をコンピュータに行なわせるた
    めのプログラムであって、 前記回路ブロックのスラック値の算出を行なう処理と、 前記論理回路中の回路ブロックの有するひとつの出力が
    該回路ブロックの後段の複数の回路ブロックである後段
    回路ブロックに接続されているときに、該後段回路ブロ
    ックに指定がされている前記素子によって定まる前記指
    定変更前の該後段回路ブロック毎の駆動能力値の合計
    と、該後段回路ブロックのうちスラック値によって最も
    タイミングの余裕が少ないことが示されているものにつ
    いての該指定変更前における駆動能力値の比率を算出す
    る処理と、 前記比率に基づいて、前記後段回路ブロックであってス
    ラック値によって最もタイミングの余裕が少ないことが
    示されている該後段回路ブロックに要求する駆動能力値
    を算出する処理と、 前記比率に基づいて算出された駆動能力値に基づいて前
    記後段回路ブロックであってスラック値によって最もタ
    イミングの余裕が少ないことが示されている該後段回路
    ブロックについての前記指定の変更を行なう処理と、 を該コンピュータに行なわせるためのプログラム。
JP2001189533A 2001-06-22 2001-06-22 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム Expired - Fee Related JP3992947B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001189533A JP3992947B2 (ja) 2001-06-22 2001-06-22 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム
US09/986,916 US6678870B2 (en) 2001-06-22 2001-11-13 Logical circuit delay optimization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001189533A JP3992947B2 (ja) 2001-06-22 2001-06-22 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007044172A Division JP4131871B2 (ja) 2007-02-23 2007-02-23 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2003006257A true JP2003006257A (ja) 2003-01-10
JP3992947B2 JP3992947B2 (ja) 2007-10-17

Family

ID=19028438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001189533A Expired - Fee Related JP3992947B2 (ja) 2001-06-22 2001-06-22 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム

Country Status (2)

Country Link
US (1) US6678870B2 (ja)
JP (1) JP3992947B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299434B2 (en) 2004-06-18 2007-11-20 Fujitsu Limited Slack value setting method, slack value setting device, and recording medium recording a computer-readable slack value setting program

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810061B2 (en) * 2004-09-17 2010-10-05 Cadence Design Systems, Inc. Method and system for creating a useful skew for an electronic circuit
JP4437824B2 (ja) * 2007-02-13 2010-03-24 富士通株式会社 遅延解析結果表示プログラム
US10169500B2 (en) * 2011-08-08 2019-01-01 International Business Machines Corporation Critical path delay prediction
US10133840B2 (en) * 2015-12-04 2018-11-20 International Business Machines Corporation Priority based circuit synthesis
US11176301B2 (en) 2019-09-05 2021-11-16 International Business Machines Corporation Noise impact on function (NIOF) reduction for integrated circuit design
US11875099B2 (en) 2021-08-09 2024-01-16 International Business Machines Corporation Noise impact on function (NIOF) reduction for integrated circuit design

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274568A (en) * 1990-12-05 1993-12-28 Ncr Corporation Method of estimating logic cell delay time
JP2737490B2 (ja) 1991-12-02 1998-04-08 富士通株式会社 論理回路最適化処理方法
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
JP2776262B2 (ja) * 1994-08-18 1998-07-16 日本電気株式会社 論理回路合成方法及び装置
US6272668B1 (en) * 1994-12-14 2001-08-07 Hyundai Electronics America, Inc. Method for cell swapping to improve pre-layout to post-layout timing
JPH08221451A (ja) * 1995-02-17 1996-08-30 Matsushita Electric Ind Co Ltd データパス回路のレイアウト設計方法
JP2874628B2 (ja) * 1996-01-30 1999-03-24 日本電気株式会社 論理回路の最適化装置及びその方法
US5724250A (en) * 1996-02-07 1998-03-03 Unisys Corporation Method and apparatus for performing drive strength adjust optimization in a circuit design
JP2877083B2 (ja) * 1996-06-27 1999-03-31 日本電気株式会社 回路設計の最適化装置
JPH10163330A (ja) * 1996-12-03 1998-06-19 Nec Corp レイアウト考慮遅延最適化装置および方法
JP2970623B2 (ja) 1997-10-15 1999-11-02 日本電気株式会社 階層回路最適化方式及びプログラムを記録した機械読み取り可能な記録媒体
US6286128B1 (en) * 1998-02-11 2001-09-04 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
JP3090136B2 (ja) * 1999-01-25 2000-09-18 日本電気株式会社 論理合成用制約生成処理装置及び論理合成用制約生成処理方法
JP2001338006A (ja) * 2000-05-24 2001-12-07 Hitachi Ltd 論理自動設計支援方法および装置
US20020124230A1 (en) * 2001-01-04 2002-09-05 Zhen Cai Timing optimization for integrated circuit design

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299434B2 (en) 2004-06-18 2007-11-20 Fujitsu Limited Slack value setting method, slack value setting device, and recording medium recording a computer-readable slack value setting program

Also Published As

Publication number Publication date
US6678870B2 (en) 2004-01-13
US20030051220A1 (en) 2003-03-13
JP3992947B2 (ja) 2007-10-17

Similar Documents

Publication Publication Date Title
US7707530B2 (en) Incremental timing-driven, physical-synthesis using discrete optimization
CN112613259B (zh) 片上系统后仿真方法、装置及电子设备
JP6801460B2 (ja) 情報処理装置、プログラム、および情報処理方法
CN112667024A (zh) 延时计算电路、芯片运行频率获取方法、装置及电子设备
WO1999009497A1 (fr) Procede d'extraction de caracteristiques de synchronisation de circuits a transistors, support de stockage stockant une bibliotheque de caracteristiques de synchronisation, procede de conception de lsi et procede d'extraction par grille
JP2003006257A (ja) 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム
JP2001338010A (ja) 集積回路の設計方法
US8700380B2 (en) Method for generating performance evaluation model
JP4131871B2 (ja) 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム
JP2004327864A (ja) 半導体集積回路の低消費電力化設計方法
JP3987302B2 (ja) 経路探索方法、タイミング解析方法、波形解析方法、電子回路シミュレーション装置、及びプログラム
JP3386427B2 (ja) 高位合成方法並びに高位合成方法の実施に使用される記録媒体
JP4219969B2 (ja) 論理回路遅延最適化システム、論理回路遅延最適化方法、及びプログラム
US7197445B1 (en) Atomic transaction processing for logic simulation
JP5146087B2 (ja) 消費電力見積方法、回路設計支援装置及びプログラム
US6167557A (en) Method and apparatus for logic synthesis employing size independent timing optimization
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
JP2002092055A (ja) 論理回路の設計方法、論理回路の設計支援システム、及びコンピュータ読取り可能な記録媒体
JP3544885B2 (ja) 論理回路の遅延計算方法、論理回路の遅延計算装置および論理回路の遅延計算プログラムを記録した媒体
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム
JP3164055B2 (ja) 集積回路の遅延時間計算装置及び遅延時間計算プログラムを記録した記憶媒体
JPH1091651A (ja) 論理合成方法および論理合成装置
JP3037263B2 (ja) ブールの充足可能性を実現する構成可能ハードウェアシステム及びそのための方法
JP2002117089A (ja) 論理回路の設計方法
JP2022166379A (ja) 計算機システム及び製品投入計画の生成方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070606

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070620

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070725

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130803

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees