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
Application number
JP2002127381A
Other languages
English (en)
Other versions
JP2003323463A5 (ja
JP4202673B2 (ja
Inventor
Nobu Matsumoto
展 松本
Katsuya Uchida
勝也 内田
Ryuichiro Oyama
隆一郎 大山
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 JP2002127381A priority Critical patent/JP4202673B2/ja
Priority to US10/197,891 priority patent/US7168060B2/en
Priority to EP02016338A priority patent/EP1357485A3/en
Priority to TW091123691A priority patent/TW571237B/zh
Priority to KR10-2002-0066498A priority patent/KR100533307B1/ko
Priority to CNB021482489A priority patent/CN100338568C/zh
Publication of JP2003323463A publication Critical patent/JP2003323463A/ja
Publication of JP2003323463A5 publication Critical patent/JP2003323463A5/ja
Priority to US11/556,817 priority patent/US20070061763A1/en
Application granted granted Critical
Publication of JP4202673B2 publication Critical patent/JP4202673B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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

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

(57)【要約】 【課題】 高性能なハードウェアを有するLSIの開発
環境を十分なフレキシビリティで、簡単に生成すること
が困難であった。 【解決手段】 システムLSI開発環境生成方法は、コ
ンフィグレーション指定ファイルからコンパイラを構築
するコンパイラカスタマイズ部、アセンブラを構築する
アセンブラカスタマイズ部、及びシミュレータを構築す
るシミュレータ生成部を含み、コンフィグレーション指
定ファイルは、命令を実行するハードウェアの指定を含
む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えばコンフィグ
ラブル(configurable)プロセッサを含むシステムLS
Iの設計開発に利用される開発環境(development envi
ronment)に係り、特に、システムLSIの設計開発環
境を生成する方法及びそのプログラムに関する。
【0002】
【従来の技術】近年、例えばマルチメディア処理等に適
用されるLSIに対するニーズが多様化している。さら
に、このLSIの市場サイクルは短期化している。この
ため、アプリケーションに最適なLSIを短期に開発す
るためのシステムLSIの設計開発環境が望まれてい
る。ここで、開発環境とは、システムLSIを構築する
際に必要となるハードウェアやシステム開発支援ツール
などのソフトウェアを意味する。
【0003】一般に、LSI内に汎用プロセッサを搭載
した場合、ハードウェアの設計コストは殆んどゼロに等
しい。しかし、このような構成のLSIはアプリケーシ
ョンに最適化されていないため、アプリケーションの性
能をフルに引き出すことが困難である。このため、最近
では、命令やメモリ構成等が選択可能なコンフィグラブ
ル・プロセッサが提供されている。また、コンフィグラ
ブル・プロセッサの提供者は、コンフィグレーションを
指定して論理合成可能なハードウェア記述を出力するシ
ステムを提供している。このようなプロセッサ及びシス
テムによれば、オプション命令やメモリサイズを指定す
ることによって、アプリケーションに最適な構成のプロ
セッサを短期間で開発することが可能となる。
【0004】一方、通常、命令セット等を変えた場合、
コンパイラやシミュレータ等のソフトウェア開発ツール
も変更しなければならない。このため、コンフィグレー
ションを指定することにより、ハードウェア記述と同時
に、ソフトウェア開発ツールを生成するシステムも提供
されるようになっている。このようなシステムによれ
ば、ソフトウェア開発ツールの設計に要する労力及び時
間を大幅に削減することができる。
【0005】
【発明が解決しようとする課題】従来、RISC(Redu
ced Instruction Set Computer)コアに対してコンフィ
グラブルなDSP(Digital Signal Processor)コプロ
セッサが開発されている。しかし、このDSPコプロセ
ッサは予め用意されたISA(Industry Standard Arch
itecture)のみ使用可能とされ、それ以外は使用できな
い。また、新たな命令を追加できるコンフィグラブル・
プロセッサも有るが、固定されたタイプの命令のみが追
加可能である。このため、例えばVLIW(Very Long
Instruction Word)モード等のアーキテクチャに対応す
ることが困難であり、フレキシビリティが十分ではな
い。
【0006】さらに、追加の命令を記述するために、例
えばVerilogのようなハードウェア記述言語(HDL:H
ardware Description Language)が用いられており、効
率良く命令を追加することができない。
【0007】さらに、ユーザが定義した命令より必要な
開発環境を生成することが困難であった。
【0008】本発明は、上記課題を解決するためになさ
れたものであり、その目的とするところは、高性能なハ
ードウェアを有するLSIの開発環境を十分なフレキシ
ビリティで、簡単に生成することが可能なシステムLS
I開発環境生成方法及びそのプログラムを提供しようと
するものである。
【0009】
【課題を解決するための手段】本発明のシステムLSI
開発環境生成方法は、上記課題を解決するため、入力さ
れたコマンドを解析し、前記解析したコマンドに応じ
て、システムLSIを開発するためのコンパイラを構築
するコンパイラカスタマイズ部、アセンブラを構築する
アセンブラカスタマイズ部、及びシミュレータを構築す
るシミュレータ生成部を生成する。
【0010】すなわち、本発明に係る方法の特徴は、シ
ステムLSIのコンフィグレーションが記述されたコン
フィグレーション指定ファイルの情報を入力し、且つコ
ンフィグレーション指定ファイルが命令を実行するハー
ドウェアの指定を含んでいることである。ここで、コン
フィグレーション指定ファイルは、特に、ユーザ定義命
令の命令記述であり、具体的には、以下に述べるアーキ
テクチャ・データ・ベース・ファイルである。
【0011】また、本発明のシステムLSI開発環境生
成プログラムは、コンピュータに、入力されたコマンド
を解析させ、前記解析したコマンドに応じて、命令を実
行するハードウェアの指定を含み、システムLSIのコ
ンフィグレーションが記述されたコンフィグレーション
指定ファイルの情報に基づき、システムLSIを開発す
るためのコンパイラを構築するコンパイラカスタマイズ
部、アセンブラを構築するアセンブラカスタマイズ部、
及びシミュレータを構築するシミュレータ生成部を生成
させることを特徴とする。
【0012】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。
【0013】先ず、図1乃至図10を用いて、本実施形
態に適用されるシステムLSI開発装置について概略的
に説明する。
【0014】(システムLSI開発装置の構成)図1
は、システムLSI開発装置1を示している。システム
LSI開発装置1は、設定ファイル生成部2、ユーザ定
義モジュール・ユーザ定義命令記憶部3、システムLS
I開発環境生成部4、性能評価部5、終了判定部6、変
更項目設定部7、入出力インターフェース部8及び制御
部9を有している。
【0015】システムLSI開発装置1には、装置1内
に各種情報を入力するための入力部10と、装置1から
の各種情報を出力するための出力部11とが接続されて
いる。入力部10としては、例えばキーボード、マウス
ポインタ、テンキー、タッチパネル等を用いることがで
きる。出力部11としては、例えばディスプレイ装置や
印刷装置等が適用される。
【0016】図2乃至図13は、上記システムLSI開
発装置1内の各部の構成を示している。
【0017】(設定ファイル生成部の構成)図2は、設
定ファイル生成部2の構成を示している。設定ファイル
生成部2は、入力解析部21、ローカルメモリマップ生
成部22、オプション情報記憶部23、デバイス構成記
憶部24、キャッシュ構成記憶部25及びローカルメモ
リマップ記憶部26を備えている。設定ファイル生成部
2は、システムLSIの設計上のコンフィグレーション
を記述したコンフィグレーション指定ファイル(以下に
おいて、アーキテクチャ・データ・ベース・ファイルと
も言う)、可変値設定情報、最優先項目設定情報、目標
性能指定情報、及び変更項目設定部7から供給される変
更項目リスト情報に基づいて、システムLSI設計上の
コンフィグレーションを生成し、格納する。前記目標性
能指定情報は、ハードウェア性能、ソフトウェア性能の
一方又は両方を含む。ハードウェアの性能指標として
は、面積、周波数、消費電力を含む。ソフトウェアの性
能指標としては、コードサイズ、実効命令数、実行サイ
クル数を含む。
【0018】前記入力解析部21は、コンフィグレーシ
ョン指定ファイルの内容を解析し、コンフィグレーショ
ン指定ファイル内に記述されたコンフィグレーションの
内容をオプション情報記憶部23、デバイス構成記憶部
24、及びキャッシュ構成記憶部25の各部に分割す
る。
【0019】前記コンフィグレーション指定ファイル内
には、オプション命令の有無、デバイスの有無、キャッ
シュの有無、キャッシュサイズ、ユーザ定義命令、ユー
ザ定義ハードウェアモジュール、LSI内部のメモリマ
ップ、マルチプロセッサ構成(マルチプロセッサの数な
ど)等の情報を記述するものとする。なお、ユーザ定義
命令やユーザ定義ハードウェアモジュールの記述部分に
は、ユーザ定義命令やユーザ定義モジュールを記述した
ファイル名の記憶位置(この実施の形態においては、ユ
ーザ定義モジュール、ユーザ定義命令記憶部3の位置)
を絶対パスや相対パス等の記述によって指定する。
【0020】前記デバイスの有無において、デバイスに
は、命令メモリ、データメモリ、コプロセッサが含ま
れ、命令メモリ、データメモリの可変項目には、サイ
ズ、アドレスが含まれる。前記メモリマップにおいて、
メモリマップには、外部メモリ領域、内部メモリ領域、
入出力領域が含まれ、外部メモリ領域には、キャッシュ
アクセス領域の指定項目も含まれる。また、各メモリ領
域にはレイテンシ情報も含まれる。
【0021】また、コンフィグレーション指定ファイル
からシステムLSI設計上のコンフィグレーションを指
定する際、ユーザは、設定ファイル生成部2内の各記憶
部23〜26で定義されている可変値の中から1つの値
を選択する。この選択した値を、例えば図3に示すよう
なコンフィグレーション指定ファイル内に記述する。
【0022】すなわち、例えば、以下に示すSIZE記
述において、内蔵データメモリのサイズは、例えば1、
2、4、8、16、32[KB]のいずれかを選択する
ことが可能である。このSIZE記述を省略した場合、
サイズは、デフォルト値の8[KB]になることを示し
ている。
【0023】DMEM: SIZE Ptype={1,2,4,8,16,32},default=8,comment=“内
蔵データメモリのサイズ”;また、以下に示すISA_
DEFINE記述においては、ユーザ定義命令のISA
定義ファイル名として任意の文字列を記述しなければな
らないことを示す。
【0024】UCI: ISA_DEFINE Ptype=string, default=“”,comment=“ユ
ーザ定義命令のISA定義ファイル名”;なお、上記の
コンフィグレーションの設定作業は、入出力インタフェ
イス部8を介した対話的な処理によって行なうようにし
ても良い。コンフィグレーションの設定を対話的に行な
うようにすることにより、ユーザは、コンフィグレーシ
ョン指定ファイルの文法等を意識せずに、コンフィグレ
ーションを容易に設定することができる。このため、コ
ンフィグレーションの設定に要する時間を直接ファイル
に記述する場合と比べて短縮することができる。さら
に、全てのコンフィグレーションの設定を対話的に処理
できる。このため、コンフィグレーションの1つを設定
し忘れる等の間違いを防止することができる。
【0025】また、コンフィグレーションに可変値を設
定するようにしても良い。コンフィグレーションに可変
値を設定した場合、設定ファイル生成部2は、基本設
定、可変値の測定用に作られたテンプレート、ユーザが
設定した値のいずれかを用いて自動的に他のコンフィグ
レーションの設定値を導出するようにする。コンフィグ
レーションに可変値を設定することにより、ユーザは、
コンフィグレーションの可変範囲に応じた複数の開発環
境、検証環境を同時に得ることができる。このため、L
SI開発サイクルの短縮を実現することが可能となる。
【0026】さらに、コンフィグレーションの中で最優
先項目を設定するようにしても良い。コンフィグレーシ
ョンの中で最優先項目が設定された場合、設定ファイル
生成部2は、最優先項目以外の部分の設定値について、
最優先項目が最適となるようなコンフィグレーションを
生成する。この生成には、基本設定、及び最優先項目に
基づいてテンプレート又はユーザが指定した設定値が使
用される。コンフィグレーションの中に最優先項目を指
定することにより、ユーザはシステムLSIの構成を認
識することなく、優先項目に適した構成を開発環境、検
証環境を作成し、それを評価できる。
【0027】(ローカルメモリマップ生成部の構成)ロ
ーカルメモリマップ生成部22は、コンフィグレーショ
ン指定ファイルから指定されるグローバルマップと、シ
ステムLSI内の個々のプロセッサのローカルメモリ情
報とを統合し、システムLSI内のプロセッサ毎のロー
カルメモリマップを生成する。前記グローバルマップ
は、例えば図4(a)に示すような全プロセッサに共通
のメモリ領域である。また、前記ローカルメモリ情報と
しては、例えば命令メモリ、データメモリ、命令キャッ
シュ、データキャッシュを含む。図4(b)は、生成さ
れたローカルメモリマップの一例を示している。この生
成されたローカルメモリマップは、ローカルメモリマッ
プ記憶部26内に格納される。
【0028】ここで、プロセッサのローカルメモリ領域
は、個々のローカルメモリ毎に予約されているグローバ
ルマップ中のメモリ領域に対して、コンフィグレーショ
ン指定ファイルにより指定されるメモリサイズを反映さ
せることによって生成することができる。また、予めグ
ローバルマップ中に各プロセッサのシャドウメモリ情報
を指定することにより、各プロセッサのローカルマップ
に他のプロセッサのローカルメモリを含むシャドウメモ
リを作ることもできる。
【0029】オプション情報記憶部23は、入力解析部
21によるコンフィグレーション指定ファイルの解析結
果に基づいて、システムLSIに内蔵されるプロセッサ
の命令セット内のオプション命令のON/OFF(オン
/オフ)の種別に関する情報を格納する。
【0030】デバイス構成記憶部24は、入力解析部2
1によるコンフィグレーション指定ファイルの解析結果
に基づいて、システムLSIに内蔵されるデバイスのO
N/OFFの種別に関する情報とそのサイズに関する情
報、アドレス情報、プロセッサの命令メモリやデータメ
モリに関する情報、及びコプロセッサ等のオプションハ
ードウェアに関する情報を格納する。
【0031】(キャッシュ構成記憶部の構成)キャッシ
ュ構成記憶部25は、入力解析部21によるコンフィグ
レーション指定ファイルの解析結果に基づいて、システ
ムLSIのキャッシュのON/OFFの種別、キャッシ
ュのタイプ(direct, 2-way, 4-way, n-way)に関する
情報、及びサイズに関する情報を格納する。
【0032】(ローカルメモリマップ記憶部の構成)ロ
ーカルメモリマップ記憶部26は、ローカルメモリマッ
プ生成部22が生成したローカルメモリマップに関する
情報を格納する。
【0033】(ユーザ定義モジュール・ユーザ定義命令
記憶部の構成)ユーザ定義モジュール・ユーザ定義命令
記憶部3は、ユーザ定義のハードウェアモジュール及び
システムLSIに内蔵するプロセッサの命令セットにお
けるユーザ定義命令に関する情報を格納する。ここで、
ユーザ定義のハードウェアモジュールに関する情報はR
TL(Register Transfer Level)記述又は動作記述、及
び命令の動作に関する情報は、Cモデル又はC++モデ
ルで記述して記憶部3内に格納することが望ましい。動
作記述とCモデル又はC++モデル記述は同一でも良
い。また、ユーザ定義命令に関する情報は、コンフィグ
レーション指定ファイルから指定される、図4(c)に
示すようなISA定義ファイルに記述して格納すること
が望ましい。
【0034】(システムLSI開発環境生成部の構成)
システムLSI開発環境生成部4は、図5に示すよう
に、RTL生成部41、シミュレータカスタマイズ部4
2、コンパイラカスタマイズ部43、アセンブラカスタ
マイズ部44及び検証ベクトル生成部45を備えてい
る。このシステムLSI開発環境生成部4は、設定ファ
イル生成部2内に格納されているコンフィグレーション
の全ての組み合わせについて、システムLSIのハード
ウェア、検証環境及び開発設計ツールを生成する。
【0035】以下、このシステムLSI開発環境生成部
の内部構成について詳細に説明する。
【0036】(RTL生成部の構成)RTL生成部41
は、設定ファイル生成部2の記憶部内に記憶されている
コンフィグレーションに基づいて、システムLSIに内
蔵されるプロセッサのRTL記述を生成する。
【0037】図6は、RTL生成部41の一実施例を示
している。ブロック接続部41dは、デバイス構成記憶
部24とキャッシュ構成記憶部25内に格納されたコン
フィグレーションを参照して、RTLテンプレート41
a、41bからユーザにより設定されたコンフィグレー
ションに対応するテンプレートを選択する。高位合成処
理部41eは、ユーザ定義モジュール・ユーザ定義命令
記憶部6内に格納されたユーザ定義命令又はユーザ定義
モジュールの仕様である動作記述を高位合成することに
よりRTL記述を生成する。さらに、接続部41dは、
プロセッサコア部のRTL記述41cに対して、前記選
択したRTLテンプレートと、高位合成処理部41eか
らのRTL記述とを接続することにより、プロセッサの
RTL記述を生成する。なお、記憶部3内の仕様がRT
L記述である場合、そのままインターフェース信号が合
うように接続する。
【0038】なお、マルチプロセッサ構成が定義された
場合、ブロック接続部41dは、複数のプロセッサ記述
を生成し、それらをバスで接続したマルチプロセッサの
RTL記述を生成するものとする。
【0039】また、RTLテンプレート41a、41b
内に含まれる命令メモリ、データメモリ、オプションハ
ードウェア、命令キャッシュ及びデータキャッシュは、
ユーザが選択可能なメモリサイズの各々についてRTL
記述が予め用意されている。これらRTL記述は、指定
されたコンフィグレーションに応じて選択的に接続可能
とされている。また、オプション命令については、オプ
ション命令に対応するハードウェアのテンプレートをオ
プション命令のON/OFF全ての組み合わせについて
用意する。
【0040】図7は、RTLテンプレートの一例を示し
ている。図7において、オプション命令ユニットのRT
Lテンプレートは、除算オプション命令(DIV)のO
N/OFF、及び最大最小値オプション命令(MINM
AX)のON/OFFの4通りの組み合わせについて、
RTL記述がそれぞれテンプレートとして用意されてい
る。これらテンプレートは、デバイス構成記憶部24と
キャッシュ構成記憶部25内に格納されたコンフィグレ
ーションに合わせて、コアRTL記述に選択的に接続さ
れる。また、コプロセッサ等のオプションハードウェア
についても、コンフィグレーションで有効と指定されて
いる場合、既定義のRTL記述がコアRTL記述に接続
される。さらに、ユーザ定義のハードウェアがある場
合、ユーザが記述したハードウェア記述がコアRTL記
述に接続される。
【0041】以上の接続処理によって、RTL生成部4
1は、設定されたコンフィグレーションに対応したプロ
セッサのRTL記述を生成する。例えば、プロセッサ1
を最初に構築する場合、ユーザは、コンフィグレーショ
ンのパラメータ指定として、プロセッサコアに4[K
B]の命令メモリと、4[KB]のデータメモリを追加
すれば、プロセッサ1のRTL記述を自動的に得ること
ができる。
【0042】また、プロセッサ2を構築する場合、ユー
ザは、コンフィグレーションのパラメータ指定として、
プロセッサコアに例えば、2[KB]の命令メモリ、4
[KB]のデータメモリ、2[KB]の命令キャッシ
ュ、4[KB]のデータキャッシュを追加する。さら
に、コプロセッサと幾つかのオプション命令とユーザ定
義命令のRTL記述を追加することにより、プロセッサ
2のRTL記述を得ることができる。
【0043】また、複数のRTLテンプレートを用意し
ておくのではなく、可変項目をパラメータ表現したRT
Lテンプレートにコンフィグレーションで設定された値
を反映させることによっても同等の効果を得ることがで
きる。さらに、このようなパラメータ化されたRTLテ
ンプレートは、メモリ、キャッシュ等の部分モジュール
毎でも良く、それらを含んだプロセッサ全体のものでも
良い。また、全てのパラメータを包含した1つのRTL
テンプレートでも良い。
【0044】(シミュレータカスタマイズ部の構成)図
8は、シミュレータカスタマイズ部42の一例を示して
いる。このシミュレータカスタマイズ部42は、コンフ
ィグレーションに沿った命令動作を実行するシミュレー
タを生成する。
【0045】図8において、再コンパイル部42cは、
シミュレータテンプレート42aにユーザ定義モジュー
ル・ユーザ定義命令記憶部3内に格納されたユーザ定義
ハードウェアのCモデルを組み込んで再コンパイルする
ことにより、C又はC++のシミュレータを再構築す
る。また、起動オプション情報抽出部42dは、設定フ
ァイル生成部内の前記デバイス構成記憶部24とキャッ
シュ構成記憶部25に格納されているデータを参照し
て、起動時のオプションを指定するシミュレータ起動オ
プションファイル(図9(a)参照)を生成する。
【0046】組み合わせ処理部42eは、再コンパイル
部42cから供給される再構築したシミュレータと、起
動オプション情報抽出部42dから供給されるシミュレ
ータ起動オプションファイルとを組み合わせることによ
り、コンフィグレーションに従った命令動作を実行する
シミュレータを生成する。
【0047】なお、シミュレータは、特定アドレス通過
時に、デバッグ指令の実行結果を出力する手段を備える
ことが望ましい。従来、実行途中で誤りが起きた場合、
エラーを出力するアサーションエラープログラム等があ
る。しかし、デバイスが正常に実行している時、途中経
過を調べるためには、途中結果を出力する命令をアプリ
ケーションに埋め込んでおくか、デバッガ等で実行を停
止させて途中経過を読み取るしがなかった。これに対し
て、起動時に指定されるアドレスを通過した際に所定の
情報を出力するようにすれば、シミュレータでアプリケ
ーションを実行している途中に途中経過を調べることが
可能となる。例えば、次に示すようなコマンドでシミュ
レータを起動する。
【0048】sim -load test。hex -printx mem(0x400)
at 0x1200 ここで、simは、システムLSIのシミュレータを示
し、 -load test。hexは、test。hexという16進数の
ファイルをロードするという命令、 -printx mem(0x40
0) at 0x1200は、0x1200番地を通過したときにメモリの
0x400番地の内容を出力する命令を示す。
【0049】すなわち、シミュレータは、この引数で指
定された指示を記憶し、プログラムカウンタが0x1200番
地を通過する度に0x400番地の内容を16進数でコンソ
ールに出力する。このとき、アプリケーションプログラ
ムには観測用のコードが埋め込まれているわけではな
い。このため、シミュレーションは、命令数やサイクル
数等の統計情報には全く影響を及ぼすことなく、アプリ
ケーションプログラムの実行を観測できる。また、特定
アドレスで実行を停止させ、人手を介してメモリの値を
読み出し表示させる等の作業が必要ない。このため、統
計情報を正確に取りながら、特に注目したい途中結果を
確認しながらアプリケーションプログラムのシミュレー
ションをすることができる。このため、効率良くLSI
を開発することができる。
【0050】また、シミュレータは、指定された以外の
領域に対してメモリアクセスが起きた場合、実行を停止
することが望ましい。設定されたコンフィグレーション
に従ってシミュレータを起動した時、使用可能なメモリ
が明確に与えられている。仮に、基板上で実装されてい
ない領域のメモリをアクセスすると、例えばバスエラー
となり、それ以後の動作は保証されない。動作が保証さ
れないプログラムは、シミュレータ実行時に間違いを指
摘することにより、早期に修正しておく必要がある。そ
こで、シミュレータは存在するメモリ領域を指定し、明
示的に指定されない領域はアクセス禁止とする。さら
に、シミュレータは、このアクセス禁止領域がアクセス
された場合、警告しプログラムの動作を停止する。ま
た、シミュレータは対話モード(デバッグモード)を有
し、対話モードに移行した場合、どこでエラーが発生し
たかが解析できるようになっている。すなわち、シミュ
レータがデバッガと通信して動作している場合、シミュ
レーション動作を中断してデバッガのコマンド待ちに移
行する。さらに、無効な領域をアクセスしたというエラ
ーを表示し、プログラムの誤りを早期に確実にユーザに
伝える。
【0051】また、メモリのデコード回路は、上位のア
ドレス信号線の接続を省略されて構成される場合があ
る。この場合、ターゲットでアドレスを間違えたプログ
ラムを実行してもバスエラーにはならない。しかし、ア
クセスが書き込みであった場合、意図しないアドレスの
内容を書き換えてしまい、後の実行結果が期待通りにな
らないことがある。この間違ったプログラムをRTLシ
ミュレータで実行した場合、誤りを直ぐに発見すること
ができない。しかし、シミュレータに正しいアドレスの
みをアクセスできるよう、正確なマッピング情報を与え
て実行させた場合、指定範囲以外のアドレスをアクセス
したことを即座に警告できる。しがたって、ユーザは間
違ったプログラムを早期に検出することができ、無駄な
解析時間を節約できる。このため、開発サイクルの短縮
を図ることができる。
【0052】なお、デバッガは、デバイス構成記憶部2
4とキャッシュ構成記憶部25内に格納されているデー
タを参照して、図9(b)に示すようなデバッガ起動オ
プションファイルを生成する。デバッガ起動オプション
ファイルを利用することにより、デバッガはコンフィグ
レーションに従った動作を行なうことが可能となる。
【0053】また、デバッガは、シミュレータの統計情
報を仮想的なレジスタ若しくは変数として読み出す手段
を有することが望ましい。デバッガは、$profileという
変数を特殊な変数として予約してある。統計情報は、領
域毎に管理されている。この統計情報は、デバッガの変
数読み出しコマンドprintによって表示される。例えば
領域の3番目の情報を表示させるためには、print $pro
file[3]のように入力する。
【0054】dbg> print$profile[3] profile3:Count:7 Inst=123 Cycle=145 dbg> さらに、言語ツールは、シミュレータ用のデバッグ用指
令をアドレスと共にシンボルやソース行と同等なデバッ
グ情報として出力する手段を有することが望ましい(タ
ーゲットの機械命令には反映されない)。コンパイラに
は、シミュレータ等で標準出力に途中結果等を出力する
ための拡張が施されている。#pragma cosoleoutに続く
文は、ターゲットの機械語には翻訳されず、シンボル名
や行番号と同様、デバッグ情報としてファイルに格納さ
れる。シミュレータは、デバッグ情報付きのオブジェク
トファイルを読み込んだとき、#pragma文が定義された
アドレス情報を記憶すると共に、デバッグ出力情報であ
るprintf(“a=%d\n”,a)を記憶する。シミュレータが該
当アドレスを実行しようとしたときに、デバッグ情報を
出力しなければならないと判断し、printf文をパーサー
に送りデバッグ情報を出力する。
【0055】このように、ターゲットの機械命令に影響
を与えずに、シミュレータ実行時にデバッグ情報を出力
し、シミュレータの実行も中断せずに内容を確認するこ
ともできる。このとき、シミュレータ実行時に収集され
る統計情報は、ターゲットで実行されるものと同一の情
報である。別の表現をすれば、ターゲットとシミュレー
タで同一のオブジェクトコードを用いることができるこ
とになる。したがって、実行環境の違いによる再コンパ
イルなどの時間が発生しなくなる分だけ開発サイクルを
短縮できる。また、単一のオブジェクトファイルを共有
できるため、管理が容易になることは明白である。
【0056】 (コンパイラカスタマイズ部の構成)コンパイラカスタ
マイズ部43は、オプション情報記憶部23とユーザ定
義モジュール・ユーザ定義命令記憶部3内に格納された
データを参照して、機械命令関数宣言を含む、図9
(c)に示すような機械命令関数宣言ヘッダファイルを
生成する。なお、ここでいう機械命令関数宣言とは、プ
ロセッサ固有の命令を高級言語から直接指定するため
に、プロセッサ固有の命令を高級言語の関数宣言として
記述したものである。
【0057】図10は、コンパイラカスタマイズ部43
の一実施例を示している。図10において、機械命令関
数宣言抽出部43cは、ユーザ定義モジュール・ユーザ
定義命令記憶部3内に格納されたユーザ定義命令を参照
して、対応する機械命令関数宣言を抽出する。また、結
合処理部部43dは、オプション情報記憶部23内に格
納されたデータを参照して、既定義のテンプレート43
bから有効なオプション命令に対応する機械命令関数宣
言を選択する。さらに、結合処理部43dは、前記テン
プレート43bと機械命令関数宣言抽出部43cから供
給される機械命令関数宣言を結合することにより、機械
命令関数宣言ヘッダファイルを生成する。この機械命令
関数宣言ヘッダファイルには、コンフィグレーションで
有効になったオプション命令とユーザ定義命令に対応す
る機械命令関数宣言が含まれる。
【0058】これにより、ユーザは、高級言語プログラ
ムからコンフィグレーションで指定したオプション命令
とユーザ定義命令を直接指定し、利用することが可能と
なる。
【0059】さらに、コンパイラカスタマイズ部43
は、オプション命令抽出部43aを有している。オプシ
ョン命令抽出部43aは、オプション情報記憶部23内
に格納されたデータを参照して、最適化に利用すること
ができるオプション命令の情報を取得する。このオプシ
ョン命令の情報に従って、コンパイラカスタマイズ部4
3は、コンパイラ起動時のオプションを指定するコンパ
イラ起動オプションファイル(図11(a)参照)を生
成する。
【0060】これにより、利用可能なオプション命令の
情報をコンパイラの最適化に反映させることができる。
また、コンパイラの関数ライブラリは、起動オプション
ファイルを使用してソースから再コンパイルされるの
で、利用可能なオプション命令を組み込んだライブラリ
を生成することができる。
【0061】(アセンブラカスタマイズ部の構成)アセ
ンブラカスタマイズ部44は、利用可能なオプション命
令とユーザ定義命令のニーモニックと命令形式の情報を
組み込んでアセンブラを再構築する。このアセンブラカ
スタマイズ部44によれば、利用可能な全ての命令の組
み合わせからなるアセンブラプログラムについて、対応
するオブジェクトコードを生成することができる。
【0062】(検証ベクトル生成部の構成)検証ベクト
ル生成部45は、設定ファイル生成部2内の各記憶部内
で指定されたコンフィグレーションを参照して、指定さ
れたシステムLSIの構成を検証する検証ベクトルを生
成する。ここで、システムLSIの規模が大きい場合、
限られた時間内で検証を終えるため、基本となる構成か
ら変更された部分を重点的に検証することが必要とな
る。そこで、指定されたオプション命令や指定されたサ
イズのキャッシュ等を重点的に検証するように、検証ベ
クトルは、命令セット記述に基づいて、各命令に対応す
る検証ベクトル郡を生成することが望ましい(図11
(b)は検証ベクトル生成用のユーザ定義命令ファイル
の一例を示す)。
【0063】次に、本実施形態について、さらに具体的
に説明する。
【0064】本実施形態の環境は、プロセッサの命令動
作を記述したコンフィグレーション指定ファイル(アー
キテクチャDBファイル)から、RTL、コンパイラ、
アセンブラ、シミュレータ、検証ベクトル、デバッガが
自動的に構築される。このコンフィグレーション指定フ
ァイルは、予め複数定義されているアーキテクチャの中
の1つを指定する記述(アーキテクチャ型の指定)を含
む。ここで言う、アーキテクチャ型の例としては、VL
IWモードで実行されること(特定のパイプ(VLIW
スロット)で実行されること)、DSP命令を含む。こ
のアーキテクチャ型の指定に基づいて、コンパイラの命
令スケジューリング、及びVLIWの並列化機能が制御
される。また、命令セット・シミュレータにおける性能
見積値が調整させる。この環境を用いることにより、ユ
ーザはアプリケーションに応じて、独自に命令を定義す
ることができる。このユーザが定義した命令をユーザ定
義命令と呼ぶ。また、高水準言語によりプログラムを作
成し、そのプログラムの性能をシミュレータを用いて評
価することが可能となる。
【0065】さらに、基本的な構成要素として、ユーザ
定義命令に対して、機械命令関数の環境が自動的に構築
される。機械命令関数を用いることにより、コンパイラ
の持つ機能、例えば命令スケジューリング、VLIWの
並列化、レジスタ割付等を使用することが可能となる。
【0066】以下、各実施形態において、具体的に説明
する。
【0067】(第1の実施形態)図12は、本発明の第
1の実施形態を示している。図12は、図1に示すシス
テムLSI開発環境生成部3のプログラム構成を概略的
に示しており、ほぼ図5に示す構成と同様である。
【0068】設定ファイル生成部2から供給されるアー
キテクチャDBファイルとしてのコンフィグレーション
指定ファイルは、コマンドインタープリタに供給され
る。コマンドインタープリタは、ユーザが指定するコマ
ンドを解析し、解析したコマンドの内容に応じて、例え
ばRTL生成部、シミュレータ生成部、コンパイラカス
タマイズ部、アセンブラカスタマイズ部、検証ベクトル
生成部、デバッガ生成部の実行順序を制御する。実行方
式としては、予め一連の処理を登録しておき、これら処
理を連続して実行させるバッチ処理や、会話型処理等が
選択可能とされている。ユーザが指定するコマンドは、
例えばGUI(Graphical User Interface)、或はCU
I(Character Base User Interface)等を用いて入力
される。
【0069】図13は、アーキテクチャDBファイルと
してのコンフィグレーション指定ファイルの一例を示し
ている。コンフィグレーション指定ファイルには、例え
ばプロセッサの指定、レジスタ定義、命令定義等が記述
可能とされている。プロセッサの指定には、例えばプロ
セッサの名前、及びタイプが記述可能とされている。図
13において、プロセッサは、アーキテクチャ型として
タイプ(2_WAY_VLIW)が記述されている。つまり、予め
定義されているアーキテクチャのうち、2−WAYのV
LIWを選択することを表している。
【0070】また、命令定義は、命令のニーモニック、
ビットパターン、及び動作記述からなる。ここで、ビッ
トパターンは、オペコード及びオペランドのビット情報
を含む。
【0071】動作記述は、通常のプログラムの動作記述
の他、ビット分割、ビット結合、サイン/ゼロ拡張、オ
ーバーフロー動作などを記述することができる。また、
SWAP動作等を実現するために必要な一時変数を使用
することもできる。
【0072】尚、図13には、一部のみを記載してい
る。
【0073】第1の実施形態によれば、コマンドインタ
ープリタにより、解析したコマンドの内容に応じて、R
TL生成部、シミュレータ生成部、コンパイラカスタマ
イズ部、アセンブラカスタマイズ部、検証ベクトル生成
部、デバッガ生成部の実行順序が制御される。このた
め、ユーザは、開発環境の生成順序を任意に設定するこ
とができる。したがって、アプリケーションの開発順序
に応じて任意に開発環境を生成することができる。
【0074】(第2の実施形態)第2の実施形態は、前
記レジスタ定義部に関する。
【0075】図14は、図13に示すレジスタ定義部の
記載例を具体的に示している。レジスタ定義部には、汎
用レジスタの個数、コンパイラのレジスタ使用法(関数
の戻り値用レジスタ、引数用レジスタ、関数コールによ
りコールされた関数に引き継がれるレジスタ、関数コー
ルによりコールされた関数に引き継がれないレジスタ、
スタックポインタ用レジスタ、グローバルポインタ用レ
ジスタ、タイニーボインタ用レジスタ、0レジスタ
等)、汎用レジスタの別名定義、及び制御レジスタ定義
を指定する。レジスタ使用法は省略可能であり、省略し
た場合、デフォルトの使用法が適用されたコンパイラが
生成される。
【0076】図14において、汎用レジスタの数GPR
は16個、コンパイラのレジスタの使い方として、関数
の戻り値用レジスタRETはレジスタ0、関数引数用レ
ジスタARGはレジスタ1、2、3、4、ゼロ専用レジ
スタZEROはレジスタ12、スタックポインタレジス
タSPはレジスタ15と定義されている。また、制御レ
ジスタとしてリンクポインタLPが定義されている。
【0077】別名(alias)定義において、レジスタの
別名を定義することができる。別名を必要としない場合
は省略する。別名定義を利用することで、ユーザが直接
アセンブリコードを記述する場合、自分の好みに合わせ
て記述することかできる。例えばスタックポインタSP
に対応するレジスタがレジスタ15である場合、レジス
タ15の別名としてSPを定義したとする。すると、ア
センブリコード内でSPと記述すると、アセンブラはS
Pをレジスタ15と認識することができる。
【0078】また、レジスタ数が少ない場合、一部の特
殊使用レジスタ、例えばタイニーポインタ用レジスタT
P(図示せず)を汎用レジスタとして扱う場合がある。
このとき、このレジスタをタイニーポインタとして使用
する場合、“TP”と記述し、このレジスタを汎用レジ
スタとして使用する場合は、レジスタ番号を記述する。
このように記述すればアセンブリコードにより、このレ
ジスタがタイニーポインタとして使用されているのか、
汎用レジスタとして使用されているかを区別することが
できる。したがって、保守性の高いアセンブリコードを
構築できる。
【0079】上記コンフィグレーション指定ファイルに
記述された情報に基づき、コンパイラ、アセンブラ、シ
ミュレータ、デバッガ、検証ベクトル等がカスタマイズ
される。すなわち、図12に示すように、コンパイラカ
スタマイズ部にはレジスタの使用法及びレジスタの別名
が供給され、アセンブラカスタマイズ部にはレジスタ名
とレジスタの別名、RTL生成部、シミュレータカスタ
マイズ部、検証ベクトル生成部、デバッガ生成部にはレ
ジスタ名が渡される。
【0080】例えばコンパイラカスタマイズ部は、レジ
スタ定義部内で定義された汎用レジスタと制御レジスタ
の情報を元に、コンパイラを生成する。このコンパイラ
は各レジスタに直接アクセスすることが可能なレジスタ
擬似変数の定義を有している。このレジスタ擬似変数を
用いることにより、ユーザは高水準言語でプロセッサの
持つ各レジスタに直接アクセスすることができる。
【0081】また、コンフィグレーション指定ファイル
において、アキュムレータ及びシフトアマウントレジス
タを定義することも可能である。
【0082】図15は、アキュムレータの定義の一例を
示している。この例は、256bitのアキュムレータ
が2個有ることを示している。
【0083】図16は、シフトアマウントレジスタの定
義の一例を示している。この例は、シフトアマウントレ
ジスタが2本あることを示している。
【0084】上記第2の実施形態によれば、ユーザはア
プリケーションに合わせてコンパイラのレジスタの使い
方を変更することができる。例えば、アプリケーション
内で頻繁に即値“0”を使う場合、常に“0”を値とす
るレジスタを用意することにより、即値“0”を作るた
めの命令を生成する必要がなくなる。このため、コード
サイズ、及び実行性能をともに向上することができる。
【0085】また、アプリケーション内で即値“0”を
あまり使わない場合、常に“0”を値とするレジスタを
用意しないことにより、他の用途のためのレジスタ数を
増加できる。このため、レジスタ不足によるメモリアク
セスの頻度を低減でき、コードサイズ及び実行性能をと
もに向上することができる。
【0086】さらに、レジスタ定義は、デフォルトを有
し、ユーザがレジスタの使用法を省略した場合、デフォ
ルトの使用法が設定される。このように、コンパイラの
デフォルトの使用法を採用したとき、ユーザはアプリケ
ーションの性能を計測することができる。この計測した
性能を参考とすることにより,より良いレジスタ使用法
を指定可能となる。
【0087】また、コンパイラはレジスタ擬似変数の定
義を有している。このため、ユーザはレジスタ定義に記
述したすべてのレジスタに高水準言語内でアクセスする
ためのレジスタ擬似変数を使用することが可能になる。
このレジスタ擬似変数は、高水準言語内で制御レジスタ
等の特別なレジスタにアクセスする場合に有益であり、
コンパイラのインラインアセンブル機能とあわせて利用
することも考えられる。したがって、全てのレジスタの
レジスタ擬似変数を用意する機能は効果があると言え
る。
【0088】さらに、レジスタ定義部は別名定義を有
し、ユーザの好みに合わせてレジスタ名を定義すること
ができる。したがって、使い勝手がよく、保守性の高い
アセンブリコードを構築できる。
【0089】(第3の実施形態)次に、本発明の第3の
実施形態について説明する。第3の実施形態はVLIW
に関する。
【0090】VLIWに関する命令の動作定義は、コン
フィグレーション指定ファイル内の命令定義部で行な
う。命令定義部には命令の仕様、オペランド(OP)コ
ード、及び動作内容を記述する。命令の仕様、及びOP
コードの情報に基づき、アセンブラの動作を定義するア
センブラ定義ファイルを生成する。また、動作内容の定
義に基づき、命令の仕様定義に記述されていない命令を
動作させる際、データの読み込みや書き込みが必要なレ
ジスタの情報を集め、機械命令関数定義に適用する。こ
れにより、コンパイラはより良いレジスタ割付と命令ス
ケジューリングが可能になる。
【0091】コンフィグレーション指定ファイルには、
コプロセッサに関しても定義することができる。すなわ
ち、図7に示すプロセッサ2のように、例えばRISC
コアのようなプロセッサコアに対して、コプロセッサが
接続可能とされている。このコプロセッサとしては、例
えばVLIW(Very Long Instruction Word)モード、
DSP(Digital Signal Processor)がある。
【0092】図17は、コプロセッサ定義の一例を示し
ている。コア命令と区別するため、コプロセッサ定義で
あることを示す情報をアーキテクチャ型として持ってい
る。すなわち、コプロセッサの名前、及びコプロセッサ
のタイプが記述される。この記述の後にコプロセッサ定
義の関連情報として、レジスタ定義と命令定義を定義す
る。コプロセッサ定義の関連情報は、上記レジスタ定義
と命令定義のほかに、VLIWモードの実装の有無(無
し、2並列、3並列)、演算データ幅定義(コプロセッ
サ演算途中で保証されるデータの幅)を持っている。
【0093】VLIWモードが実装される場合、コプロ
セッサ命令がVLIWモードのスロットのどこに入るべ
きかを表す情報(図17のV3)が命令セット定義に含
まれる。このスロットの定義は、プロセッサの使用に依
存して決定され、命令を並列化する際、どのスロットに
入る命令であるかを示す情報となる。
【0094】この情報を元にコプロセッサ命令に関する
前記機械命令関数定義ファイルが生成される。前記コン
パイラカスタマイズ部は、この機械命令関数定義ファイ
ルに基づき、ユーザが定義したコプロセッサ命令を並列
化することができる。また、アセンブラカスタマイズ部
は、この機械命令関数定義ファイルに基づき、並列化が
使用上正しいかどうかをチェックできるようになる。
【0095】スロットの情報は、検証ベクトル生成部に
供給される。検証ベクトル生成部は、スロットの情報に
基づき、並列化した命令に対するプロセッサの動作を検
証するために必要な検証ベクトルを生成する。
【0096】演算定義幅情報は、命令の動作定義内に一
時変数がある場合、あるいは符号拡張演算がある場合、
その一時変数のビット幅と符号拡張後のビット幅をシミ
ュレータが何ビットとして扱うかの情報である。この幅
情報は、コプロセッサのレジスタ定義部内で定義された
レジスタのビット幅に依存する。例えば、コプロセッサ
のレジスタの演算幅が64ビットと指定された場合、演
算定義幅情報は最大で64ビットまで指定することがで
きるようになる。この演算定義幅情報はシミュレータカ
スタマイズ部に供給され、シミュレータに反映される。
【0097】上記第3の実施形態によれば、ユーザは定
義した全ての命令に対する機械命令関数の定義ファイル
を持つことができる。このため、機械命令関数を使用す
ることにより、ユーザはコンパイラのレジスタ割付、命
令スケジューリング、VLIWの並列化機能を得ること
ができる。したがって、アプリケーションの開発上大変
有益である。
【0098】また、スロット定義は、命令を並列化する
際、どのスロットに入る命令であるかを示す情報を有し
ている。このため、機械命令関数のカスタマイズ、アセ
ンブラのカスタマイズが可能となり、ユーザのアプリケ
ーション開発を促進できる。
【0099】さらに、命令を並列化する際に使うスロッ
ト定義の情報を機械命令関数定義に反映させている。こ
のため、VLIWモードが実装されている場合、ユーザ
定義のコプロセッサ命令を並列化する際、どのスロット
に入る命令かを示す情報が機械命令関数定義に供給され
る。このため、コンパイラは機械命令関数に対して正し
くVLIWの並列化を行なうことができる。機械命令関
数は高水準言語内で使用することができるため、ユーザ
のアプリケーションの開発を促進できる。
【0100】また、演算定義幅情報は、シミュレータに
反映される。このため、シミュレータは命令の動作をプ
ロセッサの仕様にあわせることができる。したがって、
シミュレータの動作と実際のプロセッサの動作を一致さ
せることができる。
【0101】さらに、スロット情報はアセンブラに反映
される。このため、アセンブラにおいて、ユーザが直接
手で記述したアセンブリコード内における命令の並列化
部分が、仕様通りであるかどうかをチェックすることが
できる。
【0102】また、スロット情報は検証ベクトルに反映
される。このため、並列化した命令に対するプロセッサ
の動作を検証するために必要な検証ベクトルを得ること
ができる。
【0103】(第4の実施形態)次に、本発明の第4の
実施形態について説明する。第4の実施形態は、DSP
に関する。
【0104】DSPをユーザ定義モジュールとして組み
込むための機能として、コンフィグレーション指定ファ
イルは、他のモジュールと区別するための識別子を持っ
ている。この識別子内にDSP関連の定義が記述され
る。DSPの命令定義では、任意のビット幅の命令を定
義することができる。また、レジスタ定義では任意のビ
ット幅のレジスタを定義することができる。
【0105】図18は、DSPモジュール用コンフィグ
レーション指定ファイルの例を示している。先頭にDSP_
NAMEというアーキテクチャ区別用識別子が記述されてい
る。また、レジスタ定義部<dsp_register>にレジスタ幅
定義REG_WIDTHが付加されている。この例の場合、レジ
スタ幅が20bitsに設定されている。また、命令定義部
<dsp_ISA>では20bitsの命令が定義されている。
【0106】さらに、DSPモジュール用コンフィグレ
ーション指定ファイルは、図示せぬ固定小数点ライブラ
リの小数点の位置を指定する情報を記述可能とされてい
る。この情報は、コンパイラカスタマイズ部に供給さ
れ、コンパイラの固定小数点ライブラリに反映される。
【0107】また、コンパイラのDSPに特化した機能
を記述可能とされている。この機能は、例えば複素デー
タ型、X/Yメモリ、循環バッファ、固定小数点データ
型、ビット反転、異種レジスタセットの対応のうちの少
なくとも1つである。
【0108】上記第4の実施形態によれば、コンフィグ
レーション指定ファイルは、プロセッサがDSP型であ
り、ハードウェアの指定がDSP命令形式である記述を
含んでいる。さらに、DSP命令形式において、命令の
ビット幅が設定可能とされている。このため、ユーザは
アプリケーションの用途に合わせてフレキシブルに命令
のビット幅を設定することができる。したがって、ユー
ザは要求性能にあったDSPを設定でき、不要なコスト
を削減することができる。
【0109】また、DSP命令形式において、レジスタ
幅が設定可能とされている。このため、ユーザはアプリ
ケーションの用途に合わせて,フレキシブルにレジスタ
のビット幅を設定することができる。したがって、ユー
ザは要求性能にあったDSPを設定でき、不要なコスト
を削減することができる。
【0110】さらに、コンパイラの固定小数点ライブラ
リは,一般に固定少数点の位置にフレキシブルに対応す
る。このため、性能が低下してしまう。しかし、本実施
形態において、固定小数点ライブラリの小数点の位置を
指定する情報は、コンパイラの固定小数点ライブラリに
反映されるため、性能低下を防ぐことができる。
【0111】また、ユーザはコンパイラのDSP向けに
特化した機能を仕様することができる。このため、アプ
リケーションの開発期間を短縮できるとともに、アプリ
ケーションの性能を向上できる。
【0112】(第5の実施形態)第5の実施形態は、S
IMD(Single Instruction Multiple Data)に関す
る。第5の実施形態は、SIMDの複数データの処理を
1つにまとめて記述し、この記述からシミュレータを生
成したり、マルチメディア・データ型への対応を可能と
する。
【0113】すなわち、命令がSIMDデータを扱うこ
とができる場合、コンフィグレーション指定ファイル内
の命令定義部にSIMDデータを扱うことを示す情報が
記述される。この情報としては、例えば命令が扱うデー
タ長と、各命令オペランドのデータ長である。この情報
は、SIMDデータ幅を指定し、機械命令関数定義と高
水準言語のSIMDデータ用拡張宣言子の生成に適用さ
れる。これにより、ユーザはSIMDデータを容易に扱
うことが可能になる。次に、記述例を示す。
【0114】 上記例は、“CPPACK.B”命令のデータ長が8ビットであ
ることを示している。すなわち、レジスタが64ビット
である場合、8並列であること、このレジスタ幅はレジ
スタ定義部内のコプロセッサレジスタ幅と同じであるこ
とを示している。“B”の他に“H”(half word 、すな
わち、16ビット)、“W”(word、すなわち、32ビ
ット)も指定可能とされている。さらに、“U”の有無
に応じて符号無しと、符号付きのデータを区別する。例
えば“BU”と記述した場合、8ビットの符号無しデータ
を示す。
【0115】また、“Pack=B:H:H”という指定により、
“CPPACK.B”命令のオペランド“CRo,CRq,CRp”がそれ
ぞれ符号付き8ビット、符号付き16ビット、符号付き
16ビットのデータであることを示している。
【0116】図19は、SIMD命令における“CPADD.
H”の命令定義の例を示している。この命令が定義され
るコプロセッサのコプロセッサレジスタが例えば64ビ
ット幅であるとする。この命令のデータ長は“SIMD=H”
すなわち、符号付き16ビットである。換言すれば、こ
の命令は、16ビット幅のデータを4並列で計算する。
また、“PACK=H,H,H”により、この命令のオペランド
“CRl,CRm,CRn”がそれぞれ符号付き16ビットのデー
タであることを示している。さらに、動作定義により、
この命令が符号付き16ビットのデータの加算を4並列
で行なうことを示している。これらの情報は、コンパイ
ラカスタマイズ部、及びシミュレータカスタマイズ部に
供給される。コンパイラカスタマイズ部では、これらの
情報がコンパイラの高水準言語用拡張宣言子の生成、機
械命令関数の生成、レジスタ割付、命令スケジューリン
グ機能へ反映される。また、シミュレータカスタマイズ
部では、これらの情報がシミュレートの動作、シミュレ
ート結果の出力機能に反映される。
【0117】図19に示す例は、符号付き16ビットの
データの加算を4並列で行なうSIMD命令の動作記述
を4行で示している。しかし、この動作記述を1行で記
述することが可能である。
【0118】以下に、記述の例を示す。
【0119】 CRl.h=CRm.h+CRn.h; …(1) 上記例(1)において、“.h”は“PACK=H,H,H”に対応
した記述である。
【0120】図20は、上記1行による記述例を示して
いる。
【0121】“PACK”の記述が例えば“PACK=HU,B,BU”
である場合、上記例(1)は次のように記述される。
【0122】 CRl.hu=CRm.b+CRn.bu; …(2) 図21は、上記1行による記述例を示している。
【0123】さらに、指標(添え字)“i”を用いるこ
とにより、次に示すようなデータの並びが一致していな
い記述を簡略化できる。
【0124】 CRl[15:0] = CRm[63:48] + CRn[63:48]; CRl[31:16] = CRm[47:32] + CRn[47:32]; CRl[47:32] = CRm[31:16] + CRn[31:16]; CRl[63:48] = CRm[15:0] + CRn[15:0]; 簡略化した記述例を次に示す。
【0125】 CRl[i]=CRm[3-i]+CR[3-i]; …(3) 例(3)の場合、指標“i”は、命令のデータ幅とコプ
ロセッサレジスタのはばに依存する値をとる。“SIMD=
H”、コプロセッサレジスタのデータ幅が64ビットの
場合、指標“i”の値は0〜3となる。
【0126】図22は、上記指標を用いた記述例を示し
ている。
【0127】上記第5の実施形態によれば、コンフィグ
レーション指定ファイルの命令定義部にSIMD命令に
関する情報を記述している。このため、コンパレータカ
スタマイズ部は、SIMD命令に関する情報に基づき、
SIMD命令を生成するための機械命令関数の定義ファ
イルを生成できる。機械命令関数は高水準言語内で使用
することができるため、ユーザのアプリケーション開発
を促進できる。
【0128】また、高水準言語内でSIMDデータを宣
言するための特殊な修飾詞を使用できる。このため、ユ
ーザのアプリケーション開発を促進できる。
【0129】さらに、シミュレータカスタマイズ部は、
入力されたSIMD命令に関する情報に基づき、シミュ
レータの動作をカスタマイズする。このため、SIMD
命令に対して正しく動作するシミュレータを生成するこ
とができる。
【0130】また、シミュレータカスタマイズ部は、入
力されたSIMD命令に関する情報に基づき、シミュレ
ータの結果出力機能をカスタマイズする。このため、S
IMD命令に対して解析し易いシミュレータの出力結果
を生成することができる。
【0131】さらに、SIMD命令の動作記述は、複数
命令をまとめて1命令で記述したり、指標を用いて記述
することができる。このため、SIMD命令の命令動作
の記述を簡略化することができる。したがって、SIM
D命令の命令動作の記述を、ユーザにとって、直感的に
分かり易い記述とすることができる。
【0132】(第6の実施形態)第6の実施形態は、命
令ライブラリに関する。
【0133】ユーザは、コンフィグレーション指定ファ
イルの仕様に合った命令を追加することが可能である。
本システムLS1開発環境生成システムは、定義済みの
命令を保持し、ライブラリ化している。これを以下、命
令ライブラリと称す。この命令ライブラリは、命令の種
類毎にグループ化されている。ユーザは命令ライブラリ
から必要な命令を選択することにより、アプリケーショ
ンに特化した開発環境を生成することができる。
【0134】図23は、SIMD命令ライブラリの例を
示している。SIMD命令ライブラリにおけるこれら命
令はオプションであり、これに対するコンフィグレーシ
ョン指定ファイルと、RTLは、基本命令とは別に予め
用意されている。ユーザは、これら命令の全部、あるい
は特定のデータ型の命令を選んで使用することができ
る。
【0135】図23において、“.xx”には、命令が用
いるデータ型としてニーモニック“UB,B,UH,H,UW,W”の
いずれかが記述される。この記述は、ユーザにより選択
可能とされている。また、図23に示すように、ニーモ
ニックの記述を省略することも可能である。ニーモニッ
クが“UB,B,UH,H,UW,W”のいずれかに固定されている場
合、例えば次のように明示することも可能である。この
例はニーモニックが“H”に固定されている。
【0136】CPADD.H //2-operand 32bit addition (A<
-A+B)上記のように記述された場合でも、ニーモニック
の記述を変更すれば、その変更に対応することが可能で
ある。
【0137】図24は、命令ライブラリからコンパイラ
等のツールを生成する方法を示している。ユーザが命令
ライブラリの命令を使用する場合、例えば複数の命令ラ
イブラリADB1、ADB2から該当する中間ファイル
IF1、IF2が生成される。この中間ファイルIF
1、IF2は、基本命令の中間ファイルIF3とマージ
される。このマージされた中間ファイルをコンパイラ等
に組み込むことにより、全体の環境が構築される。
【0138】上記例は、各命令ライブラリからそれぞれ
中間ファイルを生成し、これら中間ファイルをマージし
た。しかし、中間ファイルの生成は省略可能であり、各
命令ライブラリから選択した必要な命令を直接マージし
てもよい。
【0139】また、指定された命令ライブラリの命令の
機能を失うことなく、ユーザが要求するアプリケーショ
ンに対して最適なスケジューリング性能を得ることがで
きるよう、命令にタイプを割当てる機能を設定しても良
い。
【0140】さらに、例えばコアプロセッサとコプロセ
ッサとの間のデータ転送命令はコプロセッサを定義する
際、必ず必要となる。このように、メインとなる命令に
必ず付随する命令を自動的にマージするように設定すれ
ば、コンパイラが高水準言語のソースレベルから命令ラ
イブラリの命令を効率よく生成できる。このため、命令
ライブラリ内に予約命令を記述してもよい。
【0141】さらに、上記例は、マージしたファイルを
コンパイラに反映させる場合について説明した。しか
し、これに限らず、マージしたファイルをRTL生成部
に供給することにより、指定された命令ライブラリの命
令の機能を失うことなく、サイズ優先でRTLテンプレ
ートを生成することも可能である。このような構成とす
ることにより、アプリケーションの性能を維持して、生
成されるRTLのサイズを最小とすることができる。し
たがって、チップサイズの増大を抑えることができ、コ
ストを低減できる。
【0142】また、指定された命令ライブラリの命令の
機能を失うことなく、性能優先でRTLテンプレートを
生成することも可能である。このような構成とすること
により、アプリケーションのレイテンシを小さくできる
など、性能を向上することができる。
【0143】上記第6の実施形態によれば、命令ライブ
ラリに記述された命令が扱うデータ型をアプリケーショ
ンに対応して設定可能とされている。このため、アプリ
ケーションに適した命令を有するプロセッサを開発する
ことが可能となる。
【0144】また、命令ライブラリに記述された命令の
データ型が決められている場合においても、データ型を
変更することができる。このため、アプリケーションに
適した命令に変更することが可能となる。
【0145】さらに、複数の命令ライブラリから必要な
命令を選択し、これら選択した命令をマージすることに
より、一つのプロセッサの設定が可能となる。このた
め、よりアプリケーションの性質に適したプロセッサの
生成が可能となる。
【0146】(第7の実施形態)第7の実施形態は、コ
ンフィグレーション指定ファイル内の高位な動作記述に
ついて説明する。
【0147】コンフィグレーション指定ファイル内の高
位な動作記述は、ほぼC言語の「文」に相当する記述が
可能である。しかし、“!!”(ビット連結)、“[]”
(部分ビット切り出し)、論理演算子がC言語と異な
る。さらに、本実施形態の高位な動作記述は、式の左辺
にビット連結が書けるという特徴を有している。また、
本実施形態の高位な動作記述は、クロックの概念は含ま
ず、命令実行前のレジスタやメモリの値と、命令実行後
のレジスタやメモリの値の関係を記述したものである。
【0148】以下に、本実施形態における高位な動作記
述の相違や制約を示す。
【0149】・データ型は存在しない。
【0150】・使える変数の規則がある。
【0151】・ビット定数が書ける。
【0152】・!!をビット連結を示す。
【0153】・[msb:lsb]は部分ビット切り出しを示
す。
【0154】・and,or,xor,nor,nandはビット論理演算
子を示す。
【0155】・(Signed),(Unsigned)はキャスト演算子
を示す。
【0156】・ストア演算ではMem Word()などの関数が
左辺に書ける。
【0157】(変数として使えるもの) ・オペランド変数 ・レジスタ変数 ・一時変数 (オペランド変数)オペランド変数は、命令定義のオペ
ランド(<オペランド>)に記述されるものであり、次
のような記述ができる。
【0158】<レジスタ指定> <(abs)型><(abs)型> <disp型><disp()型> <cpx>(実数部)(虚数部) …複素数 <int> …整数 <flt> …浮動小数点 <即値型>これらは、直前のオペランドに記述された命
令の仕様と、レジスタのパラメータを表すアルファベッ
ト、及び指定子のビット幅が一致していなければならな
い。
【0159】(レジスタ変数)レジスタ変数はオペラン
ド変数以外のレジスタであり、次のような記述が可能で
ある。
【0160】・特定表記(名前指定、数値でのインデッ
クス表記) 例:PC,SRRO,CCR3 ・配列指定 例:識別文字列+‘[’式‘]’ 例:CTR[Imm4] 注1:識別文字列+インデックス+‘[’数値‘]’
は、部分ビット切り出しとなる。
【0161】例:CTRn[4]は部分ビット。CTR[4]はCTR4
と同じ。CTR[Rn][3:0]なども記述可能。
【0162】注2:不定表記(パラメータによるインデ
ックス表記、Rmなど)はオペランド変数に分類する。オ
ペランド変数以外の不定表記はエラーとする。
【0163】(一時変数)一時変数は、オペランド変
数、レジスタ変数でない変数を一時変数という。一時変
数の名前には次のものが使える。
【0164】・C言語の変数名の名前付け規則に合うも
の。
【0165】・定義済みレジスタ名に重複しないもの。
【0166】・オペランド変数の各指定子のprefixで始
まらないもの。
【0167】abs-,imm-,Imm-,disp-,code-,target-で始
まらないもの。
【0168】(定数):Verilog と同じく、ss…s’fnn
…nとする。ss…sビット数を示す。ビット数が省略され
た場合は32bitとする。fは基数。D:10進、h:16
進、o:8進、b:2進、これらの記述が省略された場合は
10進とする。nn…nは定数値。定数値がビット数に足
りないときは上位ビットを0で補う。定数値がビット数
より大い場合、ビット数を無視する。nn…nの中で区切
り文字‘_’を使用することはできない。基数および定
数値には大文字のアルファベットも使用できる。
【0169】例: 3’b001:3ビットの2進数 32’Hff:32ビットの16進数(上位ビットは0拡張
される) ‘o1234:32ビットの16進数(ビット数を省略、32
‘o1234と同じ) 1:32ビットの10進数(ビット数及び基数を省略、3
2‘d1と同じ) 10’5:10ビットの10進数(基数を省略、10’d5と
同じ) (補足)次のようなことが記述できる。
【0170】a=b=c+d; ・関数呼出も書ける。
【0171】・左辺に関数呼出が書ける。
【0172】MemWord(Rn)=a; CTR[Imm4]=b; ・連接演算子 !! : ビット連接 ・部分ビット切り出し [msb:lsb]で指定 ・予約関数名 メモリアクセス関数 MemWord MemDoubleWord MemByte MemHWord MemDefaultSize ControlBus ・ビット拡張関数 SignExtension ZeroExtension ・条件判定関数 Overflow (左辺連結) ・左辺にビット連結を書く場合は、全体を()で括る。
【0173】(HI!!LO)=Rn*Rm; (SIMD記述)第5の実施形態を参照。
【0174】(エラーチェック機能)エラーチェック機
能の代表的なものを示す。
【0175】(1)オペコードの重複チェック (2)命令形式毎に定まっている、レジスタ・オペラン
ドのRO/RWと動作記述の整合性 (3)SIMD記述、Pack記述と動作記述の整合性:SIMD,P
ackで指定したデータ幅に相当する動作記述がない場
合、ワーニングを出力する。具体的には、SIMD/Packで
指定されたデータ幅毎に動作記述を調べ、それぞれ以下
のビット幅の部分ビット参照/代入が存在しない場合に
ワーニングを出す。データ幅とビット幅の関係を以下に
示す。
【0176】 データ幅 ビット幅(msb-lsb+1) B,UB 8 H,UH 16 W,UW 32 A 8,16,32 (4)値未定義の一時変数の参照 動作記述中で、一時変数が最初に登場した式が右辺にあ
る場合、ワー二ングを出力する。
【0177】(5)値を定義した一時変数が参照されて
いない場合、ワー二ングを出力する。
【0178】図25は、コンフィグレーション指定ファ
イル内の命令セット定義部の例を示している。この例
は、LW命令とSWAP命令の定義を示している。LW
命令の動作記述({}で囲まれた部分)において、“R
n”はレジスタ指定のオペランド変数、“disp8”はdisp
型のオペランド変数、“SP”はレジスタ変数である。
“ZeroExtension”及び“MemWord”はそれぞれビット拡
張とメモリアクセスを行なう予約関数である。また,S
WAP命令における“tmp1”と“tmp2”は一時変数であ
る。
【0179】上記第7の実施形態によれば、コンフィグ
レーション指定ファイル内の命令動作記述に高位な記述
が可能とされている。このため、新たな命令の追加が容
易であり、且つ既存の命令を容易に解析できる。したが
って、命令の改良、保守を容易に行なうことができ、ユ
ーザのアプリケーション開発を促進できる。
【0180】(第8の実施形態)第8の実施形態は、パ
イプライン記述に関する。
【0181】下記のパイプライン記述から、コンパイラ
のスケジューリングのための情報、およびハザード検証
ベクトルを自動生成のための情報が生成される。
【0182】パイプライン記述は、「パイプラインタイ
プ定義」及び「ハザード情報」の2つを含む。
【0183】(1)パイプラインタイプ定義 パイプラインタイプ定義に関する書式は以下の通りであ
る。
【0184】PTYPE:<タイプ名>:<リソース
>,<操作>,<タイミング>,<引数>[:<リソー
ス>,<操作>,<タイミング>,<引数
>:....];各PTYPE行には、“<リソース
>,<操作>,<タイミング>,<引数>”の四つの変
数が最低1つ必要である。四つの変数は、“:”で区切
って任意の数だけ続けて記述できる。
【0185】PTYPE行における四つの変数の意味は
次の通りである。すなわち、リソースはレジスタなどを
示し、操作はリード/ライト等を示し、タイミングはパ
イプラインのステージを示している。引数は、オペラン
ド(レジスタ等)に対する指標である。つまり、PTY
PE行はリソースに対する、操作が、パイプラインのス
テージにて生じることを表している。
【0186】図26は、PTYPE行の記述例を示して
いる。
【0187】(2)ハザード情報 ハザード情報の書式は以下の通りである。
【0188】HAZARD:<リソース>:<動作1>
(タイプ名1),<動作2>(タイプ名2)=<サイク
ル数>;リソースにおいて、タイプ1の先行命令が動作
1を行い、タイプ2の後続の命令が動作2を行った場合
のストール数を表す。
【0189】図27は、ハザード情報の記述例を示して
いる。このハザード情報の場合、あるコプロセッサの汎
用レジスタにパイプラインタイプ“pt1”の命令で書き
込みが行なわれた後、パイプラインタイプ“pt2”の命
令で同じレジスタを読み出す場合、2サイクル待たなけ
ればならない。
【0190】ハザード情報と、各命令に指定されたパイ
プライン定義により、ハザードが発生する命令列をシミ
ュレータ上で実行した際のストール数が決まる。
【0191】例えば、図28は、命令“cinst1”がパイ
プラインタイプ“pt1”、 命令“cinst1”がパイプライ
ンタイプ“pt2”である場合の動作を示している。
【0192】図27に示すハザード情報の場合、あるコ
プロセッサの汎用レジスタにパイプラインタイプ“pt
1”の命令で書き込みが行なわれた後、パイプラインタ
イプ“pt2”の命令で同じレジスタを読み出す場合、2
サイクル待たなければならない。図28に示す例の場
合、ステージ“t”において命令“cinst1”でコプロセ
ッサの汎用レジスタ“$cr1”に書き込みが行なわれた
後、1サイクル待った後、命令“cinst2”で同じレジス
タの読み出しを行なおうとしている。このような場合、
シミュレータで命令“cinst2”は1サイクルストールす
ることになる。
【0193】(コンパイラのためのスケジューリング情
報)図29は、コンパイラのためのスケジューリング情
報の例を示す。
【0194】図29に示す例は、PTYPE1の命令の
直後のPTYPE2の命令は3サイクルストールし、P
TYPE2の命令の直後のPTYPE3の命令は4サイ
クルストールすることを示している。この情報から、コ
ンパイラは、極力PTYPE1とPTYPE2の間に3
命令空くようにスケジューリングし、PTYPE1とP
TYPE3の間に4命令空くようにスケジューリングす
る。
【0195】(ハザード検証ベクトル生成のためのパイ
プライン動作記述)図30は、パイプライン動作記述の
例を示している。
【0196】この動作記述は、パイプライン定義と明示
的なストールの指定からなる。この記述及びこれからの
検証ベクトルの生成の詳細については、省略する。
【0197】上記第8の実施形態によれば、コンフィグ
レーション指定ファイルは、パイプライン定義の記述を
含めることができる。このため、パイプラインを構築す
ることができる。また、パイプライン定義には、パイプ
ラインタイプの定義、及びハザード情報を含めることが
できる。
【0198】また、コンフィグレーション指定ファイル
は、パイプラインに関してコンパイラのためのスケジュ
ーリング情報を含めることができる。このため、コンパ
イラはスケジューリング情報に基づきパイプラインの動
作をスケジューリングできる。
【0199】さらに、コンフィグレーション指定ファイ
ルは、パイプラインに関してハザード検証ベクトル生成
のための記述を含めることができる。このため、パイプ
ラインのハザードを確実に検証することが可能となる。
【0200】(第9の実施形態)第9の実施形態は、R
TLの合成に関する。
【0201】図31は、図6に示すRTL生成部におけ
るユーザ定義モジュールの高位合成を示している。すな
わち、図31に示すユーザカスタム命令の高位合成は、
通常のハードウェアリソース割り当てとスケジューリン
グの他、コア部及び制御パスとメモリとのインターフェ
ース(I/F)の整合及び生成を行なう。
【0202】図32は、ユーザカスタム命令の合成にお
ける、インターフェースの整合方法を示している。図3
1に示す高位合成により命令本体のRTLが生成され
る。この場合、命令本体部分とコア部との間に別途イン
ターフェース回路を生成する。コア部とインターフェー
ス回路間の接続は、入出力のレジスタ・フィールドの信
号、16bitのオペランド信号、ストール信号により
表現される。命令本体は、このインターフェース回路か
ら呼び出される形式で記述される。命令本体とインター
フェース回路の間の接続は、moduleの引数で表現
される。
【0203】上記第9の実施形態によれば、通常のハー
ドウェアリソース割り当てとスケジューリング、さら
に、コア部及び制御パスとメモリとのインターフェース
を整合することにより、ユーザカスタム命令の高位合成
を行なうことができる。
【0204】(第10の実施形態)第10の実施形態
は、検証ベクトル生成に関する。
【0205】ここでは、前述したコンフィグレーション
指定ファイルからアーキテクチャ検証プログラム(AV
P:Architecture Verification Program)の生成用デ
ータを生成する方法について説明する。
【0206】(AVP生成に必要なデータ)ここでは、
特にプロセッサの命令単体の機能を検証するための、検
証プログラムをAVPと呼ぶ。このAVP生成するため
にISA情報を使用する。ISA情報には以下に述べる
データが必要である。
【0207】・ニーモニック ・オペランド並び ・オペランド情報 ・ オペランドの種類(レジスタ/即値) ・ オペランドのビット幅 ・ オペランドがレジスタの場合、参照/代入の有無 (ISA情報の生成方法)ISA情報をアーキテクチャ
データベースファイルから生成する方法について説明す
る。レジスタ定義部にはレジスタ種類毎にレジスタの
数、レジスタのビット幅等が定義されている。命令定義
部は、ニーモニック、オペランド並び、及び命令動作定
義部等から構成されている。命令動作定義部は、前記オ
ペランド並びに表れるオペランド、レジスタ並びには現
れないレジスタ、一時変数、定数等を使用した文を記述
することにより命令動作を定義する。
【0208】図33は、例えば命令CPXOR3に関す
る命令定義を示している。命令CPXOR3は、レジス
タオペランドとして、CRo,CRq,CRpを記述す
る必要があることを表している。レジスタ名はレジスタ
の種類によってその接頭語が違っており、“CR”で始
まるレジスタはコプロセッサの汎用レジスタを表す。
‘{’と‘}’で囲われた部分は命令動作記述部であ
る。この例の場合、2つのコプロセッサ汎用レジスタC
Rp,CRqのビット毎の排他的論理和を計算した結果
をCRoへ代入する命令であることが判る。
【0209】前述した通り、命令定義部はニーモニック
の情報及びオペランド並びの情報を有している。これら
の情報は、直接ISA情報のニーモニックの情報及びオ
ペランド並びの情報となる。オペランド並びには、オペ
ランド名のリストが記される。オペランド名のうち、I
mm*,Imm*は即値であり、それ以外はレジスタで
ある。この規則を使用することにより、各オペランドの
種類をオペランド並びから取得することができる。
【0210】各オペランドの情報は以下のように取得す
る。オペランドがレジスタの場合、レジスタ定義情報か
らレジスタのビット幅を取得する。オペランドが即値の
場合、オペランドコードから即値のビット幅を取得す
る。具体的には、オペランドコードの文字列のうち、
‘i’の個数が即値のビット幅となる。
【0211】オペランドがレジスタの場合、オペランド
の参照/代入の有無は、命令動作記述の構文を解析する
ことにより取得する。
【0212】上記方法をプログラムで実装することによ
り、図33に示す命令定義部、及び図14に示すレジス
タ情報から、自動的に図34に示すISA情報を作成す
ることができる。
【0213】(データの使用方法)ISA情報は、アセ
ンブラにより記述される検証プログラムを生成するため
に使用される。まず、ニーモニック及びオペランド並び
は、検証プログラム中の検査対象命令コードを生成する
目的で使用する。各オペランドのオペランド情報は下記
の目的のために使用される。
【0214】オペランドが即値オペランドの場合、ビッ
ト幅の情報を用いて検査用の即値データを生成する。オ
ペランドがレジスタオペランドでありそのレジスタの値
が参照される場合、ビット幅の情報などからレジスタに
与える値を生成する。この生成した値からレジスタに設
定するコードを生成する。値を生成する方法は幾つか有
る。
【0215】第1の方法は、設定可能なビット幅(符号
を含めた数値)の中でランダムに値を生成する方法。
【0216】第2の方法は、入力の設定可能な領域(2
入力なら2次元平面上の領域)を求め、その領域を順次
細分化する。この細分化された領域の重心座標を入力値
とする方法。
【0217】第2の方法により、領域の点を確実に選択
することができる。また境界上および境界付近の点を重
点的に入力データとして生成することにより、境界条件
の検査をすることが可能となる。
【0218】ISA情報から個々の命令動作を検証する
ための検証プログラムを生成する方法の詳細に関して
は、説明の都合上省略する。
【0219】オペランドがレジスタオペランドであり、
そのレジスタへ値が代入される場合、レジスタに代入さ
れた命令の演算結果をログファイルへ出力するコードを
生成する。図34に示すISA情報から、図35に示す
検証プログラムを自動生成する。
【0220】上記第10の実施形態によれば、検証ベク
トル生成部は、前記コンフィグレーション指定ファイル
の動作命令からプロセッサの検証ベクトルを生成するこ
とができる。このため、プロセッサの動作を確実に検証
することが可能となり、ユーザのLSI開発に寄与でき
る。
【0221】(第11の実施形態)第11の実施形態
は、シミュレータの生成に関する。
【0222】ここでは、コンフィグレーション指定ファ
イルからシミュレータを生成する方法について説明す
る。
【0223】図36は、前記シミュレータ生成部の動作
を概略的に示している。シミュレータ生成部は、コンフ
ィグレーション指定ファイルと予め用意したC++モデ
ルテンプレートに基づき、シミュレータを生成する。す
なわち、シミュレータ生成部は、C++モデルテンプレ
ートに必要な情報を組み込むことにより、シミュレータ
のメイン部、シミュレータのデコードテーブル及び命令
定義部を生成する。メイン部は、コンフィグレーション
指定ファイルのヘッダ部とレジスタ宣言部に基づき生成
される。デコードテーブルと命令定義部は、コンフィグ
レーション指定ファイルのISA部に基づき生成され
る。
【0224】ここで、デコードテーブルとは、プログラ
ム中のコード部のビットパターンを、命令列に変換する
ための変換テーブルである。また、C++モデルテンプ
レートとは、シミュレータのC++ソースコードを生成
するためのテンプレートであり、シミュレータ生成部が
必要な情報をこのテンプレートに代入することにより、
C++モデルが生成される。
【0225】メイン部には、利用可能な命令フォーマッ
トや、汎用レジスタや制御レジスタの数及びサイズ、命
令間ハザードというようなシミュレータ全体に関する情
報が格納されている。
【0226】デコードテーブルは、コンフィグレーショ
ン指定ファイルのISA部の各命令定義のオペコード部
を格納している。シミュレー夕における命令デコード
は、このテーブルのオペレーションコード部分と、命令
のオペレーションコード部とを比較し、命令を識別する
ことにより生成される。
【0227】命令定義部は、主にコンフィグレーション
指定ファイルの動作記述をこれと等価な動作のC++記
述に変換することにより生成される。また、命令定義部
には、パイプラインのタイプ、トレース出力のフォーマ
ット、即値オペランドの符号拡張の有無、コアプロセッ
サのレジスタとコプロセッサのレジスタ間においてデー
タを転送する場合における転送方向などの情報も付加さ
れる。
【0228】転送方向の情報を付加する方法は、以下の
通りである。
【0229】転送方向の情報は、各命令定義に対する属
性の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関数を呼び出して生成す
る。
【0230】C++にない一部の表現については、C+
+への変換を行なう前に動作記述を変換する。例えば式
の左辺に記載したビット連結は以下のように変換する。
【0231】(変換前) (A!!B)=Expression; (変換後) TMP=Expression; B=TMP[(B最上位・B最下位・1):0]; A=TMP[(A最上位+B最上位・1):(B最上位・B最下
位)]; (TMPは一時変数)またSIMD表記に関しては、第
5の実施形態において説明したように展開する。
【0232】トレース出力には、その命令動作によって
値が書き込まれるレジスタを出力する。レジスタヘの書
き込みの有無は、そのレジスタが命令の動作記述の左辺
部に出現するか否かを解析して判定する。レジスタ間の
データ転送も,同様に左辺部に出現したレジスタを書き
込み用レジスタ、右辺部に出現したレジスタを読み出し
用レジスタと判断する。読み出されたレジスタから書き
込まれたレジスタへデータが転送されたと見なす。
【0233】上記第11の実施形態によれば、コンフィ
ギュレーション指定ファイルの記述に従って必要なシミ
ュレータを生成することができる。したがって、ユーザ
はアプリケーションをシミュレートすることができ、ア
プリケーションの性能を短時間で知ることができる。こ
のため、システムLSIの開発を期間を短縮することが
可能となる。
【0234】(第12の実施形態)第12の実施形態
は、デバッグ環境の構築に関する。
【0235】デバッグ環境構築のための対応項目は次の
3つである。
【0236】(1)レジスタ定義:デバッガは、表示及
び書き換え可能なレジスタとしてどの様なものがあるか
についての情報が必要である。この情報は、コンフィグ
レーション指定ファイルのレジスタ定義部から生成され
る。表示できるレジスタは、定義されている全レジスタ
である。書き換えができるレジスタ、あるいはレジスタ
のフィールド(レジスタの一部)は、図14に示すレジ
スタ定義において、例えば“rw”と記述されたレジス
タである。“r”と記述されたレジスタは、デバッガに
て書き換えることはできない。
【0237】(2)逆アセンブラ:デバッガは、実行プ
ログラムに対し、逆アセンブラを行い、表記する。逆ア
センブラは、シミュレータのデコード部と同じ方法で命
令を認識し、そのニーモニックを表示する。
【0238】(3)デバッグ・モニタ:デバッグ・モニ
タは、デバッグの開始時にレジスタの初期値を設定す
る。この初期値を設定すべきレジスタ(存在するレジス
タ)の情報を、コンフィグレーション指定ファイルのレ
ジスタ定義部から得る。
【0239】上記第12の実施形態によれば、コンフィ
グレーション指定ファイルからデバッグ環境が構築され
る。このため、ユーザはLSI開発に必要なデバッグ環
境を得ることができる。したがって、ユーザはアプリケ
ーションをデバッグすることができ、アプリケーション
の開発を期間を短縮することが可能となる。
【0240】尚、本発明は、上記各実施形態に限定され
るものではない。
【0241】図37は、上記各実施形態が適用されるシ
ステムLSI開発環境生成装置の概観を示している。こ
のシステムLSI開発環境生成装置50は、いわゆる汎
用計算機、ワークステーション、PC(Personal Comput
er)、NC(Network Computer)等が含まれる。システム
LSI開発環境生成装置50は、図示せぬハードディス
ク装置50aを有している。
【0242】さらに、システムLSI開発環境生成装置
50は、例えばフロッピー(登録商標)ディスクドライ
ブ52及び光ディスクドライブ54を備えている。フロ
ッピーディスクドライブ52にはフロッピーディスク5
3が装着され、光ディスクドライブ54には光ディスク
55が装着される。
【0243】また、システムLSI開発環境生成装置5
0に接続されたドライブ装置57は、例えばメモリカー
ド58のリーダライタ、あるいは磁気テープカートリッ
ジ59のリーダライタである。このドライブ装置57に
より、メモリカード58、あるいは磁気テープカートリ
ッジ59をアクセスすることができる。
【0244】前述したコマンドインタープリタ、RTL
生成部、シミュレータカスタマイズ部、コンパイラカス
タマイズ部、アセンブラカスタマイズ部、検証ベクトル
生成部、及びデバッガ生成部等のプログラムや、コンフ
ィグレーション指定ファイル等のファイルは、フロッピ
ーディスク53、光ディスク55、メモリカード58及
び磁気テープカートリッジ59等の記録媒体に記憶され
る。これらプログラム及びファイルを読み出し、前記ハ
ードディスク装置50aにインストールすることによ
り、上述した動作を実行できる。また、記録媒体として
は伝送媒体を用いることも可能である。
【0245】その他、本発明の要旨を変えない範囲にお
いて種々変形実施可能なことは勿論である。
【0246】
【発明の効果】以上、詳述したように本発明によれば、
高性能なハードウェアを有するLSIの開発環境を十分
なフレキシビリティで、簡単に生成することが可能なシ
ステムLSI開発環境生成方法及びそのプログラムを提
供できる。
【図面の簡単な説明】
【図1】本発明が適用されるシステムLSI開発装置を
概略的に示す構成図。
【図2】設定ファイル生成部を示す構成図。
【図3】コンフィグレーション指定ファイルの記述例を
示す図。
【図4】図4(a)は全プロセッサに共通のメモリ領域
の記述例を示す図、図4(b)は生成されたローカルメ
モリマップの一例を示す図、図4(c)はISA定義フ
ァイルの記述例を示す図。
【図5】システムLSI開発環境生成部の構成を示す
図。
【図6】図5に示すRTL生成部の一実施例を示す構成
図。
【図7】RTLテンプレートの一例を示す図。
【図8】図5に示すシミュレータカスタマイズ部の一例
を示す構成図。
【図9】図9(a)は、シミュレータ起動オプションフ
ァイルの一例を示す図、図9(b)は、デバッガ起動オ
プションファイルの一例を示す図、図9(c)は、機械
命令関数宣言ヘッダファイルの一例を示す図。
【図10】図5に示すコンパイラカスタマイズ部43の
一実施例を示す構成図。
【図11】図11(a)は、コンパイラ起動オプション
ファイルの一例を示す図、図11(b)は検証ベクトル
生成用のユーザ定義命令ファイルの一例を示す図。
【図12】本発明のシステムLSI開発環境生成部3の
プログラム構成を示す構成図。
【図13】コンフィグレーション指定ファイルの一例を
示す図。
【図14】図13に示すレジスタ定義部の記載例を具体
的に示す図。
【図15】アキュムレータの定義の一例を示す図。
【図16】シフトアマウントレジスタの定義の一例を示
す図。
【図17】コプロセッサ定義の一例を示す図。
【図18】DSPモジュール用コンフィグレーション指
定ファイルの例を示す図。
【図19】SIMD命令の定義の一例を示す図。
【図20】1行による記述例を示す図。
【図21】1行による記述例を示す図。
【図22】指標を用いた記述例を示す図。
【図23】SIMD命令ライブラリの例を示す図。
【図24】命令ライブラリからコンパイラ等のツールを
生成方法を示す構成図。
【図25】コンフィグレーション指定ファイル内の命令
セット定義部の例を示す図。
【図26】PTYPE行の記述例を示す図。
【図27】ハザード情報の記述例を示す図。
【図28】ハザード情報とパイプラインの動作を示す
図。
【図29】コンパイラのためのスケジューリング情報の
例を示す図。
【図30】パイプライン動作記述の例を示す図。
【図31】RTL生成部におけるユーザ定義モジュール
の高位合成の例を示す図。
【図32】インターフェースの整合方法を示す構成図。
【図33】ISA情報の生成方法を示すものであり、命
令CPXOR3に関する命令定義の例を示す図。
【図34】自動的に生成されたISA情報を示す図。
【図35】命令CPXOR3の検証プログラムを示す
図。
【図36】シミュレータ生成部の概略的な動作を示す
図。
【図37】システムLSI開発環境生成システムの概観
の一例を示す斜視図。
【符号の説明】
1…システムLSI開発環境生成装置、 2…設定ファイル生成部、 3…ユーザ定義モジュール・ユーザ定義命令記憶部、 4…システムLSI開発環境生成部、 9…制御部、 21…入力解析部、 41…RTL生成部、 41a、41b…RTLテンプレート、 41c…コアRTL記述、 41d…ブロック接続部、 41e…高位合成処理部、 42…シミュレータカスタマイズ部、 42a…オプション命令・Cモデルテンプレート、 42b…シミュレータテンプレート、 43…コンパイラカスタマイズ部、 43a…オプション命令情報抽出部、 43b…オプション命令・機械命令関数宣言テンプレー
ト、 43c…機械命令関数宣言抽出部、 43d…結合処理部、 44…アセンブラカスタマイズ部、 45…検証ベクトル生成部、 50…コンピュータシステム、 51…ディスプレイ、 52…フロッピーディスクドライブ、 53…フロッピーディスク、 54…光ディスクドライブ、 55…光ディスク、 56…キーボード、 57…ドライブ装置、 58…メモリカード、 59…磁気テープカートリッジ
フロントページの続き (72)発明者 内田 勝也 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 大山 隆一郎 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 Fターム(参考) 5B046 AA08 BA03

Claims (52)

    【特許請求の範囲】
  1. 【請求項1】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、命令を実行するハード
    ウェアの指定を含み、システムLSIのコンフィグレー
    ションが記述されたコンフィグレーション指定ファイル
    の情報に基づき、システムLSIを開発するためのコン
    パイラを構築するコンパイラカスタマイズ部、アセンブ
    ラを構築するアセンブラカスタマイズ部、及びシミュレ
    ータを構築するシミュレータ生成部を生成することを特
    徴とするシステムLSI開発環境生成方法。
  2. 【請求項2】 コンピュータに、入力されたコマンドを
    解析させ、 前記解析したコマンドに応じて、命令を実行するハード
    ウェアの指定を含み、システムLSIのコンフィグレー
    ションが記述されたコンフィグレーション指定ファイル
    の情報に基づき、システムLSIを開発するためのコン
    パイラを構築するコンパイラカスタマイズ部、アセンブ
    ラを構築するアセンブラカスタマイズ部、及びシミュレ
    ータを構築するシミュレータ生成部を生成させることを
    特徴とするシステムLSI開発環境生成プログラム。
  3. 【請求項3】 前記コンフィグレーション指定ファイル
    は、レジスタの構成を定義するレジスタ定義を含むこと
    を特徴とする請求項1又は2記載のシステムLSI開発
    環境生成方法又はそのプログラム。
  4. 【請求項4】 前記レジスタ定義は、前記コンパイラに
    おけるレジスタの使用方法を定義する情報を有すること
    を特徴とする請求項3記載のシステムLSI開発環境生
    成方法又はそのプログラム。
  5. 【請求項5】 前記レジスタ定義は、前記コンパイラの
    レジスタの使用方法を定義する情報を有し、この情報が
    省略された場合、前記コンパイラカスタマイズ部は、コ
    ンパイラのデフォルトのレジスタの使用方法を設定する
    ことを特徴とする請求項3記載のシステムLSI開発環
    境生成方法又はそのプログラム。
  6. 【請求項6】 前記コンパイラカスタマイズ部は、前記
    レジスタ定義の情報に基づき、各レジスタに直接アクセ
    スできるレジスタ擬似変数を定義することを特徴とする
    請求項5記載のシステムLSI開発環境生成方法又はそ
    のプログラム。
  7. 【請求項7】 前記レジスタ定義は、レジスタの別名定
    義を有し、前記レジスタの別名定義は、前記アセンブラ
    カスタマイズ部に供給されることを特徴とする請求項3
    記載のシステムLSI開発環境生成方法又はそのプログ
    ラム。
  8. 【請求項8】 前記開発環境は、RTL生成部、検証ベ
    クトル生成部、デバッガ生成部をさらに含むことを特徴
    とする請求項1又は2記載のシステムLSI開発環境生
    成方法又はそのプログラム。
  9. 【請求項9】 前記レジスタ定義は、レジスタ名を含
    み、このレジスタ名は前記コンパイラカスタマイズ部、
    アセンブラカスタマイズ部、シミュレータカスタマイズ
    部、RTL生成部、検証ベクトル生成部、及びデバッガ
    生成部に供給されることを特徴とする請求項8記載のシ
    ステムLSI開発環境生成方法又はそのプログラム。
  10. 【請求項10】 前記コンフィグレーション指定ファイ
    ルは、命令の仕様、オペランドコード、動作内容を含む
    ことを特徴とする請求項3記載のシステムLSI開発環
    境生成方法又はそのプログラム。
  11. 【請求項11】 前記コンパイラカスタマイズ部は、前
    記命令定義部の情報を元に機械命令関数定義を生成する
    ことを特徴とする請求項3のシステムLSI開発環境生
    成方法。
  12. 【請求項12】 前記コンフィグレーション指定ファイ
    ルは、プロセッサがVLIW型であり、ハードウェアの
    指定がVLIWの命令形式の指定、あるいはVLIWの
    スロットの指定である記述を含むことを特徴とする請求
    項3記載のシステムLSI開発環境生成方法又はそのプ
    ログラム。
  13. 【請求項13】 前記コンフィグレーション指定ファイ
    ルは、命令を並列化する際、どのスロットに置かれる命
    令かを区別するためのスロット定義を含むことを特徴と
    する請求項12記載のシステムLSI開発環境生成方法
    又はそのプログラム。
  14. 【請求項14】 前記コンフィグレーション指定ファイ
    ルは、命令を並列化する際に使うスロット情報を機械命
    令関数定義に反映させるスロット定義を含むことを特徴
    とする請求項12記載のシステムLSI開発環境生成方
    法又はそのプログラム。
  15. 【請求項15】プロセッサの仕様に応じて、命令動作記
    述内の一時変数や符号拡張後の値のビット幅を指定し、
    その情報をシミュレータカスタマイズ部に供給し、前記
    シミュレータに反映させることを特とする請求項12記
    載のシステムLSI開発環境生成方法又はそのプログラ
    ム。
  16. 【請求項16】 前記スロット情報をアセンブラカスタ
    マイズ部に供給し、前記アセンブラに反映させることを
    特とする請求項14記載のシステムLSI開発環境生成
    方法又はそのプログラム。
  17. 【請求項17】 前記スロット情報を前記検証ベクトル
    生成部に供給し、前記検証ベクトルに反映させることを
    特とする請求項14記載のシステムLSI開発環境生成
    方法又はそのプログラム。
  18. 【請求項18】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、プロセッサがDSP型
    であり、ハードウェアの指定がDSP命令形式である記
    述を含むシステムLSIのコンフィグレーションを記述
    したコンフィグレーション指定ファイルの情報に基づ
    き、コンパイラを構築するコンパイラカスタマイズ部、
    アセンブラを構築するアセンブラカスタマイズ部、及び
    シミュレータを構築するシミュレータ生成部を生成する
    ことを特徴とするシステムLSI開発環境生成方法。
  19. 【請求項19】 コンピュータに、入力されたコマンド
    を解析させ、 前記解析したコマンドに応じて、プロセッサがDSP型
    であり、ハードウェアの指定がDSP命令形式である記
    述を含むシステムLSIのコンフィグレーションを記述
    したコンフィグレーション指定ファイルの情報に基づ
    き、コンパイラを構築するコンパイラカスタマイズ部、
    アセンブラを構築するアセンブラカスタマイズ部、及び
    シミュレータを構築するシミュレータ生成部を生成させ
    ることを特徴とするシステムLSI開発環境生成プログ
    ラム。
  20. 【請求項20】 前記コンフィグレーション指定ファイ
    ルは、任意のビット幅の命令を指定する情報を含むこと
    を特徴とする請求項18又は19記載のシステムLSI
    開発環境生成方法又はそのプログラム。
  21. 【請求項21】 前記コンフィグレーション指定ファイ
    ルは、任意のビット幅のレジスタを定義する情報を含む
    ことを特徴とする請求項18又は19記載のシステムL
    SI開発環境生成方法又はそのプログラム。
  22. 【請求項22】 前記コンフィグレーション指定ファイ
    ルは、固定小数点ライブラリの小数点の位置を指定する
    情報を含み、前記コンパイラカスタマイズ部は、この情
    報をコンパイラの固定小数点ライブラリに供給すること
    を特徴とする請求項18又は19記載のシステムLSI
    開発環境生成方法又はそのプログラム。
  23. 【請求項23】 前記コンフィグレーション指定ファイ
    ルは、プロセッサがDSP型である場合、前記コンパイ
    ラのDSPに対応した機能を含むことを特徴とする請求
    項18又は19記載のシステムLSI開発環境生成方法
    又はそのプログラム。
  24. 【請求項24】 前記コンパイラのDSPに対応した機
    能は、複素データ型、X/Yメモリ、循環バッファ、固
    定小数点データ型、ビット反転、異種レジスタセットの
    うちの少なくとも1つを含むことを特徴とする請求項1
    8又は19記載のシステムLSI開発環境生成方法又は
    そのプログラム。
  25. 【請求項25】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、プロセッサがSIMD
    型であり、ハードウェアの指定がSIMD命令形式であ
    ることを記述したシステムLSIのコンフィグレーショ
    ンを記述したコンフィグレーション指定ファイルの情報
    に基づき、コンパイラを構築するコンパイラカスタマイ
    ズ部、アセンブラを構築するアセンブラカスタマイズ
    部、及びシミュレータを構築するシミュレータ生成部を
    生成することを特徴とするシステムLSI開発環境生成
    方法。
  26. 【請求項26】 コンピュータに、入力されたコマンド
    を解析させ、 前記解析したコマンドに応じて、プロセッサがSIMD
    型であり、ハードウェアの指定がSIMD命令形式であ
    ることを記述したコンフィグレーション指定ファイルの
    情報に基づき、コンパイラを構築するコンパイラカスタ
    マイズ部、アセンブラを構築するアセンブラカスタマイ
    ズ部、及びシミュレータを構築するシミュレータ生成部
    を生成させることを特徴とするシステムLSI開発環境
    生成プログラム。
  27. 【請求項27】 前記コンパイラカスタマイズ部は、入
    力されたSIMD命令に関する情報に基づき、機械命令
    関数定義を生成することを特徴とする請求項25又は2
    6記載のシステムLSI開発環境生成方法又はそのプロ
    グラム。
  28. 【請求項28】 前記コンパイラカスタマイズ部は、入
    力されたSIMD命令に関する情報に基づき、特殊デー
    タ型を生成することを特徴とする請求項25又は26記
    載のシステムLSI開発環境生成方法又はそのプログラ
    ム。
  29. 【請求項29】 前記シミュレータカスタマイズ部は、
    入力されたSIMD命令に関する情報に基づき、シミュ
    レータの動作をカスタマイズすることを特徴とする請求
    項25又は26記載のシステムLSI開発環境生成方法
    又はそのプログラム。
  30. 【請求項30】 前記シミュレータカスタマイズ部は、
    入力されたSIMD命令に関する情報に基づき、シミュ
    レータの結果出力機能をカスタマイズすることを特徴と
    する請求項25又は26記載のシステムLSI開発環境
    生成方法又はそのプログラム。
  31. 【請求項31】 前記SIMD命令の動作記述は、複数
    命令をまとめて1命令で記述することを特徴とする請求
    項25又は26記載のシステムLSI開発環境生成方法
    又はそのプログラム。
  32. 【請求項32】 前記SIMD命令の動作記述は、指標
    を用いて記述することを特徴とする請求項25又は26
    記載のシステムLSI開発環境生成方法又はそのプログ
    ラム。
  33. 【請求項33】 定義済みの複数の命令を含む複数の命
    令ライブラリから必要な命令を選択させ、 これら選択した命令をマージしてアプリケーションに応
    じた開発環境を生成させ、前記開発環境は、コンパイラ
    を構築するコンパイラカスタマイズ部、アセンブラを構
    築するアセンブラカスタマイズ部、及びシミュレータを
    構築するシミュレータ生成部を含むことを特徴とするシ
    ステムLSI開発環境生成方法。
  34. 【請求項34】 コンピュータに定義済みの複数の命令
    を含む複数の命令ライブラリから必要な命令を選択さ
    せ、 これら選択した命令をマージしてアプリケーションに応
    じた開発環境を生成させ、前記開発環境は、コンパイラ
    を構築するコンパイラカスタマイズ部、アセンブラを構
    築するアセンブラカスタマイズ部、及びシミュレータを
    構築するシミュレータ生成部を含むことを特徴とするシ
    ステムLSI開発環境生成プログラム。
  35. 【請求項35】 前記複数の命令ライブラリから必要な
    命令を選択した後、前記命令ライブラリ毎に中間ライブ
    ラリを生成し、 これら中間ライブラリをマージすることを特徴とする請
    求項33又は34記載のシステムLSI開発環境生成方
    法又はそのプログラム。
  36. 【請求項36】 前記複数の命令ライブラリから必要な
    命令を選択した後、前記命令ライブラリ毎に中間ライブ
    ラリを生成し、 これら中間ライブラリと基本命令の中間ファイルをマー
    ジすることを特徴とする請求項33又は34記載のシス
    テムLSI開発環境生成方法又はそのプログラム。
  37. 【請求項37】 前記命令ライブラリ内の命令に対し
    て、命令が用いるデータ型を選択できることを特徴とす
    る請求項33又は34記載のシステムLSI開発環境生
    成方法又はそのプログラム。
  38. 【請求項38】 前記命令ライブラリ内の命令に対し
    て、命令が用いるデータ型を変更できることを特徴とす
    る請求項33又は34記載のシステムLSI開発環境生
    成方法又はそのプログラム。
  39. 【請求項39】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、システムLSIのコン
    フィグレーションを記述したコンフィグレーション指定
    ファイルの情報に基づきシステムLSIの開発環境を生
    成し、 前記開発環境は、コンパイラを構築するコンパイラカス
    タマイズ部、アセンブラを構築するアセンブラカスタマ
    イズ部、及びシミュレータを構築するシミュレータ生成
    部を含み、 前記コンフィグレーション指定ファイルは、高位な記述
    を含むことを特徴とするシステムLSI開発環境生成方
    法。
  40. 【請求項40】 コンピュータに入力されたコマンドを
    解析させ、 前記解析したコマンドに応じて、システムLSIのコン
    フィグレーションを記述した高位な記述を含むコンフィ
    グレーション指定ファイルの情報に基づき、コンパイラ
    を構築するコンパイラカスタマイズ部、アセンブラを構
    築するアセンブラカスタマイズ部、及びシミュレータを
    構築するシミュレータ生成部を生成させることを特徴と
    するシステムLSI開発環境生成方法。
  41. 【請求項41】 前記高位な記述は、少なくともビット
    連結、部分ビット切り出し、関数形式、符号のキャスト
    演算子、一時変数、オーバーフローに対する動作記述を
    含むことを特徴とする請求項39又は40記載のシステ
    ムLSI開発環境生成方法又はそのプログラム。
  42. 【請求項42】 前記高位な記述は、式の左辺にもビッ
    ト連結を記述することができることを特徴とする請求項
    39又は40記載のシステムLSI開発環境生成方法又
    はそのプログラム。
  43. 【請求項43】 前記コンフィグレーション指定ファイ
    ルは、パイプライン定義の記述を含むことを特徴とする
    請求項39又は40記載のシステムLSI開発環境生成
    方法又はそのプログラム。
  44. 【請求項44】 前記パイプライン定義の記述は、パイ
    プラインタイプの定義を含むことを特徴とする請求項3
    9又は40記載のシステムLSI開発環境生成方法又は
    そのプログラム。
  45. 【請求項45】 前記パイプライン定義の記述は、ハザ
    ード情報を含むことを特徴とする請求項39又は40記
    載のシステムLSI開発環境生成方法又はそのプログラ
    ム。
  46. 【請求項46】 前記コンフィグレーション指定ファイ
    ルは、パイプラインに関してコンパイラのためのスケジ
    ューリング情報を含むことを特徴とする請求項39又は
    40記載のシステムLSI開発環境生成方法又はそのプ
    ログラム。
  47. 【請求項47】 前記コンフィグレーション指定ファイ
    ルは、パイプラインに関してハザード検証ベクトル生成
    のための記述を含むことを特徴とする請求項39又は4
    0記載のシステムLSI開発環境生成方法又はそのプロ
    グラム。
  48. 【請求項48】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、システムLSIのコン
    フィグレーションを記述したコンフィグレーション指定
    ファイルに記載された動作命令からハードウェアリソー
    ス割り当てとスケジューリングを行なうスケジューリン
    グ部と、コア部及び制御パスとメモリとのインターフェ
    ースを整合させるインターフェース整合部と、C言語を
    Verilog に変化する変換部とを含むRTL生成部を生成
    することを特徴とするシステムLSI開発環境生成方
    法。
  49. 【請求項49】 コンピュータに入力されたコマンドを
    解析させ、 前記解析したコマンドに応じて、システムLSIのコン
    フィグレーションを記述したコンフィグレーション指定
    ファイルに記載された動作命令からハードウェアリソー
    ス割り当てとスケジューリングを行なうスケジューリン
    グ部と、コア部及び制御パスとメモリとのインターフェ
    ースを整合させるインターフェース整合部と、C言語を
    Verilog に変化する変換部とを含むRTL生成部を生成
    させることを特徴とするシステムLSI開発環境生成プ
    ログラム。
  50. 【請求項50】 インターフェース整合部は、前記動作
    命令からハードウェアリソース割り当てとスケジューリ
    ング、コア部及び制御パスとメモリとのインターフェー
    スを整合し、RTLを生成することを特徴とする請求項
    48又は49記載のシステムLSI開発環境生成方法又
    はそのプログラム。
  51. 【請求項51】 入力されたコマンドを解析し、 前記解析したコマンドに応じて、システムLSIのコン
    フィグレーションを記述したコンフィグレーション指定
    ファイルの情報に基づきシステムLSIの開発環境を生
    成し、 前記開発環境は、検証ベクトルを生成する検証ベクトル
    生成部を含み、 前記検証ベクトル生成部は、前記コンフィグレーション
    指定ファイルの動作命令からプロセッサの検証ベクトル
    を生成することを特徴とするシステムLSI開発環境生
    成方法。
  52. 【請求項52】 前記検証ベクトル生成部は、前記コン
    フィグレーション指定ファイルのレジスタ情報からIS
    A情報を生成することを特徴とする請求項51記載のシ
    ステムLSI開発環境生成方法又はそのプログラム。
JP2002127381A 2002-04-26 2002-04-26 システムlsi開発環境生成方法及びそのプログラム Expired - Lifetime JP4202673B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 命令生成装置及び命令生成方法

Cited By (10)

* Cited by examiner, † Cited by third party
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