JP2006338586A - 高位合成方法および高位合成装置 - Google Patents

高位合成方法および高位合成装置 Download PDF

Info

Publication number
JP2006338586A
JP2006338586A JP2005165380A JP2005165380A JP2006338586A JP 2006338586 A JP2006338586 A JP 2006338586A JP 2005165380 A JP2005165380 A JP 2005165380A JP 2005165380 A JP2005165380 A JP 2005165380A JP 2006338586 A JP2006338586 A JP 2006338586A
Authority
JP
Japan
Prior art keywords
description
trace
hardware
hardware description
level synthesis
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
JP2005165380A
Other languages
English (en)
Inventor
Osamu Mitobe
理 水戸部
Kei Yoneda
圭 米田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005165380A priority Critical patent/JP2006338586A/ja
Priority to US11/447,040 priority patent/US20060277518A1/en
Publication of JP2006338586A publication Critical patent/JP2006338586A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

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)
  • Debugging And Monitoring (AREA)

Abstract

【課題】動作記述中の変数や式の遷移履歴とハードウェア記述中の信号の遷移履歴を比較して一致していれば、高位合成装置が生成したハードウェア記述中の信号が正しく動作すると判定する動的検証を行う場合に、動作記述中の変数や式に対応したハードウェア記述中の信号の遷移履歴を取得するトレース記述を作成することが困難であるという課題がある。
【解決手段】動作記述21中の変数や式に対応するハードウェア記述中の信号を特定することによって、動作記述21中のトレース対象に対応したハードウェア記述中の信号の遷移履歴を取得するためのハードウェア記述用トレース記述23を生成する。
【選択図】図1

Description

本発明は、動作記述からハードウェア記述を合成する高位合成方法にかかわり、特には、高位合成装置を用いた設計環境におけるハードウェア記述の検証の技術に関するものである。
高位合成方法とは、設計対象となる回路に含まれる複数のプロセス動作を記述した動作記述から、高位合成装置を使ってハードウェア記述言語で記述された論理回路を自動生成する技術である。高位合成方法の詳細については、非特許文献1等に記載されている。
例として、ANCI C言語で記述された図17の動作記述を高位合成する場合について説明する。
図17の動作記述において、変数「a」,「b」,「c」は入力である。また、変数「d」,「e」は最終結果を得るまでの途中の演算結果を格納するための変数である。変数「b」には演算した最終結果が代入される。図17の動作記述中では、まず変数「a」と変数「b」の加算を行い、その結果を変数「d」に代入している。さらに、変数「c」と先程の加算結果である変数「d」の乗算を行い、その結果を変数「e」に代入している。さらに、変数「a」と先程の乗算結果である変数「e」の加算を行い、その結果を変数「b」に代入している。
<スケジューリング>
高位合成において、一般的に動作記述をコントロールデータフローグラフ(CDFG)と呼ぶ演算を実行する順序の依存関係を示したモデルに変換する。そして、高位合成時にユーザが与える面積制約やクロック周波数制約を満たすように、CDFG中に現れる各演算が実行される制御ステップを決定するスケジューリング処理を行う。スケジューリング処理では、CDFG中の演算を表したノードを、データの依存関係と上記制約を満たすように制御ステップに割り当てる。
図18に、図17に示す動作記述をスケジューリング処理した結果を示す。図18において、入力変数「a」,「b」は制御ステップ0に割り当てられており、図17のd=a+bの加算と入力変数「c」と図17のe=c*dの乗算が制御ステップ1に割り当てられており、図17のb=a+eの加算が制御ステップ2に割り当てられ、最終結果となる変数「b」は制御ステップ3に割り当てられている。CDFGでは、データの依存する関係を示したデータ依存枝を使って、演算を動作記述の順序に従って結びつけている。図18のスケジューリング処理結果では、エッジr1,r2,r3,r4,r5,r6がデータ依存枝である。
<アロケーション>
次に、図18で得られたスケジューリング処理結果に基づいてアロケーション処理を行う。アロケーション処理では、ハードウェア量を考慮しながら、動作記述の動作を実現する回路構成を決定する。レジスタ転送レベル(RTL)の回路は、演算器、レジスタ、入出力ピンの構成要素が必要である。アロケーション処理は、CDFGの演算を演算器に、隣接するステップのクロック境界を横切るデータ依存枝をレジスタに、入出力を入出力ピンに割り当てる処理である。
演算器のアロケーション処理では、CDFG中の各演算に対して、それを実行する演算器を割り当てる。CDFGに同じ演算が複数あっても、同一の制御ステップ内に存在しない場合には、資源を共有できる。そのため、演算器のアロケーション処理では、図18で示すCDFG中に加算が2回あるが、これら2つの加算は属する制御ステップが互いに異なっているので共通の加算器を割り当てる。1つの乗算に対しては1つの乗算器を割り当てる。
次に、レジスタのアロケーション処理では、クロック境界と交差するデータ依存枝にレジスタを割り当てる。しかし、全てのデータ依存枝をレジスタに割り当てるとハードウェアコストが増大するため、一般的に、各レジスタに対して複数の変数を割り当てることで、レジスタ数を削減する。
動作記述中の変数や式をレジスタに割り当てる場合に、ライフタイム情報を利用する。ライフタイム情報とは、ハードウェア記述中の信号に対応した動作記述中の変数や式がハードウェア記述の演算で使用される時間を示したものである。ライフタイムが重ならない、つまり同時に使用される可能性がない変数や式は、同じレジスタに割り当てることができる。
図19は、図18のスケジューリング処理を行ったCDFG中の変数や式をライフタイムの開始時刻順に並べた結果である。変数「a」は制御ステップ0から制御ステップ2までの時区間で使用され、変数「b」は制御ステップ0から制御ステップ1の時区間と、制御ステップ2から制御ステップ3の各時区間で使用され、変数「c」は制御ステップ1の時区間で使用され、変数「d」は制御ステップ1の時区間で使用され、変数「e」は制御ステップ1から制御ステップ2の時区間で使用される。これらの変数の内、クロック境界を横切る変数をレジスタに割り当てる必要がある。図19では、クロック境界を横切る変数は、変数「a」,「b」,「e」である。
ライフタイム情報を順に調べながらライフタイムが重ならない限り、レジスタに変数を割り当てていく。図20に、図19のライフタイム情報に基づいてレジスタを割り当てた結果であるレジスタ割り当て結果を示す。制御ステップ1においては、変数「a」を第1のレジスタに、変数「b」を第2のレジスタに割り当てている。制御ステップ2においては、変数「a」を制御ステップ1に引き続いて第1のレジスタに割り当て、制御ステップ1での加算と乗算結果を保持する変数「e」を第2のレジスタに割り当てている。ここで、変数「c」は制御ステップ1にて外部から直接入力され、また、変数「d」は演算の一時的な途中結果であるため、クロック境界を横切っておらず(図19参照)、レジスタに割り当てない。制御ステップ3においては、演算の最終結果となる変数「b」を第1のレジスタに割り当てている。
<データパス生成>
次に、アロケーション処理後、データパスの生成を行い、CDFGに対応した回路のパスを生成する。生成したデータパスを図21に示す。図21に示したデータパスでは、1つの加算器38と1つの乗算器39を生成している。また第1のレジスタ36、第2のレジスタ37を生成している。
さらに、図18に示したCDFG中の3つの入力「a」,「b」,「c」に対して、それぞれ図21のデータパスに示した入力ピン31,32,33を割り当て、図18に示したCDFG中の出力「b」に対して、出力ピン40を生成している。
演算器やレジスタが共有化される場合には、マルチプレクサを生成し、演算器やレジスタへの入力パスを選択できるようにする必要がある。第1のレジスタ36に対しては、第1のマルチプレクサ34を生成し、第2のレジスタ37に対しては第2のマルチプレクサ35を生成する。
データパス生成では、生成した演算器とレジスタと入出力ポートとマルチプレクサを相互に配線する。図18のCDFG中のデータ依存枝に対応するように、生成した構成要素を接続する。例えば、図18のCDFGの入力「a」からデータ依存枝r1を通り、加算演算に入力されるCDFG上のパスに対応するデータパスは、入力ピン31から第1のマルチプレクサ34を通り第1のレジスタ36へのパスになる。同様に全てのデータ依存枝に対応したデータパスを生成する。
図22に図18で示したデータ依存枝と図21に示すデータパスとの対応関係を示したデータパス対応情報を示す。図22は、図18のデータ依存枝r1,r2,r3,r4,r5,r6が、図21のデータパスp1,p2,p3,p4,p5,p6にそれぞれ対応することを示している。
<ステートマシンの生成>
次に、各制御ステップでレジスタに格納される値をマルチプレクサ34,35にて適切に選択することができるように、図21に示すステートマシン41を生成する。
高位合成では、以上の処理により動作記述を実現するハードウェア記述を生成する。高位合成にて生成されたハードウェア記述は、上述した処理を通して生成される。
ところが、動作記述が正しく記述されていても、合成過程で高位合成装置に起因した不具合がハードウェア記述に入る可能性があり得る。また、高位合成装置に与える制約の人為的な設定ミスにより、意図しない記述が生成される可能性もある。そのため、生成されたハードウェア記述を検証する必要がある。高位合成装置が生成したハードウェア記述の動的検証に関して、動作記述用のテストベクタからハードウェア記述用のテストベクタを生成する方法が特許文献1に記載されている。高位合成により生成されたハードウェア記述の動的検証を行う場合、一般的には、動作記述とハードウェア記述のそれぞれに対してテストパターンを与えたシミュレーションを行い、それらのインターフェース部分のトレース結果を比較することで検証を行うが、比較で不一致が発生したとき、ハードウェア記述中の不具合を特定するのに時間がかかるという課題がある。
特許第3373641号公報(特開平7−254008号公報) 「High−Level Synthesis」 Kluwer Academic Publishers刊
従来、高位合成装置が生成したハードウェア記述の動的検証を行う場合、動作記述とハードウェア記述のそれぞれに対してテストパターンを与えたシミュレーションを実施し、それらインターフェース部分の出力信号の遷移履歴を比較することで、高位合成装置が正しくハードウェア記述を生成することを検証する。
インターフェース部分の出力信号の遷移履歴を比較して不一致が発生した場合、不一致が発生した原因を探る必要が出てくる。その場合、不一致が発生したシミュレーション上の時刻から遡って、ハードウェア記述の演算ミスがある箇所を特定しなければならない。しかし、ハードウェア記述の演算ミスにより演算処理の誤りが発生していても、その誤りによる影響がすぐにハードウェア記述の出力信号の遷移履歴に現われない場合がある。つまり、演算処理の誤りが発生する時刻において、ハードウェア記述のインターフェース部分の遷移履歴と動作記述のインターフェース部分の遷移履歴が一致する場合があり、インターフェース部分の遷移履歴だけからでは、ハードウェア記述の演算ミスが発生する時刻を特定するのが困難になる。そのため、ハードウェア記述中の内部信号の遷移履歴と、ハードウェア記述中の内部信号に対応する動作記述中の変数や式の遷移履歴とを比較して、それらが不一致を起こしている箇所から、演算処理のミスがあるハードウェア記述の箇所を特定する手がかりとする。
しかし、高位合成装置において、動作記述からハードウェア記述を生成する場合、動作記述を修正したり、クロック制約や面積制約等の設計者が合成時に設定する各種制約を変更することによって、動作記述中の変数や式がハードウェア記述中の信号に割り当てられる結果に違いが生じる。つまり、動作記述や制約条件に変更を加えて再合成した場合には、動作記述中の変数や式とハードウェア記述中の信号の対応関係が作り変えられる。その場合、改めて、遷移履歴を取得したい動作記述中の変数に対応するハードウェア記述中の信号を特定しなくてはならなくなる。
以上のように、高位合成における動的検証は、動作記述中の変数や式の遷移履歴とハードウェア記述中の信号の遷移履歴を比較して、一致していれば、高位合成装置が生成したハードウェア記述中の信号が正しく動作すると判定するものである。そして、この動的検証を行う場合に、動作記述中の変数や式がハードウェア記述中のどの信号に対応しているかを特定することが難しいために、トレース記述、すなわち、動作記述中の変数や式に対応したハードウェア記述中の信号の遷移履歴を取得する等のためのトレース記述を作成することが困難であるという課題がある。
本発明は上記のような従来技術の問題点に鑑みて、前記のトレース記述(動作記述中の変数や式に対応したハードウェア記述中の信号の遷移履歴を取得するための記述等)を生成する高位合成装置を提供することを目的にしたものである。
この目的を達成するために、本発明の高位合成装置は、ハードウェア記述用トレース記述生成手段を備えている。また、動作記述用トレース記述生成手段を備えている。
ハードウェア記述用トレース記述生成手段は、ハードウェア記述中のハードウェアを構成する部品の名前を示した信号の遷移履歴を取得するためのハードウェア記述用トレース記述を生成する手段である。
また、動作記述用トレース記述生成手段は、動作記述中のトレース対象の遷移履歴を取得するための動作記述用トレース記述を生成する手段である。
また、ハードウェア記述用トレース記述生成手段は、動作記述中のトレース対象に対応するハードウェア記述中の信号を特定することで、動作記述中のトレース対象に対応するハードウェア記述中の信号の遷移履歴を取得するためのハードウェア記述用トレース記述を作成する。ここで、トレース対象とは、動作記述中の変数あるいは式である。
ハードウェア記述用トレース記述生成手段は、遷移履歴を取得する動作記述中のトレース対象が、ハードウェア記述中のレジスタに割り当てられている場合およびレジスタに割り当てられない場合でも、ハードウェア記述用トレース記述を生成することが可能である。
また、ハードウェア記述用トレース記述を生成するためには、トレース対象を選択しなければならない。そこで、トレース対象をリスト化したトレース対象リストを高位合成装置に与える。ここで、トレース対象リストは高位合成装置の外部から与えられるトレース対象を示したリストであればいかなるものでもよい。トレース対象リストは、具体的には、例えばユーザが動作記述からトレース対象を選択することで生成したリストや、あるいはユーザが参考情報からトレース対象を選択することで生成したリスト等である。
ここで、参考情報は高位合成装置が備えた参考情報生成手段により生成される。参考情報生成手段は、動作記述やレジスタ割り当て結果やライフタイム情報等のような、トレース対象の情報を含む記述であれば、如何なる記述からでも参考情報を生成することができる。
参考情報は、具体的には、例えば演算の最終結果が格納されたレジスタに対応するトレース対象を示した情報や、トレース対象に演算結果が代入される回数を示した情報や、動作記述中のトレース対象に対応するハードウェア記述中の信号を示した情報、さらには、レジスタ割り当て結果やライフタイム情報そのものであり、トレース対象を決定するための情報であればいかなるものでよい。
また、高位合成装置は、トレース対象としてリスト化したトレース対象リストを生成するトレース対象リスト生成手段を備えている。トレース対象リスト生成手段は、レジスタ割り当て結果やライフタイム情報や動作記述等のようなトレース対象の情報を含む記述を解析することで、トレース対象リストを生成する。
また、高位合成装置は、動作記述やレジスタ割り当て結果やライフタイム情報等のようなトレース対象の情報を含む記述を解析することで、遷移履歴を取得するトレース対象を自動的に認識することができる。
以上、本発明の概要を説明したが、以下に、より詳しいレベルで本発明の構成を展開する。
本発明による高位合成方法は、設計対象となる回路の動作を記述した動作記述から、前記動作記述をハードウェア化したハードウェア記述を生成する高位合成方法において、前記ハードウェア記述内の1つまたは複数の信号の遷移履歴を取得するためのハードウェア記述用トレース記述を生成するハードウェア記述用トレース記述生成工程を備えるものである。
これに対応して、本発明による高位合成装置は、設計対象となる回路の動作を記述した動作記述から、前記動作記述をハードウェア化したハードウェア記述を生成する高位合成装置において、前記ハードウェア記述内の1つまたは複数の信号の遷移履歴を取得するためのハードウェア記述用トレース記述を生成するハードウェア記述用トレース記述生成手段を備えるものである。
上記の高位合成方法において好ましい態様は、前記動作記述内の1つまたは複数の変数または式であるトレース対象の遷移履歴を取得するための動作記述用トレース記述を生成する動作記述用トレース記述生成工程を備える態様である。
これに対応して、上記の高位合成装置において好ましい態様は、前記動作記述内の1つまたは複数の変数または式であるトレース対象の遷移履歴を取得するための動作記述用トレース記述を生成する動作記述用トレース記述生成手段を備える態様である。
さらに、上記の高位合成方法において、前記ハードウェア記述用トレース記述生成工程には次のようないくつかの好ましい態様がある。
すなわち、前記ハードウェア記述用トレース記述生成工程は、前記動作記述内の1つまたは複数の変数または式であるトレース対象に対応した前記ハードウェア記述内の信号の遷移履歴を取得するための前記ハードウェア記述用トレース記述を生成するという態様である。
これに対応して、上記の高位合成装置では、前記ハードウェア記述用トレース記述生成手段は、前記動作記述内の1つまたは複数の変数または式であるトレース対象に対応した前記ハードウェア記述内の信号の遷移履歴を取得するための前記ハードウェア記述用トレース記述を生成するという態様である。
また、前記ハードウェア記述用トレース記述生成工程は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果から前記ハードウェア記述用トレース記述を生成するという態様である。
これに対応して、上記の高位合成装置では、前記ハードウェア記述用トレース記述生成手段は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果から前記ハードウェア記述用トレース記述を生成するという態様である。
また、前記ハードウェア記述用トレース記述生成工程は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報と、前記トレース対象と前記ハードウェア記述中の信号との対応関係を示したデータパス対応情報から前記ハードウェア記述用トレース記述を生成するという態様である。
これに対応して、上記の高位合成装置では、前記ハードウェア記述用トレース記述生成手段は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報と、前記トレース対象と前記ハードウェア記述中の信号との対応関係を示したデータパス対応情報から前記ハードウェア記述用トレース記述を生成するという態様である。
そして、上記の高位合成方法において、前記トレース対象としてリスト化したトレース対象リストを用いる。この場合に、前記トレース対象としてリスト化したトレース対象リストを生成するトレース対象リスト生成工程を含むものとする。
また、前記トレース対象を決定するための参考情報を生成する参考情報生成工程を含むものとする。
また、前記トレース対象としてリスト化したトレース対象リストは、前記トレース対象を決定するための参考情報に基づいてユーザが選択することで生成されるものとする。
また、前記トレース対象を自動認識するものとする。
また、前記トレース対象リストは、前記動作記述からユーザが前記トレース対象を選択することで生成されるものとする。
また、前記トレース対象リスト生成工程は、前記トレース対象の遷移履歴を取得するための記述を含む前記動作記述を解析することによって前記トレース対象リストを生成するものとする。
また、前記トレース対象リスト生成工程は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果を解析することによって前記トレース対象リストを生成するものとする。
また、前記トレース対象リスト生成工程は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報を解析することによって前記トレース対象リストを生成するものとする。
また、前記参考情報生成工程は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果から前記参考情報を生成するものとする。
また、前記参考情報生成工程は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報から前記参考情報を生成するものとする。
また、前記参考情報生成工程は、前記トレース対象の遷移履歴を取得するための記述を含む前記動作記述から前記参考情報を生成するものとする。
また、前記トレース対象の遷移履歴を取得するための記述を含む前記動作記述を解析することによって前記トレース対象を自動認識するものとする。
また、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果を解析することによって前記トレース対象を自動認識するものとする。
また、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報を解析することによって前記トレース対象を自動認識するものとする。
高位合成により生成されたハードウェア記述中の信号が正しく動作するかの動的検証を行う場合、動作記述中のトレース対象がハードウェア記述中のどの信号に対応しているかを特定することが難しく、ハードウェア記述用トレース記述を作成することが困難である、というのが従来技術の問題であった。
これに対して、上記のように構成された本発明によれば、動作記述中のトレース対象に対応するハードウェア記述中の信号を特定することによって、前記ハードウェア記述中の信号の遷移履歴を取得するためのハードウェア記述用トレース記述を生成する。これにより、上記従来技術の問題を解決できるので、デバックの効率が向上する。
また、本発明によれば、動作記述用トレース記述とハードウェア記述用トレース記述を自動生成することができるので、これまでトレース記述を人手で作成していたのに比べて、検証環境を構築する時間を削減する効果がある。また、トレース記述の生成に人手が介在しないため、バグが入らないという効果がある。
また、動作記述が正しく動作しているか確認するために、動作記述中にはトレース記述が記述されていることがある。動作記述中のトレース記述は、遷移履歴を取得したいトレース対象を示している。本発明では、トレース記述を含む動作記述を解析する手段を有しており、高位合成装置に遷移履歴を取得したいトレース対象を明示しなくとも、トレース記述が記述してある動作記述から、直接、ハードウェア記述用トレース記述を生成することができるので、検証環境の構築に費やす時間を削減する効果がある。
また、高位合成装置が動作記述からハードウェア記述を生成するときに生成するレジスタ割り当て結果やライフタイム情報等のようなトレース対象が示されているものを用いて、検証の観点から有効なトレース対象を自動的に選択することによって、ユーザがトレース対象を選択する工数を削減することができるため、検証の効率を向上できる。
また、ユーザが動作記述中のトレース対象を選択する場合には、動作記述中の全てのトレース対象から特定のトレース対象を選択することになるが、動作記述の規模が大きくなると、動作記述中のトレース対象も膨大になり、その中から特定のトレース対象を選択することが困難になる。そこで、本発明では、レジスタ割り当て結果やライフタイム情報や動作記述等のようなトレース対象が示されているものから、トレース対象に関する参考情報を生成する。ユーザは遷移履歴を取得したいトレース対象を選択するときに、その参考情報を選択の補助として用いることができるので、トレース対象を選択することを容易にする効果がある。
さらに、変数に加えて、動作記述中の式もトレースすることができ、動作記述の記述形式に依存せずに、あらゆる演算結果をトレースすることができるので、検証の効率を高める効果がある。
以下、本発明にかかわる高位合成装置の実施の形態を図面に基づいて詳細に説明する。動作記述用トレース記述は、動作記述中のトレース対象の遷移履歴を取得するための記述である。また、ハードウェア記述用トレース記述は、トレース対象に対応するハードウェア記述中の信号の遷移履歴を取得するための記述である。本発明の実施の形態では、高位合成装置が動作記述用トレース記述とハードウェア記述用トレース記述を生成する方法を示す。簡単な動作記述を用いて以下に説明する。
<実施の形態1>
本発明の実施の形態1にかかわる高位合成方法は、ユーザが選択した動作記述中のトレース対象に対応するハードウェア記述中のレジスタを特定し、ハードウェア記述用トレース記述を生成する方法である。
図1は、本発明の実施の形態1における高位合成装置の構成を示す概念図である。図1において、高位合成装置A1は、ハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13を備えている。ハードウェア記述用トレース記述生成手段12は、レジスタ割り当て結果11とトレース対象リスト22からハードウェア記述用トレース記述23を生成する。ここで、トレース対象リスト22は、ユーザが動作記述21からトレース対象を選択することで生成する。レジスタ割り当て結果11は、レジスタに割り当てられたトレース対象とハードウェア記述中のレジスタとの対応を示す情報である。さらに、動作記述用トレース記述生成手段13は、動作記述21とトレース対象リスト22から動作記述用トレース記述24を生成する。
動作記述21とトレース対象リスト22とレジスタ割り当て結果11は、コンピュータ装置がアクセス可能な記憶領域に格納される。コンピュータ装置は、記憶領域にアクセスし、内部CPUを用いてハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13の処理を行い、生成したハードウェア記述用トレース記述23と動作記述用トレース記述24を再び前記記憶領域へ出力する。
以下、動作記述21として図17に示す動作記述(d=a+b;e=c*d;b=a+e)を例にして説明する。ここで、ユーザは遷移履歴を取得するトレース対象として、図17に示した動作記述中の変数「e」を選択するものとする。しかし、変数「e」に限定されるものではなく、ユーザは動作記述21中の全てのトレース対象を選択することができる。レジスタ割り当て結果11の例として図20を参照する。これは、図19のライフタイム情報から高位合成装置が作成するレジスタ割り当て結果である。図20のレジスタ割り当て結果が作成される過程は従来技術にて説明した。
動作記述21中のトレース対象の遷移履歴を取得するためには、トレース対象に対応するハードウェア記述中の信号を特定する必要がある。レジスタ割り当て結果11を参照することで、変数「e」に対応するレジスタと、そのレジスタに値が格納される制御ステップを知ることができる。図20に示したレジスタ割り当て結果から、変数「e」は制御ステップ2において第2のレジスタ37に格納される。
次に、ハードウェア記述用トレース記述生成手段12では、制御ステップ2において第2のレジスタ37に格納される変数「e」の遷移履歴を取得するためのトレース記述を生成する。
例として変数「e」をトレースするためにハードウェア記述用トレース記述生成手段12が生成したハードウェア記述用トレース記述23を図2に示す。図2に示すハードウェア記述用トレース記述23の一例では、記述言語としてVerilog−HDL言語を用いた。
図2の「always@( posedge clock ) begin」中の「clock」はハードウェア記述中のクロック信号を表しており、「if(step == 2) begin」の「step」は制御ステップを表しており、「$display(“e=%d\n”,reg2);」は動作記述21中の変数「e」に対応する第2のレジスタ37に格納されている値の遷移履歴を出力することを表している。つまり、制御ステップ2において第2のレジスタ37に格納される変数「e」の遷移履歴を取得する記述となっている。
なお、ハードウェア記述用トレース記述23は、高位合成装置A1が生成するハードウェア記述に付加した形態で高位合成装置A1に出力させることもできるし、ハードウェア記述に付加せずに分離させた記述として高位合成装置A1に出力させることもできる。
さらに、動作記述用トレース記述生成手段13では、変数「e」の遷移履歴を取得するための動作記述用トレース記述24を生成する。例として、図3に動作記述用トレース記述24を付加した動作記述21を示す。図3に示す動作記述用トレース記述24の一例では、記述言語としてANCI C言語を用いた。図17に示した動作記述に対して、図3に示す動作記述21は「printf(“e=%d\n”e);」の記述を最終行に付加している。
さらに、ハードウェア記述用トレース記述生成手段12は、変数以外にも、式に対応するハードウェア記述中のレジスタの遷移履歴を取得するハードウェア記述用トレース記述23を生成する。また、動作記述用トレース記述生成手段13は、変数以外にも、式の遷移履歴を取得する動作記述用トレース記述24を生成する。
図4に示したANCI C言語で記述された動作記述21を例として、式の遷移履歴を取得するためのトレース記述を生成する方法を説明する。
図4の動作記述21は、図17の動作記述と同じ演算を行っている。このため、図4の動作記述21のスケジューリング処理結果は図18に示したスケジューリング処理結果と全く同じになる。これにより、図19に示したライフタイム情報を導いたのと同様にして、図4に示した動作記述21におけるライフタイム情報を作成する。図4に示した動作記述21から作成されたライフタイム情報を図5に示す。さらに、図5に示したライフタイム情報から求めたレジスタ割り当て結果11を図6に示す。
以上により、図6に示すレジスタ割り当て結果11には、レジスタに割り当てられた変数ばかりでなくレジスタに割り当てられた式を示すことができる。これにより、レジスタ割り当て結果11から式が割り当てられたレジスタと、そのレジスタにデータが保持される制御ステップを特定することか可能となる。そして、ハードウェア記述用トレース記述生成手段12は、動作記述21中の式に対応したハードウェア記述中のレジスタの遷移履歴を取得するためのハードウェア記述用トレース記述23を生成し、動作記述用トレース記述生成手段13は、動作記述21中の式の遷移履歴を取得するための動作記述用トレース記述24を生成する。
例として、遷移履歴を取得するトレース対象として、式「c*(a+b)」を選択する場合について説明する。図6に示したレジスタ割り当て結果11より、この式が制御ステップ2において第2のレジスタ37に格納されることを特定できる。よって、ハードウェア記述用トレース記述生成手段12は、図2に示した記述と同じハードウェア記述用トレース記述23を生成する。
また、動作記述用トレース記述生成手段13が生成する動作記述用トレース記述24を含んだ動作記述21を図7に示す。図7に示す動作記述用トレース記述24の一例では、記述言語としてANCI C言語を用いた。図7に示した動作記述21では図4に示した動作記述21に対して、式「c*(a+b)」の遷移履歴を取得するための記述を付加してある。
以上、これまで簡単な動作記述21を例に説明したが、分枝やループを含む複雑な動作記述21に対しても、同様にトレース対象の遷移履歴を取得するためのハードウェア記述用トレース記述23を生成することが可能である。
<実施の形態2>
本発明の実施の形態2にかかわる高位合成方法は、トレース対象に関する参考情報に基づいてユーザが遷移履歴を取得するトレース対象を選択して、ハードウェア記述用トレース記述を生成する方法である。
図8は、本発明の実施の形態2における高位合成装置の構成を示す概念図である。図8において、高位合成装置A2は、ハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13と参考情報生成手段14を備えている。参考情報生成手段14は、レジスタ割り当て結果11を用いてトレース対象を決定するための候補となる参考情報25を生成する。その中からユーザがトレース対象を選択することでトレース対象リスト22を生成する。ハードウェア記述用トレース記述生成手段12は、トレース対象リスト22とレジスタ割り当て結果11からハードウェア記述用トレース記述23を生成する。また、動作記述用トレース記述生成手段13は、動作記述21とトレース対象リスト22から動作記述用トレース記述24を生成する。
動作記述21とトレース対象リスト22とレジスタ割り当て結果11と参考情報25は、コンピュータ装置がアクセス可能な記憶領域に格納されている。コンピュータ装置は、記憶領域にアクセスし、内部CPUを用いてハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13と参考情報生成手段14の処理を行い、生成したハードウェア記述用トレース記述23と動作記述用トレース記述24を再び前記記憶領域へ出力する。
以下、動作記述21として図17に示す動作記述(d=a+b;e=c*d;b=a+e)を例にして説明する。
参考情報生成手段14は、図20に示したレジスタ割り当て結果を用いて、各レジスタに最後に割り当てられたトレース対象を示した参考情報25を生成する。図9に、図20に示したレジスタ割り当て結果を用いて参考情報生成手段14が生成した参考情報25の一例を示す。ここでは、図20のレジスタ割り当て結果より、第1のレジスタ36の最終の制御ステップ3に割り当てられている変数「b」と、第2のレジスタ37の最終の制御ステップ2に割り当てられている変数「e」を参考情報25として抽出する。各レジスタの最終の制御ステップに割り当てられたトレース対象の遷移履歴を確認することにより、一連の演算処理後に演算が正しく行われたことを確認することができる。ユーザはこの参考情報25に基づいてトレース対象を選択して、トレース対象リスト22を生成する。
ここでは、参考情報生成手段14は、一例として、レジスタ割り当て結果11を用いて、各レジスタに最後に割り当てられたトレース対象を示した参考情報25を生成する例を説明した。しかし、参考情報生成手段14は、レジスタ割り当て結果11以外にも、動作記述21やライフタイム情報等のようなトレース対象の情報を含む記述から、トレース対象を決定するための参考情報25を生成できる。
なお、参考情報25は、トレース対象を決定するための情報であればいかなるものでよく、例えば、各制御ステップにおいてトレース対象がレジスタに割り当てられた回数を示した情報や、動作記述21中のトレース対象に対応するハードウェア記述中の信号を示した情報や、さらには、レジスタの割り当て結果や、ライフタイム情報そのものでもよい。
トレース対象リスト22を作成した後に、ハードウェア記述用トレース記述生成手段12は、トレース対象リスト22とレジスタ割り当て結果11からハードウェア記述用トレース記述23を生成する。ハードウェア記述用トレース記述23および動作記述用トレース記述24を生成する手順については実施の形態1で説明したので、ここでは省略する。
<実施の形態3>
本発明の実施の形態3にかかわる高位合成方法は、トレース対象の遷移履歴を取得するための記述を含む動作記述21を解析することによってハードウェア記述用トレース記述を生成する方法である。
図10は、本発明の実施の形態3における高位合成装置の構成を示す概念図である。図10において、高位合成装置A3は、ハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13とトレース対象リスト生成手段15を備えている。トレース対象リスト生成手段15は、トレース対象の遷移履歴を取得するためのトレース記述を含む動作記述21を解析してトレース対象リスト22を生成する。ハードウェア記述用トレース記述生成手段12は、トレース対象リスト22とレジスタ割り当て結果11からハードウェア記述用トレース記述23を生成する。また、動作記述用トレース記述生成手段13は、トレース対象リスト22と動作記述21から動作記述用トレース記述24を生成する。
動作記述21とトレース対象リスト22とレジスタ割り当て結果11は、コンピュータ装置がアクセス可能な記憶領域に格納される。コンピュータ装置は、記憶領域にアクセスし、内部CPUを用いてハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13とトレース対象リスト生成手段15の処理を行い、生成したハードウェア記述用トレース記述23と動作記述用トレース記述24を再び前記記憶領域へ出力する。
実施の形態3について、例としてANCI C言語で記述された図11に示すトレース記述が記述された動作記述21を使って説明する。
図11に示した動作記述21では、特定のトレース対象の遷移履歴を取得するために、トレース対象の値を標準出力している。図11の動作記述21では、図17の動作記述に対して、変数の値を標準出力する記述(3行目)のみ書き加えており、全く同じ演算を行っている。図11で書き加えた記述は、「printf("e=%d\n",e);」の部分である。
トレース対象リスト生成手段15が図11の動作記述21を解析する方法を図12に示したフローチャートを使って説明する。まず、動作記述21から1行だけ取り出す(S1)。次に、取り出した1行がトレース対象の遷移履歴を取得するためのトレース記述であるか解析する(S2)。解析した結果から、トレース対象の遷移履歴を取得するトレース記述であるかを判断する(S3)。トレース記述である場合には、そのトレース対象をトレース対象リスト22に加える(S4)。次に、動作記述21を最終行までスキャンしたかを確認する(S5)。最終行までスキャンしていなければ、(S1)の処理に戻り、再び動作記述21を1行取り出す。以上の処理を最終行まで行った場合には、終了する。図11の動作記述21を解析した結果、変数「e」がトレース対象リスト22に追加される。
なお、トレース対象リスト生成手段15は、図11に示した動作記述21中のトレース記述(3行目)に限定されず、トレース対象の遷移履歴を取得するためのトレース記述であれば、いかなる記述でも解析可能であるものとする。
ハードウェア記述用トレース記述生成手段12は、トレース対象リスト生成手段15が生成したトレース対象リスト22とレジスタ割り当て結果11からハードウェア記述用トレース記述23を生成する。
ハードウェア記述用トレース記述生成手段12がハードウェア記述用トレース記述23を生成する手順については実施の形態1で説明したので、ここでは省略する。
さらに、動作記述21中に式をトレース対象として記述されている場合もあり得る。この場合にも、トレース対象リスト生成手段15にて動作記述21を解析し、遷移履歴を取得すべき式を抽出することが可能である。
なお、図10では高位合成装置A3がトレース対象リスト22を出力しているが、出力しなくとも、高位合成装置A3の内部で遷移履歴を取得すべきトレース対象を自動認識して、ハードウェア記述用トレース記述生成手段12は、認識したトレース対象に対応するハードウェア記述中の信号のハードウェア記述用トレース記述23を生成することが可能である。
さらに、トレース対象リスト生成手段15は、動作記述21以外に、レジスタ割り当て結果11やライフタイム情報等のようなトレース対象の情報を含むいかなる記述からでも、それを解析することで、トレース対象を抽出することが可能である。
<実施の形態4>
本発明の実施の形態4にかかわる高位合成方法は、レジスタ割り当て結果を解析することでトレース対象を特定し、ハードウェア記述用トレース記述を生成する方法である。
図13は、本発明の実施の形態4における高位合成装置の構成を示す概念図である。図13において、高位合成装置A4は、ハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13とトレース対象リスト生成手段15を備えている。トレース対象リスト生成手段15は、レジスタ割り当て結果11を解析することでトレース対象リスト22を生成する。ハードウェア記述用トレース記述生成手段12は、トレース対象リスト22とレジスタ割り当て結果11からハードウェア記述用トレース記述23を生成する。また、動作記述用トレース記述生成手段13は、トレース対象リスト22と動作記述21から動作記述用トレース記述24を生成する。
動作記述21とトレース対象リスト22とレジスタ割り当て結果11は、コンピュータ装置がアクセス可能な記憶領域に格納される。コンピュータ装置は、記憶領域にアクセスし、内部CPUを用いてハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13とトレース対象リスト生成手段15の処理を行い、生成したハードウェア記述用トレース記述23と動作記述用トレース記述24を再び前記記憶領域へ出力する。
不具合箇所を効率的に特定するためには、適切なトレース対象を選択する必要がある。動作記述21の一連の演算処理を行う度に、最終結果が格納されるトレース対象の遷移履歴を取得することで、不具合箇所を迅速に特定することが可能になる。もし処理で誤りが発生した場合、演算の最終結果は誤った結果が得られる。そのため、最終結果が格納されるトレース対象の遷移履歴を取得することで、演算処理を行う度に演算が正しく行われたか確認することができる。
そこで、トレース対象リスト生成手段15は、レジスタ割り当て結果11から演算の最終結果を格納するトレース対象を抽出し、トレース対象リスト22を生成する。なお、トレース対象リスト生成手段15が抽出するトレース対象は、効率的に検証を行うものであれはいかなるものでもよく、ここでは一例として演算の最終結果を格納するトレース対象を挙げている。
以下、動作記述21として図17に示す動作記述(d=a+b;e=c*d;b=a+e)を例にして説明する。
トレース対象リスト生成手段15は、図20に示したレジスタ割り当て結果を解析する。図20で示したレジスタ割り当て結果において、変数「b」は、制御ステップ3にて、第1のレジスタ36に演算の最終結果が格納される。よって、トレース対象リスト生成手段15は、遷移履歴を取得するトレース対象として変数「b」を抽出し、トレース対象リスト22を生成する。
ハードウェア記述用トレース記述生成手段12は、トレース対象リスト22とレジスタ割り当て結果11からハードウェア記述用トレース記述23を生成する。ハードウェア記述用トレース記述23および動作記述用トレース記述24を生成する手順については実施の形態1で説明したので、ここでは省略する。
さらに、レジスタ割り当て結果11において、変数の他に式がレジスタに割り当てられる場合もある。この場合にも、トレース対象リスト生成手段15は、レジスタ割り当て結果11を解析して、遷移履歴を取得すべき式を抽出することが可能である。
さらに、トレース対象リスト生成手段15は、レジスタ割り当て結果11以外に、動作記述21やライフタイム情報等のようなトレース対象の情報を含むいかなる記述からでも、それを解析することでトレース対象を抽出することが可能である。
なお、図13では高位合成装置A4がトレース対象リスト22を出力しているが、出力しなくとも、高位合成装置A4の内部で遷移履歴を取得すべきトレース対象を自動認識して、ハードウェア記述用トレース記述生成手段12は、認識したトレース対象とレジスタ割り当て結果11からハードウェア記述用トレース記述23を生成することが可能である。
<実施の形態5>
これまで、レジスタに割り当てられるトレース対象に対応するハードウェア記述用トレース記述を生成する場合について説明したが、全てのトレース対象がレジスタに割り当てられない場合もあり得る。高位合成におけるスケジューリング処理では、ユーザが高位合成時に設定するクロック制約等の各種制約条件を満たすように、制御ステップ内に複数の演算を割り当てる。CDFGにおいて、クロック境界を横切るデータ依存枝はレジスタに割り当てられるが、クロック境界を横切らずに制御ステップ内に存在する演算間を結びつけるデータ依存枝は一般にレジスタに割り当てられない。
そこで、本発明の実施の形態5では、レジスタに割り当てられないトレース対象に対応するハードウェア記述中の信号を特定し、ハードウェア記述用トレース記述を生成する方法を示す。
図14は、本発明の実施の形態5にかかわる高位合成装置の構成を示す概念図である。図14において、高位合成装置A5は、ハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13を備えている。ハードウェア記述用トレース記述生成手段12は、トレース対象リスト22とデータパス対応情報17とライフタイム情報16からハードウェア記述用トレース記述23を生成する。また、動作記述用トレース記述生成手段13は、動作記述21とトレース対象リスト22から動作記述用トレース記述24を生成する。
動作記述21とトレース対象リスト22とライフタイム情報16とデータパス対応情報17は、コンピュータ装置がアクセス可能な記憶領域に格納される。コンピュータ装置は、記憶領域にアクセスし、内部CPUを用いてハードウェア記述用トレース記述生成手段12と動作記述用トレース記述生成手段13の処理を行い、生成したハードウェア記述用トレース記述23と動作記述用トレース記述24を再び前記記憶領域へ出力する。
トレース対象がレジスタに割り当てられない場合に、そのトレース対象に対応するハードウェア記述用トレース記述23を生成する方法を、図17に示す動作記述(d=a+b;e=c*d;b=a+e)を例にして説明する。ここでは、一例として、変数「d」を、遷移履歴を取得するトレース対象として選択した場合について説明する。
図19で示したライフタイム情報では、変数「d」は、クロック境界を横切らず、レジスタに割り当てられない変数である。図17に示した動作記述から、図19に示したライフタイム情報が生成される過程は従来技術にて説明した。
一般に高位合成では、CDFG中のデータ依存枝とハードウェア中のデータパスとの対応関係が成り立つ。高位合成装置A5が合成時に生成するデータ依存枝とデータパスとの対応関係を示すデータパス対応情報を図22に示した。図17に示した動作記述から、図22に示したデータパス対応情報が生成される過程は従来技術にて説明した。図22に示したデータパス対応情報には、図18のCDFGにおけるデータ依存枝と、図21のデータパスとの対応関係が示されている。図22で示したデータパス対応情報は、図18で示すCDFGのデータ依存枝r1,r2,r3,r4,r5,r6が、図21で示すデータパスp1,p2,p3,p4,p5,p6にそれぞれ対応していることを示している。ここで、変数「d」は、図18で示したCDFGのデータ依存枝r3に対応している。よって、図22に示したデータパス対応情報より、変数「d」に対応するデータパスは、図5中のデータパスp3に対応している。よって、レジスタに割り当てられない変数であっても、対応するデータパスをデータパス対応情報17から特定することが可能である。
さらに、ライフタイム情報16より、変数「d」に対応する図21中のデータパスp3の遷移履歴を取得する制御ステップを特定することが可能である。図19に示したライフタイム情報では、変数「d」は制御ステップ1に存在し、この制御ステップで遷移履歴を取得する必要がある。
以上より、図21中のデータパスp3に対応するハードウェア記述中の信号を、制御ステップ1の時点で取得することで、変数「d」に対応するハードウェア記述中の信号の遷移履歴を取得することができる。ハードウェア記述用トレース記述生成手段12が生成したハードウェア記述用トレース記述23の一例を図15に示す。なお、図15では、記述言語としてVerilog−HDL言語を用いている。ここで、図15中の信号「wire_d」は図21中のデータパスp3に対応するハードウェア記述中の信号とする。図15で示したハードウェア記述用トレース記述23は、制御ステップ1の時点で、信号「wire_d」上のデータを出力する機能を持つ。
また、動作記述用トレース記述生成手段13が生成する変数「d」の遷移履歴を取得するための動作記述用トレース記述24を含んだ動作記述21の一例を図16に示す。図16に示した動作記述21では、記述言語としてANCI C言語を用いている。図16に示した動作記述21では、変数「d」の遷移履歴を取得するためのトレース記述「printf(“d=%d\n”,d)」を動作記述21の最終行に付加している。
なお、ハードウェア記述用トレース記述生成手段12は、レジスタに割り当てられない変数以外にも、レジスタに割り当てられない式に対応するハードウェア記述中の信号の遷移履歴を取得するためのハードウェア記述用トレース記述23を生成することが可能である。また、動作記述用トレース記述生成手段13は、変数以外にも、式の遷移履歴を取得する動作記述用トレース記述24を生成することが可能である。
なお、図14では、トレース対象リスト22は高位合成装置A5の外部から与えているが、遷移履歴を取得するべきトレース対象は高位合成装置A5の内部で認識させることも可能である。ハードウェア記述用トレース記述生成手段12は、認識したトレース対象とライフタイム情報16とデータパス対応情報17からハードウェア記述用トレース記述23を生成することが可能である。
本発明の技術は、ハードウェア記述用トレース記述生成手段と動作記述用トレース記述生成手段を備え、高位合成装置が生成したハードウェア記述の動的検証等に有用である。
本発明の実施の形態1における高位合成装置の構成を示す概念図 本発明の実施の形態1におけるハードウェア記述用トレース記述の一例を示す図 本発明の実施の形態1における動作記述用トレース記述の一例を示す図 本発明の実施の形態1における多くの演算が1行で記述される動作記述の一例を示す図 本発明の実施の形態1における式のライフタイム情報の一例を示す図 本発明の実施の形態1における式とレジスタの対応を表すレジスタ割り当て結果を示す図 本発明の実施の形態1における式の遷移履歴を取得するための動作記述用トレース記述の一例を示す図 本発明の実施の形態2における高位合成装置の構成を示す概念図 本発明の実施の形態2における参考情報を示す図 本発明の実施の形態3における高位合成装置の構成を示す概念図 本発明の実施の形態3におけるトレース対象の遷移履歴を取得するためのトレース記述を含んだ動作記述の一例を示す図 本発明の実施の形態3におけるトレース対象リスト生成手段の動作を示すフローチャート 本発明の実施の形態4における高位合成装置の構成を示す概念図 本発明の実施の形態5における高位合成装置の構成を示す概念図 本発明の実施の形態5におけるハードウェア記述用トレース記述の一例を示す図 本発明の実施の形態5における動作記述用トレース記述の一例を示す図 高位合成における動作記述の一例を示す図 高位合成におけるスケジューリング処理の一例を示す図 高位合成におけるライフタイム情報の一例を示す図 高位合成におけるレジスタ割り当て結果の一例を示す図 高位合成におけるデータパス生成結果の一例を示す図 高位合成におけるデータパス対応情報の一例を示す図
符号の説明
A1〜A5 高位合成装置
11 レジスタ割り当て結果
12 ハードウェア記述用トレース記述生成手段
13 動作記述用トレース記述生成手段
14 参考情報生成手段
15 トレース対象リスト生成手段
16 ライフタイム情報
17 データパス対応情報
21 動作記述
22 トレース対象リスト
23 ハードウェア記述用トレース記述
24 動作記述用トレース記述
25 参考情報

Claims (25)

  1. 設計対象となる回路の動作を記述した動作記述から、前記動作記述をハードウェア化したハードウェア記述を生成する高位合成方法において、
    前記ハードウェア記述内の1つまたは複数の信号の遷移履歴を取得するためのハードウェア記述用トレース記述を生成するハードウェア記述用トレース記述生成工程を備えることを特徴とする高位合成方法。
  2. 前記動作記述内の1つまたは複数の変数または式であるトレース対象の遷移履歴を取得するための動作記述用トレース記述を生成する動作記述用トレース記述生成工程を備える請求項1に記載の高位合成方法。
  3. 前記ハードウェア記述用トレース記述生成工程は、前記動作記述内の1つまたは複数の変数または式であるトレース対象に対応した前記ハードウェア記述内の信号の遷移履歴を取得するための前記ハードウェア記述用トレース記述を生成する請求項1または請求項2に記載の高位合成方法。
  4. 前記ハードウェア記述用トレース記述生成工程は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果から前記ハードウェア記述用トレース記述を生成する請求項3に記載の高位合成方法。
  5. 前記ハードウェア記述用トレース記述生成工程は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報と、前記トレース対象と前記ハードウェア記述中の信号との対応関係を示したデータパス対応情報から前記ハードウェア記述用トレース記述を生成する請求項3に記載の高位合成方法。
  6. 前記トレース対象としてリスト化したトレース対象リストを用いる請求項3に記載の高位合成方法。
  7. 前記トレース対象としてリスト化したトレース対象リストを生成するトレース対象リスト生成工程を含む請求項6に記載の高位合成方法。
  8. 前記トレース対象を決定するための参考情報を生成する参考情報生成工程を含む請求項3に記載の高位合成方法。
  9. 前記トレース対象としてリスト化したトレース対象リストは、前記トレース対象を決定するための参考情報に基づいてユーザが選択することで生成される請求項6に記載の高位合成方法。
  10. 前記トレース対象を自動認識する請求項3に記載の高位合成方法。
  11. 前記トレース対象リストは、前記動作記述からユーザが前記トレース対象を選択することで生成される請求項6に記載の高位合成方法。
  12. 前記トレース対象リスト生成工程は、前記トレース対象の遷移履歴を取得するための記述を含む前記動作記述を解析することによって前記トレース対象リストを生成する請求項7に記載の高位合成方法。
  13. 前記トレース対象リスト生成工程は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果を解析することによって前記トレース対象リストを生成する請求項7に記載の高位合成方法。
  14. 前記トレース対象リスト生成工程は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報を解析することによって前記トレース対象リストを生成する請求項7に記載の高位合成方法。
  15. 前記参考情報生成工程は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果から前記参考情報を生成する請求項8に記載の高位合成方法。
  16. 前記参考情報生成工程は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報から前記参考情報を生成する請求項8に記載の高位合成方法。
  17. 前記参考情報生成工程は、前記トレース対象の遷移履歴を取得するための記述を含む前記動作記述から前記参考情報を生成する請求項8に記載の高位合成方法。
  18. 前記トレース対象の遷移履歴を取得するための記述を含む前記動作記述を解析することによって前記トレース対象を自動認識する請求項10に記載の高位合成方法。
  19. 前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果を解析することによって前記トレース対象を自動認識する請求項10に記載の高位合成方法。
  20. 前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報を解析することによって前記トレース対象を自動認識する請求項10に記載の高位合成方法。
  21. 設計対象となる回路の動作を記述した動作記述から、前記動作記述をハードウェア化したハードウェア記述を生成する高位合成装置において、
    前記ハードウェア記述内の1つまたは複数の信号の遷移履歴を取得するためのハードウェア記述用トレース記述を生成するハードウェア記述用トレース記述生成手段を備えることを特徴とする高位合成装置。
  22. 前記動作記述内の1つまたは複数の変数または式であるトレース対象の遷移履歴を取得するための動作記述用トレース記述を生成する動作記述用トレース記述生成手段を備える請求項21に記載の高位合成装置。
  23. 前記ハードウェア記述用トレース記述生成手段は、前記動作記述内の1つまたは複数の変数または式であるトレース対象に対応した前記ハードウェア記述内の信号の遷移履歴を取得するための前記ハードウェア記述用トレース記述を生成する請求項21または請求項22に記載の高位合成装置。
  24. 前記ハードウェア記述用トレース記述生成手段は、前記ハードウェア記述内に含まれるレジスタに割り当てられた前記トレース対象と前記レジスタの対応を示したレジスタ割り当て結果から前記ハードウェア記述用トレース記述を生成する請求項23に記載の高位合成装置。
  25. 前記ハードウェア記述用トレース記述生成手段は、前記ハードウェア記述中の信号に対応した前記トレース対象が前記ハードウェア記述の演算で使用される時間を示したライフタイム情報と、前記トレース対象と前記ハードウェア記述中の信号との対応関係を示したデータパス対応情報から前記ハードウェア記述用トレース記述を生成する請求項23に記載の高位合成装置。
JP2005165380A 2005-06-06 2005-06-06 高位合成方法および高位合成装置 Pending JP2006338586A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005165380A JP2006338586A (ja) 2005-06-06 2005-06-06 高位合成方法および高位合成装置
US11/447,040 US20060277518A1 (en) 2005-06-06 2006-06-06 High order synthesizing method and high order synthesizing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005165380A JP2006338586A (ja) 2005-06-06 2005-06-06 高位合成方法および高位合成装置

Publications (1)

Publication Number Publication Date
JP2006338586A true JP2006338586A (ja) 2006-12-14

Family

ID=37495575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005165380A Pending JP2006338586A (ja) 2005-06-06 2005-06-06 高位合成方法および高位合成装置

Country Status (2)

Country Link
US (1) US20060277518A1 (ja)
JP (1) JP2006338586A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7069437B1 (ja) * 2021-05-14 2022-05-17 三菱電機株式会社 高位合成装置、高位合成方法、及び情報処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838949A (en) * 1995-12-28 1998-11-17 Design Acceleration Inc. System and method for execution-sequenced processing of electronic design simulation results
US6175946B1 (en) * 1997-10-20 2001-01-16 O-In Design Automation Method for automatically generating checkers for finding functional defects in a description of a circuit
US6336087B2 (en) * 1998-07-24 2002-01-01 Luc M. Burgun Method and apparatus for gate-level simulation of synthesized register transfer level design with source-level debugging
US7356786B2 (en) * 1999-11-30 2008-04-08 Synplicity, Inc. Method and user interface for debugging an electronic system
US6546526B2 (en) * 2001-01-19 2003-04-08 Springsoft, Inc. Active trace debugging for hardware description languages
US7013457B2 (en) * 2001-07-26 2006-03-14 Springsoft, Inc. Prioritized debugging of an error space in program code
US7036114B2 (en) * 2001-08-17 2006-04-25 Sun Microsystems, Inc. Method and apparatus for cycle-based computation
US7162403B2 (en) * 2003-02-14 2007-01-09 Sun Microsystems, Inc. System and method for efficiently tracing simulation data in hardware acceleration simulation systems
US7536288B2 (en) * 2003-12-31 2009-05-19 International Business Machines Corporation Method, system and program product supporting user tracing in a simulator

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7069437B1 (ja) * 2021-05-14 2022-05-17 三菱電機株式会社 高位合成装置、高位合成方法、及び情報処理装置
WO2022239220A1 (ja) * 2021-05-14 2022-11-17 三菱電機株式会社 高位合成装置、高位合成方法、及び情報処理装置
DE112021007665T5 (de) 2021-05-14 2024-02-29 Mitsubishi Electric Corporation Hochniveau-synthese-einheit, hochniveau-synthese-verfahren und informations-verarbeitungseinrichtung

Also Published As

Publication number Publication date
US20060277518A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
Liu et al. Schedule of bad smell detection and resolution: A new way to save effort
JP6378128B2 (ja) 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム
US20020152061A1 (en) Data processing system and design system
KR100808257B1 (ko) 임베디드 시스템 프로토타입 개발 지원 장치 및 방법
JP2007128517A (ja) コンポーネントライブラリを自動設計するためのシステム、方法及びプログラム
US10936474B2 (en) Software test program generation
JP5450840B2 (ja) プログラムの実行性能評価のためのテストデータ生成方法
US9235670B2 (en) Method and an apparatus for automatic generation of verification environment for processor design and verification
JP2003016122A (ja) 論理回路設計方法
JP5109143B2 (ja) 検証装置および検証方法
US7813912B1 (en) Profiling a hardware system generated by compiling a high level language onto a programmable logic device
US7606694B1 (en) Framework for cycle accurate simulation
JP2004348606A (ja) 高位合成装置、ハードウェア検証用モデル生成方法およびハードウェア検証方法
JP4293562B2 (ja) ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体
JP2005063136A (ja) 半導体集積回路の設計装置、設計方法、及び設計プログラム
JP2006338586A (ja) 高位合成方法および高位合成装置
Chupilko et al. Open-source validation suite for risc-v
US6968523B2 (en) Design method of logic circuit using data flow graph
JP5328447B2 (ja) 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体
JP5147801B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、及び制御プログラム
JP5056493B2 (ja) 仮想ソフトウェア生成装置
Casale-Brunet et al. Programming models and methods for heterogeneous parallel embedded systems
JP2006338399A (ja) プログラム開発装置、プログラム開発ソフトウェア及び記憶媒体
JP2006190085A (ja) デジタル回路のモデリング方法及び設計方法
Diepenbeck et al. Behaviour driven development for hardware design