JP2001014356A - プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法 - Google Patents

プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法

Info

Publication number
JP2001014356A
JP2001014356A JP11181733A JP18173399A JP2001014356A JP 2001014356 A JP2001014356 A JP 2001014356A JP 11181733 A JP11181733 A JP 11181733A JP 18173399 A JP18173399 A JP 18173399A JP 2001014356 A JP2001014356 A JP 2001014356A
Authority
JP
Japan
Prior art keywords
unit
state
level
condition
programming language
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.)
Abandoned
Application number
JP11181733A
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 JP11181733A priority Critical patent/JP2001014356A/ja
Publication of JP2001014356A publication Critical patent/JP2001014356A/ja
Abandoned legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】 逐次処理可能なプログラミング言語のモデル
を作成して、検証にかかる時間を大幅に減少させ、シス
テムレベルの検証を容易に実現可能とする。 【解決手段】 論理回路のハードウェアの動作を表現す
るビヘイビア記述101の構文を解析して、コントロー
ルデータフローグラフ103を作成する構文解析部10
2と、コントロールデータフローグラフを各ステートに
分割し、ステート毎の動作情報107を抽出するステー
ト分割部104bと、分割されたコントロールデータフ
ローグラフからデータパス情報108を抽出するハード
ウェア割り付け部105bと、動作情報とデータパス情
報とから各ステート下で動作する演算器を各動作条件に
分割する条件分割部109と、演算器の順序付けを行う
順序付け部110と、全演算器に対して動作記述を作成
し、プログラミング言語による検証モデルを生成する記
述出力部111とを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高位合成される論
理回路と同等な逐次処理可能なプログラミング言語モデ
ルを作成する高位合成装置及び高位合成方法に関する。
【0002】
【従来の技術】図6に、従来の高位合成装置の機能構成
を示すブロック図を示す。同図に示す様に、従来はビヘ
イビア記述101を構文解析部102を用いて構文解析
し、C/DFG(コントロールデータフローグラフ)1
03を得、ステート分割部104aにより各ステート毎
に分割し、ハードウェア割り付け部105aによりハー
ドウェアを割り付けることにより、ハードウェア記述言
語106を得ていた。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
高位合成装置及び高位合成方法によって合成された論理
回路は、ハードウェア記述言語等で記述されているた
め、他の論理回路と統合しサイクルレベルの検証を行な
う際にシミュレーションに時間がかかるという問題点が
あった。
【0004】また、ハードウェア記述と同等の動作をす
るプログラム言語モデルの作成は、ハードウェア記述が
並列処理であり、プログラミング言語が逐次処理である
ことから非常に困難なことであった。
【0005】そこで、本発明は、かかる課題を解決すべ
くなされたものであり、従来論理シミュレータを用いて
行っていた検証部分をコンパイルして実行可能なプログ
ラムに置き換えることにより、検証にかかる時間を大幅
に減少させることが可能であり、かつ本発明により得ら
れるプログラム言語モデルとソフトウェアによって表現
された論理回路外部の動作とを組み合わせることによ
り、システムレベルの検証が容易に実現可能な高位合成
装置及び高位合成方法を提供することを目的とする。
【0006】
【課題を解決するための手段】請求項1の発明は、論理
回路のハードウェアの動作を表現するビヘイビア記述の
構文を解析して、コントロールデータフローグラフを作
成する構文解析部と、前記コントロールデータフローグ
ラフを各ステート毎に分割し、かつ各ステート毎の動作
情報を抽出するステート分割部と、前記コントロールデ
ータフローグラフにハードウェアを割り付け、かつ各ス
テート毎のデータパス情報を抽出するハードウェア割り
付け部と、前記動作情報と前記データパス情報を用いて
各ステート下の各動作条件下で動作する演算器を各動作
条件に振り分ける条件分割部と、前記各動作条件下で動
作する各演算器の順序付けを行う順序付け部と、全演算
器に対して動作記述を作成し、プログラミング言語によ
る検証モデルを生成する記述出力部とを具備することを
特徴とする。
【0007】請求項5の発明は、論理回路のハードウェ
アの動作を表現するビヘイビア記述の構文を解析して、
コントロールデータフローグラフを作成する構文解析ス
テップと、前記コントロールデータフローグラフを各ス
テートに分割し、各ステート毎の動作情報を抽出するス
テート分割ステップと、各ステート毎に分割されたコン
トロールデータフローグラフからデータパス情報を抽出
するステップと、前記動作情報と前記データパス情報と
から各ステート下で動作する演算器を各動作条件に分割
する条件分割ステップと、各動作条件下で動作する演算
器の順序付けを行う順序付けを行う順序付けステップ
と、全演算器に対して動作記述を作成し、プログラミン
グ言語による検証モデルを生成する記述出力ステップと
を含むことを特徴とする。
【0008】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態を説明する。図1は本実施の形態における高位合
成装置の機能構成を示すブロック図であり、図2は抽出
したデータパス、動作条件、演算器及び演算器に対する
入力からのレベル付けを示す図であり、図3(a)は動
作条件の順序を組み立て、各動作条件下で動作する入出
力以外の各演算器を各動作条件に振り分け、入力からの
レベル付けをした状態を示す図であり、図3(b)は入
力からのレベルで演算器をソートした後、ブロック番号
付けをした状態を示す図であり、図4は図3(b)で付
けたブロック番号に基づくブロック構造を示す図であ
り、図5は高位合成される論理回路と同等な逐次処理可
能なプログラム言語モデルを示す図である。
【0009】まず、図1を用いて本実施の形態に係る論
理合成装置の構成を説明する。同図に示すように、本実
施の形態に係る論理合成装置は、論理回路のハードウェ
アの動作を表現するビヘイビア記述101の構文を解析
して、コントロールデータフローグラフ(C/DFG)
103を作成する構文解析部102と、C/DFG10
3を各ステート毎に分割し、かつ各ステート毎の動作情
報107を抽出するステート分割部104bと、C/D
FG103にハードウェアを割り付け、かつ各ステート
毎のデータパス情報108を抽出するハードウェア割り
付け部105bと、動作情報107とデータパス情報1
08を用いて各ステート下の各動作条件下で動作する演
算器を各動作条件に振り分ける条件分割部109と、各
動作条件下で動作する各演算器の順序付けを行う順序付
け部110と、全演算器に対して動作記述を作成し、プ
ログラミング言語による検証モデルを生成する記述出力
部111とから構成される。
【0010】以下、本実施の形態における処理の流れの
概要を説明する。まず、従来の高位合成システムにおけ
るステート分割部104bから得られる動作情報107
と、ハードウェア割り付け部105bから得られるデー
タパス情報108とから、条件分割部109を用いて、
各ステート下で動作するデータパス部を抜き出す。そし
て、順序付け部110を用いて、各ステート中での動作
条件の順序を組み立て、各動作条件下で動作する演算器
をデータパス部から探し出す。ここで、動作条件とは、
「常に」、「分岐条件が真の時」、「分岐条件が偽の
時」等の動作に必要な条件をいう。
【0011】次に、順序付け部110で各ステート下の
全ての演算器に対して入力からのレベル付けを行なう。
その後、入力以外の演算器を上で作成した各動作条件の
いずれかに振り分ける。最後にIF、SWITCH等の
条件演算器のレベルを階層的に、 最大値(現在のレベル、最大値(各下段条件の最小値(属する演算器のレベル )))(式1) により得られる値に更新する。更に、各動作条件毎に属
する演算器をレベルに基づいてソートし、記述順序を表
すブロック番号を付加する。
【0012】最後に、記述出力部111により、条件分
割部で作成した条件文の枠組み(ブロック)を基に、各
条件下の全ての演算器に対してソートされた順で各演算
器に対する動作記述を作成し、実行可能なソフトウェア
である、プログラム言語モデル112を作成する。
【0013】図2は、演算器200A〜L、動作条件2
01〜203、各演算器200A〜L間のデータパス及
び各演算器200A〜Lに対する入力からのレベル付け
を示す図である。なお、本実施の形態においては、説明
を簡単にするためステートはただ1つしかないものとす
る。
【0014】まず、前記の如く、図1の条件分割部10
9で、各ステート下で動作するデータパス部を抜き出
す。本実施の形態ではステートはただ一つしかないの
で、全データパスが該当する。図2に示すように、本実
施の形態においては動作条件は、常に動作する部分AL
L201、ifが真の部分IF_T202、ifが偽の
部分IF_F203の3つとする。
【0015】次に、それら動作条件の順序を組み立て、
それぞれの条件下で動作する演算器を抜き出し、各演算
器を各動作条件に振り分ける。本実施の形態において
は、動作条件ALL201下で動作する演算器として演
算器200A〜F,H〜Kが抜き出され、動作条件IF
_T202下で動作する演算器として演算器200Gが
抜き出され、動作条件IF_F203下で動作する演算
器として演算器200Lが抜き出される。これら演算器
のうち入出力の演算器200A,D,E,J及びIに関
しては、プログラム言語モデル作成時に文とならないの
で、演算器200A,D,E,J及びIは各動作条件に
振り分けない、つまり図3(a)に示す演算器情報リス
トに登録しないこととする。一方、動作条件ALL20
1には演算器200B,C,F,K及びHが振り分けら
れ、動作条件IF_T202には演算器200Gが振り
分けられ、動作条件IF_F203には演算器200L
が振り分けられ、図3(a)に示す演算器情報リストが
作成される。
【0016】次に、順序付け部110により図2の全演
算器200A〜Lに対して入力からのレベル付けを行な
う。レベルは、入力の演算器200A,D,E及びJの
レベルを1とし、入力以外の各演算器のレベルは、入力
側の演算器のレベルの最大値+1の値を持つようにつけ
る。例えば、演算器200Cのレベルは、入力側の演算
器200A及びBのレベルの最大値が2であるから、2
+1=3となる。
【0017】更に、IF演算器200Cに対して前記式
1の値を計算する。ここで、式1における「現在のレベ
ル」は、「演算器200Cの入力からのレベル」である
「3」となる。また、「各下段条件の最小値(属する演
算器のレベル)」は、IF_Tに属する演算器が演算器
200Gのみであるため、演算器200Gのレベルであ
る「3」と、IF_Fに属する演算器が演算器200L
のみであるため、演算器200Lのレベルである「3」
となる。これより、前記式1の値は、 最大値(3(Cのレベル)、最大値(3(IF_Tに属
する演算器レベルの最小値)、3(IF_Fに属する演
算器レベルの最小値)))=3 となる。この結果、演算器200Cのレベルは「3」と
なる。これらのレベル(入力からのレベル、分岐条件に
属する演算器を考慮して得られたレベル)を、各動作条
件毎に演算器を振り分けて作成した演算器情報リスト
(図3(a))に登録する。図3(a)の破線で囲まれ
た長方形300内の数値が、これらレベルである。
【0018】更に、図3(b)に示すように、この演算
器情報リスト中の演算器200B等を前記レベルでソー
トし、記述順序を表すブロック番号を付加する。図3
(b)の破線で囲まれた長方形302内の数値が、ブロ
ック番号である。ブロック番号の振り方は以下のとおり
である。まず、前記レベルによってソートされた順序で
振っていく。このとき、初期値を1とし、IF演算器等
の条件演算器に達するか、条件が変わるまでは同一ブロ
ック番号を振っていく。そして条件演算器に達するか、
条件が変わる度にブロック番号を1増加させて、新たな
ブロック番号を振るという方法を採用する。
【0019】図4は、本実施の形態における条件文のブ
ロック構造を示す図である。図3(b)で付与したブロ
ック番号に基づいて、図4に示したブロック構造の記述
が作成される。具体的には、ブロック番号が共通する演
算器200B、F及びKは、同一ブロック(ブロック
1)に置かれる。また、分岐条件ブロック(ブロック
2)内には、条件が真の場合のブロック(ブロック3)
と、条件が偽の場合のブロック(ブロック4)が置かれ
る。
【0020】最後に図1の記述作成部111で、各演算
器毎に入出力を調べ演算器毎の記述の作成を行い、それ
を組み合わせてプログラム言語モデル112の作成を行
う。まず、演算器200Bは比較演算器であることがわ
かり、入出力を調べてi1!=0という記述になること
がわかり、これをt02とする。次に、演算器200F
は、同様にi1+i2となることがわかり、これをt1
0とする。同様のことを全ての演算器について行い、順
番に記述を出力すると図5のようにプログラム言語モデ
ル112が作成される。
【0021】作成されたプログラム言語モデル112は
コンパイル実行可能であり、これによりシミュレーショ
ン速度を大幅に向上させることが可能となり、シミュレ
ーション実行時間を大幅に短縮することができる。ま
た、ソフトウェアによって表現された論理回路外部の動
作と組み合わせてシステムレベルの検証が容易に実行で
きるようになる。また、プログラム言語モデル112
は、高位合成される論理回路とクロックサイクルレベル
で同等の動作を行なうソフトウェアとすることができ
る。
【0022】なお、演算器の出力がファンアウトしてい
る場合や、入力がファンインしている場合は中間変数を
用いてこれを表す。また、プログラミング言語として
は、C言語、C++言語等を使用することができる。
【0023】
【発明の効果】以上説明したように、本発明によれば、
従来論理シミュレータを用いて行なっていた検証部分を
コンパイルして実行可能なプログラムに置き換えること
が可能となるため、検証にかかる時間を大幅に減少させ
ることが可能となる。また、本発明により得られるプロ
グラム言語モデルと、ソフトウェアによって表現された
論理回路外部の動作と組み合わせることで、システムレ
ベルの検証が容易に実現できるようになる。
【図面の簡単な説明】
【図1】本実施の形態における高位合成装置の機能構成
を示すブロック図である。
【図2】抽出したデータパス、動作条件、演算器及び演
算器に対する入力からのレベル付けを示す図である。
【図3】(a)は動作条件の順序を組み立て、各動作条
件下で動作する入出力以外の各演算器を各動作条件に振
り分け、入力からのレベル付けをした状態を示す図であ
り、(b)は入力からのレベルで演算器をソートした
後、ブロック番号付けをした状態を示す図である。
【図4】図3(b)で付けたブロック番号に基づくブロ
ック構造を示す図である。
【図5】高位合成される論理回路と同等な逐次処理可能
なプログラム言語モデルを示す図である。
【図6】従来の高位合成装置の機能構成を示すブロック
図である。
【符号の説明】
101 ビヘイビア記述 102 構文解析部 103 C/DFG(コントロール/データフローグラ
フ) 104a、b ステート分割部 105a、b ハードウェア割り付け部 107 動作情報 108 データパス情報 109 条件分割部 110 順序付け部 111 記述出力部 112 プログラム言語モデル

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 論理回路のハードウェアの動作を表現す
    るビヘイビア記述の構文を解析して、コントロールデー
    タフローグラフを作成する構文解析部と、 前記コントロールデータフローグラフを各ステート毎に
    分割し、かつ各ステート毎の動作情報を抽出するステー
    ト分割部と、 前記コントロールデータフローグラフにハードウェアを
    割り付け、かつ各ステート毎のデータパス情報を抽出す
    るハードウェア割り付け部と、 前記動作情報と前記データパス情報を用いて各ステート
    下の各動作条件下で動作する演算器を各動作条件に振り
    分ける条件分割部と、 前記各動作条件下で動作する各演算器の順序付けを行う
    順序付け部と、 全演算器に対して動作記述を作成し、プログラミング言
    語による検証モデルを生成する記述出力部とを具備する
    ことを特徴とするプログラミング言語モデル作成可能な
    高位合成装置。
  2. 【請求項2】 前記順序付け部が、入力用演算器のレベ
    ルを1とし、入力用以外の演算器のレベルを、当該入力
    用以外の演算器よりも入力側に位置する他の演算器のレ
    ベルの最大値に1を加えたものとし、これらレベルに基
    づいて、各動作条件毎に入/出力用以外の演算器をソー
    トするものであることを特徴とする請求項1に記載のプ
    ログラミング言語モデル作成可能な高位合成装置。
  3. 【請求項3】 前記順序付け部が、各動作条件に振り分
    けられたIF、SWITCH等の各条件演算器のレベル
    を階層的に、 最大値(現在のレベル、最大値(各下段条件の最小値
    (属する演算器のレベル)))という式に基づいて得ら
    れる値とすることを特徴とする請求項1〜2に記載のプ
    ログラミング言語モデル作成可能な高位合成装置。
  4. 【請求項4】 前記順序付け部が、前記演算器を前記レ
    ベルに基づいてソートした後、前記記述出力部による動
    作記述の順序を表すブロック番号を付与するものであ
    り、かつ当該ブロック番号の初期値を1とし、条件演算
    器に達するか又は条件が変化する度に1増加させるもの
    であることを特徴とする請求項1〜3に記載のプログラ
    ミング言語モデル作成可能な高位合成装置。
  5. 【請求項5】 論理回路のハードウェアの動作を表現す
    るビヘイビア記述の構文を解析して、コントロールデー
    タフローグラフを作成する構文解析ステップと、 前記コントロールデータフローグラフを各ステートに分
    割し、各ステート毎の動作情報を抽出するステート分割
    ステップと、 各ステート毎に分割されたコントロールデータフローグ
    ラフからデータパス情報を抽出するステップと、 前記動作情報と前記データパス情報とから各ステート下
    で動作する演算器を各動作条件に分割する条件分割ステ
    ップと、 各動作条件下で動作する演算器の順序付けを行う順序付
    けを行う順序付けステップと、 全演算器に対して動作記述を作成し、プログラミング言
    語による検証モデルを生成する記述出力ステップとを含
    むことを特徴とするプログラミング言語モデル作成可能
    な高位合成方法。
JP11181733A 1999-06-28 1999-06-28 プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法 Abandoned JP2001014356A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11181733A JP2001014356A (ja) 1999-06-28 1999-06-28 プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11181733A JP2001014356A (ja) 1999-06-28 1999-06-28 プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法

Publications (1)

Publication Number Publication Date
JP2001014356A true JP2001014356A (ja) 2001-01-19

Family

ID=16105945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11181733A Abandoned JP2001014356A (ja) 1999-06-28 1999-06-28 プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法

Country Status (1)

Country Link
JP (1) JP2001014356A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266791B2 (en) 2003-05-23 2007-09-04 Sharp Kabushiki Kaisha High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium
US7992112B2 (en) 2006-11-07 2011-08-02 Sharp Kabushiki Kaisha Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266791B2 (en) 2003-05-23 2007-09-04 Sharp Kabushiki Kaisha High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium
US7992112B2 (en) 2006-11-07 2011-08-02 Sharp Kabushiki Kaisha Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium

Similar Documents

Publication Publication Date Title
JP3620860B2 (ja) シミュレーション装置
Börger et al. A formal definition of an abstract VHDL’93 simulator by EA-Machines
Leupers et al. Generation of interpretive and compiled instruction set simulators
US9367658B2 (en) Method and apparatus for designing and generating a stream processor
CN107066375A (zh) 安全关键软件自动化基于需求的测试实例生成系统和方法
US20020152061A1 (en) Data processing system and design system
US5557797A (en) Scheduling method for automatically developing hardware patterns for integrated circuits
US20230120227A1 (en) Method and apparatus having a scalable architecture for neural networks
JP2001522084A (ja) 機械語記述からisaシミュレータとアセンブラを生成する方法
Emami et al. Manticore: Hardware-accelerated RTL simulation with static bulk-synchronous parallelism
KR950006592B1 (ko) 엑스퍼트 시스템(Expert System)
US20040044988A1 (en) Generation of compiled code for simulator speed up
JPH05101141A (ja) 高位合成装置
JP2001014356A (ja) プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法
JPH06314311A (ja) 論理シミュレーション方式
Sadasue et al. LLVM-C2RTL: C/C++ based system level RTL design framework using LLVM compiler infrastructure
Zheng Specification and compilation of timed systems
Shang et al. Asynchronous system synthesis based on direct mapping using VHDL and Petri nets
Berrebi et al. Combined control flow dominated and data flow dominated high-level synthesis
Wu et al. SCCL: An open-source SystemC to RTL translator
Nielsen Computer simulation of computer system performance
Yang et al. Validating scheduling transformation for behavioral synthesis
Blaauw et al. Automatic generation of behavioral models from switch-level descriptions
Chu et al. Three decades of HDLs. I. CDL through TI-HDL
JP2990882B2 (ja) 機能シミュレーション装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060328

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20060524