JPH1115865A - 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体

Info

Publication number
JPH1115865A
JPH1115865A JP9167431A JP16743197A JPH1115865A JP H1115865 A JPH1115865 A JP H1115865A JP 9167431 A JP9167431 A JP 9167431A JP 16743197 A JP16743197 A JP 16743197A JP H1115865 A JPH1115865 A JP H1115865A
Authority
JP
Japan
Prior art keywords
node
logic circuit
data flow
flow graph
unit
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.)
Pending
Application number
JP9167431A
Other languages
English (en)
Inventor
Tokuji Masuda
篤司 増田
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 JP9167431A priority Critical patent/JPH1115865A/ja
Publication of JPH1115865A publication Critical patent/JPH1115865A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 論理回路を自動合成する場合において、動作
条件の異なる部分を動作条件毎に処理単位を区切って処
理することで、論理回路の合成時間の短縮と合成された
論理回路の内部結線の本数を減少させることを目的とす
る。 【解決手段】 本発明の論理回路の合成装置は、動作記
述を入力する入力手段100と、動作記述をコントロー
ルデータフローグラフ(C/DFG)に変換するC/D
FG変換手段210と、C/DFGを条件毎に分割して
データフローグラフ(DFG)を作成する条件分割手段
220と、DFGを実行ステップに分割し、各演算ノー
ドに対して記憶素子を挿入するスケジューリング手段2
30と、前記DFGを演算器の共有化と内部結線の共有
化とを考慮して演算器への割り付けを行うハードウェア
割り付け手段240とを含む処理手段200と、合成さ
れた論理回路を出力する出力手段300とから構成され
ていることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、論理回路を自動合
成する際の合成時間の短縮と合成された回路の質を向上
させるための論理回路の合成装置、その合成方法及びそ
の合成するプログラムを記録したコンピュータ読み取り
可能な記録媒体に関する。
【0002】
【従来の技術】従来から論理回路を自動合成する場合に
は、入力データである動作記述をコントロール/データ
フローグラフ(C/DFG)とよばれる制御と動作のフ
ロー図に変換し、C/DFGに属する演算ノードや記憶
素子を制御するときの排他性を考慮することによって共
有化する演算器を決定した後に、実際のハードウェア素
子である演算器に割り付けるという処理を行って論理回
路を自動合成していた。
【0003】まず、従来の論理回路の合成方法を図17
に基づいて説明する。
【0004】図17に示す従来の論理回路の合成方法
は、入力された動作記述をC/DFGに変換するC/D
FG変換手段171と、C/DFGを実行ステップに分
割し、この実行ステップ毎に各演算ノードに対して記憶
素子(レジスタ、ラッチ等)を挿入するスケジューリン
グ手段172と、C/DFGの各演算ノードや記憶素子
を、演算器の共有化について考慮して各演算器へ割り付
けを行うハードウェア割り付け手段173とから構成さ
れている。
【0005】次に、この論理回路の合成方法によって行
われる処理について説明する。
【0006】まず、図18に入力する動作記述の例を示
す。この動作記述では前半部分は条件がTrueの場合
の情報であり、後半のelse以下の部分は条件がFa
lseの場合の情報である。また、この動作記述では本
発明の効果を示すため、条件のかからない演算ノードは
存在していない。
【0007】この図18に示した動作記述に対して、C
/DFG変換手段171による処理を行うと、図19に
示したC/DFGに変換することができる。このC/D
FGでは各演算ノードがどのような条件下で動作してい
るのかを演算ノード間の結線で表しており、実線で表さ
れている部分は条件がTrueの部分であり、点線で表
されている部分は条件がFalseの部分である。
【0008】次に、図19のC/DFGに対して、スケ
ジューリング手段172による処理を行う。このスケジ
ューリング手段172では、実行ステップ毎に区切り、
記憶素子(ここではレジスタ)を挿入する処理を行う。
スケジューリングを行うときの条件は、1実行ステップ
で実行できる演算ノードの個数は直列で1つとし、並列
にはいくつあっても良いものとして、実行ステップの切
れ目にはレジスタを挿入することとする。この条件のも
とでスケジューリング処理を施したときのC/DFGを
図20に示す。
【0009】次に、ハードウェア割り付け手段173に
よる処理を行う。ハードウェア割り付け手段では、演算
器の共有化と演算器への割り付けの2つの処理が行われ
る。
【0010】まず、演算器の共有化について説明する。
【0011】最終的に論理回路を合成するときには、C
/DFG中の各ノード(演算ノード、レジスタノード)
601、602、・・・、620を実行するための演算
器が論理回路中に存在しなければならない。しかし、そ
の際に各ノードに対してそれぞれ演算器を論理回路中に
設けていたのでは演算器の数が多くなり過ぎてしまい、
論理回路の面積が増大するなどの問題が生じてしまう。
そこで、同時に実行されることのないノードは同一の演
算器で実行する、即ち演算器の共有化を行い、論理回路
中の演算器が増えないようにしている。同時に実行され
ることのないノードとは、異なる実行ステップにある同
種のノード、あるいは異なる条件下にある同種のノード
のことをいい、これらのノードの間で演算器の共有化を
行うことができる。
【0012】ここで、図20のC/DFG中のノードの
共有化の決定について説明する。
【0013】図20の加算演算ノード611を例にする
と、異なる実行ステップにある同種の演算ノードとは、
実行ステップ2以外の実行ステップにある加算演算ノー
ド601,604,619,620であり、異なる条件
下にある同種の演算ノードとは、条件がFalseの加
算演算ノード604,613,614,620である。
【0014】従って、加算演算ノード611は、加算演
算ノード601,604,613,614,619,6
20と共有化が可能であることが分かる。逆に、加算演
算ノード611は、加算演算ノード612とは、同一の
実行ステップにあり、同一の動作条件にあるので、共有
化は不可能であることがわかる。このような関係を全て
の加算演算ノードに対して考え、図に表したものが図2
1である。図21では、共有化が可能な演算ノードの間
を結線で結んでいる。この図21を見ると、演算ノード
611と612、演算ノード613と614は共有化で
きないが、その他の演算ノードについては共有化できる
ことが分かる。そこで、どの演算ノードとどの演算ノー
ドを共有化するかについて、組合せを考えなければなら
ない。しかし、この組合せについての計算量は膨大な量
になるので、従来では最小個の完全グラフについて考え
て共有化する演算ノードを決定していた。図21で例を
示すと、点線で示したような最小個の完全グラフで覆わ
れた集合が共有化すべき演算ノードの集合を表すことに
なる。
【0015】従って、図21では演算ノード601,6
04,611,614,619,620の集合と加算演
算ノード612,613の集合とに分けることができ、
それぞれの集合毎に演算器を共有化することになる。
【0016】同様に減算演算ノード、レジスタノードに
ついても同様の処理を行うことで、全てのノードに対す
る共有化を決定することができる。
【0017】図22には、共有化するノード毎に共通の
ハッチング処理を施したC/DFGを示した。この図2
2をもとに共有化するノードに対して演算器を割り当
て、その演算器の間の結線を作成すると、論理回路を合
成する処理が終了する。
【0018】この処理の結果を示したものが図23であ
り、図23におけるハッチングは図22のハッチングに
対応している。
【0019】
【発明が解決しようとする課題】しかしながら、上述し
た従来の論理回路の合成方法では、共有化を行う際の計
算量が非常に大きくなるという問題点があった。以下こ
の問題点について説明する。
【0020】図19のC/DFGでは、動作条件はTr
ueとFalseの2種類であり、動作条件がTrue
の演算ノードは6個、動作条件がFalseの演算ノー
ドは5個であった。しかし、実際の論理回路では条件や
演算ノードの数は非常に大きくなる。そこで、条件がM
種類あり、各条件下で動作する演算ノードの数がそれぞ
れN個ある場合の計算量について考える。図24(a)
はM種類の条件に各N個の演算ノードが存在する場合の
C/DFGを簡略化して表したもので内部結線などは省
略してあり、条件がM種類、各条件下の演算ノードがN
個あるということだけを示している。
【0021】ここで、条件1の演算ノード1について考
えてみると、条件1の演算ノード1に対して条件2にあ
るN個の演算ノードそれぞれに対して共有化できるかど
うかを試行する。そして、今試行した条件1の演算ノー
ド1と条件2の各演算ノードとの組合せのそれぞれに対
して、さらに条件3の各演算ノードに対して共有化がで
きるかどうかを試行する。
【0022】これをM種類の条件に対して行うと、N
M-1個の組合せができ、条件1にはN個の演算ノードが
存在するので結局NM個の組合せが存在することにな
る。即ち、NM回の試行を行わなければならないことに
なる。
【0023】さらに、共有化をする組み合わせが決定し
論理回路中にある演算器に演算ノードを割り付ける場合
について考える。図24(b)はK個の演算器が存在す
る論理回路を簡略化して表したもので、内部結線などは
省略してあり、演算器がK個あるということだけを示し
てある。ここでは、最悪の場合として全ての演算ノード
が異なるタイプの演算ノードだった場合について考える
と、演算ノードの総数NM個の全てに対して論理回路中
のK個の各演算器に割り付けが可能であるか否かを試行
しなければならないので、論理回路にマッピングを行う
ためには、演算ノードの数NM個に論理回路中の演算器
の個数K個を掛けたNMK回の試行をする必要がある。
【0024】従って、従来の論理回路の合成法方では、
M種類の条件に各N個の演算ノードが存在するC/DF
GをK個の演算器のある論理回路に合成するためには、
最悪の場合NM+NMK回の試行を行う必要があるとい
うことになる。
【0025】このように、従来の論理回路の合成方法で
は共有化を行う際の計算量が、条件の種類が増えると共
に指数関数的に増加してしまうという問題点があった。
従って、最適解に近いものを求めることは困難であり、
使用される演算器の個数自体は最適解に近いものを求め
ることが可能であるが、合成された論理回路内の内部結
線の本数やマルチプレクサの個数を最小にするためには
膨大な計算量が必要になってしまうので、結果として内
部結線の本数やマルチプレクサの個数の多い論理回路し
か合成できないという問題点があった。
【0026】また、従来の論理回路の合成方法のハード
ウェア割り付け手段で行われている共有化は、演算器の
共有化のみを考慮するものであって、論理回路内の内部
結線の共有化について考慮するものではなかったので、
内部結線の本数やマルチプレクサの個数の多い論理回路
しか合成できないという問題点もあった。
【0027】本発明は上記事情に鑑みてなされたもので
あり、その目的は論理回路を自動合成する場合におい
て、動作条件の異なる部分を同時に処理せずに動作条件
毎に処理単位を区切り、その処理単位毎に合成すること
で、論理回路の合成時間の短縮と合成された論理回路の
内部結線の本数を減少させることのできる論理回路の合
成装置、論理回路の合成方法及び論理回路の合成プログ
ラムを記録したコンピュータ読み取り可能な記録媒体を
提供することにある。
【0028】
【課題を解決するための手段】上記目的を達成するため
に、第1の発明である論理回路の合成装置は、合成しよ
うとする論理回路に関するデータの記述された動作記述
を入力する入力手段と、この入力手段により入力された
前記動作記述をコントロール/データフローグラフに変
換するコントロール/データフローグラフ変換手段と、
このコントロール/データフローグラフ変換手段で作成
された前記コントロール/データフローグラフを動作条
件毎に分割してデータフローグラフを作成する条件分割
手段と、この条件分割手段により作成された前記データ
フローグラフを実行ステップに分割し、前記実行ステッ
プ毎に各演算ノードに対して記憶素子を挿入するスケジ
ューリング手段と、このスケジューリング手段により前
記実行ステップに分割された前記データフローグラフを
演算器の共有化と内部結線の共有化とを考慮して演算器
への割り付けを行うハードウェア割り付け手段とを含む
処理手段と、この処理手段によって合成された論理回路
を出力する出力手段とから構成されていることを特徴と
する。
【0029】この第1の発明によれば、条件分割手段を
設けたことにより共有化を行う際の試行回数が大幅に減
少し、計算時間を短縮することができると共に、ハード
ウェア割り付け手段において、演算器の共有化と内部結
線の共有化との両方を考慮して演算ノードを演算器に割
り付けるので、演算器の数と内部結線の本数を最少に抑
えることができ、論理回路の面積の削減と遅延時間を短
縮する効果がある。
【0030】第2の発明である論理回路の合成装置のハ
ードウェア割り付け手段では、スケジューリング手段に
より出力されたデータフローグラフの各ノードに対し
て、前記ノードの実行ステップが登録されていない演算
器の候補を探索し、前記演算器の候補が複数あるときに
はその候補の中から入力の接続あるいは出力の接続を共
有することのできる演算器を選択し、前記演算器の候補
が存在しない場合には演算器を追加して前記ノードを前
記演算器に割り付けることを特徴とする。
【0031】この第2の発明によれば、第1の発明によ
る論理回路の合成装置のハードウェア割り付け手段にお
いて、演算器の共有化と内部結線の共有化とをより効果
的に実現することができる。
【0032】第3の発明である論理回路の合成方法は、
入力された動作記述をコントロール/データフローグラ
フに変換するコントロール/データフローグラフ変換ス
テップと、このコントロール/データフローグラフ変換
ステップにより変換された前記コントロール/データフ
ローグラフを条件毎に分割してデータフローグラフを作
成する条件分割ステップと、この条件分割ステップによ
り作成された前記データフローグラフを実行ステップに
分割し、この実行ステップ毎に各演算ノードに対して記
憶素子を挿入するスケジューリングステップと、このス
ケジューリングステップにより前記実行ステップに分割
された前記データフローグラフを演算器の共有化と内部
結線の共有化とを考慮して演算器への割り付けを行うハ
ードウェア割り付けステップとを含み、前記スケジュー
リングステップと前記ハードウェア割り付けステップと
を全ての条件の前記データフローグラフに対して行って
論理回路を合成することを特徴とする。
【0033】この第3の発明によれば、第1の発明によ
る論理回路の合成装置と同様の効果を発揮する論理回路
の合成方法を実現することができる。
【0034】第4の発明である論理回路の合成方法のハ
ードウェア割り付けステップでは、入力が全て入力端子
に接続されているノードを1つ取り出すステップと、こ
のステップで取り出された前記ノードの実行ステップが
登録されていない演算器の候補を探索し、前記演算器の
候補が複数あるときにはその候補の中から入力の接続あ
るいは出力の接続を共有することのできる演算器を選択
し、前記演算器の候補が存在しない場合には演算器を追
加する探索ステップと、この探索ステップで選択され、
あるいは追加された演算器に前記ノードの実行ステップ
を登録するステップと、このステップで前記ノードの実
行ステップが登録された演算器の入力の接続を作成する
ステップと、このステップで入力の作成された演算器を
前記ノードを実行する演算器として登録するステップ
と、このステップにより実行する演算器が登録されてい
ないノードの中から入力が決定しているノードが存在す
るか探索し、存在する場合には前記入力が決定している
ノードを1つ取り出して前記探索ステップに戻り、存在
していない場合には論理回路の合成を終了するステップ
とを含んでいることを特徴とする。
【0035】この第4の発明によれば、第3の発明によ
る論理回路の合成方法のハードウェア割り付けステップ
において、演算器の共有化と内部結線の共有化とをより
効果的に実現することができる。
【0036】第5の発明である論理回路の合成プログラ
ムを記録したコンピュータ読み取り可能な記録媒体は、
入力された動作記述をコントロール/データフローグラ
フに変換するコントロール/データフローグラフ変換処
理と、このコントロール/データフローグラフ変換処理
により変換された前記コントロール/データフローグラ
フを条件毎に分割してデータフローグラフを作成する条
件分割処理と、この条件分割処理により作成された前記
データフローグラフを実行ステップに分割し、この実行
ステップ毎に各演算ノードに対して記憶素子を挿入する
スケジューリング処理と、このスケジューリング処理に
より前記実行ステップに分割された前記データフローグ
ラフを演算器の共有化と内部結線の共有化とを考慮して
演算器への割り付けを行うハードウェア割り付け処理と
を含み、前記スケジューリング処理と前記ハードウェア
割り付け処理とを全ての前記データフローグラフに対し
て行って論理回路を合成することを特徴とする。
【0037】この第5の発明によれば、第1の発明によ
る論理回路の合成装置と同様の効果を発揮する論理回路
の設計プログラムを記録したコンピュータ読み取り可能
な記録媒体を実現することができる。
【0038】第6の発明である論理回路の設計プログラ
ムを記録したコンピュータ読み取り可能な記録媒体のハ
ードウェア割り付け処理では、入力が全て入力端子に接
続されているノードを1つ取り出す処理と、この処理で
取り出された前記ノードの実行ステップが登録されてい
ない演算器の候補を探索し、前記演算器の候補が複数あ
るときにはその候補の中から入力の接続あるいは出力の
接続を共有することのできる演算器を選択し、前記演算
器の候補が存在しない場合には演算器を追加する探索処
理と、この探索処理で選択され、あるいは追加された演
算器に前記ノードの実行ステップを登録する処理と、こ
の処理で前記ノードの実行ステップが登録された演算器
の入力の接続を作成する処理と、この処理で入力の作成
された演算器を前記ノードを実行する演算器として登録
する登録処理と、この登録処理により実行する演算器が
登録されていないノードの中から入力が決定しているノ
ードが存在するか探索し、存在する場合には前記入力が
決定しているノードを1つ取り出して前記探索処理に戻
り、存在していない場合には論理回路の合成を終了する
処理とを含んでいることを特徴とする。
【0039】この第6の発明によれば、第5の発明によ
る論理回路の設計プログラムを記録したコンピュータ読
み取り可能な記録媒体のハードウェア割り付け処理にお
いて、演算器の共有化と内部結線の共有化とをより効果
的に実現することができる。
【0040】
【発明の実施の形態】以下、本発明に係る論理回路の合
成装置、その合成方法及び論理回路の合成プログラムを
記録したコンピュータ読み取り可能な記録媒体の実施形
態を図面に基づいて説明する。
【0041】図1は本実施形態の論理回路の合成装置の
構成を示すブロック図である。
【0042】図1に示すように、本実施形態の論理回路
の合成装置は、合成しようとする論理回路の入力データ
となる動作記述や各命令を入力する入力手段100と、
入力された動作記述をC/DFGに変換するC/DFG
変換手段210と、C/DFGを動作条件毎に分割し
て、データフローグラフ(DFG)を作成する条件分割
手段220と、DFGを実行ステップ毎に分割し、この
実行ステップ毎に各演算ノードに対して記憶素子を挿入
するスケジューリング手段230と、演算器の共有化と
内部結線の共有化とを行いながら、ノードを演算器に割
り付けて論理回路を合成するハードウェア割り付け手段
240と、合成された論理回路を出力する出力手段30
0とから構成されている。
【0043】なお、入力手段100は、キーボード、マ
ウス、ライトペン、又はフレキシブルディスク装置等が
含まれ、処理手段200は、各種の処理を行うためのC
PUと、この処理の命令を記憶する記憶手段とを含む通
常のコンピュータシステムが含まれ、また、出力手段3
00は、ディスプレイ装置やプリンタ装置等が含まれ
る。上記処理手段200に含まれるC/DFG変換手段
210、条件分割手段220、スケジューリング手段2
30、ハードウェア割り付け手段240の各処理の命令
やタイミング制約は記憶手段に保持されており、必要に
応じてCPUにロードされ、実行がなされる。通常の場
合、実行の制御は、操作者が入力手段100に対して命
令(コマンド)の入力を行うことにより行われる。
【0044】次に、本実施形態の論理回路の合成装置の
動作について説明することで、併せて本実施形態の論理
回路の合成方法についても説明する。
【0045】図2は本実施形態の論理回路の合成装置で
行われる処理を示したフローチャートである。
【0046】まず、入力手段100から動作記述が入力
されると、C/DFG変換手段210によって動作記述
がC/DFGに変換され(S21)、このC/DFGを
条件分割手段220によってDFGに分割する(S2
2)。そして、分割された各DFGに対してスケジュー
リング手段230によって実行ステップ毎に分割し、こ
の実行ステップ毎に各演算ノードに対して記憶素子を挿
入した後(S23)、ハードウェア割り付け手段240
により演算器の共有化と内部結線の共有化とを行いなが
ら、ノードを演算器に割り付ける(S24)。このスケ
ジューリング手段230とハードウェア割り付け手段2
40による処理が全ての条件のDFGに対して行われて
いるかを判断し(S25)、行われていない場合にはス
テップS23に戻り、行われている場合には論理回路の
合成は終了し、合成された論理回路が出力手段300に
より出力される。
【0047】以下、C/DFG変換手段210、条件分
割手段220、スケジューリング手段230、ハードウ
ェア割り付け手段240のそれぞれの手段において行わ
れる処理を図面を参照して詳細に説明する。ここでは、
従来技術との比較のため「従来の技術」で説明した図1
8の動作記述を本実施形態に係る論理回路の合成装置に
入力した場合について説明する。
【0048】まず、C/DFG変換手段210は従来と
同様なので図18の動作記述を入力すると、図19のC
/DFGが従来技術と同様に出力される。
【0049】次に条件分割手段220での処理を行う。
条件分割手段220ではC/DFGを各条件毎に分割し
てDFGを作成する。図19のC/DFGでは条件がT
rueとFalseの2つしかないので条件毎に分割す
ると、図3と図4の2つのDFGに分割される。図3は
条件がTrueのDFGであり、図4は条件がFals
eのDFGである。動作記述の中のif文の数が増えた
ような場合には条件の数が増え、従って分割されるDF
Gの数も増えることになる。
【0050】この図3のDFGに対してスケジューリン
グ手段230での処理を行う。スケジューリング手段で
は従来と同様に実行ステップ毎に分割し、この実行ステ
ップ毎に各演算ノードに対して記憶素子を挿入する処理
が行われるので、図3のDFGにスケジューリング手段
での処理を行うと図5の処理結果が得られる。同様の処
理を図4のDFGに対して行うと、図6の処理結果が得
られる。
【0051】次にハードウェア割り付け手段240での
処理を図7を参照して説明する。
【0052】図7は、ハードウェア割り付け手段240
で行われる処理を示したフローチャートである。ここで
は、図5に示した条件がTrueのDFGをハードウェ
アに割り付ける場合を例にして説明する。
【0053】まず、図5に示すDFGのノードの中か
ら、入力が全て入力端子(a,b,c,d)に接続され
ているノードを1つ取り出す(S71)。図5のDFG
の中では入力が全て入力端子に接続されているノード
は、演算ノード501、502、503があるが、ここ
では演算ノード501を取り出す。
【0054】そして、演算器の共有化と内部結線の共有
化とを考慮して演算ノード501を実行できる演算器が
論理回路中に存在するか否かについて探索し(S7
2)、存在する場合にはその演算器に実行ステップを登
録し(S73)、存在しない場合には演算器を追加して
(S74)その演算器に実行ステップを登録する(S7
3)。ここでは、最初の段階なので論理回路中に作成さ
れている加算器はまだ存在しない状態なので、演算器の
共有化や内部結線の共有化を考慮する必要はなく、図8
に示すように、加算器L1を論理回路に付加し、実行ス
テップとして1を加算器L1に登録する。実行ステップ
1を加算器L1に登録すると、加算器L1では実行ステ
ップ1に存在するその他の加算演算ノードを割り付ける
ことはできなくなる。
【0055】更に演算器L1の入力を入力端子a,bと
接続し(S75)、演算ノード501が実行される演算
器がL1であることを登録する(S76)。
【0056】次に、実行する演算器が登録されていない
ノードの中から、全ての入力が決定しているノードを1
つ取り出す(S77)。入力が決定しているノードと
は、ノードの全ての入力が、入力端子かあるいは実行さ
れる演算器の登録されているノードに接続されているノ
ードのことをいう。
【0057】そして、入力が決定しているノードが存在
しない場合にはハードウェア割り付け手段240の処理
を終了し、存在する場合には入力が決定しているノード
を1つ取りだしてステップS72に戻り(S78)、ス
テップS72からステップS78までの処理を繰り返し
行う。ここでは、レジスタノード504の入力は演算器
の登録されている演算ノード501に接続されているの
で決定していることになる。そこで、レジスタノード5
04を取り出してステップS72からステップS76の
処理を行うと、図8の状態で論理回路中にはレジスタが
作成されていないのでレジスタL2を論理回路に付加
し、実行ステップとして1を登録する。更に入力を演算
ノード501を実行する加算器L1と接続すると、図9
に示す状態となる。
【0058】次に、演算ノード507の入力はレジスタ
ノード504、505に接続されているが、レジスタノ
ード505は実行される演算器が登録されていないの
で、演算ノード507の入力は決定していない。従っ
て、演算ノード507を取り出すことはできない。そこ
で、入力の決定している演算ノード502を取り出す。
【0059】演算ノード502の処理では、論理回路中
に作成されている減算器がないので減算器L3を論理回
路に付加し、使用ステップとして1を登録して入力を入
力端子b,cと接続する。また、レジスタノード505
に対しても同様の処理を行うことにより図10の状態に
なる。
【0060】ここで、演算ノード507は入力が決定し
たので取り出すことができる(S78)。演算ノード5
07を取り出すと、ステップS72において演算器の共
有化と内部結線の共有化を考慮して演算ノード507を
実行できる演算器を探索するのであるが、論理回路中に
は加算器L1が存在し、しかも実行ステップ2が登録さ
れていないので、加算器L1で演算ノード507を実行
することができる。即ち、演算器の共有化を行うことが
できることになる。
【0061】そこで、加算器L1に実行ステップとして
2を登録して入力をレジスタノード504,505を実
行するレジスタL2、L4とそれぞれ接続すると図11
の状態になる。
【0062】次に、レジスタノード509を取り出す。
しかし、論理回路中に作成されているレジスタの中で、
実行ステップ2が登録されていないレジスタはレジスタ
L2、L4の2つがある。そこで、内部結線を増やすこ
とがないように内部結線の共有化を考慮して、レジスタ
ノード509の入力となる演算ノード507を実行する
演算器L1と接続されているレジスタL2を選択する。
このレジスタL2に実行ステップとして2を登録し、入
力は演算ノード507を実行する演算器L1とすでに接
続されているので、新たに接続する必要はない。この状
態を図12に示す。
【0063】このように、レジスタノード509に対す
る処理では、レジスタL2を共有化できたことと共に、
加算器L1とレジスタL2との間の内部結線を共有化す
ることができ、その結果内部結線の本数を減らすことが
できる。
【0064】次に、演算ノード511は未だ入力が決定
していないので、既に入力の決定している演算ノード5
03を取り出す。論理回路中に作成されている減算器L
3は存在しているが、実行ステップ1が登録されている
ので選択することができず、減算器L5を論理回路中に
追加し、実行ステップとして1を登録する。更に入力を
入力端子c,dと接続する。
【0065】以下、レジスタノード506に対してレジ
スタL6、演算ノード508に対して加算器L7を論理
回路中に追加して同様の処理を行った後の状態を示した
ものが図13である。
【0066】次に、レジスタノード510を取り出す。
ここでも、論理回路中に作成されているレジスタの中
で、実行ステップ2が登録されていないレジスタはL
4、L6の2つがある。その中で、レジスタノード51
0の入力となる演算ノード508を実行している加算器
L7と入力が接続されているレジスタがないので、ここ
では各レジスタL4、L6の出力をたどり、レジスタノ
ード510の出力となる演算ノード511と同タイプの
演算器、即ち加算器に接続しているレジスタL4を選択
する。選ばれたレジスタL4に実行ステップとして2を
登録し、更に入力を演算ノード508を実行する加算器
L7と接続する。この状態を図14に示す。
【0067】ここで、演算ノード511の入力が決定し
たので演算ノード511を取り出す。ところが、論理回
路中に作成されている加算器の中で、実行ステップ3が
登録されていない加算器が複数ある。そこで、入力とな
るレジスタノード509,510を実行するレジスタL
2,L4と接続のある加算器L1を選択する。そして、
実行ステップとして3を登録する。入力はレジスタノー
ド509,510を実行するレジスタL2,L4とすで
に接続されているので、接続する必要はない。
【0068】ここでも、レジスタノード510を処理す
る際に内部結線の共有化を考慮してレジスタL4を選択
してあったので、内部結線の共有化を行うことができ、
論理回路中の内部結線の本数を効果的に減らすことがで
きた。
【0069】最後に、出力を出力端子zと接続して図5
に示したDFGに対する処理が終了し、図15に示す状
態となる。
【0070】上述した処理と同様の処理を図6に示した
条件がFalseのDFGに対しても行うと、図16に
示す処理結果が得られる。図16が本実施形態により出
力される論理回路の合成結果である。
【0071】なお、上述した論理回路の合成方法を実現
するためのプログラムは記録媒体に保存することがで
き、この記録媒体をコンピュータシステムによって読み
込ませることにより、前記プログラムを実行してコンピ
ュータを制御しながら上述した論理回路の合成方法を実
現することができる。ここで、前記記録媒体とは、メモ
リ装置、磁気ディスク装置、光ディスク装置等、プログ
ラムを記録することができるような装置が含まれる。
【0072】
【発明の効果】従来技術により合成された論理回路を示
す図23と本実施形態により合成された論理回路を示す
図16とを比較して本発明の効果を説明する。
【0073】従来の方法で合成した論理回路を示す図2
3と本発明の方法で合成した論理回路を示す図16とを
比較してみると、演算器の個数は両方とも4個、レジス
タの個数も両方とも3個と同数であるが、マルチプレク
サについて比較すると、従来の図23では3入力のマル
チプレクサが2個、2入力のマルチプレクサが1個必要
になっている。これに対し、本発明の図16では2入力
のマルチプレクサが4個必要になっている。3入力のマ
ルチプレクサが2入力のマルチプレクサ2個と等しいこ
とを考えると、マルチプレクサの個数に関しては本発明
の方が少なくなっており、従って論理回路の面積の削減
が期待できると共に、論理回路の遅延時間の短縮につい
ても期待できる。
【0074】また、内部結線の本数についても図16に
示す本発明の処理結果である論理回路の方が少なくなっ
ていることが分かり、同様に論理回路の面積の削減と遅
延時間の短縮という効果が期待できる。
【0075】また、従来では「発明が解決しようとする
課題」でも説明したように、条件がM種類、各条件下で
動作する演算ノードの数がそれぞれN個あるC/DFG
をK個の演算器に割り付けようとする場合には、共有化
に際してNM+NMK回の試行が必要だったのに対し
て、本発明では条件毎に分割された各DFGに対して試
行するので、試行回数は各DFG中にあるN個の演算ノ
ードをK個ある演算器のどれに割り付けるかについて考
えて、まずKN回の試行をする。そして、DFGが条件
の数M個存在するのであるから、全体としての試行回数
は一つのDFGあたりの試行回数KNとDFGの個数M
を掛けたKMN回ということになる。従って、本発明で
は、共有化に際してKNM回の試行が必要ということに
なる。
【0076】ここで、従来のNM+NMK回と本発明の
KNM回とを比較すると、従来ではN,Mの大きさが増
大するに従って指数関数的に増加するNMの項を含むの
で、従来の場合の試行回数が圧倒的に大きな数となる。
従って、本発明の方法を用いることで論理回路を合成す
る際に試行する回数が大幅に減少し、計算時間を大幅に
短縮できることが分かる。
【0077】以上説明したように、本発明の論理回路の
合成装置及びその合成方法は、条件分割手段を設けたこ
とにより共有化を行う際の試行回数が大幅に減少し、計
算時間を短縮することができる。
【0078】また、ハードウェア割り付け手段におい
て、演算器の共有化と内部結線の共有化との両方を考慮
して演算ノードを演算器に割り付けるので、演算器の数
と内部結線の本数を最少に抑えられ、論理回路の面積の
削減と遅延時間の短縮の効果が期待できる。
【図面の簡単な説明】
【図1】本発明による論理回路の合成装置の一実施の形
態の構成を示すブロック図である。
【図2】本発明による論理回路の設計装置及びその設計
方法での処理を表すフローチャートである。
【図3】本発明の条件分割手段により分割された条件が
TrueのDFGを示す図である。
【図4】本発明の条件分割手段により分割された条件が
FalseのDFGを示す図である。
【図5】本発明のスケジューリング手段により処理され
た条件がTrueのDFGを示す図である。
【図6】本発明のスケジューリング手段により処理され
た条件がFalseのDFGを示す図である。
【図7】本発明による論理回路の合成装置及びその合成
方法のハードウェア割り付け手段での処理を表すフロー
チャートである。
【図8】本発明のハードウェア割り付け手段において演
算器を割り付ける処理の一例を示す図であり、演算ノー
ド501を割り付けた場合の図である。
【図9】図8の論理回路にレジスタノード504を割り
付けた場合の図である。
【図10】図9の論理回路に演算ノード502、レジス
タノード505を割り付けた場合の図である。
【図11】図10の論理回路に演算ノード507を割り
付けた場合の図である。
【図12】図11の論理回路にレジスタノード509を
割り付けた場合の図である。
【図13】図12の論理回路に演算ノード503、50
8、レジスタノード506を割り付けた場合の図であ
る。
【図14】図13の論理回路にレジスタノード510を
割り付けた場合の図である。
【図15】図14の論理回路に演算ノード511を割り
付けた場合の図である。
【図16】本実施形態による論理回路の合成装置による
処理結果を示す図である。
【図17】従来の論理回路の合成方法の処理を示すフロ
ーチャートである。
【図18】論理回路の合成装置及びその合成方法におい
て処理する動作記述の一例を示す図である。
【図19】図18の動作記述をC/DFG変換手段で変
換したC/DFGを示す図である。
【図20】図19のC/DFGをスケジューリング手段
で処理した結果を示す図である。
【図21】従来のハードウェア割り付け手段で行われる
共有化を示す図である。
【図22】図20のC/DFGにハードウェア割り付け
手段によりハッチング処理をした後のC/DFGを示す
図である。
【図23】従来の論理回路の合成方法による処理結果を
示す図である。
【図24】従来の論理回路の合成方法により行われる共
有化の計算量を説明するための図であって、(a)はC
/DFGを簡略化して表した図であり、(b)は論理回
路を簡略化して表した図である。
【符号の説明】
100 入力手段 200 処理手段 210、171 C/DFG変換手段 220 条件分割手段 230、172 スケジューリング手段 240、173 ハードウェア割り付け手段 300 出力手段 501、507、508、511、601、604、6
11、612、613、614、619、620 加算
演算ノード 502、503、602、603、605 減算演算ノ
ード 504、505、506、509、510、606、・
・・、610、615、・・・、618 レジスタ L1、L2、・・・、L7 演算器

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 合成しようとする論理回路に関するデー
    タの記述された動作記述を入力する入力手段と、 この入力手段により入力された前記動作記述をコントロ
    ール/データフローグラフに変換するコントロール/デ
    ータフローグラフ変換手段と、このコントロール/デー
    タフローグラフ変換手段で作成された前記コントロール
    /データフローグラフを動作条件毎に分割してデータフ
    ローグラフを作成する条件分割手段と、この条件分割手
    段により作成された前記データフローグラフを実行ステ
    ップに分割し、前記実行ステップ毎に各演算ノードに対
    して記憶素子を挿入するスケジューリング手段と、この
    スケジューリング手段により前記実行ステップに分割さ
    れた前記データフローグラフを演算器の共有化と内部結
    線の共有化とを考慮して演算器への割り付けを行うハー
    ドウェア割り付け手段とを含む処理手段と、 この処理手段によって合成された論理回路を出力する出
    力手段とから構成されている論理回路の合成装置。
  2. 【請求項2】 前記ハードウェア割り付け手段は、 前記スケジューリング手段により出力された前記データ
    フローグラフの各ノードに対して、前記ノードの実行ス
    テップが登録されていない演算器の候補を探索し、前記
    演算器の候補が複数あるときにはその候補の中から入力
    の接続あるいは出力の接続を共有することのできる演算
    器を選択し、前記演算器の候補が存在しない場合には演
    算器を追加して、前記ノードを前記演算器に割り付ける
    ことを特徴とする請求項1に記載の論理回路の合成装
    置。
  3. 【請求項3】 入力された動作記述をコントロール/デ
    ータフローグラフに変換するコントロール/データフロ
    ーグラフ変換ステップと、 このコントロール/データフローグラフ変換ステップに
    より変換された前記コントロール/データフローグラフ
    を条件毎に分割してデータフローグラフを作成する条件
    分割ステップと、 この条件分割ステップにより作成された前記データフロ
    ーグラフを実行ステップに分割し、この実行ステップ毎
    に各演算ノードに対して記憶素子を挿入するスケジュー
    リングステップと、 このスケジューリングステップにより前記実行ステップ
    に分割された前記データフローグラフを演算器の共有化
    と内部結線の共有化とを考慮して演算器への割り付けを
    行うハードウェア割り付けステップとを含み、前記スケ
    ジューリングステップと前記ハードウェア割り付けステ
    ップとを全ての条件の前記データフローグラフに対して
    行って論理回路を合成することを特徴とする論理回路の
    合成方法。
  4. 【請求項4】 前記ハードウェア割り付けステップは、 入力が全て入力端子に接続されているノードを1つ取り
    出すステップと、 このステップで取り出された前記ノードの実行ステップ
    が登録されていない演算器の候補を探索し、前記演算器
    の候補が複数あるときにはその候補の中から入力の接続
    あるいは出力の接続を共有することのできる演算器を選
    択し、前記演算器の候補が存在しない場合には演算器を
    追加する探索ステップと、 この探索ステップで選択され、あるいは追加された演算
    器に前記ノードの実行ステップを登録するステップと、 このステップで前記ノードの実行ステップが登録された
    演算器の入力の接続を作成するステップと、 このステップで入力の作成された演算器を前記ノードを
    実行する演算器として登録するステップと、 このステップにより実行する演算器が登録されていない
    ノードの中から入力が決定しているノードが存在するか
    探索し、存在する場合には前記入力が決定しているノー
    ドを1つ取り出して前記探索ステップに戻り、存在して
    いない場合には論理回路の合成を終了するステップとを
    含んでいることを特徴とする請求項3に記載の論理回路
    の合成方法。
  5. 【請求項5】 入力された動作記述をコントロール/デ
    ータフローグラフに変換するコントロール/データフロ
    ーグラフ変換処理と、 このコントロール/データフローグラフ変換処理により
    変換された前記コントロール/データフローグラフを条
    件毎に分割してデータフローグラフを作成する条件分割
    処理と、 この条件分割処理により作成された前記データフローグ
    ラフを実行ステップに分割し、この実行ステップ毎に各
    演算ノードに対して記憶素子を挿入するスケジューリン
    グ処理と、 このスケジューリング処理により前記実行ステップに分
    割された前記データフローグラフを演算器の共有化と内
    部結線の共有化とを考慮して演算器への割り付けを行う
    ハードウェア割り付け処理とを含み、前記スケジューリ
    ング処理と前記ハードウェア割り付け処理とを全ての条
    件の前記データフローグラフに対して行って論理回路を
    合成することを特徴とする論理回路の合成プログラムを
    記録したコンピュータ読み取り可能な記録媒体。
  6. 【請求項6】 前記ハードウェア割り付け処理は、 入力が全て入力端子に接続されているノードを1つ取り
    出す処理と、 この処理で取り出された前記ノードの実行ステップが登
    録されていない演算器の候補を探索し、前記演算器の候
    補が複数あるときにはその候補の中から入力の接続ある
    いは出力の接続を共有することのできる演算器を選択
    し、前記演算器の候補が存在しない場合には演算器を追
    加する探索処理と、 この探索処理で選択され、あるいは追加された演算器に
    前記ノードの実行ステップを登録する処理と、 この処理で前記ノードの実行ステップが登録された演算
    器の入力の接続を作成する処理と、 この処理で入力の作成された演算器を前記ノードを実行
    する演算器として登録する処理と、 この処理により実行する演算器が登録されていないノー
    ドの中から入力が決定しているノードが存在するか探索
    し、存在する場合には前記入力が決定しているノードを
    1つ取り出して前記探索処理に戻り、存在していない場
    合には論理回路の合成を終了する処理とを含んでいるこ
    とを特徴とする請求項5に記載の論理回路の合成プログ
    ラムを記録したコンピュータ読み取り可能な記録媒体。
JP9167431A 1997-06-24 1997-06-24 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体 Pending JPH1115865A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9167431A JPH1115865A (ja) 1997-06-24 1997-06-24 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9167431A JPH1115865A (ja) 1997-06-24 1997-06-24 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JPH1115865A true JPH1115865A (ja) 1999-01-22

Family

ID=15849588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9167431A Pending JPH1115865A (ja) 1997-06-24 1997-06-24 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JPH1115865A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324680B1 (en) * 1999-08-30 2001-11-27 International Business Machines Corporation Synthesis of arrays and records
US7728047B2 (en) 2005-07-22 2010-06-01 Polimeri Europa S.P.A. Process for the recycling of expanded polystyrene
JP2013127751A (ja) * 2011-12-19 2013-06-27 Fujitsu Semiconductor Ltd 集積回路最適化プログラム及び集積回路最適化装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324680B1 (en) * 1999-08-30 2001-11-27 International Business Machines Corporation Synthesis of arrays and records
US7728047B2 (en) 2005-07-22 2010-06-01 Polimeri Europa S.P.A. Process for the recycling of expanded polystyrene
JP2013127751A (ja) * 2011-12-19 2013-06-27 Fujitsu Semiconductor Ltd 集積回路最適化プログラム及び集積回路最適化装置

Similar Documents

Publication Publication Date Title
US6336209B1 (en) Information processing system that processes portions of an application program using programmable logic circuits
US6415430B1 (en) Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
US4964056A (en) Automatic design system of logic circuit
US5706205A (en) Apparatus and method for high-level synthesis of a logic circuit
JPH0668197A (ja) 論理自動生成方法
US6604232B2 (en) High-level synthesis method and storage medium storing the same
EP0295646B1 (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
US6360355B1 (en) Hardware synthesis method, hardware synthesis device, and recording medium containing a hardware synthesis program recorded thereon
JP2689908B2 (ja) 初期化可能非同期回路設計を合成する方法
US6625799B2 (en) Technology mapping method and storage medium
JPH10256383A (ja) 半導体装置及びその回路構成方法
JPH1115865A (ja) 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11232079A (ja) 情報処理システム
JP3602697B2 (ja) 論理回路設計支援システム
JP2001209670A (ja) 高位合成方法、および、高位合成方法の実施に使用される記録媒体
JPH07141192A (ja) 翻訳処理方法
JP2877087B2 (ja) 類似部分回路抽出を用いた論理合成方法及び論理合成装置
JP2001043251A (ja) 高位合成装置および高位合成方法並びにそれに用いられる記録媒体
US6430726B1 (en) Logic circuit synthesizing method and logic synthesizing system
JP2714015B2 (ja) 論理回路合成装置
JPH0451367A (ja) 論理回路の合成装置
KR19990068124A (ko) 논리 시뮬레이션 모델의 작성방법,장치 및 기록매체
JP2005107575A (ja) 大規模集積回路の設計方法
JP2925160B2 (ja) 論理合成方式
KR0157926B1 (ko) 집적 회로의 클럭 주기 최소화 방법