JP2000057199A - システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体

Info

Publication number
JP2000057199A
JP2000057199A JP10229840A JP22984098A JP2000057199A JP 2000057199 A JP2000057199 A JP 2000057199A JP 10229840 A JP10229840 A JP 10229840A JP 22984098 A JP22984098 A JP 22984098A JP 2000057199 A JP2000057199 A JP 2000057199A
Authority
JP
Japan
Prior art keywords
hardware
software
design
processing
interface circuit
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
JP10229840A
Other languages
English (en)
Inventor
Hiroshi Imai
浩史 今井
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 JP10229840A priority Critical patent/JP2000057199A/ja
Publication of JP2000057199A publication Critical patent/JP2000057199A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 【課題】 処理機能をハードウェアとソフトウェアに分
担して評価を行うことによってシステムの設計を行う際
に、ハードウェアとソフトウェア間でデータの受け渡し
を行うインターフェース手段による影響を考慮すること
によって、より正確なシステムの設計を容易且つ迅速に
行う。 【解決手段】 本発明のシステム設計支援装置は、シス
テムの処理機能を記述した動作記述101を、ハードウ
ェア実現部103とソフトウェア実現部105とに分担
し、この分担に基づいてハードウェアとソフトウェアに
よる処理を評価し、この評価の結果によって、制約チェ
ック部109で設計制約をチェックし、これにより分割
部102で分担を調整しつつシステムの設計を行うもの
であって、調整の際に、ハードウェアとソフトウェアと
の間における処理結果の受け渡しを行うインターフェー
ス手段の処理に関する評価をインターフェース回路実現
部107で行い、この結果を反映させるものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ等の
演算処理システムのハードウェア・ソフトウェア・コデ
ザインに関し、処理動作をハードウェア及びソフトウェ
アに分割したうえで、これらの処理を評価し、その評価
結果が設計制約を満足するかどうかチェックすることに
よってシステムの設計を支援する装置及びそのプログラ
ムを記録したコンピュータ読み取り可能な記録媒体に関
するものである。
【0002】
【従来の技術】近年、ASIC、CPU、メモリ等から
構成される複合演算処理システム開発の要求が高まって
いる。このようなシステムを設計するには、システム全
体の処理動作を記述した仕様をASIC等にハードウェ
ア化する部分、CPUで実行されるソフトウェアにする
部分へ分割する必要がある。これをハードウェア・ソフ
トウェア分割という。
【0003】かかるハードウェア・ソフトウェア分割の
際には、ASIC、CPU、メモリ等のシステム全体の
面積、性能等のコストを見積もり、設計者が与えた回路
規模や性能等の設計制約を満たすように動作仕様をハー
ドウェア・ソフトウェアに分担する必要がある。
【0004】通常、一回の分割処理で制約を満たすハー
ドウェア・ソフトウェア分割が見つかることは希であ
る。従って、いくつかの分割を試し、設計制約を満たす
ハードウェア・ソフトウェア分割を見つける。設計制約
を満たすハードウェア・ソフトウェア分割を見つけるた
めには、システム全体の面積、性能等のコストをいかに
正確に見積もるかが重要となる。なぜなら、正確に見積
もらなかった場合、見積もりの段階では設計制約を満た
していたにもかかわらず、設計段階が進むにつれ実際の
値と見積もり値との差が大きくなり、設計制約を満たさ
ないことが分かったときには、分割のやり直しが必要と
なり、設計期間が長期化する惧れがある。
【0005】さらに、ハードウェア・ソフトウェア分割
は複数回行われるので、設計期間を短縮するためには面
積、性能等のコストの見積もり時間を短くする必要があ
る。
【0006】
【発明が解決しようとする課題】しかし、従来、例えば
タイミング制約を満足するかどうかチェックする際に、
ハードウェアで実現される部分のスケジューリング結果
とソフトウェアで実現される部分のソフトウェア規模に
のみ基づいてチェックしているため正確なチェックがで
きなかった。従来の見積もり方法については、例えば、
R.K.Gupta著、Co-Synthesis of Hardware and Software
for Digital Embedded Systems, KluwerAcademic Publ
ishers, 1995に説明されている。
【0007】また、正確なチェックを行うためには、A
SIC等のハードウェアとCPU間のデータの受け渡し
に必要なインターフェース回路を設計し、シミュレーシ
ョンを行う必要があるため、チェックに時間が掛かる。
【0008】一方、設計期間を短縮するため正確さを犠
牲にしたチェック方法を採用した場合、設計段階が進
み、選択されたハードウェア・ソフトウェア分割に必要
なインターフェース回路が設計される段階になると、面
積、性能の値と見積もりとの差が大きくなり、意図した
回路とは程遠い回路しか設計できないといった問題があ
った。
【0009】さらには、正確な設計制約を行うため、設
計制約チェックにシミュレーションを用いていたので
は、設計制約チェックに時間が掛かり、設計期間が長期
化してしまうといった問題があった。
【0010】そこで、本発明は上記事情に鑑みて成され
たものであり、その目的は、処理機能をハードウェアと
ソフトウェアに分担して評価を行うことによってシステ
ムの設計を行う際に、ハードウェアとソフトウェア間で
データの受け渡しを行うインターフェース手段による影
響を考慮することによって、より正確なシステムの設計
を容易且つ迅速に行うことができるシステムの設計支援
装置及び設計支援プログラムを記録したコンピュータ読
み取り可能な記録媒体を提案することにある。
【0011】
【課題を解決するための手段】上記課題を解決するため
に請求項1に記載の発明は、システムの処理機能をハー
ドウェアとソフトウェアに分担し、この分担に基づいて
該ハードウェアと該ソフトウェアによる処理を評価し、
この評価の結果によって前記分担を調整しつつ前記シス
テムの設計を行うシステム設計支援装置であって、前記
調整の際に、前記ハードウェアと前記ソフトウェアとの
間における処理結果の受け渡しを行うインターフェース
手段の処理に関する評価結果を反映させるものである。
【0012】このような請求項1に記載の発明によれ
ば、ハードウェアとソフトウェアとを分割する際に、こ
れらの間で処理結果の受け渡しを行うインターフェース
手段の影響を考慮するため、より正確なシステムの設計
を行うことができる。
【0013】また、請求項2に記載の発明は、システム
の処理機能をハードウェアとソフトウェアに分担し、こ
の分担に基づいて該ハードウェアと該ソフトウェアによ
る処理を評価し、この評価の結果によって前記システム
の設計を行うシステム設計支援プログラムを記録したコ
ンピュータ読み取り可能な記録媒体であって、システム
の処理機能を記述した動作仕様を入力するステップと、
前記動作仕様に基づいて前記処理機能をハードウェアと
ソフトウェアに分担するステップと、前記ハードウェア
に分担された動作仕様について評価を行うステップと、
前記ソフトウェアウェアに分担された動作仕様について
評価を行うステップと、前記ハードウェアと前記ソフト
ウェアとの間における処理結果の受け渡しを行うインタ
ーフェース手段の処理に関する評価を行うステップと、
前記ハードウェア、ソフトウェア及びインターフェース
についての各評価結果に基づいて、前記システムの設計
制約を満たすか否かの判断を行うステップと、前記判断
において前記設計制約を満たさない場合には、前記各評
価結果に基づいて前記分担を調整するステップとを有す
るものである。
【0014】このような請求項2に記載の発明によれ
ば、システムの設計を正確にもしくは迅速に行えるとい
う有用な設計支援プログラムの保存、実行、運搬等が容
易に行うことができ、より簡便にシステムの設計を行う
ことができる。
【0015】
【発明の実施の形態】以下、この発明に係るシステムの
設計支援装置の実施形態について説明する。
【0016】(1)実施例1 本発明の第1の実施形態を図面を参照して説明する。図
1は本実施形態に係るハードウェア・コデザイン装置の
構成図である。同図において、設計対象の動作仕様を記
述した動作記述101が、分割部102においてASI
C等のハードウェアで実現される部分と、CPU上で実
行されるソフトウェアで実現される部分とに分割され
る。この分割は面積と性能の設計制約を満たす分割が得
られるまで様々な分割を試し、繰り返される。
【0017】ハードウェア実現部103では、ハードウ
ェアに分担された動作記述部分のハードウェア実現情報
であるスケジューリング・アーキテクチャ情報104が
生成される。このスケジューリング情報とは、例えばハ
ードウェアで実現される動作記述部分の実行を完了する
までの時間の情報等であり、また、アーキテクチャ情報
とは、ハードウェアの構造、例えば、パイプライン構造
等の情報等である。これらの情報からハードウェアへの
データの受け渡しの情報が得られる。
【0018】一方、ソフトウェア実現部105では、C
PU上で実行されるソフトウェアとして実現される動作
記述部分のコードの規模、実行時間を表すコード系列情
報106が生成される。
【0019】他方、インターフェース回路実現部107
では、ASIC等で実現されるハードウェアとソフトウ
ェアを実行するCPU間のデータの受け渡しに必要なイ
ンターフェース回路を生成する。さらに、このインター
フェース回路実現部107は、インターフェース回路の
動作の特徴を表すモデル情報108を生成する。
【0020】このモデル情報108は、例えば、ハンド
シェイク等のインターフェース・プロトコルのタイプ、
データ受け渡しから結果を得るまでの時間、次のデータ
を受け渡せるまでの待ち時間等である。
【0021】そして、制約チェック部109において、
ハードウェアの実現情報であるスケジューリング・アー
キテクチャ情報104と、CPU上で実行されるソフト
ウェアの規模と実行時間の情報であるコード系列情報1
06と、ハードウェアとCPU間のインターフェース回
路の動作の情報であるモデル情報108とに基づいて、
ハードウェア・ソフトウェア分割が実行時間等の設計制
約を満足するかどうかがチェックされ、チェック結果1
10が出力される。
【0022】このチェック結果110は分割部102へ
フィードバックされ、ハードウェア・ソフトウェア分割
の再試行に利用される。
【0023】こののような操作を行うことにより、ハー
ドウェア・ソフトウェア分割の繰り返しの際に、その分
割が設計制約を満足するかどうか正確かつ短時間にチェ
ックすることが可能となり、正確な見積もりに基づいた
ハードウェア・ソフトウェア分割が短時間に得られる。
【0024】(2)実施形態2 次に本発明の第2の実施形態について説明する。この実
施例は第1の実施例で示したハードウェア実現部におけ
るスケジューリング・アーキテクチャ情報生成を実現す
るものである。図2にスケジューリング・アーキテクチ
ャ情報生成のフローチャートを示す。
【0025】同図において、ステップ201でASIC
等のハードウェアで実現する部分の動作記述を読み込
む。次いで、ステップ202でハードウェアのアーキテ
クチャを選択する。この選択とは、例えば、パイプライ
ン構造を採用する、採用しない等である。
【0026】ステップ203でステップ202で選択さ
れたアーキテクチャに関する情報が生成される。その
後、ステップ204で動作記述をハードウェアで実現す
るために必要な回路部品の種類と個数を決定するアロケ
ーションと呼ばれる処理を実行する。次いで、ステップ
205でステップ204で決定した回路部品の種類と個
数に基づいて、動作記述をクロック・サイクルごとに実
行される動作系列に分割するスケジューリングと呼ばれ
る処理を実行する。
【0027】ステップ206では、ステップ205で実
行されたスケジューリング結果に基づいてスケジューリ
ング情報を生成する。ステップ207でステップ205
でスケジューリング処理されたクロック・サイクル毎の
各演算を実際の回路部品に割り当てるバインディングと
呼ばれる処理を実行する。
【0028】ステップ208でハードウェア記述を生成
する。このハードウェア記述に基づいてハードウェアが
合成される。動作記述からハードウェア記述を生成する
方法は、例えば、D.Gajski他著、High-Level Synthesi
s:Introduction to Chip andSystem Design, Kluwer Ac
ademic Publishers, 1992が詳しい。
【0029】図3に動作記述の例を示す。また、ハード
ウェア・ソフトウェア分割の例を図4に示す。この例で
は、動作記述中の関数f(x)がハードウェアで実現さ
れ、関数main()がソフトウェアで実現される。また、図
3に示した動作記述中の関数f(x)の動作を表す動作
記述部分がステップ201で読み込まれる。
【0030】この動作記述に対してステップ205で実
現されるスケジューリング結果の例を図5に示す。この
例では、関数f(x)の実行を完了するのに10クロッ
ク・サイクル掛かることが分かる。また、図6に前述し
たステップ203とステップ206で生成されるスケジ
ューリング・アーキテクチャ情報の例を示す。アーキテ
クチャ項目は、ハードウェアがパイプライン構造をとる
かどうかを表している。
【0031】ここで、パイプライン・ピッチ項目は、各
ステージの実行時間(C)を表す。ステージ数項目は、
パイプラインの段数(N)を表す。レイテンシー項目
は、1組のデータが入力されてから結果が得られるまで
のクロック・サイクル数(L)を表す。データ投入サイ
クル項目は、ハードウェアにデータを受け渡せる間隔を
表す。この値は、ステージ数とレイテンシーの値から、
L/Nで計算できる。
【0032】例えば、図3に示した動作記述に対して、
図4に示したハードウェア・ソフトウェア分割が行われ
た場合で、アーキテクチャとして非パイプラインを選択
し、図5に示したスケジューリング結果の場合のスケジ
ューリング・アーキテクチャ情報の例を図7に示す。本
実施形態では、アーキテクチャ項目は、非パイプライン
構造を選択したので、非パイプラインとなっている。ス
テージ数項目は、非パイプラインなので1となる。レイ
テンシー項目は、スケジューリング結果が10クロック
・サイクルとなっているので、10となる。
【0033】データ投入サイクル項目は、非パイプライ
ンでハードウェアが構成されるので、1組のデータの処
理が終わるまで次のデータをハードウェアに受け渡すこ
とができず、10となる。また、アーキテクチャとし
て、ステージ数10のパイプラインを選択した場合のス
ケジューリング・アーキテクチャ情報の例を図8に示
す。
【0034】本実施形態では、かかるアーキテクチャ項
目は、パイプライン構造を選択したので、パイプライン
となる。また、ステージ数項目は、10ステージのパイ
プラインを選択したので、10となる。レイテンシー項
目は、スケジューリング結果が10クロック・サイクル
となっているので、10となる。データ投入サイクル項
目は、10ステージのパイプラインを選択したので、1
となる。
【0035】上記のようにスケジューリング・アーキテ
クチャ情報が作成される。
【0036】(3)実施形態3 次に本発明の第3の実施形態について説明する。この実
施例は第1の実施例で示したソフトウェア実現部におけ
るコード系列情報生成を実現するものである。図9にコ
ード情報系列情報生成のフローチャートを示す。
【0037】同図において、ステップ901で、ハード
ウェア・ソフトウェア・コデザインの動作記述中CPU
上で実行されるソフトウェアで実現される動作記述部分
が読み込まれる。ステップ902で、ステップ901で
読み込んだ動作記述を基本命令に分割する。ステップ9
03で、ステップ902で基本命令に分割された動作記
述に基づいてCPU上で実行される基本命令のコード系
列を生成する。ステップ904で、ステップ903で生
成されたコード系列に基づいてコード系列情報が生成さ
れる。ステップ905で、CPU上で実行されるソフト
ウェアが生成される。動作記述からソフトウェアを生成
する方法は、R.Gupta著、Co-Synthesisof Hardware and
Software for Digital Embedded Systems, Kluwer Aca
demic Publishers, 1995が詳しい。
【0038】前述した図3に示した動作記述の例に対し
て図4に示したハードウェア・ソフトウェア分割が行わ
れた場合のソフトウェアで実現される関数main()のコー
ド系列の例を図10に示す。図11にステップ904で
生成されるコード系列情報の例を示す。コード系列情報
として、CPU上でこのソフトウェアを実行するために
必要な時間を表すステップ数とハードウェアで実現され
た関数の呼び出し回数が生成される。
【0039】また、図10に示したコード系列の例に対
するコード系列情報の例を図12に示す。図10の例で
は、ハードウェアで実現される関数f(x)の呼び出し
が2回あるので、関数呼び出し回数欄が2となってい
る。
【0040】(4)実施形態4 次に本発明の第4の実施形態について説明する。この実
施形態では第1の実施例で示したインターフェース回路
実現部におけるモデル情報生成を実現するものである。
図13にASIC等のハードウェアとソフトウェアを実
行するCPU間に必要なインターフェース回路のモデル
情報生成のフローチャートを示す。
【0041】同図において、ステップ1301でインタ
ーフェース回路情報を読み込む。ステップ1302でス
テップ1301で読み込んだインターフェース回路情報
からインターフェース回路のモデル情報を生成する。ス
テップ1303でインターフェース回路の動作を表す記
述が生成される。この記述が合成され、インターフェー
ス回路が実現される。
【0042】図14にモデル情報の例を示す。この情報
は、インターフェース回路のプロトコル・タイプ、デー
タを渡してから結果が得られるまでの時間、データ投入
間隔を表すデータ投入サイクルからなる。プロトコル・
タイプとしては、例えば、ハンドシェイク、キュー等が
ある。データを渡してから結果が得られるまでの時間
は、ハードウェアの実行時間であり、アーキテクチャ・
スケジューリング情報のレイテンシー項目のLとなる。
データ投入サイクルは、ハンドシェイク・タイプのイン
ターフェースの場合、1度結果が得られるまで次のデー
タを渡せないので、、Lとなる。
【0043】キュー・タイプのインターフェースの場
合、データをインターフェース回路で保持しておくこと
ができるため、結果が得られるまで待つ必要はなく、1
となる。図3に示した動作記述に対して図4に示したハ
ードウェア分割が行われた場合のモデル情報の例を図1
5に示す。ハードウェアがパイプラインで実現されてい
るかいないかに関わらず、結果が得られるまでの時間は
10、データ投入サイクルは、ハンドシェイク・タイプ
の場合は10、キュー・タイプの場合は1となる。
【0044】上記のようにインターフェースのモデル情
報が生成される。
【0045】(5)実施形態5 次に本発明の実施形態について説明する。この実施形態
では第1の実施例で示した制約チェック部におけるハー
ドウェア・ソフトウェア分割が設計制約を満たすかどう
かの判断を実現するものである。図16に制約チェック
のフローチャートを示す。
【0046】同図において、ステップ1601でハード
ウェア・ソフトウェア・コデザインの設計制約を読み込
む。ステップ1602でハードウェア実現部102が生
成したスケジューリング・アーキテクチャ情報103を
読み込む。ステップ1603でソフトウェア実現部10
4が生成したコード尾系列情報105を読み込む。ステ
ップ1604でインターフェース回路実現部106が生
成したモデル情報107を読み込む。ステップ1605
でステップ1602から1604で読み込んだ情報に基
づいて制約の評価値を計算する。
【0047】ステップ1606でステップ1605で計
算した評価値とステップ1601で読み込んだ設計制約
を比較する。評価値が設計制約を満たす場合、ステップ
1607で設計制約を満たしたことを表示する。評価値
が設計制約を満たさない場合、ステップ1608で設計
制約を満たさないことを表示する。
【0048】前述した図3に示した動作記述に対して図
4に示したハードウェア・ソフトウェア分割が行われ、
インターフェース回路としてキュー・タイプのインター
フェース回路を仮定した場合のタイミング制約評価値の
計算について説明する。
【0049】ここで、ソフトウェアを実行するCPUの
クロック・サイクルをC1、関数f(x)を実現するハ
ードウェアのクロック・サイクルをC2とする。また、
1<C2と仮定する。関数main()中で、xとyの値はハ
ードウェアが計算結果を返すのに必要な時間、すなわ
ち、C2×Lより十分後に参照されると仮定する。
【0050】まず、ソフトウェアの実行にかかる時間
は、図12に示したコード系列情報から選れるステップ
数nとCPUのクロック・サイクルC1との積C1×nで
与えられる。次に、関数f(x)の呼び出しに必要な時
間を計算する。図12に示したコード系列情報から、関
数f(x)の呼び出しは2回であることが分かる。さら
に、2回のf(x)の呼び出しは連続しており、その呼
び出し間に待ち時間が必要である。
【0051】この時間を図15に示したインターフェー
ス回路のモデル情報から計算する。インターフェースの
プロトコルがハンドシェイク・タイプの場合、モデル情
報のデータ投入サイクル項目の値10とハードウェアの
クロック・サイクルC2とから、この時間はC2×10と
計算される。インターフェースのプロトコルがキュー・
タイプの場合、モデル情報のデータ投入サイクル項目の
値1とハードウェアのクロック・サイクルC2とから、
この時間はC2×1と計算される。
【0052】本実施形態では、インターフェースのプロ
トコルとしてキュー・タイプを仮定しており、また、C
1<C2なので、2回の関数f(x)の呼び出し間の時間
を考慮する必要はない。したがって、タイミング制約の
評価値は図17に示した値となる。なお、従来のよう
に、インターフェース回路のモデルを考慮しない場合、
2回の関数f(x)の呼び出し間の時間をC2×Lと評
価してしまい、タイミング制約の評価値は図18に示す
ような結果となってしまい、正確なチェックができな
い。上記のようにハードウェア・ソフトウェア分割が設
計制約を満たすかどうかチェックされる。
【0053】さらに、本発明に係るシステムの設計支援
装置の他の実施形態について説明する。
【0054】(6)実施形態6 本発明の第6の実施形態を図面を参照して説明する。図
19に本実施形態に係るハードウェア/ソフトウェア・
コデザイン装置の構成図を示す。
【0055】同図において、ハードウェア/ソフトウェ
ア分割部1901で、入力された動作仕様がASIC等
のハードウェアで実現される部分と、CPUで実行され
るソフトウェアで実現される部分とに分割される。この
分割は面積と性能の制約を満たす分割が得られるまで繰
り返される。
【0056】また、インターフェース回路詳細化部19
02では、ハードウェアとソフトウェアを実行するCP
U間等のデータの受渡しのために必要なインターフェー
ス回路を詳細化する。この詳細化の処理は分割探索の期
間でただ一度だけ実行される。
【0057】差分情報生成部1903では、分割探索期
間を通じて、インターフェース回路を詳細化した分割と
現分割との差分情報を生成する。この差分情報は現分割
に必要となるインターフェース回路の面積と性能を見積
もる際に利用される。
【0058】評価部1904では、前記インターフェー
ス回路詳細化部1902で詳細化されたインターフェー
ス回路と、前記差分情報生成部1903で生成された差
分情報に基づいて、現分割の面積と性能の見積もりを実
行する。この見積もりには、現分割に必要なインターフ
ェース回路の面積と性能の見積もりをも含む。
【0059】前記ハードウェア/ソフトウェア分割部1
901は、前記評価部1904が生成した見積もりに従
って、最終的に最適な分割を選択し、ハードウェア仕
様、ソフトウェア仕様、インターフェース仕様を出力す
る。
【0060】このような操作を行うことにより、最適な
分割の探索期間の各分割に対して面積と性能を見積もる
際に、正確な見積もりが短期間に可能となり、正確な見
積もりに基づいたハードウェア/ソフトウェア分割が得
られる。
【0061】(7)実施形態7 次に本発明の第7の実施形態例について説明する。この
実施形態では第6の実施形態で示したインターフェース
回路詳細化部におけるインターフェース回路の詳細化を
実現するものである。
【0062】動作仕様の例を図20に示す。この動作仕
様に対しハードウェア/ソフトウェア分割部1901に
於いて、1つのハードウェア/ソフトウェア分割が生成
される。そのアルゴリズムは、例えば、R.K.Gupta,“Co
-Synthesis of Hardware andSoftware for Digital Emb
edded Systems,” Kluwer Academic Publishers, 1995.
に見つけられる。
【0063】ハードウェア/ソフトウェア分割の例を図
21に示す。この例では、図20に示した動作仕様中、
関数f(a,b)で表された部分がハードウェアで実現
され、動作仕様の残りの部分がCPU上で実行されるソ
フトウェアで実現される。
【0064】ハードウェアで実現される動作仕様部分
は、例えば、高位合成アルゴリズムによって実現され
る。高位合成アルゴリズムについては、D.D.Gajski,et
al,“High-Level Synthesis:Introduction to Chip and
System Design,”Kluwer Academic Publishers, 1992.
に見つけられる。
【0065】図21に示したハードウェア/ソフトウェ
ア分割候補の場合、ハードウェアで実現されるf(a,
b)のハードウェアの動作を図22に示す。図22で
は、ハードウェアの動作をデータ・フロー・グラフ(D
FG)で表しており、横線で区切られ、番号付けられた
各ステップはステートと呼ばれ、横線はクロック・サイ
クルの境界を表す。
【0066】同図において、各ステートはクロックに従
って順に実行される。DFG中マルは演算を表し、黒く
塗りつぶされた矩形はレジスタを表す。f(a,b)を
実現したハードウェアは、3クロック・サイクル掛かっ
て動作を完了する。さらに、CPUがハードウェアへデ
ータを受け渡すタイミング、CPUがハードウェアから
データを受け取るタイミングを示した。
【0067】図22に示した例では、変数aに対応した
データがCPUからステートに受け渡され、ハードウェ
アが変数aにステート1でデータを読み込んでいる。な
お、変数bについても同様である。変数outの値がハ
ードウェアからステート3で出力され、変数outに対
応したデータをCPUはステート3で読み込んでいる。
【0068】また、インターフェース回路詳細化部19
02では、インターフェース回路詳細化が実行され、イ
ンターフェース回路詳細化情報テーブルが生成される。
このインターフェース回路詳細化情報テーブル作成のフ
ローチャートを図23に示す。
【0069】初めに、ステップ2301と2302で、
ハードウェアで実現される動作仕様の入力変数と出力変
数のリストを作成する。次に、ステップ2303で入力
変数リストLIから変数を1つ取り出す。その変数をv
とする。ステップ2304でその変数vを取り付けるポ
ート番号を選択する。
【0070】この選択は、自動的に行っても、設計者が
自ら手動で行ってもよい。選択されたポート番号がイン
ターフェース回路詳細化情報テーブルに登録されていな
い場合、まず、ステップ2305でそのポート番号をテ
ーブルに登録する。さらに、ステップ2306から23
13で、種類欄、ビット幅欄、ステート欄、バッファ
欄、変数欄に、それぞれ、“入力”、変数vのビット
幅、変数vが読み込まれるステート番号、バッファの有
無、変数名vを登録する。
【0071】選択されたポート番号が既にテーブルに登
録されている場合、変数vのビット幅とテーブルのビッ
ト幅欄の値を比較して、変数vのビット幅の方が大きい
場合、ステップ2315で変数vのビット幅でビット幅
欄を更新する。そして、変数vが読み込まれるステート
と変数vを、それぞれ、ステップ2314と2316で
テーブルのステート欄と変数欄に追加する。なお、出力
変数リストについても同様な処理を行う。図22に示し
た例に対するインターフェース回路詳細化情報テーブル
を図25に示す。
【0072】次に、前述したステップ2310で実行さ
れるバッファの有無の判断の処理について説明する。こ
の判断のフローチャートを図24に示す。まず、ステッ
プ2401で対象となっている変数が入力変数か出力変
数か調べる。対象となる変数が入力変数であった場合、
ステップ2402でCPUから変数に対応したデータが
与えられるステート(STi)を調べる。次に、ステッ
プ2403でハードウェア内で変数にデータが読み込ま
れるステート(STj)を調べる。
【0073】このとき、対象となる変数が出力変数であ
った場合、ステップ2404でCPUが変数に対応した
データを読み込むステート(STi)を調べる。次に、
ステップ2405でハードウェア内で変数にデータが書
き込まれるステート(STj)を調べる。ステップ24
06でSTjが等しいか等しくないかチェックする。S
TiとSTjが等しい場合、バッファは必要無いので、
ステップ2407で、インターフェース回路詳細化情報
テーブルのバッファ欄に“無”を登録する。
【0074】STiとSTjが等しくない場合、データ
を保持しておく必要があるため、ステップ2408で、
テーブルのバッファ欄に“有”を登録する。
【0075】上記のような処理により、インターフェー
ス回路詳細化情報テーブルが得られる。このテーブルよ
りインターフェース回路の詳細な情報が得られる。図2
5に示した例では、インターフェース回路が2個の入力
ポートと1個の出力ポートを持ち、それぞれのポートの
ビット幅は16で、バッファは必要ないことがわかる。
【0076】上記のようにして、1つのハードウェア/
ソフトウェア分割候補のインターフェース回路の詳細化
が得られる。
【0077】(8)実施形態8 次に、本発明の第8の実施形態について説明する。この
実施形態では第6の実施例で示した差分情報生成部19
03で実行される差分情報生成を実現するものである。
【0078】図20に示した動作仕様の図21に示した
ハードウェア/ソフトウェア分割と異なるハードウェア
/ソフトウェア分割を図26に示す。この分割では、動
作仕様中f(a,b)とg(c,d,e)がハードウェ
アで実現され、動作仕様の残りの部分はCPU上で実行
されるソフトウェアで実現される。
【0079】ハードウェアで実現されるf(a,b)と
g(c,d,e)の動作を図27に示す。f(a,b)
の動作は第7の実施形態での動作と同じである。g
(c,d,e)に対しては、これを実現するハードウェ
アは5クロック・サイクル掛かって動作を完了する。デ
ータの受渡しのタイミングについては、変数cに対応し
たデータがCPUからステート1に受け渡され、ハード
ウェアが変数cにステート1でデータを読み込んでい
る。変数dについても同様である。
【0080】一方、変数eに関しては、変数eに対応し
たデータがCPUからステート1で受け渡されるが、ハ
ードウェアは変数eにステート2でデータを読み込んで
いる。変数outの値がハードウェアからステート5に
出力され、変数outに対応したデータをCPUはステ
ート5で読み込んでいる。
【0081】差分情報生成部1903では、インターフ
ェース回路詳細化部1902が生成したインターフェー
ス回路詳細化情報に基づいて、ハードウェア/ソフトウ
ェア分割に必要なインターフェース回路の差分情報を生
成する。
【0082】この差分情報生成のフローチャートを図2
8に示す。初めに、ステップ2801で入力変数のリス
トLIを作成し、ステップ2802で入力ポートのリス
トPIを作成する。ステップ2803で変数を1つリス
トLIから取り出す。ステップ2804でポートを1つ
リストPIから取り出す。ステップ2805で変数にバ
ッファが必要かどうか調べる。
【0083】このとき必要な場合、ステップ2804で
取り出したポートがバッファを持つかどうか調べる。持
っていない場合、新たなポートをリストPIから取り出
す。ポートがバッファを持っている場合、ステップ28
07で対象となっている変数に対応したデータがCPU
から受け渡されるステートST1を調べる。
【0084】ステップ2808でポートをステートST
iで使用可能かどうか調べる。使用可能な場合、ステッ
プ2809で使用状況テーブルのステートSTi欄に変
数を登録する。
【0085】使用状況テーブルの例を図29に示す。使
用不可能な場合、新たなポートをリストPIから取り出
し、ステップ2804から新たに処理を始める。リスト
PIから新たなポートが得られなかった場合、ステップ
2810で差分情報テーブルの入力ポート行の個数欄の
値を1だけインクリメントする。
【0086】差分情報テーブルの例を図30に示す。ス
テップ2811で変数にバッファが必要か調べ、バッフ
ァが必要な場合、ステップ2812で差分情報テーブル
の入力ポート行のバッファ欄の値を1だけインクリメン
トする。ステップ2813で使用状況テーブルにポート
行を1つ追加し、ステップ2814でその行の種類欄に
入力を登録し、ステップ2815でステートSTi欄に
変数を登録する。上記と同様な処理を出力変数に対して
も行う。
【0087】上記のようにハードウェア/ソフトウェア
分割の差分情報が生成される。
【0088】(9)実施形態9 次に、本発明の第9の実施形態について説明する。この
実施形態では第6の実施例で示した評価部1904で実
行される差分情報に基づいたハードウェア/ソフトウェ
ア分割の評価を実現するものである。
【0089】図21に示したハードウェア/ソフトウェ
ア分割で必要とされるインターフェース回路と、図26
に示したハードウェア/ソフトウェア分割で必要とされ
るインターフェース回路の差分情報を図30に示す。こ
の例では、図26に示したハードウェア/ソフトウェア
分割に必要なインターフェース回路が、入力ポートを1
個、バッファを1個余分に必要であることを示してい
る。
【0090】図30に示した差分情報からインターフェ
ース回路の面積評価のフローチャートを図31に示す。
初めにステップ3101でインターフェース回路詳細化
部1902が生成したインターフェース回路詳細化情報
を読み込む。ステップ3102でこの情報に基づいて詳
細化したインターフェース回路の面積Aをインターフェ
ース回路詳細化情報テーブルから得られる入力ポート
数、出力ポート数、バッファ数とあらかじめ与えられて
いるポート、バッファに面積に基づいて計算する。
【0091】次に、ステップ3103で差分情報生成部
1903が生成した差分情報を読み込む。ステップ31
04で差分情報テーブルの入力ポート行の個数欄の値
(NI)を読み込む。ステップ3105で差分情報テー
ブルの入力ポート行のバッファ欄の値(BI)を読み込
む。ステップ3106で差分情報テーブルの出力ポート
行の個数欄の値(NO)を読み込む。ステップ3107
で差分情報テーブルの出力ポート行のバッファ欄の値
(BO)を読み込む。
【0092】これらの値は詳細化したインターフェース
回路と現在評価対象となっているハードウェア/ソフト
ウェア分割に必要なインターフェース回路の入力ポート
数、入力ポートのバッファ数、出力ポート数、出力ポー
トのバッファ数との差を表している。
【0093】ステップ3108で上記4ステップで得ら
れた入力ポート数の変化NI、出力ポート数の変化N
O、バッファ数の変化BI+BOとあらかじめ与えられ
ているポートとバッファの面積に基づいて、詳細化され
たインターフェース回路と現在評価対象となっているハ
ードウェア/ソフトウェア分割に必要なインターフェー
ス回路との面積の差dAを計算する。ステップ3109
でステップ3102で計算した面積Aと、ステップ31
08で計算した面積の差dAとから現在評価対象となっ
ているハードウェア/ソフトウェア分割に必要なインタ
ーフェース回路の面積A+dAを計算する。
【0094】上記のようにハードウェア/ソフトウェア
分割に必要なインターフェース回路の面積を、差分情報
に基づいて見積もることにより、より正確な評価が短時
間に可能となる。
【0095】なお、上述した実施形態で述べた処理手順
は、プログラムとして表現することができ、これをコン
ピュータ読み取り可能な記録媒体に記録することができ
る。この記録媒体とは、メモリ装置、磁気ディスク装
置、光ディスク装置等、プログラムを記録することがで
きるような装置が含まれる。
【0096】
【発明の効果】本発明に係るシステムの設計支援装置及
び設計支援プログラムを記録したコンピュータ読み取り
可能な記録媒体によれば、処理機能をハードウェアとソ
フトウェアに分担して評価を行うことによってシステム
の設計を行う際に、ハードウェアとソフトウェア間でデ
ータの受け渡しを行うインターフェース手段による影響
を考慮することによって、より正確なシステムの設計を
容易且つ迅速に行うことができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るハードウェア・
コデザイン装置の構成図である。
【図2】第2の実施形態に係るハードウェア・コデザイ
ン装置におけるスケジューリング・アーキテクチャ情報
生成のフローチャートを示すものである。
【図3】 第2の実施形態に係るハードウェア・コデザ
イン装置における動作記述の例を示すものである。
【図4】第2の実施形態に係るハードウェア・コデザイ
ン装置におけるハードウェア・ソフトウェア分割の例を
示すものである。
【図5】第2の実施形態に係るハードウェア・コデザイ
ン装置におけるスケジューリング結果の例を示すもので
ある。
【図6】第2の実施形態に係るハードウェア・コデザイ
ン装置におけるスケジューリング・アーキテクチャ情報
の例1を示すものである。
【図7】第2の実施形態に係るハードウェア・コデザイ
ン装置におけるスケジューリング・アーキテクチャ情報
の例2を示すものである。
【図8】第2の実施形態に係るハードウェア・コデザイ
ン装置におけるスケジューリング・アーキテクチャ情報
の例3を示すものである。
【図9】第3の実施形態に係るハードウェア・コデザイ
ン装置におけるコード系列情報生成のフローチャートを
示すものである。
【図10】第3の実施形態に係るハードウェア・コデザ
イン装置におけるコード系列の例を示すものである。
【図11】第3の実施形態に係るハードウェア・コデザ
イン装置におけるコード系列情報の例1を示すものであ
る。
【図12】第3の実施形態に係るハードウェア・コデザ
イン装置におけるコード系列情報の例2を示すものであ
る。
【図13】第4の実施形態に係るハードウェア・コデザ
イン装置におけるモデル情報生成のフローチャートを示
すものである。
【図14】第4の実施形態に係るハードウェア・コデザ
イン装置におけるモデル情報の例1を示すものである。
【図15】第4の実施形態に係るハードウェア・コデザ
イン装置におけるモデル情報の例2を示すものである。
【図16】第5の実施形態に係るハードウェア・コデザ
イン装置における制約チェックのフローチャートを示す
ものである。
【図17】第5の実施形態に係るハードウェア・コデザ
イン装置における制約評価値の計算例を示すものであ
る。
【図18】第5の実施形態に係るハードウェア・コデザ
イン装置における従来の制約評価値の計算例を示すもの
である。
【図19】第6の実施形態に係るハードウェア・コデザ
イン装置におけるの構成図である。
【図20】第7の実施形態に係るハードウェア・コデザ
イン装置における動作仕様の例を示すものである。
【図21】第7の実施形態に係るハードウェア・コデザ
イン装置におけるハードウェア/ソフトウェア分割の例
1を示すものである。
【図22】第7の実施形態に係るハードウェア・コデザ
イン装置における図21中のハードウェアの動作を示す
ものである。
【図23】第7の実施形態に係るハードウェア・コデザ
イン装置におけるインターフェース回路詳細化フローチ
ャートを示すものである。
【図24】第7の実施形態に係るハードウェア・コデザ
イン装置におけるバッファの有無を判断するフローチャ
ートを示すものである。
【図25】第7の実施形態に係るハードウェア・コデザ
イン装置におけるインターフェース回路詳細化情報テー
ブルの例を示すものである。
【図26】第8の実施形態に係るハードウェア・コデザ
イン装置におけるハードウェア/ソフトウェア分割の例
2を示すものである。。
【図27】第8の実施形態に係るハードウェア・コデザ
イン装置における図26中のハードウェアの動作を示す
ものである。
【図28】第8の実施形態に係るハードウェア・コデザ
イン装置における差分情報生成のフローチャートを示す
ものである。
【図29】第8の実施形態に係るハードウェア・コデザ
イン装置における使用状況テーブルの例を示すものであ
る。
【図30】第9の実施形態に係るハードウェア・コデザ
イン装置における差分情報テーブルの例を示すものであ
る。
【図31】第9の実施形態に係るハードウェア・コデザ
イン装置における評価のフローチャートを示すものであ
る。
【符号の説明】

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 システムの処理機能をハードウェアとソ
    フトウェアに分担し、この分担に基づいて該ハードウェ
    アと該ソフトウェアによる処理を評価し、この評価の結
    果によって前記分担を調整しつつ前記システムの設計を
    行うシステム設計支援装置であって、 前記調整の際に、前記ハードウェアと前記ソフトウェア
    との間における処理結果の受け渡しを行うインターフェ
    ース手段の処理に関する評価結果を反映させることを特
    徴とするシステムの設計支援装置。
  2. 【請求項2】 システムの処理機能をハードウェアとソ
    フトウェアに分担し、この分担に基づいて該ハードウェ
    アと該ソフトウェアによる処理を評価し、この評価の結
    果によって前記システムの設計を行うシステム設計支援
    プログラムを記録したコンピュータ読み取り可能な記録
    媒体であって、 システムの処理機能を記述した動作仕様を入力するステ
    ップと、 前記動作仕様に基づいて前記処理機能をハードウェアと
    ソフトウェアに分担するステップと、 前記ハードウェアに分担された動作仕様について評価を
    行うステップと、 前記ソフトウェアに分担された動作仕様について評価を
    行うステップと、 前記ハードウェアと前記ソフトウェアとの間における処
    理結果の受け渡しを行うインターフェース手段の処理に
    関する評価を行うステップと、 前記ハードウェア、ソフトウェア及びインターフェース
    についての各評価結果に基づいて、前記システムの設計
    制約を満たすか否かの判断を行うステップと、 前記判断において前記設計制約を満たさない場合には、
    前記各評価結果に基づいて前記分担を調整するステップ
    とを有することを特徴とするシステム設計支援を記録し
    たコンピュータ読み取り可能な記録媒体。
JP10229840A 1998-08-14 1998-08-14 システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体 Pending JP2000057199A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10229840A JP2000057199A (ja) 1998-08-14 1998-08-14 システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10229840A JP2000057199A (ja) 1998-08-14 1998-08-14 システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2000057199A true JP2000057199A (ja) 2000-02-25

Family

ID=16898515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10229840A Pending JP2000057199A (ja) 1998-08-14 1998-08-14 システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JP2000057199A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099704A1 (en) * 2001-05-30 2002-12-12 Yozan Inc. System development supporting apparatus, system development supporting method, and computer-readable recorded medium
JP2008204111A (ja) * 2007-02-19 2008-09-04 Ricoh Co Ltd 半導体集積回路の設計支援装置、その設計支援方法、その製造方法、プログラム、及び記録媒体
WO2018167940A1 (ja) * 2017-03-17 2018-09-20 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099704A1 (en) * 2001-05-30 2002-12-12 Yozan Inc. System development supporting apparatus, system development supporting method, and computer-readable recorded medium
JP2008204111A (ja) * 2007-02-19 2008-09-04 Ricoh Co Ltd 半導体集積回路の設計支援装置、その設計支援方法、その製造方法、プログラム、及び記録媒体
WO2018167940A1 (ja) * 2017-03-17 2018-09-20 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Similar Documents

Publication Publication Date Title
JP4042604B2 (ja) プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム
US6505339B1 (en) Behavioral synthesis links to logic synthesis
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
US9558306B2 (en) Retiming a design for efficient parallel simulation
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
US7107199B2 (en) Method and system for the design of pipelines of processors
Wang et al. Ant colony optimizations for resource-and timing-constrained operation scheduling
US20200341807A1 (en) Optimizing hardware fifo instructions
US8196146B2 (en) Information processing apparatus, parallel processing optimization method, and program
Eusse et al. Pre-architectural performance estimation for ASIP design based on abstract processor models
US11262989B2 (en) Automatic generation of efficient vector code with low overhead in a time-efficient manner independent of vector width
Bakshi et al. A scheduling and pipelining algorithm for hardware/software systems
GB2393810A (en) Automatic configuration of a microprocessor influenced by an input program
JP2000057199A (ja) システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体
Park Synthesis of high speed digital systems
Bergamaschi et al. A system for production use of high-level synthesis
Rosenstiel et al. Scheduling and assignment in high level synthesis
US20060277021A1 (en) Circuit synthesis with sequential rules
JPH05508040A (ja) 命令スケジューリング最適化方法
US6966043B2 (en) Method for designing minimal cost, timing correct hardware during circuit synthesis
US20120226890A1 (en) Accelerator and data processing method
JP6761182B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5739759B2 (ja) ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体
JPH11272641A (ja) レジスタ生成方法、レジスタ生成装置およびレジスタ生成プログラムを記録した記録媒体
Patel High-level synthesis of data-driven ASICs