JP2003323463A - システムlsi開発環境生成方法及びそのプログラム - Google Patents
システムlsi開発環境生成方法及びそのプログラムInfo
- Publication number
- JP2003323463A JP2003323463A JP2002127381A JP2002127381A JP2003323463A JP 2003323463 A JP2003323463 A JP 2003323463A JP 2002127381 A JP2002127381 A JP 2002127381A JP 2002127381 A JP2002127381 A JP 2002127381A JP 2003323463 A JP2003323463 A JP 2003323463A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- system lsi
- development environment
- compiler
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
環境を十分なフレキシビリティで、簡単に生成すること
が困難であった。 【解決手段】 システムLSI開発環境生成方法は、コ
ンフィグレーション指定ファイルからコンパイラを構築
するコンパイラカスタマイズ部、アセンブラを構築する
アセンブラカスタマイズ部、及びシミュレータを構築す
るシミュレータ生成部を含み、コンフィグレーション指
定ファイルは、命令を実行するハードウェアの指定を含
む。
Description
ラブル(configurable)プロセッサを含むシステムLS
Iの設計開発に利用される開発環境(development envi
ronment)に係り、特に、システムLSIの設計開発環
境を生成する方法及びそのプログラムに関する。
用されるLSIに対するニーズが多様化している。さら
に、このLSIの市場サイクルは短期化している。この
ため、アプリケーションに最適なLSIを短期に開発す
るためのシステムLSIの設計開発環境が望まれてい
る。ここで、開発環境とは、システムLSIを構築する
際に必要となるハードウェアやシステム開発支援ツール
などのソフトウェアを意味する。
した場合、ハードウェアの設計コストは殆んどゼロに等
しい。しかし、このような構成のLSIはアプリケーシ
ョンに最適化されていないため、アプリケーションの性
能をフルに引き出すことが困難である。このため、最近
では、命令やメモリ構成等が選択可能なコンフィグラブ
ル・プロセッサが提供されている。また、コンフィグラ
ブル・プロセッサの提供者は、コンフィグレーションを
指定して論理合成可能なハードウェア記述を出力するシ
ステムを提供している。このようなプロセッサ及びシス
テムによれば、オプション命令やメモリサイズを指定す
ることによって、アプリケーションに最適な構成のプロ
セッサを短期間で開発することが可能となる。
コンパイラやシミュレータ等のソフトウェア開発ツール
も変更しなければならない。このため、コンフィグレー
ションを指定することにより、ハードウェア記述と同時
に、ソフトウェア開発ツールを生成するシステムも提供
されるようになっている。このようなシステムによれ
ば、ソフトウェア開発ツールの設計に要する労力及び時
間を大幅に削減することができる。
ced Instruction Set Computer)コアに対してコンフィ
グラブルなDSP(Digital Signal Processor)コプロ
セッサが開発されている。しかし、このDSPコプロセ
ッサは予め用意されたISA(Industry Standard Arch
itecture)のみ使用可能とされ、それ以外は使用できな
い。また、新たな命令を追加できるコンフィグラブル・
プロセッサも有るが、固定されたタイプの命令のみが追
加可能である。このため、例えばVLIW(Very Long
Instruction Word)モード等のアーキテクチャに対応す
ることが困難であり、フレキシビリティが十分ではな
い。
えばVerilogのようなハードウェア記述言語(HDL:H
ardware Description Language)が用いられており、効
率良く命令を追加することができない。
開発環境を生成することが困難であった。
れたものであり、その目的とするところは、高性能なハ
ードウェアを有するLSIの開発環境を十分なフレキシ
ビリティで、簡単に生成することが可能なシステムLS
I開発環境生成方法及びそのプログラムを提供しようと
するものである。
開発環境生成方法は、上記課題を解決するため、入力さ
れたコマンドを解析し、前記解析したコマンドに応じ
て、システムLSIを開発するためのコンパイラを構築
するコンパイラカスタマイズ部、アセンブラを構築する
アセンブラカスタマイズ部、及びシミュレータを構築す
るシミュレータ生成部を生成する。
ステムLSIのコンフィグレーションが記述されたコン
フィグレーション指定ファイルの情報を入力し、且つコ
ンフィグレーション指定ファイルが命令を実行するハー
ドウェアの指定を含んでいることである。ここで、コン
フィグレーション指定ファイルは、特に、ユーザ定義命
令の命令記述であり、具体的には、以下に述べるアーキ
テクチャ・データ・ベース・ファイルである。
成プログラムは、コンピュータに、入力されたコマンド
を解析させ、前記解析したコマンドに応じて、命令を実
行するハードウェアの指定を含み、システムLSIのコ
ンフィグレーションが記述されたコンフィグレーション
指定ファイルの情報に基づき、システムLSIを開発す
るためのコンパイラを構築するコンパイラカスタマイズ
部、アセンブラを構築するアセンブラカスタマイズ部、
及びシミュレータを構築するシミュレータ生成部を生成
させることを特徴とする。
て図面を参照して説明する。
態に適用されるシステムLSI開発装置について概略的
に説明する。
は、システムLSI開発装置1を示している。システム
LSI開発装置1は、設定ファイル生成部2、ユーザ定
義モジュール・ユーザ定義命令記憶部3、システムLS
I開発環境生成部4、性能評価部5、終了判定部6、変
更項目設定部7、入出力インターフェース部8及び制御
部9を有している。
に各種情報を入力するための入力部10と、装置1から
の各種情報を出力するための出力部11とが接続されて
いる。入力部10としては、例えばキーボード、マウス
ポインタ、テンキー、タッチパネル等を用いることがで
きる。出力部11としては、例えばディスプレイ装置や
印刷装置等が適用される。
発装置1内の各部の構成を示している。
定ファイル生成部2の構成を示している。設定ファイル
生成部2は、入力解析部21、ローカルメモリマップ生
成部22、オプション情報記憶部23、デバイス構成記
憶部24、キャッシュ構成記憶部25及びローカルメモ
リマップ記憶部26を備えている。設定ファイル生成部
2は、システムLSIの設計上のコンフィグレーション
を記述したコンフィグレーション指定ファイル(以下に
おいて、アーキテクチャ・データ・ベース・ファイルと
も言う)、可変値設定情報、最優先項目設定情報、目標
性能指定情報、及び変更項目設定部7から供給される変
更項目リスト情報に基づいて、システムLSI設計上の
コンフィグレーションを生成し、格納する。前記目標性
能指定情報は、ハードウェア性能、ソフトウェア性能の
一方又は両方を含む。ハードウェアの性能指標として
は、面積、周波数、消費電力を含む。ソフトウェアの性
能指標としては、コードサイズ、実効命令数、実行サイ
クル数を含む。
ョン指定ファイルの内容を解析し、コンフィグレーショ
ン指定ファイル内に記述されたコンフィグレーションの
内容をオプション情報記憶部23、デバイス構成記憶部
24、及びキャッシュ構成記憶部25の各部に分割す
る。
には、オプション命令の有無、デバイスの有無、キャッ
シュの有無、キャッシュサイズ、ユーザ定義命令、ユー
ザ定義ハードウェアモジュール、LSI内部のメモリマ
ップ、マルチプロセッサ構成(マルチプロセッサの数な
ど)等の情報を記述するものとする。なお、ユーザ定義
命令やユーザ定義ハードウェアモジュールの記述部分に
は、ユーザ定義命令やユーザ定義モジュールを記述した
ファイル名の記憶位置(この実施の形態においては、ユ
ーザ定義モジュール、ユーザ定義命令記憶部3の位置)
を絶対パスや相対パス等の記述によって指定する。
は、命令メモリ、データメモリ、コプロセッサが含ま
れ、命令メモリ、データメモリの可変項目には、サイ
ズ、アドレスが含まれる。前記メモリマップにおいて、
メモリマップには、外部メモリ領域、内部メモリ領域、
入出力領域が含まれ、外部メモリ領域には、キャッシュ
アクセス領域の指定項目も含まれる。また、各メモリ領
域にはレイテンシ情報も含まれる。
からシステムLSI設計上のコンフィグレーションを指
定する際、ユーザは、設定ファイル生成部2内の各記憶
部23〜26で定義されている可変値の中から1つの値
を選択する。この選択した値を、例えば図3に示すよう
なコンフィグレーション指定ファイル内に記述する。
述において、内蔵データメモリのサイズは、例えば1、
2、4、8、16、32[KB]のいずれかを選択する
ことが可能である。このSIZE記述を省略した場合、
サイズは、デフォルト値の8[KB]になることを示し
ている。
蔵データメモリのサイズ”;また、以下に示すISA_
DEFINE記述においては、ユーザ定義命令のISA
定義ファイル名として任意の文字列を記述しなければな
らないことを示す。
ーザ定義命令のISA定義ファイル名”;なお、上記の
コンフィグレーションの設定作業は、入出力インタフェ
イス部8を介した対話的な処理によって行なうようにし
ても良い。コンフィグレーションの設定を対話的に行な
うようにすることにより、ユーザは、コンフィグレーシ
ョン指定ファイルの文法等を意識せずに、コンフィグレ
ーションを容易に設定することができる。このため、コ
ンフィグレーションの設定に要する時間を直接ファイル
に記述する場合と比べて短縮することができる。さら
に、全てのコンフィグレーションの設定を対話的に処理
できる。このため、コンフィグレーションの1つを設定
し忘れる等の間違いを防止することができる。
定するようにしても良い。コンフィグレーションに可変
値を設定した場合、設定ファイル生成部2は、基本設
定、可変値の測定用に作られたテンプレート、ユーザが
設定した値のいずれかを用いて自動的に他のコンフィグ
レーションの設定値を導出するようにする。コンフィグ
レーションに可変値を設定することにより、ユーザは、
コンフィグレーションの可変範囲に応じた複数の開発環
境、検証環境を同時に得ることができる。このため、L
SI開発サイクルの短縮を実現することが可能となる。
先項目を設定するようにしても良い。コンフィグレーシ
ョンの中で最優先項目が設定された場合、設定ファイル
生成部2は、最優先項目以外の部分の設定値について、
最優先項目が最適となるようなコンフィグレーションを
生成する。この生成には、基本設定、及び最優先項目に
基づいてテンプレート又はユーザが指定した設定値が使
用される。コンフィグレーションの中に最優先項目を指
定することにより、ユーザはシステムLSIの構成を認
識することなく、優先項目に適した構成を開発環境、検
証環境を作成し、それを評価できる。
ーカルメモリマップ生成部22は、コンフィグレーショ
ン指定ファイルから指定されるグローバルマップと、シ
ステムLSI内の個々のプロセッサのローカルメモリ情
報とを統合し、システムLSI内のプロセッサ毎のロー
カルメモリマップを生成する。前記グローバルマップ
は、例えば図4(a)に示すような全プロセッサに共通
のメモリ領域である。また、前記ローカルメモリ情報と
しては、例えば命令メモリ、データメモリ、命令キャッ
シュ、データキャッシュを含む。図4(b)は、生成さ
れたローカルメモリマップの一例を示している。この生
成されたローカルメモリマップは、ローカルメモリマッ
プ記憶部26内に格納される。
は、個々のローカルメモリ毎に予約されているグローバ
ルマップ中のメモリ領域に対して、コンフィグレーショ
ン指定ファイルにより指定されるメモリサイズを反映さ
せることによって生成することができる。また、予めグ
ローバルマップ中に各プロセッサのシャドウメモリ情報
を指定することにより、各プロセッサのローカルマップ
に他のプロセッサのローカルメモリを含むシャドウメモ
リを作ることもできる。
21によるコンフィグレーション指定ファイルの解析結
果に基づいて、システムLSIに内蔵されるプロセッサ
の命令セット内のオプション命令のON/OFF(オン
/オフ)の種別に関する情報を格納する。
1によるコンフィグレーション指定ファイルの解析結果
に基づいて、システムLSIに内蔵されるデバイスのO
N/OFFの種別に関する情報とそのサイズに関する情
報、アドレス情報、プロセッサの命令メモリやデータメ
モリに関する情報、及びコプロセッサ等のオプションハ
ードウェアに関する情報を格納する。
ュ構成記憶部25は、入力解析部21によるコンフィグ
レーション指定ファイルの解析結果に基づいて、システ
ムLSIのキャッシュのON/OFFの種別、キャッシ
ュのタイプ(direct, 2-way, 4-way, n-way)に関する
情報、及びサイズに関する情報を格納する。
ーカルメモリマップ記憶部26は、ローカルメモリマッ
プ生成部22が生成したローカルメモリマップに関する
情報を格納する。
記憶部の構成)ユーザ定義モジュール・ユーザ定義命令
記憶部3は、ユーザ定義のハードウェアモジュール及び
システムLSIに内蔵するプロセッサの命令セットにお
けるユーザ定義命令に関する情報を格納する。ここで、
ユーザ定義のハードウェアモジュールに関する情報はR
TL(Register Transfer Level)記述又は動作記述、及
び命令の動作に関する情報は、Cモデル又はC++モデ
ルで記述して記憶部3内に格納することが望ましい。動
作記述とCモデル又はC++モデル記述は同一でも良
い。また、ユーザ定義命令に関する情報は、コンフィグ
レーション指定ファイルから指定される、図4(c)に
示すようなISA定義ファイルに記述して格納すること
が望ましい。
システムLSI開発環境生成部4は、図5に示すよう
に、RTL生成部41、シミュレータカスタマイズ部4
2、コンパイラカスタマイズ部43、アセンブラカスタ
マイズ部44及び検証ベクトル生成部45を備えてい
る。このシステムLSI開発環境生成部4は、設定ファ
イル生成部2内に格納されているコンフィグレーション
の全ての組み合わせについて、システムLSIのハード
ウェア、検証環境及び開発設計ツールを生成する。
の内部構成について詳細に説明する。
は、設定ファイル生成部2の記憶部内に記憶されている
コンフィグレーションに基づいて、システムLSIに内
蔵されるプロセッサのRTL記述を生成する。
している。ブロック接続部41dは、デバイス構成記憶
部24とキャッシュ構成記憶部25内に格納されたコン
フィグレーションを参照して、RTLテンプレート41
a、41bからユーザにより設定されたコンフィグレー
ションに対応するテンプレートを選択する。高位合成処
理部41eは、ユーザ定義モジュール・ユーザ定義命令
記憶部6内に格納されたユーザ定義命令又はユーザ定義
モジュールの仕様である動作記述を高位合成することに
よりRTL記述を生成する。さらに、接続部41dは、
プロセッサコア部のRTL記述41cに対して、前記選
択したRTLテンプレートと、高位合成処理部41eか
らのRTL記述とを接続することにより、プロセッサの
RTL記述を生成する。なお、記憶部3内の仕様がRT
L記述である場合、そのままインターフェース信号が合
うように接続する。
場合、ブロック接続部41dは、複数のプロセッサ記述
を生成し、それらをバスで接続したマルチプロセッサの
RTL記述を生成するものとする。
内に含まれる命令メモリ、データメモリ、オプションハ
ードウェア、命令キャッシュ及びデータキャッシュは、
ユーザが選択可能なメモリサイズの各々についてRTL
記述が予め用意されている。これらRTL記述は、指定
されたコンフィグレーションに応じて選択的に接続可能
とされている。また、オプション命令については、オプ
ション命令に対応するハードウェアのテンプレートをオ
プション命令のON/OFF全ての組み合わせについて
用意する。
ている。図7において、オプション命令ユニットのRT
Lテンプレートは、除算オプション命令(DIV)のO
N/OFF、及び最大最小値オプション命令(MINM
AX)のON/OFFの4通りの組み合わせについて、
RTL記述がそれぞれテンプレートとして用意されてい
る。これらテンプレートは、デバイス構成記憶部24と
キャッシュ構成記憶部25内に格納されたコンフィグレ
ーションに合わせて、コアRTL記述に選択的に接続さ
れる。また、コプロセッサ等のオプションハードウェア
についても、コンフィグレーションで有効と指定されて
いる場合、既定義のRTL記述がコアRTL記述に接続
される。さらに、ユーザ定義のハードウェアがある場
合、ユーザが記述したハードウェア記述がコアRTL記
述に接続される。
1は、設定されたコンフィグレーションに対応したプロ
セッサのRTL記述を生成する。例えば、プロセッサ1
を最初に構築する場合、ユーザは、コンフィグレーショ
ンのパラメータ指定として、プロセッサコアに4[K
B]の命令メモリと、4[KB]のデータメモリを追加
すれば、プロセッサ1のRTL記述を自動的に得ること
ができる。
ザは、コンフィグレーションのパラメータ指定として、
プロセッサコアに例えば、2[KB]の命令メモリ、4
[KB]のデータメモリ、2[KB]の命令キャッシ
ュ、4[KB]のデータキャッシュを追加する。さら
に、コプロセッサと幾つかのオプション命令とユーザ定
義命令のRTL記述を追加することにより、プロセッサ
2のRTL記述を得ることができる。
ておくのではなく、可変項目をパラメータ表現したRT
Lテンプレートにコンフィグレーションで設定された値
を反映させることによっても同等の効果を得ることがで
きる。さらに、このようなパラメータ化されたRTLテ
ンプレートは、メモリ、キャッシュ等の部分モジュール
毎でも良く、それらを含んだプロセッサ全体のものでも
良い。また、全てのパラメータを包含した1つのRTL
テンプレートでも良い。
8は、シミュレータカスタマイズ部42の一例を示して
いる。このシミュレータカスタマイズ部42は、コンフ
ィグレーションに沿った命令動作を実行するシミュレー
タを生成する。
シミュレータテンプレート42aにユーザ定義モジュー
ル・ユーザ定義命令記憶部3内に格納されたユーザ定義
ハードウェアのCモデルを組み込んで再コンパイルする
ことにより、C又はC++のシミュレータを再構築す
る。また、起動オプション情報抽出部42dは、設定フ
ァイル生成部内の前記デバイス構成記憶部24とキャッ
シュ構成記憶部25に格納されているデータを参照し
て、起動時のオプションを指定するシミュレータ起動オ
プションファイル(図9(a)参照)を生成する。
部42cから供給される再構築したシミュレータと、起
動オプション情報抽出部42dから供給されるシミュレ
ータ起動オプションファイルとを組み合わせることによ
り、コンフィグレーションに従った命令動作を実行する
シミュレータを生成する。
時に、デバッグ指令の実行結果を出力する手段を備える
ことが望ましい。従来、実行途中で誤りが起きた場合、
エラーを出力するアサーションエラープログラム等があ
る。しかし、デバイスが正常に実行している時、途中経
過を調べるためには、途中結果を出力する命令をアプリ
ケーションに埋め込んでおくか、デバッガ等で実行を停
止させて途中経過を読み取るしがなかった。これに対し
て、起動時に指定されるアドレスを通過した際に所定の
情報を出力するようにすれば、シミュレータでアプリケ
ーションを実行している途中に途中経過を調べることが
可能となる。例えば、次に示すようなコマンドでシミュ
レータを起動する。
at 0x1200 ここで、simは、システムLSIのシミュレータを示
し、 -load test。hexは、test。hexという16進数の
ファイルをロードするという命令、 -printx mem(0x40
0) at 0x1200は、0x1200番地を通過したときにメモリの
0x400番地の内容を出力する命令を示す。
定された指示を記憶し、プログラムカウンタが0x1200番
地を通過する度に0x400番地の内容を16進数でコンソ
ールに出力する。このとき、アプリケーションプログラ
ムには観測用のコードが埋め込まれているわけではな
い。このため、シミュレーションは、命令数やサイクル
数等の統計情報には全く影響を及ぼすことなく、アプリ
ケーションプログラムの実行を観測できる。また、特定
アドレスで実行を停止させ、人手を介してメモリの値を
読み出し表示させる等の作業が必要ない。このため、統
計情報を正確に取りながら、特に注目したい途中結果を
確認しながらアプリケーションプログラムのシミュレー
ションをすることができる。このため、効率良くLSI
を開発することができる。
領域に対してメモリアクセスが起きた場合、実行を停止
することが望ましい。設定されたコンフィグレーション
に従ってシミュレータを起動した時、使用可能なメモリ
が明確に与えられている。仮に、基板上で実装されてい
ない領域のメモリをアクセスすると、例えばバスエラー
となり、それ以後の動作は保証されない。動作が保証さ
れないプログラムは、シミュレータ実行時に間違いを指
摘することにより、早期に修正しておく必要がある。そ
こで、シミュレータは存在するメモリ領域を指定し、明
示的に指定されない領域はアクセス禁止とする。さら
に、シミュレータは、このアクセス禁止領域がアクセス
された場合、警告しプログラムの動作を停止する。ま
た、シミュレータは対話モード(デバッグモード)を有
し、対話モードに移行した場合、どこでエラーが発生し
たかが解析できるようになっている。すなわち、シミュ
レータがデバッガと通信して動作している場合、シミュ
レーション動作を中断してデバッガのコマンド待ちに移
行する。さらに、無効な領域をアクセスしたというエラ
ーを表示し、プログラムの誤りを早期に確実にユーザに
伝える。
ドレス信号線の接続を省略されて構成される場合があ
る。この場合、ターゲットでアドレスを間違えたプログ
ラムを実行してもバスエラーにはならない。しかし、ア
クセスが書き込みであった場合、意図しないアドレスの
内容を書き換えてしまい、後の実行結果が期待通りにな
らないことがある。この間違ったプログラムをRTLシ
ミュレータで実行した場合、誤りを直ぐに発見すること
ができない。しかし、シミュレータに正しいアドレスの
みをアクセスできるよう、正確なマッピング情報を与え
て実行させた場合、指定範囲以外のアドレスをアクセス
したことを即座に警告できる。しがたって、ユーザは間
違ったプログラムを早期に検出することができ、無駄な
解析時間を節約できる。このため、開発サイクルの短縮
を図ることができる。
4とキャッシュ構成記憶部25内に格納されているデー
タを参照して、図9(b)に示すようなデバッガ起動オ
プションファイルを生成する。デバッガ起動オプション
ファイルを利用することにより、デバッガはコンフィグ
レーションに従った動作を行なうことが可能となる。
報を仮想的なレジスタ若しくは変数として読み出す手段
を有することが望ましい。デバッガは、$profileという
変数を特殊な変数として予約してある。統計情報は、領
域毎に管理されている。この統計情報は、デバッガの変
数読み出しコマンドprintによって表示される。例えば
領域の3番目の情報を表示させるためには、print $pro
file[3]のように入力する。
令をアドレスと共にシンボルやソース行と同等なデバッ
グ情報として出力する手段を有することが望ましい(タ
ーゲットの機械命令には反映されない)。コンパイラに
は、シミュレータ等で標準出力に途中結果等を出力する
ための拡張が施されている。#pragma cosoleoutに続く
文は、ターゲットの機械語には翻訳されず、シンボル名
や行番号と同様、デバッグ情報としてファイルに格納さ
れる。シミュレータは、デバッグ情報付きのオブジェク
トファイルを読み込んだとき、#pragma文が定義された
アドレス情報を記憶すると共に、デバッグ出力情報であ
るprintf(“a=%d\n”,a)を記憶する。シミュレータが該
当アドレスを実行しようとしたときに、デバッグ情報を
出力しなければならないと判断し、printf文をパーサー
に送りデバッグ情報を出力する。
を与えずに、シミュレータ実行時にデバッグ情報を出力
し、シミュレータの実行も中断せずに内容を確認するこ
ともできる。このとき、シミュレータ実行時に収集され
る統計情報は、ターゲットで実行されるものと同一の情
報である。別の表現をすれば、ターゲットとシミュレー
タで同一のオブジェクトコードを用いることができるこ
とになる。したがって、実行環境の違いによる再コンパ
イルなどの時間が発生しなくなる分だけ開発サイクルを
短縮できる。また、単一のオブジェクトファイルを共有
できるため、管理が容易になることは明白である。
マイズ部43は、オプション情報記憶部23とユーザ定
義モジュール・ユーザ定義命令記憶部3内に格納された
データを参照して、機械命令関数宣言を含む、図9
(c)に示すような機械命令関数宣言ヘッダファイルを
生成する。なお、ここでいう機械命令関数宣言とは、プ
ロセッサ固有の命令を高級言語から直接指定するため
に、プロセッサ固有の命令を高級言語の関数宣言として
記述したものである。
の一実施例を示している。図10において、機械命令関
数宣言抽出部43cは、ユーザ定義モジュール・ユーザ
定義命令記憶部3内に格納されたユーザ定義命令を参照
して、対応する機械命令関数宣言を抽出する。また、結
合処理部部43dは、オプション情報記憶部23内に格
納されたデータを参照して、既定義のテンプレート43
bから有効なオプション命令に対応する機械命令関数宣
言を選択する。さらに、結合処理部43dは、前記テン
プレート43bと機械命令関数宣言抽出部43cから供
給される機械命令関数宣言を結合することにより、機械
命令関数宣言ヘッダファイルを生成する。この機械命令
関数宣言ヘッダファイルには、コンフィグレーションで
有効になったオプション命令とユーザ定義命令に対応す
る機械命令関数宣言が含まれる。
ムからコンフィグレーションで指定したオプション命令
とユーザ定義命令を直接指定し、利用することが可能と
なる。
は、オプション命令抽出部43aを有している。オプシ
ョン命令抽出部43aは、オプション情報記憶部23内
に格納されたデータを参照して、最適化に利用すること
ができるオプション命令の情報を取得する。このオプシ
ョン命令の情報に従って、コンパイラカスタマイズ部4
3は、コンパイラ起動時のオプションを指定するコンパ
イラ起動オプションファイル(図11(a)参照)を生
成する。
情報をコンパイラの最適化に反映させることができる。
また、コンパイラの関数ライブラリは、起動オプション
ファイルを使用してソースから再コンパイルされるの
で、利用可能なオプション命令を組み込んだライブラリ
を生成することができる。
ンブラカスタマイズ部44は、利用可能なオプション命
令とユーザ定義命令のニーモニックと命令形式の情報を
組み込んでアセンブラを再構築する。このアセンブラカ
スタマイズ部44によれば、利用可能な全ての命令の組
み合わせからなるアセンブラプログラムについて、対応
するオブジェクトコードを生成することができる。
ル生成部45は、設定ファイル生成部2内の各記憶部内
で指定されたコンフィグレーションを参照して、指定さ
れたシステムLSIの構成を検証する検証ベクトルを生
成する。ここで、システムLSIの規模が大きい場合、
限られた時間内で検証を終えるため、基本となる構成か
ら変更された部分を重点的に検証することが必要とな
る。そこで、指定されたオプション命令や指定されたサ
イズのキャッシュ等を重点的に検証するように、検証ベ
クトルは、命令セット記述に基づいて、各命令に対応す
る検証ベクトル郡を生成することが望ましい(図11
(b)は検証ベクトル生成用のユーザ定義命令ファイル
の一例を示す)。
に説明する。
作を記述したコンフィグレーション指定ファイル(アー
キテクチャDBファイル)から、RTL、コンパイラ、
アセンブラ、シミュレータ、検証ベクトル、デバッガが
自動的に構築される。このコンフィグレーション指定フ
ァイルは、予め複数定義されているアーキテクチャの中
の1つを指定する記述(アーキテクチャ型の指定)を含
む。ここで言う、アーキテクチャ型の例としては、VL
IWモードで実行されること(特定のパイプ(VLIW
スロット)で実行されること)、DSP命令を含む。こ
のアーキテクチャ型の指定に基づいて、コンパイラの命
令スケジューリング、及びVLIWの並列化機能が制御
される。また、命令セット・シミュレータにおける性能
見積値が調整させる。この環境を用いることにより、ユ
ーザはアプリケーションに応じて、独自に命令を定義す
ることができる。このユーザが定義した命令をユーザ定
義命令と呼ぶ。また、高水準言語によりプログラムを作
成し、そのプログラムの性能をシミュレータを用いて評
価することが可能となる。
定義命令に対して、機械命令関数の環境が自動的に構築
される。機械命令関数を用いることにより、コンパイラ
の持つ機能、例えば命令スケジューリング、VLIWの
並列化、レジスタ割付等を使用することが可能となる。
する。
1の実施形態を示している。図12は、図1に示すシス
テムLSI開発環境生成部3のプログラム構成を概略的
に示しており、ほぼ図5に示す構成と同様である。
キテクチャDBファイルとしてのコンフィグレーション
指定ファイルは、コマンドインタープリタに供給され
る。コマンドインタープリタは、ユーザが指定するコマ
ンドを解析し、解析したコマンドの内容に応じて、例え
ばRTL生成部、シミュレータ生成部、コンパイラカス
タマイズ部、アセンブラカスタマイズ部、検証ベクトル
生成部、デバッガ生成部の実行順序を制御する。実行方
式としては、予め一連の処理を登録しておき、これら処
理を連続して実行させるバッチ処理や、会話型処理等が
選択可能とされている。ユーザが指定するコマンドは、
例えばGUI(Graphical User Interface)、或はCU
I(Character Base User Interface)等を用いて入力
される。
してのコンフィグレーション指定ファイルの一例を示し
ている。コンフィグレーション指定ファイルには、例え
ばプロセッサの指定、レジスタ定義、命令定義等が記述
可能とされている。プロセッサの指定には、例えばプロ
セッサの名前、及びタイプが記述可能とされている。図
13において、プロセッサは、アーキテクチャ型として
タイプ(2_WAY_VLIW)が記述されている。つまり、予め
定義されているアーキテクチャのうち、2−WAYのV
LIWを選択することを表している。
ビットパターン、及び動作記述からなる。ここで、ビッ
トパターンは、オペコード及びオペランドのビット情報
を含む。
の他、ビット分割、ビット結合、サイン/ゼロ拡張、オ
ーバーフロー動作などを記述することができる。また、
SWAP動作等を実現するために必要な一時変数を使用
することもできる。
る。
ープリタにより、解析したコマンドの内容に応じて、R
TL生成部、シミュレータ生成部、コンパイラカスタマ
イズ部、アセンブラカスタマイズ部、検証ベクトル生成
部、デバッガ生成部の実行順序が制御される。このた
め、ユーザは、開発環境の生成順序を任意に設定するこ
とができる。したがって、アプリケーションの開発順序
に応じて任意に開発環境を生成することができる。
記レジスタ定義部に関する。
記載例を具体的に示している。レジスタ定義部には、汎
用レジスタの個数、コンパイラのレジスタ使用法(関数
の戻り値用レジスタ、引数用レジスタ、関数コールによ
りコールされた関数に引き継がれるレジスタ、関数コー
ルによりコールされた関数に引き継がれないレジスタ、
スタックポインタ用レジスタ、グローバルポインタ用レ
ジスタ、タイニーボインタ用レジスタ、0レジスタ
等)、汎用レジスタの別名定義、及び制御レジスタ定義
を指定する。レジスタ使用法は省略可能であり、省略し
た場合、デフォルトの使用法が適用されたコンパイラが
生成される。
は16個、コンパイラのレジスタの使い方として、関数
の戻り値用レジスタRETはレジスタ0、関数引数用レ
ジスタARGはレジスタ1、2、3、4、ゼロ専用レジ
スタZEROはレジスタ12、スタックポインタレジス
タSPはレジスタ15と定義されている。また、制御レ
ジスタとしてリンクポインタLPが定義されている。
別名を定義することができる。別名を必要としない場合
は省略する。別名定義を利用することで、ユーザが直接
アセンブリコードを記述する場合、自分の好みに合わせ
て記述することかできる。例えばスタックポインタSP
に対応するレジスタがレジスタ15である場合、レジス
タ15の別名としてSPを定義したとする。すると、ア
センブリコード内でSPと記述すると、アセンブラはS
Pをレジスタ15と認識することができる。
殊使用レジスタ、例えばタイニーポインタ用レジスタT
P(図示せず)を汎用レジスタとして扱う場合がある。
このとき、このレジスタをタイニーポインタとして使用
する場合、“TP”と記述し、このレジスタを汎用レジ
スタとして使用する場合は、レジスタ番号を記述する。
このように記述すればアセンブリコードにより、このレ
ジスタがタイニーポインタとして使用されているのか、
汎用レジスタとして使用されているかを区別することが
できる。したがって、保守性の高いアセンブリコードを
構築できる。
記述された情報に基づき、コンパイラ、アセンブラ、シ
ミュレータ、デバッガ、検証ベクトル等がカスタマイズ
される。すなわち、図12に示すように、コンパイラカ
スタマイズ部にはレジスタの使用法及びレジスタの別名
が供給され、アセンブラカスタマイズ部にはレジスタ名
とレジスタの別名、RTL生成部、シミュレータカスタ
マイズ部、検証ベクトル生成部、デバッガ生成部にはレ
ジスタ名が渡される。
スタ定義部内で定義された汎用レジスタと制御レジスタ
の情報を元に、コンパイラを生成する。このコンパイラ
は各レジスタに直接アクセスすることが可能なレジスタ
擬似変数の定義を有している。このレジスタ擬似変数を
用いることにより、ユーザは高水準言語でプロセッサの
持つ各レジスタに直接アクセスすることができる。
において、アキュムレータ及びシフトアマウントレジス
タを定義することも可能である。
示している。この例は、256bitのアキュムレータ
が2個有ることを示している。
義の一例を示している。この例は、シフトアマウントレ
ジスタが2本あることを示している。
プリケーションに合わせてコンパイラのレジスタの使い
方を変更することができる。例えば、アプリケーション
内で頻繁に即値“0”を使う場合、常に“0”を値とす
るレジスタを用意することにより、即値“0”を作るた
めの命令を生成する必要がなくなる。このため、コード
サイズ、及び実行性能をともに向上することができる。
あまり使わない場合、常に“0”を値とするレジスタを
用意しないことにより、他の用途のためのレジスタ数を
増加できる。このため、レジスタ不足によるメモリアク
セスの頻度を低減でき、コードサイズ及び実行性能をと
もに向上することができる。
し、ユーザがレジスタの使用法を省略した場合、デフォ
ルトの使用法が設定される。このように、コンパイラの
デフォルトの使用法を採用したとき、ユーザはアプリケ
ーションの性能を計測することができる。この計測した
性能を参考とすることにより,より良いレジスタ使用法
を指定可能となる。
義を有している。このため、ユーザはレジスタ定義に記
述したすべてのレジスタに高水準言語内でアクセスする
ためのレジスタ擬似変数を使用することが可能になる。
このレジスタ擬似変数は、高水準言語内で制御レジスタ
等の特別なレジスタにアクセスする場合に有益であり、
コンパイラのインラインアセンブル機能とあわせて利用
することも考えられる。したがって、全てのレジスタの
レジスタ擬似変数を用意する機能は効果があると言え
る。
し、ユーザの好みに合わせてレジスタ名を定義すること
ができる。したがって、使い勝手がよく、保守性の高い
アセンブリコードを構築できる。
実施形態について説明する。第3の実施形態はVLIW
に関する。
フィグレーション指定ファイル内の命令定義部で行な
う。命令定義部には命令の仕様、オペランド(OP)コ
ード、及び動作内容を記述する。命令の仕様、及びOP
コードの情報に基づき、アセンブラの動作を定義するア
センブラ定義ファイルを生成する。また、動作内容の定
義に基づき、命令の仕様定義に記述されていない命令を
動作させる際、データの読み込みや書き込みが必要なレ
ジスタの情報を集め、機械命令関数定義に適用する。こ
れにより、コンパイラはより良いレジスタ割付と命令ス
ケジューリングが可能になる。
コプロセッサに関しても定義することができる。すなわ
ち、図7に示すプロセッサ2のように、例えばRISC
コアのようなプロセッサコアに対して、コプロセッサが
接続可能とされている。このコプロセッサとしては、例
えばVLIW(Very Long Instruction Word)モード、
DSP(Digital Signal Processor)がある。
ている。コア命令と区別するため、コプロセッサ定義で
あることを示す情報をアーキテクチャ型として持ってい
る。すなわち、コプロセッサの名前、及びコプロセッサ
のタイプが記述される。この記述の後にコプロセッサ定
義の関連情報として、レジスタ定義と命令定義を定義す
る。コプロセッサ定義の関連情報は、上記レジスタ定義
と命令定義のほかに、VLIWモードの実装の有無(無
し、2並列、3並列)、演算データ幅定義(コプロセッ
サ演算途中で保証されるデータの幅)を持っている。
セッサ命令がVLIWモードのスロットのどこに入るべ
きかを表す情報(図17のV3)が命令セット定義に含
まれる。このスロットの定義は、プロセッサの使用に依
存して決定され、命令を並列化する際、どのスロットに
入る命令であるかを示す情報となる。
前記機械命令関数定義ファイルが生成される。前記コン
パイラカスタマイズ部は、この機械命令関数定義ファイ
ルに基づき、ユーザが定義したコプロセッサ命令を並列
化することができる。また、アセンブラカスタマイズ部
は、この機械命令関数定義ファイルに基づき、並列化が
使用上正しいかどうかをチェックできるようになる。
供給される。検証ベクトル生成部は、スロットの情報に
基づき、並列化した命令に対するプロセッサの動作を検
証するために必要な検証ベクトルを生成する。
時変数がある場合、あるいは符号拡張演算がある場合、
その一時変数のビット幅と符号拡張後のビット幅をシミ
ュレータが何ビットとして扱うかの情報である。この幅
情報は、コプロセッサのレジスタ定義部内で定義された
レジスタのビット幅に依存する。例えば、コプロセッサ
のレジスタの演算幅が64ビットと指定された場合、演
算定義幅情報は最大で64ビットまで指定することがで
きるようになる。この演算定義幅情報はシミュレータカ
スタマイズ部に供給され、シミュレータに反映される。
義した全ての命令に対する機械命令関数の定義ファイル
を持つことができる。このため、機械命令関数を使用す
ることにより、ユーザはコンパイラのレジスタ割付、命
令スケジューリング、VLIWの並列化機能を得ること
ができる。したがって、アプリケーションの開発上大変
有益である。
際、どのスロットに入る命令であるかを示す情報を有し
ている。このため、機械命令関数のカスタマイズ、アセ
ンブラのカスタマイズが可能となり、ユーザのアプリケ
ーション開発を促進できる。
ト定義の情報を機械命令関数定義に反映させている。こ
のため、VLIWモードが実装されている場合、ユーザ
定義のコプロセッサ命令を並列化する際、どのスロット
に入る命令かを示す情報が機械命令関数定義に供給され
る。このため、コンパイラは機械命令関数に対して正し
くVLIWの並列化を行なうことができる。機械命令関
数は高水準言語内で使用することができるため、ユーザ
のアプリケーションの開発を促進できる。
反映される。このため、シミュレータは命令の動作をプ
ロセッサの仕様にあわせることができる。したがって、
シミュレータの動作と実際のプロセッサの動作を一致さ
せることができる。
される。このため、アセンブラにおいて、ユーザが直接
手で記述したアセンブリコード内における命令の並列化
部分が、仕様通りであるかどうかをチェックすることが
できる。
される。このため、並列化した命令に対するプロセッサ
の動作を検証するために必要な検証ベクトルを得ること
ができる。
実施形態について説明する。第4の実施形態は、DSP
に関する。
込むための機能として、コンフィグレーション指定ファ
イルは、他のモジュールと区別するための識別子を持っ
ている。この識別子内にDSP関連の定義が記述され
る。DSPの命令定義では、任意のビット幅の命令を定
義することができる。また、レジスタ定義では任意のビ
ット幅のレジスタを定義することができる。
レーション指定ファイルの例を示している。先頭にDSP_
NAMEというアーキテクチャ区別用識別子が記述されてい
る。また、レジスタ定義部<dsp_register>にレジスタ幅
定義REG_WIDTHが付加されている。この例の場合、レジ
スタ幅が20bitsに設定されている。また、命令定義部
<dsp_ISA>では20bitsの命令が定義されている。
ーション指定ファイルは、図示せぬ固定小数点ライブラ
リの小数点の位置を指定する情報を記述可能とされてい
る。この情報は、コンパイラカスタマイズ部に供給さ
れ、コンパイラの固定小数点ライブラリに反映される。
を記述可能とされている。この機能は、例えば複素デー
タ型、X/Yメモリ、循環バッファ、固定小数点データ
型、ビット反転、異種レジスタセットの対応のうちの少
なくとも1つである。
レーション指定ファイルは、プロセッサがDSP型であ
り、ハードウェアの指定がDSP命令形式である記述を
含んでいる。さらに、DSP命令形式において、命令の
ビット幅が設定可能とされている。このため、ユーザは
アプリケーションの用途に合わせてフレキシブルに命令
のビット幅を設定することができる。したがって、ユー
ザは要求性能にあったDSPを設定でき、不要なコスト
を削減することができる。
幅が設定可能とされている。このため、ユーザはアプリ
ケーションの用途に合わせて,フレキシブルにレジスタ
のビット幅を設定することができる。したがって、ユー
ザは要求性能にあったDSPを設定でき、不要なコスト
を削減することができる。
リは,一般に固定少数点の位置にフレキシブルに対応す
る。このため、性能が低下してしまう。しかし、本実施
形態において、固定小数点ライブラリの小数点の位置を
指定する情報は、コンパイラの固定小数点ライブラリに
反映されるため、性能低下を防ぐことができる。
特化した機能を仕様することができる。このため、アプ
リケーションの開発期間を短縮できるとともに、アプリ
ケーションの性能を向上できる。
IMD(Single Instruction Multiple Data)に関す
る。第5の実施形態は、SIMDの複数データの処理を
1つにまとめて記述し、この記述からシミュレータを生
成したり、マルチメディア・データ型への対応を可能と
する。
とができる場合、コンフィグレーション指定ファイル内
の命令定義部にSIMDデータを扱うことを示す情報が
記述される。この情報としては、例えば命令が扱うデー
タ長と、各命令オペランドのデータ長である。この情報
は、SIMDデータ幅を指定し、機械命令関数定義と高
水準言語のSIMDデータ用拡張宣言子の生成に適用さ
れる。これにより、ユーザはSIMDデータを容易に扱
うことが可能になる。次に、記述例を示す。
ることを示している。すなわち、レジスタが64ビット
である場合、8並列であること、このレジスタ幅はレジ
スタ定義部内のコプロセッサレジスタ幅と同じであるこ
とを示している。“B”の他に“H”(half word 、すな
わち、16ビット)、“W”(word、すなわち、32ビ
ット)も指定可能とされている。さらに、“U”の有無
に応じて符号無しと、符号付きのデータを区別する。例
えば“BU”と記述した場合、8ビットの符号無しデータ
を示す。
“CPPACK.B”命令のオペランド“CRo,CRq,CRp”がそれ
ぞれ符号付き8ビット、符号付き16ビット、符号付き
16ビットのデータであることを示している。
H”の命令定義の例を示している。この命令が定義され
るコプロセッサのコプロセッサレジスタが例えば64ビ
ット幅であるとする。この命令のデータ長は“SIMD=H”
すなわち、符号付き16ビットである。換言すれば、こ
の命令は、16ビット幅のデータを4並列で計算する。
また、“PACK=H,H,H”により、この命令のオペランド
“CRl,CRm,CRn”がそれぞれ符号付き16ビットのデー
タであることを示している。さらに、動作定義により、
この命令が符号付き16ビットのデータの加算を4並列
で行なうことを示している。これらの情報は、コンパイ
ラカスタマイズ部、及びシミュレータカスタマイズ部に
供給される。コンパイラカスタマイズ部では、これらの
情報がコンパイラの高水準言語用拡張宣言子の生成、機
械命令関数の生成、レジスタ割付、命令スケジューリン
グ機能へ反映される。また、シミュレータカスタマイズ
部では、これらの情報がシミュレートの動作、シミュレ
ート結果の出力機能に反映される。
データの加算を4並列で行なうSIMD命令の動作記述
を4行で示している。しかし、この動作記述を1行で記
述することが可能である。
した記述である。
いる。
である場合、上記例(1)は次のように記述される。
とにより、次に示すようなデータの並びが一致していな
い記述を簡略化できる。
ロセッサレジスタのはばに依存する値をとる。“SIMD=
H”、コプロセッサレジスタのデータ幅が64ビットの
場合、指標“i”の値は0〜3となる。
ている。
レーション指定ファイルの命令定義部にSIMD命令に
関する情報を記述している。このため、コンパレータカ
スタマイズ部は、SIMD命令に関する情報に基づき、
SIMD命令を生成するための機械命令関数の定義ファ
イルを生成できる。機械命令関数は高水準言語内で使用
することができるため、ユーザのアプリケーション開発
を促進できる。
言するための特殊な修飾詞を使用できる。このため、ユ
ーザのアプリケーション開発を促進できる。
入力されたSIMD命令に関する情報に基づき、シミュ
レータの動作をカスタマイズする。このため、SIMD
命令に対して正しく動作するシミュレータを生成するこ
とができる。
力されたSIMD命令に関する情報に基づき、シミュレ
ータの結果出力機能をカスタマイズする。このため、S
IMD命令に対して解析し易いシミュレータの出力結果
を生成することができる。
命令をまとめて1命令で記述したり、指標を用いて記述
することができる。このため、SIMD命令の命令動作
の記述を簡略化することができる。したがって、SIM
D命令の命令動作の記述を、ユーザにとって、直感的に
分かり易い記述とすることができる。
令ライブラリに関する。
イルの仕様に合った命令を追加することが可能である。
本システムLS1開発環境生成システムは、定義済みの
命令を保持し、ライブラリ化している。これを以下、命
令ライブラリと称す。この命令ライブラリは、命令の種
類毎にグループ化されている。ユーザは命令ライブラリ
から必要な命令を選択することにより、アプリケーショ
ンに特化した開発環境を生成することができる。
示している。SIMD命令ライブラリにおけるこれら命
令はオプションであり、これに対するコンフィグレーシ
ョン指定ファイルと、RTLは、基本命令とは別に予め
用意されている。ユーザは、これら命令の全部、あるい
は特定のデータ型の命令を選んで使用することができ
る。
いるデータ型としてニーモニック“UB,B,UH,H,UW,W”の
いずれかが記述される。この記述は、ユーザにより選択
可能とされている。また、図23に示すように、ニーモ
ニックの記述を省略することも可能である。ニーモニッ
クが“UB,B,UH,H,UW,W”のいずれかに固定されている場
合、例えば次のように明示することも可能である。この
例はニーモニックが“H”に固定されている。
-A+B)上記のように記述された場合でも、ニーモニック
の記述を変更すれば、その変更に対応することが可能で
ある。
等のツールを生成する方法を示している。ユーザが命令
ライブラリの命令を使用する場合、例えば複数の命令ラ
イブラリADB1、ADB2から該当する中間ファイル
IF1、IF2が生成される。この中間ファイルIF
1、IF2は、基本命令の中間ファイルIF3とマージ
される。このマージされた中間ファイルをコンパイラ等
に組み込むことにより、全体の環境が構築される。
中間ファイルを生成し、これら中間ファイルをマージし
た。しかし、中間ファイルの生成は省略可能であり、各
命令ライブラリから選択した必要な命令を直接マージし
てもよい。
機能を失うことなく、ユーザが要求するアプリケーショ
ンに対して最適なスケジューリング性能を得ることがで
きるよう、命令にタイプを割当てる機能を設定しても良
い。
ッサとの間のデータ転送命令はコプロセッサを定義する
際、必ず必要となる。このように、メインとなる命令に
必ず付随する命令を自動的にマージするように設定すれ
ば、コンパイラが高水準言語のソースレベルから命令ラ
イブラリの命令を効率よく生成できる。このため、命令
ライブラリ内に予約命令を記述してもよい。
コンパイラに反映させる場合について説明した。しか
し、これに限らず、マージしたファイルをRTL生成部
に供給することにより、指定された命令ライブラリの命
令の機能を失うことなく、サイズ優先でRTLテンプレ
ートを生成することも可能である。このような構成とす
ることにより、アプリケーションの性能を維持して、生
成されるRTLのサイズを最小とすることができる。し
たがって、チップサイズの増大を抑えることができ、コ
ストを低減できる。
機能を失うことなく、性能優先でRTLテンプレートを
生成することも可能である。このような構成とすること
により、アプリケーションのレイテンシを小さくできる
など、性能を向上することができる。
ラリに記述された命令が扱うデータ型をアプリケーショ
ンに対応して設定可能とされている。このため、アプリ
ケーションに適した命令を有するプロセッサを開発する
ことが可能となる。
データ型が決められている場合においても、データ型を
変更することができる。このため、アプリケーションに
適した命令に変更することが可能となる。
命令を選択し、これら選択した命令をマージすることに
より、一つのプロセッサの設定が可能となる。このた
め、よりアプリケーションの性質に適したプロセッサの
生成が可能となる。
ンフィグレーション指定ファイル内の高位な動作記述に
ついて説明する。
位な動作記述は、ほぼC言語の「文」に相当する記述が
可能である。しかし、“!!”(ビット連結)、“[]”
(部分ビット切り出し)、論理演算子がC言語と異な
る。さらに、本実施形態の高位な動作記述は、式の左辺
にビット連結が書けるという特徴を有している。また、
本実施形態の高位な動作記述は、クロックの概念は含ま
ず、命令実行前のレジスタやメモリの値と、命令実行後
のレジスタやメモリの値の関係を記述したものである。
述の相違や制約を示す。
す。
子を示す。
を示す。
左辺に書ける。
ランド(<オペランド>)に記述されるものであり、次
のような記述ができる。
令の仕様と、レジスタのパラメータを表すアルファベッ
ト、及び指定子のビット幅が一致していなければならな
い。
ド変数以外のレジスタであり、次のような記述が可能で
ある。
クス表記) 例:PC,SRRO,CCR3 ・配列指定 例:識別文字列+‘[’式‘]’ 例:CTR[Imm4] 注1:識別文字列+インデックス+‘[’数値‘]’
は、部分ビット切り出しとなる。
と同じ。CTR[Rn][3:0]なども記述可能。
ックス表記、Rmなど)はオペランド変数に分類する。オ
ペランド変数以外の不定表記はエラーとする。
数、レジスタ変数でない変数を一時変数という。一時変
数の名前には次のものが使える。
の。
まらないもの。
まらないもの。
…nとする。ss…sビット数を示す。ビット数が省略され
た場合は32bitとする。fは基数。D:10進、h:16
進、o:8進、b:2進、これらの記述が省略された場合は
10進とする。nn…nは定数値。定数値がビット数に足
りないときは上位ビットを0で補う。定数値がビット数
より大い場合、ビット数を無視する。nn…nの中で区切
り文字‘_’を使用することはできない。基数および定
数値には大文字のアルファベットも使用できる。
される) ‘o1234:32ビットの16進数(ビット数を省略、32
‘o1234と同じ) 1:32ビットの10進数(ビット数及び基数を省略、3
2‘d1と同じ) 10’5:10ビットの10進数(基数を省略、10’d5と
同じ) (補足)次のようなことが記述できる。
能の代表的なものを示す。
ドのRO/RWと動作記述の整合性 (3)SIMD記述、Pack記述と動作記述の整合性:SIMD,P
ackで指定したデータ幅に相当する動作記述がない場
合、ワーニングを出力する。具体的には、SIMD/Packで
指定されたデータ幅毎に動作記述を調べ、それぞれ以下
のビット幅の部分ビット参照/代入が存在しない場合に
ワーニングを出す。データ幅とビット幅の関係を以下に
示す。
る場合、ワー二ングを出力する。
いない場合、ワー二ングを出力する。
イル内の命令セット定義部の例を示している。この例
は、LW命令とSWAP命令の定義を示している。LW
命令の動作記述({}で囲まれた部分)において、“R
n”はレジスタ指定のオペランド変数、“disp8”はdisp
型のオペランド変数、“SP”はレジスタ変数である。
“ZeroExtension”及び“MemWord”はそれぞれビット拡
張とメモリアクセスを行なう予約関数である。また,S
WAP命令における“tmp1”と“tmp2”は一時変数であ
る。
レーション指定ファイル内の命令動作記述に高位な記述
が可能とされている。このため、新たな命令の追加が容
易であり、且つ既存の命令を容易に解析できる。したが
って、命令の改良、保守を容易に行なうことができ、ユ
ーザのアプリケーション開発を促進できる。
イプライン記述に関する。
のスケジューリングのための情報、およびハザード検証
ベクトルを自動生成のための情報が生成される。
プ定義」及び「ハザード情報」の2つを含む。
る。
>,<操作>,<タイミング>,<引数>[:<リソー
ス>,<操作>,<タイミング>,<引数
>:....];各PTYPE行には、“<リソース
>,<操作>,<タイミング>,<引数>”の四つの変
数が最低1つ必要である。四つの変数は、“:”で区切
って任意の数だけ続けて記述できる。
次の通りである。すなわち、リソースはレジスタなどを
示し、操作はリード/ライト等を示し、タイミングはパ
イプラインのステージを示している。引数は、オペラン
ド(レジスタ等)に対する指標である。つまり、PTY
PE行はリソースに対する、操作が、パイプラインのス
テージにて生じることを表している。
いる。
(タイプ名1),<動作2>(タイプ名2)=<サイク
ル数>;リソースにおいて、タイプ1の先行命令が動作
1を行い、タイプ2の後続の命令が動作2を行った場合
のストール数を表す。
いる。このハザード情報の場合、あるコプロセッサの汎
用レジスタにパイプラインタイプ“pt1”の命令で書き
込みが行なわれた後、パイプラインタイプ“pt2”の命
令で同じレジスタを読み出す場合、2サイクル待たなけ
ればならない。
プライン定義により、ハザードが発生する命令列をシミ
ュレータ上で実行した際のストール数が決まる。
プラインタイプ“pt1”、 命令“cinst1”がパイプライ
ンタイプ“pt2”である場合の動作を示している。
プロセッサの汎用レジスタにパイプラインタイプ“pt
1”の命令で書き込みが行なわれた後、パイプラインタ
イプ“pt2”の命令で同じレジスタを読み出す場合、2
サイクル待たなければならない。図28に示す例の場
合、ステージ“t”において命令“cinst1”でコプロセ
ッサの汎用レジスタ“$cr1”に書き込みが行なわれた
後、1サイクル待った後、命令“cinst2”で同じレジス
タの読み出しを行なおうとしている。このような場合、
シミュレータで命令“cinst2”は1サイクルストールす
ることになる。
報)図29は、コンパイラのためのスケジューリング情
報の例を示す。
直後のPTYPE2の命令は3サイクルストールし、P
TYPE2の命令の直後のPTYPE3の命令は4サイ
クルストールすることを示している。この情報から、コ
ンパイラは、極力PTYPE1とPTYPE2の間に3
命令空くようにスケジューリングし、PTYPE1とP
TYPE3の間に4命令空くようにスケジューリングす
る。
プライン動作記述)図30は、パイプライン動作記述の
例を示している。
的なストールの指定からなる。この記述及びこれからの
検証ベクトルの生成の詳細については、省略する。
レーション指定ファイルは、パイプライン定義の記述を
含めることができる。このため、パイプラインを構築す
ることができる。また、パイプライン定義には、パイプ
ラインタイプの定義、及びハザード情報を含めることが
できる。
は、パイプラインに関してコンパイラのためのスケジュ
ーリング情報を含めることができる。このため、コンパ
イラはスケジューリング情報に基づきパイプラインの動
作をスケジューリングできる。
ルは、パイプラインに関してハザード検証ベクトル生成
のための記述を含めることができる。このため、パイプ
ラインのハザードを確実に検証することが可能となる。
TLの合成に関する。
るユーザ定義モジュールの高位合成を示している。すな
わち、図31に示すユーザカスタム命令の高位合成は、
通常のハードウェアリソース割り当てとスケジューリン
グの他、コア部及び制御パスとメモリとのインターフェ
ース(I/F)の整合及び生成を行なう。
ける、インターフェースの整合方法を示している。図3
1に示す高位合成により命令本体のRTLが生成され
る。この場合、命令本体部分とコア部との間に別途イン
ターフェース回路を生成する。コア部とインターフェー
ス回路間の接続は、入出力のレジスタ・フィールドの信
号、16bitのオペランド信号、ストール信号により
表現される。命令本体は、このインターフェース回路か
ら呼び出される形式で記述される。命令本体とインター
フェース回路の間の接続は、moduleの引数で表現
される。
ドウェアリソース割り当てとスケジューリング、さら
に、コア部及び制御パスとメモリとのインターフェース
を整合することにより、ユーザカスタム命令の高位合成
を行なうことができる。
は、検証ベクトル生成に関する。
指定ファイルからアーキテクチャ検証プログラム(AV
P:Architecture Verification Program)の生成用デ
ータを生成する方法について説明する。
特にプロセッサの命令単体の機能を検証するための、検
証プログラムをAVPと呼ぶ。このAVP生成するため
にISA情報を使用する。ISA情報には以下に述べる
データが必要である。
データベースファイルから生成する方法について説明す
る。レジスタ定義部にはレジスタ種類毎にレジスタの
数、レジスタのビット幅等が定義されている。命令定義
部は、ニーモニック、オペランド並び、及び命令動作定
義部等から構成されている。命令動作定義部は、前記オ
ペランド並びに表れるオペランド、レジスタ並びには現
れないレジスタ、一時変数、定数等を使用した文を記述
することにより命令動作を定義する。
る命令定義を示している。命令CPXOR3は、レジス
タオペランドとして、CRo,CRq,CRpを記述す
る必要があることを表している。レジスタ名はレジスタ
の種類によってその接頭語が違っており、“CR”で始
まるレジスタはコプロセッサの汎用レジスタを表す。
‘{’と‘}’で囲われた部分は命令動作記述部であ
る。この例の場合、2つのコプロセッサ汎用レジスタC
Rp,CRqのビット毎の排他的論理和を計算した結果
をCRoへ代入する命令であることが判る。
の情報及びオペランド並びの情報を有している。これら
の情報は、直接ISA情報のニーモニックの情報及びオ
ペランド並びの情報となる。オペランド並びには、オペ
ランド名のリストが記される。オペランド名のうち、I
mm*,Imm*は即値であり、それ以外はレジスタで
ある。この規則を使用することにより、各オペランドの
種類をオペランド並びから取得することができる。
る。オペランドがレジスタの場合、レジスタ定義情報か
らレジスタのビット幅を取得する。オペランドが即値の
場合、オペランドコードから即値のビット幅を取得す
る。具体的には、オペランドコードの文字列のうち、
‘i’の個数が即値のビット幅となる。
の参照/代入の有無は、命令動作記述の構文を解析する
ことにより取得する。
り、図33に示す命令定義部、及び図14に示すレジス
タ情報から、自動的に図34に示すISA情報を作成す
ることができる。
ンブラにより記述される検証プログラムを生成するため
に使用される。まず、ニーモニック及びオペランド並び
は、検証プログラム中の検査対象命令コードを生成する
目的で使用する。各オペランドのオペランド情報は下記
の目的のために使用される。
ト幅の情報を用いて検査用の即値データを生成する。オ
ペランドがレジスタオペランドでありそのレジスタの値
が参照される場合、ビット幅の情報などからレジスタに
与える値を生成する。この生成した値からレジスタに設
定するコードを生成する。値を生成する方法は幾つか有
る。
を含めた数値)の中でランダムに値を生成する方法。
入力なら2次元平面上の領域)を求め、その領域を順次
細分化する。この細分化された領域の重心座標を入力値
とする方法。
することができる。また境界上および境界付近の点を重
点的に入力データとして生成することにより、境界条件
の検査をすることが可能となる。
ための検証プログラムを生成する方法の詳細に関して
は、説明の都合上省略する。
そのレジスタへ値が代入される場合、レジスタに代入さ
れた命令の演算結果をログファイルへ出力するコードを
生成する。図34に示すISA情報から、図35に示す
検証プログラムを自動生成する。
トル生成部は、前記コンフィグレーション指定ファイル
の動作命令からプロセッサの検証ベクトルを生成するこ
とができる。このため、プロセッサの動作を確実に検証
することが可能となり、ユーザのLSI開発に寄与でき
る。
は、シミュレータの生成に関する。
イルからシミュレータを生成する方法について説明す
る。
を概略的に示している。シミュレータ生成部は、コンフ
ィグレーション指定ファイルと予め用意したC++モデ
ルテンプレートに基づき、シミュレータを生成する。す
なわち、シミュレータ生成部は、C++モデルテンプレ
ートに必要な情報を組み込むことにより、シミュレータ
のメイン部、シミュレータのデコードテーブル及び命令
定義部を生成する。メイン部は、コンフィグレーション
指定ファイルのヘッダ部とレジスタ宣言部に基づき生成
される。デコードテーブルと命令定義部は、コンフィグ
レーション指定ファイルのISA部に基づき生成され
る。
ム中のコード部のビットパターンを、命令列に変換する
ための変換テーブルである。また、C++モデルテンプ
レートとは、シミュレータのC++ソースコードを生成
するためのテンプレートであり、シミュレータ生成部が
必要な情報をこのテンプレートに代入することにより、
C++モデルが生成される。
トや、汎用レジスタや制御レジスタの数及びサイズ、命
令間ハザードというようなシミュレータ全体に関する情
報が格納されている。
ン指定ファイルのISA部の各命令定義のオペコード部
を格納している。シミュレー夕における命令デコード
は、このテーブルのオペレーションコード部分と、命令
のオペレーションコード部とを比較し、命令を識別する
ことにより生成される。
指定ファイルの動作記述をこれと等価な動作のC++記
述に変換することにより生成される。また、命令定義部
には、パイプラインのタイプ、トレース出力のフォーマ
ット、即値オペランドの符号拡張の有無、コアプロセッ
サのレジスタとコプロセッサのレジスタ間においてデー
タを転送する場合における転送方向などの情報も付加さ
れる。
通りである。
性の1つとして定義されている。シミュレータ生成部の
コプロセッサ・モデルファイル(=mkcopの入力)では、
以下のように記述される {name =>‘ICMOV’, cname =>‘CMOV_1’, instType =>‘t64c_al’, instSubType=>‘core_cop’, #<=コプロ汎用レジス
タからコア汎用レジスタへ転送 regsbit =>‘true’, opcodeA =>‘0xf’, opcodeB =>‘0x0’, opcodeC =>‘0x0’, opcodeD =>‘0x1’, func=>‘ #動作記述 ‘, }, 動作記述は,基本的に変数をC++変数へ変換し、演算
子をこれと等価なC++演算子に1対1に変換して生成
する。レジスタやメモリの読み書きや予約関数は、予め
用意したシミュレータのAPI関数を呼び出して生成す
る。
+への変換を行なう前に動作記述を変換する。例えば式
の左辺に記載したビット連結は以下のように変換する。
位)]; (TMPは一時変数)またSIMD表記に関しては、第
5の実施形態において説明したように展開する。
値が書き込まれるレジスタを出力する。レジスタヘの書
き込みの有無は、そのレジスタが命令の動作記述の左辺
部に出現するか否かを解析して判定する。レジスタ間の
データ転送も,同様に左辺部に出現したレジスタを書き
込み用レジスタ、右辺部に出現したレジスタを読み出し
用レジスタと判断する。読み出されたレジスタから書き
込まれたレジスタへデータが転送されたと見なす。
ギュレーション指定ファイルの記述に従って必要なシミ
ュレータを生成することができる。したがって、ユーザ
はアプリケーションをシミュレートすることができ、ア
プリケーションの性能を短時間で知ることができる。こ
のため、システムLSIの開発を期間を短縮することが
可能となる。
は、デバッグ環境の構築に関する。
3つである。
び書き換え可能なレジスタとしてどの様なものがあるか
についての情報が必要である。この情報は、コンフィグ
レーション指定ファイルのレジスタ定義部から生成され
る。表示できるレジスタは、定義されている全レジスタ
である。書き換えができるレジスタ、あるいはレジスタ
のフィールド(レジスタの一部)は、図14に示すレジ
スタ定義において、例えば“rw”と記述されたレジス
タである。“r”と記述されたレジスタは、デバッガに
て書き換えることはできない。
ログラムに対し、逆アセンブラを行い、表記する。逆ア
センブラは、シミュレータのデコード部と同じ方法で命
令を認識し、そのニーモニックを表示する。
タは、デバッグの開始時にレジスタの初期値を設定す
る。この初期値を設定すべきレジスタ(存在するレジス
タ)の情報を、コンフィグレーション指定ファイルのレ
ジスタ定義部から得る。
グレーション指定ファイルからデバッグ環境が構築され
る。このため、ユーザはLSI開発に必要なデバッグ環
境を得ることができる。したがって、ユーザはアプリケ
ーションをデバッグすることができ、アプリケーション
の開発を期間を短縮することが可能となる。
るものではない。
ステムLSI開発環境生成装置の概観を示している。こ
のシステムLSI開発環境生成装置50は、いわゆる汎
用計算機、ワークステーション、PC(Personal Comput
er)、NC(Network Computer)等が含まれる。システム
LSI開発環境生成装置50は、図示せぬハードディス
ク装置50aを有している。
50は、例えばフロッピー(登録商標)ディスクドライ
ブ52及び光ディスクドライブ54を備えている。フロ
ッピーディスクドライブ52にはフロッピーディスク5
3が装着され、光ディスクドライブ54には光ディスク
55が装着される。
0に接続されたドライブ装置57は、例えばメモリカー
ド58のリーダライタ、あるいは磁気テープカートリッ
ジ59のリーダライタである。このドライブ装置57に
より、メモリカード58、あるいは磁気テープカートリ
ッジ59をアクセスすることができる。
生成部、シミュレータカスタマイズ部、コンパイラカス
タマイズ部、アセンブラカスタマイズ部、検証ベクトル
生成部、及びデバッガ生成部等のプログラムや、コンフ
ィグレーション指定ファイル等のファイルは、フロッピ
ーディスク53、光ディスク55、メモリカード58及
び磁気テープカートリッジ59等の記録媒体に記憶され
る。これらプログラム及びファイルを読み出し、前記ハ
ードディスク装置50aにインストールすることによ
り、上述した動作を実行できる。また、記録媒体として
は伝送媒体を用いることも可能である。
いて種々変形実施可能なことは勿論である。
高性能なハードウェアを有するLSIの開発環境を十分
なフレキシビリティで、簡単に生成することが可能なシ
ステムLSI開発環境生成方法及びそのプログラムを提
供できる。
概略的に示す構成図。
示す図。
の記述例を示す図、図4(b)は生成されたローカルメ
モリマップの一例を示す図、図4(c)はISA定義フ
ァイルの記述例を示す図。
図。
図。
を示す構成図。
ァイルの一例を示す図、図9(b)は、デバッガ起動オ
プションファイルの一例を示す図、図9(c)は、機械
命令関数宣言ヘッダファイルの一例を示す図。
一実施例を示す構成図。
ファイルの一例を示す図、図11(b)は検証ベクトル
生成用のユーザ定義命令ファイルの一例を示す図。
プログラム構成を示す構成図。
示す図。
的に示す図。
す図。
定ファイルの例を示す図。
生成方法を示す構成図。
セット定義部の例を示す図。
図。
例を示す図。
の高位合成の例を示す図。
令CPXOR3に関する命令定義の例を示す図。
図。
図。
の一例を示す斜視図。
ト、 43c…機械命令関数宣言抽出部、 43d…結合処理部、 44…アセンブラカスタマイズ部、 45…検証ベクトル生成部、 50…コンピュータシステム、 51…ディスプレイ、 52…フロッピーディスクドライブ、 53…フロッピーディスク、 54…光ディスクドライブ、 55…光ディスク、 56…キーボード、 57…ドライブ装置、 58…メモリカード、 59…磁気テープカートリッジ
Claims (52)
- 【請求項1】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、命令を実行するハード
ウェアの指定を含み、システムLSIのコンフィグレー
ションが記述されたコンフィグレーション指定ファイル
の情報に基づき、システムLSIを開発するためのコン
パイラを構築するコンパイラカスタマイズ部、アセンブ
ラを構築するアセンブラカスタマイズ部、及びシミュレ
ータを構築するシミュレータ生成部を生成することを特
徴とするシステムLSI開発環境生成方法。 - 【請求項2】 コンピュータに、入力されたコマンドを
解析させ、 前記解析したコマンドに応じて、命令を実行するハード
ウェアの指定を含み、システムLSIのコンフィグレー
ションが記述されたコンフィグレーション指定ファイル
の情報に基づき、システムLSIを開発するためのコン
パイラを構築するコンパイラカスタマイズ部、アセンブ
ラを構築するアセンブラカスタマイズ部、及びシミュレ
ータを構築するシミュレータ生成部を生成させることを
特徴とするシステムLSI開発環境生成プログラム。 - 【請求項3】 前記コンフィグレーション指定ファイル
は、レジスタの構成を定義するレジスタ定義を含むこと
を特徴とする請求項1又は2記載のシステムLSI開発
環境生成方法又はそのプログラム。 - 【請求項4】 前記レジスタ定義は、前記コンパイラに
おけるレジスタの使用方法を定義する情報を有すること
を特徴とする請求項3記載のシステムLSI開発環境生
成方法又はそのプログラム。 - 【請求項5】 前記レジスタ定義は、前記コンパイラの
レジスタの使用方法を定義する情報を有し、この情報が
省略された場合、前記コンパイラカスタマイズ部は、コ
ンパイラのデフォルトのレジスタの使用方法を設定する
ことを特徴とする請求項3記載のシステムLSI開発環
境生成方法又はそのプログラム。 - 【請求項6】 前記コンパイラカスタマイズ部は、前記
レジスタ定義の情報に基づき、各レジスタに直接アクセ
スできるレジスタ擬似変数を定義することを特徴とする
請求項5記載のシステムLSI開発環境生成方法又はそ
のプログラム。 - 【請求項7】 前記レジスタ定義は、レジスタの別名定
義を有し、前記レジスタの別名定義は、前記アセンブラ
カスタマイズ部に供給されることを特徴とする請求項3
記載のシステムLSI開発環境生成方法又はそのプログ
ラム。 - 【請求項8】 前記開発環境は、RTL生成部、検証ベ
クトル生成部、デバッガ生成部をさらに含むことを特徴
とする請求項1又は2記載のシステムLSI開発環境生
成方法又はそのプログラム。 - 【請求項9】 前記レジスタ定義は、レジスタ名を含
み、このレジスタ名は前記コンパイラカスタマイズ部、
アセンブラカスタマイズ部、シミュレータカスタマイズ
部、RTL生成部、検証ベクトル生成部、及びデバッガ
生成部に供給されることを特徴とする請求項8記載のシ
ステムLSI開発環境生成方法又はそのプログラム。 - 【請求項10】 前記コンフィグレーション指定ファイ
ルは、命令の仕様、オペランドコード、動作内容を含む
ことを特徴とする請求項3記載のシステムLSI開発環
境生成方法又はそのプログラム。 - 【請求項11】 前記コンパイラカスタマイズ部は、前
記命令定義部の情報を元に機械命令関数定義を生成する
ことを特徴とする請求項3のシステムLSI開発環境生
成方法。 - 【請求項12】 前記コンフィグレーション指定ファイ
ルは、プロセッサがVLIW型であり、ハードウェアの
指定がVLIWの命令形式の指定、あるいはVLIWの
スロットの指定である記述を含むことを特徴とする請求
項3記載のシステムLSI開発環境生成方法又はそのプ
ログラム。 - 【請求項13】 前記コンフィグレーション指定ファイ
ルは、命令を並列化する際、どのスロットに置かれる命
令かを区別するためのスロット定義を含むことを特徴と
する請求項12記載のシステムLSI開発環境生成方法
又はそのプログラム。 - 【請求項14】 前記コンフィグレーション指定ファイ
ルは、命令を並列化する際に使うスロット情報を機械命
令関数定義に反映させるスロット定義を含むことを特徴
とする請求項12記載のシステムLSI開発環境生成方
法又はそのプログラム。 - 【請求項15】プロセッサの仕様に応じて、命令動作記
述内の一時変数や符号拡張後の値のビット幅を指定し、
その情報をシミュレータカスタマイズ部に供給し、前記
シミュレータに反映させることを特とする請求項12記
載のシステムLSI開発環境生成方法又はそのプログラ
ム。 - 【請求項16】 前記スロット情報をアセンブラカスタ
マイズ部に供給し、前記アセンブラに反映させることを
特とする請求項14記載のシステムLSI開発環境生成
方法又はそのプログラム。 - 【請求項17】 前記スロット情報を前記検証ベクトル
生成部に供給し、前記検証ベクトルに反映させることを
特とする請求項14記載のシステムLSI開発環境生成
方法又はそのプログラム。 - 【請求項18】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、プロセッサがDSP型
であり、ハードウェアの指定がDSP命令形式である記
述を含むシステムLSIのコンフィグレーションを記述
したコンフィグレーション指定ファイルの情報に基づ
き、コンパイラを構築するコンパイラカスタマイズ部、
アセンブラを構築するアセンブラカスタマイズ部、及び
シミュレータを構築するシミュレータ生成部を生成する
ことを特徴とするシステムLSI開発環境生成方法。 - 【請求項19】 コンピュータに、入力されたコマンド
を解析させ、 前記解析したコマンドに応じて、プロセッサがDSP型
であり、ハードウェアの指定がDSP命令形式である記
述を含むシステムLSIのコンフィグレーションを記述
したコンフィグレーション指定ファイルの情報に基づ
き、コンパイラを構築するコンパイラカスタマイズ部、
アセンブラを構築するアセンブラカスタマイズ部、及び
シミュレータを構築するシミュレータ生成部を生成させ
ることを特徴とするシステムLSI開発環境生成プログ
ラム。 - 【請求項20】 前記コンフィグレーション指定ファイ
ルは、任意のビット幅の命令を指定する情報を含むこと
を特徴とする請求項18又は19記載のシステムLSI
開発環境生成方法又はそのプログラム。 - 【請求項21】 前記コンフィグレーション指定ファイ
ルは、任意のビット幅のレジスタを定義する情報を含む
ことを特徴とする請求項18又は19記載のシステムL
SI開発環境生成方法又はそのプログラム。 - 【請求項22】 前記コンフィグレーション指定ファイ
ルは、固定小数点ライブラリの小数点の位置を指定する
情報を含み、前記コンパイラカスタマイズ部は、この情
報をコンパイラの固定小数点ライブラリに供給すること
を特徴とする請求項18又は19記載のシステムLSI
開発環境生成方法又はそのプログラム。 - 【請求項23】 前記コンフィグレーション指定ファイ
ルは、プロセッサがDSP型である場合、前記コンパイ
ラのDSPに対応した機能を含むことを特徴とする請求
項18又は19記載のシステムLSI開発環境生成方法
又はそのプログラム。 - 【請求項24】 前記コンパイラのDSPに対応した機
能は、複素データ型、X/Yメモリ、循環バッファ、固
定小数点データ型、ビット反転、異種レジスタセットの
うちの少なくとも1つを含むことを特徴とする請求項1
8又は19記載のシステムLSI開発環境生成方法又は
そのプログラム。 - 【請求項25】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、プロセッサがSIMD
型であり、ハードウェアの指定がSIMD命令形式であ
ることを記述したシステムLSIのコンフィグレーショ
ンを記述したコンフィグレーション指定ファイルの情報
に基づき、コンパイラを構築するコンパイラカスタマイ
ズ部、アセンブラを構築するアセンブラカスタマイズ
部、及びシミュレータを構築するシミュレータ生成部を
生成することを特徴とするシステムLSI開発環境生成
方法。 - 【請求項26】 コンピュータに、入力されたコマンド
を解析させ、 前記解析したコマンドに応じて、プロセッサがSIMD
型であり、ハードウェアの指定がSIMD命令形式であ
ることを記述したコンフィグレーション指定ファイルの
情報に基づき、コンパイラを構築するコンパイラカスタ
マイズ部、アセンブラを構築するアセンブラカスタマイ
ズ部、及びシミュレータを構築するシミュレータ生成部
を生成させることを特徴とするシステムLSI開発環境
生成プログラム。 - 【請求項27】 前記コンパイラカスタマイズ部は、入
力されたSIMD命令に関する情報に基づき、機械命令
関数定義を生成することを特徴とする請求項25又は2
6記載のシステムLSI開発環境生成方法又はそのプロ
グラム。 - 【請求項28】 前記コンパイラカスタマイズ部は、入
力されたSIMD命令に関する情報に基づき、特殊デー
タ型を生成することを特徴とする請求項25又は26記
載のシステムLSI開発環境生成方法又はそのプログラ
ム。 - 【請求項29】 前記シミュレータカスタマイズ部は、
入力されたSIMD命令に関する情報に基づき、シミュ
レータの動作をカスタマイズすることを特徴とする請求
項25又は26記載のシステムLSI開発環境生成方法
又はそのプログラム。 - 【請求項30】 前記シミュレータカスタマイズ部は、
入力されたSIMD命令に関する情報に基づき、シミュ
レータの結果出力機能をカスタマイズすることを特徴と
する請求項25又は26記載のシステムLSI開発環境
生成方法又はそのプログラム。 - 【請求項31】 前記SIMD命令の動作記述は、複数
命令をまとめて1命令で記述することを特徴とする請求
項25又は26記載のシステムLSI開発環境生成方法
又はそのプログラム。 - 【請求項32】 前記SIMD命令の動作記述は、指標
を用いて記述することを特徴とする請求項25又は26
記載のシステムLSI開発環境生成方法又はそのプログ
ラム。 - 【請求項33】 定義済みの複数の命令を含む複数の命
令ライブラリから必要な命令を選択させ、 これら選択した命令をマージしてアプリケーションに応
じた開発環境を生成させ、前記開発環境は、コンパイラ
を構築するコンパイラカスタマイズ部、アセンブラを構
築するアセンブラカスタマイズ部、及びシミュレータを
構築するシミュレータ生成部を含むことを特徴とするシ
ステムLSI開発環境生成方法。 - 【請求項34】 コンピュータに定義済みの複数の命令
を含む複数の命令ライブラリから必要な命令を選択さ
せ、 これら選択した命令をマージしてアプリケーションに応
じた開発環境を生成させ、前記開発環境は、コンパイラ
を構築するコンパイラカスタマイズ部、アセンブラを構
築するアセンブラカスタマイズ部、及びシミュレータを
構築するシミュレータ生成部を含むことを特徴とするシ
ステムLSI開発環境生成プログラム。 - 【請求項35】 前記複数の命令ライブラリから必要な
命令を選択した後、前記命令ライブラリ毎に中間ライブ
ラリを生成し、 これら中間ライブラリをマージすることを特徴とする請
求項33又は34記載のシステムLSI開発環境生成方
法又はそのプログラム。 - 【請求項36】 前記複数の命令ライブラリから必要な
命令を選択した後、前記命令ライブラリ毎に中間ライブ
ラリを生成し、 これら中間ライブラリと基本命令の中間ファイルをマー
ジすることを特徴とする請求項33又は34記載のシス
テムLSI開発環境生成方法又はそのプログラム。 - 【請求項37】 前記命令ライブラリ内の命令に対し
て、命令が用いるデータ型を選択できることを特徴とす
る請求項33又は34記載のシステムLSI開発環境生
成方法又はそのプログラム。 - 【請求項38】 前記命令ライブラリ内の命令に対し
て、命令が用いるデータ型を変更できることを特徴とす
る請求項33又は34記載のシステムLSI開発環境生
成方法又はそのプログラム。 - 【請求項39】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、システムLSIのコン
フィグレーションを記述したコンフィグレーション指定
ファイルの情報に基づきシステムLSIの開発環境を生
成し、 前記開発環境は、コンパイラを構築するコンパイラカス
タマイズ部、アセンブラを構築するアセンブラカスタマ
イズ部、及びシミュレータを構築するシミュレータ生成
部を含み、 前記コンフィグレーション指定ファイルは、高位な記述
を含むことを特徴とするシステムLSI開発環境生成方
法。 - 【請求項40】 コンピュータに入力されたコマンドを
解析させ、 前記解析したコマンドに応じて、システムLSIのコン
フィグレーションを記述した高位な記述を含むコンフィ
グレーション指定ファイルの情報に基づき、コンパイラ
を構築するコンパイラカスタマイズ部、アセンブラを構
築するアセンブラカスタマイズ部、及びシミュレータを
構築するシミュレータ生成部を生成させることを特徴と
するシステムLSI開発環境生成方法。 - 【請求項41】 前記高位な記述は、少なくともビット
連結、部分ビット切り出し、関数形式、符号のキャスト
演算子、一時変数、オーバーフローに対する動作記述を
含むことを特徴とする請求項39又は40記載のシステ
ムLSI開発環境生成方法又はそのプログラム。 - 【請求項42】 前記高位な記述は、式の左辺にもビッ
ト連結を記述することができることを特徴とする請求項
39又は40記載のシステムLSI開発環境生成方法又
はそのプログラム。 - 【請求項43】 前記コンフィグレーション指定ファイ
ルは、パイプライン定義の記述を含むことを特徴とする
請求項39又は40記載のシステムLSI開発環境生成
方法又はそのプログラム。 - 【請求項44】 前記パイプライン定義の記述は、パイ
プラインタイプの定義を含むことを特徴とする請求項3
9又は40記載のシステムLSI開発環境生成方法又は
そのプログラム。 - 【請求項45】 前記パイプライン定義の記述は、ハザ
ード情報を含むことを特徴とする請求項39又は40記
載のシステムLSI開発環境生成方法又はそのプログラ
ム。 - 【請求項46】 前記コンフィグレーション指定ファイ
ルは、パイプラインに関してコンパイラのためのスケジ
ューリング情報を含むことを特徴とする請求項39又は
40記載のシステムLSI開発環境生成方法又はそのプ
ログラム。 - 【請求項47】 前記コンフィグレーション指定ファイ
ルは、パイプラインに関してハザード検証ベクトル生成
のための記述を含むことを特徴とする請求項39又は4
0記載のシステムLSI開発環境生成方法又はそのプロ
グラム。 - 【請求項48】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、システムLSIのコン
フィグレーションを記述したコンフィグレーション指定
ファイルに記載された動作命令からハードウェアリソー
ス割り当てとスケジューリングを行なうスケジューリン
グ部と、コア部及び制御パスとメモリとのインターフェ
ースを整合させるインターフェース整合部と、C言語を
Verilog に変化する変換部とを含むRTL生成部を生成
することを特徴とするシステムLSI開発環境生成方
法。 - 【請求項49】 コンピュータに入力されたコマンドを
解析させ、 前記解析したコマンドに応じて、システムLSIのコン
フィグレーションを記述したコンフィグレーション指定
ファイルに記載された動作命令からハードウェアリソー
ス割り当てとスケジューリングを行なうスケジューリン
グ部と、コア部及び制御パスとメモリとのインターフェ
ースを整合させるインターフェース整合部と、C言語を
Verilog に変化する変換部とを含むRTL生成部を生成
させることを特徴とするシステムLSI開発環境生成プ
ログラム。 - 【請求項50】 インターフェース整合部は、前記動作
命令からハードウェアリソース割り当てとスケジューリ
ング、コア部及び制御パスとメモリとのインターフェー
スを整合し、RTLを生成することを特徴とする請求項
48又は49記載のシステムLSI開発環境生成方法又
はそのプログラム。 - 【請求項51】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、システムLSIのコン
フィグレーションを記述したコンフィグレーション指定
ファイルの情報に基づきシステムLSIの開発環境を生
成し、 前記開発環境は、検証ベクトルを生成する検証ベクトル
生成部を含み、 前記検証ベクトル生成部は、前記コンフィグレーション
指定ファイルの動作命令からプロセッサの検証ベクトル
を生成することを特徴とするシステムLSI開発環境生
成方法。 - 【請求項52】 前記検証ベクトル生成部は、前記コン
フィグレーション指定ファイルのレジスタ情報からIS
A情報を生成することを特徴とする請求項51記載のシ
ステムLSI開発環境生成方法又はそのプログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002127381A JP4202673B2 (ja) | 2002-04-26 | 2002-04-26 | システムlsi開発環境生成方法及びそのプログラム |
US10/197,891 US7168060B2 (en) | 2002-04-26 | 2002-07-19 | Method of generating development environment for developing system LSI and medium which stores program therefor using VLIW designating description |
EP02016338A EP1357485A3 (en) | 2002-04-26 | 2002-07-25 | Method of generating development environment for developing system LSI and medium which stores program therefor |
TW091123691A TW571237B (en) | 2002-04-26 | 2002-10-15 | Method of generating development environment for developing system chip and medium which stores program therefor |
KR10-2002-0066498A KR100533307B1 (ko) | 2002-04-26 | 2002-10-30 | 시스템 온 칩을 개발하기 위한 개발 환경의 생성 방법 및 그 프로그램을 기억한 매체 |
CNB021482489A CN100338568C (zh) | 2002-04-26 | 2002-10-31 | 开发片上系统用的开发环境的生成方法 |
US11/556,817 US20070061763A1 (en) | 2002-04-26 | 2006-11-06 | Method of generating development environment for developing system lsi and medium which stores program therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002127381A JP4202673B2 (ja) | 2002-04-26 | 2002-04-26 | システムlsi開発環境生成方法及びそのプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003323463A true JP2003323463A (ja) | 2003-11-14 |
JP2003323463A5 JP2003323463A5 (ja) | 2005-02-17 |
JP4202673B2 JP4202673B2 (ja) | 2008-12-24 |
Family
ID=28786839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002127381A Expired - Lifetime JP4202673B2 (ja) | 2002-04-26 | 2002-04-26 | システムlsi開発環境生成方法及びそのプログラム |
Country Status (6)
Country | Link |
---|---|
US (2) | US7168060B2 (ja) |
EP (1) | EP1357485A3 (ja) |
JP (1) | JP4202673B2 (ja) |
KR (1) | KR100533307B1 (ja) |
CN (1) | CN100338568C (ja) |
TW (1) | TW571237B (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008062768A1 (fr) | 2006-11-21 | 2008-05-29 | Nec Corporation | Système de génération de code d'opération de commande |
JP2008527914A (ja) * | 2005-01-13 | 2008-07-24 | ソニー株式会社 | 光無線通信のための方法及び装置 |
US7676774B2 (en) | 2006-05-17 | 2010-03-09 | Kabushiki Kaisha Toshiba | System LSI verification system and system LSI verification method |
JP2010086047A (ja) * | 2008-09-29 | 2010-04-15 | Nec Electronics Corp | シミュレーション装置及びシミュレーション方法 |
JP2013541778A (ja) * | 2010-10-18 | 2013-11-14 | アルゴトゥチップ コーポレーション | インテリジェント・アーキテクチャ・クリエータ |
JP2014510960A (ja) * | 2011-01-19 | 2014-05-01 | アルゴトゥチップ コーポレーション | ツール・ジェネレータ |
JP2015203895A (ja) * | 2014-04-11 | 2015-11-16 | 三菱電機株式会社 | 命令テーブル生成装置、命令デコードプログラム生成装置、命令テーブル生成方法、命令デコードプログラム生成方法、およびプログラム |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0215033D0 (en) * | 2002-06-28 | 2002-08-07 | Critical Blue Ltd | Instruction set translation method |
JP2005535966A (ja) * | 2002-08-09 | 2005-11-24 | インテル・コーポレーション | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US7392368B2 (en) * | 2002-08-09 | 2008-06-24 | Marvell International Ltd. | Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements |
US7302380B2 (en) * | 2002-12-12 | 2007-11-27 | Matsushita Electric, Industrial Co., Ltd. | Simulation apparatus, method and program |
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 |
US7685581B2 (en) * | 2003-06-27 | 2010-03-23 | Microsoft Corporation | Type system for representing and checking consistency of heterogeneous program components during the process of compilation |
US7707566B2 (en) * | 2003-06-26 | 2010-04-27 | Microsoft Corporation | Software development infrastructure |
US7559050B2 (en) * | 2003-06-30 | 2009-07-07 | Microsoft Corporation | Generating software development tools via target architecture specification |
US7086041B2 (en) * | 2003-06-27 | 2006-08-01 | Microsoft Corporation | Extensible type system for representing and checking consistency of program components during the process of compilation |
US7788652B2 (en) * | 2003-06-27 | 2010-08-31 | Microsoft Corporation | Representing type information in a compiler and programming tools framework |
US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
KR100638476B1 (ko) * | 2004-12-22 | 2006-10-26 | 삼성전자주식회사 | 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법 |
JP2006243838A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | プログラム開発装置 |
JP2006243839A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | 命令生成装置及び命令生成方法 |
CN100468327C (zh) * | 2005-11-10 | 2009-03-11 | 鸿富锦精密工业(深圳)有限公司 | 量测程序生成系统及方法 |
US7836435B2 (en) * | 2006-03-31 | 2010-11-16 | Intel Corporation | Checking for memory access collisions in a multi-processor architecture |
US7486096B2 (en) * | 2006-10-31 | 2009-02-03 | International Business Machines Corporation | Method and apparatus for testing to determine minimum operating voltages in electronic devices |
US7809925B2 (en) * | 2007-12-07 | 2010-10-05 | International Business Machines Corporation | Processing unit incorporating vectorizable execution unit |
JP2010160622A (ja) * | 2009-01-07 | 2010-07-22 | Toshiba Corp | シミュレータ |
KR101603202B1 (ko) * | 2009-09-21 | 2016-03-14 | 삼성전자주식회사 | 이기종 멀티프로세서 시스템 온 칩에서의 rpc 데이터 배치 방법 및 장치 |
US20110137922A1 (en) * | 2009-12-07 | 2011-06-09 | International Business Machines Corporation | Automatic generation of a query lineage |
CA2786613A1 (en) * | 2010-01-12 | 2011-07-21 | Google Inc. | Operating system auto-update procedure |
US8370784B2 (en) * | 2010-07-13 | 2013-02-05 | Algotochip Corporation | Automatic optimal integrated circuit generator from algorithms and specification |
KR20120077164A (ko) | 2010-12-30 | 2012-07-10 | 삼성전자주식회사 | Simd 구조를 사용하는 복소수 연산을 위한 사용하는 장치 및 방법 |
US20130290693A1 (en) * | 2012-04-27 | 2013-10-31 | Esencia Technologies Inc. | Method and Apparatus for the Automatic Generation of RTL from an Untimed C or C++ Description as a Fine-Grained Specialization of a Micro-processor Soft Core |
US9734263B2 (en) * | 2012-12-20 | 2017-08-15 | Intel Corporation | Method and apparatus for efficient pre-silicon debug |
US9244683B2 (en) * | 2013-02-26 | 2016-01-26 | Nvidia Corporation | System, method, and computer program product for implementing large integer operations on a graphics processing unit |
US9747084B2 (en) * | 2014-09-09 | 2017-08-29 | Google Inc. | Offline shader compilation |
CN104965687B (zh) * | 2015-06-04 | 2017-12-08 | 北京东方国信科技股份有限公司 | 基于指令集生成的大数据处理方法及装置 |
GB2554096B (en) * | 2016-09-20 | 2019-03-20 | Advanced Risc Mach Ltd | Handling of inter-element address hazards for vector instructions |
KR102545621B1 (ko) * | 2018-09-25 | 2023-06-20 | 시놉시스, 인크. | 상태-유지 루프들 및 발진 루프들을 식별하기 위한 하드웨어 시뮬레이션 시스템들 및 방법들 |
JP7024679B2 (ja) * | 2018-10-05 | 2022-02-24 | オムロン株式会社 | 開発支援プログラム、開発支援装置、および開発支援方法 |
CN111400979A (zh) * | 2020-03-24 | 2020-07-10 | 杭州博雅鸿图视频技术有限公司 | Soc的仿真方法、系统、电子设备及存储介质 |
CN111522583A (zh) * | 2020-04-08 | 2020-08-11 | 芯海科技(深圳)股份有限公司 | 一种生成配置文件的方法、装置、计算机设备及存储介质 |
CN111913097B (zh) * | 2020-08-26 | 2022-11-29 | 西安微电子技术研究所 | 一种用于测试SoC功能的测试电路、测试方法和SoC |
CN112100954B (zh) * | 2020-08-31 | 2024-07-09 | 北京百度网讯科技有限公司 | 验证芯片的方法、装置和计算机存储介质 |
CN112486906B (zh) * | 2020-12-18 | 2024-06-11 | 清华大学 | 格式化的可重构处理器汇编指令处理方法及装置 |
TWI764581B (zh) * | 2021-02-22 | 2022-05-11 | 群聯電子股份有限公司 | 記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623684A (en) * | 1994-05-17 | 1997-04-22 | Commquest Technologies, Inc. | Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing |
JP2869379B2 (ja) * | 1996-03-15 | 1999-03-10 | 三菱電機株式会社 | プロセッサ合成システム及びプロセッサ合成方法 |
GB2320111A (en) * | 1996-12-06 | 1998-06-10 | Jba Holdings Plc | Data processing system and method for software development/configuration |
JPH10222548A (ja) * | 1997-02-05 | 1998-08-21 | Hitachi Ltd | 設計支援方法 |
US6112018A (en) * | 1997-12-18 | 2000-08-29 | Advanced Micro Devices, Inc. | Apparatus for exchanging two stack registers |
US6477683B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
AU3484100A (en) | 1999-02-05 | 2000-08-25 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor andmethod for the same |
US7036106B1 (en) * | 2000-02-17 | 2006-04-25 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
JP2001249826A (ja) * | 2000-03-03 | 2001-09-14 | Rooran:Kk | システムlsi開発支援システムとその開発支援用プログラムを記録した記録媒体 |
US20010025363A1 (en) * | 2000-03-24 | 2001-09-27 | Cary Ussery | Designer configurable multi-processor system |
JP2002230065A (ja) * | 2001-02-02 | 2002-08-16 | Toshiba Corp | システムlsi開発装置およびシステムlsi開発方法 |
JP3764405B2 (ja) * | 2002-05-27 | 2006-04-05 | 株式会社東芝 | デバッグ装置及びデバッグ方法 |
JP2006243839A (ja) | 2005-02-28 | 2006-09-14 | Toshiba Corp | 命令生成装置及び命令生成方法 |
-
2002
- 2002-04-26 JP JP2002127381A patent/JP4202673B2/ja not_active Expired - Lifetime
- 2002-07-19 US US10/197,891 patent/US7168060B2/en not_active Expired - Fee Related
- 2002-07-25 EP EP02016338A patent/EP1357485A3/en not_active Withdrawn
- 2002-10-15 TW TW091123691A patent/TW571237B/zh not_active IP Right Cessation
- 2002-10-30 KR KR10-2002-0066498A patent/KR100533307B1/ko not_active IP Right Cessation
- 2002-10-31 CN CNB021482489A patent/CN100338568C/zh not_active Expired - Fee Related
-
2006
- 2006-11-06 US US11/556,817 patent/US20070061763A1/en not_active Abandoned
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008527914A (ja) * | 2005-01-13 | 2008-07-24 | ソニー株式会社 | 光無線通信のための方法及び装置 |
JP4794574B2 (ja) * | 2005-01-13 | 2011-10-19 | ソニー株式会社 | 光無線通信のための方法及び装置 |
US7676774B2 (en) | 2006-05-17 | 2010-03-09 | Kabushiki Kaisha Toshiba | System LSI verification system and system LSI verification method |
WO2008062768A1 (fr) | 2006-11-21 | 2008-05-29 | Nec Corporation | Système de génération de code d'opération de commande |
US8935512B2 (en) | 2006-11-21 | 2015-01-13 | Nec Corporation | Instruction operation code generation system |
JP2010086047A (ja) * | 2008-09-29 | 2010-04-15 | Nec Electronics Corp | シミュレーション装置及びシミュレーション方法 |
JP2013541778A (ja) * | 2010-10-18 | 2013-11-14 | アルゴトゥチップ コーポレーション | インテリジェント・アーキテクチャ・クリエータ |
KR101503620B1 (ko) | 2010-10-18 | 2015-03-18 | 알고토칩 코포레이션 | 지능형 아키텍처 생성기 |
JP2014510960A (ja) * | 2011-01-19 | 2014-05-01 | アルゴトゥチップ コーポレーション | ツール・ジェネレータ |
JP2015203895A (ja) * | 2014-04-11 | 2015-11-16 | 三菱電機株式会社 | 命令テーブル生成装置、命令デコードプログラム生成装置、命令テーブル生成方法、命令デコードプログラム生成方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN100338568C (zh) | 2007-09-19 |
US7168060B2 (en) | 2007-01-23 |
EP1357485A2 (en) | 2003-10-29 |
KR100533307B1 (ko) | 2005-12-05 |
TW571237B (en) | 2004-01-11 |
US20070061763A1 (en) | 2007-03-15 |
CN1453699A (zh) | 2003-11-05 |
EP1357485A3 (en) | 2008-10-22 |
KR20030084554A (ko) | 2003-11-01 |
JP4202673B2 (ja) | 2008-12-24 |
US20030204819A1 (en) | 2003-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4202673B2 (ja) | システムlsi開発環境生成方法及びそのプログラム | |
US7340692B2 (en) | System LSI development apparatus and the method thereof for developing a system optimal to an application | |
TW539965B (en) | Automated processor generation system for designing a configurable processor and method for the same | |
JP4619606B2 (ja) | 構成可能なプロセッサを設計する自動化されたプロセッサ生成システムおよびその方法 | |
JP2003323463A5 (ja) | ||
Ziogas et al. | NPBench: A benchmarking suite for high-performance NumPy | |
SE505783C3 (sv) | Foerfarande foer att tillverka en digital signalprocessor | |
JP5936135B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
CN110210046B (zh) | 应用程序及专用指令集处理器一体化敏捷设计方法 | |
US20040083088A1 (en) | Analysis of the performance of a portion of a data processing system | |
JP5151722B2 (ja) | データ処理装置およびその方法、並びにプログラム | |
dos Santos | Acceleration of applications with fpga-based computing machines: Code restructuring | |
Mahapatra et al. | Accelerating cycle-accurate system-level simulations through behavioral templates | |
Hoffmann et al. | A survey on modeling issues using the machine description language LISA | |
Prikryl et al. | Fast Translated Simulation of ASIPs | |
Wagstaff | From high level architecture descriptions to fast instruction set simulators | |
JP2010238256A (ja) | 拡張プロセッサを設計するシステム | |
CN117172166A (zh) | 处理器模型构建方法和处理器形式化验证方法 | |
Milner et al. | Quick piping: a fast, high-level model for describing processor pipelines | |
Othman | INVESTIGATION OF NEW ARCHITECTURAL FEATURES TO SUPPORT PERFORMANCE IMPROVEMENT IN EMBEDDED PROCESSORS | |
Daverveldt | LLVM-based ρ-VEX compiler | |
Malm et al. | Towards automated analysis of executable models | |
Pham-Quoc et al. | BKVex: An Adaptable VLIW Processor and Design Framework for Reconfigurable Computing Platforms | |
Milner et al. | Processor Pipelines | |
Marwedel | MIMOLA—a fully synthesizable language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040309 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050808 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060203 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060223 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20060324 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080909 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081009 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4202673 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121017 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131017 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |