JP2002230065A - システムlsi開発装置およびシステムlsi開発方法 - Google Patents

システムlsi開発装置およびシステムlsi開発方法

Info

Publication number
JP2002230065A
JP2002230065A JP2001027432A JP2001027432A JP2002230065A JP 2002230065 A JP2002230065 A JP 2002230065A JP 2001027432 A JP2001027432 A JP 2001027432A JP 2001027432 A JP2001027432 A JP 2001027432A JP 2002230065 A JP2002230065 A JP 2002230065A
Authority
JP
Japan
Prior art keywords
system lsi
user
development
information
configuration
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
JP2001027432A
Other languages
English (en)
Inventor
Nobuo Matsui
伸郎 松井
Atsushi Mizuno
水野  淳
Ryuichiro Oyama
隆一郎 大山
Ai Tangoda
愛 丹後田
Katsuya Uchida
勝也 内田
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 JP2001027432A priority Critical patent/JP2002230065A/ja
Priority to US09/865,289 priority patent/US6634017B2/en
Priority to EP01114837A priority patent/EP1229461A3/en
Publication of JP2002230065A publication Critical patent/JP2002230065A/ja
Priority to US10/621,449 priority patent/US7340692B2/en
Pending legal-status Critical Current

Links

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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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/33Design verification, e.g. functional simulation or model checking

Abstract

(57)【要約】 【課題】 最適な性能のLSIを開発設計すること
を可能にする。 【解決手段】 オプション命令が定義されたプロセ
ッサを含むシステムLSIの開発設計に利用されるコン
ピュータシステム上で動作する複数のソフトウェアから
成るシステムLSI開発装置であって、システムLSI
の開発設計に関わる可変項目定義情報に基づいて前記ソ
フトウェアを動作させ、システムLSIのハードウェア
記述、検証環境および開発設計ツールを生成するシステ
ムLSI開発環境生成部を具備し、可変項目定義情報
は、オプション命令情報、ユーザ定義モジュールおよび
マルチプロセッサ構成に関する情報の少なくとも1つを
含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、少なくともオプシ
ョン命令が定義されたcofigurableプロセッサを含むシ
ステムLSIの開発設計に利用される、コンピュータシ
ステム上で動作する複数のソフトウェアから成るシステ
ムLSI開発装置およびそのシステムLSI開発方法に
関する。
【0002】
【従来の技術】近年、マルチメディア処理等の組み込み
機器用LSIに対するニーズの多様化とその市場サイク
ルの短期化から、アプリケーションに最適なLSIを短
期に開発するLSI設計開発システムが望まれている。
【0003】一般に、LSI内に汎用プロセッサを搭載
した場合、ハードウェアの設計コストはほとんどゼロに
等しいが、アプリケーションの性能をフルに引き出すこ
とはできない。このため、最近では、命令やメモリ構成
等が選択可能なcofigurableプロセッサが提供されるよ
うになり、また同時に、cofigurableプロセッサの提供
者は、コンフィグレーションを指定して論理合成可能な
ハードウェア記述を出力するシステムを提供している。
このようなプロセッサおよびシステムによれば、オプシ
ョン命令やメモリサイズを指定することによって、アプ
リケーションに最適な構成のプロセッサを短期間で入手
することが可能となる。
【0004】一方、通常、命令セット等が変われば、コ
ンパイラやシミュレータ等のソフトウェア開発ツールも
変更しなければならない。このため、コンフィグレーシ
ョンを指定することにより、ハードウェア記述と同時
に、ソフトウェア開発ツールを生成するシステムも提供
されるようになっている。このようなシステムによれ
ば、ソフトウェア開発ツールの設計に要する労力および
時間を大幅に削減することができる。
【0005】
【発明が解決しようとする課題】以上述べたように、co
nfigurableプロセッサによれば、アプリケーションに最
適なプロセッサ構成を短期間で入手することができると
同時に、ソフトウェア開発も従来通りのフローで行うこ
とが可能となる。しかしながら、アプリケーションの性
能をより十分に引き出すためには、アプリケーションの
一部をハードウェア化して、プロセッサ+専用ハードウ
ェアというシステムLSI構成をとることも考えられ、
そして、この方が最適なLSI構成になることが多い。
ところが、従来の技術では、カスタマイズすることがで
きるのはプロセッサの構成だけであって、プロセッサの
周辺に追加するユーザ定義のハードウェアモジュールを
含めた構成を処理することができない。このため、現
在、プロセッサ+専用ハードウェア構成を含めたシステ
ムLSI構成の検討、性能評価、設計検証およびソフト
ウェア開発を行うことができず、より最適な性能のLS
Iを開発することが困難な状態となっている。
【0006】本発明は、上記の技術的課題を解決すべく
なされたもであり、その目的は、最適な性能のLSIを
開発設計することを可能にする技術を提供することにあ
る。
【0007】
【課題を解決するための手段】本発明に係るシステムL
SI開発装置の特徴は、オプション命令が定義されたプ
ロセッサを含むシステムLSIの開発設計に利用される
コンピュータシステム上で動作する複数のソフトウェア
から成るシステムLSI開発装置であって、システムL
SIの開発設計に関わる可変項目定義情報に基づいてソ
フトウェアを動作させ、システムLSIのハードウェア
記述、検証環境および開発設計ツールを生成するシステ
ムLSI開発環境生成部とを具備し、可変項目定義情報
は、オプション命令情報、ユーザ定義モジュールおよび
マルチプロセッサ構成に関する情報の少なくとも1つを
含むことにある。このような構成のシステムLSI開発
装置によれば、オプション命令、ユーザ定義モジュール
およびマルチプロセッサ構成の少なくとも1つを含む可
変項目定義情報の可能な全ての組み合わせについて、オ
プション命令が定義されたプロセッサを含むシステムL
SIのハードウェア、検証環境、開発ツールを一貫して
網羅的/複数並列に作成することができるので、アプリ
ケーションに最適なシステムLSIを短期間に開発する
ことが可能となる。
【0008】
【発明の実施の形態】以下、図1〜図19を参照して、
本発明の実施の形態のシステムLSI開発装置の構成お
よびその動作について説明する。
【0009】《システムLSI開発装置の構成》始め
に、図1を参照して、本発明の実施の形態のシステムL
SI開発装置の構成について簡単に説明する。
【0010】本発明の実施の形態のシステムLSI開発
装置1は、図1に示すように、設定ファイル生成部2、
ユーザ定義モジュール・ユーザ定義命令記憶部3、シス
テムLSI開発環境生成部4、性能評価部5、終了判定
部6、変更項目設定部7、入出力インタフェイス部8お
よび制御部9を有する。
【0011】また、本発明の実施の形態のシステムLS
I開発装置1は、装置1内に各種情報を入力するための
入力部10と装置1からの各種情報を出力するための出
力部11とに接続されている。ここで、入力部10の形
態としては、例えばキーボード、マウスポインタ、テン
キー、タッチパネル等を採用することができ、また、出
力部11の形態としては、例えばディスプレイ装置や印
刷装置等を採用することができる。
【0012】次に、図2〜図13を参照して、このシス
テムLSI開発装置内の各部の構成について順に詳しく
説明する。
【0013】『設定ファイル生成部の構成』設定ファイ
ル生成部2は、図2に示すように、入力解析部21、ロ
ーカルメモリマップ生成部22、オプション情報記憶部
23、デバイス構成記憶部24、キャッシュ構成記憶部
25およびローカルメモリマップ記憶部26を備え、シ
ステムLSIの設計上のコンフィグレーションを記述し
たコンフィグレーション指定ファイル、可変値設定情
報、最優先項目設定情報、目標性能指定情報(ハードウ
ェア性能、ソフトウェア性能の一方又は両方を含み、ハ
ードウェアの性能指標としては面積、周波数、消費電
力、ソフトウェアの性能指標としては、コードサイズ、
実効命令数、実行サイクル数を含む。)および変更項目
設定部7からの変更項目リスト情報に基づいて、システ
ムLSI設計上のコンフィグレーションを生成、格納す
る。
【0014】以下、設定ファイル生成部2内のそれぞれ
の構成要素について説明する。
【0015】〈入力解析部の構成〉入力解析部21は、
コンフィグレーション指定ファイルの内容を解析し、コ
ンフィグレーション指定ファイル内に記述されたコンフ
ィグレーションの内容をオプション情報記憶部23、デ
バイス構成記憶部24およびキャッシュ構成記憶部25
の各部に分割する。
【0016】ここで、この実施の形態においては、コン
フィグレーション指定ファイル内には、オプション命令
の有無、デバイスの有無(デバイスには、命令メモリ、
データメモリ、コプロセッサが含まれ、命令メモリ、デ
ータメモリの可変項目には、サイズ、アドレスが含まれ
る)、キャッシュの有無、キャッシュサイズ、ユーザ定
義命令、ユーザ定義ハードウェアモジュール、LSI内
部のメモリマップ(メモリマップには、外部メモリ領
域、内部メモリ領域、入出力領域が含まれ、外部メモリ
領域には、キャッシュアクセス領域の指定項目も含まれ
るものとする。また、各メモリ領域にはレイテンシ情報
も含まれる)、マルチプロセッサ構成(マルチプロセッ
サの数など)等の情報を記述するものとする。なお、ユ
ーザ定義命令やユーザ定義ハードウェアモジュールの記
述部分には、ユーザ定義命令やユーザ定義モジュールを
記述したファイル名の記憶位置(この実施の形態におい
ては、ユーザ定義モジュール・ユーザ定義命令記憶部3
の位置)を絶対パスや相対パス等の記述によって指定す
るようにする。
【0017】また、コンフィグレーション指定ファイル
からシステムLSI設計上のコンフィグレーションを指
定する際は、ユーザは、設定ファイル生成部2内の各記
憶部23〜26で定義されている可変値の中から1つの
値を選択し、選択した値を、例えば図3に示すようなコ
ンフィグレーション指定ファイル内に記述する。
【0018】すなわち、例えば、以下に示すSIZE記
述においては、内蔵データメモリサイズが1,2,4,8,
16,32[KB]のいずれかが選択可能であり、このS
IZE記述を省略した場合には、8[KB]になることを
示す。
【0019】DMEM: SIZE Ptype={1,2,4,8,16,32},default=8,comment="内蔵
データメモリのサイズ"; また、以下に示すISA_DEFINE記述において
は、ユーザ定義命令のISA定義ファイル名として任意
の文字列を記述しなければならないことを示す。
【0020】UCI: ISA_DEFINE Ptype=string,default="",comment="ユーザ
定義命令のISA定義ファイル名"; なお、上記のコンフィグレーションの設定作業は、入出
力インタフェイス部8を介した対話的な処理によって行
うようにしても良い。コンフィグレーションの設定を対
話的に行うようにすることにより、ユーザは、コンフィ
グレーション指定ファイルの文法等を意識せずに、コン
フィグレーションを容易に設定することができ、直接フ
ァイルに記述する場合と比べてコンフィグレーションの
設定に要する時間を短縮することができる。さらに、全
てのコンフィグレーションの設定を対話的に行えるの
で、コンフィグレーションの1つ設定し忘れる等の間違
いを防止することができる。
【0021】また、コンフィグレーションに可変値を設
定するようにしても良い。コンフィグレーションに可変
値を設定した場合には、設定ファイル生成部2は、基本
設定、可変値の測定用に作られたテンプレート、ユーザ
が設定した値のいずれかを用いて自動的に他のコンフィ
グレーションの設定値を導出するようにする。コンフィ
グレーションに可変値を設定することにより、ユーザ
は、コンフィグレーションの可変範囲に応じた複数の開
発環境、検証環境を同時に得ることができるので、LS
I開発サイクルの短縮を実現することが可能となる。
【0022】さらに、コンフィグレーションの中で最優
先項目を設定するようにしても良い。コンフィグレーシ
ョンの中で最優先項目が設定された場合、設定ファイル
生成部2は、最優先項目以外の部分の設定値について
は、基本設定、最優先項目に基づいてテンプレート又は
ユーザが指定した設定値を用いて導出し、最優先項目が
最適となるようなコンフィグレーションを生成する。コ
ンフィグレーションの中に最優先項目を指定することに
より、ユーザはシステムLSIの構成を考えることな
く、優先項目に適した構成を開発環境、検証環境を作成
し、その評価を行うことができる。
【0023】〈ローカルメモリマップ生成部の構成〉ロ
ーカルメモリマップ生成部22は、コンフィグレーショ
ン指定ファイルから指定されるグローバルマップ(全プ
ロセッサに共通のメモリ領域、例えば、図4(a)参
照)と、命令メモリ、データメモリ、命令キャッシュ、
データキャッシュといったシステムLSI内の個々のプ
ロセッサのローカルメモリ情報とを統合して、図4
(b)に示すようなシステムLSI内のプロセッサ毎の
ローカルメモリマップを生成し、生成したローカルメモ
リマップをローカルメモリマップ記憶部26内に格納す
る。ここで、プロセッサのローカルメモリ領域は、個々
のローカルメモリ毎に予約されているグローバルマップ
中のメモリ領域に対して、コンフィグレーション指定フ
ァイルにより指定されるメモリサイズを反映させること
によって生成することができる。また、予めグローバル
マップ中に各プロセッサのシャドウメモリ情報を指定し
ておくようにすれば、各プロセッサのローカルマップに
他のプロセッサのローカルメモリを含むシャドウメモリ
を作ることもできる。
【0024】〈オプション情報記憶部の構成〉オプショ
ン情報記憶部23は、入力解析部21によるコンフィグ
レーション指定ファイルの解析結果に基づいて、システ
ムLSIに内蔵されるプロセッサの命令セット内のオプ
ション命令のON/OFF(オン/オフ)の種別に関す
る情報を格納する。
【0025】〈デバイス構成記憶部の構成〉デバイス構
成記憶部24は、入力解析部21によるコンフィグレー
ション指定ファイルの解析結果に基づいて、システムL
SIに内蔵されるデバイスのON/OFFの種別に関す
る情報とそのサイズに関する情報、アドレス情報、プロ
セッサの命令メモリやデータメモリに関する情報、コプ
ロセッサ等のオプションハードウェアに関する情報を格
納する。
【0026】〈キャッシュ構成記憶部の構成〉キャッシ
ュ構成記憶部25は、入力解析部21によるコンフィグ
レーション指定ファイルの解析結果に基づいて、システ
ムLSIのキャッシュのON/OFFの種別、キャッシ
ュのタイプ(direct, 2-way, 4-way, n-way)に関する
情報とそのサイズに関する情報を格納する。
【0027】〈ローカルメモリマップ記憶部の構成〉ロ
ーカルメモリマップ記憶部26は、ローカルメモリマッ
プ生成部22が生成したローカルメモリマップに関する
情報を格納する。
【0028】『ユーザ定義モジュール・ユーザ定義命令
記憶部の構成』ユーザ定義モジュール・ユーザ定義命令
記憶部3は、ユーザ定義のハードウェアモジュールおよ
びシステムLSIに内蔵するプロセッサの命令セットに
おけるユーザ定義命令に関する情報を格納する。ここ
で、ユーザ定義のハードウェアモジュールに関する情報
はRTL記述、又は動作記述、命令の動作に関する情報
はCモデルで記述して記憶部3内に格納することが望ま
しい。動作記述とCモデル記述は同一のものでも良い。
また、ユーザ定義命令に関する情報は、コンフィグレー
ション指定ファイルから指定される、図4(c)に示す
ようなISA定義ファイルに記述して格納することが望
ましい。
【0029】『システムLSI開発環境生成部の構成』
システムLSI開発環境生成部4は、図2に示すよう
に、RTL生成部41、シミュレータカスタマイズ部4
2、コンパイラカスタマイズ部43、アセンブラカスタ
マイズ部44および検証ベクトル生成部45を備え、設
定ファイル生成部2内に格納されているコンフィグレー
ションの可能な全ての組み合わせについて、システムL
SIのハードウェア、検証環境および開発設計ツールを
生成する。
【0030】以下、このシステムLSI開発環境生成部
の内部構成について詳しく説明する。
【0031】〈RTL生成部の構成〉RTL生成部41
は、設定ファイル生成部2の記憶部内に記憶されている
コンフィグレーションに基づいて、システムLSIに内
蔵されるプロセッサのRTL記述を生成する。
【0032】具体的には、図6に示すように、ブロック
接続部41dが、デバイス構成記憶部24とキャッシュ
構成記憶部25内に格納されたコンフィグレーションを
参照してユーザにより設定されたコンフィグレーション
に対応するRTLテンプレート41a,41bを選択
し、プロセッサコア部のRTL記述41cに対して、選
択したRTLテンプレートと、高位合成処理部41eが
ユーザ定義モジュール・ユーザ定義命令記憶部8内に格
納されたユーザ定義命令又はユーザ定義モジュールの仕
様である動作記述を高位合成することにより生成され
る、RTL記述とを接続することにより、プロセッサの
RTL記述を生成する。なお、記憶部8内の仕様がRT
L記述である場合は、そのままインタフェイス信号が合
うように接続する。
【0033】なお、マルチプロセッサ構成が定義された
場合には、ブロック接続部41dは、複数のプロセッサ
記述を生成し、それらをバスで接続したマルチプロセッ
サのRTL記述を生成するものとする。
【0034】また、RTLテンプレート41a,b内に
含まれる命令メモリ、データメモリ、オプションハード
ウェア、命令キャッシュおよびデータキャッシュについ
ては、ユーザが選択可能なメモリサイズの各々について
RTL記述を予め用意し、指定されたコンフィグレーシ
ョンに応じてRTL記述を選択接続するようにする。ま
た、オプション命令については、オプション命令に対応
するハードウェアのテンプレートをオプション命令のO
N/OFF全ての組み合わせについて用意する。
【0035】例えば図7に示す例においては、除算オプ
ション命令(DIV)、最大最小値オプション命令(M
INMAX)各々のON/OFFの組み合わせ4通りに
ついて、命令機能ユニットのRTL記述をそれぞれテン
プレートとして用意し、デバイス構成記憶部24とキャ
ッシュ構成記憶部25内に格納されたコンフィグレーシ
ョンに合わせて選択接続する。また、コプロセッサ等の
オプションハードウェアについても同様、コンフィグレ
ーションで有効と指定されている場合、既定義のRTL
記述を接続する。さらに、ユーザ定義のハードウェアが
ある場合、ユーザが記述したハードウェア記述を接続す
る。
【0036】以上の接続処理によって、RTL生成部4
1は、設定されたコンフィグレーションに対応したプロ
セッサのRTL記述を生成する。例えば、プロセッサコ
アに4[KB]の命令メモリと8[KB]のデータメモリを
追加したプロセッサを最初に構築する場合、ユーザはコ
ンフィグレーションのパラメータ指定のみを行えば、プ
ロセッサのRTL記述を自動的に得ることができる。ま
た、命令メモリ、データメモリのサイズを変更し、コプ
ロセッサと命令キャッシュ、データキャッシュを追加
し、さらに幾つかのオプション命令とユーザ定義命令を
持つプロセッサ2を構築する場合であっても、コンフィ
グレーションのパラメータ指定を変更し、ユーザ定義命
令に対応するハードウェアのRTL記述を与えるのみ
で、新たなプロセッサのRTL記述を得ることができ
る。また、複数のRTLテンプレートを用意しておくの
ではなく、可変項目をパラメータ表現したRTLテンプ
レートにコンフィグレーションで設定された値を反映さ
せることによっても同等の効果が得られる。さらに、こ
のようなパラメータ化されたRTLテンプレートは、メ
モリ、キャッシュ等の部分モジュール毎でも良く、それ
らを含んだプロセッサ全体のものでも良い。全てのパラ
メータを包含した1つのRTLテンプレートでも良い。
【0037】〈シミュレータカスタマイズ部の構成〉シ
ミュレータカスタマイズ部42は、コンフィグレーショ
ンに沿った命令動作を実行するシミュレータを生成す
る。
【0038】具体的には、図8に示すように、再コンパ
イル部42cが、シミュレータテンプレート42aにユ
ーザ定義モジュール・ユーザ定義命令記憶部3内に格納
されたユーザ定義ハードウェアのCモデルを組み込んで
再コンパイルすることにより、シミュレータを再構築す
る。また、起動オプション情報抽出部42dは、設定フ
ァイル生成部内のデバイス構成記憶部24とキャッシュ
構成記憶部25に格納されているデータを参照して、起
動時のオプションを指定するシミュレータ起動オプショ
ンファイル(図9(a)参照)を生成する。そして、組
み合わせ処理部42eは、再構築したシミュレータとシ
ミュレータ起動オプションファイルとを組み合わせるこ
とにより、コンフィグレーションに沿った命令動作を実
行するシミュレータを生成する。
【0039】なお、シミュレータは、特定アドレス通過
時に、デバッグ指令の実行結果を出力する手段を備える
ことが望ましい。従来、実行途中の誤りが起きた場合に
エラーを出力するアサーションエラープログラム等があ
ったが、正常に実行している時の途中経過を調べるため
には、途中結果を出力する命令をアプリケーションに埋
め込んでおくか、デバッガ等で実行を停止させて途中経
過を読み取るしかなかった。起動時に指定されるアドレ
スを通過した際に所定の情報を出力するようにすれば、
シミュレータでアプリケーションを実行している途中に
途中経過を調べることが可能となる。例えば、次に示す
ようなコマンドでシミュレータを起動する。
【0040】sim -load test.hex -printx mem(0x400)
at 0x1200 ここで、sim,-load test.hex,-printx mem(0x400) at 0
x1200はそれぞれ、システムLSIのシミュレータ、tes
t.hexというファイルをロードして実行するという命
令、0x1200番地を通過したときにメモリの0x400番地の
内容を16進数で出力する命令を示す。
【0041】シミュレータは、この引数で指定された指
示を記憶しておき、プログラムカウンタが0x1200番地を
通過する度に0x400番地の内容を16進数でコンソール
に出力する。このとき、アプリケーションプログラムに
は観測用のコードが埋め込まれているわけではないの
で、命令数やサイクル数等の統計情報には全く影響を及
ぼさないで観測できることになる。また、特定アドレス
で実行を停止させ、人手を介してメモリの値を読み出し
表示させる等の作業を行う必要がないので、統計情報を
正確に取りながら、特に注目したい途中結果を確認しな
がらアプリケーションプログラムのシミュレーションを
することができるようになり、効率の良いLSI開発が
可能となる。
【0042】また、シミュレータは、指定された以外の
領域のメモリアクセスが起きた場合に実行を停止するこ
とが望ましい。設定されたコンフィグレーションに従っ
てシミュレータを起動した時には、使用可能なメモリが
明確に与えられている。もし、実施の基板上で実装され
ていない領域のメモリをアクセスするとバスエラーにな
る等してそれ以後の動作は保証されない。動作が保証さ
れないプログラムは、シミュレータ実行時に間違いを指
摘される等して、早期に修正しておく必要がある。そこ
で、シミュレータは存在するメモリ領域をを指定され、
明示的に指定されない領域はアクセス禁止にして、違反
があったら警告する(且つ停止する)。また、シミュレ
ータが対話モードを有志、対話モード(デバッグモー
ド)に移行し、どこが原因だったのかが解析できるよう
になっている。また、シミュレータがデバッガと通信し
て動作している場合には、シミュレーション動作を中断
してデバッガのコマンド待ちに移行し、無効な領域をア
クセスしたというエラーを表示し、プログラムの誤りを
早期に確実にユーザに伝える。また、メモリのデコード
回路では、上位のアドレス信号線の接続を省略されて構
成される場合がある。この場合、ターゲットでアドレス
を間違えたプログラムを実行してもバスエラーにはなら
ないが、アクセスが書き込みだった場合には、意図しな
いアドレスの内容を書き換えてしまい、後の実行結果が
期待通りにならない時がある。この間違ったプログラム
をRTLシミュレータで実行した場合でも、こういった
誤りはすぐには発見することができない。しかし、シミ
ュレータに正しいアドレスのみをアクセスできるように
正確なマッピング情報を与えて実行させたときには、指
定範囲以外のアドレスをアクセスしたことが即座に警告
されれば、ユーザは間違ったプログラムに早期に気付く
ことになり、無駄な解析をする時間を節約でき、開発サ
イクルの短縮が図れる。
【0043】なお、デバッガについては、デバイス構成
記憶部24とキャッシュ構成記憶部25内に格納されて
いるデータを参照して、図9(b)に示すようなデバッ
ガ起動オプションファイルを生成する。デバッガ起動オ
プションファイルを利用することにより、デバッガはコ
ンフィグレーションに沿った動作を行うことが可能とな
る。
【0044】また、デバッガは、シミュレータの統計情
報を仮想的なレジスタ若しくは変数として読み出す手段
を有することが望ましい。デバッガは、$profileという
変数を特殊な変数として予約してある。統計情報は、領
域毎に管理されている。そして、デバッガの変数読み出
しコマンドprintによって表示させる。領域の3番目の
情報を表示させるためには、print $profile[3]のよう
に入力する。
【0045】dbg> print $profile[3] profile3:Count=7 Inst=123 Cycle=145 dbg> さらに、言語ツールは、シミュレータ用のデバッグ用指
令をアドレスと共にシンボルやソース行と同等なデバッ
グ情報として出力する手段を有することが望ましい(タ
ーゲットの機械命令には反映されない)。コンパイラに
は、シミュレータ等で標準出力に途中結果等を出力する
ための拡張が施されている。#pragma cosoleoutに続く
文は、ターゲットの機械語には翻訳されずに、シンボル
名や行番号と同様、デバッグ情報としてファイルに格納
される。シミュレータは、デバッグ情報付きののオブジ
ェクトファイルを読み込んだとき、#pragma文が定義さ
れたアッドレス情報を記憶すると共に、デバッグ出力情
報であるprintf("a=%d\n",a)を記憶する。シミュレータ
が該当アドレスを実行しようとしたときに、デバッグ情
報を出力しなければならないと判断し、printf文をパー
サに送りデバッグ情報を出力する。
【0046】このように、ターゲットの機械命令に影響
を与えずに、シミュレータ実行時にデバッグ情報を出力
し、シミュレータの実行も中断せずに内容を確認するこ
ともできる。このとき、シミュレータ実行時に収集され
る統計情報は、ターゲットで実行されるものと同一の情
報である。別の表現をすれば、ターゲットとシミュレー
タで同一のオブジェクトコードを用いることができるこ
とになる。したがって、実行環境の違いによる再コンパ
イルなどの時間が発生しなくなる分だけ開発サイクルも
短縮される。また、単一のオブジェクトファイルを共有
できるので、管理が容易になることは明白である。
【0047】 〈コンパイラカスタマイズ部の構成〉コンパイラカスタ
マイズ部43は、オプション情報記憶部23とユーザ定
義命モジュール・ユーザ定義命令記憶部3内に格納され
たデータを参照して、機械命令関数宣言を含む、図9
(c)に示すような機械命令関数宣言ヘッダファイルを
生成する。なお、ここでいう機械命令関数宣言とは、プ
ロセッサ固有の命令を高級言語から直接指定するため
に、プロセッサ固有の命令を高級言語の関数宣言として
記述したものである。
【0048】具体的には、図10に示すように、機械命
令関数宣言抽出部43cが、ユーザ定義モジュール・ユ
ーザ定義命令記憶部3内に格納されたユーザ定義命令を
参照して、対応する機械命令関数宣言を抽出する。ま
た、結合処理部部43dが、オプション情報記憶部23
内に格納されたデータを参照して、既定義のテンプレー
ト43bから有効なオプション命令に対応する機械命令
関数宣言を選択する。そして、結合処理部43dは、テ
ンプレート43bと機械命令関数宣言抽出部43cそれ
ぞれから抽出された機械命令関数宣言を結合することに
より、機械命令関数宣言ヘッダファイルが生成する。こ
の機械命令関数宣言ヘッダファイルには、コンフィグレ
ーションで有効になったオプション命令とユーザ定義命
令に対応する機械命令関数宣言が含まれる。
【0049】これにより、ユーザは、高級言語プログラ
ムからコンフィグレーションで指定したオプション命令
とユーザ定義命令を直接指定し、利用することが可能と
なる。
【0050】なお、コンパイラカスタマイズ部33はオ
プション命令抽出部43aを有し、オプション命令抽出
部43aは、オプション情報記憶部23内に格納された
データを参照して、最適化に利用することができるオプ
ション命令の情報を取得し、コンパイラ起動時のオプシ
ョンを指定するコンパイラ起動オプションファイル(図
11(a)参照)を生成する。
【0051】これにより、利用可能なオプション命令の
情報をコンパイラの最適化に反映させることができる。
また、コンパイラの関数ライブラリは、起動オプション
ファイルを使用してソースから再コンパイルされるの
で、利用可能なオプション命令を組み込んだライブラリ
を生成することができる。
【0052】〈アセンブラカスタマイズ部の構成〉アセ
ンブラカスタマイズ部44は、利用可能なオプション命
令とユーザ定義命令のニーモニックと命令形式の情報を
組み込んで、アセンブラを再構築する。このアセンブラ
カスタマイズ部44によれば、利用可能な全ての命令の
任意の組み合わせからなるアセンブラプログラムについ
て、対応するオブジェクトコードを生成することができ
る。
【0053】〈検証ベクトル生成部の構成〉検証ベクト
ル生成部45は、設定ファイル生成部2内の各記憶部内
で指定されたコンフィグレーションを参照して、指定さ
れたシステムLSIの構成を網羅的に検証する検証ベク
トルを生成する。ここで、システムLSIの規模が大き
い場合等には、限られた時間の中で検証を終えるため
に、基本となる構成から変更された部分を重点的に検証
することが必要となる。そこで、指定されたオプション
命令や指定されたサイズのキャッシュ等を重点的に検証
するように、検証ベクトルは、命令セット記述に基づい
て、各命令に対応する検証ベクトル郡を生成することが
望ましい(図11(b)は検証ベクトル生成用のユーザ
定義命令ファイルの一例を示す)。
【0054】『性能評価部の構成』性能評価部5は、ア
プリケーションのコードサイズ、実行命令数、実行サイ
クル数、チップのゲートサイズおよび消費電力を見積
る。以下では、この性能評価部による性能評価処理につ
いて詳しく説明する。
【0055】・アプリケーションのコードサイズ評価 性能評価部5は、アプリケーションのコードサイズを評
価することができる。
【0056】今、アプリケーションとして図12(a)
に示すようなC言語のプログラムがあるとする。図12
(a)に示すアプリケーションは、システムLSI開発
環境生成部4が生成するコンパイラを利用して、以下の
ようにコンパイルすることができる。
【0057】>SLIDE_cc test.c ここで、SLIDE_cc、test.cはそれぞれ、
コンパイラの起動コマンドおよびユーザが作成したアプ
リケーションのファイル名を示す。
【0058】そして、コンパイルの結果得られるオブジ
ェクトファイルからアプリケーションのコードサイズに
関する情報を得ることができる。図12(a)に示すC
プログラムの場合、そのコードサイズは62となる。
【0059】なお、ここではアプリケーションはC言語
で記述されたものを例としてあげたが、システムLSI
開発環境生成部4はアセンブラも生成することができる
ので、アプリケーションはアセンブリ言語で記述された
もの(あるいは混合されたもの)でも構わない。アプリ
ケーションがアセンブリ言語で記述された場合は、アセ
ンブルの結果としてオブジェクトファイルが得られる。
また、アプリケーションプログラムはROM上に配置さ
れるため、ROMのサイズはアプリケーションプログラ
ムのコードサイズおよび初期値付き変数のデータサイズ
に依存することになる。ROMのサイズは、通常、12
8[KB]や256[KB]のように2n[KB](nは自然
数を示す)となるため、コードサイズがこの境界にある
場合には、小さいサイズのROMに収まるようにアプリ
ケーションを変更すれば、ROMサイズが小さくなり、
コストの削減につながる。例えばコードサイズが130
[KB]の場合、ROMサイズは256[KB]となるが、
アプリケーションを改良してコードサイズが128[K
B]以下になるようにすれば、ROMサイズは128[K
B]になり、コストの削減につながる。
【0060】また、システムLSI開発環境生成部4
は、シミュレータを生成することができるので、生成さ
れたシミュレータを利用して、実行ファイルをシミュレ
ートすることもできる。シミュレータは、シミュレーシ
ョン結果を表示するだけでなく、シミュレート時に実行
される命令を1つずつカウントすることで、アプリケー
ション全体の実行命令数を計測することができる。例え
ば図12(a)に示すプログラムのコンパイルの結果得
られる実行ファイルの名前をtestとし、この実行フ
ァイルtestをシミュレータ(起動コマンドSLID
E_sim)にかけることで、 >SLIDE_sim test result=450 プログラム停止。実行命令数:704 のようにプログラムの実行結果(result=45
0)と実行命令数(704)を得ることができる。
【0061】実行命令数は単に実行される命令を種類に
関係なくカウントするだけで得られるので、短時間に測
定することができる。これによりユーザは大まかなアプ
リケーションの性能に短時間に知ることができ、LSI
設計サイクルの短期化につながる。
【0062】・アプリケーション実行時の開始から終了
までに実行される命令数の総和(実行命令数)の評価 性能評価部5は、アプリケーション実行時のキャッシュ
ミスの測定、実行される各命令のサイクル数の計測を行
って、アプリケーション全体の正確なサイクル数を測定
することができる。例えば、図12(a)のプログラム
のコンパイルの結果得られる実行ファイルの名前をte
stとし、この実行ファイルtestをシミュレータ
(起動コマンドSLIDE_sim)にかけることで、 >SLIDE_sim test result=450 プログラム停止。実行サイクル数:1190 のようにプログラムの実行結果(result=45
0)と実行サイクル数(1190)を得ることができ
る。この性能見積もりにより、ユーザはLSIの性能が
余っているのか不足しているのかを知ることができ、コ
ンフィグレーションの変更が容易となり、LSI設計サ
イクルの短期化につながる。
【0063】また、性能評価部5は、アプリケーション
プログラム内に実行命令数計測の開始点と終了点を意味
する命令を記述することにより、アプリケーションプロ
グラムの指定された2点間の実行命令数を測定する。
今、図12(a)のプログラムの内側のforループの
実行命令数を計測しようとする場合、プログラムに図1
2(b)のように命令を書き加える。そして、コンパイ
ラが図13のプログラムをコンパイルすると、_STA
RTと_ENDが記述されたアドレスが保存され、シミ
ュレート時に保存されたアドレス間の実行命令数を測定
するようにしている。_START、_ENDに続く括
弧内の数字が_STARTと_ENDの対応関係を示し
ている。図12(b)のアプリケーションのシミュレー
ト結果は、図13(a)に示すように、内側のループ
(番号1の区間)の実行命令数が370であることが得
られる。
【0064】このように、測定区間を限定することによ
り、実行命令数測定時間を短くすることができる。特
に、ループ変数の値によらず処理内容が変わらないルー
プの1回の実行命令数が知りたい場合は、そのループを
測定区間として指定し、ループが1回終わったところで
シミュレートを終了させれば、測定時間の短縮につなが
る。これにより、アプリケーションの特定の場所だけの
実行命令数を知ることができ、測定時間の短縮によるL
SI設計サイクルの短縮化だけでなく、アプリケーショ
ンの改良箇所の探索にも有効な手段となる。
【0065】・アプリケーション実行時の開始から終了
までに実行されるサイクル数の総和(実行サイクル数)
の評価 性能評価部5は、実行サイクル数の測定を実行すること
もできる。具体的には、区間指定の方法は上記の実行命
令数の場合と同様であり、たとえば図12(a)のプロ
グラムの内側のforループの実行サイクル数を測定し
ようとする場合、図12(b)に示すように、内側のf
orループの前後に_STARTと_ENDを書き加え
る。この結果、シミュレート結果として図13(b)に
示す結果が得られる。この処理により、実行サイクル数
の測定時間の短縮につながるので、LSI設計サイクル
の短期化だけでなく、アプリケーションの改良個所の探
索、さらにキャッシュの設定にも有効な手段となる。
【0066】なお、ユーザが指定した区間だけでなく、
指定した点を通過したときの実行命令数と実行サイクル
数を出力するようにしても良い。これにより、ユーザは
アプリケーションの実行開始時から任意の点までの実行
命令数と実行サイクル数を知ることができる。例えば、
main関数の中で呼び出される、ある関数内のループ
が終わった時点での実行命令数を知りたい場合を考え
る。この時、実施例4,5のような区間指定の実行命令
数では、関数をまたがって区間を指定することができな
いため、アプリケーションの最初からの実行命令数を知
ることができない。もし区間指定ではなく、プログラム
上の任意の場所という指定ができれば、この問題は解消
する。シミュレータは指定された点のアドレスを保持し
ておき、アプリケーション開始時からそのアドレス通過
時までの実行命令数を出力するようにすればよい。
【0067】まず指定されたアドレスが条件付分岐命令
以外の命令、例えば加算を行うadd命令の場合を考え
る。シミュレータはこのadd命令を実行する前と後で
の、アプリケーション開始時からの実行命令数を出力で
きる。add命令の実行の前、後の選択はユーザが行う
ことができる。
【0068】次に指定されたアドレスが条件付分岐命
令、例えばbeq命令の場合を考える。beq R1,
R2,LABEL1という命令は、レジスタR1とR2
の値が等しいときにLABEL1に記述されたアドレス
に分岐し、等しくないときは分岐命令の次の命令を実行
する(ここでは分岐命令の遅延は無いものと考えてい
る)。シミュレータはこのbeq命令の条件が成立した
ときと成立しないときの両方の、アプリケーション開始
時からの実行命令数が出力できる。条件成立/不成立の
選択はユーザが行うことができる。
【0069】・消費電力、ゲートサイズの評価 性能評価部5は、システムLSI開発環境生成部3から
出力されるRTL記述を参照して、ワットウォッチャ
(WattWatcher)等の市販ツールによって消費電力ある
いは消費電力に換算可能な数値を抽出する。また、RT
L記述を利用して、ゲートサイズあるいはゲートサイズ
に換算可能な数値を抽出する。ゲートサイズに関する情
報を抽出することにより、最適なチップ面積を決定で
き、LSI製造時のコストを抑えることにつながる。
【0070】なお、性能評価部5は、システムLSI開
発環境生成部3が生成したRTL記述、コンパイラ、シ
ミュレータ、検証環境を利用して、キャッシュのミス率
(あるいはヒット率)を抽出することもでき、例えば、
目的アプリケーションに対するキャッシュ性能の見積り
結果として図13(c)に示すような値を得ることがで
きる。この結果、キャッシュサイズに制約がなく、目的
アプリケーションの実行時間を短くしたい場合はキャッ
シュミス率が一番低い16Kbytesをキャッシュサ
イズとして設定することになる。また、キャッシュサイ
ズに制約がある場合は、キャッシュミス率の変更に伴う
目的アプリケーションの実行時間の変更とのトレードオ
フを考えることになる。
【0071】また、性能評価部5は、生成したRTL、
コンパイラ、シミュレータ、検証環境に基づいて得たR
TLのゲートサイズの消費電力などの見積もり情報や、
コンパイル、シミュレートの結果わかるアプリケーショ
ンの実行命令数や実行サイクル数といった見積もり情報
を内部に保持していることが望ましい。そして、これら
の情報をユーザが閲覧しようとする場合、すべての情報
を閲覧することも可能であるが、本ツールではユーザが
見たいと思う項目(最優先項目)を指定することで自動
的にその項目だけを閲覧することができる。たとえば、
ユーザがチップサイズを見積もり情報として知ろうとし
た場合、最優先項目としてチップサイズを指定すれば、
本ツールは生成したRTLからチップサイズを計算して
ユーザに提出する。アプリケーションの実行サイクル数
を知ろうとした場合、シミュレート結果から判明した実
行サイクル数をユーザに提出する。
【0072】このような構成によれば、ユーザは知りた
い見積もり情報を条件として指定することで、自動的に
その見積もり情報が得られることになり、見積もりの判
断が迅速に行えるようになる。
【0073】なお、性能評価部5は、RTLシミュレー
ションを行った結果のサイクル情報をシミュレータの入
力として、変換できる。例えば、メモリアクセスといっ
ても、メモリには、いくつか種類がある。ROMやRA
Mなどではアクセスサイクル数が異なってくる。このよ
うな時、シミュレータでは、シミュレータを生成する際
に大まかなサイクル数を設定することはできるが、それ
は実際の値に沿ったものではない。その値の修正を行う
ためにRTLでシミュレーションを実行した結果のサイ
クル情報を利用する。シミュレータは、RTLシミュレ
ーションのサイクル情報または、サイクル情報をシミュ
レータの入力フォーマットに変換した情報を読み取り、
シミュレータ内部の値の変更が可能になる。これによ
り、より実際に近い値の見積もりを行うことができる。
【0074】『終了判定部の構成』終了判定部6は、性
能評価部5による性能評価結果に基づいて、設計された
システムLSIがユーザが予め設定した目標性能を満た
しているか否かを判別する。
【0075】そして、目的性能を満たしていない場合に
は、変更項目設定部5が、性能評価部5による評価結果
に基づいて、次回以降の設定値を導出する。
【0076】『変更項目設定部の構成』変更項目設定部
7は、性能評価部5による評価結果に基づいて、次回以
降のコンフィグレーションの設定値を導出する。性能評
価のための統計情報として、メモリ領域に対するアクセ
ス統計、アクセスサイクル数を有している。また、キャ
ッシュがついている場合は、キャッシュのヒット率も統
計情報として提供される。
【0077】目的アプリケーションを実行した際の統計
情報を性能評価のための情報として利用することによ
り、目的アプリケーションの実行の特徴に沿った可変値
の設定値を導出することができる。
【0078】メモリ領域(ROM、RAM、キャッシュ
など)は、アクセスサイクル数に基づき分類され、メモ
リ領域のアクセス統計とサイクル数計算部分とは分離さ
れている。
【0079】アクセス統計とサイクル数計算を切り離し
ているのは、サイクル数補正の演算は必要なときのみに
行われるようにしたためである。ここで、キャッシュ付
システムにおいて1回では目的性能が得られなかった場
合を考える。性能評価の手段として、目的アプリケーシ
ョンのサイクル数が多い場合に、その部分を減らしたい
場合に、アクセス統計の情報を利用し、統合環境が持っ
ている、サイクル数を減らすためのテンプレートに従
い、キャッシュのサイズを大きくするなどの可変値の設
定を行う。
【0080】 (テンプレート) サイクル数 が多い →メモリアクセスの サイクル数が多い →キャッシュの ミス率が高い →ANS:キャッシュ サイズを増やす →その他の理由(省略) このように、メモリ領域をアクセスサイクルで分類し、
領域ごとに統計情報を持つことにより、より正確な見積
もりが得ることができ、また、目的アプリケーションの
実行時の統計情報を元にした評価を行うことにより、よ
り適正な可変値の設定値を導出できる。また、自動的に
可変値の設定値を導出できる手段を持つことにより、開
発時間を短縮することができる。
【0081】また、変更項目設定部7は、性能評価のた
めの統計情報として、目的アプリケーションを実行した
結果のオプション命令の統計情報を有することが望まし
い。そして、この統計情報を利用して、使われていない
命令をはずしたオプションの構成に再編成をすることが
できる。例として、32ビットの積和演算のオプション
命令をつけてLSIを構成した場合を考える。この構成
で目的アプリケーションの実行させ、実行時の統計情報
をとる。その結果、32ビットの積和演算のオプション
命令は使用しないことがわかり、そのオプション命令を
OFFにした構成を性能評価からのフィードバックとし
て、設定を変更し、再構築を行う。このように使用して
いない命令を除くための設定や再構築が自動的に行える
ことにより、開発時間を短縮し、かつコストの削減が可
能になる。
【0082】さらに、変更項目設定部7は、評価結果に
より次回以降の可変値の設定値を導出する手段をもち、
また、性能評価のための統計情報として、目的アプリケ
ーションを実行した結果のオプション命令の統計情報を
有することが望ましい。これにより、この統計情報を利
用して、あらかじめ定められた出現回数または出現率以
下の命令をはずしたオプションの構成に再編成すること
ができる。例として、32ビットの積和演算のオプショ
ン命令をつけてLSIを構成して場合を考える。この構
成で目的アプリケーションの実行させ、実行時の統計情
報をとる。その結果、32ビット積和演算のオプション
命令の使用頻度があらかじめ定められた出現回数または
出現率以下であることがわかったので、そのオプション
命令をOFFにした構成を性能法科からのフィードバッ
クとして、再構築を行う。コンパイラは、そのオプショ
ン命令を使用せずに、コンパイルを行う。このように命
令の再構築、コンパイラの再構築、また、自動的な設定
の変更が行えることにより、開発時間を短縮し、かつコ
ストの削減が可能になる。
【0083】さらに又、変更項目設定部7は、 性能評
価により自動的に可変項目の設定変更を行った後で、再
度目的アプリケーションを実行して、設定変更の正当性
を判断する手段を有することが望ましい。また、性能評
価により自動的に可変項目の設定変更を行った後で再度
目的アプリケーションを実行して、設定変更が有効でな
いと判断した場合には、別の設定に変更して、これを、
有限実行回数の施行を繰り返し、得られた結果の中で適
切な設定を自動的に選択すると良い。
【0084】『入出力インタフェイス部の構成』入出力
インタフェイス部8は、システムLSI開発装置1と入
力部10、出力部11との間の情報の入出力処理を支援
する機能を有し、例えば、グラフィカルユーザインタフ
ェイス(Graphical User Interface GUI)の利用が考え
られる。この入出力インタフェイス部8によれば、コン
ピュータに不慣れなユーザであっても、入出力インタフ
ェイス部8からの指示に従って、容易にシステムLSI
の開発を行うことができる。
【0085】『制御部の構成』制御部9は、入出力イン
タフェイス部8を介したユーザからの指示に従って、シ
ステムLSI開発装置1内の構成要素の制御を行う。
【0086】《システムLSI開発装置の動作》次に、
上記のシステムLSI開発装置を用いたシステムLSI
開発処理について説明する。
【0087】上記のシステムLSI開発装置を用いてシ
ステムLSI開発を行う際には、ユーザは、まず始め
に、キャッシュサイズ等、性能に関して最大のコンフィ
グレーションをシステムLSI開発装置1に対して入力
する(S101)。コンフィグレーションが入力される
と、装置1内のシステムLSI開発環境生成部4が、コ
ンフィグレーションの可能な全ての組み合わせに対応し
たツールを生成し(S102)、ツール生成完了に応じ
てユーザはアプリケーションを実行させる(S10
3)。そして、アプリケーション実行後、性能評価部5
が、アプリケーションの実行結果を参照して、アプリケ
ーションの性能を評価する(S104)。
【0088】性能評価部5による性能評価が完了する
と、次に、終了判定部6が、最初のコンフィグレーショ
ンによる性能が所望の基準に達しているか否かを判別し
(S105)、達している場合には、性能を満足する最
小のシステム構成を抽出し(S108)、検証環境およ
びドキュメントをユーザに対して出力する(S10
9)。ここで、ドキュメントには、指定されたコンフィ
グレーションを確認するための項目についての記述が含
まれているものとする。
【0089】一方、性能が足りていない場合には、ユー
ザは、ユーザ定義のモジュールを設計し、開発ツール内
に組み込み(S106)、ユーザ定義モジュールを利用
するようにアプリケーションを書き換える(S10
7)。そして、再びアプリケーションを実行し、書き換
えたアプリケーションが所望の性能を満たしているか否
かを判別する。
【0090】(ユーザ定義モジュールの追加する処理の
例)ここで、ユーザ定義モジュールとしてDSPを追加
する処理を例として挙げ、上記のユーザ定義モジュール
を追加する際の処理について説明する。なお、この例に
おいては、アプリケーションとして、メモリよりデータ
を読み出し、計算を行い、結果を書き戻すという処理を
繰り返し実行するものを考える。
【0091】この例においては、プロセッサのみを用い
てアプリケーションの処理を実行すると、アプリケーシ
ョンでは、プロセッサの命令を使用して、図15(a)に
示すようなプログラムを実行する。しかし、このままで
は目標性能を達成することはできないので、ユーザ定義
モジュールとして、計算を行うDSPを追加する。ここ
で、DSPは制御バスによって制御され、コアのプロセ
ッサは制御バスにDSPの制御のための数値を書き込め
ば良い。なお、この処理はDSP命令を定義して使用す
ることも可能であるが、ここでは、制御バスでDSPの
実行を制御することとする。なお、図15(a)中の_c
ulcは演算処理を行うサブルーチンを示す。
【0092】また、ユーザ定義モジュールとして追加さ
れたDSPは、図15(b)に示すプログラムに従って
動作する。すなわち、制御バスのcntlbus_addr1のアド
レスに、計算用のデータの開始アドレスをおき、cntlbu
s_addr2に計算用のデータの終了アドレスを置く。ま
た、cntlbus_addr3は、計算結果を収めるメモリの位置
の値を置く。cntlbus_addr4では、このアドレスに書き
込むことにより、DSPの動作の制御が行われる。具体
的には、このアドレスのあるビットに1を書き込むこと
により、DSPの処理を開始したり、停止したりする。
処理が開始されると、DSPは、開始アドレスや終了ア
ドレス、書き込み先のアドレスを決められた場所(cntl
bus_addr1,cntlbus_addr2,cntlbus_addr3)に読みにい
き、処理を開始する。
【0093】DSPのようなユーザ定義モジュールを追
加する方法としては、以下の2つの方法が考えれる。す
なわち、(1)ユーザ定義モジュールの仕様として、動
作記述とRTL記述の双方を作成し、ユーザ定義モジュ
ール・ユーザ定義命令記憶部3内に格納する、又は、
(2)動作記述のみを作成し、RTL生成部41内の高
位合成処理部41eにおいて、動作記述からRTL記述
を生成する。
【0094】ここで、図15(c),16を参照して、
上記の動作記述について説明する。図15(c)内のDS
P_HWEngineは、HWEngineの性質とcontrolbusの性質を有
し、クラスの定義をすることにより、動作モデルは、DS
PをHWEngineと認識する。また、コントロールバスにD
SP開始等の書き込みをした場合には、図16に示すプ
ログラムに従って、DSP_HWEngineのwrite_controlbusが
呼び出され、DSPの処理を開始する。また、ユーザが
DSPに対して命令を記述したい時には、MPIのコン
フィグレーション時にユーザ定義の命令を記述市、コン
フィグレーション情報を受け取ったシステムLSI開発
装置が命令定義ヘッダファイルを作成し、コンパイラに
与える。コンパイラは、コンパイル処理を実行し、ユー
ザ定義命令の入った実行オブジェクトを出力する。な
お、シミュレータやRTLにおいてその動作を実行する
ためには、その動作記述を与える必要性がある。また、
図16に示す動作記述では、DSP_HWEngineクラスの中に
do_command関数に命令毎に記述を行う。
【0095】上記のようにして追加されたユーザ定義モ
ジュールを用いて性能評価を行う。そして、追加したモ
ジュールが性能を満たしていれば終了。満たしていなけ
れば、さらにユーザ定義モジュールを作成し、追加す
る。ソフトウェアの性能評価は、ユーザアプリケーショ
ンを実行し、目標性能を満たしているか否かを調べる。
ハードウェアの性能評価は、コアプロセッサとユーザ定
義モジュールとを接続したRTL記述を論理合成し、ゲ
ート数計算、タイミング解析、消費電力解析等を実行す
る。ハードウェア検証は、ユーザが手書によって与えた
ベクトル、又は、検証用のベクトルを生成するツールを
使用して作成したベクトル等を用いて、コアとユーザモ
ジュールから成る動作モデル(シミュレータ)のベクト
ル実行結果とRTLシミュレーションの結果が一致して
いるかどうかで行う。
【0096】(マルチプロセッサ構成の処理例)以上の
説明においては、システム内にプロセッサを1つ設ける
例であったが、当然のことながら、システム内にプロセ
ッサを複数設け、マルチプロセッサ構成を構築すること
が可能である。このマルチプロセッサ構成においては、
オプション命令やキャッシュサイズ等の可変設定項目は
各プロセッサ毎に独立して設定することが可能である。
以下では、図17,18を参照して、マルチプロセッサ
構成の処理例について説明する。
【0097】圧縮されたデータの復元処理やデータのデ
ィスプレイ表示処理等、近年の傾向としては、ハードウ
ェアで行っていた処理もコスト面や速度面からソフトウ
ェアで代用できるようになり、ソフトウェアの処理の割
合が増し、複雑化してきている。このような、複雑なア
プリケーションがターゲットである場合、1つのプロセ
ッサにユーザ定義モジュールを定義したり、コプロセッ
サをつけたりしても、目標性能を満たしそうにない時
は、マルチプロセッサ構成を採用する。また、速度向上
のためにコプロセッサをつけた場合でも、コプロプロセ
ッサへのロード等、コアプロセッサが行う処理は多い。
また、明らかに1プロセッサでは処理不可能な場合もあ
る。そのような場合は、複数のプロセッサでアプリケー
ションを実行することを考える。
【0098】ここで、圧縮されたデータストリームを
(1)受信、(2)復元、(3)ディスプレイ表示用に
加工、(4)データ出力するというアプリケーションを
考える。ストリームの処理は、処理時間が決まっている
ので、まず、処理速度が大切である。これらを1つのプ
ロセッサで行った場合、複数の処理+コプロセッサやユ
ーザ定義モジュールへの制御も行わなければならず、ど
うやっても目標性能を得ることができない。このような
場合、処理毎にプロセッサを割り当て、処理を分散させ
ると良い。例として、プロセッサ1で(1)と(4)の
処理、プロセッサ2で(2)の処理、プロセッサ3で
(3)というように処理を分散させることができる。ま
た、オプション命令やキャッシュ等も、例えば、プロセ
ッサ1は、命令キャッシュ無し、データキャッシュ無
し、オプション命令無し、プロセッサ2は、命令キャッ
シュ2KB、データキャッシュ1KB、ユーザ定義モジ
ュールとしてのDSP付き、コプロセッサ無し、プロセ
ッサ3は、命令キャッシュ2KB、データキャッシュ無
し、コプロセッサ有りというように、プロセッサ毎に設
定することができる。すなわち、今まで述べてきた、1
つのプロセッサへの可変項目設定を複数のプロセッサに
ついても行うことができる。そして、3つのプロセッサ
を使ってそれぞれの処理を行うアプリケーションで、そ
れぞれのプロセッサに対する、最小構成を求めることに
より、最適なLSIを構築することができる。例えば、
最初、全てのプロセッサの命令キャッシュ、データキャ
ッシュを4KBとしていたが、性能評価の結果、上記の
ような構成で目標性能が得られということがわかる等、
それぞれの可変項目について、性能評価からのフィード
バックを得ることができる。
【0099】マルチプロセッサ構成のLSIは、シング
ルプロセッサ構成の時と同様、コンフィグレーションを
指定することにより、システムLSI開発環境を生成す
ることができる(ただし、ユーザ定義モジュールがある
場合には動作記述を作成する必要がある)。コンパイラ
はマルチプロセッサに対しての変更はないが、個々のプ
ロセッサに対して1対1にコンパイラが生成される。シ
ミュレータ、デバッガ等は、マルチプロセッサに対応し
ているものが生成される。システムLSI開発環境がど
のようにしてマルチプロセッサのシミュレータを生成で
きるかであるが、これも、シングルプロセッサの時と同
様、プロセッサの設定や生成をコア毎にテンプレートを
使用して設定用の関数を生成する(図17,18に示す
プログラムコードがシミュレータ生成用のテンプレート
を使用して生成されたものである。なお、図17(a)に
示すコードはシミュレータのコア用のクラスの例であ
る)。コア毎に生成された設定関数(図17(b))を
モジュール組み立ての関数(図18(a))がコールす
る。ここもコンフィグレーションによって呼ばれる関数
の数が異なってくるので、テンプレートを使用して生成
される。また、シミュレータを実行する部分は、図18
(b)に示すように、1クロック又は1ステップ(1命
令)実行のためコールされる関数中に、それぞれのプロ
セッサの1クロック又は1ステップ実行部分の関数がコ
ールされるようにされている。
【0100】また、アプリケーションでは、プロセッサ
間の通信処理等も必要になるが、共有メモリやプロセッ
サ間ハードウェア割り込みや、ハードウェアセマフォ等
がある。上記のアプリケーションでは、計算が終了した
データをメモリに書き込み、他のコアとやり取りした
り、処理が終了したことをあるコアに知らせるために、
そのコアに対してハードウェア割り込みを起こしたり、
資源の競合を防ぐために、セマフォを利用したりする。
RTLもシミュレータと同様にテンプレートがあり、コ
アの個数の応じて、RTL記述が生成される。
【0101】このように、この実施の形態のシステムL
SI開発装置においては、システムLSIの設計上のコ
ンフィグレーションを1つのデータベース内に保持し、
このデータベース内の情報を参照して、RTL記述、開
発ツールおよび検証環境の全てを一貫して生成するの
で、コンフィグレーションの変更に伴う再設計に要する
労力および時間を大幅に削減することができる。また、
このような構成によれば、設計→評価のプロセスを比較
的短時間に繰り返し、ユーザの目的に適した構成のシス
テムを容易に得ることが可能となる。さらには、最初に
最大構成の設定から評価を行うことにより、ユーザ定義
モジュールの必要性を判断し、システムLSIの設計に
早期に着手することが可能となる。
【0102】《その他の実施の形態》本発明の実施の形
態のシステムLSI開発装置には、いわゆる汎用機、ワ
ークステーション、PC(Personal Computer)、NC
(Network Computer)等が含まれ、例えば、図18に示
す構成のような概観を有し、フロッピー(登録商標)デ
ィスクドライブ52および光ディスクドライブ54を備
えている。そして、フロッピーディスクドライブ52に
対してはフロッピーディスク53、光ディスクドライブ
54に対しては光ディスク55を挿入し、所定の読み出
し操作を行うことにより、これらの記録媒体に格納され
たプログラムをコンピュータシステム内にインストール
することができる。また、所定のドライブ装置57を接
続することにより、例えば、メモリ装置の役割を担うR
OM58や、磁気テープ装置の役割を担うカートリッジ
59を用いて、インストールやデータの読み書きを実行
することもできる。
【0103】また、本発明の実施の形態のシステムLS
I開発装置は、プログラム化しコンピュータ読取り可能
な記録媒体に保存しても良い。そして、システムLSI
開発処理を行う際は、この記録媒体をコンピュータシス
テムに読み込ませ、コンピュータシステム内のメモリ等
の記憶部にプログラムを格納し、システムLSI開発プ
ログラムを演算装置で実行することにより、本発明のシ
ステムLSI開発装置およびその方法を実現することが
できる。なおここで言う記録媒体とは、例えば、半導体
メモリ、磁気ディスク、光ディスク、光磁気ディスク、
磁気テープ、伝送媒体等のプログラムを記録することが
できるようなコンピュータ読取り可能な記録媒体等が含
まれる。
【0104】《実施の形態の効果》以上述べてきたよう
に、この実施の形態のシステムLSI開発装置によれ
ば、オプション命令、ユーザ定義モジュールおよびマル
チプロセッサ構成の少なくとも1つを含む可変項目定義
情報の可能な全ての組み合わせについて、オプション命
令が定義されたプロセッサを含むシステムLSIのハー
ドウェア、検証環境、開発ツールを一貫して網羅的/複
数並列に作成するので、アプリケーションに最適なシス
テムLSIを短期間に開発することが可能となる。
【0105】また、1箇所で指定されたコンフィグレー
ションを各ツールで共有し、コンフィグレーションの可
能な組み合わせについて、システムLSIのハードウェ
ア、検証環境、開発ツールを一貫して網羅的/複数並列
に作成するので、ツール間の連携をとることが可能とな
り、システムLSIの開発期間を短縮することができ
る。また、マルチプロセッサシステムを構築する場合に
は、全てのハードウェアのローカルメモリ情報を一括し
て保持し、各プロセッサのローカルメモリマップを他の
プロセッサのローカルメモリへのアクセス領域を含めて
生成するので、システムLSI中に複数のプロセッサを
含めることが可能となる。
【0106】また、コンフィグレーションの各組み合わ
せについて、並列に性能評価を実行するので、人手によ
る各ツール出力の評価集約を行う必要がなくなり、シス
テムLSIの開発期間を短縮することが可能となる。ま
た、アプリケーションのコードサイズ、実行命令数、実
行サイクル数、チップのゲートサイズ、消費電力を見積
もる機能を有し、見積もった性能と目標性能とを比較し
て評価するので、性能評価に要する労力を軽減し、シス
テムLSI開発期間の短縮を実現することが可能とな
る。
【0107】また、コンフィグレーション項目の設定を
対話的に行うことができるので、ユーザは設定ファイル
の文法を意識せずにコンフィグレーションを設定するこ
とが可能となり、直接設定ファイルを記述する場合と比
べて短時間に設定を行うことができる。また、全てのコ
ンフィグレーション項目の設定を対話的に行うことがで
きるので、コンフィグレーション項目の設定のし忘れの
防止にもなる。
【0108】また、コンパイラカスタマイズ部43がコ
ンパイラを生成するので、目的アプリケーションのコー
ドサイズを知ることができ、システムLSIの開発期間
を短縮することが可能となる。
【0109】また、シミュレータカスタマイズ部42が
シミュレータを生成するので、目的アプリケーションの
性能を短時間で知ることができ、システムLSIの開発
期間を短縮することができる。
【0110】また、性能評価部5がアプリケーションの
実行サイクル数を抽出するので、ユーザは、LSIの性
能が足りているのか、不足しているのかを容易に知るこ
とができ、コンフィグレーション項目の速やかな変更に
つながり、システムLSIの開発期間を短縮することが
できる。
【0111】また、性能評価部5がゲートサイズを抽出
するので、最適なチップ面積を決定し、LSI製造時の
コストを抑えることが可能となる。
【0112】さらに、ユーザが指定した可変値に基づい
てコンフィグレーションの設定およびその性能評価を行
うことができるので、複数の設定値に対応した結果を同
時に得ることが可能となり、LSI開発サイクルの短縮
を実現することができる。
【0113】さらにまた、システムLSI開発上の最優
先項目を指定することができるので、構成を考えること
なく、優先項目に適した構成の見積を得ることができ
る。
【0114】また、メモリ領域をアクセスサイクルで複
数の領域に分類し、各領域に対して統計情報を持たせる
ので、より正確な見積を得ることができる。
【0115】また、目標性能を設定することができるの
で、目標性能に沿った見積を速やかに導出することがで
きる。また、アプリケーションが目標性能に到達しなか
った場合には、アプリケーションの実行時に記録した情
報に基づいてコンフィグレーション項目を変更(フィー
ドバック)するので、目標性能にあった構成を抽出する
ことが可能となる。さらに、自動変更されたコンフィグ
レーション項目に基づいて開発環境、検証環境を再度生
成し、アプリケーションの実行性能を測定しし、目標性
能と比較することで設定変更の妥当性を判断することが
できる。さらにまた、妥当性を判断した結果、設定変更
が妥当でないと判断された場合には、再度、コンフィグ
レーション項目を自動的に変更、アプリケーションの実
行性能の再測定、コンフィグレーション項目の設定変更
の妥当性を判断するので、変更を有限回数行うことがで
きる。これにより、システムLSI開発の工期を短縮す
ることができる。
【0116】
【発明の効果】本発明によれば、最適な性能のLSIを
開発設計することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のシステムLSI開発装置
の構成を示すブロック図である。
【図2】本発明の実施の形態の設定ファイル生成部の構
成を示すブロック図である。
【図3】本発明の実施の形態のコンフィグレーションフ
ァイルを示す図である。
【図4】本発明の実施の形態のグローバルメモリマッ
プ、ローカルメモリマップおよびユーザ定義命令を示す
図である。
【図5】本発明の実施の形態のシステムLSI開発環境
生成部の構成を示すブロック図である。
【図6】本発明の実施の形態のRTL生成部の動作を説
明するための図である。
【図7】本発明の実施の形態のRTL生成部の動作を説
明するための図である。
【図8】本発明の実施の形態のシミュレータカスタマイ
ズ部の動作を説明するための模式図である。
【図9】本発明の実施の形態のシミュレータ起動オプシ
ョンファイル、デバッガ起動オプションファイルおよび
機械命令関数宣言ヘッダファイルを示す図である。
【図10】本発明の実施の形態のコンパイラカスタマイ
ズ部の動作を説明するための模式図である。
【図11】本発明の実施の形態のコンパイラ起動オプシ
ョンファイルおよび検証ベクトル生成用ユーザ定義命令
ファイルを示す図である。
【図12】本発明の実施の形態のアプリケーションプロ
グラムを示す図である。
【図13】実行命令数、実行サイクル数およびキャッシ
ュミス率を示す図である。
【図14】本発明の実施の形態のシステムLSI開発装
置を用いたシステムLSI開発処理を示すフローチャー
ト図である。
【図15】アプリケーションのプログラム例および動作
記述例を示す図である。。
【図16】動作記述の例を示す図である。
【図17】プログラムコードの例を示す図である。
【図18】プログラムコードの例を示す図である。
【図19】本発明の実施の形態のシステムLSI開発装
置の概観を示す模式図である。
【符号の説明】
1 システムLSI開発装置 2 設定ファイル生成部 3 ユーザ定義モジュール・ユーザ定義命令記憶部3 4 システムLSI開発環境生成部 5 性能評価部 6 終了判定部 7 変更項目設定部 8 入出力インタフェイス部 9 制御部 10 入力部 11 出力部 21 入力解析部 22 ローカルメモリマップ生成部 23 オプション情報記憶部 24 デバイス構成記憶部 25 キャッシュ構成記憶部 26 ローカルメモリマップ記憶部 41 RTL生成部 41a、41b RTLテンプレート 41c コアRTL記述 41d ブロック接続部 41e 高位合成処理部 42 シミュレータカスタマイズ部 42a オプション命令・Cモデルテンプレート 42b シミュレータテンプレート 42c 再コンパイル部 42d 起動オプション情報抽出部 42e 組み合わせ処理部 43 コンパイラカスタマイズ部 43a オプション命令情報抽出部 43b オプション命令・機械命令関数宣言テンプレー
ト 43c 機械命令関数宣言抽出部 43d 結合処理部 44 アセンブラカスタマイズ部 45 検証ベクトル生成部 50 コンピュータシステム 51 ディスプレイ 52 フロッピーディスクドライブ 53 フロッピーディスク 54 光ディスクドライブ 55 光ディスク 56 キーボード 57 ドライブ装置 58 ROM 59 カートリッジ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 11/26 G06F 11/26 (72)発明者 大山 隆一郎 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 丹後田 愛 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 内田 勝也 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 Fターム(参考) 5B046 AA08 BA02 JA04 5B048 AA17 AA20 DD14

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 オプション命令が定義されたプロセッサ
    を含むシステムLSIの開発設計に利用されるコンピュ
    ータシステム上で動作する複数のソフトウェアから成る
    システムLSI開発装置であって、 システムLSIの開発設計に関わる可変項目定義情報に
    基づいて前記ソフトウェアを動作させ、システムLSI
    のハードウェア記述、検証環境および開発設計ツールを
    生成するシステムLSI開発環境生成部を具備し、 前記可変項目定義情報は、オプション命令情報、ユーザ
    定義モジュールおよびマルチプロセッサ構成に関する情
    報の少なくとも1つを含むことを特徴とするシステムL
    SI開発装置。
  2. 【請求項2】 ユーザ定義モジュールが指定された際に
    は、ユーザ定義モジュールの仕様に対応するハードウェ
    ア記述と前記プロセッサとを接続することにより、前記
    システムLSIのハードウェア記述を生成することを特
    徴とする請求項1に記載のシステムLSI開発装置。
  3. 【請求項3】 前記ユーザ定義モジュールの仕様に対応
    するハードウェア記述は、ユーザ定義モジュールの仕様
    に対応する動作記述を高位合成することにより生成する
    ことを特徴とする請求項2に記載のシステムLSI開発
    装置。
  4. 【請求項4】 マルチプロセッサ構成が指定された際に
    は、プロセッサ毎にハードウウェア記述を生成し、当該
    ハードウェア記述をバスで接続したハードウェア記述を
    生成することを特徴とする請求項1〜請求項3いずれか
    1項に記載のシステムLSI開発装置。
  5. 【請求項5】 前記設定ファイル生成部内に格納された
    可変項目定義情報の可能な全ての組み合わせについて、
    アプリケーションの性能を並列に評価する性能評価部を
    具備することを特徴とする請求項1〜4いずれか1項に
    記載のシステムLSI開発装置。
  6. 【請求項6】 前記性能評価部は、アプリケーションの
    コードサイズ、実行命令数、実行サイクル数、チップの
    ゲートサイズおよび消費電力の少なくとも1つを評価す
    ることを特徴とする請求項5に記載のシステムLSI開
    発装置。
  7. 【請求項7】 前記性能評価部による性能評価結果に基
    づいて、前記可変項目定義情報を変更する変更項目設定
    部を具備することを特徴とする請求項1〜請求項6いず
    れか1項に記載のシステムLSI開発装置。
  8. 【請求項8】 前記可変項目定義情報には、ユーザ定義
    の命令に関する情報、デバイスのオン/オフ情報、デバ
    イスのアドレス情報、デバイスのサイズ情報およびキャ
    ッシュのサイズ情報に関する情報の少なくとも1つが含
    まれることを特徴とする請求項1〜請求項7いずれか1
    項に記載のシステムLSI開発装置。
  9. 【請求項9】 オプション命令が定義されたプロセッサ
    を含むコンピュータシステム上で動作する複数のソフト
    ウェアを利用してシステムLSIを開発設計するシステ
    ムLSI開発方法であって、 システムLSIの開発設計に関わる可変項目定義情報を
    入力するステップと、 入力された可変項目定義情報に基づいて前記ソフトウェ
    アを動作させ、システムLSIのハードウェア、検証環
    境および開発設計ツールを生成するステップとを有し、 前記可変項目定義情報は、オプション命令情報、ユーザ
    定義モジュールおよびマルチプロセッサ構成に関する情
    報の少なくとも1つを含むことを特徴とするシステムL
    SI開発方法。
  10. 【請求項10】 ユーザ定義モジュールが指定された際
    には、ユーザ定義モジュールの仕様に対応するハードウ
    ェア記述と前記プロセッサとを接続することにより、前
    記システムLSIのハードウェア記述を生成することを
    特徴とする請求項9に記載のシステムLSI開発方法。
  11. 【請求項11】 前記ユーザ定義モジュールの仕様に対
    応するハードウェア記述は、ユーザ定義モジュールの仕
    様に対応する動作記述を高位合成することにより生成す
    ることを特徴とする請求項10に記載のシステムLSI
    開発方法。
  12. 【請求項12】 マルチプロセッサ構成が指定された際
    には、プロセッサ毎にハードウウェア記述を生成し、当
    該ハードウェア記述をバスで接続したハードウェア記述
    を生成することを特徴とする請求項9〜請求項11いず
    れか1項に記載のシステムLSI開発方法。
  13. 【請求項13】 入力された可変項目定義情報の可能な
    全ての組み合わせについて、アプリケーションの性能を
    並列に評価するステップを有することを特徴とする請求
    項9〜請求項12いずれか1項に記載のシステムLSI
    開発方法。
  14. 【請求項14】 前記評価処理において、アプリケーシ
    ョンのコードサイズ、実行命令数、実行サイクル数、チ
    ップのゲートサイズおよび消費電力の少なくとも1つを
    評価することを特徴とする請求項13に記載のシステム
    LSI開発方法。
  15. 【請求項15】 前記性能評価結果に基づいて、前記可
    変項目定義情報を変更するステップを有することを特徴
    とする請求項9〜請求項14いずれか1項に記載のシス
    テムLSI開発方法。
  16. 【請求項16】 前記可変項目定義情報には、ユーザ定
    義の命令に関する情報、デバイスのオン/オフ情報、デ
    バイスのアドレス情報、デバイスのサイズ情報およびキ
    ャッシュのサイズ情報に関する情報の少なくとも1つが
    含まれることを特徴とする請求項9〜請求項15いずれ
    か1項に記載のシステムLSI開発方法。
JP2001027432A 2001-02-02 2001-02-02 システムlsi開発装置およびシステムlsi開発方法 Pending JP2002230065A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001027432A JP2002230065A (ja) 2001-02-02 2001-02-02 システムlsi開発装置およびシステムlsi開発方法
US09/865,289 US6634017B2 (en) 2001-02-02 2001-05-29 System LSI development apparatus and the method thereof for developing a system optimal to an application
EP01114837A EP1229461A3 (en) 2001-02-02 2001-06-28 System LSI development apparatus and the method thereof for developing a system optimal to an application
US10/621,449 US7340692B2 (en) 2001-02-02 2003-07-18 System LSI development apparatus and the method thereof for developing a system optimal to an application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001027432A JP2002230065A (ja) 2001-02-02 2001-02-02 システムlsi開発装置およびシステムlsi開発方法

Publications (1)

Publication Number Publication Date
JP2002230065A true JP2002230065A (ja) 2002-08-16

Family

ID=18892088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001027432A Pending JP2002230065A (ja) 2001-02-02 2001-02-02 システムlsi開発装置およびシステムlsi開発方法

Country Status (3)

Country Link
US (2) US6634017B2 (ja)
EP (1) EP1229461A3 (ja)
JP (1) JP2002230065A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062400B2 (en) 2003-11-27 2006-06-13 Kabushiki Kaisha Toshiba Apparatus and program for designing system LSI, and method for verifying integrity of the program for designing system LSI
JP2007286671A (ja) * 2006-04-12 2007-11-01 Fujitsu Ltd ソフトウェア/ハードウェア分割プログラム、および分割方法。
JP2008171155A (ja) * 2007-01-10 2008-07-24 Fujitsu Ten Ltd シミュレーション装置
JP2008217071A (ja) * 2007-02-28 2008-09-18 Matsushita Electric Ind Co Ltd 高位合成装置および高位合成方法
US7536534B2 (en) 2003-02-27 2009-05-19 Nec Electronics Corporation Processor capable of being switched among a plurality of operating modes, and method of designing said processor
WO2009084570A1 (ja) * 2007-12-28 2009-07-09 Nec Corporation コンパイラ組み込み関数追加装置
JP2009271649A (ja) * 2008-05-02 2009-11-19 Fujitsu Ltd データ処理装置、データ処理方法およびデータ処理プログラム
US7716529B2 (en) 2006-05-26 2010-05-11 Canon Kabushiki Kaisha System LSI
JP2010286898A (ja) * 2009-06-09 2010-12-24 Toyota Motor Corp マルチスレッド実行装置、マルチスレッド実行方法
JP2013080406A (ja) * 2011-10-05 2013-05-02 Fujitsu Ltd コンパイル装置、情報処理システム、コンパイル方法、コンパイルプログラム、記録媒体

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002230065A (ja) * 2001-02-02 2002-08-16 Toshiba Corp システムlsi開発装置およびシステムlsi開発方法
US7627462B2 (en) * 2001-11-27 2009-12-01 Arm Limited Hardware simulation using a test scenario manager
US6782518B2 (en) * 2002-03-28 2004-08-24 International Business Machines Corporation System and method for facilitating coverage feedback testcase generation reproducibility
US7099813B2 (en) * 2002-04-09 2006-08-29 Arm Limited Simulating program instruction execution and hardware device operation
JP2003316838A (ja) * 2002-04-19 2003-11-07 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体
JP4202673B2 (ja) * 2002-04-26 2008-12-24 株式会社東芝 システムlsi開発環境生成方法及びそのプログラム
GB0215033D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Instruction set translation method
JP2004054834A (ja) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
FR2843214B1 (fr) * 2002-07-30 2008-07-04 Bull Sa Procede de verification fonctionnelle d'un modele de circuit integre pour constituer une plate-forme de verification, equipement emulateur et plate-forme de verification.
US6986110B1 (en) * 2003-01-02 2006-01-10 Hewlett-Packard Development Company, L.P. Automated method and system for backtracing of instruction parameters from specified instruction in test cases
JP2005063136A (ja) * 2003-08-12 2005-03-10 Toshiba Corp 半導体集積回路の設計装置、設計方法、及び設計プログラム
FR2861481B1 (fr) * 2003-10-27 2006-01-21 Patrice Manoutsis Atelier et procede de conception d'un reseau prediffuse programmable et support d'enregistrement pour leur mise en oeuvre
JP4251964B2 (ja) * 2003-11-10 2009-04-08 富士通マイクロエレクトロニクス株式会社 検証装置、検証方法およびプログラム
JP4105102B2 (ja) * 2004-01-09 2008-06-25 株式会社東芝 パイプラインプロセッサ生成装置及びパイプラインプロセッサ生成方法
JP2005216177A (ja) * 2004-01-30 2005-08-11 Toshiba Corp コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法
US20060136188A1 (en) * 2004-12-22 2006-06-22 Lacey David J Capturing curation data
US7392489B1 (en) * 2005-01-20 2008-06-24 Altera Corporation Methods and apparatus for implementing application specific processors
JP2006243838A (ja) * 2005-02-28 2006-09-14 Toshiba Corp プログラム開発装置
US8156452B1 (en) * 2005-06-02 2012-04-10 Altera Corporation Method and apparatus for importing hardware description language into a system level design environment
US7809936B2 (en) * 2006-08-02 2010-10-05 Freescale Semiconductor, Inc. Method and apparatus for reconfiguring a remote device
US7539953B1 (en) * 2006-12-05 2009-05-26 Xilinx, Inc. Method and apparatus for interfacing instruction processors and logic in an electronic circuit modeling system
US8234624B2 (en) * 2007-01-25 2012-07-31 International Business Machines Corporation System and method for developing embedded software in-situ
US8122399B2 (en) 2008-08-28 2012-02-21 International Business Machines Corporation Compiler for closed-loop 1×N VLSI design
US8136062B2 (en) 2008-08-28 2012-03-13 International Business Machines Corporation Hierarchy reassembler for 1×N VLSI design
US8132134B2 (en) * 2008-08-28 2012-03-06 International Business Machines Corporation Closed-loop 1×N VLSI design system
US7966598B2 (en) * 2008-08-29 2011-06-21 International Business Machines Corporation Top level hierarchy wiring via 1×N compiler
US8156458B2 (en) * 2008-08-29 2012-04-10 International Business Machines Corporation Uniquification and parent-child constructs for 1xN VLSI design
US8141016B2 (en) * 2008-08-29 2012-03-20 International Business Machines Corporation Integrated design for manufacturing for 1×N VLSI design
US8229725B1 (en) * 2008-09-29 2012-07-24 Xilinx, Inc. Method and apparatus for modeling processor-based circuit models
US20100107130A1 (en) * 2008-10-23 2010-04-29 International Business Machines Corporation 1xn block builder for 1xn vlsi design
US8966211B1 (en) * 2011-12-19 2015-02-24 Emc Corporation Techniques for dynamic binding of device identifiers to data storage devices
US8813018B1 (en) * 2012-10-05 2014-08-19 Altera Corporation Method and apparatus for automatically configuring memory size
US9183144B2 (en) * 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9021439B2 (en) * 2013-04-25 2015-04-28 Centurylink Intellectual Property Llc Green software applications
US9361097B2 (en) 2013-10-18 2016-06-07 Via Technologies, Inc. Selectively compressed microcode
US9372696B2 (en) 2013-10-18 2016-06-21 Via Technologies, Inc. Microprocessor with compressed and uncompressed microcode memories
US9436617B2 (en) * 2013-12-13 2016-09-06 Texas Instruments Incorporated Dynamic processor-memory revectoring architecture
WO2016162970A1 (ja) * 2015-04-08 2016-10-13 三菱電機株式会社 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム
US10210298B2 (en) * 2015-11-24 2019-02-19 Altera Corporation Embedded memory blocks with adjustable memory boundaries
US11550980B1 (en) * 2021-06-14 2023-01-10 Cadence Design Systems, Inc. System and method for generating power-aware electronics

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US46391A (en) * 1865-02-14 Improvement in machines for mortising plane-stocks
US5423023A (en) * 1990-06-25 1995-06-06 Prime Computer, Inc. Method and apparatus for providing a user configurable system which integrates and manages a plurality of different task and software tools
TW256013B (en) * 1994-03-18 1995-09-01 Hitachi Seisakusyo Kk Installation board
US5493508A (en) * 1994-06-01 1996-02-20 Lsi Logic Corporation Specification and design of complex digital systems
US5592679A (en) * 1994-11-14 1997-01-07 Sun Microsystems, Inc. Apparatus and method for distributed control in a processor architecture
JP2869379B2 (ja) 1996-03-15 1999-03-10 三菱電機株式会社 プロセッサ合成システム及びプロセッサ合成方法
US6006022A (en) 1996-11-15 1999-12-21 Microsystem Synthesis, Inc. Cross-linked development and deployment apparatus and method
US6247084B1 (en) * 1997-10-08 2001-06-12 Lsi Logic Corporation Integrated circuit with unified memory system and dual bus architecture
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
US6135647A (en) * 1997-10-23 2000-10-24 Lsi Logic Corporation System and method for representing a system level RTL design using HDL independent objects and translation to synthesizable RTL code
US6574590B1 (en) * 1998-03-18 2003-06-03 Lsi Logic Corporation Microprocessor development systems
US6134710A (en) * 1998-06-26 2000-10-17 International Business Machines Corp. Adaptive method and system to minimize the effect of long cache misses
US6862563B1 (en) * 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
IL142342A (en) 1998-10-14 2005-12-18 Arc Internat Plc Method and apparatus for managing the configuration and functionality of a semiconductor design
AU3484100A (en) 1999-02-05 2000-08-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor andmethod for the same
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6864710B1 (en) * 1999-12-30 2005-03-08 Cypress Semiconductor Corp. Programmable logic device
JP2001249824A (ja) * 2000-03-02 2001-09-14 Hitachi Ltd 論理エミュレーションプロセッサおよびそのモジュールユニット
JP2001344153A (ja) * 2000-05-30 2001-12-14 Nec Corp マルチプロセッサシステムのキャッシュメモリ制御装置
JP2002073719A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 回路動作モデル記述の生成方法および論理設計検証装置
JP2002230065A (ja) * 2001-02-02 2002-08-16 Toshiba Corp システムlsi開発装置およびシステムlsi開発方法
JP4105102B2 (ja) * 2004-01-09 2008-06-25 株式会社東芝 パイプラインプロセッサ生成装置及びパイプラインプロセッサ生成方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536534B2 (en) 2003-02-27 2009-05-19 Nec Electronics Corporation Processor capable of being switched among a plurality of operating modes, and method of designing said processor
US7062400B2 (en) 2003-11-27 2006-06-13 Kabushiki Kaisha Toshiba Apparatus and program for designing system LSI, and method for verifying integrity of the program for designing system LSI
JP2007286671A (ja) * 2006-04-12 2007-11-01 Fujitsu Ltd ソフトウェア/ハードウェア分割プログラム、および分割方法。
US7908592B2 (en) 2006-04-12 2011-03-15 Fujitsu Semiconductor Limited Software/hardware partitioning program and method
US7716529B2 (en) 2006-05-26 2010-05-11 Canon Kabushiki Kaisha System LSI
JP2008171155A (ja) * 2007-01-10 2008-07-24 Fujitsu Ten Ltd シミュレーション装置
JP2008217071A (ja) * 2007-02-28 2008-09-18 Matsushita Electric Ind Co Ltd 高位合成装置および高位合成方法
WO2009084570A1 (ja) * 2007-12-28 2009-07-09 Nec Corporation コンパイラ組み込み関数追加装置
JP2009271649A (ja) * 2008-05-02 2009-11-19 Fujitsu Ltd データ処理装置、データ処理方法およびデータ処理プログラム
JP2010286898A (ja) * 2009-06-09 2010-12-24 Toyota Motor Corp マルチスレッド実行装置、マルチスレッド実行方法
JP2013080406A (ja) * 2011-10-05 2013-05-02 Fujitsu Ltd コンパイル装置、情報処理システム、コンパイル方法、コンパイルプログラム、記録媒体

Also Published As

Publication number Publication date
US6634017B2 (en) 2003-10-14
US20050076314A1 (en) 2005-04-07
US7340692B2 (en) 2008-03-04
EP1229461A2 (en) 2002-08-07
EP1229461A3 (en) 2008-10-22
US20020147957A1 (en) 2002-10-10

Similar Documents

Publication Publication Date Title
JP2002230065A (ja) システムlsi開発装置およびシステムlsi開発方法
JP4202673B2 (ja) システムlsi開発環境生成方法及びそのプログラム
TW539965B (en) Automated processor generation system for designing a configurable processor and method for the same
US8875068B2 (en) System and method of customizing an existing processor design having an existing processor instruction set architecture with instruction extensions
US20050049843A1 (en) Computerized extension apparatus and methods
Wang et al. Accurate source-level simulation of embedded software with respect to compiler optimizations
US11513818B1 (en) Method, product, and system for integrating a hardware accelerator with an extensible processor
Schliebusch et al. Optimized ASIP synthesis from architecture description language models
US9250900B1 (en) Method, system, and computer program product for implementing a microprocessor with a customizable register file bypass network
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
JP4801210B2 (ja) 拡張プロセッサを設計するシステム
Yoshiya et al. Design Verification Methodology of Pipelined RISC-V Processor Using C2RTL Framework
Cai et al. Introduction of design-oriented profiler of Specfic language
Goli et al. Design Understanding Methodology
Himmelbauer et al. The Vienna Architecture Description Language
Mathaikutty et al. MMV: A metamodeling based microprocessor validation environment
Chattopadhyay et al. Processor Modeling and Design Tools
Dingankar et al. MMV: Metamodeling Based Microprocessor Valiation Environment
Wahlen C Compiler Aided Design of Application-Specific Instruction-Set Processors Using the Machine Description Language LISA
Pees Modeling embedded processors and generating fast simulators using the machine description language LISA
Wolf CAD techniques for embedded systems-on-silicon
Hohenauer et al. Processor Designer
Wieferink et al. Processor Modeling
Wen et al. Retargetable Exploration Methodology for Heterogeneous Multi-Core SOC

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080527

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080609

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080704