JP2001229217A - 高位合成方法およびその実施に使用される記録媒体 - Google Patents

高位合成方法およびその実施に使用される記録媒体

Info

Publication number
JP2001229217A
JP2001229217A JP2000042083A JP2000042083A JP2001229217A JP 2001229217 A JP2001229217 A JP 2001229217A JP 2000042083 A JP2000042083 A JP 2000042083A JP 2000042083 A JP2000042083 A JP 2000042083A JP 2001229217 A JP2001229217 A JP 2001229217A
Authority
JP
Japan
Prior art keywords
node
cdfg
input
circuit
output
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
JP2000042083A
Other languages
English (en)
Other versions
JP3722351B2 (ja
Inventor
Kazuhisa Okada
和久 岡田
Koichi Nishida
浩一 西田
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2000042083A priority Critical patent/JP3722351B2/ja
Priority to US09/741,057 priority patent/US6604232B2/en
Priority to GB0103907A priority patent/GB2367159B/en
Publication of JP2001229217A publication Critical patent/JP2001229217A/ja
Application granted granted Critical
Publication of JP3722351B2 publication Critical patent/JP3722351B2/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

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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 高位合成に必要な処理時間を短くし、高位合
成時において、遅延時間の見積り精度を高めることがで
き、高位合成した回路の動作速度を速くすることがで
き、さらに、高位合成した回路の規模を小さくすること
ができる。 【解決手段】 処理の動作のみを記述した動作記述を、
演算を示す節点とデータの流れを示す入出力枝とによっ
て構成されるコントロールデータフローグラフ(CDF
G)に変換する際に、CDFGに含まれる部分CDFG
を、予め論理合成し、論理合成して得られる回路を1つ
の節点として扱う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はLSIの動作記述か
らディジタル回路を自動合成する高位合成方法およびそ
の実施に使用される記録媒体に関する。
【0002】
【従来の技術】従来から、ASIC(Applicat
ion Specific Integrated C
ircuits:特定用途向けIC)の設計等、短期間
の設計を要求される場合に、高位合成方法が特に有効な
技術として知られている。
【0003】高位合成とは、ハードウェアの構造に関す
る情報を含まずに、処理のアルゴリズムのみを記述した
動作記述から、回路を自動的に合成する技術である。な
お、高位合成技術の詳細を記した文献としては、「Kl
uwer AcademicPublishers」に
よる「High Level Synthesis」等
がある。
【0004】以下、例えば、次の(1)式に示す動作記
述から回路を自動的に高位合成する方法について説明す
る。
【0005】x=(a+b)*(b+c) …(1) 高位合成方法は、通常、図1に示すフローチャートの手
順に従って実施され、まず、動作記述の実行の制御の流
れと、データの流れとを解析し、CDFG(Contr
ol Data Flow Graph)と呼ばれるモ
デルに変換する(図1のステップS1参照)。CDFG
とは、プログラムのフローチャートに類似したグラフで
ある。CDFGは、節点と入出力枝とによって構成され
る。入出力枝は、データまたはコントロール信号を表
し、節点は演算を表わす。演算の入出力は、節点の入出
力枝に対応する。
【0006】例えば、(1)式に示す動作記述は、図2
に示すCDFGで表わされる。図2のCDFGは、加算
を表わす2つの第1および第2の加算節点11および1
2と、乗算を表わす1つの乗算節点13を含み、入力
「a」および「b」を加算した結果と、入力「b」およ
び「c」を加算した結果とを乗算し、その結果が出力
「x」であることを表している。
【0007】(1)式に示す動作記述が図2に示すCD
FGに変換されると、スケジューリングが実施される
(図1のステップS2参照)。スケジューリングとは、
CDFGの節点に対応する演算をいつ実行するか、すな
わち、どのクロックステップで実行するかを決定するこ
とである。この場合に、各演算の遅延時間を考慮して、
全ての節点がクロック周期内に収まるようにする必要が
ある。
【0008】図2のCDFGをスケジューリングした一
例を図3に示す。図3のスケジューリング結果では、2
つの加算と1つの乗算を、1つのクロックステップ(s
tep1)で実行するようスケジューリングされてい
る。この場合、データ依存関係にある演算の遅延時間の
合計は、1つのクロックステップのステップ周期を超え
ないようにスケジューリングされる。例えば、加算器の
遅延時間が5(nsec)、乗算器の遅延時間が60
(nsec)の場合、クロック周期が65(nsec)
以上の場合には、図3に示すように、1つのクロックス
テップ(step1)に全ての演算をスケジューリング
することができる。
【0009】また、異なるクロックステップにそれぞれ
スケジューリングされた同一の演算は、1つの演算器に
よって実行することができる。このために、図5に示す
ように、第1の加算を示す第1の加算節点11と、第2
の加算を示す第2の加算節点12とを、異なるクロスス
テップstep1およびにstep2にてスケジューリ
ングして、1つの加算器を生成することもできる。この
場合、前述したように、クロック周期が65(nse
c)以上であれば、遅延時間が5(nsec)の第2の
加算と、遅延時間が60(nsec)の乗算とを、第2
のクロスステップstep2にスケジューリングしても
問題はない。
【0010】動作記述がスケジューリングされると、ア
ロケーションが実行される(図1のステップS3参
照)。アロケーションとは、スケジューリングされたC
DFGの実行に必要な演算器およびレジスタをそれぞれ
生成して、CDFGの演算に演算器を割り当て、また、
隣接するクロックステップの境界を横切る入出力枝に、
レジスタ、セレクタ等を割り当てる処理である。そし
て、アロケーション処理することによって、(1)式に
示す動作記述を実行する回路が生成される(図1のステ
ップS4参照)。
【0011】図3のスケジューリング結果は、図4に示
すように、第1および第2の加算に対して、第1の加算
器14および15がそれぞれ生成されて、第1および第
2の加算節点11および12に割り当てられるととも
に、乗算に対して乗算器16が生成されて、乗算節点1
3に割り当てられる。この場合、隣接するクロックステ
ップの境界を横切る入出力枝が存在しないために、レジ
スタおよびセレクタは生成されない。
【0012】これに対して、図5のスケジューリング結
果では、図6に示すように、異なるクロックステップs
tep1および2に、第1および第2の加算に対する第
1および第2の加算節点11および12がそれぞれスケ
ジューリングされているために、これらの加算節点11
および12に対して、1つの加算器14のみが生成され
る。また、クロックステップstep1およびstep
2の境界を横切る入出力枝21および22が存在するた
めに、各入出力枝21および22に対して、セレクタ
(図において「sel」で示す)23およびレジスタ
(図においては、「reg」で示す)24がそれぞれ生
成される。
【0013】図6に示す回路では、入力「a」および
「b」がセレクタ23にそれぞれ入力されて、セレクタ
23の出力が加算器14に与えられている。加算器14
には、入力「b」も与えられており、加算器14の出力
が、レジスタ24および乗算器16にそれぞれ与えられ
ている。この場合、生成されたセレクタ23およびレジ
スタ24それぞれに対するコントロール信号を生成する
コントローラ(図において「controller」で
示す)25が生成される。コントローラ25は、セレク
タ23に対してセレクタ信号k1を出力し、セレクタ2
3は、セレクト信号k1が「1」の場合に入力「a」
を、セレクト信号k1が「0」の場合に入力「b」をそ
れぞれ出力する。また、コントローラ25は、レジスタ
24に対してイネーブル信号k2を出力し、レジスタ2
4は、イネーブル信号k2が「1」の場合に、クロック
が立ち上がる瞬間の入力の値を記憶し、イネーブル信号
k2が「0」の場合には、記憶している値を保持して、
その保持された値を出力する。
【0014】図6の回路の動作を説明する。クロックス
テップstep1では、セレクト信号k1とイネーブル
信号k2は、共に「1」とされ、セレクタ23は、入力
「a」を選択して加算器14に出力する。これにより、
加算器14は、各入力「a」および「b」の加算値「a
+b」をレジスタ24に出力する。レジスタ24は、イ
ネーブル信号k2が「1」であるために、レジスタ24
の出力「a+b」が記憶される。
【0015】クロックステップstep2では、セレク
ト信号k1およびイネーブル信号k2は、共に「0」と
され、セレクタ23は、入力「c」を選択して加算器1
4に出力する。これにより、加算器14は、各入力
「c」および「b」の加算値「c+b」を乗算器24に
出力する。この場合、レジスタ24に対するイネーブル
信号k2が「0」になっているために、保持されている
値「a+b」を乗算器16に出力する。乗算器16は、
与えられる値「c+b」および「a+b」を乗算して、
その積をxとして出力する。
【0016】図4に示す回路では、1クロックステップ
(たとえば100nsec内)によって動作記述の処理
が終了するが、2つの加算器14および15が2つ必要
である。これに対して、図6に示す回路では、2クロッ
クステップ(たとえば200nsec)が必要である
が、1つの加算器14を使用するだけでよい。このよう
に、高位合成方法では、高速な回路が必要な場合には、
図4に示す回路、小面積な回路が必要な場合には、図6
に示す回路がそれぞれ生成される。
【0017】図5に示すスケジューリング結果では、2
つの加算を1つの加算器で実行できることが理解され
る。しかしながら、演算が多くなると、どの演算とどの
演算を1つの演算器で実行するかを決定する手順が必要
になる。この手順がアロケーションである。スケジュー
リング、アロケーションは、高位合成の分野では周知で
ある(前述の「High Level Synthes
is」参照)。
【0018】次に、動作記述が条件分岐を含む場合につ
いて説明する。条件分岐を含む動作記述を高位合成する
方法は、条件分岐を制御するためのコントロール信号を
生成する必要があるが、基本的には、条件分岐を含まな
い図1の高位合成方法と同様である。この方法として
は、例えば、特開平11−250112号公報に開示さ
れている。
【0019】以下、図7に示す条件分岐を含む動作記述
の高位合成方法について説明する。図7に示す動作記述
では、条件(if)「d>e」の場合は、x=a−bで
あり、その他の条件の場合(else)は、x=a*
(b−c)である。この場合のCDFGをスケジューリ
ングすると、図8に示すように、条件分岐としてIF節
点32を含むものとなる。
【0020】図8に示すように、クロックステップst
ep1には、比較を示す比較節点31がスケジューリン
グされており、クロックステップstep2には、IF
節点32がスケジューリングされている。比較節点31
には、入力「d」および「e」からの入出力枝が接続さ
れており、また、コントロール信号kを与えるコントロ
ール入出力枝33が接続されている。図8では、コント
ロール入出力枝33を点線で表している。
【0021】また、クロックステップstep2にスケ
ジューリングされたIF節点32は、内部に第1および
第2の副CDFG34および35を有している。第1の
副CDFG34は、IF節点を含むことができる。第1
の副CDFG34は、コントロール信号kが「1」
(真)の時に実行され(「true」で表す)、第2の
副CDFG35は、コントロール信号kが「0」(偽)
の時に実行される(「false」で表す)。このよう
に、比較節点31およびIF節点32は、コントローラ
が必要になるために、それぞれ異なるクロックステップ
にスケジューリングされている。
【0022】「true」で表された副CDFG34
は、入力「a」および「b」が入力される第1の減算節
点36が設けられており、「false」で表される副
CDFG35には、第2の減算節点37および乗算節点
38がそれぞれ設けられている。第2の減算節点37に
は、入力「b」および「c」からの入出力枝が接続され
ており、乗算節点38には、入力「a」および第1の減
算節点37からの入出力枝が接続されいる。各副CDF
G34および35は、同時に実行されないため、それぞ
れに設けられた第1および第2の各減算節点36および
37に対して1つの減算器45(図9参照)がアロケー
ションされる。
【0023】図8に示すスケジューリング結果を実行す
る回路は、図9のようになる。図9に示す回路では、比
較節点31として、比較器41がアロケーションされて
おり、入力「a」および「b」に対しては第1のセレク
タ43が、また、入力「b」および「c」に対しては、
第2のセレクタ44が割り当てられている。また、第1
および第2の減算節点36および37に対して、1つの
減算器45が割り当てられており、乗算節点38に対し
て乗算器46が割り当てられている。そして、減算器4
5および乗算器46の出力に対して第3のセレクタ47
が割り当てられている。第1〜第3の各セレクタ43、
44、47は、コントローラ42からのコントロール信
号kによって、それぞれ制御される。コントロール信号
kが値「1」の場合には、第1のセレクタ43は、入力
「a」、第2のセレクタ44は、入力「b」、第3のセ
レクタ47は、減算器45の出力を、それぞれ選択す
る。
【0024】このような回路の動作について説明する。
クロックステップstep1において、入力「d」およ
び「e」が、比較器41により比較され、その結果が、
コントローラ42に入力される。コントローラ42は、
比較器41から入力される比較結果に基づいて、コント
ロール信号kを生成し、次のクロックステップstep
2において出力する。コントロール信号kは、比較器4
1の比較結果が、「d<e」の場合には、値「1」
(真)を出力し、それ以外の場合には、値「0」(偽)
を出力する。クロックステップstep2において、コ
ントロール信号kが値「1」の場合には、第1および第
2のセレクタ41および42は、それぞれ、入力「a」
および「b」を選択するために、減算器45は、「a−
b」の減算を実行し、第3のセレクタ47は、減算器4
5の出力を選択して、減算器45による減算結果「a−
b」が出力「x」とされる。
【0025】これに対して、コントロール信号kの値が
「0」の場合には、第1および第2のセレクタ43およ
び44は、入力「b」および「c」をそれぞれ選択し
て、減算器45は、「b−c」の減算を実行する。そし
て、この減算結果が、乗算器46に与えられて、乗算器
は、減算器45による減算結果と、入力「a」との乗算
結果を第3のセレクタ47に出力する。第3のセレクタ
47は、乗算器46の出力を選択して、乗算器46によ
る乗算「a*(b−c)」が出力「x」とされる。
【0026】
【発明が解決しようとする課題】高位合成方法における
スケジューリングおよびアロケーションは、非常に複雑
な処理である。このため、1つの動作記述が多数の演算
を含む場合、CDFG中の節点数が多数になり、計算機
を用いて高位合成を行う場合に、非常に長い処理時間が
必要になる。
【0027】また、高位合成に際しては、CDFG中の
各節点の遅延時間に対応する演算器の遅延時間に基づい
て、演算時間が算出される。例えば、図10に示すよう
に、クロック周期の時間が、例えば10(nsec)内
に、遅延時間が2(nsec)の第1および第2の「N
OT」節点51および52と、遅延時間が8(nse
c)の「AND」節点53がスケジューリングされてい
る場合に、このスケジューリング結果に対応する回路
は、図11(a)のように、「NOT」節点51および
52に対して「NOT」演算器54および55がそれぞ
れ割り当てられるとともに、「AND」節点53に、
「AND」演算器56が割り当てられる。
【0028】この場合、論理合成によって、図11
(b)に示すように、一対の「NOT」演算器51およ
び52と、1つの「AND」演算器とが、1つの「NO
R」演算器57に最適化される可能性がある。その結
果、1つの「NOR」演算器57の遅延時間は6(ns
ec)になり、高位合成時において見積もられた遅延時
間10(nsec)とは誤差が生じることになる。すな
わち、高位合成時においては、遅延時間を必要以上に大
きく見積ることになり、CDFG全体をスケジューリン
グした際に、必要なステップ数が必要以上に増加するこ
とになり、生成される回路の動作が遅くなる可能性があ
る。
【0029】さらに、高位合成では、図6に示すよう
に、演算器である加算器14の前にセレクタ23が挿入
される可能性があるが、このように、セレクタ23が加
算器14等の演算器の前に挿入されることにより、遅延
時間が増加して、回路が正常に動作しなくなるおそれが
ある。
【0030】また、図7に示すように、条件分岐を含む
動作記述を高位合成する場合に、条件分岐節点の入出力
枝が多数になっていると、図9に示すように、合成した
回路が多数のセレクタを含むことになり、回路規模が大
きくなるという問題もある。
【0031】さらにまた、図9に示すように、条件分岐
のコントロール信号をコントローラ42で生成する場合
は、コントローラ42は、通常、クロックに同期して動
作するため、条件分岐本体を実行する前のクロックステ
ップにおいて、条件を決定しておく必要がある。従っ
て、条件分岐のコントロール信号を生成するクロックス
テップと、条件分岐本体を実行するクロックステップと
を、図8に示すように、別にする必要がある。その結
果、回路動作を高速化することができなくなるおそれも
ある。
【0032】本発明は、このような問題を解決するもの
であり、その目的は、高位合成に必要な処理時間を短く
することができるとともに、高位合成時において、遅延
時間の見積り精度を高めることができ、また、高位合成
した回路の動作速度を速くすることができるとともに、
高位合成した回路の規模を小さくすることができる高位
合成方法を提供することにある。
【0033】
【課題を解決するための手段】上記の問題を解決するた
めに、本発明の請求項1記載の高位合成方法は、処理の
動作のみを記述した動作記述を、演算を示す節点とデー
タの流れを示す入出力枝とによって構成されるコントロ
ールデータフローグラフ(CDFG)に変換するCDF
G変換工程と、該CDFG変換工程にて得られたCDF
Gをスケジューリング工程と、該スケジューリング工程
にてスケジューリングされたCDFGの実行に必要な演
算器、セレクタ等をそれぞれ割り当てるアロケーション
工程とを包含する高位合成方法であって、前記CDFG
変換工程において、CDFGに含まれる部分CDFG
を、予め論理合成し、論理合成して得られる回路を1つ
の節点として扱うことを特徴とする。
【0034】本発明の請求項2記載の高位合成方法で
は、前記部分CDFGは、条件分岐に対応したものであ
る。
【0035】本発明の請求項3記載の高位合成方法で
は、前記部分CDFGは、条件が成立する場合としない
場合の処理が同一のクロック周期で終了するものであ
る。
【0036】本発明の請求項4記載の高位合成方法で
は、前記部分CDFGに含まれる特定の節点を、条件分
岐に対応するCDFGの外部に配置する。
【0037】本発明の請求項5記載の高位合成方法で
は、前記部分CDFGを分割することによって、その部
分CDFGに含まれる特定の節点を、該部分CDFGの
外部に配置する。
【0038】本発明の請求項6記載の高位合成方法で
は、前記アロケーション工程において前記部分CDFG
に同一の演算器が複数割り当てられる場合に、その1つ
の演算器の面積がセレクタの面積の定数倍以上の場合
に、その演算器に対応する節点を、条件分岐に対応する
CDFGの外部に配置する。
【0039】本発明の請求項7記載の記録媒体は、請求
項1に記載の高位合成方法の手順がプログラムされてい
ることを特徴とする。
【0040】
【発明の実施の形態】本発明の実施の一形態について図
面に基づいて説明する。
【0041】<実施の形態1>本実施の形態の高位合成
方法は、図12に示すフローチャートの手順に従って実
施される。以下、図7に示す動作記述に基づいて高位合
成を行なう場合について説明する。図7に示す動作記述
は、条件(if)「d>e」の場合は、x=a−bであ
り、その他の条件の場合(else)は、x=a*(b
−c)である。
【0042】本実施の形態の高位合成方法では、まず、
このような動作記述の制御の流れと、データの流れとを
解析して、動作記述を、CDFG(Control D
ata Flow Graph)と呼ばれるモデルに変
換する(図12のステップS11参照、以下同様)。そ
して、CDFGの一部を論理合成することによって(ス
テップS12)、CDFGを変更する(ステップS1
3)。その後は、従来の高位合成方法と同様に、変更さ
れたCDFGをスケジューリングし(ステップS1
4)、その後にアロケーションすることによって(ステ
ップS15)、回路を生成する(ステップS16)。
【0043】図7に示す動作記述のCDFGをスケジュ
ーリングすると、図8に示すように、条件分岐としてI
F節点32を含むものとなる。図8に示すスケジューリ
ング結果は、従来技術において説明した通りであるの
で、その説明を省略する。
【0044】本実施の形態では、図8に示すスケジュー
リング結果において、CDFGの一部であるIF節点3
2内を論理合成して組合せ論理回路を生成する。図13
は、IF節点32において、論理合成して生成された組
合せ論理回路を示している。
【0045】図13に示す第1の部分回路61は、IF
節点32の条件が「真」の場合に実行される副CDFG
34(図8参照)を、組合せ論理回路で実現したもので
ある。この第1の部分回路61には、第1の減算器63
が設けられており、第1の減算器63に、入力「a」お
よび「b」がそれぞれ入力されている。
【0046】また、図13に示す第2の部分回路62
は、IF節点32の条件が「偽」の場合に実行される副
CDFG35(図8参照)を、組合せ論理回路で実現し
たものである。この第2の部分回路62には、第2の減
算器64および乗算器65がそれぞれ設けられており、
第2の減算器64に、入力「b」および「c」が入力さ
れている。乗算器65には、入力「a」と第2減算器6
4の出力とが、入力されている。
【0047】また、第1の減算器63の出力は、第1の
部分回路61の出力になっており、乗算器65の出力
は、第2の部分回路62の出力になっている。そして、
第1および第2の部分回路61および62の出力が、セ
レクタ66に入力されており、セレクタ66の出力が回
路全体の出力とされている。セレクタ66のセレクト信
号kは、IF節点32のコントロール入力が、コントロ
ーラを介することなく直接セレクト66に入力されてい
る。
【0048】次に、IF節点32内を論理合成して得ら
れる組合せ論理回路に対応する節点を準備する。図13
に示すIF節点32は、図14に示すように、CIF
(Combinational IF)節点67とされ
る。このCIF節点67は、IF節点32の組合せ論理
回路における4つの入力「k」、「a」、「b」「c」
と1つの出力「x」に対応して、4つの入力枝と1つの
出力枝が設けられる。
【0049】図13に示す回路は、組合せ論理回路であ
るため、CDFGにおいては、加算や減算などの演算と
同様に扱うことができる。
【0050】図8に示すCDFGのIF節点32を、図
14に示すCIF節点67に置き換えると、図15に示
すCDFGとなる。図8のCDFGは、比較の節点3
1、2つの減算節点36および37、乗算節点38、お
よび、IF節点31の合計5つの節点を含むのに対し
て、IF節点32をCIF節点67に置き換えることに
よって、図15に示すCDFGでは、比較節点31とC
IF節点67の2つの節点しか含まない。このように、
本実施の形態によりCDFGに含まれる節点数が減少
し、高位合成時のスケジューリング、アロケーションな
どの処理に必要な時間を短くすることができる。
【0051】また、図15に示すCIF節点67に対応
する回路は既に論理合成されているため、図13に示す
回路における各入力「a」、「b」、「c」、「k」か
ら出力「x」への遅延時間として、セレクタ66の遅延
時間も含めて、論理最適化後の最終的な値が求まる。よ
って、図14に示すCIF節点67の遅延時間は正確な
ものであり、図15において,1クロックステップにス
ケジューリングされた節点の遅延時間の合計が、クロッ
ク周期よりも大きくなって回路が誤作動するおそれがな
く、反対に、クロック周期よりも小さくなり過ぎること
によって、回路の動作に無駄が生じて、回路の動作が遅
くなるおそれもない。
【0052】さらに、図8に示すCDFGのIF節点3
2には、コントロール入力枝33が設けられているため
に、IF節点32のコントロール信号kを生成する比較
節点31とIF節点32とは別のクロックステップにス
ケジューリングする必要がある。これに対して、図14
に示すCIF節点67では、コントロール信号kがコン
トロールを介さない通常の入力枝33によって与えられ
るため、加算や乗算などの通常の演算の節点と同じよう
にスケジューリングすることができる。このため、図1
5に示すように、コントロール信号kを生成する比較節
点31とCIF節点67とを同一のクロックステップに
スケジューリングすることができる。これにより、生成
される回路の動作が高速化される。
【0053】図15に示すスケジューリング結果から、
図16に示す回路が得られる。図16において、点線で
示す回路68は、図14に示すCIF節点67に対応す
る組合せ論理回路(図13のIF節点32に対応)であ
る。
【0054】本実施の形態の高位合成方法では、CIF
節点67に対応する回路を予め論理合成するため、CI
F節点67内で使われる演算器を他の演算で用いられる
演算器と共通化することはできない。しかし、本実施の
形態の高位合成方法では、CIF節点67に対応する組
合せ論理回路がセレクタを必要としないため、演算器を
共通化できないことによって回路規模が大きくなること
よりも、セレクタを減少させることによって回路規模が
小さくなることが有利になる場合には、好適である。
【0055】例えば、従来の高位合成方法によって得ら
れる図9に示す回路構成では、1つの減算器45のみが
設けられているが、3つのセレクタ43、44、47を
必要とする。これに対して、図16に示す回路構成で
は、2つの減算器63および64が必要であるが、1つ
のセレクタ66のみでよいために、2つセレクタの回路
規模が、1つの減算器の回路規模よりも小さい場合は、
本実施の形態の高位合成方法により、図16に示す回路
構成とすることによって、図9に示す回路構成よりも、
全体の回路規模を小さくすることができる。
【0056】また、図16に示す回路構成では、図9に
示すコントローラ42が不要となるために、これによっ
ても、全体の回路規模を小さくすることができる。
【0057】<実施の形態2>次に、本発明の高位合成
方法の実施の形態の他の例を、図17の動作記述に基づ
いて説明する。図17に示す動作記述は、図7に示す動
作記述、すなわち、条件(if)「d>e」の場合、x
=a−b、その他の条件の場合(else)、x=a*
(b−c)という動作記述に、条件(if)「f>g」
の場合、n=y−x、その他の条件の場合(els
e)、n=x*y*zという動作記述が加えられてい
る。
【0058】図17に示す動作記述は、CDFGに変換
されて、図18に示すようにスケジューリングされる。
クロックステップstep1およびstep2には、図
17に示す動作記述において、図7に示す動作記述と同
様の部分が、図8と同様にスケジューリングされてお
り、その説明については省略する。
【0059】クロックステップstep2には、比較を
示す比較節点71もスケジューリングされており、クロ
ックステップstep3には、IF節点72がスケジュ
ーリングされている。比較を示す比較節点71には、入
力「f」および「g」からの入出力枝がそれぞれ接続さ
れている。比較節点71からの入出力枝は、コントロー
ル信号k2を与える制御入出力枝として、第2のIF節
点72に接続されている。
【0060】第2のIF節点72の内部には、第1およ
び第2の副CDFG74および75が設けられている。
第1の副CDFG74は、コントロール信号k2が
「1」(真)の場合に実行され(「true」で表
す)、第2の副CDFG75は、コントロール信号k2
が「0」(偽)の場合に実行される(「false」で
表す)。
【0061】「true」で表された副CDFG74
は、入力「y」および「z」からのそれぞれの入出力枝
が接続された減算節点76が設けられており、「fal
se」で表される副CDFG75には、第1の乗算節点
77および第2の乗算節点78がそれぞれ設けられてい
る。第1の乗算節点77には、入力「z」および「x」
からのそれぞれの入出力枝が接続されており、第2の乗
算節点78には、入力「y」からの入出力枝および第1
の乗算節点77からの入出力枝がそれぞれ接続されてい
る。
【0062】このようなスケジューリング結果におい
て、アロケーションされる加算器と減算器と比較器の遅
延時間を、それぞれ5(nsec)、乗算器の遅延時間
を60(nsec)、クロック周期を100(nse
c)とすると、第1のIF節点32において、条件が
「true」の場合に実行される副CDFG34の遅延
時間は5(nsec)、条件が「false」の場合に
実行される副CDFG35の遅延時間は65(nse
c)となり、条件の成立如何にかかわらず、1つのクロ
ックステップで終了する。これに対して、第2のIF節
点72は、条件が「true」の場合に実行される副C
DFG74の遅延時間は5(nsec)であり、1クロ
ックステップで終了するが、条件「false」の場合
に実行される副CDFG75の遅延時間は120(ns
ec)となり、クロック周期を超えるために、2つのク
ロックステップが必要となる。このため、回路全体とし
ては、条件によっては3つのクロックステップ、または
4つのクロックステップが必要になる。
【0063】図19は、図18の第1のIF節点32と
第2のIF節点72とを、予め論理合成し、それぞれの
組合せ論理回路に対応する節点を、第1のCIF節点3
9と第2のCIF節点79とによって示したものであ
る。この場合、第1および第2のCIF節点39および
79の遅延時間は、第1および第2のIF節点32およ
び72それぞれにおける副CDFG34および35と、
副CDFG74および75との長い方の遅延時間とな
り、第1のCIF節点39の遅延時間は、65(nse
c)、第2のCIF節点79の遅延時間は、120(n
sec)となる。このため、第2CIF節点79は、2
つのクロックステップに跨ることになる。よって、図1
9におけるスケジューリング結果では、全体として3ク
ロックステップが必要になる。
【0064】しかしながら、この場合に、条件が成立す
るとき(「true」)と、条件が成立しないとき
(「fasle」)とにおいて、同一のクロックステッ
プで終了するIF節点のみを予め論理合成すると、図1
9に示すCDFGは、第1のIF節点32のみが、CI
F節点39に変換されて、図20に示すCDFGとな
る。図20に示すCDFGでは、第2のIF節点72に
おいて、条件が成立する場合と条件が成立しない場合と
によって、回路全体のクロック数は、それぞれ2つのク
ロックステップと3つのクロックステップとなる。図1
9に示すCDFGの場合には、条件に関わらず、3つの
クロックステップを必要とるすために、図20に示すC
DFGでは、演算処理をより高速化することができる。
【0065】<実施の形態3>次に、本発明の高位合成
方法の実施の形態のさらに他の例を、図21の動作記述
に基づいて説明する。図21に示す動作記述において、
関数「send(x)」は、変数xを通信路へ送信し、
通信が完了するまで待機する動作を表す。すなわち、図
21の動作記述は、条件(if)「d>e」の場合、
「x=a−b」を通信路に転送し、その他の条件の場合
(else)、「x=a*(b−c)」を通信路に転送
することを表す。
【0066】図21の動作記述に対するCDFGの一例
を図22に示す。クロックステップstep1には、比
較を示す比較節点81がスケジューリングされており、
クロックステップstep2には、IF節点82がスケ
ジューリングされている。比較を示す比較節点81に
は、入力「d」および「e」からの入出力枝がそれぞれ
接続されている。比較節点81からの入出力枝によっ
て、コントロール信号k1がIF節点82に与えられて
いる。
【0067】IF節点82の内部には、第1および第2
の副CDFG84および85が設けられている。第1の
副CDFG84は、コントロール信号k1が「1」
(真)の場合に実行され(「true」で表す)、第2
の副CDFG85は、コントロール信号k1が「0」
(偽)の場合に実行される(「false」で表す)。
【0068】「true」で表された副CDFG84
は、入力「a」および「b」からの入出力枝が接続され
る減算節点86が設けられている。
【0069】「false」で表される副CDFG85
には、入力「b」および「c」からの入出力枝がそれぞ
れ接続された第2の減算節点87と、第2の減算節点8
7からの入出力枝が接続される乗算節点88がそれぞれ
設けられている。乗算節点87には、入力「a」からの
入出力枝も接続されている。
【0070】クロックステップ3以降のクロスステップ
には、動作記述中の「send(x)」に対応する第1
および第2のsend節点91および92がスケジュー
リングされている。第1のsend節点91には、減算
節点86からの入出力枝が接続されており、第2のse
nd節点92には、乗算節点88からの入出力枝が接続
されている。各send節点91および92には、それ
ぞれ、1つのコントロール入出力枝が接続されている。
【0071】このように、通信を行うために、コントロ
ーラの制御が必要な第1および第2のsend節点91
および92を、IF節点82の外部に取り出すことによ
り、IF節点82を、組合せ論理回路で実現することが
できる。従って、前記実施の形態1および2で説明した
ように、IF節点82を、予め論理合成しておくことが
できる。
【0072】send節点には、通常、1つのデータ入
出力枝と、1つのコントロール入出力枝がそれぞれ接続
されている。データ入出力枝には、通信路に転送するデ
ータが入力される。コントロール入出力枝からは、デー
タ転送が終了したことを示すコントロール信号が出力さ
れる。このために、図21に示される動作記述は、図2
3に示すようにスケジューリングされて、第1および第
2のsend節点91および92は、IF節点82内に
おける第1および第2の副CDFG84および85にそ
れぞれ配置される。各send節点91および92は、
データ転送が終了するまで待機状態になるために、クロ
ックステップstep3以降の複数のクロックステップ
にわたってデータの転送を実行する。
【0073】このように、各send節点91および9
2の動作が、コントローラによるコントロール信号によ
って制御されるために、send節点91および92を
含むCDFG82は、コントローラとの間にてコントロ
ール信号を送受する必要があり、組合せ論理回路のみで
は構成することができず、send節点91および92
を有するIF節点82を、予め論理合成することはでき
ない。
【0074】しかしながら、図22に示すように、各s
end節点91および92をIF節点82の外部に取り
出すことにより、IF節点82を、組合せ論理回路で実
現することができ、IF節点82を、予め論理合成して
おくことが可能になる。
【0075】なお、このように、各send節点91お
よび92をIF節点82の外部に取り出す場合には、図
24に示すように、IF節点82の外部に取り出された
各send節点91および92が同一機能であれば、1
つのsend節点93のみを設けるようにしてもよい。
【0076】図25は、図24に示すIF節点82を、
図13に示すように論理合成して組合せ回路とし、図1
5と同様に、対応するCIF節点94に入れ換えた場合
のスケジューリング結果である。図25に示すスケジュ
ーリング結果では、図23に示すスケジューリング結果
よりも、クロックステップ数が1つ少なくなり、処理速
度をより高速化することができる。
【0077】なお、組合せ論理回路で表すことができな
い節点が、IF節点における副CDFGの最上位にある
場合には、その節点を、IF節点の上側に取り出すよう
にしてもよい。
【0078】<実施の形態4>本発明の高位合成方法の
実施の形態のさらに他の例を、図26の動作記述に基づ
いて説明する。図26に示す動作記述では、条件(i
f)「d>e」の場合は、x=(a+b−c)*c+a
であり、その他の条件の場合(else)は、x=(b
+c)*c+(b+c)+aである。
【0079】この動作記述をCDFG変換してスケジュ
ーリングした一例を図27に示す。図27に示すよう
に、クロックステップstep1には、比較を示す比較
節点101がスケジューリングされており、クロックス
テップstep2には、IF節点102がスケジューリ
ングされている。比較節点101には、入力「d」およ
び「e」からの入出力枝が接続されるとともに、コント
ロール信号kを与えるコントロール入出力枝173が接
続されている。
【0080】また、クロックステップstep2にスケ
ジューリングされたIF節点102は、内部に第1およ
び第2の副CDFG104および105が設けられてい
る。第1の副CDFG104は、IF節点を含むことが
できる。第1の副CDFG104は、コントロール信号
kが「1」(真)の場合に実行され(「true」で表
す)、第2の副CDFG105は、コントロール信号k
が「0」(偽)の場合に実行される(「false」で
表す)。
【0081】「true」で表された副CDFG104
には、入力「a」および「b」からの入出力枝が接続さ
れた第1の加算節点106が設けられており、第1の加
算節点106の入出力枝は、第1の減算節点107に接
続されている。第1の減算節点107には、入力「c」
からの入出力枝が接続されている。第1の減算節点10
7の入出力枝は、第1の乗算節点108に接続されてお
り、第1の乗算節点108に、入力「c」からの入出力
枝が接続されている。第1の乗算節点108の入出力枝
は、第2の加算節点109に接続されており、第2の加
算節点109に、入力「a」からの入出力枝が接続され
ている。そして、第2の加算節点109からの入出力枝
がIF節点102の入出力枝に接続されている。
【0082】「false」で表される副CDFG10
5には、第3の加算節点111が設けられており、第3
の加算節点111には、入力「b」および「c」からの
入出力枝が接続されている。第3の加算節点111から
の入出力枝は、第2の乗算節点112および第2の減算
節点113に接続されている。第2の乗算節点112に
は、入力「c」からの入出力枝が接続されており、第2
の乗算節点112からの入出力枝は、第2の減算節点1
13に接続されている。第2の減算節点113からの入
出力枝は、第4の加算節点114に接続されている。そ
して、第4の加算節点114からの入出力枝がIF節点
102の入出力枝に接続されている。
【0083】図27に示すCDFGも、実施の形態1お
よび2と同様に、条件が成立する場合(「true」)
と、条件が成立しない場合(「fasle」)とにおい
て、同一のクロックステップにおいて終了するIF節点
のみを予め論理合成することにより、図28に示す回路
とされる。この回路は、比較節点101に対して比較器
121が割り当てられており、また、IF節点102組
合せ回路に対して、CIF節点120が割り当てられて
いる。
【0084】しかしながら、図27に示す回路構成で
は、IF節点の条件が成立した場合に実行される副CD
FG104と、条件が成立しなかった場合に実行される
副CDFG105の両方に、乗算節点108および11
2を含む場合には、図28に示すように論理合成する
と、2つの乗算器122および123を含む組合せ論理
回路が生成される。通常、乗算器は、加算器および減算
器に比べて面積が大きいため、生成される回路全体の面
積が増加することになる。
【0085】このような回路規模の増大を防止するため
には、次の方法が実施される。この方法では、IF節点
を、指定された節点の上側および下側において分割し、
指定された節点をIF節点の外部に配置するようになっ
ている。これにより、IF節点を予め論理合成した場合
に、回路全体の面積が増加することが防止される。ま
た、コントローラによる制御が必要なために組合せ論理
回路を構成できない演算の節点を指定してIF節点の外
部に配置することにより、コントローラによる制御が必
要な節点を含むIF節点についても、予め論理合成して
組合せ論理回路にすることができる。
【0086】この方法を、図29に示すフローチャート
に基づいて説明する。まず、通常の方法によって、動作
記述をCDFGに変換し(図29のステップS21参
照、以下同様)、変換されたCDFGに含まれる節点
を、特定された節点の上側と下側において、それぞれグ
ループに分割する(ステップS22)。
【0087】節点をグループ化する方法について、図3
0に示すCDFGに基づいて説明する。図30に示すC
DFGは、2つの入力枝が接続された第1の加算節点1
31からの出力枝が、第1の減算節点132に接続され
ている。第1の減算節点132には、さらに、1つの入
力枝が接続されており、出力枝が乗算節点133に接続
されている。乗算節点133からの2つの出力枝が、そ
れぞれ、第2の加算節点135および第3の加算節点1
36に接続されている。第1の加算節点131からの他
の出力枝は、第2の減算節点134に接続されており、
第2の減算節点134からの出力枝が第2の加算節点1
35に接続されている。
【0088】このようなCDFGにおいて、回路面積が
大きい乗算節点133を、IF節点の外部に出すことに
よって、回路規模が増大することを防止できる。この場
合、まず、図30に示すように、CDFGに含まれる節
点をグループ化する。節点をグループ化する際には、I
F節点の外部に出す乗算節点133を指定して、その上
側および下側において、各節点をグループ化する。乗算
節点133の上側のグループAは、それぞれの出力が乗
算節点133に直接的または間接的に入力される節点の
集合であり、第1加算節点131および第1減算節点1
32が含まれている。第1加算節点131のように、そ
の出力が、第1減算節点132を経て、乗算節点133
の入力になるものも含む。
【0089】乗算節点133よりも下側のグループCに
含まれる節点は、乗算節点133の出力を入力とする節
点の集合であり、第3加算節点135および第4加算節
点136が含まれる。この場合も、乗算節点133の出
力が他の節点を経て入力される節点があれば、その節点
も含まれる。グループBは、グループAにもグループC
にも含まれない節点の集合であり、乗算節点133の演
算と無関係な節点である。グループBには、第2減算節
点134が含まれる。このようにして、IF節点におけ
る節点がグループ化される。
【0090】このようにして、節点がグループ化される
と、各グループに基づいて、IF節点を分割し、指定さ
れた節点をIF節点の外部に配置する(図29のステッ
プS23)。その後、外部に配置された節点の共通化
と、不要な入出力枝を削除することにより、CDFGを
簡単化する(ステップS24)。その後は、前述した高
位合成方法と同様に、変更されたCDFGをスケジュー
リングして、アロケーションすることにより、回路を生
成する。
【0091】このような高位合成方法を、図27のCD
FGに基づいて説明する。図27に示すCDFGにおい
ても、前述したように、まず、IF節点102に含まれ
る節点をグループ化する。この場合、IF節点102に
おける「true」で表される副CDFG104、およ
び、「false」で表される副CDFG105のそれ
ぞれに関して、回路規模の大きな第1の乗算節点108
および第2の乗算節点112を中心として、それぞれ、
節点のグループ化が実施される。
【0092】従って、第1の乗算節点108に関して、
それよりも上側のグループAには、第1乗算節点108
にそれぞれの出力が入力される第1加算節点106およ
び第1減算節点107が含まれ、第1乗算節点108よ
りも下側のグループCには、第1乗算節点108からの
出力が入力される第2加算節点109が含まれる。
【0093】同様に、第2の乗算節点112に関して、
それよりも上側のグループAには、第2乗算節点112
に出力が入力される第3加算節点111が含まれ、第2
乗算節点112よりも下側のグループCには、第2乗算
節点112からの出力がそれぞれ入力される第2減算節
点113および第4減算節点114が含まれる。
【0094】このように、IF節点102内に含まれる
節点がグループ化されると、図31に示すように、IF
節点102を、グループAに含まれる各節点にて構成さ
れる第1のIF節点(図に「IF1」にて示す)141
と、グループCに含まれる各節点にて構成される第2の
IF節点(図に「IF2」にて示す)142の2つに分
割する。
【0095】この場合、第1および第2の乗算節点10
8および112とは無関係の節点のグループBがあれ
ば、グループAに含まれる節点数がグループCに含まれ
る節点数よりも少ない場合は、グループBに含まれる節
点が、グループAにて構成される第1のIF節点141
に含められ、そうでない場合は、第2のIF節点142
に含められる。第1および第2の乗算節点108および
112は、グループA,B,Cのいずれにも含まれない
ため、第1のIF節点141と第2のIF節点142の
間に配置されることになり、図31に示すように、第1
IF節点141および第2IF節点142の外部に配置
される。
【0096】このようなCDFGが得られると、得られ
たCDFGが簡単化される。CDFGの簡単化は、前述
したように、IF節点の外部に配置された複数の節点の
演算が同一な場合に、それらの節点を1つの節点にて共
通化すること、および、不要な入出力枝の削除で実施さ
れる。
【0097】図31に示すCDFGが得られると、第1
および第2のIF節点141および142の外部に配置
された第1および第2の乗算節点108および112
は、図32に示すように、1つの乗算節点143によっ
て共通化する。これにより、2つの乗算節点108およ
び112に対して、1つの乗算器が割り当てられること
になる。この時、当然に、共通化される2つの節点は同
一の演算器で行うことができる必要がある。2つの演算
が異なる種類の場合には、節点同士の共通化は行われな
い。
【0098】次に、不要な入出力枝を削除する。不要な
入出力枝は、各IF節点141および142内を、いず
れの節点にも接続されることなく、すなわち演算に関係
することなく通過する入出力枝であり、図32において
は、第1IF回路141内の入出力枝144〜147で
ある。これらの入出力枝144〜147が削除されるこ
とにより、図33に示すように、簡単化されたCDFG
が得られる。
【0099】このようにして、分割された第1のIF節
点141および第2のIF節点142が得られると、第
1のIF節点141および第2のIF節点142を、そ
れぞれ、前述したようにして論理合成して、図34
(a)に示すように、第2IF節点141に対応する第
1のCIF節点151と、図34(b)に示すように、
第2のIF節点142に対応する第2のCIF節点15
2とを、それぞれ生成する。
【0100】この場合、第1のCIF節点151には、
第1および第2の加算器153および154と、第1の
減算器155と、第1のセレクタ156とが設けられて
いる。第1の加算器153には、入力「a」および
「b」が入力されており、第2の加算器154には、入
力「b」および「c」が入力されている。第1の減算器
155には、第1の加算器153の出力と入力「c」と
が入力されている。そして、セレクタ156には、第1
の減算器155の出力と第2の加算器154の出力が入
力されており、コントロール信号kによって、第1の減
算器155の出力、第2の加算器154の出力のいずれ
かが出力される。従って、セレクタ153からは、演算
「a+b−c」または「b+c」のいずれかの結果が出
力される。
【0101】第2のCIF152には、第3および第4
の加算器157および158と、第2の減算器159
と、第2のセレクタ160とが設けられている。第3の
加算器153には、入力「a」と、セレクタ153から
の出力である「(a+b−c)*c」または「(b+
c)*c」のいずれかとが入力されており、第2の減算
器159には、乗算器143からの出力である「(a+
b−c)*c」または「(b+c)*c」のいずれか
と、第1CIF節点151の出力「b+c」とが入力さ
れている。第2の加算器158には、入力「a」と、第
2減算器の出力とが入力されている。第2のセレクタ1
60には、第3の加算器157の出力と第4の加算器1
54の出力が入力されており、コントロール信号kによ
って、第3の加算器157の出力、第4の加算器158
の出力のいずれかが「x」として出力される。
【0102】各CIF151および152において、そ
れぞれの加算器と減算器の遅延時間をそれぞれ5(ns
ec)、乗算器の遅延時間を60(nsec)とする
と、第1CIF節点121の遅延時間は10(nse
c)、第2CIF節点152の遅延時間も10(nse
c)となる。
【0103】第1のCIF節点151および第2のCI
F節点152を用いたCDFGを、図35に示す。この
CDFGの最大遅延パスは、比較節点101、第1のC
IF節点151、乗算節点143、第2のCIF節点1
52を通るパスであり、クロック周期が100(nse
c)、比較器の遅延時間が5(nsec)であるとする
と、最大遅延時間は85(nsec)となり、クロック
周期を超えることがなく、1クロックにおいて実行する
ことが可能である。
【0104】図27に示すCDFGは、IF節点も含め
ると10個の節点より構成されているのに対して、図3
5に示すCDFGは4つの節点しか含まれず、高位合成
を高速で行うことが可能である。
【0105】また、図27に示すCDFGの実行には、
2クロック周期が必要であるのに対して、図35に示す
CDFGは、1クロック周期で実行することができ、高
速処理が可能になる。最終的には、図35に示すCDF
Gから、図36に示す回路を得ることができる。図27
に示すCDFGから生成された図28に示す回路では、
2つの乗算器122を含むのに対して、図27に示すC
DFGから生成された図36に示す回路では、1つ乗算
器161しか含まず、回路の面積が小さくなっている。
【0106】<実施の形態5>次に、本発明の高位合成
方法の実施形態の他の例について説明する。まず、図3
7に示す動作記述を前述した実施の形態1および2と同
様にして高位合成した場合について説明する。図37に
示す動作記述では、条件(if)「d>e」の場合は、
x=(a+b)*b+aであり、その他の条件の場合
(else)は、x=(b+c)*a−(a+c)であ
る。
【0107】この動作記述をCDFG変換してスケジュ
ーリングした一例を図38に示す。図38に示すよう
に、クロックステップstep1には、比較を示す比較
節点171がスケジューリングされており、クロックス
テップstep2には、IF節点172がスケジューリ
ングされている。比較節点171には、入力「d」およ
び「e」からの出力枝が接続されるとともに、コントロ
ール信号kを与えるコントロール出力枝173が接続さ
れている。
【0108】また、クロックステップstep2にスケ
ジューリングされたIF節点172は、内部に第1およ
び第2の副CDFG174および175が設けられてい
る。第1の副CDFG174は、コントロール信号kが
「1」(真)の場合に実行され(「true」で表
す)、第2の副CDFG175は、コントロール信号k
が「0」(偽)の場合に実行される(「false」で
表す)。
【0109】「true」で表された副CDFG174
には、入力「a」および「b」からの入出力枝が接続さ
れた第1の減算節点176が設けられており、第1の加
算節点176からの出力枝は、第1の乗算節点177に
接続されている。第1の乗算節点177には、入力
「b」からの出力枝が接続されている。第1の乗算節点
177の入出力枝は、第1の加算節点178に接続され
ており、第1の加算節点178に、入力「a」からの出
力枝が接続されている。第1の加算節点178からの出
力枝がIF節点172の出力枝に接続されている。
【0110】「false」で表される副CDFG17
5には、第2の加算節点181が設けられており、第2
の加算節点181には、入力「b」および「c」からの
出力枝が接続されている。第2の加算節点181からの
出力枝は、第2の乗算節点182および第2の減算節点
183に接続されている。第2の乗算節点182には、
入力「a」からの出力枝が接続されており、第2の乗算
節点182からの出力枝は、第2の減算節点183に接
続されている。第2の減算節点183からの出力枝がI
F節点172の出力枝に接続されている。
【0111】このようなCDFGのIF節点172は、
前述したようにして論理合成することにより、図39に
示すように、CIF節点184とされる。このようなC
DFGによって、図40に示す回路が得られる。この回
路は、入力「a」および「b」が入力される第1減算器
191を有しており、第1減算器191の出力が第1乗
算器192に入力されている。第1乗算器192には、
入力「b」も入力されており、第1乗算器192の出力
が第1加算器193に入力されている。第1加算器19
3には、入力「a」も入力されている。第1加算器19
3の出力は、セレクタ197に与えられている。
【0112】また、この回路には、第2加算器194入
力「a」および「b」が入力される第2加算着194が
設けられており、第2加算器194の出力が第2乗算器
195に入力されている。第1乗算器195の出力は、
第2減算器196に入力されている。第2減算器196
には、第2加算器194の出力が入力されており、第2
減算器196の出力がセレクタ197に与えられてい
る。セレクタ197は、比較器198からのコントロー
ル信号kに基づいて、第1加算器193の出力、第2減
算器196の出力のいずれかを出力する。
【0113】また、このような回路においては、次の
(2)式を満足する演算器があれば、その演算器に関す
る節点をIF節点の外部に配置することによって、回路
面積をさらに低減することができる。。
【0114】 (演算器の入力数)×(セレクタの面積)≦(演算器の面積)・・・(2) すなわち、IF節点に含まれる副CDFGを構成する節
点に対応する演算器において、同一の演算器が複数存在
する場合には、その演算器の1つの面積が、セレクタの
面積に対して、演算器の入力数倍以上であれば、その演
算器に対応する節点をIF節点の外部に配置する。
【0115】例えば、図40に示す回路において、乗算
器192および195に対して、「true」と「fa
lse」の2通りの入力を与えるために、各乗算器19
2および195の入力の個数分(2個分)のセレクタが
必要になるが、このような個数のセレクタを増加するこ
とによって、一方の乗算器を削除することができるため
に、必要とされるセレクタの全面積に対して、削除され
る乗算器の面積が大きければ、乗算器を削除することに
よって、セレクタが増加するにもかかわらず、全体の回
路面積を低減させることができる。
【0116】図40に示す回路において、乗算器の面積
が10、加算器および減算器の面積が2、セレクタの面
積が2の割合にそれぞれなっているものとすると、図3
8に示すIF節点172の副CDFG174および17
5に含まれる各節点に対応するそれぞれの演算器におい
て、前記(2)式を満たすものは、図40に示す乗算器
192および195である。
【0117】このために、各乗算器192および195
に対応する乗算節点177および182を、実施の形態
3で説明したようにして、IF節点172の外部に配置
する。
【0118】図41は、図38に示すIF節点172を
分割したCDFGである。このCDFGは、第1および
第2の乗算節点177および182を指定して、各乗算
節点177および182の上側の節点のグループと、下
側の節点のグループとに分割することによってIF節点
172を分割して、第1IF節点201および第2IF
節点202とする。これにより、各乗算節点177およ
び182が、第1IF節点201および第2IF節点2
02の外部に配置される。そして、外部に配置された各
乗算節点177および182を1つの乗算節点203に
よって共通化し、不要な入出力枝を削除することによ
り、図41に示すCDFGが得られる。
【0119】このように、必要とされるセレクタの面積
に対して、削除された乗算器の面積が大きいことによ
り、回路面積を低減させることができる。
【0120】図42は、図41に示すCDFGにおける
第1のIF節点201と第2のIF節点202とを、前
述したように、組合せ論理回路である第1CIF203
と、第2CIFとに置き換えたCDFGのスケジューリ
ング結果を示す。また、図43は、図42に示すスケジ
ューリング結果を回路化したものである。
【0121】図43に示す回路では、第1のCIF20
4に対応する第1の組合せ論理回路221および第2の
CIFに対応する第2の組合せ論理回路222と、両組
合せ論理回路221および222の間に配置された乗算
器212とが設けられている。第1の組合せ論理回路2
21には、入力「a」および「b」がそれぞれ入力され
る第1の減算器211および第1の加算器214が設け
られており、第1減算器211および第1の加算器21
4の出力が、それぞれ、第1のセレクタ217に入力さ
れるとともに、第2のセレクタ218に入力されてい
る。
【0122】第1および第2のセレクタ217および2
18は、比較器223からのコントロール信号kによっ
て、それぞれ、第1減算器211および第1の加算器2
14の出力のいずれかを選択して出力する。第1のセレ
クタ217および第2のセレクタ218の出力は、それ
ぞれ乗算器212に与えられている。
【0123】乗算器212の出力は、第2の組合せ論理
回路222に設けられた第2の加算器213および第2
の減算器216にそれぞれ与えられており、第2の加算
器213および第2の減算器216の出力が第3のセレ
クタ219に与えられている。第3のセレクタ219
は、比較器223からのコントロール信号kによって、
それぞれ、第2の加算器213および第2の減算器21
6の出力のいずれかを選択して出力する。そして、第3
セレクタ219の出力が、演算結果の出力「x」にな
る。
【0124】図43に示す回路を、図40に示す回路と
比較すると、図40に示す回路は、2つの乗算器192
および195が設けられているが、1つのセレクタ19
7しか設けられていない。これに対して、図43に示す
回路では、1つの乗算器212しか設けられていないが
3つのセレクタ217〜219が設けられている。この
場合、1つの乗算器の面積は、増加するセレクタの面積
よりも大きく、前記(2)式を満たしているため、回路
全体では、図43に示す回路の面積が、図40に示す回
路の面積よりも小さくなる。
【0125】(2)式を満たす節点が「true」また
は「false」の副CDFGに複数ある場合は、その
節点の演算を実行する演算器の面積が最も大きい演算を
IF節点が外部に配置されるように、上記方法を適用す
る。そして、分割して得られる2つのIF節点につい
て、再度上記方法を適用する。
【0126】IF節点の外部に配置された節点(図42
の場合は乗算節点203)と別の節点が、同一の演算器
を共通化するような場合には、図40に示す回路の面積
がさらに小さくなる。この場合、演算器の面積が(2)
式を満たす程度に大きくなっていなくても、面積削減の
効果が現れる。このような可能性を考慮して、条件を、
次の(3)式のようにしてもよい。ここで、定数は1よ
り小さい数値で、回路によって実験的に求められる値で
ある。
【0127】 (演算器の入力数)×(セレクタの面積)×(定数)≦(演算器の面積) ・・・(3)
【0128】
【発明の効果】本発明の請求項1記載の高位合成方法で
は、CDFGの一部である複数の節点が、1つの節点と
して扱われるため、CDFGが含む節点が少なくなり、
高位合成に必要な処理時間が短くなる。また、節点のC
DFGの一部を予め論理合成して最適化しているため、
置き換えられた1つの節点の遅延時間には、最終的な回
路における遅延時間を用いることができ、遅延時間の見
積り精度が良くなる。
【0129】本発明の請求項2記載の高位合成方法で
は、条件分岐に対応するCDFGの部分は、条件分岐の
コントロール信号も含めて予め論理合成されるため、高
位合成に必要な処理時間が短くなり、遅延の見積り精度
が向上する。また、合成した回路が含むセレクタが減少
することによって、回路規模を小さくすることができ
る。さらに、コントローラによって条件分岐の制御を行
う信号を生成する必要がなくなるために、回路規模を小
さくすることができる。また、条件分岐の条件判定と、
条件分岐自体の動作を同一クロックステップで実行でき
るために、高位合成によって得られる回路の動作を高速
化することもできる。
【0130】本発明の請求項3記載の高位合成方法で
は、分岐条件が真でも偽でも無駄なクロックステップが
発生するおそれがなく、高位合成によって得られる回路
の動作を高速化することができる。
【0131】本発明の請求項4記載の高位合成方法で
は、CDFGがコントローラとの信号の送受に関する演
算を含むため、予め論理合成して組合せ論理回路にでき
ない場合、あるいは、CDFGが大規模な演算器を含む
ために、予め論理合成して組合せ論理回路とすると回路
規模が不必要に大きくなるような場合においても、回路
規模の縮小および生成される回路動作の高速化が可能に
なる。
【0132】本発明の請求項5記載の高位合成方法も、
CDFGがコントローラとの信号の送受に関する演算を
含むため、予め論理合成して組合せ論理回路にできない
場合、あるいは、CDFGが大規模な演算器を含むため
に、予め論理合成して組合せ論理回路とすると回路規模
が不必要に大きくなるような場合においても、回路規模
の縮小および生成される回路動作の高速化が可能にな
る。
【0133】本発明の請求項6記載の高位合成方法で
は、面積が大きい演算器を含む動作記述についても、回
路規模の縮小および生成される回路動作の高速化が可能
になる。
【0134】本発明の請求項7記載の記録媒体では、こ
のような高位合成方法を容易に実行することができる。
【図面の簡単な説明】
【図1】高位合成の手順を示すフローチャートである。
【図2】(1)式の動作記述のCDFGの一例を示す模
式図である。
【図3】図2のCDFGのスケジューリング結果の一例
を示す模式図である。
【図4】図3に示すスケジューリング結果に対応した回
路の構成を示す模式図である。
【図5】(1)式の動作記述のCDFGをスケジューリ
ングした結果の他の例を示す模式図である。
【図6】図5に示すスケジューリング結果に対応した回
路の構成を示す模式図である。
【図7】動作記述の他の例である。
【図8】図7の動作記述のCDFGをスケジューリング
した結果を示す模式図である。
【図9】図8に示すスケジューリング結果に対応した回
路の構成を示す模式図である。
【図10】高位合成における遅延時間の説明図である。
【図11】(a)および(b)は、それぞれ、論理合成
において最適化した回路を示す模式図である。
【図12】本発明の高位合成方法の実施の形態の一例を
示すフローチャートである。
【図13】その高位合成方法において、CDFGに含ま
れるIF節点を、論理合成して生成された組合せ論理回
路を示す模式図である。
【図14】図13の組合せ論理回路を示す節点である。
【図15】図14に示す節点を用いたCDFGである。
【図16】図15に示すCDFGに対応した回路を示す
模式図である。
【図17】動作記述の一例を示す式である。
【図18】図17に示す動作記述のCDFGの一例を示
す模式図である。
【図19】そのCDFGをCIF節点に置き換えたCD
FGの一例を示す模式図である。
【図20】そのCDFGのIF節点をCIF節点に置き
換えたCDFGの他の例を示す模式図である。
【図21】動作記述の他の例を示す式である。
【図22】図21に示す動作記述のCDFGの一例を示
す模式図である。
【図23】そのCDFGにおける節点をIF節点の外部
に配置したCDFGの一例を示す模式図である。
【図24】図23のCDFGを最適化したCDFGを示
す模式図である。
【図25】そのCDFGのIF節点をCIF節点に置き
換えたCDFGの一例を示す模式図である。
【図26】動作記述の他の例を示す式である。
【図27】図26に示す動作記述のCDFGの一例を示
す模式図である。
【図28】図27に示すCDFGに対応した回路を示す
模式図である。
【図29】本発明の高位合成方法の実施の形態の他の例
を示すフローチャートである。
【図30】節点をグループ分けする場合を説明するため
の模式図である。
【図31】図26に示すCDFGを分割したCDFGを
示す模式図である。
【図32】図31に示すCDFGを最適化したCDFG
を示す模式図である。
【図33】図32に示すCDFHを簡単化したCDFG
を示す模式図である。
【図34】(a)および(b)は、それぞれ、図33に
示すCIF節点に対応した回路を示す模式図である。
【図35】そのCDFGをCIF節点に置き換えたCD
FGの一例を示す模式図である。
【図36】図27に示すCDFGに対応した回路を示す
模式図である。
【図37】動作記述の他の例を示す式である。
【図38】図37に示す動作記述のCDFGの一例を示
す模式図である。
【図39】そのCDFGをCIF節点に置き換えたCD
FGの一例を示す模式図である。
【図40】図39に示すCDFGに対応した回路を示す
模式図である。
【図41】図38に示すCDFGを分割したCDFGの
一例を示す模式図である。
【図42】そのCDFGをCIF節点に置き換えたCD
FGの一例を示す模式図である。
【図43】図39に示すCDFGに対応した回路を示す
模式図である。
【符号の説明】
61、62 部分回路 63、64、159 減算器 65、161 乗算器 66、156 セレクタ 67、79、94、151、152、184 CIF
節点 71、81、171、198 比較節点 72、82、102、141、142、201、202
IF節点 74、75、84、85、104、105、174、1
75 副CDFG 76、86、87、107、113、134、176、
183、191、196 減算節点 77、78、88、108、112、132、133、
177、182、192、195 乗算節点 91、92、93 send節点 106、109、111、114、131、135、1
36、153、154、157、158、178、18
1、193、194 加算器

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 処理の動作のみを記述した動作記述を、
    演算を示す節点とデータの流れを示す入出力枝とによっ
    て構成されるコントロールデータフローグラフ(CDF
    G)に変換するCDFG変換工程と、 該CDFG変換工程にて得られたCDFGをスケジュー
    リング工程と、 該スケジューリング工程にてスケジューリングされたC
    DFGの実行に必要な演算器、セレクタ等をそれぞれ割
    り当てるアロケーション工程とを包含する高位合成方法
    であって、 前記CDFG変換工程において、CDFGに含まれる部
    分CDFGを、予め論理合成し、論理合成して得られる
    回路を1つの節点として扱うことを特徴とする高位合成
    方法。
  2. 【請求項2】 前記部分CDFGは、条件分岐に対応し
    たものである請求項1に記載の高位合成方法。
  3. 【請求項3】 前記部分CDFGは、条件が成立する場
    合としない場合の処理が同一のクロック周期で終了する
    ものである請求項2に記載の高位合成方法。
  4. 【請求項4】 前記部分CDFGに含まれる特定の節点
    を、条件分岐に対応するCDFGの外部に配置する請求
    項2に記載の高位合成方法。
  5. 【請求項5】 前記部分CDFGを分割することによっ
    て、その部分CDFGに含まれる特定の節点を、該部分
    CDFGの外部に配置する請求項2記載の高位合成方
    法。
  6. 【請求項6】 前記アロケーション工程において前記部
    分CDFGに同一の演算器が複数割り当てられる場合
    に、その1つの演算器の面積がセレクタの面積の定数倍
    以上の場合に、その演算器に対応する節点を、条件分岐
    に対応するCDFGの外部に配置する請求項4または請
    求項5に記載の高位合成方法。
  7. 【請求項7】 請求項1に記載の高位合成方法の手順が
    プログラムされていることを特徴とする記録媒体。
JP2000042083A 2000-02-18 2000-02-18 高位合成方法およびその実施に使用される記録媒体 Expired - Fee Related JP3722351B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000042083A JP3722351B2 (ja) 2000-02-18 2000-02-18 高位合成方法およびその実施に使用される記録媒体
US09/741,057 US6604232B2 (en) 2000-02-18 2000-12-21 High-level synthesis method and storage medium storing the same
GB0103907A GB2367159B (en) 2000-02-18 2001-02-16 High-level synthesis method and storage medium storing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000042083A JP3722351B2 (ja) 2000-02-18 2000-02-18 高位合成方法およびその実施に使用される記録媒体

Publications (2)

Publication Number Publication Date
JP2001229217A true JP2001229217A (ja) 2001-08-24
JP3722351B2 JP3722351B2 (ja) 2005-11-30

Family

ID=18565201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000042083A Expired - Fee Related JP3722351B2 (ja) 2000-02-18 2000-02-18 高位合成方法およびその実施に使用される記録媒体

Country Status (3)

Country Link
US (1) US6604232B2 (ja)
JP (1) JP3722351B2 (ja)
GB (1) GB2367159B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925628B2 (en) 2002-10-22 2005-08-02 Matsushita Electric Industrial Co., Ltd. High-level synthesis method
WO2006051760A1 (ja) * 2004-11-10 2006-05-18 Sharp Kabushiki Kaisha データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
US7152218B2 (en) 2003-04-24 2006-12-19 Sharp Kabushiki Kaisha Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
JP2006351047A (ja) * 2006-10-02 2006-12-28 Nec Corp データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
JP2012079233A (ja) * 2010-10-05 2012-04-19 Fujitsu Semiconductor Ltd 設計データ生成装置、設計データ生成方法及びプログラム
US10192014B2 (en) 2015-08-27 2019-01-29 Mitsubishi Electric Corporation Circuit design support apparatus and computer readable medium

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000236325A (ja) * 1999-02-09 2000-08-29 Lg Electronics Inc デジタルデータファイルの暗号化装置及びその方法
JP4029959B2 (ja) * 2001-08-31 2008-01-09 シャープ株式会社 演算器アロケーション設計装置および演算器アロケーション設計方法
US7107568B2 (en) * 2002-10-07 2006-09-12 Hewlett-Packard Development Company, Lp. System and method for reducing wire delay or congestion during synthesis of hardware solvers
JP4352315B2 (ja) * 2002-10-31 2009-10-28 日本光電工業株式会社 信号処理方法/装置及びそれを用いたパルスフォトメータ
WO2004072796A2 (en) * 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
SE0300742D0 (sv) * 2003-03-17 2003-03-17 Flow Computing Ab Data Flow Machine
US7464375B2 (en) * 2004-06-24 2008-12-09 International Business Machines Corporation Method for flattening hierarchically structured flows
JP4397744B2 (ja) * 2004-06-25 2010-01-13 パナソニック株式会社 半導体集積回路の高位合成方法
US7565631B1 (en) * 2004-07-02 2009-07-21 Northwestern University Method and system for translating software binaries and assembly code onto hardware
JP2008511894A (ja) * 2004-09-02 2008-04-17 ロジコン デザイン オートメーション エルティーディ. 電子回路の構造レベル記述を設計する方法及びシステム
US10482209B1 (en) 2018-08-06 2019-11-19 HLS Logix LLC Field programmable operation block array

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530841A (en) 1990-12-21 1996-06-25 Synopsys, Inc. Method for converting a hardware independent user description of a logic circuit into hardware components
US5666296A (en) 1991-12-31 1997-09-09 Texas Instruments Incorporated Method and means for translating a data-dependent program to a data flow graph with conditional expression
US5491640A (en) * 1992-05-01 1996-02-13 Vlsi Technology, Inc. Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication
JPH08101861A (ja) * 1994-09-30 1996-04-16 Toshiba Corp 論理回路合成装置
JP3423603B2 (ja) * 1997-12-22 2003-07-07 シャープ株式会社 高位合成装置及び高位合成方法、並びに高位合成プログラムを記録した記録媒体
JP3765923B2 (ja) 1998-02-26 2006-04-12 シャープ株式会社 ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体
US6609088B1 (en) * 1998-07-24 2003-08-19 Interuniversitaire Micro-Elektronica Centrum Method for determining an optimized memory organization of a digital device
US6415420B1 (en) * 1999-04-30 2002-07-02 Incentia Design Systems, Inc. Synthesizing sequential devices from hardware description languages (HDLS)
US6324680B1 (en) * 1999-08-30 2001-11-27 International Business Machines Corporation Synthesis of arrays and records

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925628B2 (en) 2002-10-22 2005-08-02 Matsushita Electric Industrial Co., Ltd. High-level synthesis method
US7152218B2 (en) 2003-04-24 2006-12-19 Sharp Kabushiki Kaisha Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
WO2006051760A1 (ja) * 2004-11-10 2006-05-18 Sharp Kabushiki Kaisha データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
US7886252B2 (en) 2004-11-10 2011-02-08 Sharp Kabushiki Kaisha Same subgraph detector for data flow graph, high-order combiner, same subgraph detecting method for data flow graph, same subgraph detection control program for data flow graph, and readable recording medium
JP2006351047A (ja) * 2006-10-02 2006-12-28 Nec Corp データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
JP2012079233A (ja) * 2010-10-05 2012-04-19 Fujitsu Semiconductor Ltd 設計データ生成装置、設計データ生成方法及びプログラム
US10192014B2 (en) 2015-08-27 2019-01-29 Mitsubishi Electric Corporation Circuit design support apparatus and computer readable medium

Also Published As

Publication number Publication date
US20010016936A1 (en) 2001-08-23
US6604232B2 (en) 2003-08-05
GB2367159A (en) 2002-03-27
JP3722351B2 (ja) 2005-11-30
GB0103907D0 (en) 2001-04-04
GB2367159B (en) 2003-07-16

Similar Documents

Publication Publication Date Title
JP2001229217A (ja) 高位合成方法およびその実施に使用される記録媒体
US10089426B2 (en) Logic circuit generation device and method
Monteiro et al. Scheduling techniques to enable power management
JP3331968B2 (ja) グリッチ分析と低減に重点をおいたレジスタトランスファレベルの電力消費最適化回路、方法、及び記録媒体
JP2002083001A (ja) 論理回路の設計方法及びそれに使用するセルライブラリ
Barbacci et al. Automated exploration of the design space for register transfer (RT) systems
JP4396987B2 (ja) 動作合成装置および動作合成方法、ディジタル回路の製造方法、動作合成制御プログラム、可読記録媒体
US20070028198A1 (en) Method and apparatus for allocating data paths to minimize unnecessary power consumption in functional units
JP3370304B2 (ja) 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体
JP2003076728A (ja) 演算器アロケーション設計方法
JP3386427B2 (ja) 高位合成方法並びに高位合成方法の実施に使用される記録媒体
US6449763B1 (en) High-level synthesis apparatus, high level synthesis method, and recording medium carrying a program for implementing the same
Chang et al. An optimal clock period selection method based on slack minimization criteria
JP3602697B2 (ja) 論理回路設計支援システム
JP3071882B2 (ja) 論理回路合成装置
Geurts et al. Heuristic techniques for the synthesis of complex functional units
WO2019113603A1 (en) State machine block for high-level synthesis
JP2737490B2 (ja) 論理回路最適化処理方法
JP3004589B2 (ja) パストランジスタ論理設計方法
JP2002222228A (ja) 高位合成システム及び高位合成方法
JP4470110B2 (ja) 高位合成方法およびシステム
Klimowicz Balanced Power, Speed and Area Minimization of Finite State Machines for FPGA Devices
JP3566813B2 (ja) 回路生成装置
Coussy et al. Constrained algorithmic IP design for system-on-chip
JP2000187681A (ja) 高位合成方法及び装置並びに高位合成プログラムを記録した媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050408

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: 20050908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050908

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: 20080922

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees