JP3370304B2 - 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体 - Google Patents
高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体Info
- Publication number
- JP3370304B2 JP3370304B2 JP2000020974A JP2000020974A JP3370304B2 JP 3370304 B2 JP3370304 B2 JP 3370304B2 JP 2000020974 A JP2000020974 A JP 2000020974A JP 2000020974 A JP2000020974 A JP 2000020974A JP 3370304 B2 JP3370304 B2 JP 3370304B2
- Authority
- JP
- Japan
- Prior art keywords
- path
- false
- paths
- data
- true
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit 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)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、動作記述からレジ
スタトランスファレベル(RTL)の論理回路を自動生
成するLSIの高位合成方法に関し、特に、ASIC
(Application Specific Int
egrated Circuit:特定用途向けIC)
の設計等、短期間の設計を要求される場合に特に有効で
ある高位合成システムおよび高位合成方法に関する。
スタトランスファレベル(RTL)の論理回路を自動生
成するLSIの高位合成方法に関し、特に、ASIC
(Application Specific Int
egrated Circuit:特定用途向けIC)
の設計等、短期間の設計を要求される場合に特に有効で
ある高位合成システムおよび高位合成方法に関する。
【0002】
【従来の技術】高位合成方法とは、ハードウェアの構造
に関する情報を含まず、処理の動作のみを記述した動作
記述から、レジスタトランスファレベル(RTL)の論
理回路を自動生成する技術である。この高位合成方法の
詳細については、「Kluwer Academic
Publishers」による刊行物「High−Le
vel Synthesis」に記載されている。ま
た、特開平5−101141号公報にも、高位合成方法
が開示されている。以下に、高位合成方法の概略につい
て説明する。
に関する情報を含まず、処理の動作のみを記述した動作
記述から、レジスタトランスファレベル(RTL)の論
理回路を自動生成する技術である。この高位合成方法の
詳細については、「Kluwer Academic
Publishers」による刊行物「High−Le
vel Synthesis」に記載されている。ま
た、特開平5−101141号公報にも、高位合成方法
が開示されている。以下に、高位合成方法の概略につい
て説明する。
【0003】<動作記述からCDFGへの変換>
高位合成方法においては、まず、処理の動作のみを記述
した動作記述を解析し、その動作記述を、演算間の実行
順序の依存関係を表現するコントロールデータフローグ
ラフ(CDFG)と呼ばれるモデルに変換する。
した動作記述を解析し、その動作記述を、演算間の実行
順序の依存関係を表現するコントロールデータフローグ
ラフ(CDFG)と呼ばれるモデルに変換する。
【0004】例えば、次の(1)式の動作記述をCDF
Gに変換する場合について説明する。
Gに変換する場合について説明する。
【0005】
f={(a*b)+c+d)}/e …(1)
CDFGは、演算および入出力をそれぞれ節点、データ
依存を有向枝とするグラフである。(1)式の動作記述
に対応するCDFGの例を図1に示す。図1に示すCD
FGにおいて、入力「a」、「b」、「c」、「d」、
「e」がそれぞれ、符号(28)〜(32)で示されて
おり、出力「f」が符号(33)で示されている。ま
た、演算として、乗算「*」が符号(4)で示されてお
り、一対の加算「+」がそれぞれ符号(5)および
(6)で示され、さらに、除算「/」が符号(7)で示
されている。
依存を有向枝とするグラフである。(1)式の動作記述
に対応するCDFGの例を図1に示す。図1に示すCD
FGにおいて、入力「a」、「b」、「c」、「d」、
「e」がそれぞれ、符号(28)〜(32)で示されて
おり、出力「f」が符号(33)で示されている。ま
た、演算として、乗算「*」が符号(4)で示されてお
り、一対の加算「+」がそれぞれ符号(5)および
(6)で示され、さらに、除算「/」が符号(7)で示
されている。
【0006】データデータ依存枝としては、入力「a」
(28)から乗算(4)へのデータ依存枝が符号(1
3)、入力「b」(29)から乗算(4)へのデータ依
存枝が符号(14)、乗算(4)から加算(5)へのデ
ータ依存枝が符号(15)、入力「c」(30)から加
算(5)へのデータ依存枝が符号(16)、加算(5)
から加算(6)へのデータ依存枝が符号(17)、入力
「d」(31)から加算(6)へのデータ依存枝が符号
(18)、加算(6)から除算(7)へのデータ依存枝
が符号(19)、入力「e」(32)から除算(7)へ
のデータ依存枝が符号(20)、除算(7)から出力
「f」(33)へのデータ依存枝が符号(21)によっ
て、それぞれ示されている。
(28)から乗算(4)へのデータ依存枝が符号(1
3)、入力「b」(29)から乗算(4)へのデータ依
存枝が符号(14)、乗算(4)から加算(5)へのデ
ータ依存枝が符号(15)、入力「c」(30)から加
算(5)へのデータ依存枝が符号(16)、加算(5)
から加算(6)へのデータ依存枝が符号(17)、入力
「d」(31)から加算(6)へのデータ依存枝が符号
(18)、加算(6)から除算(7)へのデータ依存枝
が符号(19)、入力「e」(32)から除算(7)へ
のデータ依存枝が符号(20)、除算(7)から出力
「f」(33)へのデータ依存枝が符号(21)によっ
て、それぞれ示されている。
【0007】<スケジューリング>
(1)式の動作記述が、図1に示すCDFGに変換され
ると、CDFGの各演算および入出力を、ステップと呼
ばれる状態遷移機械の状態に対応した時間に割り当てる
スケジューリング処理が実施される。
ると、CDFGの各演算および入出力を、ステップと呼
ばれる状態遷移機械の状態に対応した時間に割り当てる
スケジューリング処理が実施される。
【0008】図2は、図1に示すCDFGをスケジュー
リング処理したものである。ここで、乗算(4)の遅延
時間を50ns、加算(5)および(6)の遅延時間
を、それぞれ10ns、除算7の遅延時間を60nsと
し、各ステップにおけるクロック周期を100nsとす
る。
リング処理したものである。ここで、乗算(4)の遅延
時間を50ns、加算(5)および(6)の遅延時間
を、それぞれ10ns、除算7の遅延時間を60nsと
し、各ステップにおけるクロック周期を100nsとす
る。
【0009】1つのステップにスケジューリングされる
データ依存関係にある演算の遅延時間の合計は、クロッ
ク周期を超えないように設定される。例えば、図2にお
いて、乗算(4)と、2つの加算(5)および(6)
と、除算(7)との遅延時間の合計は、50+10+1
0+60=130(ns)であるので、これら4つの演
算を、1つのステップに全てスケジューリングすること
はできない。
データ依存関係にある演算の遅延時間の合計は、クロッ
ク周期を超えないように設定される。例えば、図2にお
いて、乗算(4)と、2つの加算(5)および(6)
と、除算(7)との遅延時間の合計は、50+10+1
0+60=130(ns)であるので、これら4つの演
算を、1つのステップに全てスケジューリングすること
はできない。
【0010】図2においては、入力「a」(28)およ
び「b」(29)が、ステップ0にスケジューリングさ
れ、乗算(4)と、入力「c」(30)と、一方の加算
(5)とが、ステップ1にスケジューリングされてい
る。さらに、他方の加算(6)と、入力「e」(32)
と、除算(7)とがステップ2にスケジューリングさ
れ、出力「e」(32)のみがステップ3にスケジュー
リングされている。
び「b」(29)が、ステップ0にスケジューリングさ
れ、乗算(4)と、入力「c」(30)と、一方の加算
(5)とが、ステップ1にスケジューリングされてい
る。さらに、他方の加算(6)と、入力「e」(32)
と、除算(7)とがステップ2にスケジューリングさ
れ、出力「e」(32)のみがステップ3にスケジュー
リングされている。
【0011】異なるステップにスケジューリングされた
それぞれの同一の演算は、一つの演算器を共有できる。
従って、図2において、加算(5)および加算(6)
は、異なるステップ1および2にそれぞれスケジューリ
ングされているために、1つの加算器を共有できる。ス
ケジューリングにおいては、このように、ハードウェア
のコストが出来るだけ小さくなるように、各演算をそれ
ぞれ適切なステップに割り当てる。
それぞれの同一の演算は、一つの演算器を共有できる。
従って、図2において、加算(5)および加算(6)
は、異なるステップ1および2にそれぞれスケジューリ
ングされているために、1つの加算器を共有できる。ス
ケジューリングにおいては、このように、ハードウェア
のコストが出来るだけ小さくなるように、各演算をそれ
ぞれ適切なステップに割り当てる。
【0012】図2に示すスケジューリングにおいて、デ
ータ依存枝(13)および(14)が、それぞれ、ステ
ップ0とステップ1とのクロック境界を横切っており、
データ依存枝(17)および(18)が、それぞれ、ス
テップ1とステップ2とのクロック境界を横切ってい
る。さらに、データ依存枝(21)が、ステップ2とス
テップ3とのクロック境界を横切っている。
ータ依存枝(13)および(14)が、それぞれ、ステ
ップ0とステップ1とのクロック境界を横切っており、
データ依存枝(17)および(18)が、それぞれ、ス
テップ1とステップ2とのクロック境界を横切ってい
る。さらに、データ依存枝(21)が、ステップ2とス
テップ3とのクロック境界を横切っている。
【0013】<アロケーション>
アロケーションとは、スケジューリングされたCDFG
の実行に必要な演算器、レジスタ、入出力ピンをそれぞ
れ生成し、CDFGの演算を演算器に、隣接するステッ
プのクロック境界を横切るデータ依存枝をレジスタに、
入出力を入出力ピンに、それぞれ割り当てる処理であ
る。
の実行に必要な演算器、レジスタ、入出力ピンをそれぞ
れ生成し、CDFGの演算を演算器に、隣接するステッ
プのクロック境界を横切るデータ依存枝をレジスタに、
入出力を入出力ピンに、それぞれ割り当てる処理であ
る。
【0014】図3〜図5に、図2に示すようにスケジュ
ーリング処理されたCDFGをアロケーション処理する
場合を示す。
ーリング処理されたCDFGをアロケーション処理する
場合を示す。
【0015】まず、図3に示す演算器アロケーションで
は、乗算器(8)、加算器(9)、除算器(10)をそ
れぞれ1つずつ生成し、CDFGの乗算(4)を乗算器
(8)(図に「mult 1」として示す)に、異なる
ステップに割り当てられた各加算(5)および(6)
を、一つの加算器(9)(図に「adder 1」とし
て示す)に、除算(7)を除算器(10)(図に「di
v 1」として示す)に、それぞれ割り当てる。
は、乗算器(8)、加算器(9)、除算器(10)をそ
れぞれ1つずつ生成し、CDFGの乗算(4)を乗算器
(8)(図に「mult 1」として示す)に、異なる
ステップに割り当てられた各加算(5)および(6)
を、一つの加算器(9)(図に「adder 1」とし
て示す)に、除算(7)を除算器(10)(図に「di
v 1」として示す)に、それぞれ割り当てる。
【0016】次いで、図4に示すレジスタアロケーショ
ンでは、第1レジスタ(11)(図において「reg
1」と表示)と、第2レジスタ(12)(図において
「reg2」と表示)をそれぞれ生成し、ステップ0と
ステップ1とのクロック境界を横切る一方のデータ依存
枝(13)、ステップ1とステップ2とのクロック境界
を横切る一方のデータ依存枝(17)、ステップ2とス
テップ3とのクロック境界を横切るデータ依存枝(2
1)を、それぞれ第1レジスタ(11)に割り当てると
ともに、ステップ0とステップ1とのクロック境界を横
切る他方のデータ依存枝(14)と、ステップ1とステ
ップ2とのクロック境界を横切る他方のデータ依存枝
(18)とを、第2レジスタ(12)に割り当てる。
ンでは、第1レジスタ(11)(図において「reg
1」と表示)と、第2レジスタ(12)(図において
「reg2」と表示)をそれぞれ生成し、ステップ0と
ステップ1とのクロック境界を横切る一方のデータ依存
枝(13)、ステップ1とステップ2とのクロック境界
を横切る一方のデータ依存枝(17)、ステップ2とス
テップ3とのクロック境界を横切るデータ依存枝(2
1)を、それぞれ第1レジスタ(11)に割り当てると
ともに、ステップ0とステップ1とのクロック境界を横
切る他方のデータ依存枝(14)と、ステップ1とステ
ップ2とのクロック境界を横切る他方のデータ依存枝
(18)とを、第2レジスタ(12)に割り当てる。
【0017】図5に示す入出力アロケーションでは、4
つの入力ピン「a」(22)、「b」(23)、「c」
(24)、「d」(25)、「e」(26)と、1つの
出力ピン「f」(27)をそれぞれ生成し、入力「a」
(28)を入力ピン「a」(22)に、入力「b」(2
9)を入力ピン「b」(23)に、入力「c」(30)
を入力ピン「c」(24)に、入力「d」(31)を入
力ピン「d」(25)に、入力「e」(32)を入力ピ
ン「e」(26)に、出力「f」(33)を出力ピン
「f」(27)に、それぞれ割り当てる。
つの入力ピン「a」(22)、「b」(23)、「c」
(24)、「d」(25)、「e」(26)と、1つの
出力ピン「f」(27)をそれぞれ生成し、入力「a」
(28)を入力ピン「a」(22)に、入力「b」(2
9)を入力ピン「b」(23)に、入力「c」(30)
を入力ピン「c」(24)に、入力「d」(31)を入
力ピン「d」(25)に、入力「e」(32)を入力ピ
ン「e」(26)に、出力「f」(33)を出力ピン
「f」(27)に、それぞれ割り当てる。
【0018】<データパス生成>
データパス生成とは、CDFGのデータ依存枝に対応し
た回路のパスを生成する処理である。図6は、図5に示
す入出力アロケーションデータからのパス生成の例を示
す。
た回路のパスを生成する処理である。図6は、図5に示
す入出力アロケーションデータからのパス生成の例を示
す。
【0019】演算器、レジスタ等は共有される場合は、
マルチプレクサを生成し、演算器やレジスタの入力デー
タを選択できるようにする。第1レジスタ(11)に対
しては、第1マルチプレクサ(41)(図において、
「mux 1」として表す)が生成され、第2レジスタ
(12)に対しては、第2マルチプレクサ(41)(図
6において、「mux 2」として表す)が生成され
る。さらに、共用される加算器9に対しては、第3マル
チプレクサ(43)(図6において、「mux 3」と
して表す)と、第4マルチプレクサ(44)(図6にお
いて、「mux 4」として表す)がそれぞれ生成され
る。
マルチプレクサを生成し、演算器やレジスタの入力デー
タを選択できるようにする。第1レジスタ(11)に対
しては、第1マルチプレクサ(41)(図において、
「mux 1」として表す)が生成され、第2レジスタ
(12)に対しては、第2マルチプレクサ(41)(図
6において、「mux 2」として表す)が生成され
る。さらに、共用される加算器9に対しては、第3マル
チプレクサ(43)(図6において、「mux 3」と
して表す)と、第4マルチプレクサ(44)(図6にお
いて、「mux 4」として表す)がそれぞれ生成され
る。
【0020】CDFGの入力「a」(28)から、デー
タ依存枝(13)を通り、乗算(4)に入力されるデー
タパスに関しては、まず、入力ピン「a」(22)か
ら、第1マルチプレクサ41を介して、第1レジスタ
(11)へのパスを生成し、第1レジスタ(11)から
乗算器(8)へのパスを生成する。同様に、全てのデー
タパスに対応したパスを生成する。
タ依存枝(13)を通り、乗算(4)に入力されるデー
タパスに関しては、まず、入力ピン「a」(22)か
ら、第1マルチプレクサ41を介して、第1レジスタ
(11)へのパスを生成し、第1レジスタ(11)から
乗算器(8)へのパスを生成する。同様に、全てのデー
タパスに対応したパスを生成する。
【0021】<コントローラ生成>
コントローラ生成とは、アロケーション、データパス生
成により生成された演算器、レジスタ、マルチプレクサ
を制御するコントローラを生成する処理である。
成により生成された演算器、レジスタ、マルチプレクサ
を制御するコントローラを生成する処理である。
【0022】図7は、図6にて生成されたパスに対する
コントローラ生成の例を示す。コントローラ50は、第
1および第2のマルチプレクサ(41)および(4
2)、第1および第2のレジスタ(11)および(1
2)、第3および第4のマルチプレクサ(43)および
(44)を、それぞれ制御する。
コントローラ生成の例を示す。コントローラ50は、第
1および第2のマルチプレクサ(41)および(4
2)、第1および第2のレジスタ(11)および(1
2)、第3および第4のマルチプレクサ(43)および
(44)を、それぞれ制御する。
【0023】
【発明が解決しようとする課題】このように、データ依
存関係にある複数の演算を、1つのステップにスケジュ
ーリング可能であって、しかも、複数の演算間において
1つの演算器を共有可能な高位合成方法では、生成され
るデータパスに、各ステップ(状態遷移機械の各状態)
において、全体がアクティブになるトゥルー(tru
e)パス以外に、トゥルー(true)パスにおける部
分パスの組合せによって、全体がアクティブになること
はないフォールス(false)パスが生成されること
がある。
存関係にある複数の演算を、1つのステップにスケジュ
ーリング可能であって、しかも、複数の演算間において
1つの演算器を共有可能な高位合成方法では、生成され
るデータパスに、各ステップ(状態遷移機械の各状態)
において、全体がアクティブになるトゥルー(tru
e)パス以外に、トゥルー(true)パスにおける部
分パスの組合せによって、全体がアクティブになること
はないフォールス(false)パスが生成されること
がある。
【0024】図2に示すスケジューリング結果から生成
された図8に示すデータパスにおいて、第1レジスタ
(11)〜乗算器(8)〜第3マルチプレクサ(43)
〜加算器(9)〜除算器(10)を通って、第1マルチ
プレクサ(41)から第1レジスタ(11)に戻るデー
タパス(47)が、フォールス(false)パスとし
て生成される。このフォールス(false)パスは、
120nsの遅延時間となる。このフォールス(fal
se)パスは、第1レジスタ(11)〜乗算器(8)〜
第3マルチプレクサ(43)〜加算器(9)〜第1マル
チプレクサ(41)〜第1レジスタ(11)のトゥルー
(true)パスにおける第1レジスタ(11)〜乗算
器(8)〜第3マルチプレクサ(43)〜加算器(9)
というデータパス部分と、加算器(9)〜除算器(1
0)〜第1マルチプレクサ(41)〜第1レジスタ(1
1)というデータパス部分との組み合わせによって生成
される。
された図8に示すデータパスにおいて、第1レジスタ
(11)〜乗算器(8)〜第3マルチプレクサ(43)
〜加算器(9)〜除算器(10)を通って、第1マルチ
プレクサ(41)から第1レジスタ(11)に戻るデー
タパス(47)が、フォールス(false)パスとし
て生成される。このフォールス(false)パスは、
120nsの遅延時間となる。このフォールス(fal
se)パスは、第1レジスタ(11)〜乗算器(8)〜
第3マルチプレクサ(43)〜加算器(9)〜第1マル
チプレクサ(41)〜第1レジスタ(11)のトゥルー
(true)パスにおける第1レジスタ(11)〜乗算
器(8)〜第3マルチプレクサ(43)〜加算器(9)
というデータパス部分と、加算器(9)〜除算器(1
0)〜第1マルチプレクサ(41)〜第1レジスタ(1
1)というデータパス部分との組み合わせによって生成
される。
【0025】このようなフォールス(false)パス
が生成されて、そのフォールス(false)パスによ
る遅延がクロック周期を超えても、論理回路は正常に動
作する。それは、各ステップ(状態遷移機械の各状態)
において、フォールス(false)パスのパス全体が
アクティブになることはないからである。
が生成されて、そのフォールス(false)パスによ
る遅延がクロック周期を超えても、論理回路は正常に動
作する。それは、各ステップ(状態遷移機械の各状態)
において、フォールス(false)パスのパス全体が
アクティブになることはないからである。
【0026】しかしながら、通常、論理合成ツールは、
データパスにおけるレジスタ〜レジスタ間におけるいず
れのパスがトゥルー(true)パスであり、いずれの
パスがフォールス(false)パスであるかを判断で
きない。そのため、論理合成においては、遅延最適化す
る必要のないフォールス(false)パスについて
も、トゥルー(true)パスと同様に遅延最適化を行
い、遅延をクロック周期以内に収めようとする。その結
果、設計される論理回路の面積が大きくなってしまう。
また、論理合成の結果、あるパスの遅延がクロック周期
を越えてしまった場合、論理合成ツールは、そのパスが
フォールス(false)パスであっても、遅延制約が
満たされないと言うエラーを発生してしまう。
データパスにおけるレジスタ〜レジスタ間におけるいず
れのパスがトゥルー(true)パスであり、いずれの
パスがフォールス(false)パスであるかを判断で
きない。そのため、論理合成においては、遅延最適化す
る必要のないフォールス(false)パスについて
も、トゥルー(true)パスと同様に遅延最適化を行
い、遅延をクロック周期以内に収めようとする。その結
果、設計される論理回路の面積が大きくなってしまう。
また、論理合成の結果、あるパスの遅延がクロック周期
を越えてしまった場合、論理合成ツールは、そのパスが
フォールス(false)パスであっても、遅延制約が
満たされないと言うエラーを発生してしまう。
【0027】本発明は、このような問題を解決するもの
であり、その目的は、動作記述から、RTL回路だけで
なく、フォールス(false)パスの情報も自動生成
することにより、論理合成ツールがフォールス(fal
se)パスに関して遅延最適化を行うおそれがなく、ま
た、フォールス(false)パスによる遅延がクロッ
ク周期を超えている場合に、論理合成ツールが遅延の制
約が満たされないことによってエラーを発生させるおそ
れのない高位合成システムおよび高位合成方法を提供す
ることにある。
であり、その目的は、動作記述から、RTL回路だけで
なく、フォールス(false)パスの情報も自動生成
することにより、論理合成ツールがフォールス(fal
se)パスに関して遅延最適化を行うおそれがなく、ま
た、フォールス(false)パスによる遅延がクロッ
ク周期を超えている場合に、論理合成ツールが遅延の制
約が満たされないことによってエラーを発生させるおそ
れのない高位合成システムおよび高位合成方法を提供す
ることにある。
【0028】
【課題を解決するための手段】本発明の高位合成システ
ムは、処理の動作のみを記述した動作記述を、演算間の
実行順序の依存関係を表現するコントロールデータフロ
ーグラフ(CDFG)と呼ばれるモデルに変換するモデ
ル変換手段と、前記CDFGの各演算および入出力を、
ステップと呼ばれる状態遷移機械の状態に対応した時間
にそれぞれ割り当てるスケジューリング処理するスケジ
ューリング処理手段と、スケジューリングされたCDF
Gの実行に必要な演算器、レジスタ、入出力ピンを、C
DFGの演算、各ステップのクロック境界を横切るデー
タ依存枝、入出力に、それぞれ割り当てるアロケーショ
ン手段と、CDFGのデータ依存枝に対応した回路のパ
スをデータパスとして生成し、生成されたデータパスか
ら、各ステップにてそれぞれアクティブになるトゥルー
(true)パスを検出するデータパス生成手段と、該
検出されたトゥルー(true)パスの部分パスを組合
せて生成されるパスから、トゥルー(true)パスに
含まれないパスとして、トゥルー(true:真)パス
の部分パス同士の組合せ、全体がアクティブにならない
フォールス(false)パスの部分パス同士の組合
せ、または、トゥルー(true)パスの部分パスとフ
ォールス(false)パスの部分パスとの組合せにて
生成されるフォールス(false)パスを検出するフ
ォールス(false)パス検出手段とを有し、レジス
タトランスファレベルの論理回路を自動生成することを
特徴とする。また、本発明の高位合成方法は、モデル変
換手段と、スケジューリング処理手段と、アロケーショ
ン手段と、データパス生成手段と、フォールス(fal
se)パス検出手段とを有する高位合成システムが行う
高位合成方法であって、該モデル変換手段が処理の動作
のみを記述した動作記述を、演算間の実行順序の依存関
係を表現するコントロールデータフローグラフ(CDF
G)と呼ばれるモデルに変換する工程と、該スケジュー
リング処理手段が前記CDFGの各演算および入出力
を、ステップと呼ばれる状態遷移機械の状態に対応した
時間にそれぞれ割り当てるスケジューリング処理する工
程と、該アロケーション手段がスケジューリングされた
CDFGの実行に必要な演算器、レジスタ、入出力ピン
を、CDFGの演算、各ステップのクロック境界を横切
るデータ依存枝、入出力に、それぞれ割り当てる工程
と、該データパス生成手段がCDFGのデータ依存枝に
対応した回路のパスをデータパスとして生成し、生成さ
れたデータパスから、各ステップにてそれぞれアクティ
ブになるトゥルー(true)パスを検出するデータパ
ス生成工程と、該フォールス(false)パス検出手
段が、該検出されたトゥルー(true)パスの部分パ
スを組合せて生成されるパスから、トゥルー(tru
e)パスに含まれないパスとして、トゥルー(tru
e:真)パスの部分パス同士の組合せ、全体がアクティ
ブにならないフォールス(false)パスの部分パス
同士の組合せ、または、トゥルー(true)パスの部
分パスとフォールス(false)パスの部分パスとの
組合せにて生成されるフォールス(false)パスを
検出する工程と、を実行することによりレジスタトラン
スファレベルの論理回路を自動生成することを特徴とす
る。
ムは、処理の動作のみを記述した動作記述を、演算間の
実行順序の依存関係を表現するコントロールデータフロ
ーグラフ(CDFG)と呼ばれるモデルに変換するモデ
ル変換手段と、前記CDFGの各演算および入出力を、
ステップと呼ばれる状態遷移機械の状態に対応した時間
にそれぞれ割り当てるスケジューリング処理するスケジ
ューリング処理手段と、スケジューリングされたCDF
Gの実行に必要な演算器、レジスタ、入出力ピンを、C
DFGの演算、各ステップのクロック境界を横切るデー
タ依存枝、入出力に、それぞれ割り当てるアロケーショ
ン手段と、CDFGのデータ依存枝に対応した回路のパ
スをデータパスとして生成し、生成されたデータパスか
ら、各ステップにてそれぞれアクティブになるトゥルー
(true)パスを検出するデータパス生成手段と、該
検出されたトゥルー(true)パスの部分パスを組合
せて生成されるパスから、トゥルー(true)パスに
含まれないパスとして、トゥルー(true:真)パス
の部分パス同士の組合せ、全体がアクティブにならない
フォールス(false)パスの部分パス同士の組合
せ、または、トゥルー(true)パスの部分パスとフ
ォールス(false)パスの部分パスとの組合せにて
生成されるフォールス(false)パスを検出するフ
ォールス(false)パス検出手段とを有し、レジス
タトランスファレベルの論理回路を自動生成することを
特徴とする。また、本発明の高位合成方法は、モデル変
換手段と、スケジューリング処理手段と、アロケーショ
ン手段と、データパス生成手段と、フォールス(fal
se)パス検出手段とを有する高位合成システムが行う
高位合成方法であって、該モデル変換手段が処理の動作
のみを記述した動作記述を、演算間の実行順序の依存関
係を表現するコントロールデータフローグラフ(CDF
G)と呼ばれるモデルに変換する工程と、該スケジュー
リング処理手段が前記CDFGの各演算および入出力
を、ステップと呼ばれる状態遷移機械の状態に対応した
時間にそれぞれ割り当てるスケジューリング処理する工
程と、該アロケーション手段がスケジューリングされた
CDFGの実行に必要な演算器、レジスタ、入出力ピン
を、CDFGの演算、各ステップのクロック境界を横切
るデータ依存枝、入出力に、それぞれ割り当てる工程
と、該データパス生成手段がCDFGのデータ依存枝に
対応した回路のパスをデータパスとして生成し、生成さ
れたデータパスから、各ステップにてそれぞれアクティ
ブになるトゥルー(true)パスを検出するデータパ
ス生成工程と、該フォールス(false)パス検出手
段が、該検出されたトゥルー(true)パスの部分パ
スを組合せて生成されるパスから、トゥルー(tru
e)パスに含まれないパスとして、トゥルー(tru
e:真)パスの部分パス同士の組合せ、全体がアクティ
ブにならないフォールス(false)パスの部分パス
同士の組合せ、または、トゥルー(true)パスの部
分パスとフォールス(false)パスの部分パスとの
組合せにて生成されるフォールス(false)パスを
検出する工程と、を実行することによりレジスタトラン
スファレベルの論理回路を自動生成することを特徴とす
る。
【0030】本発明の高位合成方法は、前記列挙された
フォールス(false)パスから、いずれかの演算器
を共通に含む全てのパスを検索する工程と、その検索さ
れた全てのパスから、該演算器以前の部分パスと、該演
算器と、該演算器以降の部分パスとを全て組み合わせて
表わされる全てのパスを列挙する工程と、その列挙され
た全てのパスから、トゥルー(true)パスに含まれ
ないパスを検索して、フォールス(false)パスと
して列挙する工程と、前記各工程を、各演算器に関して
繰り返す工程とをさらに包含する。
フォールス(false)パスから、いずれかの演算器
を共通に含む全てのパスを検索する工程と、その検索さ
れた全てのパスから、該演算器以前の部分パスと、該演
算器と、該演算器以降の部分パスとを全て組み合わせて
表わされる全てのパスを列挙する工程と、その列挙され
た全てのパスから、トゥルー(true)パスに含まれ
ないパスを検索して、フォールス(false)パスと
して列挙する工程と、前記各工程を、各演算器に関して
繰り返す工程とをさらに包含する。
【0031】本発明の高位合成方法では、前記検出され
たフォールス(false)パスの情報が、論理合成ツ
ールにおける論理合成時の遅延見積りとして利用されて
もよい。
たフォールス(false)パスの情報が、論理合成ツ
ールにおける論理合成時の遅延見積りとして利用されて
もよい。
【0032】本発明の記録媒体は、前記高位合成方法の
手順がプログラムとして記録されて、該プログラムによ
ってレジスタトランスファレベルの論理回路が自動生成
されることを特徴とする。
手順がプログラムとして記録されて、該プログラムによ
ってレジスタトランスファレベルの論理回路が自動生成
されることを特徴とする。
【0034】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて説明する。図9は、本発明の高位合成方法の
実施の形態の一例を示すフローチャートである。この高
位合成方法では、前述した従来の高位合成方法と同様
に、まず、動作記述(51)を入力することにより、動
作記述(51)に対応するCDFGを生成し(図9のス
テップS1参照、以下同様)、生成されたCDFGのス
ケジューリング(ステップS2)、および、アロケーシ
ョンを行う(ステップS3)。そして、データパス生成
を行った後に(ステップS4)、コントローラ生成を行
い(ステップS5)、最終的なRTL回路(55)を生
成する。
に基づいて説明する。図9は、本発明の高位合成方法の
実施の形態の一例を示すフローチャートである。この高
位合成方法では、前述した従来の高位合成方法と同様
に、まず、動作記述(51)を入力することにより、動
作記述(51)に対応するCDFGを生成し(図9のス
テップS1参照、以下同様)、生成されたCDFGのス
ケジューリング(ステップS2)、および、アロケーシ
ョンを行う(ステップS3)。そして、データパス生成
を行った後に(ステップS4)、コントローラ生成を行
い(ステップS5)、最終的なRTL回路(55)を生
成する。
【0035】このようにしてRTL回路(55)を生成
する際に、データパス生成(ステップS5)によって生
成されたデータパス(52)からトゥルー(true)
パス(53)を列挙して(ステップS6)、列挙された
トゥルー(true)パス(53)の情報に基づいて、
フォールス(false)パス情報(54)を生成し
(ステップS8)、フォールス(false)パス情報
(54)を列挙するようになっている。
する際に、データパス生成(ステップS5)によって生
成されたデータパス(52)からトゥルー(true)
パス(53)を列挙して(ステップS6)、列挙された
トゥルー(true)パス(53)の情報に基づいて、
フォールス(false)パス情報(54)を生成し
(ステップS8)、フォールス(false)パス情報
(54)を列挙するようになっている。
【0036】図10に、この場合のデータパス生成のフ
ローチャートを示す。まず、通常のデータパス生成と同
様に、スケジューリングおよびアロケーションの結果
(56)に基づいて、CDFGの各データ依存枝に対応
したパスを生成する(図10のステップS11参照、以
下同様)。この場合、スケジューリングにおける各ステ
ップ毎に、パス情報を記憶および追加し(ステップS1
2)、データパスからトゥルー(true)パスを検索
する。そして、全てのデータ依存枝に対応したデータパ
スが生成されると(ステップS13)、データパス(5
2)およびトゥルー(true)パス情報(53)を出
力する。
ローチャートを示す。まず、通常のデータパス生成と同
様に、スケジューリングおよびアロケーションの結果
(56)に基づいて、CDFGの各データ依存枝に対応
したパスを生成する(図10のステップS11参照、以
下同様)。この場合、スケジューリングにおける各ステ
ップ毎に、パス情報を記憶および追加し(ステップS1
2)、データパスからトゥルー(true)パスを検索
する。そして、全てのデータ依存枝に対応したデータパ
スが生成されると(ステップS13)、データパス(5
2)およびトゥルー(true)パス情報(53)を出
力する。
【0037】図11〜図13は、前述した(1)式の動
作記述に対するCDFGに対応して生成されるデータパ
ス生成の一例を示す。(1)式の動作記述に対するCD
FG、スケジューリング、アロケーションは、図1〜図
7に示す通りである。
作記述に対するCDFGに対応して生成されるデータパ
ス生成の一例を示す。(1)式の動作記述に対するCD
FG、スケジューリング、アロケーションは、図1〜図
7に示す通りである。
【0038】図11に示すように、入力「a」(28)
から乗算(4)へのデータ依存枝(13)に対応するデ
ータパスは、入力ピン「a」(22)から第1レジスタ
(11)へのパス(61)と、第1レジスタ(11)か
ら乗算器(8)へのパス(62)である。入力ピン
「a」(22)から第1レジスタ(11)へのパス(6
1)は、ステップ0にてアクティブになり、第1レジス
タ(11)から乗算器(8)へのパス(62)はステッ
プ1にてアクティブになるため、それぞれがトゥルー
(true)パスであり、パス(61)の情報をステッ
プ0に記憶し、パス(62)の情報をステップ1に記憶
する。
から乗算(4)へのデータ依存枝(13)に対応するデ
ータパスは、入力ピン「a」(22)から第1レジスタ
(11)へのパス(61)と、第1レジスタ(11)か
ら乗算器(8)へのパス(62)である。入力ピン
「a」(22)から第1レジスタ(11)へのパス(6
1)は、ステップ0にてアクティブになり、第1レジス
タ(11)から乗算器(8)へのパス(62)はステッ
プ1にてアクティブになるため、それぞれがトゥルー
(true)パスであり、パス(61)の情報をステッ
プ0に記憶し、パス(62)の情報をステップ1に記憶
する。
【0039】同様に、入力「b」(29)から乗算
(4)へのデータ依存枝(14)に対応するデータパス
は、ステップ0でアクティブになる入力ピン「b」(2
3)から第2レジスタ(12)へのパス(63)と、ス
テップ1でアクティブになる第2レジスタ(12)から
乗算器(8)へのパス(64)であり、パス(63)お
よびパス(64)の各パス情報を、ステップ0およびス
テップ1にそれぞれ記憶する。
(4)へのデータ依存枝(14)に対応するデータパス
は、ステップ0でアクティブになる入力ピン「b」(2
3)から第2レジスタ(12)へのパス(63)と、ス
テップ1でアクティブになる第2レジスタ(12)から
乗算器(8)へのパス(64)であり、パス(63)お
よびパス(64)の各パス情報を、ステップ0およびス
テップ1にそれぞれ記憶する。
【0040】さらに、図12に示すように、乗算(4)
から加算(5)へのデータ依存枝(15)に対応するパ
スは、乗算器(8)から加算器(9)へのパス(65)
であり、このパス(65)はステップ1でアクティブに
なるためトゥルー(true)パスであり、そのパス情
報を、ステップ1に記憶する。この場合、ステップ1に
は、第1レジスタ(11)から乗算器(8)へのパス
(62)の情報と、第2レジスタ(12)から乗算器
(8)へのパス(64)の情報とがすでに記憶されてい
るために、それらのパス(62)および(64)のパス
情報に対して、乗算器(8)から加算器(9)へのパス
(65)の情報を追加する形でステップ1に記憶され
る。従って、ステップ1に新たに記憶されたパス情報
は、第1レジスタ11〜乗算器8〜加算器9のパスの情
報と、第2レジスタ12〜乗算器8〜加算器9のパスの
情報である。
から加算(5)へのデータ依存枝(15)に対応するパ
スは、乗算器(8)から加算器(9)へのパス(65)
であり、このパス(65)はステップ1でアクティブに
なるためトゥルー(true)パスであり、そのパス情
報を、ステップ1に記憶する。この場合、ステップ1に
は、第1レジスタ(11)から乗算器(8)へのパス
(62)の情報と、第2レジスタ(12)から乗算器
(8)へのパス(64)の情報とがすでに記憶されてい
るために、それらのパス(62)および(64)のパス
情報に対して、乗算器(8)から加算器(9)へのパス
(65)の情報を追加する形でステップ1に記憶され
る。従って、ステップ1に新たに記憶されたパス情報
は、第1レジスタ11〜乗算器8〜加算器9のパスの情
報と、第2レジスタ12〜乗算器8〜加算器9のパスの
情報である。
【0041】以下、同様にして、各ステップ毎にパス情
報をそれぞれ記憶および追加していく。
報をそれぞれ記憶および追加していく。
【0042】その結果、ステップ1においては、前述し
た2つのトゥルー(true)パスの情報と、入力ピン
「c」(24)〜加算器(9)〜第1レジスタ(11)
のパスの情報と、入力ピン「d」(25)〜第2レジス
タ(12)のパスの情報とが記憶される。ステップ2に
は、第1レジスタ(11)〜加算器(9)〜除算器(1
0)〜第1レジスタ(11)のパスの情報と、第2レジ
スタ(12)〜加算器(9)〜除算器(10)〜第1レ
ジスタ(11)のパスの情報と、入力ピン「e」(2
6)〜除算器(10)〜第1レジスタ(11)のパスの
情報とが記憶される。
た2つのトゥルー(true)パスの情報と、入力ピン
「c」(24)〜加算器(9)〜第1レジスタ(11)
のパスの情報と、入力ピン「d」(25)〜第2レジス
タ(12)のパスの情報とが記憶される。ステップ2に
は、第1レジスタ(11)〜加算器(9)〜除算器(1
0)〜第1レジスタ(11)のパスの情報と、第2レジ
スタ(12)〜加算器(9)〜除算器(10)〜第1レ
ジスタ(11)のパスの情報と、入力ピン「e」(2
6)〜除算器(10)〜第1レジスタ(11)のパスの
情報とが記憶される。
【0043】ステップ3には、第1レジスタ(11)〜
出力ピン「f」(27)のパスの情報が記憶される。
出力ピン「f」(27)のパスの情報が記憶される。
【0044】このように、各ステップ毎に、データパス
に関する情報を記憶することにより、各ステップにおい
てアクティブになる全てのトゥルー(true)パスを
検出することができる。
に関する情報を記憶することにより、各ステップにおい
てアクティブになる全てのトゥルー(true)パスを
検出することができる。
【0045】図13は、各ステップに記憶された、各ス
テップでアクティブになるトゥルー(true)パスの
情報の内容を示す。また、図14(a)〜(d)は、そ
れぞれ、各ステップ0〜3に記憶されたトゥルー(tr
ue)パスのパス情報の模式図である。
テップでアクティブになるトゥルー(true)パスの
情報の内容を示す。また、図14(a)〜(d)は、そ
れぞれ、各ステップ0〜3に記憶されたトゥルー(tr
ue)パスのパス情報の模式図である。
【0046】このようなトゥルー(true)パスに対
して、フォールス(false)パスは、 ・2分割した2つのトゥルー(true)パスの組合せ ・2分割したトゥルー(true)パスと2分割したフ
ォールス(false)パスの組合せ ・2分割した2つのフォールス(false)パスの組
合せ によって生成される。例えば、図15(a)に示すよう
に、第1レジスタ(11)〜乗算器(8)〜加算器
(9)というパス(71)は、第1レジスタ(11)〜
乗算器(8)〜加算器(9)〜第1レジスタ(11)と
いうステップ1(step1)においてアクティブにな
るトゥルー(true)パスを2分割したものである。
して、フォールス(false)パスは、 ・2分割した2つのトゥルー(true)パスの組合せ ・2分割したトゥルー(true)パスと2分割したフ
ォールス(false)パスの組合せ ・2分割した2つのフォールス(false)パスの組
合せ によって生成される。例えば、図15(a)に示すよう
に、第1レジスタ(11)〜乗算器(8)〜加算器
(9)というパス(71)は、第1レジスタ(11)〜
乗算器(8)〜加算器(9)〜第1レジスタ(11)と
いうステップ1(step1)においてアクティブにな
るトゥルー(true)パスを2分割したものである。
【0047】また、図15(b)に示すように、加算器
(9)〜除算器(10)〜第1レジスタ(11)という
パス(72)は、第1レジスタ(11)〜加算器(9)
〜除算器(10)〜第1レジスタ(11)というステッ
プ2(step2)にてアクティブになるトゥルー(t
rue)パス72を2分割したパスである。これらの組
合せで、図15(c)に示すように、第1レジスタ(1
1)〜乗算器(8)〜加算器(9)〜除算器(10)〜
第1レジスタ(11)というフォールス(false)
パスが生成される。
(9)〜除算器(10)〜第1レジスタ(11)という
パス(72)は、第1レジスタ(11)〜加算器(9)
〜除算器(10)〜第1レジスタ(11)というステッ
プ2(step2)にてアクティブになるトゥルー(t
rue)パス72を2分割したパスである。これらの組
合せで、図15(c)に示すように、第1レジスタ(1
1)〜乗算器(8)〜加算器(9)〜除算器(10)〜
第1レジスタ(11)というフォールス(false)
パスが生成される。
【0048】図16は、フォールス(false)パス
の検出する手順を示すフローチャートである。フォール
ス(false)パスを検出する場合には、まず、すで
に検出されて格納されたフォールス(false)パス
を示す変数「paths_false」をクリアし(図
16のステップS21参照、以下同様)、変数「pat
hs」に、全てのトゥルー(true)パスを格納する
(ステップS22)。
の検出する手順を示すフローチャートである。フォール
ス(false)パスを検出する場合には、まず、すで
に検出されて格納されたフォールス(false)パス
を示す変数「paths_false」をクリアし(図
16のステップS21参照、以下同様)、変数「pat
hs」に、全てのトゥルー(true)パスを格納する
(ステップS22)。
【0049】次に、ある演算器(A)に着目し、変数
「paths」に含まれるパスから、演算器(A)を共
通に含むパスを検索し、変数「paths_a」に格納
する(ステップS23)。
「paths」に含まれるパスから、演算器(A)を共
通に含むパスを検索し、変数「paths_a」に格納
する(ステップS23)。
【0050】次に、変数「paths_a」の各パス
を、 ・演算器(A)以前の部分パス ・演算器(A) ・演算器(A)以降の部分パス に分割し、(演算器(A)以前の各部分パス、演算器
(A)、演算器(A)以降の各部分パス)の全ての組合
せで表わされるパスを、変数「paths_cand」
に格納する(ステップS24)。
を、 ・演算器(A)以前の部分パス ・演算器(A) ・演算器(A)以降の部分パス に分割し、(演算器(A)以前の各部分パス、演算器
(A)、演算器(A)以降の各部分パス)の全ての組合
せで表わされるパスを、変数「paths_cand」
に格納する(ステップS24)。
【0051】次に、変数「paths_cand」に含
まれるパスのうち、トゥルー(true)パスでないも
のを検索し、新たに検出されたフォールス(fals
e)パスとして変数「paths_false」に追加
する(ステップS25)。
まれるパスのうち、トゥルー(true)パスでないも
のを検索し、新たに検出されたフォールス(fals
e)パスとして変数「paths_false」に追加
する(ステップS25)。
【0052】演算器(A)に関する処理が終了すると、
まだ検索してない演算器(B)があれば(ステップS2
6)、その演算器(B)に関して、演算器(A)と同様
にして(ステップS27)、ステップS24およびS2
5の処理を繰り返す。
まだ検索してない演算器(B)があれば(ステップS2
6)、その演算器(B)に関して、演算器(A)と同様
にして(ステップS27)、ステップS24およびS2
5の処理を繰り返す。
【0053】以上の処理で、新たにフォールス(fal
se)パスが検出されれば(ステップS28)、新たに
検出されたフォールス(false)パスを全てのトゥ
ルー(true)パスと共に、変数「paths」に格
納する(ステップS29)。そして、ステップS23か
らの処理を繰り返す。この場合、既に、フォールス(f
alse)パスが検出された演算器に関しても、再度、
フォールス(false)パスの検索が実施される。
se)パスが検出されれば(ステップS28)、新たに
検出されたフォールス(false)パスを全てのトゥ
ルー(true)パスと共に、変数「paths」に格
納する(ステップS29)。そして、ステップS23か
らの処理を繰り返す。この場合、既に、フォールス(f
alse)パスが検出された演算器に関しても、再度、
フォールス(false)パスの検索が実施される。
【0054】前述したように、フォールス(fals
e)パスは、 ・2分割した2つのトゥルー(true)パスの組合せ ・2分割したトゥルー(true)パスと2分割したフ
ォールス(false)パスの組合せ ・2分割した2つのフォールス(false)パスの組
合せ のいずれかにより生成されるため、新たに検出されたフ
ォールス(false)パスを、変数「paths」に
追加することにより、フォールス(false)パスの
部分パスから生成されるフォールス(false)パス
も検出することができる。
e)パスは、 ・2分割した2つのトゥルー(true)パスの組合せ ・2分割したトゥルー(true)パスと2分割したフ
ォールス(false)パスの組合せ ・2分割した2つのフォールス(false)パスの組
合せ のいずれかにより生成されるため、新たに検出されたフ
ォールス(false)パスを、変数「paths」に
追加することにより、フォールス(false)パスの
部分パスから生成されるフォールス(false)パス
も検出することができる。
【0055】新たにフォールス(false)パスが検
出されなくなれば、その時点での変数「paths_f
alse」に含まれているパスを、フォールス(fal
se)パスとして列挙する(ステップS30)。
出されなくなれば、その時点での変数「paths_f
alse」に含まれているパスを、フォールス(fal
se)パスとして列挙する(ステップS30)。
【0056】図17〜図20に基づいて、図13に示す
トゥルー(true)パスからフォールス(fals
e)パスの検出例について説明する。まず、図17に示
すように、データパス生成で列挙された全てのトゥルー
(true)パス(図13参照)から、例えば、加算器
(9)(adder 1)を含むパスを検索する。
トゥルー(true)パスからフォールス(fals
e)パスの検出例について説明する。まず、図17に示
すように、データパス生成で列挙された全てのトゥルー
(true)パス(図13参照)から、例えば、加算器
(9)(adder 1)を含むパスを検索する。
【0057】次に、検索されたパスを、図18に示すよ
うに、加算器(9)以前のパス、加算器(9)、加算器
(9)以降のパスに分割する。そして、図18に示すパ
スにおいて、分割された加算器(9)以前のパスと、加
算器(9)と、加算器(9)以降のパスとを、全て組み
合わせて表わされる全てのパスを、図19に示すよう
に、フォールス(false)パスの候補として列挙す
る。
うに、加算器(9)以前のパス、加算器(9)、加算器
(9)以降のパスに分割する。そして、図18に示すパ
スにおいて、分割された加算器(9)以前のパスと、加
算器(9)と、加算器(9)以降のパスとを、全て組み
合わせて表わされる全てのパスを、図19に示すよう
に、フォールス(false)パスの候補として列挙す
る。
【0058】このようにして列挙されたフォールス(f
alse)パスの候補から、図20に示すように、トゥ
ルー(true)パスでないものを、フォールス(fa
lse)パスとして列挙する。これにより、フォールス
(false)パスが検出される。
alse)パスの候補から、図20に示すように、トゥ
ルー(true)パスでないものを、フォールス(fa
lse)パスとして列挙する。これにより、フォールス
(false)パスが検出される。
【0059】そして、このような処理が、各演算器に対
して繰り返し実施されることにより、全てのフォールス
(false)パスが検出される。
して繰り返し実施されることにより、全てのフォールス
(false)パスが検出される。
【0060】このような本発明の高位合成方法を実行す
るプログラムは、磁気ディスク、光ディスク等の任意の
記録媒体に記録される。
るプログラムは、磁気ディスク、光ディスク等の任意の
記録媒体に記録される。
【0061】このように、論理合成の前に、高位合成の
段階にてフォールス(false)パスを検出すること
ができるために、論理合成ツールに対してフォールス
(false)パス情報を与えることにより、論理合成
ツールは、レジスタ〜レジスタ間におけるいずれのパス
がトゥルー(true)パスであり、いずれのパスがフ
ォールス(false)パスであるかを判断できること
になる。その結果、フォールス(false)パスにつ
いては、遅延最適化を行わないようにすることにより、
設計される回路の面積が大きくなるおそれがなく、ま
た、論理合成ツールは、フォールス(false)パス
の遅延により遅延制約が満たされないというエラーを発
生するおそれもない。
段階にてフォールス(false)パスを検出すること
ができるために、論理合成ツールに対してフォールス
(false)パス情報を与えることにより、論理合成
ツールは、レジスタ〜レジスタ間におけるいずれのパス
がトゥルー(true)パスであり、いずれのパスがフ
ォールス(false)パスであるかを判断できること
になる。その結果、フォールス(false)パスにつ
いては、遅延最適化を行わないようにすることにより、
設計される回路の面積が大きくなるおそれがなく、ま
た、論理合成ツールは、フォールス(false)パス
の遅延により遅延制約が満たされないというエラーを発
生するおそれもない。
【0062】
【発明の効果】本発明の高位合成方法は、このように、
レジスタ〜レジスタ間におけるフォールス(fals
e)パスの情報を得ることができるために、論理合成ツ
ールに対してフォールス(false)パスの情報を提
供することができる。その結果、論理合成ツールは、出
力する各パスの遅延の見積り情報において、フォールス
(false)パスに関する情報を無視することができ
る。すなわち、レジスタ−レジスタ間の遅延がクロック
周期を越えていても、そのパスがフォールス(fals
e)パスであれば、その遅延を無視して正常に動作する
回路を生成できる。従って、論理合成ツールは、回路面
積が大きくなった回路を設計するおそれがなく、フォー
ルス(false)パスによって遅延制約が満たされな
いというエラーを発生するおそれもない。
レジスタ〜レジスタ間におけるフォールス(fals
e)パスの情報を得ることができるために、論理合成ツ
ールに対してフォールス(false)パスの情報を提
供することができる。その結果、論理合成ツールは、出
力する各パスの遅延の見積り情報において、フォールス
(false)パスに関する情報を無視することができ
る。すなわち、レジスタ−レジスタ間の遅延がクロック
周期を越えていても、そのパスがフォールス(fals
e)パスであれば、その遅延を無視して正常に動作する
回路を生成できる。従って、論理合成ツールは、回路面
積が大きくなった回路を設計するおそれがなく、フォー
ルス(false)パスによって遅延制約が満たされな
いというエラーを発生するおそれもない。
【0063】また、本発明の高位合成方法によれば、回
路のフォールス(false)パスを効率よく検索する
ことができるため、フォールス(false)パスの情
報を提供する高速な高位合成システムを実現できる。
路のフォールス(false)パスを効率よく検索する
ことができるため、フォールス(false)パスの情
報を提供する高速な高位合成システムを実現できる。
【0064】さらに、本発明の高位合成方法によれば、
回路のフォールス(false)パスをより効率良く検
索することができるため、フォールス(false)パ
スの情報を提供するより高速な高位合成システムを実現
できる。
回路のフォールス(false)パスをより効率良く検
索することができるため、フォールス(false)パ
スの情報を提供するより高速な高位合成システムを実現
できる。
【0065】さらにまた、本発明の高位合成方法によれ
ば、論理合成ツールにフォールス(false)パスの
情報を自動で与えることができるため、論理合成ツール
はフォールス(false)パスに関しては最適化を行
わず、面積の小さい回路を生成できる。また、レジスタ
〜レジスタ間遅延がクロック周期を越えていても、その
パスがフォールス(false)パスであれば、遅延制
約がみたされないというエラーを発生することがなくな
る。
ば、論理合成ツールにフォールス(false)パスの
情報を自動で与えることができるため、論理合成ツール
はフォールス(false)パスに関しては最適化を行
わず、面積の小さい回路を生成できる。また、レジスタ
〜レジスタ間遅延がクロック周期を越えていても、その
パスがフォールス(false)パスであれば、遅延制
約がみたされないというエラーを発生することがなくな
る。
【0066】本発明の記録媒体によれば、同様に、論理
合成ツールは、回路面積が大きくなった回路を設計する
おそれがなく、フォールス(false)パスによって
遅延制約が満たされないというエラーを発生するおそれ
もない。
合成ツールは、回路面積が大きくなった回路を設計する
おそれがなく、フォールス(false)パスによって
遅延制約が満たされないというエラーを発生するおそれ
もない。
【図1】高位合成方法におけるCDFGの一例を示す図
である。
である。
【図2】高位合成方法におけるスケジューリングの一例
を示す図である。
を示す図である。
【図3】高位合成方法における演算器アロケーションの
一例を示す図である。
一例を示す図である。
【図4】高位合成方法におけるレジスタアロケーション
の一例を示す図である。
の一例を示す図である。
【図5】高位合成方法における入出力アロケーションの
一例を示す図である。
一例を示す図である。
【図6】高位合成方法におけるデータパス生成の一例を
示す図である。
示す図である。
【図7】高位合成方法におけるコントローラ生成の一例
を示す図である。
を示す図である。
【図8】高位合成方法において発生するフォールス(f
alse)パスの説明図である。
alse)パスの説明図である。
【図9】本発明の高位合成方法の手順の一例を示すフロ
ーチャートである。
ーチャートである。
【図10】その高位合成方法におけるデータパス生成の
手順の一例を示すフローチャートである。
手順の一例を示すフローチャートである。
【図11】その高位合成方法におけるデータパス生成工
程にて生成されるデータパスの一例を示す説明図であ
る。
程にて生成されるデータパスの一例を示す説明図であ
る。
【図12】その高位合成方法におけるデータパス生成工
程にて生成されるデータパスの他の例を示す説明図であ
る。
程にて生成されるデータパスの他の例を示す説明図であ
る。
【図13】その高位合成方法におけるデータパス生成工
程にて生成されるデータパスのさらに他の例を示す説明
図である。
程にて生成されるデータパスのさらに他の例を示す説明
図である。
【図14】その高位合成方法におけるデータパス生成生
成工程にて生成されるデータパスのさらに他の例を示す
説明図である。
成工程にて生成されるデータパスのさらに他の例を示す
説明図である。
【図15】フォールス(false)パスがトゥルー
(true)パスにおける部分パスの組合せにより生成
されることを示す説明図である。
(true)パスにおける部分パスの組合せにより生成
されることを示す説明図である。
【図16】本発明の高位合成方法におけるフォールス
(false)パス検出の手順の一例を示すフローチャ
ートである。
(false)パス検出の手順の一例を示すフローチャ
ートである。
【図17】そのフォールス(false)パスの検出工
程にて検出されるデータパスの一例を示す説明図であ
る。
程にて検出されるデータパスの一例を示す説明図であ
る。
【図18】そのフォールス(false)パスの検出工
程にて検出されるデータパスの他の例を示す説明図であ
る。
程にて検出されるデータパスの他の例を示す説明図であ
る。
【図19】そのフォールス(false)パスの検出工
程にて検出されるデータパスのさらに他の例を示す説明
図である。
程にて検出されるデータパスのさらに他の例を示す説明
図である。
【図20】そのフォールス(false)パスの検出工
程にて検出されるデータパスのさらに他の例を示す説明
図である。
程にて検出されるデータパスのさらに他の例を示す説明
図である。
(4) 乗算
(5) 加算
(6) 加算
(7) 除算
(8) 乗算器
(9) 加算器
(10) 除算器
(11) 第1レジスタ
(12) 第2レジスタ
(13)〜(21) データ依存枝
(22) 入力ピン「a」
(23) 入力ピン「b」
(24) 入力ピン「c」
(25) 入力ピン「d」
(26) 入力ピン「e」
(27) 出力ピン「f」
(28) 入力「a」
(29) 入力「b」
(30) 入力「c」
(31) 入力「d」
(32) 入力「e」
(33) 出力「f」
(41) 第1マルチプレクサ
(42) 第2マルチプレクサ
(43) 第3マルチプレクサ
(44) 第4マルチプレクサ
─────────────────────────────────────────────────────
フロントページの続き
(58)調査した分野(Int.Cl.7,DB名)
G06F 17/50 654
G06F 17/50 656
Claims (6)
- 【請求項1】 処理の動作のみを記述した動作記述を、
演算間の実行順序の依存関係を表現するコントロールデ
ータフローグラフ(CDFG)と呼ばれるモデルに変換
するモデル変換手段と、 前記CDFGの各演算および入出力を、ステップと呼ば
れる状態遷移機械の状態に対応した時間にそれぞれ割り
当てるスケジューリング処理するスケジューリング処理
手段と、 スケジューリングされたCDFGの実行に必要な演算
器、レジスタ、入出力ピンを、CDFGの演算、各ステ
ップのクロック境界を横切るデータ依存枝、入出力に、
それぞれ割り当てるアロケーション手段と、 CDFGのデータ依存枝に対応した回路のパスをデータ
パスとして生成し、生成されたデータパスから、各ステ
ップにてそれぞれアクティブになるトゥルー(tru
e)パスを検出するデータパス生成手段と、該検出されたトゥルー(true)パスの部分パスを組
合せて生成されるパスから、トゥルー(true)パス
に含まれないパスとして、 トゥルー(true:真)パ
スの部分パス同士の組合せ、全体がアクティブにならな
いフォールス(false)パスの部分パス同士の組合
せ、または、トゥルー(true)パスの部分パスとフ
ォールス(false)パスの部分パスとの組合せにて
生成されるフォールス(false)パスを検出するフ
ォールス(false)パス検出手段とを有し、レジス
タトランスファレベルの論理回路を自動生成することを
特徴とする高位合成システム。 - 【請求項2】 モデル変換手段と、スケジューリング処
理手段と、アロケーション手段と、データパス生成手段
と、フォールス(false)パス検出手段とを有する
高位合成システムが行う高位合成方法であって、 該モデル変換手段が 処理の動作のみを記述した動作記述
を、演算間の実行順序の依存関係を表現するコントロー
ルデータフローグラフ(CDFG)と呼ばれるモデルに
変換する工程と、該スケジューリング処理手段が 前記CDFGの各演算お
よび入出力を、ステップと呼ばれる状態遷移機械の状態
に対応した時間にそれぞれ割り当てるスケジューリング
処理する工程と、該アロケーション手段が スケジューリングされたCDF
Gの実行に必要な演算器、レジスタ、入出力ピンを、C
DFGの演算、各ステップのクロック境界を横切るデー
タ依存枝、入出力に、それぞれ割り当てる工程と、該データパス生成手段が CDFGのデータ依存枝に対応
した回路のパスをデータパスとして生成し、生成された
データパスから、各ステップにてそれぞれアクティブに
なるトゥルー(true)パスを検出するデータパス生
成工程と、該フォールス(false)パス検出手段が、該検出さ
れたトゥルー(true)パスの部分パスを組合せて生
成されるパスから、トゥルー(true)パスに含まれ
ないパスとして、 トゥルー(true:真)パスの部分
パス同士の組合せ、全体がアクティブにならないフォー
ルス(false)パスの部分パス同士の組合せ、また
は、トゥルー(true)パスの部分パスとフォールス
(false)パスの部分パスとの組合せにて生成され
るフォールス(false)パスを検出する工程と、 を実行することによりレジスタトランスファレベルの論
理回路を自動生成することを特徴とする高位合成方法。 - 【請求項3】 前記列挙されたフォールス(fals
e)パスから、いずれかの演算器を共通に含む全てのパ
スを検索する工程と、 その検索された全てのパスから、該演算器以前の部分パ
スと、該演算器と、該演算器以降の部分パスとを全て組
み合わせて表わされる全てのパスを列挙する工程と、 その列挙された全てのパスから、トゥルー(true)
パスに含まれないパスを検索して、フォールス(fal
se)パスとして列挙する工程と前記各工程を、各演算
器に関して繰り返す工程と、 を包含する請求項2に記載の高位合成方法。 - 【請求項4】 前記検出されたフォールス(fals
e)パスの情報が、論理合成ツールにおける論理合成時
の遅延見積りとして利用される請求項2または3に記載
の高位合成方法。 - 【請求項5】 請求項2に記載された高位合成方法の手
順がプログラムとして記録されて、該プログラムによっ
てレジスタトランスファレベルの論理回路が自動生成さ
れることを特徴とする記録媒体。 - 【請求項6】 請求項4に記載された高位合成方法の手
順がプログラムとして記録されて、該プログラムによっ
てレジスタトランスファレベルの論理回路が自動生成さ
れることを特徴とする記録媒体。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000020974A JP3370304B2 (ja) | 2000-01-28 | 2000-01-28 | 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体 |
| US09/728,075 US6505340B2 (en) | 2000-01-28 | 2000-12-04 | Circuit synthesis method |
| GB0102147A GB2366414B (en) | 2000-01-28 | 2001-01-26 | Circuit synthesis method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000020974A JP3370304B2 (ja) | 2000-01-28 | 2000-01-28 | 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001209670A JP2001209670A (ja) | 2001-08-03 |
| JP3370304B2 true JP3370304B2 (ja) | 2003-01-27 |
Family
ID=18547444
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000020974A Expired - Fee Related JP3370304B2 (ja) | 2000-01-28 | 2000-01-28 | 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6505340B2 (ja) |
| JP (1) | JP3370304B2 (ja) |
| GB (1) | GB2366414B (ja) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4029959B2 (ja) * | 2001-08-31 | 2008-01-09 | シャープ株式会社 | 演算器アロケーション設計装置および演算器アロケーション設計方法 |
| JP4082653B2 (ja) * | 2001-11-15 | 2008-04-30 | 松下電器産業株式会社 | 高位合成方法および高位合成装置 |
| US7162704B2 (en) * | 2003-05-09 | 2007-01-09 | Synplicity, Inc. | Method and apparatus for circuit design and retiming |
| JP4128131B2 (ja) * | 2003-11-19 | 2008-07-30 | 富士通株式会社 | フォールスパス検出プログラム |
| JP4945360B2 (ja) * | 2007-07-27 | 2012-06-06 | 株式会社日立製作所 | 設計装置、設計方法及びプログラム |
| JP5621792B2 (ja) * | 2012-01-16 | 2014-11-12 | カシオ計算機株式会社 | 半導体回路設計支援装置及び方法、並びに半導体回路設計支援プログラム |
| JP2016122299A (ja) | 2014-12-24 | 2016-07-07 | 富士通株式会社 | ステートマシン分割プログラム、情報処理装置およびステートマシン分割方法 |
| US10579760B2 (en) * | 2018-07-27 | 2020-03-03 | Synopsys, Inc. | Force/release support in emulation and formal verification |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5541849A (en) * | 1990-04-06 | 1996-07-30 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters |
| JPH05101141A (ja) | 1991-08-13 | 1993-04-23 | Toshiba Corp | 高位合成装置 |
| US5648909A (en) | 1992-06-12 | 1997-07-15 | Digital Equipment Corporation | Static timing verification in the presence of logically false paths |
| US5513118A (en) * | 1993-08-25 | 1996-04-30 | Nec Usa, Inc. | High level synthesis for partial scan testing |
| US5502645A (en) * | 1993-11-05 | 1996-03-26 | Nec Usa, Inc. | Behavioral synthesis for reconfigurable datapath structures |
| DE69533567T2 (de) | 1994-08-09 | 2005-11-24 | Sun Microsystems, Inc., Mountain View | Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen |
| US5638290A (en) | 1995-04-06 | 1997-06-10 | Vlsi Technology, Inc. | Method for eliminating a false critical path in a logic circuit |
| US5831864A (en) * | 1996-10-31 | 1998-11-03 | Trustees Of Princeton University | Design tools for high-level synthesis of a low-power data path |
| US6195786B1 (en) * | 1997-12-23 | 2001-02-27 | Nec Usa, Inc. | Constrained register sharing technique for low power VLSI design |
| JP3765923B2 (ja) * | 1998-02-26 | 2006-04-12 | シャープ株式会社 | ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体 |
| US6363520B1 (en) * | 1998-06-16 | 2002-03-26 | Logicvision, Inc. | Method for testability analysis and test point insertion at the RT-level of a hardware development language (HDL) specification |
-
2000
- 2000-01-28 JP JP2000020974A patent/JP3370304B2/ja not_active Expired - Fee Related
- 2000-12-04 US US09/728,075 patent/US6505340B2/en not_active Expired - Fee Related
-
2001
- 2001-01-26 GB GB0102147A patent/GB2366414B/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20010011363A1 (en) | 2001-08-02 |
| GB0102147D0 (en) | 2001-03-14 |
| US6505340B2 (en) | 2003-01-07 |
| GB2366414B (en) | 2003-05-21 |
| GB2366414A (en) | 2002-03-06 |
| JP2001209670A (ja) | 2001-08-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Monteiro et al. | Scheduling techniques to enable power management | |
| US8904367B1 (en) | Auto pipeline insertion | |
| Sun et al. | Synthesis of custom processors based on extensible platforms | |
| US6574788B1 (en) | Method and system for automatically generating low level program commands as dependency graphs from high level physical design stages | |
| US6195786B1 (en) | Constrained register sharing technique for low power VLSI design | |
| Bakshi et al. | Partitioning and pipelining for performance-constrained hardware/software systems | |
| JPH08101861A (ja) | 論理回路合成装置 | |
| JP3370304B2 (ja) | 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体 | |
| JP2001229217A (ja) | 高位合成方法およびその実施に使用される記録媒体 | |
| Reshadi et al. | Utilizing horizontal and vertical parallelism with a no-instruction-set compiler for custom datapaths | |
| JPH11250112A (ja) | ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体 | |
| JP2758817B2 (ja) | 論理回路実現性判定システム | |
| JP3386427B2 (ja) | 高位合成方法並びに高位合成方法の実施に使用される記録媒体 | |
| Potkonjak et al. | Considering testability at behavioral level: use of transformations for partial scan cost minimization under timing and area constraints | |
| JP2007034887A (ja) | ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置 | |
| Chabini et al. | Unification of scheduling, binding, and retiming to reduce power consumption under timings and resources constraints | |
| Chaiyakul et al. | Assignment decision diagram for high-level synthesis | |
| Eikerling et al. | A methodology for rapid analysis and optimization of embedded systems | |
| CN116745770A (zh) | 一种数字电路的综合方法及综合装置 | |
| Dilek et al. | Simulated annealing‐based high‐level synthesis methodology for reliable and energy‐aware application specific integrated circuit designs with multiple supply voltages | |
| JPH1031693A (ja) | 専用アプリケーション・サブシステムの合成方法 | |
| Bergamaschi et al. | Scheduling under resource constraints and module assignment | |
| JPH04175974A (ja) | コプロセッサ論理回路自動生成方法 | |
| US20090077357A1 (en) | Method of Power Simulation and Power Simulator | |
| Ku et al. | Synthesis of asics with hercules and hebe |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20021101 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081115 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091115 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |