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

論理回路の合成装置

Info

Publication number
JP2980348B2
JP2980348B2 JP2159948A JP15994890A JP2980348B2 JP 2980348 B2 JP2980348 B2 JP 2980348B2 JP 2159948 A JP2159948 A JP 2159948A JP 15994890 A JP15994890 A JP 15994890A JP 2980348 B2 JP2980348 B2 JP 2980348B2
Authority
JP
Japan
Prior art keywords
circuit
stages
path
abstract
input
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.)
Expired - Fee Related
Application number
JP2159948A
Other languages
English (en)
Other versions
JPH0451367A (ja
Inventor
宏晃 西
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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は論理回路を自動的に合成するための装置に
係り、特にタイミングの制約に基づいて論理回路を合成
するための装置に関する。
(従来の技術) 論理合成技術の発展によって、レジスタ転送レベルの
回路記述から構造レベルの回路を自動生成できるように
なった。
ところが、熟練設計者が設計した論理回路と自動合成
された論理回路の性能(特に動作速度など)を比較する
と、人手設計のほうが優れている。というのは、熟練設
計者は、回路の動作周波数を満たすようにレジスタのク
ロックを決定し、クリティカルパスを絶えず考慮しなが
ら論理回路を設計しているからである。すなわち、どの
様な構造を持った回路にすれば信号遅延時間が少なくて
済むかを熟知していうからである。
また設計者はタイミング解析ツールを使用することに
よって、論理回路の詳細な信号遅延時間の解析結果を入
手できるようになったが(例えばどのパスが最長遅延も
しくは最小遅延パスであるか)、これは設計者が所望す
る論理回路の設計を一通り終った後でないと使用できな
かった。従って、論理合成後の論理回路に対してタイミ
ング解析を行い、設計者が考えている制約に違反する箇
所を人手で修正する必要があった。
一方、最近の論理合成技術では、ライブラリ化された
ハードウェアコンポーネント(ライブラリセル)をゲー
ト回路に割り当てた後で、論理合成システムに内蔵した
タイミング解析手段を用いてタイミング解析を実行し、
この結果が設計者の所望するタイミング制約を満たして
いない場合は、スピードの遅いハードウェアコンポーネ
ントをスピードの速いハードウェアコンポーネントに交
換し、再びタイミング解析を実行してタイミング制約が
満たされているかどうかを調べ、これが満たされるま
で、もしくはその限界まで繰り返すという手法をとって
いた。
他方では、タイミング情報をハードウェアコンポーネ
ントのテクノロジに依存しないライブラリ化された抽象
コンポーネントに格納し、これを合成時に使用する手法
も考えられている。この技術に関しては、特開昭63−15
5268号公報において示されている。
しかし抽象コンポーネントは入力数が可変であったり
コンポーネント自体ビット幅を有しているので、許され
るビット幅に応じた膨大な数のコンポーネントをライブ
ラリに登録する必要があり、従ってこの手法では多大な
記録要領を必要としていた。
(発明が解決しようとする課題) 上述したように従来技術では、部品ライブラリとして
用意されたコンポーネントによって回路が構成されてい
ないと、タイミング解析が実行できないという不具合が
あった。
また、レジスタ転送回路から変換された抽象回路では
元来入出力数が可変のため、遅延時間を使用可能な全て
の抽象回路に持たせて、それぞれをライブラリ化すると
データ量が膨大になり不経済である。
本発明は、このような点に関してなされたもので、そ
の目的は、同一機能を有するが、しかし異なる構造を持
ったハードウェアに適した遅延時間の割付手段を用いて
抽象回路の段階でタイミング解析を実行し、その結果の
タイミング違反情報を合成開始前あるいは途中の段階で
使用することで高性能な論理回路を合成することが可能
な装置を提供することである。
[発明の構成] (課題を解決するための手段) 上記課題を解決するために本発明では、論理回路を自
動生成するための論理回路の合成装置において、合成の
開始前、あるいはその途中で生成された抽象回路を使用
してタイミング解析を行なうために、前記抽象回路を構
成している素子に任意の遅延時間を与える手段と、与え
られた遅延時間を用いてタイミング解析を行い、タイミ
ング制御条件が満たされるかどうかを検出する手段と、
前記検出されたタイミング解析結果を使用してタイミン
グ制約条件が満たされるように前記抽出回路を論理回路
に変換あるいは合成する手段と、前記タイミング制約に
違反する回路の遅延時間を最適化するために回路を変換
あるいは合成する手段と、を具備することを特徴とす
る。
(作用) 本発明の装置によれば、機能動作仕様記述から変換さ
れた抽象回路を構成する素子に任意の遅延時間を割当て
ることができ、この遅延時間を使用して合成前あるいは
合成途中にタイミング検証が行える。さらにタイミング
解析の結果を使用して遅延時間の制約を満足するように
抽象回路を論理回路に変換または合成し最適化を繰返し
て行えるので、スピードの速い論理回路の合成ができ
る。
(実施例) 以下、本発明の実施例を図面を参照して説明する。
第1図は本発明の一実施例にかかる論理合成装置の構
成を示すブロック図である。
第1図の101は機能動作仕様を表すレジスタ転送仕様
の入力部で、レジスタ転送記述もしくは該仕様をスケマ
テック表示した機能ブロック図である。102は設計デー
タ変換部(トランスレータ)である。この変換部102は
入力部101のレジスタ転送記述を構文解析して、該記述
に忠実な初期抽象回路を生成する。また機能ブロック図
の場合はスケマテック図よりネットワーク情報と図形情
報を抽出して初期抽象回路を生成する。103は該抽象回
路のネットワーク情報を格納する設計データベース部で
ある。104はタイミング制約入力部で、レジスタ転送仕
様の任意の点に制約遅延時間を設定できる。105はタイ
ミング制約設定及び違反検出部で、トランスレータ部10
2で生成された抽象機能素子の入出力数が一定でないた
め、設計データベース部103から該初期抽象回路の素子
のタイプと入力数またはビット幅を取り出し、該素子の
遅延時間を計算し割り付ける遅延時間計算割付手段と、
入力部104からタイミング制約を取り込む手段と、与え
られたタイミング制約が、論理合成前及び途中の抽象回
路もしくは論理回路において実現されるかどうかを検証
するクリティカルパス探索手段から構成されている。10
6は論理合成部で、前記タイミング制約違反検出部105で
検出された違反回路を解析して該回路を最適化対象回路
に分割し、さらに最適化目標値を設定し、該最適化目標
値に従って抽象回路を具象回路に展開し、また、冗長な
回路の簡単化及び、テクノロジに依存した回路素子の割
付けを行う各処理手段から構成されている。107は設計
データ変換部で、記述変換やスケマテック図の生成を行
うためのもので、具体的には設計データベースに格納さ
れている回路情報を論理回路(構造記述またはスケマテ
ック図)に変換する。108は合成された論理回路の出力
部である。
第2図は、第1図で説明した論理合成装置の処理フロ
ーを説明する図である。
201は、レジスタ転送記述及びタイミング制約を入力
するステップで、202は、記述の動作解析を行って初期
抽象回路を生成するステップである。203は抽象回路素
子に遅延時間を計算して割り付けるステップである。20
4は、割り付けた遅延時間を使用して全体回路の遅延時
間計算を行い、クリティカルパスを検出しタイミング制
約が守られているかどうかを調べるステップである。制
約が守られていないときは、制約に違反している箇所を
レポートもしくはスケマテック表示する。また、該タイ
ミング制約に違反しているパスに関しては、この制約が
実現されるようにスピードの速い回路に展開して最適化
を行い(205)、ステップ203及び204を繰り返して該タ
イミング制約が満たされているかどうかを調べ、ハード
ウェアコンポーネントを割り付ける(206)ことによっ
て合成を終了する。以下各ステップの処理内容について
詳細に説明する。
その前にレジスタ転送記述について説明する。レジス
タ転送記述では、回路の素子と認識されるファシリティ
(外部端子、内部信号、レジスタ、メモリなど)とハー
ドウェアの詳細まで立ち入らずに機能を表せる演算子、
組み込み関数(加算、減算など)、ファシリティの動作
を表すプロセス(レジスタの非同期クリアなど)の記述
や状態遷移表現が可能である。以下ファシリティ、演算
子、組み込み関数、プロセス、ステートを抽象機能素子
と呼ぶ。
ここで抽象機能素子の遅延時間について説明する。論
理合成は最終的に抽象機能素子を論理素子(ゲート)ま
で展開して最適化を行い、これに所望のテクノロジから
なるハードウェアのライブラリセルを割り付けるもので
ある。しかしレジスタ転送レベルの回路は機能レベルの
回路であり、必ずしもハードウェアとして最適化された
回路、すなわちゲート数とかゲート段数を考慮して設計
された回路とはなっていない。従って最初からすべての
抽象機能素子にハードウェアのセルを割り付けて考える
のは得策ではない。また同一機能のセルであっても異な
るスピードのセルを割り付けることによって実遅延時間
は変わってしまうので、レジスタ転送レベルの回路の各
抽象機能素子に実時間を割り当てて信号伝播パスの遅延
時間を計算するのは適当ではない。そこでこの実施例の
装置では、基本的なゲートを単位としたゲート段数を遅
延時間の代りに用いる。またハードウェアのNORゲート
のセルなどでは入力数が増加するにしたがって実遅延時
間がかなり異なってくるので(例えば6入力のNORは2
入力NORの4倍の遅延時間を有する)、このようなゲー
トでは入力数を考慮して段数を与えることにする。
つぎに第1図の検出部105のサブ手段である遅延時間
計算割付手段の処理について説明する。
まず論理合成途中で一部の抽象機能素子が具体的なハ
ードウェアセルに変換されてもクリティカルパスの検索
が可能なように、ハードウェアセルのライブラリに存在
するセルについては、それを構成する論理素子を用いて
段数を計算し遅延情報のライブラリに格納する。またレ
ジスタ転送レベルの抽象機能素子及び合成途中で生成さ
れる抽象機能素子または論理素子については、設計デー
タベース部103から抽象機能素子を取り出して、該素子
のタイプやビット幅や入力数を変数として、それらが論
理合成途中に典型的な抽象素子や論理素子からなるネッ
トワークに展開されるとした遅延モデルや、論理素子そ
のものの遅延モデルに従って段数を計算して、設計デー
タベースに格納する。ここで抽象機能素子の遅延段数は
抽象機能素子の展開後の回路によって異なってくるの
で、前記段数の計算を行う手段とともに、遅延モデルを
複数用意しておく。またこの処理で一度計算した遅延段
数については抽象機能素子のタイプ、入力数、ビット幅
と一緒にワーク記憶領域に保存しておき、設計データベ
ースから同一タイプの抽象機能素子が再び取り出された
らハッシュイングを行って、該ワーク記憶領域のデータ
を取り出して割り付ける。
ここで第6図の10ビット2入力全加算器600を例にと
って段数計算を説明する。
いま論理合成で加算器をリップルキャリー型の加算器
に展開することになっている場合、第6図(b)の回路
に展開されるものとして遅延モデルを考える。第6図
(b)の回路は5個の2ビット2入力の全加算器601〜6
05より構成されている。これらは下位ビットで計算され
たキャリーの信号に対してシリアルに接続されており
(601〜605)、入力CIからCOまでのパスが最大遅延段数
を有している。また出力データS<8:9>(609)も該段
数と等しい遅延段数を有している。従って2ビット2入
力の加算器の最大遅延段数が6段であることがわかって
いるとき、10ビット2入力全加算器の最大遅延段数は30
段になる。
以下第3図を用いて第1図の検出部105におけるクリ
ティカルパス検索手段の処理について説明する。いま、
クリティカルパスの検索域は入力−レジスタ間、入力−
出力間、レジスタ−レジスタ間、レジスタ−出力間とす
る。
処理を開始する(301)。入力属性を有するファシリ
ティやレジスタ転送記述に於ける定数に与えた初期遅延
情報や終点の信号名およびタイミング制約データ(ゲー
ト段数)情報を取り込む(302)。レジスタ転送記述を
トランスレートした結果を格納した設計データベースか
らネットワークデータを抽出する(303)。ネットワー
クを構成している機能素子が遅延時間のライブラリ内に
存在するかどうかを調べ(304)、存在する場合は該ラ
イブラリよりその遅延情報を取り込み該機能素子に割り
付け(305)。存在しない場合は展開後の回路の遅延モ
デルに従い段数を計算して該機能素子に割り付ける(30
6)。つぎに入力点より終点信号方向に向ってパスをト
レースする。ここで入力点とは入力属性や定数属性を有
するファシリティのことで、終点とはレジスタのデータ
入力や出力属性のファシリティを指す。このときデータ
パス、制御パス(レジスタ転送記述ではif、caseなどで
データ転送を制御でき、このif、caseの条件信号を作成
するパス)、クロックパス(レジスタのクロック入力に
接続されるパス)のそれぞれについてパスの有する最大
段数を伝播しながら計算する。またクロックパスについ
てはレジスタに入力後はレジスタの出力に接続されてい
るデータパスについて段数を計算する。一度計算したパ
ス上の各素子の入力からの段数は設計データベースに格
納する(307)。すべての終点に対する段数計算が終了
したらつぎの処理を行う。
つぎに終点に割り付けられたタイミング制約情報を用
いて、終点から入力点に向かって抽象機能素子が持って
いる段数を引去りながら、各抽象機能素子の出力で要求
される最小の遅延段数(最もクリティカルな制約)を計
算して設計データベースに格納する(308)。抽象素子
間の信号はレジスタ転送レベルの回路ではファシリティ
として認識されるのでパス自体の遅延についても考慮さ
れる。さらにスラック(いま求めた制約の遅延段数とパ
スの入力からの段数との去)を計算して設計データベー
スに格納する(309)。ここでスラックがマイナス値
(最大遅延を考えている)になった箇所はクルティカル
パス上に存在する。
その後終点からスラックの値を頼りにタイミング制約
を満足しないパスをトレースする(310)。さらにこの
とき制御信号の値によって機能的に非現実的なパスをク
リティカルパスの候補としている場合があるのでif、ca
seの条件が矛盾なく成立するパスを本当のクリティカル
パスとし、設計データベースにパス情報を格納する。そ
してクリティカルパス上の各抽象素子の出力における入
力からの段数、制約、スラックなどの情報を設計データ
ベースに格納して(311)本手段の処理を終了する(31
2)。
またクリティカルパス探索手段では、終点に与えた最
大遅延段数制約に対するクリティカルパスmax(スラッ
クmax)と同じように、最小遅延段数制約に対するクリ
ティカルパスmin(スラックmin)が同時に探索できる。
以下第4図を用いて第1図のクリティカルパス探索手
段によって発見されたクリティカルパスから論理合成部
106で行う被最適化回路(被最適化パス)の抽出と該パ
ス上の抽象機能素子の選択、展開及び最適化処理の手順
について説明する。
ここで説明の関係上本発明の論理合成が用いているル
ールベースの方式について簡単に説明する。レジスタ転
送記述をトランスレータで初期回路に変換したあと、抽
象機能素子をより抽象度の低い機能素子または論理素子
に展開する。このとき展開の度合によってゲート数は多
いがスピードの速い回路やスピードは遅いがゲート数が
少ない回路が構成できるので、展開の制御はルールベー
ス方式を用いている。すなわち展開の仕方をルールで選
択できる。上述したように展開の仕方もルールで記述で
きるが展開ルールの選択制御そのものがルールで記述で
き、このルールをメタルールと呼ぶことにする。また抽
象機能素子同士を対象にした最適化はアルゴリズムを用
いた手法では不可能なので、本最適化にもルールを用い
ている。
以下の実施例ではクリティカルパスmaxを最適化合成
する手順について説明する。なお、今後特に断らない限
りクリティカルバスはクリティカルパスmaxの意味で用
い、スラックもスラックmaxの意味で使用する。クリテ
ィカルパスを解消するように合成するには、クリティカ
ルパス探索手段によって計算されたスラック値をゼロに
するようにすればよいのでスラック値の絶対値を最適化
目標値とする。
処理を開始する(401)。クリティカルパスから被最
適化パス及び最適化目標値を求める(402)。被最適化
パスの選択については後述する。つぎに被最適化パス上
の抽象機能素子から被展開候補抽象機能素子を捜し出し
(403)(これについても後で詳しく説明する)、候補
が存在する場合は、該抽象機能素子を展開したとき遅延
段数が減少する(最適化目標値に近づく)かどうかを調
べる(404)。なお遅延時間割付手段でレジスタ転送レ
ベルの抽象機能素子には典型的な遅延段数を割り当てて
あるので、スピードの速い抽象回路に展開するルールが
存在すれば減少することがわかる。減少しない場合はつ
ぎの候補の抽象機能素子を抽出する(403)。減少する
場合は該抽象素子をより抽象度の低い抽象素子に展開す
る(405)。そして展開後の抽象素子に対して遅延情報
ライブラリを用いて抽象段数を割り当てる。該ライブラ
リにない場合は計算して割り当てる(406)。展開後の
抽象機能素子のネットワーク全体に対して段数計算を行
い(407)、展開前の抽象機能素子の遅延段数といま計
算した遅延段数を比較して、該被最適化パスの最適化目
標値が達成されたかどうかを調べる(408)。達成され
ない場合は、つぎの候補の抽象機能素子がなくなるまで
抽出して繰り返す。その後で最適化目標値が達成されな
い場合は、展開後の機能素子同士または被最適化パスの
端点の機能素子同士について最適化を行う(409)。全
ての被最適化パスに対して上記処理が終了したかどうか
調べ(410)、終了した場合は該全体回路に対してクリ
ティカルパス検索を行い展開最適化合成前のクリティカ
ルパスが解消されているかどうかを調べる(411)。解
消されていない場合は一連の処理でクリティカルパスが
解消されずに残るまでステップ402以下の処理を繰り返
す(412)。クリティカルパスが解消された場合もしく
は残存するのが確定した場合は、上記展開後の抽象機能
素子以外のネットワークの抽象機能素子に対しても展開
を行い、さらに素子数最適化を行う(413)。このとき
クリティカルパスの解消のときに展開した回路について
は素子数最適化の処理を行わない。以上で遅延時間最適
化合成の処理を終了する(414)。
つぎに第5図を用いて第4図のステップ402の被最適
化パスの抽出手順について説明する。処理を開始する
(501)。まずクリティカルパス探索手段で発見された
クリティカルパスmaxのスラック値から最も危険度の高
い(余裕度の小さい)パスを選択する(502)。該パス
が他のクリティカルパスと重複するかどうか調べ(50
3)、この重複パスがクリティカルパスminでないことを
確かめる(504)。クリティカルパスminと重複していな
い場合、この重複クリティカルパスのスラックのうち危
険度の最も小さい(余裕度の最も大きい)値を選ぶ(50
5)。そして該重複したサブパスを被最適パスとし、い
ま求めた危険度の最も小さい(余裕度の最も大きい)ス
ラック値の絶対値を最適化目標値とする(506)。また
非重複サブパスの最適化目標値は、各クリティカルパス
が有するスラック値に重複サブパスの最適化目標値を加
えた値の絶対値になる(507)。ただしこの値は重複サ
ブパスの最適化が成功したときに用いる。すなわち最適
化に失敗した場合は該重複クリティカルパスの末端最適
化目標値分をそれぞれ被最適化サブパスの最適化目標値
に対して加算し、最適化目標値を更新する。ステップ50
3で調べたクリティカルパスが他のものと重複しない場
合は、取り出したクリティカルパス全体を被最適化パス
とし、またスラック値より最適化目標値を求める(50
8)。すべてのクリティカルパスを被最適化パスに分け
その最適化目標値が求まったら(509)本処理を中止し
(510)、論理合成へデータをインターフェースする。
すなわち処理402へ進む。
つぎに第4図のステップ403の被最適化パス上の抽象
機能素子の選択手順について説明する。
まず、(1)外部出力に最も近い抽象機能素子を捜し
出す。これは該抽象素子の変換によって発生する他の回
路への影響を最小限にするためである。
(2)最も小さいファンアウトを有する抽象機能素子を
捜し出す。これは、いまファンアウトが多い抽象素子を
同一機能のより小さい遅延段数をもつ抽象素子に変換し
たとき、該変換後の抽象素子をノードとして持つパスが
最小段数違反パスとなる可能性があるからである。
(3)最も小さいファンインを有する抽象機能素子を捜
し出す。これは、いまファンインが多い抽象素子を同一
機能のより小さい遅延段数をもつ抽象素子に変換したと
き、該変換後の抽象素子をノードとして持つパスが最小
段数違反パスとなる可能性があるからである。
前記(1)〜(3)の優先度は(2)と(3)を満た
すものでかつ(1)を満足するものが最優先で、(2)
と(3)に関しては(2)の値のより小さい抽象機能素
子を選択する。この優先度についてはルールベース方式
を用いているので自由に変更できる。
ここで第6図を用いて第1図の論理合成部106におけ
る抽象機能素子の展開の実施例について説明する。
第6図(a)に示す10ビット2入力加算器600の展開
の手順について説明する。第6図(b)は、2ビット加
算器を5つ(601〜605)用いてリップルキャリー10ビッ
ト2入力加算器を構成した図である。第6図(c)は2
ビット加算器1つ(606)と4ビット加算器2つ(607,6
08)を用いて10ビット2入力加算器を構成した図であ
る。2ビット加算器のゲート数は20でゲート段数は3段
である。一方4ビット加算器のゲート数は45で段数は5
段である。そこで第6図(b)の構造にするとゲート数
は100でゲート段数は15段になる。一方、第6図(c)
の構造にするとゲート数は110となりゲート段数は12段
となる。
いま、クリティカルパス上の10ビット加算器を高速回
路に展開する要求が出されているときは、前記メタルー
ルを用いて第6図(c)の回路を選択しこれに展開す
る。また反対に10ビット加算器がクリティカルパス上に
ない場合は、メタルールを用いて第6図(b)の回路を
選択してこれに展開する。
展開後の抽出機能素子の最適化については、いま第6
図(b)の様な回路がクリティカルパス上に存在する場
合、2ビット加算器601と602の2つをビット加算器1つ
に置き換えることによって段数が6段から5段に減少し
1段数分スピードが速くなる。
つぎに第7図を用いて抽象機能素子から論理素子への
変換について説明する。
いま8ビットの1加算器(インクリメンタ)を例に取
って説明する。レジスタ転送レベル言語で記述された8
ビットの1加算器は、INC701という抽象素子にトランス
レートされる。そこで論理構成の処理が開始されるとIN
C701という素子はEXOR(排他的論理和)702、AND703、N
OT704の論理素子に展開される。いま第7図(b)の論
理素子からなる回路と、第7図(c)の回路と2つが考
えられ、第7図(b)の回路では各ビットのキャリーの
計算を独自の回路で行っているのに対して、第7図
(c)の回路は4ビットの1加算器を2つ用いた構成で
あり、したがって下位4ビットからのキャリーの計算結
果を用いるようになっている。2つの展開回路の違いは
それぞれ他の物と比較して、第7図(b)では信号伝播
遅延が小さいのに対して(ゲート数48、ゲート段数4
段)、第7図(c)ではゲート数が小さい(ゲート数4
0、ゲート段数5段)という特徴がある。この展開の処
理をルールベースで起う場合、まず2つの基本展開ルー
ルが用意されており、前記クリティカルパス探索手段で
発見されたクリティカルパス上にINCと言う素子が使用
されており、遅延最小の条件で展開の要求が出された場
合は、メタルールでそれを判断して第7図(b)の回路
に展開し、さもなければ第7図(c)の回路に展開す
る。
さらに簡単化ルールとして4入力ANDと2入力ANDがシ
リアルに接続されている場合、3入力AND2つに変換する
というものがある場合、上記第7図(b)の回路は第7
図(c)の回路になることが考えられるが、ゲート数最
小化のために設けられたANDのシリアル結合は簡単化し
ないようにフラグをつけておく。そうすることによっ
て、遅延時間最小化制約を満たす構造回路を生成でき
る。
上記実施例は、遅延時間最小化のルールによって生成
された回路が、上記簡単化ルールのようなゲート数最小
化のルールによって回路が変換されないようにした例で
あるが、反対にゲート数最小化のルールによって回路を
小さくする場合はフラグをoffにすればよい。
以下簡単なモチーフを用いてクリティカルパスの探索
と合成の処理を説明する。
第8図は合成前の機能ブロック図である。801〜805は
入力端子である。ここで入力端子801〜803は4ビット幅
を有している。806,807はクロック入力端子である。ま
た808は4ビット幅の出力端子である。809は4ビット2
入力加算器で、810は4ビット2入力減算器である。811
は比較器で、812は4ビットの1加算器(INC)、813は
4ビットの1減算器(DEC)である。814と815はそれぞ
れ1ビット、4ビットのレジスタで、816と817は2−1
のマルチプレクサである。さらに818はANDで、819,820
はインバータである。また821は内部信号である。
まずこの回路の機能素子及び結線情報をスケマテック
入力または機能設計記述言語で書く。この情報をデータ
変換手段を用いて回路設計データに変換する。いまこの
回路全体を論理合成の対象として遅延時間の制約を与え
る。ここでは、レジスタR2(815)を終点とするパスに
対して最大遅延制約段数10を与える。また出力端子G
(808)に最大遅延制約段数19を設定する。この設定の
仕方はスケマテック入力ではレジスタシンボルR2のデー
タ入力端子に対して最大遅延時間制約のテキスト入力テ
ーブルを開いて行うことができる。出力端子Gについて
も同様である。スケマテックの情報がなくてもこれらの
制約はコマンドで入力できる。
つぎに各抽象機能素子に対する遅延情報の与え方につ
いて説明する。設計者は機能ブロックの遅延時間を自由
に選択または設定できることが重要だが、機能ブロック
をスケマテック入力するたびに、もしくは機能素子を記
述するたびに遅延時間を設定していたのでは設計効率が
大変悪いので、自動割当の手段を用いる。抽象機能素子
の遅延時間は入力数及びそのビット数に依存し、さらに
同一機能に対して構造回路は複数考えられるため、ここ
ではゲート数も遅延時間も良好な標準的な論理回路を想
定して遅延時間を与える。いま第8図の点数の円で囲ま
れた数字は各機能ブロックの最大遅延段数である。イン
バータは他の論理ゲートに比べて遅延時間が小さいので
ここではゲート段数を0としている。
これを整理して示すと以下の表1のようになる。 表 1 機能ブロックタイプ 遅延段数 ADD 6 SUB 7 COMP 5 MUX 1 INC 3 DEC 3 REG 2 AND 1 INV 0 これらは設計データベースから各抽象機能素子のタイ
プと入力数と入力数のビット幅を取り出して、この情報
をもとに計算して割り当てたものであり、これについて
は合成途中で再度生成される可能性があるためワーク記
憶領域に保存しておく。
そこで上で設定した遅延時間制約に基づいたクリティ
カルパス探索の処理について説明する。
入力端子からの各抽象機能素子の出力における段数を
求める。入力点A(802)、B(803)、C(804)、D
(805)は0段で、クロック入力CK1(806)にはA〜D
入力に対して遅延時間として3段遅延を持たせ、CK2(8
07)は16段とする。
いま入力端子A(802)、B(803)からのデータパス
の段数について説明する。点線の四角形の上から1段目
の値が入力からの段数を示す。減算器(810)の出力は
7段となり加算器(809)の出力は6段となる。またMUX
(816)の出力は偽入力(810)からの段数が大きいので
それをとり8段となる。一方MUX(816)の制御入力はCK
1(806)が3段でレジスタR1(814)の段数2を加えて
5段となる。またMUX(816)の出力は最大6段となる。
従ってこのパスはデータパスからの8段をとる。比較器
(811)の出力はF(821)からのパスの8段と比較器本
体が有している5段を加えた13段となる。さらにMUX(8
17)の出力はデータパスF(821)や1加算器(812)の
出力段数の3段よりも大きい14段の値をとる。最終的
に、レジスタR2(815)のデータ入力へのパスの最大段
数は14段となる。
つぎにR2(815)を終点とするパスに対して制約段数
(点数の四角形の2段目の値)を計算する。R2には10段
の最大遅延の制約が割り付けられている。R2へ入力する
パスはMUX(817)から来ている。MUXの右から入力する
制御信号822は偽のときの条件を表しており、823は真の
ときの条件を表している。MUX(817)の左から入力する
信号はデータ信号で右から入力する制御信号に対応する
ものである。いまMUXのデータ入力F(821)に於ける制
約を求めると9段になる。ここでFはファンアウトが2
以上であるのでFの出力のもとの遅延段数決めることが
できない。そこでMUX(817)の真入力のデータパスの制
約を調べると、偽の場合と同様に9段となり、さらにIN
C(812)は3段なのでINCの入力は6段となる。このパ
スについては、いま終点を指定したレジスタの出力に達
したのでここで終了する。そこでMUX(817)の制御信号
のパスの制約段数を求める。MUXの制御入力端子はそれ
ぞれ9段である。MUXの偽のパスのインバータによる遅
延は考慮せず比較器(811)の出力端子に於ける段数は
9段となる。そして比較器の入力端子に於ける段数を計
算する。比較器の遅延段数は5段であるので入力F(82
1)の出力は先ほど計算した9段よりも小さい、いま求
めた4段を制約とする。以下同様に加算器(809)、減
算器(810)の出力はそれぞれ3段となり減算器(810)
の遅延段数が7段であるのでA(802)、B(803)はそ
れぞれ−4段となる。一方MUX(816)の制御入力に対し
てレジスタR1(814)の出力は3段となり、レジスタR1
(814)のクロック入力からデータ出力までの遅延段数
を差し引いてクロック入力CK1(806)は1段となる。
ここでスラック(制約段数−始点からの段数)を求め
る。点線の3段組の長方形の3段目の値がスラック値で
ある。そしてR2(815)からこのスラックの値の内マイ
ナス値をトレースすればこれがクリティカルパスとな
る。このモチーフでは−4のパスが最も危険なパスで、
つぎが−3のパスである。
同様に出力G(808)については、まず入力CK2(80
7)からの段数は入力A(802)、B(803)、E(801)
に対して16段の遅延を持っているので、レジスタR2(81
5)のクロック入力では16段となり、R2のデータ出力で
は18段となる。さらにDEC(813)の出力端子で21段とな
り結局出力G(808)で21段になる。つぎに出力Gには
制約19段が与えられているので、DEC(813)の入力はDE
C自体が有している3段の遅延段数を差し引き16段とな
る。またレジスタR2のクロック入力からデータ出力まで
の遅延段数を差し引いてクロック入力CK2(807)は14段
となる。スラックは−2となりクリティカルパスはCK2
−R2−DEC−Gのパスとなる。
つぎに最適化パスの選択方法について説明する。クリ
ティカルパスが有しているスラック値から最も危険度の
高いパスを選ぶ。いまR2のデータ入力に与えた制約に対
して危険度の高いパスから示す。cp1.1とcp1.2はスラッ
クが−4のクルティカルパスで、cp2.1とcp2.2はスラッ
クが−3のクリティカルパスで、cp3.1は−2のクリテ
ィカルパスである。個々のクリティカルパスの最適化目
標値はスラック値の絶対値としtarget1〜3に示す。以
上を総合すると次の第2表のようになる。
第2表 cp1.1:A−SUB−MUX−F−COMP−MUX−R2 cp1.2:B−SUB−MUX−F−COMP−MUX−R2 slack1:−4 targetl:4 cp2.1:A−ADD−MUX−F−COMP−MUX−R2 cp2.2:B−ADD−MUX−F−COMP−MUX−R2 slack2:−3 target2:3 cp3.1:CK1−R1−MUX−F−COMP−MUX−R2 slack3:−2 target3:2 いま、cp1.1に着目するとこれは他の全てのクリティ
カルパスに重複する部分を有しており、これを重複パス
ovp1とする。最適化目標値は全クリティカルパスのうち
もっとも危険度の小さいスラックの絶対値を取るので2
(ot1)となる。またcp1.1はcp1.2とも重複しておりこ
れをovp2と示す。最適化目標値はtarget1−ot1で2(ot
2)となる。
ovp1:MUX−F−COMP−MUX−R2 ot1:2 ovp2:SUB−MUX ot2:2 つぎにcp2.1に着目すると重複パスovp1について処理
済みなので、cp2.2との重複パスovp3を被最適化パスと
し、最適化目標値ov3は1(target2−ot1)となる。cp
3.1についてはopp1が被最適化パスの候補になるが最適
化目標値op1は0(target3−ot1)となるため候補から
はずす。
ovp3:ADD−MUX ov3:1 opp1:CK1−R1−MUX op1:0 但しopp1はovp1で最適化が実現できた場合にのみ最適
化目標値はゼロとなる。
つぎに被最適化パスovp1について適用する最適化手法
について説明する。
いま説明する手法は被最適化パス上の複数の機能素子
に対して成分の最適化目標値を分担するものである。一
方被最適化パス上のある機能素子に対して最大限の最適
化目標値を担わせ、最小回数の展開で目標値を実現する
手法でも実現できる。
まずはじめに、よりファンアウトの小さい抽象機能素
子を選択するがその対象となるものはMUX817である。そ
こでMUXの展開方法について高速化ルールが存在するか
どうか調べ、いま高速化回路に展開するルールが存在し
ないので(本実施例では存在しないとした)つぎの候補
を捜す。またファンアウトの小さい抽象機能素子を選択
するとCOMP(811)が候補に挙がる。そこでCOMPを展開
したあとで高速化されるかどうか調べると是であるので
実際に展開を行う。展開後の回路を第9図に示す。そし
て展開後の個々の機能素子に対して遅延段数を与える。
展開後の部分回路の段数計算を行うと4段になるので1
段分だけ最適化目標値が達成された。ただしEXOR(90
1)は2段、4入力NOR(902)は2段としている。とこ
ろが被最適化パスovp1は最適化目標値が2段であるの
で、また上記展開のみでは達成されないためつぎの候補
を捜しにいくが、MUX(816)も上記理由により最適化展
開が不可能である。そのためCOMPの展開後の回路ににつ
いて機能素子間で遅延段数の最適化を行うが、第9図の
ように最適化の余地が残っていないのでつぎの被最適化
パスの展開を行う。
被最適化パスovp2について最適化目標値を計算する。
重複したクリティカルパスovp1の最適化目標値が実現で
きなかったので、本最適化パスはその分最適化目標値が
大きくなる。本来の最適化目標値は2段であるが、いま
ovp1の非実現最適化目標値1段を加えて3段になる。そ
こで最適化展開候補を捜すとSUB(810)が選択され、さ
らに高速化回路に展開するルールがあるかどうかを調べ
ると存在するので、SUBを高速化回路に展開する。ここ
では5段の遅延段数を持つ回路に展開できるので(第10
図を参照、1001は4ビット全加算器で遅延段数は5
段)、最適化目標値3に対して2段分を満足させる。ov
p2には他の最適化展開可能な機能素子がないので、展開
後の回路について機能素子間の最適化を行うが、最適化
の余地が残っていないのでクリティカルパスcp1.1とcp
1.2は最適化目標値4を達成できず3段分しか稼げなか
ったことになる。同様にovp3の最適化目標値は2段にな
りパス上のADDは展開後最小5段にしかならないのでク
リティカルパスcp2.1、cp2.2の最適化目標値の3段は実
現できず1段分の危険度は残る。さらに重複クリティカ
ルパスの最適化目標値が実現できなかったことから、パ
スopp1は最適化目標値1段を持った被最適化パスになる
が、opp1上にはMUXとかREG等最適化候補がないためなに
も行われない。従ってクリティカルパスcp3.1について
1段分の危険度が残ってしまう。また各被最適化パスの
端点同士の最適化が可能かどうか試みるが本実施例では
被最適化パスがMUX(816)で分離されているため不可能
である。本実施例によると最長遅延段数が14段から11段
に削減された。
本実施例は展開後の回路の遅延段数を既知として説明
したが、未知の場合は展開後の回路の段数計算を行う必
要がある。さらに展開後の回路同士で遅延段数の最適化
が行われた場合は再度クリティカルパス探索手段で展開
前のクリティカルパスが回避されたかどうか調べ、クリ
ティカルパス上の機能素子がすべて展開されるまで繰り
返す。
[発明の効果] 以上説明したように、本発明の装置によれば少ないメ
モリ容量で抽象回路のレベルでタイミング検証が行え、
合成前にタイミング仕様が満たされるか否かの判定が可
能になる。また、抽象回路に割り当てられた遅延時間を
利用して、回路の展開及び最適化時にスピードの速い回
路を生成するので、論理式の簡単化やハードウェアのイ
ンプリメンテーションによる遅延時間の最適化だけを用
いた場合よりも遅延時間の制約を満足する回路が実現で
きるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例にかかる論理回路の合成装置
の構成を説明するブロック図、 第2図は本発明の一実施例における論理合成の処理フロ
ーを説明する図、 第3図は本発明の一実施例におけるクリティカルパス探
索手段の処理を説明する図、 第4図は本発明の一実施例における被最適化回路(被最
適化パス)の抽出と該パス上の抽象機能素子の選択、展
開及び最適化処理の手順について説明する図、 第5図は本発明の一実施例におけるクリティカルパスか
ら被最適化パスの抽出手法について説明する図、 第6図は本発明の一実施例における抽象機能素子の展開
について説明する図、 第7図は本発明の一実施例における抽象機能素子から論
理素子への変換について説明する図、 第8図は本発明の一実施例におけるクリティカルパスの
探索と合成の処理を説明するのに使用する簡単なモチー
フの機能ブロック図、 第9図は本発明の一実施例における比較器の論理素子へ
の変換について説明する図、および 第10図は本発明の一実施例における減算器の展開につい
て説明する図である。 101……レジスタ転送仕様の入力部 104……タイミング制約の入力部 105……タイミング制約設定及び違反検出部 106……論理合成部 108……論理回路の出力部

Claims (2)

    (57)【特許請求の範囲】
  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 JPH0451367A (ja) 1992-02-19
JP2980348B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2874628B2 (ja) * 1996-01-30 1999-03-24 日本電気株式会社 論理回路の最適化装置及びその方法
DE112004001955T5 (de) * 2003-10-16 2006-08-24 Mitsubishi Denki K.K. Benutzeroberflächensoftware-Entwurfssystem
JP5842442B2 (ja) * 2011-08-01 2016-01-13 株式会社ソシオネクスト Lsi設計方法,設計プログラムおよび設計装置

Also Published As

Publication number Publication date
JPH0451367A (ja) 1992-02-19

Similar Documents

Publication Publication Date Title
US5333032A (en) Logic design system and method in the same
US5737234A (en) Method of optimizing resource allocation starting from a high level block diagram
JP3851357B2 (ja) トランジスタ回路のタイミング特性抽出方法、タイミング特性ライブラリを記憶した記憶媒体、lsiの設計方法、及びゲート抽出方法
US6609232B2 (en) Logic compound method and logic compound apparatus
JPH0668197A (ja) 論理自動生成方法
US7472371B2 (en) Description style conversion method, program, and system of logic circuit
JP2980348B2 (ja) 論理回路の合成装置
JP4221730B2 (ja) 回路連言標準形生成方法及び回路連言標準形生成装置並びにハザードチェック方法及びハザードチェック装置
US6704916B1 (en) Method and apparatus for optimizing placement and routing and recording medium for recording program for optimizing placement and routing
JP5447547B2 (ja) マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム
US12073159B2 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
Fujita et al. Delay estimation and optimization of logic circuits: a survey
JPH09311882A (ja) 論理回路検証支援装置
JP2853649B2 (ja) 論理シミュレーション用モデルの作成方法
JPH1173447A (ja) 論理回路の自動合成方式
JP2980761B2 (ja) 論理回路最適化装置
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
US6502227B1 (en) LSI design method which never produces timing error having influence on entire specification of LSI function, after design of layout and circuit of detailed portion
JP3101872B2 (ja) 論理合成支援方法およびシステム
JP3561661B2 (ja) 半導体集積回路及び半導体集積回路の設計方法
JP2845154B2 (ja) 論理シミュレーション用モデルの作成方法
JP2925160B2 (ja) 論理合成方式
CN118153509A (zh) 一种实现fpga的布局布线的方法及装置
Espejo et al. Logic restructuring for MUX-based FPGAs
JP3652220B2 (ja) 論理回路検証装置及び論理回路検証方法及び論理回路検証プログラムを格納した記録媒体

Legal Events

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