(57)【要約】【課題】  ソースプログラムに記述された機能からハードウェアに置換する部分を選出する度に所望の性能を達成しているかの判断情報を得ることができること。【解決手段】  アルゴリズムが記述されたソフトウェア情報を記憶するソフトウェア情報記憶部13、ハードウェア情報を記憶するハードウェア情報記憶部23、プロセッサの情報を記憶するプロセッサ情報記憶部33、ハードウェア化する部分のアルゴリズムを指定するハードウェア化指定部16、ハードウェア化する部分のアルゴリズムからハードウェア記述を生成してハードウェア情報及びプロセッサ情報を変更するハードウェア変更部18、ハードウェア化する部分のアルゴリズムを当該ハードウェアを制御するアルゴリズムに置き換えてソフトウェア情報を変更するソフトウェア変更部17、変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから性能を解析する性能解析部41とを備える。【選択図】      図１
2005063136.tif 000002
【特許請求の範囲】
【請求項１】
目的に応じて再構成可能なプロセッサを含む半導体集積回路を設計する設計装置であって、
前記半導体集積回路に求められるアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報を記憶するソフトウェア情報記憶部と、
前記半導体集積回路のハードウェア記述を含むハードウェア情報を記憶するハードウェア情報記憶部と、
前記プロセッサの情報であるプロセッサ情報を記憶するプロセッサ情報記憶部と、
前記ソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムを指定するハードウェア化指定部と、
指定された前記ハードウェア化する部分のアルゴリズムから、ハードウェア記述を生成して前記ハードウェア情報及び前記プロセッサ情報を変更するハードウェア変更部と、
指定された前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成して前記ソフトウェア情報を変更するソフトウェア変更部と、
変更された前記ソフトウェア情報と前記ハードウェア情報及び前記プロセッサ情報とから前記半導体集積回路の性能を解析する性能解析部と
を備えることを特徴とする半導体集積回路の設計装置。
【請求項２】
前記半導体集積回路の設計装置は、前記ソフトウェア情報を表示する表示部を備え、
前記ハードウェア化指定部は、前記表示部に表示されたソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムを選択指定する入力部を備えることを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項３】
前記ハードウェア化指定部は、前記ハードウェア化する部分のアルゴリズムを指定する際に、前記ハードウェア情報及び前記プロセッサ情報の変更を指示するハードウェア情報変更指示信号と、前記ソフトウェア情報の変更を指示するソフトウェア情報変更指示信号と、前記性能の解析を指示する性能解析指示信号とを出力し、
前記ハードウェア変更部は、前記ハードウェア情報変更指示信号に基づいて、指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を自動生成して前記ハードウェア情報及び前記プロセッサ情報を自動的に変更し、
前記ソフトウェア変更部は、前記ソフトウェアウェア情報変更指示信号に基づいて、前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を自動生成して前記ソフトウェア情報を自動的に変更し、
前記性能解析部は、前記性能解析指示信号に基づいて、変更された前記ソフトウェア情報と変更された前記ハードウェア情報とから前記半導体集積回路の性能を自動解析する
ことを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項４】
前記ソフトウェア情報は、前記ソフトウェア記述を構成する関数の呼び出し関係、前記関数の呼び出し回数、前記関数を構成する命令数、前記関数の実行サイクル数、前記関数を構成する命令種別のうち１つ以上の情報を含むことを特徴とする請求項１ないし請求項３のいずれか１項に記載の半導体集積回路の設計装置。
【請求項５】
前記ハードウェア情報は、モジュールのゲート数、実行サイクル数のうち１つ以上の情報を含むことを特徴とする請求項１ないし請求項３のいずれか１項に記載の半導体集積回路の設計装置。
【請求項６】
前記プロセッサ情報は、プログラムメモリサイズ、命令数、レジスタ数のうち１つ以上の情報を含むことを特徴とする請求項１ないし請求項３のいずれか１項に記載の半導体集積回路の設計装置。
【請求項７】
目的に応じて再構成可能なプロセッサを含む半導体集積回路をコンピュータにより設計する設計方法であって、
ソフトウェア情報記憶部に記憶されている前記半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている前記半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されている前記プロセッサの情報とから、前記半導体集積回路の性能を解析する段階と、
前記解析結果に応じて、前記ソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムの指定を受け付ける段階と、
指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を生成して前記ハードウェア情報及び前記プロセッサ情報を変更する段階と、
指定された前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成して前記ソフトウェア情報を変更する段階と、
変更された前記ソフトウェア情報と前記ハードウェア情報及び前記プロセッサ情報とから、前記半導体集積回路の性能を解析する段階とを含み、
前記各段階の処理を前記コンピュータに実行させることを特徴とする半導体集積回路の設計方法。
【請求項８】
前記ハードウェア化部分の指定受付段階において、表示部に表示されたソフトウェア情報に含まれるソフトウェア記述のうち、入力部からハードウェア化する部分のアルゴリズムが選択指定されるのを受け付けることを特徴とする請求項７に記載の半導体集積回路の設計方法。
【請求項９】
前記ハードウェア化部分の指定受付段階において、前記ハードウェア化する部分のアルゴリズムの選択指定を受け付ける際に、前記ハードウェア情報及び前記プロセッサ情報の変更を指示するハードウェア情報変更指示信号と、前記ソフトウェア情報の変更を指示するソフトウェア情報変更指示信号と、前記性能の解析を指示する性能解析指示信号とを出力し、
前記ハードウェアの変更段階において、前記ハードウェア情報変更指示信号に基づいて、指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を自動生成して前記ハードウェア情報及び前記プロセッサ情報を自動的に変更し、
前記ソフトウェアの変更段階において、前記ソフトウェアウェア情報変更指示信号に基づいて、前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を自動生成して前記ソフトウェア情報を自動的に変更し、
前記性能解析段階において、前記性能解析指示信号に基づいて、変更された前記ソフトウェア情報と変更された前記ハードウェア情報とから前記半導体集積回路の性能を自動解析する
ことを特徴とする請求項７に記載の半導体集積回路の設計方法。
【請求項１０】
前記ソフトウェア情報は、前記ソフトウェア記述を構成する関数の呼び出し関係、前記関数の呼び出し回数、前記関数を構成する命令数、前記関数の実行サイクル数、前記関数を構成する命令種別のうち１つ以上の情報を含むことを特徴とする請求項７ないし請求項９のいずれか１項に記載の半導体集積回路の設計方法。
【請求項１１】
前記ハードウェア情報は、モジュールのゲート数、実行サイクル数のうち１つ以上の情報を含むことを特徴とする請求項７ないし請求項９のいずれか１項に記載の半導体集積回路の設計方法。
【請求項１２】
前記プロセッサ情報は、プログラムメモリサイズ、命令数、レジスタ数のうち１つ以上の情報を含むことを特徴とする請求項７ないし請求項９のいずれか１項に記載の半導体集積回路の設計方法。
【請求項１３】
目的に応じて再構成可能なプロセッサを含む半導体集積回路をコンピュータにより設計するための設計プログラムであって、
ソフトウェア情報記憶部に記憶されている前記半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている前記半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されている前記プロセッサ情報とから、前記半導体集積回路の性能を解析するステップと、
前記解析結果に応じて、前記ソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムの指定を受け付けるステップと、
指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を生成して前記ハードウェア情報及び前記プロセッサ情報を変更するステップと、
指定された前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成して前記ソフトウェア情報を変更するステップと、
変更された前記ソフトウェア情報と前記ハードウェア情報及び前記プロセッサ情報とから、前記半導体集積回路の性能を解析するステップとを含み、
前記各ステップの処理を前記コンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
【請求項１４】
前記ハードウェア化部分の指定受付ステップにおいて、表示部に表示されたソフトウェア情報に含まれるソフトウェア記述のうち、入力部からハードウェア化する部分のアルゴリズムが選択指定されるのを受け付けることを特徴とする請求項１３に記載の半導体集積回路の設計プログラム。
【請求項１５】
前記ハードウェア化部分の指定受付ステップにおいて、前記ハードウェア化する部分のアルゴリズムの選択指定を受け付ける際に、前記ハードウェア情報及び前記プロセッサ情報の変更を指示するハードウェア情報変更指示信号と、前記ソフトウェア情報の変更を指示するソフトウェア情報変更指示信号と、前記性能の解析を指示する性能解析指示信号とを出力し、
前記ハードウェアの変更ステップにおいて、前記ハードウェア情報変更指示信号に基づいて、指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を自動生成して前記ハードウェア情報及び前記プロセッサ情報を自動的に変更し、
前記ソフトウェアの変更ステップにおいて、前記ソフトウェアウェア情報変更指示信号に基づいて、前記ハードウェア化する部分のアルゴリズムを、ハードウェア化される部分を制御するアルゴリズムに置き換えたソフトウェア記述を自動生成して前記ソフトウェア情報を自動的に変更し、
前記性能解析ステップにおいて、前記性能解析指示信号に基づいて、変更された前記ソフトウェア情報と変更された前記ハードウェア情報とから前記半導体集積回路の性能を自動解析する
ことを特徴とする請求項１３に記載の半導体集積回路の設計プログラム。
【請求項１６】
前記ソフトウェア情報は、前記ソフトウェア記述を構成する関数の呼び出し関係、前記関数の呼び出し回数、前記関数を構成する命令数、前記関数の実行サイクル数、前記関数を構成する命令種別のうち１つ以上の情報を含むことを特徴とする請求項１３ないし請求項１５のいずれか１項に記載の半導体集積回路の設計プログラム。
【請求項１７】
前記ハードウェア情報は、モジュールのゲート数、実行サイクル数のうち１つ以上の情報を含むことを特徴とする請求項１３ないし請求項１５のいずれか１項に記載の半導体集積回路の設計プログラム。
【請求項１８】
前記プロセッサ情報は、プログラムメモリサイズ、命令数、レジスタ数のうち１つ以上の情報を含むことを特徴とする請求項１３ないし請求項１５のいずれか１項に記載の半導体集積回路の設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、目的に応じて再構成可能なプロセッサを含む半導体集積回路の設計装置、設計方法、及び設計プログラムに係り、特に、半導体集積回路のアルゴリズムが記述されたソフトウェア記述から、ハードウェアで実現する部分と実行プログラムとしてソフトウェアで実現する部分とに機能分割する際の支援技術に関する。
【背景技術】
【０００２】
従来、目的に応じて命令を追加したり、構成を変更したりできるプロセッサを搭載したＳｏＣ（System on Chip）などのシステムＬＳＩ設計では、設計者は、開発対象のシステムに求められるアルゴリズムをＣ言語などの高級言語でソースプログラムを記述して、上位レベルでのシステムシミュレーションを行ってシステムとしての機能の確認を行うことが不可欠になっている。
【０００３】
具体的には、図８に示すように、アルゴリズムが記述されたソースプログラムを入力し（ステップS901）、搭載するプロセッサの構成を選択し、ソースプログラムをコンパイルして上位レベルのシミュレーションを実行し、所望する性能を達成したか否かを検証する（ステップS902）。
【０００４】
検証の結果、所望の性能を達成していない場合は（ステップS903）、ソースレベルでのプロファイルを取得し、ハードウェア化すべき（ボトルネックとなっている）箇所を特定する（ステップS904）。更に、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出し（ソースプログラムレベルで、ハードウェア／ソフトウェアの機能を分割）、ソースプログラムを書き換え（ステップS905）、新たに分割されたハードウェアの機能をエミュレートするプログラムを作成する（ステップS906）。
【０００５】
そして、システムシミュレーションを再度実行して、所望の性能が達成されたか否かを検証する（ステップS902）。検証の結果、所望の性能が達成された場合は（ステップS903）、ソフトウェアのチューニング、高位合成、人手による設計等、実装するための作業が行われる（ステップS907）。
【０００６】
ハードウェア化すべき箇所の特定（ステップS904）、ハードウェアに置き換える部分の選び出しと、ソースプログラムの書き換え（ステップS905）、エミュレートプログラムの作成（ステップS906）、という一連の作業は、シミュレーション結果が満足するまで繰り返し行われるため、ソースプログラムの書き換えやシミュレーション環境の修正など人手による作業が大きな負担となり、設計にかかる時間やコストを増大させていた。
【０００７】
そこで、画面上で所望の装置を新たな部品として登録すると、データベースに蓄えられたハードウェア部品情報やソフトウェア部品情報を基に新たなハードウェア情報とソフトウェア情報を生成し表示することで、ハードウェアとソフトウェアの切り分け作業での初期段階における性能評価作業を支援する装置が開示されている（例えば、特許文献１参照）。
【０００８】
また、グラフィカル・デザイン・エディタで、プロセッサ、メモリ、周辺回路のライブラリの選択を行うようにすることで設計作業を容易にし、更に、選択されたアイテムに基づいて回路とソフトウェア設計環境を生成する技術が開示されている（例えば、非特許文献１参照）。
【特許文献１】特開２０００−５７１８８号公報
【非特許文献１】“プラットフォーム・ベース設計手法 Platform Express（TM）”，メンター・グラフィックス・ジャパン株式会社，News and Views 2002年2月号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の装置においては、ソースプログラムに記述されたアルゴリズムからハードウェアに置き換える部分を選択して機能を分割したことによるプロセッサ自体の構成への影響を考慮した情報表示が行えないため、再構成可能なプロセッサの性能を考慮した設計ができない。また、コンパイラやシミュレーション環境を整備するための支援機能がないため、環境整備の際の手作業によるミスの発生により、設計品質の低下や設計期間の長期化を招くという問題がある。
【００１０】
また、非特許文献１には、ハードウェアの選択に基づいて変更されるソフトウェア設計環境を整備する機能がある旨が示されているが、再構成可能なプロセッサに対応していないことと、ＬＳＩに求められるアルゴリズムを高級言語でプログラミングするトップダウンの設計フローで必要な、ソースプログラムに記述されたアルゴリズムからハードウェア化する部分を選択して機能分割する機能がないため、再構成可能なプロセッサを用いたアルゴリズム記述からの設計に対応できない。このため、アルゴリズム記述を用いた上位レベルからの設計において、ソースプログラムの書き換えやシミュレーション環境の修正など人手による作業が必要となり、設計に係る期間の長期化やコスト増といった問題がある。
【００１１】
本発明は、このような問題に鑑みてなされたものであって、再構成可能なプロセッサを含む半導体集積回路の設計において、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出す度に、所望の性能を達成しているか否かの判断情報を容易に得ることができ、プロセッサ等への影響などを考慮した設計を可能にする設計装置、設計方法、及び設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明に係る半導体集積回路の設計装置の特徴は、目的に応じて再構成可能なプロセッサを含む半導体集積回路を設計する設計装置であって、(a)開発対象の半導体集積回路に求められるアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報を記憶するソフトウェア情報記憶部と、(b)半導体集積回路のハードウェア記述を含むハードウェア情報を記憶するハードウェア情報記憶部と、(c)プロセッサの情報を記憶するプロセッサ情報記憶部と、(d)ソフトウェア情報に含まれるソフトウェア記述のうちハードウェア化する部分のアルゴリズムを指定するハードウェア化指定部と、(e)指定されたハードウェア化する部分のアルゴリズムから、ハードウェア記述を生成してハードウェア情報及びプロセッサ情報を変更するハードウェア変更部と、(f)指定されたハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成してソフトウェア情報を変更するソフトウェア変更部と、(g)変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから半導体集積回路の性能を解析する性能解析部とを備えることにある。
【００１３】
また、本発明に係る半導体集積回路の設計方法の特徴は、目的に応じて再構成可能なプロセッサを含む半導体集積回路をコンピュータにより設計する設計方法であって、(a)ソフトウェア情報記憶部に記憶されている半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されているプロセッサ情報とから、半導体集積回路の性能を解析する段階と、(b)解析結果に応じて、ソフトウェア情報に含まれるソフトウェア記述のうちハードウェア化する部分のアルゴリズムの指定を受け付ける段階と、(c)指定されたハードウェア化する部分のアルゴリズムからハードウェア記述を生成してハードウェア情報及びプロセッサ情報を変更する段階と、(d)指定されたハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成してソフトウェア情報を変更する段階と、(e)変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから、半導体集積回路の性能を解析する段階とを含み、上記(a)〜(e)の各段階の処理をコンピュータに実行させることにある。
【００１４】
また、本発明に係る半導体集積回路の設計プログラムの特徴は、目的に応じて再構成可能なプロセッサを含む半導体集積回路をコンピュータにより設計するための設計プログラムであって、(a)ソフトウェア情報記憶部に記憶されている半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されているプロセッサ情報とから、半導体集積回路の性能を解析するステップと、(b)解析結果に応じて、ソフトウェア情報に含まれるソフトウェア記述のうちハードウェア化する部分のアルゴリズムの指定を受け付けるステップと、(c)指定されたハードウェア化する部分のアルゴリズムからハードウェア記述を生成してハードウェア情報及びプロセッサ情報を変更するステップと、(d)指定されたハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成してソフトウェア情報を変更するステップと、(e)変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから、半導体集積回路の性能を解析するステップとを含み、各ステップの処理をコンピュータに実行させることにある。
【００１５】
このような構成によれば、ソフトウェア記述のうちハードウェア化する部分のアルゴリズムが指定されるに応じて、指定されたハードウェア化する部分のアルゴリズムからハードウェア記述が生成されてハードウェア情報及びプロセッサ情報が逐次変更され、ソフトウェア記述の中の指定されたハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述が生成されてソフトウェア情報が逐次変更される。そして、変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから半導体集積回路の性能が解析されるため、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出す度に、所望の性能を達成しているか否かの判断情報を容易に得ることができ、プロセッサ等への影響などを考慮した半導体集積回路設計を容易に行うことができる。
【発明の効果】
【００１６】
本発明によれば、再構成可能なプロセッサを含む半導体集積回路の設計において、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出す度に、所望の性能を達成しているか否かの判断情報を容易に得ることができ、プロセッサ等への影響などを考慮した設計を可能にする設計装置、設計方法、及び設計プログラムを提供することできる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図面に基づいて説明する。尚、各図面を通じて同一もしくは同等の部位や構成要素には、同一もしくは同等の参照符号を付し、その説明を省略もしくは簡略化する。
【００１８】
［設計装置の構成］
本実施形態における半導体集積回路の設計装置は、ターゲットシステムに応じて、命令を追加したり、構成（コンフィグレーション）を変更したりすることができる再構成可能なプロセッサ（コンフィグラブル・プロセッサ）を含むシステムＬＳＩ等を設計するための設計装置であり、例えば、中央処理装置、記憶装置、入力装置、出力装置などを備えたコンピュータシステムにより実現される。
【００１９】
図１に示すように、本実施形態における設計装置は、ソフトウェア情報入力部１２、ソフトウェア情報記憶部１３、ハードウェア情報入力部２２、ハードウェア情報記憶部２３、プロセッサ情報入力部３２、プロセッサ情報記憶部３３、コンパイル部１４、入力部１５、ハードウェア化指定部１６、ソフトウェア変更部１７、ハードウェア変更部１８、性能解析部４１、表示部４２などを備えている。
【００２０】
ソフトウェア情報入力部１２は、開発対象システムＬＳＩに求められるアルゴリズムが記述されたソフトウェア記述（ソースプログラム）を含むソフトウェア情報１１を入力し、ソフトウェア情報記憶部１３に記憶させる。コンパイル部１４は、ソフトウェア情報記憶部１３に記憶されているソースプログラムをコンパイルし、プロファイルを取得してソフトウェア情報記憶部１３に記憶させる。プロファイルには、図３に例示するように、関数の呼び出し関係、関数の呼び出し回数、関数に含まれている命令数及び命令種別、処理サイクル数などのソフトウェア情報が含まれる。
【００２１】
ハードウェア情報入力部２２は、開発対象システムＬＳＩのハードウェア部分をハードウェア記述言語で記述したハードウェア記述を含むハードウェア情報２１を入力し、ハードウェア情報記憶部２３に記憶させる。ハードウェア情報２１には、図４（ａ）に例示するように、モジュールのゲート数、実行サイクル数などの情報が含まれる。
【００２２】
プロセッサ情報入力部３２は、開発対象システムＬＳＩのプロセッサ部の情報であるプロセッサ情報３１を入力し、プロセッサ情報記憶部３３に記憶させる。プロセッサ情報３１には、図４（ｂ）に例示するように、プログラムメモリサイズ、命令数、レジスタ数などの情報が含まれる。
【００２３】
ハードウェア化指定部１６は、図５に例示するように、ソフトウェア情報記憶部１３に記憶されているプロファイルをソフトウェア情報として表示部４２に表示させ、それと共に、ハードウェア情報記憶部２３に記憶されているハードウェア情報とプロセッサ情報記憶部３３に記憶されているプロセッサ情報を表示部４２に表示させる。
【００２４】
表示部４２に表示されたソフトウェア情報からハードウェア化する部分のアルゴリズム（関数）が、入力部１５から選択指定されると、ハードウェア化指定部１６は、ハードウェア情報及びプロセッサ情報の変更を指示するハードウェア情報変更指示信号４５をハードウェア変更部１８に出力し、ソフトウェア情報の変更を指示するソフトウェア情報変更指示信号４４をソフトウェア変更部１７に出力する。それと共に、ハードウェア化指定部１６は、性能の解析を指示する性能解析指示信号４６を性能解析部４１に出力する。
【００２５】
ハードウェア変更部１８は、ハードウェア情報変更指示信号４５に基づいて、指定されたハードウェア化する部分のアルゴリズム（関数）からハードウェア記述を自動生成して、ハードウェア情報記憶部２３に記憶されているハードウェア情報及びプロセッサ情報記憶部３３に記憶されているプロセッサ情報を自動的に変更する。
【００２６】
ソフトウェア変更部１７は、ソフトウェアウェア情報変更指示信号４４に基づいて、ソースプログラムの中のハードウェア化する部分のアルゴリズム（関数）を、新たに機能分割されるハードウェア部分を制御するアルゴリズムに置き換えたソフトウェア記述を自動生成し、ソフトウェア情報記憶部１３に記憶されているソースプログラムを更新する。そして、コンパイル部１４は、更新されたソースプログラムをリコンパイルし、プロファイルを再取得して、ソフトウェア情報記憶部１３に記憶されているソフトウェア情報を自動的に変更する。
【００２７】
性能解析部４１は、性能解析指示信号４６に基づいて、変更されたソフトウェア情報と変更されたハードウェア情報及びプロセッサ情報とから半導体集積回路の性能を自動解析し、表示部４２にする（あるいは、性能情報４３として出力する）。
【００２８】
このように、本実施形態における設計装置は、アルゴリズムが記述されたソースプログラムからハードウェア化する部分を適切に選択して機能分割するよう支援するために、ソースプログラム中の関数の呼び出し関係、呼び出し回数、関数を構成する命令数、実行ステップ数などのソフトウェア情報と、関数をハード化した時のサイズ（ゲート数）と実行サイクル数やプロセッサのプログラムメモリサイズなどのハードウェア情報を表示部４２に表示させる。そして、設計者がハードウェア化する部分のアルゴリズム（例えば関数）を、表示部４２に表示されているソフトウェア情報から選択（例えばドラッグ）してハードウェア情報側に移動（例えばドロップ）させると、表示部４２に表示されるソフトウェア情報とハードウェア情報の表示内容が逐次変化し、設計対象のＬＳＩが所望の性能に達しているかの判断情報を表示部４２に表示して設計を支援する。
【００２９】
［設計装置の処理動作］
図２は、本実施形態における設計装置による半導体集積回路の設計処理手順を例示している。尚、図２に示す設計処理手順をコンピュータプログラムにして、コンピュータ読み取り可能な記憶媒体に格納し、コンピュータシステムにより実現される本実施形態における設計装置に読み取らせ、読み取らせたコンピュータプログラムに記述されている各処理を設計装置に実行させることができる。
【００３０】
図２に示すように、まず、ステップS101において、開発対象のシステムＬＳＩに求められるアルゴリズムが記述されたソフトウェア記述（ソースプログラム）を含むソフトウェア情報１１をソフトウェア情報入力部１２から入力し、ソフトウェア情報記憶部１３に記憶させる。それと共に、ハードウェア情報２１をハードウェア情報入力部２２から入力し、ハードウェア情報記憶部２３に記憶させ、プロセッサ情報３１をプロセッサ情報入力部３２から入力し、プロセッサ情報記憶部３３に記憶させる。
【００３１】
ステップS102において、コンパイル部１４は、ソフトウェア情報記憶部１３に記憶されているソースプログラムをコンパイルして、プロファイル情報を取得する。
【００３２】
ステップS103において、性能解析部４１は、ソフトウェア情報記憶部１３に記憶されているソフトウェア情報と、ハードウェア情報記憶部２３に記憶されているハードウェア情報、及びプロセッサ情報記憶部３３に記憶されているプロセッサ情報とからシミュレーションを実行して開発対象のシステムＬＳＩの性能を解析し、ステップS104において、表示部４２に表示する。表示部４２に表示される情報としては、関数の呼び出し関係、呼び出し回数、ステップ数、使用命令などのソフトウェア情報情報や、設計者が選択したプロセッサの標準的なハードウェアモジュールの情報、選択指定された関数をハードウェア化した時のハードウェアのサイズ予測情報、実行サイクル数などのハードウェア情報等である。
【００３３】
図５は、表示部４２に表示される情報の一例を示しており、メイン画面５０、ソフトウェア情報を表示する画面として関数呼出関係表示画面５１と処理サイクル表示画面５２、ハードウェア情報を表示する画面としてハードウェア化指定リスト画面５３とハードウェア見積画面５４、プロセッサ情報を表示する画面としてプロセッサ情報画面５５などが表示されている。図５において、関数呼出関係表示画面５１には、各関数Ａ〜Ｇの呼び出し関係が、ツリー状に展開したアイコン６１によって表示されており、処理サイクル表示画面５２には、各関数Ａ〜Ｇの処理サイクル数６４が棒グラフで表示されている例を示している。また、ハードウェア化指定リスト画面５３には、ハードウェア化されたモジュールのアイコン６５が表示されており、ハードウェア見積画面５４には、ハードウェア化されたモジュール毎に処理サイクル数６６とゲート数６７とが表示された例を示している。更に、プロセッサ情報画面５５には、プロセッサが使用する命令数６８やレジスタ数６９、プログラムメモリサイズ７０などが表示される。
【００３４】
尚、画面表示は、ユーザが容易に理解できるように、ユーザの指定により、概略表示と詳細表示との間を順次表示する階層的な表示方法にすることができる。
【００３５】
図２のフローチャートに戻って、ステップS105において、所望する性能を達成したか否かを検証し、所望する性能を達成していない場合にはステップS106に進み、所望する性能を達成した場合にはステップS113に進む。
【００３６】
ステップS106において、ハードウェア化指定部１６は、入力部１５からの指定入力を受け付け、ステップS107において、受け付けた指定入力の内容が「ハードウェア化の設定」なのか「ハードウェア化の解除」なのかを判定する。例えば、図５では、関数呼出関係表示画面５１に表示されている関数のうち関数Ｅのアイコン６１をマウスカーソル６３で選択（ドラッグ）し、ハードウェア化指定リスト画面５３に移動（ドロップ）させることで、「ハードウェア化の設定」を行う例を示している。逆に、「ハードウェア化の解除」の場合には、ハードウェア化指定リスト画面５３に表示されているハードウェアモジュールのアイコン６５を選択し、関数呼出関係表示画面５１に移動すれば良い。
【００３７】
ステップS107の判定の結果、受け付けた指定入力の内容が「ハードウェア化の設定」の場合、ステップS108において、ハードウェア変更部１８は、新たにハードウェア化されるハードウェアの定義を仮引数で行い、高位合成によるハードウェア化を必要に応じて再度実行する。そして、ステップS109において、ハードウェア変更部１８は、高位合成されたハードウェアを追加し、ハードウェア情報記憶部２３のハードウェア情報やプロセッサ情報記憶部３３のプロセッサ情報を更新する。更に、ステップS110において、ソフトウェア変更部１７は、ハードウェアに機能分割した部分のソースプログラムのアルゴリズムを当該ハードウェアを制御するアルゴリズムに書き換え、ソフトウェア情報記憶部１３のソフトウェア情報を更新する。
【００３８】
ここで、図６に例示するＣ言語によるソースプログラムに含まれるＬａｐｌａｃｅ変換機能がハードウェア化指定された時に、ソフトウェア変更部１７により置き換えられるＣ言語によるソースプログラムの例を図７に示す。
【００３９】
図７に示すように、ハード化指定されて電子回路記述としてハードウェアブロックになったＬａｐｌａｃｅ変換回路を制御するアルゴリズムに、ソースプログラムが書き換えられる。
【００４０】
図７に示すソースプログラムにおいて、『stcb()』は、コンパイル後に制御メモリ（0x4001番地）にデータを書き込む命令に置き換わる関数で、『ldcb()』は、制御メモリからデータを読み出す命令に置き換わる関数である。また、ポインタ演算部分はローカルメモリ（0x6000c8番地）へのデータの送受信が行われる。この例では以下のように順序で処理が行われる。
【００４１】
まず、0x6000c8番地のメモリ（ローカルメモリ）に、画像データである『pic[][]』のデータを転送し、次に、0x4001番地（制御メモリ）に『1』を書き込むことでハードウェア（Ｌａｐｌａｃｅ変換回路）を起動する。
【００４２】
その後、0x4001番地が『0』になる（ハードウェアの処理が終了する）まで待機し、0x4001番地が『0』になったところで、0x600000番地のメモリから『ans[][]』のデータ（Ｌａｐｌａｃｅ変換回路からの結果データ）を主プログラム側で受け取る。
【００４３】
図７のソースプログラム例に示したように、予測段階で必ずしも必要でない制御メモリやローカルメモリの先頭アドレスなども、ハード化指定完了時には具体的数値に設定することで、機能分割後のシミュレーションに必要なシミュレーションモデルが生成可能となる。
【００４４】
尚、ソースプログラムからハードウェア化する部分のアルゴリズムを選択した際に、ソフトウェアの選択されたアルゴリズムの部分と、新たに定義されるハードウェアと間のインターフェース部を追加する必要が生じる場合があるが、そのインターフェース部の作成方法は、本発明者が提案しているシステム設計技術（特開2001-344298号公報を参照）に開示されている。
【００４５】
このように、ハードウェアに機能分割するように指示された関数やソースプログラムは、選択内容により、ユーザ拡張命令などのハードウェア入出力命令（実行サイクル数はハードウェアモジュール情報より得る）やデバイスドライバプログラムに置き換えられ、ステップS102に戻って、ソースプログラムを再度コンパイルすることで、ソフトウェア情報記憶部１３のプロファイル情報が修正される。
【００４６】
そして、その修正に追随して、ステップS103において、シミュレーションが実行され開発対象のシステムＬＳＩの性能が解析され、ステップS104において、表示部４２に表示するソフトウェア情報を表示する関数呼出関係表示画面５１や処理サイクル表示画面５２が更新されるとともに、ハードウェア情報を表示するハードウェア化指定リスト画面５３やハードウェア見積画面５４に、新たに定義されたハードウェアモジュールのサイズや実行サイクル数などが表示される。一般に、ハードウェア化する部分を決定する時には、信号処理時間やＬＳＩのチップ面積などが考慮されるが、本実施形態における設計装置では、プロセッサが使用する命令の種類を評価していて、指定された関数がハードウェア化されることでプロセッサの使用命令数が所定の命令数以下となった時は、プロセッサの命令長を変更してプログラムメモリサイズを縮小させて、プロセッサ情報画面５５に表示するように構成されている。
【００４７】
一方、ステップS107の判定の結果、受け付けた指定入力の内容が「ハードウェア化の解除」の場合、ステップS111において、ハードウェア変更部１８は、一旦ハードウェア化されたハードウェアモジュールを削除し、ハードウェア情報記憶部２３のハードウェア情報やプロセッサ情報記憶部３３のプロセッサ情報を更新する。そして、ステップS112において、ソフトウェア変更部１７は、ソースプログラムの中のハードウェア化が解除された部分のアルゴリズムを、ハードウェア化前のアルゴリズムに書き換え（復元し）、ソフトウェア情報記憶部１３のソフトウェア情報を更新する。
【００４８】
以上のようにして、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出し（あるいは置き換えたハードウェアを解除し）、ステップS105において所望の性能に達した場合、ステップS133の処理へ進む。
【００４９】
ステップS133において、ハードウェア化において追加が必要なパラメータの具体的な数値（例えばアドレス先頭値やビット幅など）やデータがあれば入力部１５や設定ファイル（図示せず）から入力する。そして、ステップS133において、ソースプログラムや高位合成入力の記述を生成するとともに、コンパイラの設定やシミュレータの設定を行い、高位合成によるハードウェア化を必要に応じて再度実行する。
【００５０】
以上、本発明の実施の形態について詳細に説明したように、本実施形態における設計装置、設計方法、設計プログラムによれば、ソフトウェア記述のうちハードウェア化する部分のアルゴリズムが指定されるに応じて、指定された部分のアルゴリズムからハードウェア記述が生成されてハードウェア情報及びプロセッサ情報が逐次変更され、ソフトウェア記述の中の指定された部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述が生成されてソフトウェア情報が逐次変更される。そして、変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とからシステムＬＳＩの性能が解析されるため、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出す度に、所望の性能を達成しているか否かの判断情報を容易に得ることができ、プロセッサ等への影響などを考慮したシステムＬＳＩ設計を容易に行うことができる。
【００５１】
また、アルゴリズムを記述したソースプログラムの一部分をハードウェア化した場合の性能見積りを、処理速度やチップ面積だけでなくプロセッサの命令セットまで考慮できる。更に、ＧＵＩ上で構成や各種パラメータが同時に確認できるため、文字情報に基づいて見積もり評価を行う場合に比べて容易に把握でき、複数のハードウェア化の実現方法を迅速に検討することができる。従って、より低コストで所望の性能を実現できるシステムＬＳＩ等を設計することができる。
【００５２】
また、ハードウェア化部分を決定した後、ソースプログラムの編集や設計環境の修正情報が自動生成されるので、人的作業によって混入する誤りの数も抑えることができ、システムの検証に要する時間を大幅に短縮することが可能となる。
【００５３】
以上、本発明の実施の形態について詳細に説明したが、本発明は、その精神または主要な特徴から逸脱することなく、他の色々な形で実施することができる。
【００５４】
従って、前述の各実施例はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には何ら拘束されない。更に、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【図面の簡単な説明】
【００５５】
【図１】本発明の一実施形態における、再構成可能なプロセッサを含む半導体集積回路の設計装置の構成例を示す概略ブロック図である。
【図２】図１に示した設計装置による半導体集積回路の設計処理手順を例示するフローチャートである。
【図３】開発対象の半導体集積回路のアルゴリズムが記述されたソースプログラムをコンパイルした結果得られるプロファイルの一例を示す図である。
【図４】開発対象の半導体集積回路のハードウェア情報とプロセッサ情報の一例を示す図である。
【図５】図１に示した設計装置において、表示部に表示する画面のレイアウトの一例を示す図である。
【図６】ソースプログラム記述に含まれるＬａｐｌａｃｅ変換機能を含むソースプログラムの一例を示す図である。
【図７】図６に示したソースプログラム記述に含まれるＬａｐｌａｃｅ変換機能がハードウェア化指定された時に、ソフトウェア変更部により置き換えられるソースプログラムの一例を示す図である。
【図８】再構成可能なプロセッサを含むシステムＬＳＩの従来の設計手順例を示すフローチャートである。
【符号の説明】
【００５６】
１１…ソフトウェア情報
１２…ソフトウェア情報入力部
１３…ソフトウェア情報記憶部
１４…コンパイル部
１５…入力部
１６…ハードウェア化指定部
１７…ソフトウェア変更部
１８…ハードウェア変更部
２１…ハードウェア情報
２２…ハードウェア情報入力部
２３…ハードウェア情報記憶部
３１…プロセッサ情報
３２…プロセッサ情報入力部
３３…プロセッサ情報記憶部
４１…性能解析部
４２…表示部
４３…性能情報
４４…ソフトウェアウェア情報変更指示信号
４４…ソフトウェア情報変更指示信号
４５…ハードウェア情報変更指示信号
４６…性能解析指示信号
５０…メイン画面
５１…関数呼出関係表示画面
５２…処理サイクル表示画面
５３…ハードウェア化指定リスト画面
５４…ハードウェア見積画面
５５…プロセッサ情報画面
６１…アイコン
６３…マウスカーソル
６４…処理サイクル数
６５…アイコン
６６…処理サイクル数
６７…ゲート数
６８…命令数
６９…レジスタ数
７０…プログラムメモリサイズ
【図１】
2005063136.tif 000003
【図２】
2005063136.tif 000004
【図３】
2005063136.tif 000005
【図４】
2005063136.tif 000006
【図５】
2005063136.tif 000007
【図６】
2005063136.tif 000008
【図７】
2005063136.tif 000009
【図８】
2005063136.tif 000010
【手続補正書】
【提出日】平成15年12月1日(2003.12.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
目的に応じて構成変更可能なプロセッサを含む半導体集積回路を設計する設計装置であって、
前記半導体集積回路に求められるアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報を記憶するソフトウェア情報記憶部と、
前記半導体集積回路のハードウェア記述を含むハードウェア情報を記憶するハードウェア情報記憶部と、
前記プロセッサの情報であるプロセッサ情報を記憶するプロセッサ情報記憶部と、
前記ソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムを指定するハードウェア化指定部と、
指定された前記ハードウェア化する部分のアルゴリズムから、ハードウェア記述を生成して前記ハードウェア情報及び前記プロセッサ情報を変更するハードウェア変更部と、
指定された前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成して前記ソフトウェア情報を変更するソフトウェア変更部と、
変更された前記ソフトウェア情報と前記ハードウェア情報及び前記プロセッサ情報とから前記半導体集積回路の性能を解析する性能解析部と
を備えることを特徴とする半導体集積回路の設計装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
目的に応じて構成変更可能なプロセッサを含む半導体集積回路をコンピュータにより設計する設計方法であって、
ソフトウェア情報記憶部に記憶されている前記半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている前記半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されている前記プロセッサの情報とから、前記半導体集積回路の性能を解析する段階と、
前記解析結果に応じて、前記ソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムの指定を受け付ける段階と、
指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を生成して前記ハードウェア情報及び前記プロセッサ情報を変更する段階と、
指定された前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成して前記ソフトウェア情報を変更する段階と、
変更された前記ソフトウェア情報と前記ハードウェア情報及び前記プロセッサ情報とから、前記半導体集積回路の性能を解析する段階とを含み、
前記各段階の処理を前記コンピュータに実行させることを特徴とする半導体集積回路の設計方法。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１３
【補正方法】変更
【補正の内容】
【請求項１３】
目的に応じて構成変更可能なプロセッサを含む半導体集積回路をコンピュータにより設計するための設計プログラムであって、
ソフトウェア情報記憶部に記憶されている前記半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている前記半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されている前記プロセッサ情報とから、前記半導体集積回路の性能を解析するステップと、
前記解析結果に応じて、前記ソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムの指定を受け付けるステップと、
指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を生成して前記ハードウェア情報及び前記プロセッサ情報を変更するステップと、
指定された前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成して前記ソフトウェア情報を変更するステップと、
変更された前記ソフトウェア情報と前記ハードウェア情報及び前記プロセッサ情報とから、前記半導体集積回路の性能を解析するステップとを含み、
前記各ステップの処理を前記コンピュータに実行させることを特徴とする半導体集積回路の設計プログラム。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、目的に応じて構成変更可能なプロセッサを含む半導体集積回路の設計装置、設計方法、及び設計プログラムに係り、特に、半導体集積回路のアルゴリズムが記述されたソフトウェア記述から、ハードウェアで実現する部分と実行プログラムとしてソフトウェアで実現する部分とに機能分割する際の支援技術に関する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
しかしながら、特許文献１に記載の装置においては、ソースプログラムに記述されたアルゴリズムからハードウェアに置き換える部分を選択して機能を分割したことによるプロセッサ自体の構成への影響を考慮した情報表示が行えないため、構成変更可能なプロセッサの性能を考慮した設計ができない。また、コンパイラやシミュレーション環境を整備するための支援機能がないため、環境整備の際の手作業によるミスの発生により、設計品質の低下や設計期間の長期化を招くという問題がある。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、非特許文献１には、ハードウェアの選択に基づいて変更されるソフトウェア設計環境を整備する機能がある旨が示されているが、構成変更可能なプロセッサに対応していないことと、ＬＳＩに求められるアルゴリズムを高級言語でプログラミングするトップダウンの設計フローで必要な、ソースプログラムに記述されたアルゴリズムからハードウェア化する部分を選択して機能分割する機能がないため、構成変更可能なプロセッサを用いたアルゴリズム記述からの設計に対応できない。このため、アルゴリズム記述を用いた上位レベルからの設計において、ソースプログラムの書き換えやシミュレーション環境の修正など人手による作業が必要となり、設計に係る期間の長期化やコスト増といった問題がある。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明は、このような問題に鑑みてなされたものであって、構成変更可能なプロセッサを含む半導体集積回路の設計において、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出す度に、所望の性能を達成しているか否かの判断情報を容易に得ることができ、プロセッサ等への影響などを考慮した設計を可能にする設計装置、設計方法、及び設計プログラムを提供することを目的とする。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
上記課題を解決するため、本発明に係る半導体集積回路の設計装置の特徴は、目的に応じて構成変更可能なプロセッサを含む半導体集積回路を設計する設計装置であって、(a)開発対象の半導体集積回路に求められるアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報を記憶するソフトウェア情報記憶部と、(b)半導体集積回路のハードウェア記述を含むハードウェア情報を記憶するハードウェア情報記憶部と、(c)プロセッサの情報を記憶するプロセッサ情報記憶部と、(d)ソフトウェア情報に含まれるソフトウェア記述のうちハードウェア化する部分のアルゴリズムを指定するハードウェア化指定部と、(e)指定されたハードウェア化する部分のアルゴリズムから、ハードウェア記述を生成してハードウェア情報及びプロセッサ情報を変更するハードウェア変更部と、(f)指定されたハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成してソフトウェア情報を変更するソフトウェア変更部と、(g)変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから半導体集積回路の性能を解析する性能解析部とを備えることにある。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、本発明に係る半導体集積回路の設計方法の特徴は、目的に応じて構成変更可能なプロセッサを含む半導体集積回路をコンピュータにより設計する設計方法であって、(a)ソフトウェア情報記憶部に記憶されている半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されているプロセッサ情報とから、半導体集積回路の性能を解析する段階と、(b)解析結果に応じて、ソフトウェア情報に含まれるソフトウェア記述のうちハードウェア化する部分のアルゴリズムの指定を受け付ける段階と、(c)指定されたハードウェア化する部分のアルゴリズムからハードウェア記述を生成してハードウェア情報及びプロセッサ情報を変更する段階と、(d)指定されたハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成してソフトウェア情報を変更する段階と、(e)変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから、半導体集積回路の性能を解析する段階とを含み、上記(a)〜(e)の各段階の処理をコンピュータに実行させることにある。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、本発明に係る半導体集積回路の設計プログラムの特徴は、目的に応じて構成変更可能なプロセッサを含む半導体集積回路をコンピュータにより設計するための設計プログラムであって、(a)ソフトウェア情報記憶部に記憶されている半導体集積回路のアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報と、ハードウェア情報記憶部に記憶されている半導体集積回路のハードウェア記述を含むハードウェア情報と、プロセッサ情報記憶部に記憶されているプロセッサ情報とから、半導体集積回路の性能を解析するステップと、(b)解析結果に応じて、ソフトウェア情報に含まれるソフトウェア記述のうちハードウェア化する部分のアルゴリズムの指定を受け付けるステップと、(c)指定されたハードウェア化する部分のアルゴリズムからハードウェア記述を生成してハードウェア情報及びプロセッサ情報を変更するステップと、(d)指定されたハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成してソフトウェア情報を変更するステップと、(e)変更されたソフトウェア情報とハードウェア情報及びプロセッサ情報とから、半導体集積回路の性能を解析するステップとを含み、各ステップの処理をコンピュータに実行させることにある。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明によれば、構成変更可能なプロセッサを含む半導体集積回路の設計において、ソースプログラムに記述された機能からハードウェアに置き換える部分を選び出す度に、所望の性能を達成しているか否かの判断情報を容易に得ることができ、プロセッサ等への影響などを考慮した設計を可能にする設計装置、設計方法、及び設計プログラムを提供することできる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
［設計装置の構成］
本実施形態における半導体集積回路の設計装置は、ターゲットシステムに応じて、命令を追加したり、構成（コンフィグレーション）を変更したりすることができる構成変更可能なプロセッサ（コンフィグラブル・プロセッサ）を含むシステムＬＳＩ等を設計するための設計装置であり、例えば、中央処理装置、記憶装置、入力装置、出力装置などを備えたコンピュータシステムにより実現される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
【図１】本発明の一実施形態における、構成変更可能なプロセッサを含む半導体集積回路の設計装置の構成例を示す概略ブロック図である。
【図２】図１に示した設計装置による半導体集積回路の設計処理手順を例示するフローチャートである。
【図３】開発対象の半導体集積回路のアルゴリズムが記述されたソースプログラムをコンパイルした結果得られるプロファイルの一例を示す図である。
【図４】開発対象の半導体集積回路のハードウェア情報とプロセッサ情報の一例を示す図である。
【図５】図１に示した設計装置において、表示部に表示する画面のレイアウトの一例を示す図である。
【図６】ソースプログラム記述に含まれるＬａｐｌａｃｅ変換機能を含むソースプログラムの一例を示す図である。
【図７】図６に示したソースプログラム記述に含まれるＬａｐｌａｃｅ変換機能がハードウェア化指定された時に、ソフトウェア変更部により置き換えられるソースプログラムの一例を示す図である。
【図８】構成変更可能なプロセッサを含むシステムＬＳＩの従来の設計手順例を示すフローチャートである。
【手続補正書】
【提出日】平成16年6月30日(2004.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
目的に応じて構成変更可能なプロセッサを含む半導体集積回路を設計する設計装置であって、
前記半導体集積回路に求められるアルゴリズムが記述されたソフトウェア記述を含むソフトウェア情報を記憶するソフトウェア情報記憶部と、
前記半導体集積回路のハードウェア記述を含むハードウェア情報を記憶するハードウェア情報記憶部と、
前記プロセッサの情報であるプロセッサ情報を記憶するプロセッサ情報記憶部と、
前記ソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムを指定するハードウェア化指定部と、
指定された前記ハードウェア化する部分のアルゴリズムから、ハードウェア記述を生成して前記ハードウェア情報及び前記プロセッサ情報を変更するハードウェア変更部と、
指定された前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を生成して前記ソフトウェア情報を変更するソフトウェア変更部と、
変更された前記ソフトウェア情報と前記ハードウェア情報及び前記プロセッサ情報とから前記半導体集積回路の性能を解析する性能解析部と
を備えることを特徴とする半導体集積回路の設計装置。
【請求項２】
前記半導体集積回路の設計装置は、前記ソフトウェア情報を表示する表示部を備え、
前記ハードウェア化指定部は、前記表示部に表示されたソフトウェア情報に含まれるソフトウェア記述のうち、ハードウェア化する部分のアルゴリズムを選択指定する入力部を備えることを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項３】
前記ハードウェア化指定部は、前記ハードウェア化する部分のアルゴリズムを指定する際に、前記ハードウェア情報及び前記プロセッサ情報の変更を指示するハードウェア情報変更指示信号と、前記ソフトウェア情報の変更を指示するソフトウェア情報変更指示信号と、前記性能の解析を指示する性能解析指示信号とを出力し、
前記ハードウェア変更部は、前記ハードウェア情報変更指示信号に基づいて、指定された前記ハードウェア化する部分のアルゴリズムからハードウェア記述を自動生成して前記ハードウェア情報及び前記プロセッサ情報を自動的に変更し、
前記ソフトウェア変更部は、前記ソフトウェアウェア情報変更指示信号に基づいて、前記ハードウェア化する部分のアルゴリズムを、当該ハードウェアを制御するアルゴリズムに置き換えたソフトウェア記述を自動生成して前記ソフトウェア情報を自動的に変更し、
前記性能解析部は、前記性能解析指示信号に基づいて、変更された前記ソフトウェア情報と変更された前記ハードウェア情報とから前記半導体集積回路の性能を自動解析する
ことを特徴とする請求項１または請求項２に記載の半導体集積回路の設計装置。
【請求項４】
前記ソフトウェア情報は、前記ソフトウェア記述を構成する関数の呼び出し関係、前記関数の呼び出し回数、前記関数を構成する命令数、前記関数の実行サイクル数、前記関数を構成する命令種別のうち少なくとも１つの情報を含み、
前記ハードウェア情報は、モジュールのゲート数、実行サイクル数のうち少なくとも１つの情報を含み、
前記プロセッサ情報は、プログラムメモリサイズ、命令数、レジスタ数の少なくとも１つの情報を含むことを特徴とする請求項１ないし請求項３のいずれか１項に記載の半導体集積回路の設計装置。