JPH0451367A - 論理回路の合成装置 - Google Patents

論理回路の合成装置

Info

Publication number
JPH0451367A
JPH0451367A JP2159948A JP15994890A JPH0451367A JP H0451367 A JPH0451367 A JP H0451367A JP 2159948 A JP2159948 A JP 2159948A JP 15994890 A JP15994890 A JP 15994890A JP H0451367 A JPH0451367 A JP H0451367A
Authority
JP
Japan
Prior art keywords
circuit
stages
abstract
path
delay time
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
JP2159948A
Other languages
English (en)
Other versions
JP2980348B2 (ja
Inventor
Hiroaki Nishi
西 宏晃
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2159948A priority Critical patent/JP2980348B2/ja
Publication of JPH0451367A publication Critical patent/JPH0451367A/ja
Application granted granted Critical
Publication of JP2980348B2 publication Critical patent/JP2980348B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は論理回路を自動的に合成するための装置に係
り、特にタイミングの制約に基づいて論理回路を合成す
るための装置に関する。
(従来の技術) 論理合成技術の発展によって、レジスタ転送レベルの回
路記述から構造レベルの回路を自動生成できるようにな
った。
ところが、熟練設計者が設旧した論理回路と自動合成さ
れた論理回路の性能(特に動作速度なと)を比較すると
、人手設計のほうが優れている。というのは、熟練設計
者は、回路の動作周波数を満たずようにレジスタのクロ
ックを決定し、クリティカルパスを絶えず考慮しながら
論理回路を設旧しているからである。すなわち、どの様
な構造を持った回路にすれば信号遅延時間が少なくて済
むかを熟知しているからである。
また設計者はタイミング解析ツールを使用することによ
って、論理回路の詳細な信号遅延時間の解析結果を入手
できるようになったが(例えばとのパスが最長遅延もし
くは最小遅延パスであるか)これは設旧者が所望する論
理回路の設計を−通り終った後てないと使用できなった
。従って、論理合成後の論理回路に対してタイミング解
析を行い、設glfi−が考えている制約に違反する箇
所を人手で修1丁−する必要があった。
一方、最近の論理合成技術では、ライブラリ化されたハ
ードウェアコンポーネント(ライブラリセル)をゲート
回路に割り当てた後で、論理合成システムに内蔵したタ
イミング解析手段を用いてタイミング解析を実行し、こ
の結果が設旧者の所望するタイミング制約を満たしてい
ない場合は、スピードの遅いハードウェアコンポーネン
トをスピードの速いハードウエアコンボーネン(・に交
換し、再びタイミング解析を実行してタイミング制約が
満たされているかとぅがを調べ、これが満たされるまで
、もしくはその限界まで繰り返すという手法をとってい
た。
他方では、タイミンク情報をハードウェアコンポーネン
トのテクノロジに依存しないライブラリ化された抽象コ
ンポーネントに格納し、これを合成時に使用する手法も
考えられている。この技術に関しては、特開昭63−1
55268号公報において示されている。
しかし抽象コンポーネントは入力数が可変であったりコ
ンポーネント自体ビット幅を有しているので、許される
ビット幅に応じた膨大な数のコンポーネントをライブラ
リに登録する必要があり、従ってこの手法では多大な記
録容量を必要とじていた。
(発明か解決しようとする課題) 」二連したように従来技術では、部品ライブラリとして
用意されたコンポーネントによって回路が構成されてい
ないと、タイミング解析が実行できないという不具合が
あった。
また、レジスタ転送回路から変換された抽象回路では元
来入出力数が可変のため、遅延時間を使用可能な全ての
抽象回路に持たせて、それぞれをライブラリ化するとデ
ータ量が膨大になり不紅済である。
本発明は、このような点に関してなされたもので、その
1」的は、同一機能を有するが、しかし異なる構造を持
ったハードウェアに適した遅延時間の割(=I手段を用
いて抽象回路の段階でタイミング解析を実行し、その結
果のタイミング違反情報を合成開始前あるいは途中の段
階で使用することで高性能な論理回路を合成することが
可能な装置を提f几するこ吉である。
[発明の構成] (課題を解決するための手段) 上記課題を解決するために本発明では、論理回路を自動
生成するだめの論理回路の合成装置において、合成の開
始前、あるいはその途中で生成された抽象回路を使用【
、てタイミング解析を行なうために、前記抽象回路を構
成している素子に任意の遅延時間を与える手段と、与え
られた遅延時間を用いてタイミング解析を行い、タイミ
ング制約条件が満たされるかどうかを検出する手段と、
前記検出されたタイミング解析結果を使用してタイミン
グ制約条件が満たされるように前記抽象回路を論理回路
に変換あるいは合成する手段と、前記タイミング制約に
違反する回路の遅延時間を最適化するために回路を変換
あるいは合成する手段と、を具備することを特徴とする
(作用) 本発明の装置によれば、機能動作仕様記述から変換され
た抽象回路を構成する素子に任意の遅延時間を割当てる
ことができ、この遅延時間を使用して合成前あるいは合
成途中にタイミング検証が行える。さらにタイミンク解
析の結果を使用して遅延時間の制約を満足するように抽
象回路を論理回路に変換または合成し最適化を繰返して
行えるので、スピードの速い論理回路の合成ができる。
(実施例) 以下、本発明の実施例を図面を参照して説明する。
第1図は本発明の一実施例にかかる論理合成装置の構成
を示すブロック図である。
第1図の101は機能動作仕様を表すレジスタ転送仕様
の入力部で、レジスタ転送記述もしくは該仕様をスケマ
チック表示した機能ブロック図である。1〔〕2は設計
データ変換部(トランスレタ)である。この変換部]0
2は人力部101のレジスタ転送記述を構文解析して、
該記述に忠実な初期抽象回路を生成する。また機能ブロ
ック図の場合はスケマチック図よりネットワーク情報と
図形情報を抽出して初期抽象回路を生成する。103は
該抽象回路のネットワーク情報を格納する膜種データベ
ース部である。]04はタイミング制約入力部で、レジ
スタ転送仕様の任意の点に制約遅延時間を設定できる。
105はタイミング制約設定及び違反検出部で、トラン
スレータ部102で生成された抽象機能素子の入出力数
が一定でないため、設計データベース部103から該初
期抽象回路の素子のタイプと入力数またはビット幅を取
り出し、該素子の遅延時間を計算し割り付ける遅延時間
計算割(=J手段と、入力部104からタイミング制約
を取り込む手段と、jFjえられたタイミング制約が、
論理合成前及び途中の抽象回路もしくは論理回路におい
て実現されるかどうかを検証するクリティカルパス探索
手段から構成されている。]06は論理合成部で、前記
タイミング制約違反検出部105で検出された違反回路
を解析して該回路を最適化対象回路に分割し、さらに最
適化目標値を設定し、該最適化目標値に従って抽象回路
を具象回路に展開し、また、冗長な回路の簡単化及び、
テクノロジに依存した回路素子の割付けを行う各処理手
段から構成されている。107は設計データ変換部で、
記述変換やスケマチック図の生成を行うためのもので、
具体的には設旧データベースに格納されている回路情報
を論理回路(構造記述またはスケマチック図)に変換す
る。
108は合成された論理回路の出力部である。
第2図は、第1図で説明した論理合成装置の処理フロー
を説明する図である。
201は、レジスタ転送記述及びタイミング制約を人力
するステップで、202は、記述の動作解析を行って初
期抽象回路を生成するステップである。203は抽象回
路素子に遅延時間を#1算して割り付けるステップであ
る。204は、割り(=1けた遅延時間を使用して全体
回路の遅延時間計算を行い、クリティカルパスを検出し
タイミング制約が守られているかどうかを調べるステッ
プである。制約が守られていないときは、制約に違反し
ている箇所をレボ−1・もしくはスケマチック表示する
。また、該タイミンク制約に違反しているパスに関して
は、この制約か実現されるようにスピドの速い回路に展
開して最適化を行い(205)ステップ203及び20
4を繰り返して該タイミング制約が満たされているかど
うかを調べ、ノ\−ドウニアコンポーネントを割り付け
る(206)ことによって合成を終了する。以下各ステ
ップの処理内容について詳細に説明する。
その前にレジスタ転送記述について説明する。
レジスタ転送記述では、回路の素子と認識されるファシ
リティ(外部端子、内部信号、レジスタ、メモリなど)
とハードウェアの詳細まで立ち入らすに機能を表せる演
算子、組み込み関数(加算、減算など)、ファシリティ
の動作を表すプロセス(レジスタの非同期クリアなと)
の記述や状態遷移表現が可能である。以下ファシリティ
、演算子、組み込み関数、プロセス、ステー1・を抽象
機能素子と呼ぶ。
ここで抽象機能素子の遅延時間について説明する。論理
合成は最終的に抽象機能素子を論理素子(ゲート)まで
展開して最適化を行い、これに所望のテクノロジからな
るハードウェアのライブラリセルを割り(=1けるもの
である。しかしレジスタ転送レベルの回路は機能レベル
の回路であり、必]0 ずしもハードウェアとして最適化された回路、すなわち
ケート数とかゲート段数を考慮して設J1された回路と
はなっていない。従って最初からすべての抽象機能素子
にハードウェアのセルを割り付けて考えるのは得策では
ない。また同一機能のセルであっても異なるスピードの
セルを割りイ=Iけることによって実遅延時間は変わっ
てしまうので、レジスタ転送レベルの回路の各抽象機能
素子に実時間を割り当てて信号伝播パスの遅延時間を4
算するのは適当ではない。そこでこの実施例の装置では
、基本的なゲートを単位としだゲート段数を遅延時間の
代わりに用いる。またハードウェアのNORゲートのセ
ルなどでは入力数か増加するにしたがって実遅延時間が
かなり異なってくるので(例えば6人力のNORは2人
力NORの4倍の遅延時間を有する)、このようなゲー
トでは人力数を考慮して段数を与えることにする。
つぎに第1図の検出部]05のザブ手段である遅延時間
計見開(=J手段の処理について説明する。
まず論理合成途中で一部の抽象機能素子が具体的なハー
ドウェアセルに変換されてもクリティカルパスの検索が
可能なように、ハードウェアセルのライブラリに存在す
るセルについては、それを構成する論理素子を用いて段
数を計算l、遅延情報のライブラリに格納する。またレ
ジスタ転送レベルの抽象機能素子及び合成途中で生成さ
れる抽象機能素子または論理素子については、設R1デ
ータベース部103から抽象機能素子を取り出して、該
素子のタイプやビット幅や入力数を変数と17で、それ
らが論理合成途中に典型的な抽象素子や論理素子からな
るネットワークに展開されるとした遅延モデルや、論理
素子そのものの遅延モデルに従って段数を51算して、
設計データベースに格納する。ここで抽象機能素子の遅
延段数は抽象機能素子の展開後の回路によって異なって
くるので、前記段数の計算を行う手段とともに、遅延モ
デルを複数用意しておく。またこの処理で一度計算した
遅延段数については抽象機能素子のタイプ、入力数、ビ
ット幅と一緒にワーク記憶領域に保存しておき、膜種デ
ータベースから同一タイプの抽象機1 ] 能素子が再び取り出されたらハッシュイングを行って、
該ワーク記憶領域のデータを取り出して割りイ【jける
ここで第6図の10ピッl−2人力全加算器6゜Oを例
にとって段数計算を説明する。
いま論理合成で加算器をリップルキャリー型の加算器に
展開することになっている場合、第6図(b)の回路に
展開されるものとして遅延モデルを考える。第6図(b
→の回路は5個の2ビツト2人力の全加算器601〜6
05より構成されている。これらは下位ビットで計算さ
れたキャリの信号に対してシリアルに接続されており(
601〜605)、入力CIからCOまでのパスが最大
遅延段数を有している。また出力データsく8:9 >
 (609)も該段数と等しい遅延段数を有している。
従って2ビツト2人力の加算器の最大遅延段数が6段で
あることがわかっているとき、]0ピッl−2人力全加
算器の最大遅延段数は30段になる。
以下第3図を用いて第1図の検出部105におけるクリ
ティカルパス検索手段の処理について説明する。いま、
クリティカルパスの探索域は入力レジスタ間、入力−出
力間、レジスターレジスタ間、レジスター出力間とする
処理を開始する( 301. )。人力属性を有するフ
ァシリティやレジスタ転送記述に於ける定数に11、え
た初期遅延情報や終点の信号名およびタイミング制約デ
ータ(ゲート段数)情報を取り込む(302)。レジス
タ転送記述をトランスレートした結果を格納した設計デ
ータベースからネットワークデータを抽出する(303
)。ネットワークを構成している機能素子が遅延情報の
ライブラリ内に存在するかどうかを調べ(304) 、
存在する場合は該ライブラリよりその遅延情報を取り込
み該機能素子に割り付ける(305)。存在しない場合
は展開後の回路の遅延モデルに従い段数を計算して該機
能素子に割り付ける( 306 )。
つぎに入力点より終点信号方向に向ってパスをトレース
する。ここで入力点とは人力属性や定数属性を有するフ
ァシリティのことで、終点とはレジメタのデータ入力や
出力属性のファシリティを指す。このときデータバス、
制御パス(レジスタ転送記述ではif、caseなとて
データ転送を制御でき、このif、caseの条件信号
を作成するパス)、クロックパス(レジスタのクロック
入力に接続されるパス)のそれぞれについてパスの有す
る最大段数を伝播しながら計算する。またクロックパス
についてはレジスタに人力後はレジスタの出力に接続さ
れているデータバスについて段数を4算する。−度旧算
したパス上の各素子の人力からの段数は膜種データベー
スに格納する(307)。すべての終点に対する段数計
算が終了したらつぎの処理を行う。
つぎに終点に割り付けられたタイミング制約情報を用い
て、終点から人力点に向かって抽象機能素子か持ってい
る段数を引去りながら、各抽象機能素子の出力で要求さ
れる最小の遅延段数(最もクリティカルな制約)を計算
して設計データパスに格納する(308)。抽象素子間
の信号はレジスタ転送レベルの回路ではファシリティと
じて認識されるのでパス自体の遅延についても考慮され
る。さらにスラック(いま求めた制約の遅延段数とパス
の人力からの段数との差)を計算して設計データベース
に格納する(309)。ここてスラックがマイナス値(
最大遅延を考えている)になった箇所はクルティカルパ
ス上に存在する。
その後終点からスラックの値を頼りにタイミング制約を
満足しないパスをトレースする( 3 ]−0)さらに
このとき制御信号の値によって機能的に非現実的なパス
をクリティカルパスの候補としている場合があるのてi
f、caseの条件が矛盾なく成立するパスを本当のク
リティカルパスとし、膜種データベースにパス情報を格
納する。そしてクリティカルパス」二の各抽象素子の出
力における人力からの段数、制約、スラックなどの情報
を膜種データベースに格納して(31,1)木手段の処
理を終了する(31.2)。
またクリティカルパス探索手段では、終点に与えた最大
遅延段数制約に対するクリティカルパスmax  (ス
ラックmax )と同しように、最小遅延段] 6 数制約に対するクリティカルパスmin  (スラック
min )が同時に探索できる。
以下第4図を用いて第1図のクリティカルパス探索手段
によって発見されたクリティカルパスから論理合成部1
06で行う被最適化回路(被最適化パス)の抽出と該パ
ス上の抽象機能素子の選択、展開及び最適化処理の手順
について説明する。
ここで説明の関係土木発明の論理合成が用いているルー
ルベースの方式について簡単に説明する。
レジスタ転送記述をI・ランスレータで初期回路に変換
したあと、抽象機能素子をより抽象度の低い機能素子ま
たは論理素子に展開する。このとき展開の度合によって
ゲート数は多いがスピードの速い回路やスピードは遅い
がゲート数は少ない回路が構成できるので、展開の制御
はルールベース方式を用いている。すなわち展開の仕方
をルールで選択できる。」二連したように展開の仕方も
ルールで記述できるが展開ルールの選択制御そのものが
ルールで記述でき、このルールをメタルールと呼ぶこと
にする。また抽象機能素子同士を対象にした最適化はア
ルゴリズムを用いた手法では不可能なので、本最適化に
もルールを用いている。
以下の実施例ではクリティカルパス1Tlaxを最適化
合成する手順について説明する。なお、今後特に断らな
い限りクリティカルパスはクリティカルパスmaxの意
味で用い、スラックもスラックmaXの意味で使用する
。クリティカルパスを解消するように合成するには、ク
リティカルパス探索手段によって計算されたスラック値
をゼロにするようにすればよいのでスラック値の絶対値
を最適化目標値とする。
処理を開始する(401)。クリティカルパスから被最
適化パス及び最適化目標値を求める(402)。被最適
化パスの選択については後述する。
つぎに被最適化パスコニの抽象機能素子から被展開候補
抽象機能素子を捜し出しく403)(これについても後
で詳しく説明する)、候補が存在する場合は、該抽象機
能素子を展開したとき遅延段数が減少する(最適化目標
値に近づく)かどうかを調べる(404)。なお遅延時
間割付手段でレジスタ転送レベルの抽象機能素子には典
型的な遅延段数を割り当てであるので、スピードの速い
抽象回路に展開するルールが存在すれば減少することが
わかる。減少しない場合はつぎの候補の抽象機能素子を
抽出する(403)。減少する場合は該抽象素子をより
抽象度の低い抽象素子に展開する(405)。そして展
開後の抽象素子に対して遅延情報ライブラリを用いて遅
延段数を割り当てる。
該ライブラリにない場合はtl算して割り当てる(40
6)。展開後の抽象機能素子のネットワク仝体に対して
段数81算を行い(407)、展開前の抽象機能素子の
遅延段数といま4算した遅延段数を比較して、該被最適
化パスの最適化目標値が達成されたかどうかを調べる(
408)。達成されない場合は、つぎの候補の抽象機能
素子がなくなるまで抽出して繰り返す。その後で最適化
[1標値が達成されない場合は、展開後の機能素子同士
または被最適化パスの端点の機能素子同士について最適
化を行う(409)。全ての被最適化パスに対して上記
処理が終了したかどうか調べ(4]O)、終了した場合
は該全体回路に対してクリティカルパス検索を行い展開
最適化合成前のクリティカルパスが解消されているかど
うかを調べる(4]1)。解消されていない場合は一連
の処理でクリティカルパスが解消されずに残るまでステ
ップ402以下の処理を繰り返す(412)。クリティ
カルパスが解消された場合もしくは残存するのが確定し
た場合は、上記展開後の抽象機能素子以外のネットワー
クの抽象機能素子に対【7ても展開を行い、さらに素子
数最適化を行う(41’3)このききクリティカルパス
の解消のときに展開した回路については素子数最適化の
処理を行わない。以」二で遅延時間最適化合成の処理を
終rする(41.4)。
つぎに第5図を用いて第4図のステップ4〔〕2の被最
適化パスの抽出手順について説明する。処理を開始する
( 501. )。まずクリデイカルパス探索手段で発
見されたクリティカルパスl1laXのスラック値から
最も危険度の高い(余裕度の小さい)パスを選択する(
502)。該パスが他のクリテ1 つ ィカルパスと重複するかどうか調べ(503)、この重
複パスがクリティカルパスminでないことを確かめる
(504)。クリティカルパスminと重複していない
場合、この重複クリティカルパスのスラックのうち危険
度の最も小さい(余裕度の最も大きい)値を選ぶ(50
5)。そして該重複したザブパスを被最適パスとし、い
ま求めた危険度の最も小さい(余裕度の最も大きい)ス
ラック値の絶対値を最適化目標値とする( 506 )
。また非−rft ljJザブパスの最適化1」標値は
、各クリティカルパスが有するスラック値に重複ザブパ
スの最適化1」標値を加えた値の絶対値になる(507
)。
たたしこの値は重複ザブパスの最適化が成功したときに
用いる。すなわち最適化に失敗した場合は該重複クリテ
ィカルパスの未達最適化目標値分をそれぞれ被最適化ザ
ブパスの最適化目標値に対して加算し、最適化目標値を
更新する。ステップ503で調べたクリティカルパスが
他のものとmlしない場合は、取り出したクリティカル
パス全体を被最適化パスとし、またスラック値より最適
化目標値を求める(508)。すべてのクリティカルパ
スを被最適化パスに分けその最適化11標値が求まった
ら(509)本処理を中+1.L、(51(])、論理
合成へデータをインターフェースする。すなわち処理4
02へ進む。
つぎに第4図のステップ403の被最適化パス」二の抽
象機能素子の選択手順について説明する。
まず、(1)外部出力に最も近い抽象機能素子を捜し出
す。これは該抽象素子の変換によって発生する他の回路
への影響を最小限にするためである。
(2)最も小さいファンアウトを有する抽象機能素子を
捜し出す。これは、いまファンアウトか多い抽象素子を
同一機能のより小さい遅延段数をもつ抽象素子に変換し
たとき、該変換後の抽象素子をノードとして持つパスが
最小段数違反パスとなる可能性があるからである。
(3)最も小さいファンインを有する抽象機能素子を捜
し出す。これは、いまファンインが多い抽象素子を同一
機能のより小さい遅延段数をもつ抽象素子に変換したと
き、該変換後の抽象素子をノードとして持つパスが最小
段数違反パスとなる1−iJ能性があるからである。
前記(1)〜(3)の優先度は(2)と(3)を満たず
ものでかつ(1)を満足するものが最優先で、(2)と
(3)に関しては(2)の値のより小さい抽象機能素子
を選択する。この優先度についてはルールベース方式を
用いているので自由に変更できる。
ここで第6図を用いて第1図の論理合成部106におけ
る抽象機能素子の展開の実施例について説明する。
第6図(a)に示ず]Oビット2人力加算器600の展
開の1順について説明する。第6図(b)は、2ビット
加算器を5つ(601〜605)用いてリップルキャリ
ー10ビット2人力加算器を構成した図である。第6図
(C)は2ビット加算器1つ(6(、) 6 )と4ビ
ツト加算器2つ(607。
608)を用いて]0ビット2人力加算器を構成した図
である。2ビット加算器のケート数は2 r)でゲート
段数は3段である。一方4ビット加算器のゲート数は4
5で段数は5段である。そこで第6図(b)の構造にす
るとゲート数は100でケト段数は15段になる。一方
、第6図(C)の構造にするとゲート数は110となり
ゲート段数は12段となる。
いま、クリティカルパス上の10ビット加算器を高速回
路に展開する要求が出されているときは、前記メタルー
ルを用いて第6図(C)の回路を選択しこれに展開する
。また反対に10ビット加算器がクリティカルパス上に
ない場合は、メタルールを用いて第6図(b)の回路を
選択してこれに展開する。
展開後の抽象機能素子の最適化については、いま第6図
(b)の様な回路がクリティカルパス」二に存在する場
合、2ビツト加算器601と602の2つを4ピツ1〜
加算器1つに置き換えることによって段数が6段から5
段に減少し1段数分スピドが速くなる。
つぎに第7図を用いて抽象機能素子から論理素子への変
換について説明する。
いま8ピツ]・の1加算器(インクリメンタ)を例に取
って説明する。レジスタ転送レベル言語で記述された8
ピットの]加算器は、I N C701という抽象素子
にトランスレートされる。そこで論理構成の処理が開始
されるとI N C70]という素子はEXOR(υ1
他的論理和)702、AND703、N0T704の論
理素子に展開される。
いま第7図(b)の論理素子からなる回路と、第7図(
c)の回路と2つが考えられ、第7図(b)の回路では
各ピッ)・のキャリーの計算を独自の回路で行っている
のに対して、第7図(C)の回路は4ビットの1加算器
を2つ用いた構成であり、したがってF位4ビットから
のキャリーの4算結果を用いるようになっている。2つ
の展開回路の違いはそれぞれ他の物と比較して、第7図
(b)では信号伝播遅延が小さいのに対して(ゲート数
48、ゲート段数4段)、第7図(c) ではゲト数が
小さい(ゲート数40、ゲート段数5段)という特徴が
ある。この展開の処理をルールベースて行う場合、まず
2つの基本展開ルールが用意されており、前記クリティ
カルパス探索手段で発見されたクリティカルパス上にI
NCと言う素子−が使用されており、遅延最小の条件で
展開の要求が出された場合は、メタルールでそれを判断
して第7図(b)の回路に展開し、さもなければ第7図
(c)の回路に展開する。
さらに簡単化ルールとして4人力ANDと2人力AND
がシリアルに接続されている場合、′3人力AND2つ
に変換するというものがある場合、」二紀元7図(b)
の回路は第7図(C)の回路になることが考えられるか
、ゲート数最小化のために設けられたANDのシリアル
結合は簡単化しないようにフラグをつけておく。そうす
ることによって、遅延時間最小化制約を満たす構造回路
を生成できる。
上記実施例は、遅延時間最小化のルールによって生成さ
れた回路が、上記簡単化ルールのようなゲーI・数最小
化のルールによって回路が変更されないようにした例で
あるが、反対にゲート数最小化のルールによって回路を
小さくする場合はフラグをoffにすればよい。
以下筒中なモチーフを用いてクリティカルパスの探索と
合成の処理を説明する。
第8図は合成前の機能ブロック図である。801〜80
5は入力端子である。ここで入力端子801〜803は
4ビット幅を有している。806゜807はクロック入
力端子である。また808は4ビット幅の出力端子であ
る。809は4ビツト2人力加等器で、810は4ピッ
l−2人力減算器である。8]]は比較器で、812は
4ビットの1加算器(INC)、813は4ビツトの1
減算器(D E C)である。8]4と815はそれぞ
れ1ビット、4ビットのレジスタで、816と817は
2〜1のマルチプレクサである。さらに818はAND
て、819,820はインバータである。また821は
内部信号である。
まずこの回路の機能素子及び結線情報をスケマチック人
力または機能膜種記述言語で書く。この情報をデータ変
換手段を用いて回路設計データに変換する。いまこの回
路全体を論理合成の対象として遅延時間の制約を与える
。ここでは、レジススタR2(815)を終点とするパ
スに対して最大遅延制約段数10を与える。また出力端
子G(808)に最大遅延制約段数19を設定する。
この設定の仕方はスケマチック人力ではレジスタシンボ
ルR2のデータ入力端子に対して最大遅延時間制約のテ
キスト人力テーブルを開いて行うことができる。出力端
子Gについても同様である。
スケマチックの情報がなくてもこれらの制約はコマンド
で入力できる。
つぎに各抽象機能素r・に対する遅延情報の与え方につ
いて説明する。膜種者は機能ブロックの遅延時間を自由
に選択または設定できることが重要だが、機能ブロック
をスケマチック入力するたびに、もしくは機能素子を記
述するたびに遅延時間を設定していたのでは膜種効率が
大変悪いので、自動割当の手段を用いる。抽象機能素子
の遅延時間は人力数及びそのビット数に依存し、さらに
同一機能に対して構造回路は複数考えられるため、ここ
てはゲート数も遅延時間も良好な標準的な論理回路を想
定して遅延時間を17える。いま第8図の点線の円で囲
まれた数字は各機能ブロックの最大遅延段数である。イ
ンバータは他の論理ゲートに比べて遅延時間が小さいの
でここではゲート段数をOとしている。
これを整理して示すと以下の表1のようになる。
表    1 機能ブロックタイプ  遅延段数 ADD       6 SUB       7 COMP      5 MUX              ITNC3 DEC3 REG             2 AND              11NV    
         O これらは設ス1データヘースから各抽象機能素子のタイ
プと人力数と人力数のビット幅を取り出して、この情報
をもとに計算して割り当てたものであり、これらについ
ては合成途中で再度生成される可能性があるためワーク
記憶領域に保存しておく。
そこで上で設定した遅延時間制約に基づいたクリティカ
ルパス探索の処理について説明する。
入力端子からの各抽象機能素子の出力における段数を求
める。入力点A (802) 、B (803)C(8
04) 、D (805)は0段で、クロック人力CK
i(806)にはA−D入力に対して遅延時間として3
段遅延を持たせ、CR2(807)は16段とする。
いま入力端子A (802) 、B (803)からの
データバスの段数について説明する。点線の四角形の上
から1段目の値が入力からの段数を示す。
減算器(810)の出力は7段となり加算器(809)
の出力は6段となる。またMUX(816)の出力は偽
人力(810)からの段数が大きいのでそれをとり8段
となる。一方MUX(81,6)の制御入力はCKi、
(806)か3段でレジスタ2つ R]、(81,4)の段数2を加えて5段となる。また
MUX(81,6)の出力は最大6段となる。従ってこ
のパスはデータバスからの8段をとる。比較器(81,
1)の出力はF(821)からのパスの8段と比較器本
体が有している5段を加えた13段となる。さらにMU
X (817)の出力はブタパスF(821)や1加算
器(81,2)の出力段数の3段よりも大きい14段の
値をとる。最終的に、レジスタR2(815)のデータ
人力へのパスの最大段数は14段となる。
つぎにR2(815)を終点とするパスに対して制約段
数(点数の四角形の2段目の値)を計算する。R2には
10段の最大遅延の制約が割り付けられている。R2へ
人力するパスはMUX (817)から来ている。MU
Xの右から人力する制御信号822は偽のときの条件を
表しており、823は真のときの条件を表している。M
UX (817)の左から人力する信号はデータ信号で
右から人力する制御信号に対応するものである。いまM
UXのデータ人力F(821)に於ける制約を求めると
9段になる。ここでFはファンアウトが2以上であるの
てFの出力のもとの遅延段数決めることができない。そ
こでMUX(81,7)の真入力のデータバスの制約を
調べると、偽の場合と同様に9段となり、さらにINC
(8]2)は3段なのでINCの入力は6段となる。こ
のパスについては、いま終点を指定したレジスタの出力
に達したのでここで終了する。そこでMUX(817)
の制御信号のパスの制約段数を求める。MUXの制御入
力端子はそれぞれ9段である。MUXの偽のパスのイン
バータによる遅延は考慮せず比較器(81,1)の出力
端子に於ける段数は9段となる。そして比較器の入力端
子に於ける段数を4算する。比較器の遅延段数は5段で
あるので入力F(821)の出力は先はど4算した9段
よりも小さい、いま求めた4段を制約とする。以下同様
に加算器(809)、減算器(81,0)の出力はそれ
ぞれ3段となり減算器(810)の遅延段数が7段であ
るのでA (802) 、B (803)はそれぞれ−
4段となる。一方MUX (816)の制御入力に対し
てレジスタR1(814)の出力は3段となり、レジス
タR1,(81,4)のクロ・ツク人力からデータ出力
までの遅延段数を差し引いてクロック人力CK1.(8
06)は1段となる。
ここでスラッジ(制約段数−始点からの段数)を求める
。点線の3段組の長方形の3段目の値がスラック値であ
る。そしてR2(815)からこのスラッジの値の内マ
イナス値をトレースすればこれがクリティカルパスとな
る。このモチーフでは−4のパスが最も危険なパスで、
つぎが−3のパスである。
同様に出力G (808)については、ます人力CK2
(807)からの段数は入力A (802)、B (8
03) 、E (801)に対して16段の遅延を持っ
ているので、レジスタR2(81,5)のクロック人力
では16段となり、R2のデータ出力では18段となる
。さらにDEC(813)の出力端子て21段となり結
局出力G(808)で21段になる。つぎに出力Gには
制約19段がljえられているので、DEC(81,3
)の人力はDEC自体が有している3段の遅延段数を差
し引き16段となる。またレジスタR2のクロック入力
からデータ出力までの遅延段数を差し引いてクロック人
力CK2 (807)は14段となる。スラッジは−2
となりクリティカルパスはCK 2− R2−DEC−
Gのパスとなる。
つぎに最適化パスの選択方法について説明する。
クリティカルパスが有しているスラツク値から最も危険
度の高いパスを選ぶ。いまR2のデータ人力に与えた制
約に対して危険度の高いパスから示す。cpl、1とc
pl、、2はスラッジが−4のクルティカルパスで、c
p2.]とcp2.2はスラッジが−3のクリティカル
パスで、cp3゜]は−2のクリティカルパスである。
個々のクリティカルパスの最適化目標値はスラツク値の
絶対値としtarget1〜3に示す。以」二を総合す
ると次の第2表のようになる。
(以下余白) cpl、1:A 第2表 SUB−MUX COMP −MUX−R2 CI)1. 2:B SUB MUX COMP MUX  −R2 5lackl: targetl:4 cp2.1  ・ A MUX−R2 cp2. 2:B −ADD MUX−R2 s  1  a  Ck  2  :  −3targ
et2:3 A  D  D MUX MUX COMP COMP cp3.1:CKI MUX OM P −MUX−R2 slack3ニー2 target3:2 いま、cpl、、iに着目するとこれは他の全てのクリ
ティカルパスに重複する部分を有しており、これを重複
パスoVp1とする。最適化11標値は全クリデイカル
パスのうちもっとも危険度の小さいスラックの絶対値を
取るので2(otl)となる。またcpl−、iはcp
l、2とも重複しておりこれをovp2と示す。最適化
L1標値はtargetl−otlで2(ot2)とな
る。
ovp 1 :MUX−F−COMP−MUX−R2o
tl:2 o v p 2 : SUB−MUX ot2二2 つぎにcp2,1に着目すると重複パスovp1につい
て処理済みなので、Cr2,2との重複パスovp3を
被最適化パスとし、最適化]−1標値ov3は1  (
target2−otl)となる。
c p 3゜1についてはopplか被最適化ハスの候
補になるが最適化l」標値oplは0(target3
−otl)となるため候補からはずず。
o v p 3 : ADD−MUX ov3:1 opp 1 : CKI−R1−MUXapl:0 但し0r)p]はovplで最適化が実現できた場合に
のみ最適化目標値はゼロとなる。
つぎに被最適化パスovplについて適用する最適化工
法について説明する。
いま説明する手法は被最適化パス上の複数の機能素子に
対【7て応分の最適化目標値を分担するものである。一
方被最適化バス」二のある機能素子に対して最大限の最
適化目標値を担わせ、最小回数の展開でlニー1標値を
実現する手法でも実現できる。
ますはL7めに、よりファンアラI・の小さい抽象機能
素子を選択するがその対象となるものはMUX817で
ある。そこてMUXの展開方法について高速化ルールが
存在するかどうか調べ、いま高速化回路に展開するルー
ルが存在しないので(本実施例では存nニジないとした
)つぎの候補を捜す。
またファンアラi・の小さい抽象機能素子を選択すると
COMP(81,1)が候補に挙がる。そこでCOM 
Pを展開したあとて高速化されるかどうか:J!aべる
と是であるので実際に展開を行う。展開後の回路を第9
図に示す。そして展開後の個々の機能素子に対して遅延
段数を与える。展開後の部分回路の段数計算を行うと4
段になるので1段分たけ最適化1」標値が達成された。
ただしEXOR(901)は2段、4人力N0R(90
2)は2段としている。ところが被最適化パスovpl
は最適化i〒1標値が2段であるので、まだ」二記展開
のみでは達成されないためつぎの候補を捜しにいくが、
MUX(81,6)も」二記理由により最適化展開が不
可能である。そのためCOMPの展開後の回路について
機能素子間で遅延段数の最適化を行うが、第9図のよう
に最適化の余地が残っていないのでっぎの被最適化パス
の展開を行う。
被最適化パス0Vp2について最適化[1標値を計算す
る。重複したクリティカルパスovplの最適化1」標
値が実現できなかったので、本最適化パスはその分最適
化目標値が大きくなる。本来の最適化l」標値は2段で
あるが、いまovplの非実現最適化[1標値1段を加
えて3段になる。そこで最適化展開候補を捜すとSUB
 (810)か選択され、さらに高速化回路に展開する
ルールがあるかどうかを調べると存在するのて、SUB
を高速化回路に展開する。ここでは5段の遅延段数を持
つ回路に展開できるので(第10図を参照、1001は
4ビット全加算器で遅延段数は5段)、最適化[“1標
値3に対して2段分を満足させる。0vp2には他に最
適化展開可能な機能素子がないので、展開後の回路につ
いて機能素子間の最適化を行うが、最適化の余地が残っ
ていないのでクリティカルパスcp1.1とcps、2
は最適化11標値4を達成てきず3段分しか稼げなかっ
たことになる。同様にo v p 3の最適化目標値は
2段になりパス」−のADDは展開後最小5段にしかな
らないのでクリティカルパスcp2.1、cp2゜2の
最適化!−1標値の3段は実現できず1段分の危険度は
残る。さらに重複クリティカルパスの最適化目標値が実
現できなかったことから、パスopp1は最適化目標値
1段を持った被最適化パスになるか、oppl上にはM
UXとかREG等最等化適化候補いためなにも行われな
い。従ってクリティカルパスcp3.1について1段分
の危険度が残ってしまう。また各被最適化パスの端点同
士の最適化が可能かとうか試みるが本実施例では被最適
化パスがMUX(816)で分離されているため不可能
である。本実施例によると最長遅延段数が14段から1
1段に削減された。
本実施例は展開後の回路の遅延段数を既知として説明し
たが、未知の場合は展開後の回路の段数計算を行う必要
がある。さらに展開後の回路同士で遅延段数の最適化が
行われた場合は再度クリティカルパス探索手段で展開前
のクリティカルパスが回避されたかどうか調べ、クリテ
ィカルパス」二の機能素子がすべて展開されるまで繰り
返す。
[発明の効果] 以」二説明したように、本発明の装置によれば少ないメ
モリ容量で抽象回路のレベルでタイミング検証が行え、
合成前にタイミング仕様が満たされるか否かの判定が可
能になる。また、抽象回路に割り当てられた遅延時間を
利用して、回路の展開及び最適化時にスピードの速い回
路を生成するの3 つ で、論理式の筒中化やハードウェアのインプリメンテー
ションによる遅延時間の最適化だけを用いた場合よりも
遅延時間の制約を満足する回路が実現できるという効果
がある。
【図面の簡単な説明】
第1図は本発明の一実施例にかかる論理回路の合成装置
の構成を説明するブロック図、第2図は本発明の一実施
例における論理合成の処理フローを説明する図、 第3図は本発明の一実施例におけるクリティカルパス探
索手段の処理を説明する図、 第4図は本発明の一実施例における被最適化回路(被最
適化パス)の油田と該パス上の抽象機能素rの選択、展
開及び最適化処理の手順について説明する図、 第5図は本発明の一実施例におけるクリティカルパスか
ら被最適化パスの抽出1法について説明する図、 第6図は本発明の一実施例における抽象機能素子の展開
について説明する図、 第7図は本発明の一実施例における抽象機能素子から論
理素子への変換について説明する図、第8図は本発明の
一実施例におけるクリティカルパスの探索と合成の処理
を説明するのに使用する簡単なモチーフの機能ブロック
図、 第9図は本発明の一実施例における比較器の論理素子へ
の変換について説明する図、および第10図は本発明の
一実施例における減算器の展開について説明する図であ
る。 101・ レジスタ転送仕様の人力部 ]04・タイミング制約の入力部 105−タイミング制約設定及び違反検111部106
 論理合成部 108 論理回路の出力部

Claims (2)

    【特許請求の範囲】
  1. (1)論理回路を自動生成するための論理回路の合成装
    置において、 合成の開始前、あるいはその途中で生成された抽象回路
    を使用してタイミング解析を行なうために、前記抽象回
    路を構成している素子に任意の遅延時間を与える手段と
    、 与えられた遅延時間を用いてタイミング解析を行い、タ
    イミング制約条件が満たされるかどうかを検出する手段
    と、 前記検出されたタイミング解析結果を使用してタイミン
    グ制約条件が満たされるように前記抽象回路を論理回路
    に変換あるいは合成する手段と、前記タイミング制約に
    違反する回路の遅延時間を最適化するために回路を変換
    あるいは合成する手段と、 を具備することを特徴とする論理回路の合成装置。
  2. (2)前記遅延時間最適化のための回路の変換あるいは
    合成手段は、前記タイミング解析手段で検出された制約
    違反の回路を解析して前記回路を最適化対象回路に分割
    するとともに分割された回路に最適化目標値を設定し、
    前記最適化目標値にしたがって回路を変換あるいは合成
    する手段を有することを特徴とする請求項1記載の論理
    回路の合成装置。
JP2159948A 1990-06-20 1990-06-20 論理回路の合成装置 Expired - Fee Related JP2980348B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2159948A JP2980348B2 (ja) 1990-06-20 1990-06-20 論理回路の合成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2159948A JP2980348B2 (ja) 1990-06-20 1990-06-20 論理回路の合成装置

Publications (2)

Publication Number Publication Date
JPH0451367A true JPH0451367A (ja) 1992-02-19
JP2980348B2 JP2980348B2 (ja) 1999-11-22

Family

ID=15704659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2159948A Expired - Fee Related JP2980348B2 (ja) 1990-06-20 1990-06-20 論理回路の合成装置

Country Status (1)

Country Link
JP (1) JP2980348B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883808A (en) * 1996-01-30 1999-03-16 Nec Corporation Logic circuit optimization apparatus and its method
JPWO2005038647A1 (ja) * 2003-10-16 2007-01-18 三菱電機株式会社 ユーザーインタフェースソフトウェア設計システム
JP2013033360A (ja) * 2011-08-01 2013-02-14 Fujitsu Semiconductor Ltd Lsi設計方法,設計プログラムおよび設計装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883808A (en) * 1996-01-30 1999-03-16 Nec Corporation Logic circuit optimization apparatus and its method
JPWO2005038647A1 (ja) * 2003-10-16 2007-01-18 三菱電機株式会社 ユーザーインタフェースソフトウェア設計システム
JP2013033360A (ja) * 2011-08-01 2013-02-14 Fujitsu Semiconductor Ltd Lsi設計方法,設計プログラムおよび設計装置

Also Published As

Publication number Publication date
JP2980348B2 (ja) 1999-11-22

Similar Documents

Publication Publication Date Title
US10089426B2 (en) Logic circuit generation device and method
US5333032A (en) Logic design system and method in the same
US7958470B1 (en) Method and system for false path analysis
JP3175322B2 (ja) 論理自動生成方法
US6622290B1 (en) Timing verification method employing dynamic abstraction in core/shell partitioning
US5574655A (en) Method of allocating logic using general function components
US5493505A (en) Initializable asynchronous circuit design
US6560571B1 (en) Method and apparatus for prioritizing the order in which checks are performed on a node in an integrated circuit
JPH0451367A (ja) 論理回路の合成装置
US7051312B1 (en) Upper-bound calculation for placed circuit design performance
US7398424B2 (en) False path detection program
US5740070A (en) Apparatus for automatically generating logic circuit
US6243852B1 (en) Method of and an apparatus for logic circuit synthesis
JP2853649B2 (ja) 論理シミュレーション用モデルの作成方法
US6877140B1 (en) Method and system for generating a schematic representing bus structures
JP2980761B2 (ja) 論理回路最適化装置
Babakov et al. Structural classification of methods for synthesis of a microprogram finite-state machine with datapath of transitions
JP2845154B2 (ja) 論理シミュレーション用モデルの作成方法
Van Eijk A BDD-based verification method for large synthesized circuits
JP2925160B2 (ja) 論理合成方式
JPH11259555A (ja) マクロの設計方法
JP5115056B2 (ja) 論理回路の記述形式変換方法、プログラム及び装置
JP2005107575A (ja) 大規模集積回路の設計方法
JPH1115865A (ja) 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3196735B2 (ja) 順序回路等価検証装置、方法及び記録媒体

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees