JP2007018313A - 回路設計プログラム、回路設計装置、回路設計方法 - Google Patents
回路設計プログラム、回路設計装置、回路設計方法 Download PDFInfo
- Publication number
- JP2007018313A JP2007018313A JP2005199822A JP2005199822A JP2007018313A JP 2007018313 A JP2007018313 A JP 2007018313A JP 2005199822 A JP2005199822 A JP 2005199822A JP 2005199822 A JP2005199822 A JP 2005199822A JP 2007018313 A JP2007018313 A JP 2007018313A
- Authority
- JP
- Japan
- Prior art keywords
- function
- hardware
- firmware
- circuit design
- parallel
- 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
Links
Images
Abstract
【課題】 回路設計において、ハードウェアとソフトウェアの適切な分割を行う回路設計プログラム、回路設計装置、回路設計方法を提供する。
【解決手段】 回路の動作を表す第1のファームウェアのシミュレーションを行い、実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、ログとファームウェア記述ルールとに基づいて、第1のファームウェアの関数毎の処理時間を算出すると共に、並列動作可能な関数を抽出する性能解析ステップと、並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数とハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、第1のファームウェアを、ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップとをコンピュータに実行させる。
【選択図】 図3
【解決手段】 回路の動作を表す第1のファームウェアのシミュレーションを行い、実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、ログとファームウェア記述ルールとに基づいて、第1のファームウェアの関数毎の処理時間を算出すると共に、並列動作可能な関数を抽出する性能解析ステップと、並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数とハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、第1のファームウェアを、ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップとをコンピュータに実行させる。
【選択図】 図3
Description
本発明は、システム記述言語を用いて、ハードウェアとソフトウェアで構成される回路を設計する際、ハードウェアとソフトウェアの分割を行う回路設計プログラム、回路設計装置、回路設計方法に関するものである。
現在、LSI(Large-scale Integrated Circuit)開発では、設計の上流においてシステム記述言語で記述された機能モデルを作成することにより、ハードウェア記述言語で記述される実際のハードの機能や性能の検証を行うことが要求されている。現在、システム記述言語としては、例えばC言語を用いるものが提供されており、併せて設計環境や検証環境が提供されている。しかし、実際には、工数や開発期間の問題から、単純な機能モデルである期待値生成プログラムを作成するのが限界である。更に、上述したシステム記述言語によるリファレンスモデルは、LSIの機能をハードウェアとソフトウェアに分割する場合の検討にも用いられてきている。
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献1が知られている。この半導体集積回路の設計装置は、ソフトウェア記述のうちハードウェア化する部分のアルゴリズムが指定されるに応じて、指定された部分をハードウェアの制御のアルゴリズムに置き換え、その度に、所望の性能を達成しているか否かの判断を行うものである。
特開2005−63136号公報
最近では、システム記述言語の検証環境において定量的に性能を計測し、ハードウェアとソフトウェアの分割を行う方法が確立されてきているが、性能を計測するために必要な処理時間は経験則で設定する必要があり、エキスパートが経験を元に分割を行うしかなかった。それでも、最適な分割を導くために手間が掛かる、最適でない分割になる、等の問題が発生していた。
本発明は上述した問題点を解決するためになされたものであり、回路設計において、ハードウェアとソフトウェアの適切な分割を行う回路設計プログラム、回路設計装置、回路設計方法を提供することを目的とする。
上述した課題を解決するため、本発明は、ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計をコンピュータに実行させる回路設計プログラムであって、前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップとをコンピュータに実行させるものである。
また、本発明に係る回路設計プログラムにおいて、前記ハードウェア化指定ステップは、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とするものである。
また、本発明に係る回路設計プログラムにおいて、前記ハードウェア化変換ステップは、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とするものである。
また、本発明に係る回路設計プログラムにおいて、前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とするものである。
また、本発明に係る回路設計プログラムにおいて、前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とするものである。
また、本発明に係る回路設計プログラムにおいて、前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とするものである。
また、本発明に係る回路設計プログラムにおいて、前記ハードウェア化指定ステップは、前記並列動作可能な関数を表示し、前記表示ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とするものである。
また、本発明は、ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を行う回路設計装置であって、前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーション部と、前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析部と、前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定部と、前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換部とを備えたものである。
また、本発明に係る回路設計装置において、前記ハードウェア化指定部は、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とするものである。
また、本発明に係る回路設計装置において、前記ハードウェア化変換部は、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とするものである。
また、本発明に係る回路設計装置において、前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とするものである。
また、本発明に係る回路設計装置において、前記ハードウェア化指定部は、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とするものである。
また、本発明に係る回路設計装置において、前記ハードウェア化指定部は、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とするものである。
また、本発明に係る回路設計装置において、前記ハードウェア化指定部は、前記並列動作可能な関数を表示し、前記表示ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とするものである。
また、本発明は、ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を実行する回路設計方法であって、前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップとを実行するものである。
本発明によれば、予め制御カードで設定された基準に従って、ハードウェア化関数を指定することにより、適切なハードウェアとソフトウェアの分割を行うことができる。また、アクティビティ図上に関数毎の処理サイクル時間と並列動作可能な関数を表示し、更にハードウェア化を行った場合の処理サイクル時間を表示することにより、適切なハードウェアとソフトウェアの分割を行うことができる。また、シミュレーションを行ったリファレンスモデルをそのままファームウェアとして利用することができることから、性能測定、ハードウェアとソフトウェアの分割、実装を効率的に行うことができる。
以下、本発明の実施の形態について図面を参照しつつ説明する。
本実施の形態では、設計する回路をLSIとし、リファレンスモデルはC言語で記述されるものとする。
まず、本発明に係る回路設計装置が対象とするLSIのアーキテクチャについて説明する。
図1は、本発明に係る回路設計装置が対象とするLSIのアーキテクチャの一例を示すブロック図である。LSI100は、CPU(Central Processing Unit)101、データパス入力バッファ102、データパス出力バッファ103、ハードウェアブロック104、バス105、メモリ106、外部メモリIF(インタフェイス)107を備え、外部メモリIF107は、LSI100の外部に備えられた外部メモリ108に接続される。
次に、LSIの検証のためにシステム記述言語で記述されるリファレンスモデルについて説明する。
図2は、本発明に係る回路設計装置が対象とするLSIのリファレンスモデルの一例を示すブロック図である。LSI100をモデル化したリファレンスモデル110は、CPU101とその上で動作するファームウェア120をモデル化したCPUモデル111、データパス入力バッファ102をモデル化したデータパス入力バッファモデル112、データパス出力バッファ103をモデル化したデータパス出力バッファモデル113、ハードウェアブロック104をモデル化したハードウェアブロックモデル114、バス105をモデル化したバスモデル115を備える。
次に、本発明に係る回路設計装置の構成について説明する。
図3は、本発明に係る回路設計装置の構成の一例を示すブロック図である。この回路設計装置は、シミュレーション部11、性能解析部12、ハードウェア化候補抽出部13、GUI部14、ハードウェア化変換部15、設計データ出力部16、制御カード記憶部21を備える。
次に、本発明に係る回路設計装置の動作について説明する。
図4は、本発明に係る回路設計装置の動作の一例を示すフローチャートである。まず、シミュレーション部11は、ファームウェアとテストベンチを読み込み(S11)、コンパイルを行った後、シミュレーションを実行し、実行中にログを出力する(S12)。ここで、ファームウェアは、性能測定用ファームウェアであり、ハードウェアブロックを用いずに全ての機能をソフトウェアで実現すると共に、性能測定機能を持つファームウェアである。性能測定機能により、実行中の関数の情報を含むログが出力される。また、この性能測定用ファームウェアは、ハードウェアとソフトウェアの分割の後、最終的には性能測定用の機能が省かれ、実装用ファームウェアとなるものである。次に、性能解析部12とハードウェア化候補抽出部13とGUI部14は、ハードウェアとソフトウェアの分割処理を行う(S13)。次に、設計データ出力部16は、ファームウェアの性能が合格であるか否かの判断を行う(S14)。
性能が合格でなければ(S14,N)、ユーザの指示により性能測定用ファームウェアが変更され(S15)、処理S12へ戻る。一方、性能が合格であれば(S14,Y)、設計データ出力部16は、性能測定用ファームウェアの変更が行われたか否かの判断を行う(S17)。性能測定用ファームウェアの変更が行われていない場合(S17,N)、このフローを終了する。一方、性能測定用ファームウェアの変更が行われた場合(S17,Y)、設計データ出力部16は、性能測定用ファームウェアを実装用のファームウェアに変換して出力すると共に、ハードウェアブロックモデル、アーキテクチャモデルを出力し(S18)、このフローを終了する。
ここで、実装用ファームウェアでは、性能測定用ファームウェアに含まれるログの出力など性能測定の機能が省かれる。また、実装用ファームウェアとは、ファームウェア120に対応し、ハードウェアブロックモデルとは、ハードウェアブロックモデル114に対応し、アーキテクチャモデルは、その他のCPUモデル111、データパス入力バッファモデル112、データパス出力バッファモデル113、バスモデル115に対応する。
次に、ハードウェアとソフトウェアの分割処理について説明する。
図5は、本発明に係るハードウェアとソフトウェアの分割処理の動作の一例を示すフローチャートである。まず、性能解析部12は、ログを読み込み、性能解析処理を行う(S20)。次に、性能解析部12は、制御カード記憶部21に予め設定された制御カードに従って、自動ハードウェア候補抽出を行うか否かの判断を行う(S21)。自動ハードウェア候補抽出を行わない場合(S21,N)、処理S31へ移行する。一方、自動ハードウェア候補抽出を行う場合(S21,Y)、ハードウェア化候補抽出部13は、制御カードに従って自動ハードウェア候補抽出を行う(S22)。次に、性能解析部12は、制御カードに従ってGUI表示を行うか否かの判断を行う(S23)。
GUI表示を行う場合(S23,Y)、GUI部14は、GUI表示としてアクティビティ図等の表示を行い、アクティビティ図上におけるハードウェア化の操作に伴って、表示の変更を行う(S31)。次に、GUI部14は、ユーザの操作に従ってハードウェア化指定を行うか否かの判断を行う(S32)。ハードウェア化指定を行わない場合(S32,N)、このフローを終了する。一方、ハードウェア化指定を行う場合(S32,Y)、GUI部14は、ハードウェア化指定として、アクティビティ図上におけるユーザの操作に従ってハードウェア化関数の指定とハードウェア化関数の処理サイクル時間の指定を行う。
一方、GUI表示を行わない場合(S23,N)、性能解析部12は、ハードウェア化指定として、ハードウェア化候補をハードウェア化関数として指定し、ハードウェア化関数に対して予め設定された処理サイクル時間を指定する(S35)。次に、ハードウェア化変換部15は、指定されたハードウェア化関数についてハードウェア化変換処理を行い(S36)、このフローを終了する。
次に、性能測定用ファームウェアの具体例について説明する。
図6は、本発明に係るハードウェアとソフトウェアの分割前の性能測定用ファームウェアと共通領域の構成の一例を示す図である。この性能測定用ファームウェアは、計測関数定義、ドライバ関数定義、ファームウェアメイン関数(firm_main)定義で構成される。ファームウェアメイン関数は、データ処理のための関数A、関数Bを呼び出す。また、関数Aは、関数Cを呼び出し、関数Bは、関数D、関数Eを呼び出し、関数Dは、関数Fを呼び出す。共通領域は、フラグは単位データが入力されたことを示す単位データ入力フラグ、関数Aの単位データ処理が終わったことを示す関数A単位データ処理終了フラグ、関数Bの単位データ処理が終わったことを示す関数B単位データ処理終了フラグ、各関数がアクセスするレジスタa,b,c,d,eを有する。
計測関数として、関数の開始時と終了時に呼び出す処理サイクル時刻ロギング関数が定義される。処理サイクル時刻ロギング関数は、現在のCPU時間から処理サイクル時刻を求め、引数として入力されたキーワード、呼び出した関数の識別子、処理サイクル時刻をログに出力する。ここで、関数の開始時には処理開始サイクル時刻関数として、キーワード“START”を引数として処理サイクル時刻ロギング関数を呼び出し、関数の終了時には処理終了サイクル時刻関数として、キーワード“END”を引数として処理サイクル時刻ロギング関数を呼び出す。また、処理サイクル時刻ロギング関数は、性能測定用ファームウェアでだけ実行され、実装用ファームウェアでは実行されない。
ドライバ関数の定義においては、データパス入力バッファ102から読み出すデバイスドライバとデータパス出力バッファ103へ書き込むデバイスドライバが定義される。書き込みデバイスドライバは、キーワード“WRITE”を引数として処理サイクル時刻ロギング関数を呼び出し、バスが占有されている間待機し、書き込み中フラグをtrueとし、仮想空間エリアに対してアドレスを割り付け、アドレスを割り付けたエリアの部分にデータをコピーし、書き込み中フラグをfalseとし、終了する。読み出しデバイスドライバは、キーワード“READ”を引数として処理サイクル時刻ロギング関数を呼び出し、バスが占有されている間待機し、読み出し中フラグをtrueとし、仮想空間エリアからアドレスに割り付けられたポインタを抽出し、ポインタから値を取得し、取得した値をデータに代入し、読み出し中フラグをfalseとし、終了する。
ファームウェアメイン関数は、入力データと出力データの定義を有する。また、ファームウェアメイン関数は、読み込みデバイスドライバの呼び出し、データ処理メイン関数(proc_main)の呼び出し、書き込みデバイスドライバの呼び出しを有する。
データ処理メイン関数は、処理開始サイクル時刻計測関数の呼び出しを行い、単位データ入力フラグが1であれば、単位データ入力フラグを0とし、以下のデータ処理を実行する。全ての関数の単位データ処理終了フラグが1でなければ、各関数の単位データ処理終了フラグが0であれば対応する関数を呼び出す動作を繰り返す。全ての関数の単位データ処理終了フラグが1になれば、単位データ処理終了フラグを0として処理終了サイクル時刻計測関数を呼び出し、終了する。
データ処理のための関数Aは、処理開始サイクル時刻計測関数を呼び出し、読み出しデバイスドライバを呼び出し、何らかのデータ処理を行い、書き込みデバイスドライバを呼び出し、関数Cを呼び出し、単位データ処理が終了すれば関数Aの単位データ処理終了フラグを1とし、処理終了サイクル時刻計測関数を呼び出し、終了する。
データ処理のための関数Bは、処理開始サイクル時刻計測関数を呼び出し、読み出しデバイスドライバを呼び出し、何らかのデータ処理を行い、書き込みデバイスドライバを呼び出し、関数Dを呼び出し、何らかのデータ処理を行い、関数Eを呼び出し、単位データ処理が終了すれば関数Bの単位データ処理終了フラグを1とし、処理終了サイクル時刻計測関数を呼び出し、終了する。
データ処理のための関数Cは、処理開始サイクル時刻計測関数を呼び出し、読み出しデバイスドライバを呼び出し、何らかのデータ処理を行い、書き込みデバイスドライバを呼び出し、処理終了サイクル時刻計測関数を呼び出し、終了する。
データ処理のための関数Dは、処理開始サイクル時刻計測関数を呼び出し、読み出しデバイスドライバを呼び出し、何らかのデータ処理を行い、書き込みデバイスドライバを呼び出し、関数Fを呼び出し、処理終了サイクル時刻計測関数を呼び出し、終了する。
データ処理のための関数Eは、処理開始サイクル時刻計測関数を呼び出し、読み出しデバイスドライバを呼び出し、何らかのデータ処理を行い、書き込みデバイスドライバを呼び出し、処理終了サイクル時刻計測関数を呼び出し、終了する。
データ処理のための関数Fは、処理開始サイクル時刻計測関数を呼び出し、読み出しデバイスドライバを呼び出し、何らかのデータ処理を行い、書き込みデバイスドライバを呼び出し、処理終了サイクル時刻計測関数を呼び出し、終了する。
次に、ファームウェア記述ルールについて説明する。ユーザは、以下のファームウェア記述ルールに従ってファームウェアを記述する。
図7は、本発明に係るファームウェアにおける並列動作が可能な関数の一例を示すソースコードである。このように、同じ関数A内で関数Bと関数Cが呼び出される記述がある場合、性能解析部12は、関数Bと関数Cは並列に動作することが可能と判断する。図8は、本発明に係るファームウェアにおける並列動作が不可能な関数の一例を示すソースコードである。このように、関数A内で関数Bが呼び出され、関数B内で処理の後に関数Cが呼び出される場合、関数B内の処理の後に関数Cの処理を行うものとする。
このようなファームウェア記述ルールを設けることにより、ユーザは容易に並列動作可能な関数を記述することができると共に、性能解析部12は容易にログから構成を解析することができる。
次に、性能解析処理について詳細に説明する。性能解析処理として、構成解析と時間解析が行われる。
まず、性能解析部12は、シミュレーション部11によるシミュレーションの実行中に処理サイクル時刻ロギング関数で出力されたログを読み込み、構成解析を行う。関数が呼び出されるごとにcounterを用意し、同関数内でキーワード“START”があれば、counterに+1を行い、キーワード“END”があればcounterに−1を行う。また、counter=0のとき、次のキーワード“START”を持つ関数は並列化できる。また、キーワード“START”の時のcounterが1である関数は直接呼出し関数となる。この動作を全ての関数について行う。
図9は、本発明に係るログと構成解析の結果の一例を示す図である。ここで、例えば、ファームウェアメイン関数のcounterにおいて、関数Aの終了時にcounterが0となって関数Bが開始することから、関数Aと関数Bは並列動作が可能であると判断される。また、関数Bのcounterにおいて、関数Dの終了時にcounterが0となって関数Eが開始することから、関数Dと関数Eは並列動作が可能であると判断される。また、ファームウェアメイン関数のcounterにおいて、関数Aの開始時と関数Bの開始時にcounterが1となっていることから、関数Aと関数Bは直接呼出し関数であると判断される。
次に、性能解析部12は、時間解析を行う。同じ関数について、キーワード“END”の処理サイクル時刻からキーワード“START”の処理サイクル時刻を引いたものが、その関数に掛かる時間となる。また、ある関数について、“END”が出現する前に直接呼出し関数Xの“START”が出現し、かつ直接呼出し関数Yの“END”が無い場合、関数Xの“START”の処理サイクル時刻から呼び出し元の“START”の処理サイクル時刻を引いたものが、関数Xを呼び出すまでに掛かる時間となる。また、ある関数について、“END”が出現する前に直接呼出し関数Xの“START”が出現し、かつ直接呼出し関数Yの“END”がある場合、関数Xの“START”の処理サイクル時刻から関数Yの“END”の処理サイクル時刻を引いたものが、関数Xを呼び出すまでに掛かる時間となる。また、“END”の処理サイクル時刻から直接呼出し関数の“END”の処理サイクル時刻を引いたものが後処理サイクル時間となる。また、直接呼出し関数以外の関数の“START”が重なる場合、下位の関数において時間を求める。この動作を全ての関数について行う。
図10は、本発明に係るログと時間解析の結果の一例を示す図である。ここで、例えば、関数Fの処理サイクル時間は、75と算出される。また、ファームウェアメイン関数において、関数Aを呼び出すまでの処理サイクル時間は21、関数Aの“END”から関数Bを呼び出すまでの処理サイクル時間は6となる。また、ファームウェアメイン関数において、関数Bの後処理サイクル時間は32となる。
次に、制御カードについて説明する。制御カードは、ハードウェア化候補の抽出やハードウェア化関数の指定に関する設定が記述されたものであり、予め設定される。
図11は、本発明に係る制御カードの一例を示す図である。ここで、制御カードはテキストで記述されており、そのフォーマットについて説明する。一行にキーワードと設定値が記述されており、キーワードと設定値の間は空白文字列が記載されている。また、キーワードと設定値からなる行は、複数記述することができる。また、“VALUE”以外の同じキーワードの行が複数行記述されている場合、同じキーワードの行のうち一番最後の行が有効になる。
図12は、本発明に係る制御カード中のキーワードと設定値の説明の一例を示す図である。“AUTO_SELECT”は自動実行の設定を表し、設定値が0であれば、この制御カードは利用しない。設定値が1であれば、ハードウェア化候補の抽出のみを自動で行い、GUIを表示する。設定値が2であれば、ハードウェア化指定までを全て自動で行い、GUIを表示しない。“METHOD_TYPE”はハードウェア化候補の抽出方法を表し、設定値が0であれば、サイクル数の平均値に対する割合を基準としてハードウェア化候補を抽出する。設定値が1であれば、サイクル数の絶対値を基準としてハードウェア化候補を抽出する。
“AVE_THRESHOLD”はハードウェア化候補の関数を抽出する閾値を表し、関数毎のサイクル数の平均値に対する割合を、サイクル数の平均値に対するパーセントで指定する。自動ハードウェア化候補抽出においては、この閾値以上の処理サイクル数を持つ関数が、ハードウェア化候補として抽出される。“ABS_THRESHOLD”はハードウェア化候補の関数を抽出する閾値を表し、関数毎のサイクル数の絶対値で指定する。自動ハードウェア化候補抽出においては、この閾値以上の処理サイクル数を持つ関数が、ハードウェア化候補として抽出される。“NOT_TARGETED”はハードウェア化対象外の関数を、関数名で指定する。カンマ区切りを用いて複数の関数名を指定することができる。但し、AUTO_SELECT=2のときにここで指定された関数がハードウェア化候補になってしまった場合は、AUTO_SELECT=1相当の動作を強制的に行う。設定値としては、関数名を指定する。
“VALUE”はAUTO_SELECT=1以上の場合に利用する。ハードウェア化候補になった場合に指定するサイクル数を関数毎に指定する。ここで、値が定義されていない関数がハードウェア化候補になってしまった場合、AUTO_SELECT=1相当の動作を強制的に行う。
AUTO_SELECT=1である場合、“VALUE”で指定されたサイクル数が、ハードウェア化候補のサイクル数としてGUI部14により表示される。また、AUTO_SELECT=1である場合、“VALUE”で指定されたサイクル数がハードウェア化関数のサイクル数としてハードウェア化変換部15に渡される。
このような制御カードを用いることにより、回路設計装置がハードウェア化指定を全て自動で行うこともでき、回路設計装置が候補として抽出したハードウェア化関数と処理サイクル時間を表示し、ユーザがGUI上で確認し、指定することもでき、ユーザがGUI上で全てのハードウェア化指定を行うこともできる。
次に、GUI部14によるGUI表示について詳細に説明する。
GUI部14は、自動ハードウェア候補抽出を行わない場合、性能解析部12による構造解析と時間解析の結果に基づいて、第1のアクティビティ図を生成し、表示する。アクティビティ図とは、UML(Unified Modeling Language)で用いられており、並列処理を記述することができる図である。図13は、本発明に係るGUI部により表示される第1のアクティビティ図の一例を示す図である。この例では、上述したように、関数Aと関数Bは、並列動作が可能であることを表す。また、関数Dと関数Eは、並列動作が可能であることを表す。また、上述した時間解析で算出された処理サイクル時間が表示される。更に、アクティビティ図の最上部には、図中の処理全体の処理サイクル時間が表示される。
GUI表示を行う場合、ユーザは、この第1のアクティビティ図上でハードウェア化指定を行うことができる。例えば、ユーザは、並列動作が可能と表示されている部分の中で処理サイクル時間が大きい部分をハードウェア化関数として指定する。
次に、GUI部14は、ハードウェア化変換部15による自動ハードウェア化候補抽出の後、またはユーザの指示に従ってハードウェア化指定を行った後、第2のアクティビティ図を生成し、表示する。図14は、本発明に係るGUI部により表示される第2のアクティビティ図の一例を示す図である。この例では、関数Dと関数Fがハードウェア化候補として抽出された、またはハードウェア化関数として指定された場合を表している。ハードウェア化による関数Dの処理サイクル時間は100に指定されている。制御カードまたはユーザによる処理サイクル時間の指定は、予測値に基づいても良いし、仕様に基づいても良い。更に、第2のアクティビティ図の最上部には、第1のアクティビティ図と同様に図全体の処理サイクル時間が表示されても良いし、第1のアクティビティ図の処理全体の処理サイクル時間と第2のアクティビティ図の処理全体の処理サイクル時間の差が表示されても良い。
なお、本実施の形態において、GUI部14は、アクティビティ図を表示するとしたが、並列処理を表すことができる他の図を表示しても良い。
アクティビティ図上に関数毎の処理サイクル時間と並列動作可能な関数を表示し、更にハードウェア化を行った場合の処理サイクル時間を表示することにより、適切なハードウェアとソフトウェアの分割を行うことができる。
次に、ハードウェア化変換処理について説明する。
ハードウェア化変換処理とは、ハードウェア化関数をハードウェアブロックに変換し、これに伴って、ファームウェアからハードウェア化関数を削除し、ファームウェアにハードウェアブロックとの接続を追加するものである。具体的には、モジュール定義、接続追加、呼び出し元関数変更を行う。
モジュール定義とは、予め用意されたスケルトンを用いて、ハードウェア化のためのラッパーを生成するものであり、予めスケルトンが用意される。このスケルトンには、関数定義のヘッダファイル名、モジュール宣言のためのハードウェア化関数名、ハードウェア化指定において指定された処理サイクル数、呼び出しのためのハードウェア化関数名、等の可変部分が存在し、これらの可変部分がハードウェア化指定に従って実際の値に置き換えられる。このモジュールは、カウンタを初期化し、ハードウェア化関数のステータスレジスタにbusyになるとハードウェア化関数を実行し、クロック変化の度にカウンタを増加させ、カウンタが指定された処理サイクル数になるまでウェイトを行い、カウンタが指定された処理サイクル数になったらハードウェア化関数のステータスレジスタをreadyにするものである。
接続追加の関数には、上述したモジュールを宣言するためのモジュール宣言部分と上述したモジュールを接続するための接続部分が存在する。モジュール宣言部分に同名のモジュールがない場合、モジュールの宣言として“モジュール名 関数名”を追加する。また、接続部分に同名の関数がない場合、接続のための関数名とポート名を追加する。
呼び出し元関数変更では、まず、ハードウェア化関数の呼び出し元関数において、ハードウェア化関数の呼び出しをコメントアウトすることにより、無効化する。また、ハードウェア化関数の呼び出し元関数において、ハードウェア化関数のステータスレジスタにbusyを書き込み、ハードウェア化関数に対応するハードウェアブロックによりreadyになるまで待つポーリングの動作を追加する。このポーリングの動作により、ハードウェア化関数の呼び出し元関数は、ハードウェアブロックの処理中に待機するようになる。
図15は、本発明に係るハードウェアとソフトウェアの分割後のファームウェアと共通領域の構成の一例を示す図である。この例のファームウェアは、性能測定用ファームウェアにおける関数Dと関数Fをハードウェア化したものであり、ハードウェア化のためのラッパーからハードウェア化された関数Dと関数Fを呼び出す形に変換されている。
更に、回路設計装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、回路設計プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、回路設計装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
なお、ハードウェア化指定部とは、実施の形態におけるハードウェア化候補抽出部、GUI部に対応する。ハードウェア化指定ステップとは、実施の形態におけるハードウェア化候補抽出部による処理、GUI部による処理に対応する。
(付記1) ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計をコンピュータに実行させる回路設計プログラムであって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップと、
をコンピュータに実行させる回路設計プログラム。
(付記2) 付記1に記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とする回路設計プログラム。
(付記3) 付記1または付記2に記載の回路設計プログラムにおいて、
前記ハードウェア化変換ステップは、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とする回路設計プログラム。
(付記4) 付記1乃至付記3のいずれかに記載の回路設計プログラムにおいて、
前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とする回路設計プログラム。
(付記5) 付記1乃至付記4のいずれかに記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とする回路設計プログラム。
(付記6) 付記1乃至付記4のいずれかに記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計プログラム。
(付記7) 付記1乃至付記4のいずれかに記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、前記並列動作可能な関数を表示し、前記表示ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計プログラム。
(付記8) ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を行う回路設計装置であって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーション部と、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析部と、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定部と、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換部と、
を備えてなる回路設計装置。
(付記9) 付記8に記載の回路設計装置において、
前記ハードウェア化指定部は、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とする回路設計装置。
(付記10) 付記8または付記9に記載の回路設計装置において、
前記ハードウェア化変換部は、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とする回路設計装置。
(付記11) 付記8乃至付記10のいずれかに記載の回路設計装置において、
前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とする回路設計装置。
(付記12) 付記8乃至付記11のいずれかに記載の回路設計装置において、
前記ハードウェア化指定部は、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とする回路設計装置。
(付記13) 付記8乃至付記11のいずれかに記載の回路設計装置において、
前記ハードウェア化指定部は、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計装置。
(付記14) 付記8乃至付記11のいずれかに記載の回路設計装置において、
前記ハードウェア化指定部は、前記並列動作可能な関数を表示し、前記表示ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計装置。
(付記15) ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を実行する回路設計方法であって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップと、
を実行する回路設計方法。
(付記16) 付記15に記載の回路設計方法において、
前記ハードウェア化指定ステップは、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とする回路設計方法。
(付記17) 付記15または付記16に記載の回路設計方法において、
前記ハードウェア化変換ステップは、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とする回路設計方法。
(付記18) 付記15乃至付記17のいずれかに記載の回路設計方法において、
前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とする回路設計方法。
(付記19) 付記15乃至付記18のいずれかに記載の回路設計方法において、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とする回路設計方法。
(付記20) 付記15乃至付記18のいずれかに記載の回路設計方法において、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計方法。
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップと、
をコンピュータに実行させる回路設計プログラム。
(付記2) 付記1に記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とする回路設計プログラム。
(付記3) 付記1または付記2に記載の回路設計プログラムにおいて、
前記ハードウェア化変換ステップは、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とする回路設計プログラム。
(付記4) 付記1乃至付記3のいずれかに記載の回路設計プログラムにおいて、
前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とする回路設計プログラム。
(付記5) 付記1乃至付記4のいずれかに記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とする回路設計プログラム。
(付記6) 付記1乃至付記4のいずれかに記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計プログラム。
(付記7) 付記1乃至付記4のいずれかに記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、前記並列動作可能な関数を表示し、前記表示ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計プログラム。
(付記8) ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を行う回路設計装置であって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーション部と、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析部と、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定部と、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換部と、
を備えてなる回路設計装置。
(付記9) 付記8に記載の回路設計装置において、
前記ハードウェア化指定部は、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とする回路設計装置。
(付記10) 付記8または付記9に記載の回路設計装置において、
前記ハードウェア化変換部は、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とする回路設計装置。
(付記11) 付記8乃至付記10のいずれかに記載の回路設計装置において、
前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とする回路設計装置。
(付記12) 付記8乃至付記11のいずれかに記載の回路設計装置において、
前記ハードウェア化指定部は、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とする回路設計装置。
(付記13) 付記8乃至付記11のいずれかに記載の回路設計装置において、
前記ハードウェア化指定部は、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計装置。
(付記14) 付記8乃至付記11のいずれかに記載の回路設計装置において、
前記ハードウェア化指定部は、前記並列動作可能な関数を表示し、前記表示ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計装置。
(付記15) ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を実行する回路設計方法であって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップと、
を実行する回路設計方法。
(付記16) 付記15に記載の回路設計方法において、
前記ハードウェア化指定ステップは、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とする回路設計方法。
(付記17) 付記15または付記16に記載の回路設計方法において、
前記ハードウェア化変換ステップは、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とする回路設計方法。
(付記18) 付記15乃至付記17のいずれかに記載の回路設計方法において、
前記第1のファームウェアは、実行中の関数の識別子と時刻を含むログを出力する機能を含むことを特徴とする回路設計方法。
(付記19) 付記15乃至付記18のいずれかに記載の回路設計方法において、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数として指定し、該ハードウェア化関数の処理時間を予め設定された値に指定することを特徴とする回路設計方法。
(付記20) 付記15乃至付記18のいずれかに記載の回路設計方法において、
前記ハードウェア化指定ステップは、前記並列動作可能な関数のうち予め設定された処理時間の基準に適するものを前記ハードウェア化関数の候補として表示し、ユーザの操作に従ってハードウェア化関数と該ハードウェア化関数の処理時間を指定することを特徴とする回路設計方法。
11 シミュレーション部、12 性能解析部、13 ハードウェア化候補抽出部、14 GUI部、15 ハードウェア化変換部、16 設計データ出力部、21 制御カード記憶部。
Claims (5)
- ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計をコンピュータに実行させる回路設計プログラムであって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップと、
をコンピュータに実行させる回路設計プログラム。 - 請求項1に記載の回路設計プログラムにおいて、
前記ハードウェア化指定ステップは、アクティビティ図上に前記関数毎の処理時間と前記並列動作可能な関数を表示することを特徴とする回路設計プログラム。 - 請求項1または請求項2に記載の回路設計プログラムにおいて、
前記ハードウェア化変換ステップは、前記第1のファームウェアから前記ハードウェア化関数の呼び出しを削除すると共に、前記ハードウェアブロックとの接続を追加することにより、前記第2のファームウェアに変換することを特徴とする回路設計プログラム。 - ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を行う回路設計装置であって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーション部と、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析部と、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定部と、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換部と、
を備えてなる回路設計装置。 - ハードウェアと該ハードウェア上で実行されるファームウェアで構成される回路について、システム記述言語を用いた設計を実行する回路設計方法であって、
前記回路の動作を表す第1のファームウェアのシミュレーションを行い、該シミュレーション実行中の関数の識別子と時刻を含むログを出力するシミュレーションステップと、
前記ログと並列動作可能な関数の記述のルールを定めたファームウェア記述ルールとに基づいて、前記第1のファームウェアの関数毎の処理時間を算出すると共に、前記第1のファームウェアから並列動作可能な関数を抽出する性能解析ステップと、
前記並列動作可能な関数のうち、実装時にハードウェアに変換する関数であるハードウェア化関数と該ハードウェア化関数の処理時間の指定を行うハードウェア化指定ステップと、
前記第1のファームウェアを、前記ハードウェア化関数に対応するハードウェアブロックに接続する第2のファームウェアに変換するハードウェア化変換ステップと、
を実行する回路設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005199822A JP2007018313A (ja) | 2005-07-08 | 2005-07-08 | 回路設計プログラム、回路設計装置、回路設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005199822A JP2007018313A (ja) | 2005-07-08 | 2005-07-08 | 回路設計プログラム、回路設計装置、回路設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007018313A true JP2007018313A (ja) | 2007-01-25 |
Family
ID=37755427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005199822A Pending JP2007018313A (ja) | 2005-07-08 | 2005-07-08 | 回路設計プログラム、回路設計装置、回路設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007018313A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163576A (ja) * | 2008-01-08 | 2009-07-23 | Fujitsu Ltd | 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム |
KR101076348B1 (ko) | 2008-06-11 | 2011-10-25 | 후지쯔 가부시끼가이샤 | 시뮬레이션 장치, 시뮬레이션 방법, 및 시뮬레이션 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
JP2013025703A (ja) * | 2011-07-25 | 2013-02-04 | Hitachi Information & Communication Engineering Ltd | ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体 |
-
2005
- 2005-07-08 JP JP2005199822A patent/JP2007018313A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163576A (ja) * | 2008-01-08 | 2009-07-23 | Fujitsu Ltd | 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム |
KR101076348B1 (ko) | 2008-06-11 | 2011-10-25 | 후지쯔 가부시끼가이샤 | 시뮬레이션 장치, 시뮬레이션 방법, 및 시뮬레이션 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
JP2013025703A (ja) * | 2011-07-25 | 2013-02-04 | Hitachi Information & Communication Engineering Ltd | ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4994393B2 (ja) | 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法 | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
JP2001202397A (ja) | システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法 | |
JP2007286671A (ja) | ソフトウェア/ハードウェア分割プログラム、および分割方法。 | |
JP5200675B2 (ja) | シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 | |
JP2006285333A (ja) | 動作合成装置及び方法 | |
US20070271080A1 (en) | Model generation method for software/hardware collaboration design | |
JP5034916B2 (ja) | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 | |
JP2006139729A (ja) | ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体 | |
JP5233355B2 (ja) | プロパティ生成システムおよびプロパティ検証システム | |
JP2007018313A (ja) | 回路設計プログラム、回路設計装置、回路設計方法 | |
JP4728563B2 (ja) | コード生成装置、コード生成プログラム、機能実行装置、機能実行プログラム、モデル生成装置、およびモデル生成プログラム | |
JP4870956B2 (ja) | 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部 | |
US10223077B2 (en) | Determination of signals for readback from FPGA | |
JP5577619B2 (ja) | 論理回路設計装置 | |
JP5056493B2 (ja) | 仮想ソフトウェア生成装置 | |
JP2011238137A (ja) | 性能推定装置 | |
JP5001126B2 (ja) | ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体 | |
JP5233354B2 (ja) | プロパティ検証システム、プロパティ検証方法、及びプログラム | |
JP2009217720A (ja) | プログラム生成装置およびプログラム生成方法 | |
US10908934B2 (en) | Simulation program, method, and device | |
JP5262678B2 (ja) | 動作合成システム、動作合成方法、及び動作合成用プログラム | |
JP5034867B2 (ja) | ソフトウェア検証支援プログラム、該プログラムを記録した記録媒体、ソフトウェア検証支援装置、およびソフトウェア検証支援方法 | |
JP2001022808A (ja) | 論理回路削減装置ならびに論理シミュレーション方法および装置 | |
US8495539B1 (en) | Scheduling processes in simulation of a circuit design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081003 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081014 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090414 |