JP2007094591A - シミュレーション装置及びシミュレーション方法 - Google Patents

シミュレーション装置及びシミュレーション方法 Download PDF

Info

Publication number
JP2007094591A
JP2007094591A JP2005280862A JP2005280862A JP2007094591A JP 2007094591 A JP2007094591 A JP 2007094591A JP 2005280862 A JP2005280862 A JP 2005280862A JP 2005280862 A JP2005280862 A JP 2005280862A JP 2007094591 A JP2007094591 A JP 2007094591A
Authority
JP
Japan
Prior art keywords
circuit
verification
design target
circuits
simulation
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
JP2005280862A
Other languages
English (en)
Other versions
JP4599266B2 (ja
Inventor
Tsutomu Takei
勉 武井
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 JP2005280862A priority Critical patent/JP4599266B2/ja
Priority to US11/527,418 priority patent/US20070074141A1/en
Publication of JP2007094591A publication Critical patent/JP2007094591A/ja
Application granted granted Critical
Publication of JP4599266B2 publication Critical patent/JP4599266B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】 ハードウェア及びソフトウェアの協調シミュレーションのシミュレーション品質を向上させる。
【解決手段】 サイクル動作を行う設計対象回路3aが実装されるプログラマブル回路1aと、時間制約のない動作記述として作成されたプログラムを実行するコンピュータ2とを具備し、プログラマブル回路1aは、コンピュータ2及び設計対象回路3a間のデータ転送をトランザクション単位で行うデータ転送回路41a,41bと、設計対象回路3aの動作が仕様を満たしているかを検証し、設計対象回路3aの動作が仕様を満たしていないときにエラー検出として通知する検証回路31_1〜31_n,31_1〜31_kと、エラーの検出が通知された場合に設計対象回路3aの動作を一時的に停止させて、検証回路31_1〜31_n,31_1〜31_kによる検証の結果をコンピュータ2に転送する検証結果転送回路42a,42bとを備える。
【選択図】 図1

Description

本発明はトランザクションレベルの協調シミュレーションに使用されるシミュレーション装置及びシミュレーション方法に関する。
大規模化・複雑化するシステムLSI(システム・オン・チップ(SoC))の設計において、シミュレーションに要する時間や労力が増大している。また、検証の網羅性等を改善するために、検証の高速化、設計上流での検証、及び実機や設計資産(IP)を接続しての検証等が必要である。一方、レジスタ・トランスファ・レベル(RTL)のハードウェア記述言語(HDL)等で記述された回路記述が仕様を満たしているかどうかを検証するために、回路記述等に複数のアサーションが挿入される場合がある(例えば、特許文献1参照。)。「アサーション」とは、エラーのないプログラムを作成するための手法であり、プログラム中で、ある条件が成立していなければならない箇所に検証用のコード(アサーション記述)を挿入し、条件に違反している場合はエラーを出力してプログラムの状態をチェックできるようにする。アサーションを利用する場合、HDLシミュレータによるアサーション検証がコンピュータ上で実行される。
更に、検証の高速化等を目的として、フィールド・プログラマブル・ゲート・アレイ(FPGA)等のプログラマブル回路を用いたシミュレーションが利用される。システムLSIにおいてハードウェア化する機能をFPGAに実装(ロード)し、ハードウェア化しない機能をC/C++言語等を用いてコンピュータに実行させる。プログラマブル回路とコンピュータとを使用したハードウェア及びソフトウェアのシミュレーションは「協調シミュレーション」と呼ばれる。
しかしながら、上述した協調シミュレーションにおいては、プログラマブル回路に実装される設計対象回路に対し、アサーションを含めたシミュレーションを行うことができない。よって、プログラマブル回路に実装された設計対象回路の内部動作(内部信号)の観測性が低く、シミュレーション品質を十分に高めることができない。
特開2005−108007号公報
本発明は、ハードウェア及びソフトウェアの協調シミュレーションのシミュレーション品質を向上させることが可能なシミュレーション装置及びシミュレーション方法を提供する。
本発明の一態様によれば、サイクル動作を行う設計対象回路が実装されるプログラマブル回路と、時間制約のない動作記述として作成されたプログラムを実行するコンピュータとを具備するシミュレーション装置であって、プログラマブル回路は、(a)コンピュータ及び設計対象回路間のデータ転送をトランザクション単位で行うデータ転送回路と、(b)設計対象回路の動作が仕様を満たしているかを検証し、設計対象回路の動作が仕様を満たしていないときにエラー検出として通知する検証回路と、(c)エラーの検出が通知された場合に設計対象回路の動作を一時的に停止させて、検証回路による検証の結果をコンピュータに転送する検証結果転送回路とを備えるシミュレーション装置が提供される。
本発明の他の態様によれば、(a)サイクル動作を行う設計対象回路をプログラマブル回路に実装し、(b)時間制約のない動作記述として作成されたプログラムをコンピュータ上で実行し、(c)コンピュータ及び設計対象回路間のデータ転送をトランザクション単位で行い、(d)設計対象回路の動作が仕様を満たしているかを検証して、設計対象回路の動作が仕様を満たしていないときにエラー検出として通知し、(e)エラーの検出が通知された場合に設計対象回路の動作を一時的に停止させて、設計対象回路の動作が仕様を満たしているかの検証の結果をコンピュータに転送することを含むシミュレーション方法が提供される。
本発明によれば、ハードウェア及びソフトウェアの協調シミュレーションのシミュレーション品質を向上させることが可能なシミュレーション装置及びシミュレーション方法を提供できる。
次に、図面を参照して、本発明の第1〜第3実施形態を説明する。以下の第1〜第3実施形態における図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
(第1実施形態)
本発明の第1実施形態に係るシミュレーション装置は、図1に示すように、サイクル動作を行う設計対象回路3aが実装されるプログラマブル回路1aと、時間制約のない動作記述として作成されたプログラムを実行するコンピュータ2とを具備する。ここで、「サイクル動作」とは、クロックと同期した動作を意味する。「時間制約のない」とは、クロックと非同期の動作を意味する。以下の説明においては、時間制約のない動作を「アンタイムドな動作」と呼ぶ。プログラマブル回路1aとしては、例えばFPGAが使用できる。また、以下の説明においては、コンピュータ2が実行するプログラムとして、C言語又はC++言語で記述されたプログラム(以下において「C/C++プログラム」と略記する。)を使用する一例を説明する。C/C++プログラムは、例えば、設計対象回路3aと協調動作するソフトウェアであり、設計対象回路3aに対するデータ入力及びデータ出力を行うものである。
プログラマブル回路1aには、コンピュータ2及び設計対象回路3a間のデータ転送をトランザクション単位で行う第1及び第2データ転送回路41a及び41bと、設計対象回路3a内に実装され、設計対象回路3aの内部動作が仕様を満たしているかを示すアサーションを検証する第1検証回路31_1と、設計対象回路3aの動作が仕様を満たしているかを検証し、設計対象回路3aの動作が仕様を満たしていないときにエラー検出として通知する第1検証回路31_1と、エラーの検出が通知された場合に設計対象回路3aの動作を一時的に停止させて、第1検証回路31_1による検証の結果をコンピュータ2に転送する第1検証結果転送回路42aが実装される。プログラマブル回路1a内の各回路は、HDL記述等を論理合成等して得られる回路データに応じて構成される。尚、「トランザクション」とは、関連する複数の処理を1つの処理単位としてまとめたものを意味する。
また、第1検証結果転送回路42aからコンピュータ2に転送される検証結果の情報としては、例えば、エラー検出の有無、エラーが検出された際の検証対象信号の値、及びシミュレーション開始からエラー検出までのサイクル数の情報等が挙げられる。
第1データ転送回路41aは設計対象回路3aの入力端子(図示省略)に対するデータ入力時に用いられ、第2データ転送回路41bは設計対象回路の出力端子(図示省略)からのデータ出力時に用いられる。第1及び第2データ転送回路41a及び41bは、サイクル動作を行うハードウェア(設計対象回路3a)と、アンタイムドな動作を行うソフトウェア(C/C++プログラム)との橋渡しを行う。
しがって、ハードウェア(設計対象回路3a)とソフトウェア(C/C++プログラム)との間のデータ転送がトランザクション単位、即ち複数クロック単位で実現できる。即ち、プログラマブル回路1aに実装された設計対象回路3aが数十〜数百サイクル程度連続して動作する毎に、コンピュータ2及び設計対象回路3a間でデータの入出力が行われる。この結果、設計対象回路3aが1サイクル動作する毎にクロックが停止してデータの入出力を行う手法と比較して、協調シミュレーションを高速に実行でき、シミュレーションに要する時間を短縮できる。
また、図1に示す例においては、第1検証結果転送回路42aに加えて、第2検証結果転送回路42bがプログラマブル回路1aに実装されている。尚、データ転送回路及び検証結果転送回路のそれぞれの個数は2個に限らず、3個以上を使用しても良い。或いは、第1データ転送回路41a、第2データ転送回路41b、第1検証結果転送回路42a、及び第2検証結果転送回路42bを1つのステートマシンとして実装し、ステートマシンに第1データ転送回路41a、第2データ転送回路41b、第1検証結果転送回路42a、及び第2検証結果転送回路42bの各機能を実現をさせても構わない。
更に、設計対象回路3aの内部には、第1検証結果転送回路42aに検証結果を通知する複数の(第1〜第n)検証回路31_1〜31_nと、第2検証結果転送回路42bに検証の結果を通知する複数の(第1〜第k)検証回路32_1〜32_kが実装される(n,k;2以上の整数)。
また、プログラマブル回路1aは、コンピュータ2に接続される入出力(I/O)ポート5を備える。I/Oポート5としては、例えば、トランザクションレベルの検証を行うためのインターフェース規格であるSCE−MI(Standard Co−Emulation Modeling Interface)規格に準拠したI/Oポートが使用できる。I/Oポート5及びコンピュータ2間は、例えばPCIバス等を介して接続される。
更に、第1〜第n検証回路31_1〜31_nのそれぞれは、図2及び図3に示すようなアサーション記述に基づいて構成される。即ち、第1〜第n検証回路31_1〜31_n及び第1〜第k検証回路32_1〜32_kの総個数は、HDL記述中に挿入されるアサーション記述の数に対応している。以下においては、図1に示す第1検証回路31_1が、図2及び図3に示すアサーション記述に相当する構成を有している場合について説明する。
図2は、HDL記述によるアサーションプロパティ記述の一例を示している。図2に示すように、設計者が定義した仕様を“sequence”として表現することで、複数サイクルに渡る動作が検証される。図2に示す例においては、“request”信号が論理値“1”になった後、1〜3サイクル後に“grant”信号が発生し、その次のサイクルで“request”信号がデアサートされ、更にその次のサイクルで“grant”信号がデアサートされなければならないという仕様が記述されている。
図3は、図2のアサーションプロパティをチェックするためにHDL記述中に挿入されるアサーション指定の一例である。図3においては、設計対象回路3aの内部動作状態が“FETCH”になったときに、図2のアサーションプロパティをチェックするという一例を示している。
通常、図2及び図3に示すようなアサーション記述を含むHDL記述は、HDLシミュレータ等によりコンピュータ上で実行されてアサーション検証が行われる。これに対して、図1に示すようにプログラマブル回路1aに、アサーション記述に対応する複数の検証回路31_1〜31_n,32_1〜32_kを実装することにより、実際にハードウェアとして構成した場合の設計対象回路3aの内部動作(内部信号)を高精度に検証することが可能となる。
次に、図4を用いて、図1に示すプログラマブル回路1aの動作概要を、I/Oポート5、第1検証結果転送回路42a、及び第1検証回路31_1を例にして説明する。I/Oポート5は、図1に示すコンピュータ2から供給される基準クロックCLK1を第1検証結果転送回路42a、第1検証回路31_1、及び動作クロック生成回路6に伝達する。即ち、図1に示す第1及び第2データ転送回路41a及び41bと、第1及び第2検証結果転送回路42a及び42aとは、基準クロックCLK1に同期して動作する。
動作クロック生成回路6は、基準クロックCLK1に基づいて動作クロックCLK2を生成する。設計対象回路3aは、動作クロックCLK2に同期して動作する。第1検証回路31_1は、エラー検出を通知するまでは動作クロックCLK2に同期して動作するが、エラー検出を通知した後は基準クロックCLK1に同期して動作する。動作クロックCLK2は、例えば基準クロックCLK1と等しい周波数に設定される。
したがって、設計対象回路3aの動作が停止している間に、図1に示す第1及び第2データ転送回路41a及び41bが、C/C++プログラムからデータを受け取って設計対象回路3aにデータを渡す準備ができ、設計対象回路3aから受け取ったデータをC/C++プログラムに転送できる。
図4に示す第1検証回路31_1は、エラーを検出するとエラー検出通知信号ER1を第1検証結果転送回路42aに出力する。第1検証結果転送回路42aは、エラー検出通知信号ER1を受け取ると、動作クロック生成回路6に対して動作クロック停止指示信号CCを出力する。動作クロック生成回路6は、動作クロック停止指示信号CCを受け取ると、動作クロックCLK2の生成を中断する。動作クロック生成回路6は、動作クロックCLK2が停止しているかどうかを示す動作クロック判定信号CEを第1検証結果転送回路42aに出力する。
尚、図1に示す第2検証結果転送回路42bから動作クロック生成回路6に対しても動作クロック停止指示信号CCが出力されるが、動作クロック生成回路6は、第1及び第2検証結果転送回路42a及び42bのいずれか一方から動作クロック停止指示信号CCが出力された時点で動作クロックCLK2の生成を中断する。
したがって、エラーの検出から一定期間においては、設計対象回路3aの動作が停止するが、第1検証結果転送回路42aは基準クロックCLK1に同期して動作し続ける。第1検証回路31_1は、検証対象信号にエラーが検出された場合に、基準クロックCLK1に同期して、エラー検出時の検証対象信号の値SV1を第1検証結果転送回路42aに供給する。設計対象回路3aの動作が停止している間に、第1検証結果転送回路42aは、エラー検出時の検証対象信号の値SV1を第1検証回路31_1から読み出し、読み出した検証対象信号の値SV1をコンピュータ2に転送する。
第1検証回路31_1は、第1検証結果転送回路42aに対し、検証対象信号の値SV1の出力が完了すると、検証対象信号の値SV1の出力が完了した旨を第1検証結果転送回路42aに報告する。
図4においては、設計対象回路3aを動作させる動作クロックCLK2が1つで、動作クロックCLK2が基準クロックCLK1と同一周波数であると説明したが、動作クロックCLK2が複数で、動作クロックCLK2が基準クロックCLK1と異なる周波数であっても構わない。
次に、図5を参照して、図1及び図4に示す第1検証回路31_1の内部構成例について説明する。第1検証回路31_1は、論理回路301、第1シフトレジスタ302、及び第2シフトレジスタ303を備える。図5に示す“request”信号は、図2に示すアサーションプロパティ例の“request”に対応している。また、図5に示す“grant”信号は、図2に示すアサーションプロパティ例の“grant”に対応している。“request”信号及び“grant”信号は検証対象信号であり、論理回路301により検証が行われる。
更に、“state”信号は設計対象回路3aの内部動作状態を示す信号であり、図3に示すアサーション指定例の“state”に対応している。論理回路301、第1シフトレジスタ302、及び第2シフトレジスタ303は、“state”信号に応じて動作の開始、終了、及び中断を行う。一例として、設計対象回路3aの内部動作状態が“FETCH”ステートになったときに、“state”信号が論理値“1”になり、アサーション検証動作が開始される。“state”信号が論理値“0”になった場合は、アサーション検出動作は、終了又は中断され、第1及び第2シフトレジスタ302及び303に保持された値等がリセットされる。
第1シフトレジスタ302は、検証対象信号である“request”信号を取り込み、動作クロックCLK2に同期して“request”信号を順次シフトする。シフトされた“request”信号は論理回路301に入力される。第2シフトレジスタ303は、検証対象信号である“grant”信号を取り込み、動作クロックCLK2に同期して“grant”信号を順次シフトする。シフトされた“grant”信号は論理回路301に入力される。この結果、論理回路301は、“request”信号及び“grant”信号の複数サイクル間の遷移を検証可能となる。
論理回路301は、“request”信号及び“grant”信号のそれぞれの値に基づいてエラーを検出する。具体的には、“request”信号が論理値“1”になった後、1〜3サイクル後に“grant”信号が発生し、その次のサイクルで“request”信号がデアサートされ、更にその次のサイクルで“grant”信号がデアサートされるという仕様が満たされているかを判定する。仕様が満たされていない場合には、エラー検出通知信号ER1を図1及び図4に示す第1検証結果転送回路42aに出力する。
第1検証結果転送回路42aは、エラー検出通知信号ER1に基づいて、エラー検出時の検証対象信号(“request”信号、“grant”信号)の信号値の読み出し開始を指示するプローブ信号PR1を論理回路301に供給する。論理回路301は、プローブ信号PR1に応答して、エラー検出時の検証対象信号(“request”信号、“grant”信号)の信号値SV1を第1検証結果転送回路42aに出力する。
次に、図6を用いて、図1及び図4に示す第1検証結果転送回路42aの内部構成例について説明する。第1検証結果転送回路42aは、制御回路422、カウンタ425、及び複数の(第1〜第n)レジスタ421_1〜421_nを備える。制御回路422は、エラー検出時の検証対象信号値を一時的に保持する第1レジスタ423と、カウンタ425のカウント値を保持する第2レジスタ424を備える。
制御回路422には、図1に示す第1〜第n検証回路31_1〜31_nから、エラー検出通知信号ER1〜ERnと、エラー検出時の検証対象信号値SV1〜SVnとが入力される。第1〜第nレジスタ421_1〜421_nは、エラー検出通知信号ER1〜ERnをそれぞれ保持する。制御回路422は、エラー検出通知信号ER1〜ERnのうちの2つ以上が同時に生成された場合に、第1〜第nレジスタ421_1〜421_nを参照することでエラーを検出した検証回路を識別する。尚、読み出しが完了すると第1〜第nレジスタ421_1〜421_nに保持された値はリセットされる。
また、第1検証結果転送回路42aは、エラー検出通知信号ER1〜ERnに応じて、第1〜第n検証回路31_1〜31_nに対してプローブ信号PR1〜PRnを出力する。即ち、制御回路422は、第1〜第n検証回路31_1〜31_nのうちの2つ以上が同時にエラーを検出した場合に、プローブ信号PR1〜PRnを用いて、検証対象信号値SV1〜SVnの読み出し動作をシーケンシャルに行う。
更に、制御回路422には、図1及び図4に示すI/Oポート5から、受信制御信号RR及び基準クロックCLK1が入力される。制御回路422は、I/Oポート5に対して、送信制御信号TR及び検証結果出力信号OUTを出力する。I/Oポート5及び制御回路422間で受信制御信号RR及び送信制御信号TRを送受信することで、I/Oポート5及び制御回路422間のデータ転送が制御される。
カウンタ425は、シミュレーション開始からの動作クロックCLK2のサイクル数をカウントして、カウント値を第2レジスタ424に出力する。或いは、カウンタ425は、基準クロックCLK1と動作クロック判定信号CEとからカウント動作を行っても良い。また、カウンタ425を設けずに、C/C++プログラムのSCE−MIアプリケーション・プログラミング・インターフェース(API)からクロック数を取り出す構成でも構わない。
このように、制御回路422は、第1〜第n検証回路31_1〜31_nのエラー検出に応じて、エラーが検出された際の検証対象信号値SV1〜SVnの読み出し動作を行い、シミュレーション開始からエラー検出までのサイクル数を取得する。エラーが検出された際の検証対象信号値SV1〜SVn及びシミュレーション開始からエラー検出までのサイクル数の情報は、検証結果として、I/Oポート5を介して図1に示すコンピュータ2へ転送される。
次に、図7に示すタイムチャートを参照して、図1に示すプログラマブル回路1aの動作を、第1検証回路31_1、第n検証回路31_n、及び第1検証結果転送回路42aを例に説明する。図7においては、第1検証回路31_1及び第n検証回路31_nがエラーを同時に検出した場合の動作を示している。
図7の時刻t1において、第1検証回路31_1の検証動作が開始される。時刻t2において、第n検証回路31_nの検証動作が開始される。
時刻t3において、第1及び第n検証回路31_1及び31_nがエラーを同時に検出したと仮定する。エラーが検出されると、図4に示す動作クロック生成回路6は、時刻t4において、図5(b)に示す動作クロックCLK2の生成を停止する。動作クロックCLK2が停止すると、図1に示す設計対象回路3aの動作が停止するが、第1及び第n検証回路31_1及び31_nと第1検証結果転送回路42aは、図5(a)に示す基準クロックCLK1に同期して動作を継続する。
時刻t4〜t5の期間においては、第1検証結果転送回路42aは、第1検証回路31_1による検証の結果を読み出す。第1検証回路31_1から読み出された検証結果は、I/Oポート5を介してコンピュータ2に転送される。
時刻t6〜t7の期間においては、第1検証結果転送回路42aは、第n検証回路31_nによる検証の結果を読み出す。第n検証回路31_nから読み出された検証結果は、I/Oポート5を介してコンピュータ2に転送される。
このように、第1及び第n検証回路31_1及び31_nのエラー検出が同時である場合には、動作クロックCLK2を停止させた後に、第1検証回路31_1による検証の結果の取り出しと、第n検証回路31_nによる検証の結果の読み出しが、シーケンシャルに実行されている。
尚、図7においては基準クロックCLK1が常に連続して動作しているが、コンピュータ2上で実行されるC/C++プログラムと、プログラマブル回路1aがPCIバスを介してデータをやり取りする場合は、基準クロックCLK1が停止する場合もある。
次に、図8に示すフローチャートを参照して、第1実施形態に係るシミュレーション方法を説明する。但し、検証(シミュレーション)時におけるエラーの同時発生を考慮しない場合について説明する。
ステップS101において、図1に示すコンピュータ2は、動作記述から回路データを作成する。具体的には、動作記述から高位合成等によりHDL記述を作成する。HDL記述中にはアサーション記述が挿入される。HDL記述を論理合成することで回路データ(ネットリスト)が作成される。アサーション記述に対しては、例えば予め用意されたライブラリからアサーション記述に対応した回路データを取得することにより、アサーション記述用の回路データが作成される。
ステップS102において、ステップS101で作成された回路データが、所定のデータフォーマットに変換後、プログラマブル回路1aに実装される。また、ステップS103において、コンピュータ2は、アンタイムドな動作を行うC/C++プログラムを実行する。
ステップS104において、設計対象回路3aのサイクル動作が開始される。
ステップS105において、データ転送回路は、コンピュータ2及び設計対象回路3a間のデータ転送をトランザクション単位で行う。
ステップS105において、複数の検証回路31_1〜31_n,32_1〜32_kは、設計対象回路3aの内部信号を所定のタイミングで監視して、仕様を満たしているか否かを検証する。仕様を満たさずにエラーが検出された場合、ステップS108に進む。エラーが検出されない場合、ステップS107に進む。
ステップS107においてシミュレーションを終了すると判定された場合、シミュレーションが終了する。これに対して、ステップS107においてシミュレーションを終了しないと判定された場合、ステップS105に処理が戻る。
ステップS108において、設計対象回路3aの動作が停止される。また、設計対象回路3aの動作が停止される期間において、検証結果がコンピュータ2に転送される。
ステップS109においてシミュレーションを終了すると判定された場合、シミュレーションが終了する。これに対して、ステップS107においてシミュレーションを終了しないと判定された場合、ステップS104に処理が戻り、設計対象回路3aのサイクル動作が再開される。
以上詳細に述べたように、第1実施形態によれば、プログラマブル回路1aを用いたトランザクションレベルの協調シミュレーションにおいてもアサーション検証が可能になる。したがって、プログラマブル回路1aに実装される設計対象回路3aの内部信号の観測性を十分に高めることができるので、設計品質(シミュレーション品質)の向上を計ることができる。更に、設計対象回路3a及びC/C++プログラム間のデータ転送がトランザクション単位で実行されるため、シミュレーションを高速に実行でき、シミュレーションに要する時間を短縮できる。
(第1実施形態の第1変形例)
上述した第1実施形態においては、エラー検出通知があった直後に設計対象回路3aの動作を停止させる一例を説明した。しかしながら、本発明の第1実施形態の第1変形例として、エラー検出通知から一定サイクル経過後に設計対象回路3aの動作を停止させても良い。この結果、あるエラーが検出されてから、一定サイクル期間内に発生した他のエラーをも検出可能となる。
図4に示す動作クロック生成回路6は、例えば、第1検証結果転送回路42aから動作クロック停止指示信号CCを受け取った時点から基準クロックCLK1をカウントし、カウント値が一定値となるまでは動作クロックCLK2の生成を継続する。
また、図1に示す第1及び第2検証結果転送回路42a及び42bのそれぞれは、エラー検出通知から一定サイクル期間内に検出されたエラーに対して、エラー検出時の検証対象信号の値をシーケンシャルに読み出す。
このように、第1実施形態の変形例によれば、あるエラーが検出されてから一定サイクル期間は設計対象回路3aを動作させることにより、一定サイクル期間内に他のエラーを検出することが可能となる。
(第1実施形態の第2変形例)
本発明の第1実施形態の第2変形例として、プログラマブル回路1aに対する回路データの実装前に、複数の検証回路31_1〜31_n,32_1〜32_kのうち、エラーが同時に検出される可能性の高い検証回路同士を異なる検証結果転送回路に割り振る一例について説明する。
図1に示すように検証結果転送回路42aが複数の検証回路31_1〜31_nの検証結果を読み出す場合に、シミュレーション実行時のエラーの同時発生頻度を見積もり、エラーを同時に検出する可能性の高い検証回路同士を、異なる検証結果転送回路に割り当てる。
例えば、検証対象の信号が同一である検証回路は、エラーを同時に検出する可能性が高いと判断できる。よって、検証対象の信号が同一である検証回路同士を異なる検証結果転送回路に割り振ることが好ましい。
次に、図9に示すフローチャートを参照して、第1実施形態の第2変形例に係るシミュレーション方法を説明する。但し、図8に示すフローチャートと同様の処理については重複する説明を省略する。
ステップS201において、図1に示すコンピュータ2は、動作記述から高位合成等によりHDL記述を作成する。HDL記述中にはアサーション記述が挿入される。更に、コンピュータ2は、HDL記述中に挿入されたアサーション記述を解析して、複数のアサーション記述から検証対象の信号が同一であるアサーション記述を検索する。
また、コンピュータ2は、HDL記述を論理合成することで回路データ(ネットリスト)を作成する。アサーション記述に対しては、例えば予め用意されたライブラリからアサーション記述に対応した回路データを取得することにより、アサーション記述用の回路データが作成される。ここで、検証対象の信号が同一であるアサーション記述の回路データに対しては、異なる検証結果転送回路の回路データに割り振る。
ステップS102においては、ステップS201で作成された回路データがプログラマブル回路1aに実装される。以降の処理については図8と同様である。
このように、第1実施形態の第2変形例によれば、回路データをプログラマブル回路1aに実装する前に、検証回路と検証結果転送回路の対応関係を最適化することで、複数の検証回路が同時にエラーを検出した場合に、コンピュータ2に対して、検証結果の転送動作を短時間で完了できる。
(第1実施形態の第3変形例)
本発明の第1実施形態の第3変形例として、上述した第1実施形態の第2変形例と異なる方法で、エラーが同時に検出される可能性の高い検証回路同士を異なる検証結果転送回路に割り振る一例について説明する。具体的には、一度シミュレーションを実行した結果から、同時にエラーを検出した2以上の検証回路を、異なる検証結果転送回路に割り振る。
次に、図10に示すフローチャートを参照して、第1実施形態の第3変形例に係るシミュレーション方法を説明する。但し、図8に示すフローチャートと同様の処理については重複する説明を省略する。
ステップS107又はステップS109において、1回目のシミュレーションを終了すると判定された場合、ステップS301に進む。ステップS301においては、シミュレーションを再開するか否かが判定される。シミュレーションを再開すると判定された場合、ステップS302に進む。シミュレーションを再開しないと判定された場合、シミュレーションが終了する。
ステップS302においては、1回目のシミュレーション中に同時にエラーを検出した2以上の検証回路を特定し、特定された2以上の検証回路を異なる検証結果転送回路に割り振るようにステップS101で作成された回路データを変更する。回路データが変更されるとステップS102に処理が戻る。
このように、第1実施形態の第3変形例によれば、一度シミュレーションを実行した結果から、同時にエラーを検出した2以上の検証回路を、異なる検証結果転送回路に割り振ることで、検証回路と検証結果転送回路の対応関係を最適化できる。
(第2実施形態)
本発明の第2実施形態に係るシミュレーション装置は、図11に示すように、プログラマブル回路1bにおいて、1つの検証回路に1つの検証結果転送回路が割り振られている点が図1と異なる。即ち、図11に示す第1検証結果転送回路43aは、第1検証回路31による検証の結果のみを読み出す。同様に、第2検証結果転送回路43bは、第2検証回路32による検証の結果のみを読み出す。その他の構成については図1に示すシミュレーション装置の構成と同様である。
図1に示すシミュレーション装置では、第1〜第n検証回路31_1〜31_nが第1検証結果転送回路42aに接続され、第1〜第n検証回路31_1〜31_nでエラーが同時に発生した場合に第1検証結果転送回路42aが検証結果をシーケンシャルに読み出す場合を説明した。一方、図11に示すシミュレーション装置は、複数の検証回路31,32,・・・に複数の検証結果転送回路43a,43b,・・・がそれぞれ割り振られているため、エラーが同時に発生した際に検証結果の転送に要する時間を短縮できる。
次に、図12に示すタイムチャートを参照して、図11に示すプログラマブル回路1bの動作を、第1検証回路31、第2検証回路32、第1検証結果転送回路43a、及び第2検証結果転送回路43bを例に説明する。図12においては、第1及び第2検証回路31及び32がエラーを同時に検出した場合の動作を示している。但し、図1に示すプログラマブル回路1aと同様の動作については重複する説明を省略する。
図12の時刻t3において、図11に示す第1及び第2検証回路31及び32がエラーを同時に検出したと仮定する。エラーが検出されると、図11に示す設計対象回路3bの動作が停止するが、第1検証回路31、第2検証回路32、第1検証結果転送回路43a、及び第1検証結果転送回路43aは、図12(a)に示す基準クロックCLK1に同期して動作を継続する。
時刻t4〜t5の期間において、第1検証結果転送回路43aは、第1検証回路31による検証の結果を読み出す。第1検証回路31_1から読み出された検証結果は、I/Oポート5を介してコンピュータ2に転送される。同様に、時刻t4〜t5の期間において、第2検証結果転送回路43bは、第2検証回路32による検証の結果を読み出す。第2検証回路32から読み出された検証結果は、I/Oポート5を介してコンピュータ2に転送される。
このように、第2実施形態によれば、複数の検証回路31,32,・・・が同時にエラーを検出した場合に、検証結果をコンピュータ2に短時間で転送できる。この結果、検証結果の読み出しに要するオーバーヘッドを削減し、全体のシミュレーション時間を短縮できる。
(第3実施形態)
本発明の第3実施形態に係るシミュレーション装置は、図13に示すように、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との間に接続された切り替え回路8を備える点が図1と異なる。切り替え回路8は、例えば、コンピュータ2からI/Oポート5を介して伝達される切り替え制御信号に応じて、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との接続関係を切り替える。
したがって、プログラマブル回路1cに回路データを実装した後においても、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との接続関係を切り替え可能となる。
例えば、第1検証回路31を、第1及び第2検証結果転送回路43a及び43bのいずれに接続するかを、シミュレーション開始前又はシミュレーション中断時等に任意に変更できる。同様に、第2検証回路32を、第1及び第2検証結果転送回路43a及び43bのいずれに接続するかを、シミュレーション開始前又はシミュレーション中断時等に任意に変更できる。
尚、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との接続関係を切り替える際には、コンピュータ2において、検証対象の信号名と複数の検証結果転送回路43a,43b,・・・との対応テーブル(クロスリファレンス)の変更が必要である。
次に、図14に示すフローチャートを参照して、第3実施形態に係るシミュレーション方法を説明する。但し、シミュレーションを一度実行した結果に基づいて、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との接続関係を切り替える場合について説明する。また、図8に示すフローチャートと同様の処理については重複する説明を省略する。
ステップS401において、コンピュータ2は、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との接続関係を切り替えてシミュレーションを再開するか否か判定する。接続関係を切り替えてシミュレーションを再開すると判定された場合、ステップS402に進む。接続関係を切り替えてシミュレーションを再開しないと判定された場合、シミュレーションが終了する。
ステップS402においては、コンピュータ2は、I/Oポート5を介して切り替え回路8に切り替え制御信号を送信し、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との接続関係が変更される。
このように、第3実施形態によれば、回路データを変更することなく、複数の検証回路31,32,・・・と複数の検証結果転送回路43a,43b,・・・との接続関係を動的に再構成することができる。
(その他の実施形態)
上記のように、本発明は第1〜第3実施形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
既に述べた実施の形態の説明においては、プログラマブル回路1aに1つの設計対象回路3aが実装される一例を説明したが、複数の設計対象回路をプログラマブル回路1aに実装しても良い。
また、1つのプログラマブル回路を使用して協調シミュレーションを行う例を示したが、複数のプログラマブル回路を使用しても良い。複数のプログラマブル回路を使用することにより、より大規模なハードウェアのシミュレーションが可能となる。
上述した第1実施形態の第1変形例においては、エラー検出通知から一定サイクル期間経過後に設計対象回路3aの動作を停止させる一例を説明した。第2及び第3実施形態においても、エラー検出通知から一定サイクル期間経過後に設計対象回路3aの動作を停止させる構成を採用できる。
このように本発明は、ここでは記載していない様々な実施形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
本発明の第1実施形態に係るシミュレーション装置の全体構成例を示すブロック図である。 本発明の第1実施形態に係るシミュレーション方法に使用されるアサーション記述(アサーションプロパティ)の一例を示す模式図である。 本発明の第1実施形態に係るシミュレーション方法に使用されるアサーション記述(アサーション指定)の一例を示す模式図である。 本発明の第1実施形態に係るプログラマブル回路の一部構成例を示すブロック図である。 本発明の第1実施形態に係る第1検証回路の内部構成例を示すブロック図である。 本発明の第1実施形態に係る第1検証結果転送回路の内部構成例を示すブロック図である。 本発明の第1実施形態に係るプログラマブル回路の動作例を説明するためのタイムチャートである。 本発明の第1実施形態に係るシミュレーション方法の処理手順例を示すフローチャートである。 本発明の第1実施形態の第2変形例に係るシミュレーション方法の一例を示すフローチャートである。 本発明の第1実施形態の第3変形例に係るシミュレーション方法の一例を示すフローチャートである。 本発明の第2実施形態に係るシミュレーション装置の全体構成例を示すブロック図である。 本発明の第2実施形態に係るプログラマブル回路の動作例を説明するためのタイムチャートである。 本発明の第3実施形態に係るシミュレーション装置の全体構成例を示すブロック図である。 本発明の第3実施形態に係るシミュレーション方法の一例を示すフローチャートである。
符号の説明
1…検証回路
1a〜1c…プログラマブル回路
2…コンピュータ
3a,3b…設計対象回路
31,32,・・・ …検証回路
41a…第1データ転送回路
41b…第2データ転送回路
42a,43a…第1検証結果転送回路
42b,43b…第2検証結果転送回路

Claims (5)

  1. サイクル動作を行う設計対象回路が実装されるプログラマブル回路と、時間制約のない動作記述として作成されたプログラムを実行するコンピュータとを具備するシミュレーション装置であって、
    前記プログラマブル回路は、
    前記コンピュータ及び前記設計対象回路間のデータ転送をトランザクション単位で行うデータ転送回路と、
    前記設計対象回路の動作が仕様を満たしているかを検証し、前記設計対象回路の動作が前記仕様を満たしていないときにエラー検出として通知する検証回路と、
    前記エラーの検出が通知された場合に前記設計対象回路の動作を一時的に停止させて、前記検証回路による検証の結果を前記コンピュータに転送する検証結果転送回路
    とを備えることを特徴とするシミュレーション装置。
  2. 前記検証結果転送回路は、複数の検証回路が前記エラーを同時に検出したときに、各検証回路による検証の結果をシーケンシャルに読み出すことを特徴とする請求項1に記載のシミュレーション装置。
  3. 前記検証回路及び前記検証結果転送回路はそれぞれ複数設けられ、前記検証回路及び前記検証結果転送回路のそれぞれの個数が等しいことを特徴とする請求項1に記載のシミュレーション装置。
  4. 前記検証結果転送回路は、前記エラーの検出が通知されてから一定サイクル期間経過後に前記設計対象回路の動作を一時的に停止させることを特徴とする請求項1に記載のシミュレーション装置。
  5. サイクル動作を行う設計対象回路をプログラマブル回路に実装し、
    時間制約のない動作記述として作成されたプログラムをコンピュータ上で実行し、
    前記コンピュータ及び前記設計対象回路間のデータ転送をトランザクション単位で行い、
    前記設計対象回路の動作が仕様を満たしているかを検証して、前記設計対象回路の動作が前記仕様を満たしていないときにエラー検出として通知し、
    前記エラーの検出が通知された場合に前記設計対象回路の動作を一時的に停止させて、前記設計対象回路の動作が前記仕様を満たしているかの検証の結果を前記コンピュータに転送する
    ことを含むことを特徴とするシミュレーション方法。
JP2005280862A 2005-09-27 2005-09-27 シミュレーション装置及びシミュレーション方法 Expired - Fee Related JP4599266B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005280862A JP4599266B2 (ja) 2005-09-27 2005-09-27 シミュレーション装置及びシミュレーション方法
US11/527,418 US20070074141A1 (en) 2005-09-27 2006-09-27 Simulation apparatus and simulation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005280862A JP4599266B2 (ja) 2005-09-27 2005-09-27 シミュレーション装置及びシミュレーション方法

Publications (2)

Publication Number Publication Date
JP2007094591A true JP2007094591A (ja) 2007-04-12
JP4599266B2 JP4599266B2 (ja) 2010-12-15

Family

ID=37895668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005280862A Expired - Fee Related JP4599266B2 (ja) 2005-09-27 2005-09-27 シミュレーション装置及びシミュレーション方法

Country Status (2)

Country Link
US (1) US20070074141A1 (ja)
JP (1) JP4599266B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2009564A1 (en) 2007-06-28 2008-12-31 Kabushiki Kaisha Toshiba Verification apparatus and verification method
JP2009041922A (ja) * 2007-08-06 2009-02-26 Yokogawa Electric Corp テスト支援システム
JP2009110076A (ja) * 2007-10-26 2009-05-21 Fujitsu Ltd ソフトウェア検証支援プログラム、該プログラムを記録した記録媒体、ソフトウェア検証支援装置、およびソフトウェア検証支援方法
JP2009230602A (ja) * 2008-03-25 2009-10-08 Nec Corp 動作合成装置、動作合成方法およびプログラム
JP2009282847A (ja) * 2008-05-23 2009-12-03 Toshiba Corp 半導体集積回路の検証装置
JP2010072843A (ja) * 2008-09-17 2010-04-02 Nec Electronics Corp 検証用デバイス及び検証装置並びに検証システム
JP2010537156A (ja) * 2007-08-21 2010-12-02 クゥアルコム・インコーポレイテッド 外部インタフェースの機能性を検証するためのセルフテスト機構を備えた集積回路
JP2015069549A (ja) * 2013-09-30 2015-04-13 富士通セミコンダクター株式会社 半導体集積回路および半導体集積回路の検証方法
JP2015122010A (ja) * 2013-12-25 2015-07-02 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099695B1 (en) 2006-08-02 2012-01-17 Cadence Design Systems, Inc. Automated debugging method and system for over-constrained circuit verification environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346517A (ja) * 2004-06-04 2005-12-15 Renesas Technology Corp 検証装置および検証方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3492105B2 (ja) * 1996-08-30 2004-02-03 株式会社東芝 ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法
US6134516A (en) * 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server system and method
JPH11306026A (ja) * 1998-04-22 1999-11-05 Toshiba Corp コード最適化装置、コード最適化方法、及び、コード最適化プログラムを記録したコンピュータ読み取り可能な記録媒体
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
US6968514B2 (en) * 1998-09-30 2005-11-22 Cadence Design Systems, Inc. Block based design methodology with programmable components
JP2002366602A (ja) * 2001-04-06 2002-12-20 Seiko Epson Corp ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
US7260517B2 (en) * 2001-06-17 2007-08-21 Brian Bailey Synchronization of multiple simulation domains in an EDA simulation environment
US7401015B1 (en) * 2001-06-17 2008-07-15 Brian Bailey Coherent state among multiple simulation models in an EDA simulation environment
JP2004054755A (ja) * 2002-07-23 2004-02-19 Nec Electronics Corp システムレベル設計方法及びシステムレベル設計装置
US7366652B2 (en) * 2003-06-16 2008-04-29 Springsoft, Inc. Method of programming a co-verification system
US7260798B2 (en) * 2003-12-29 2007-08-21 Mentor Graphics Corporation Compilation of remote procedure calls between a timed HDL model on a reconfigurable hardware platform and an untimed model on a sequential computing platform
US7257802B2 (en) * 2003-12-29 2007-08-14 Mentor Graphics Corporation Method and system for hardware accelerated verification of digital circuit design and its testbench
JP2005293163A (ja) * 2004-03-31 2005-10-20 Nec Electronics Corp 消費電力計算方法及び装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346517A (ja) * 2004-06-04 2005-12-15 Renesas Technology Corp 検証装置および検証方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2009564A1 (en) 2007-06-28 2008-12-31 Kabushiki Kaisha Toshiba Verification apparatus and verification method
US8578308B2 (en) 2007-06-28 2013-11-05 Kabushiki Kaisha Toshiba Verification apparatus and verification method
JP2009041922A (ja) * 2007-08-06 2009-02-26 Yokogawa Electric Corp テスト支援システム
JP2010537156A (ja) * 2007-08-21 2010-12-02 クゥアルコム・インコーポレイテッド 外部インタフェースの機能性を検証するためのセルフテスト機構を備えた集積回路
US8484524B2 (en) 2007-08-21 2013-07-09 Qualcomm Incorporated Integrated circuit with self-test feature for validating functionality of external interfaces
JP2009110076A (ja) * 2007-10-26 2009-05-21 Fujitsu Ltd ソフトウェア検証支援プログラム、該プログラムを記録した記録媒体、ソフトウェア検証支援装置、およびソフトウェア検証支援方法
JP2009230602A (ja) * 2008-03-25 2009-10-08 Nec Corp 動作合成装置、動作合成方法およびプログラム
JP2009282847A (ja) * 2008-05-23 2009-12-03 Toshiba Corp 半導体集積回路の検証装置
JP2010072843A (ja) * 2008-09-17 2010-04-02 Nec Electronics Corp 検証用デバイス及び検証装置並びに検証システム
JP2015069549A (ja) * 2013-09-30 2015-04-13 富士通セミコンダクター株式会社 半導体集積回路および半導体集積回路の検証方法
JP2015122010A (ja) * 2013-12-25 2015-07-02 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
US20070074141A1 (en) 2007-03-29
JP4599266B2 (ja) 2010-12-15

Similar Documents

Publication Publication Date Title
KR100483636B1 (ko) 에뮬레이션및시뮬레이션을이용한설계검증방법및장치
Gupta et al. Program implementation schemes for hardware-software systems
US7036114B2 (en) Method and apparatus for cycle-based computation
US8286025B1 (en) Selection of port adapters for clock crossing boundaries
US7805638B2 (en) Multi-frequency debug network for a multiprocessor array
US8448111B2 (en) System and method for metastability verification of circuits of an integrated circuit
US6507809B1 (en) Method and system for simulating performance of a computer system
JP4667206B2 (ja) マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法
JP4599266B2 (ja) シミュレーション装置及びシミュレーション方法
US20220066801A1 (en) System and method for modeling memory devices with latency
US8775989B2 (en) Computer-aided design system and methods thereof for merging design constraint files across operational modes
Schirner et al. Result-oriented modeling—A novel technique for fast and accurate TLM
CN118966113B (zh) 一种同步控制方法、装置、电子设备及可读存储介质
US20060190754A1 (en) A Method for Automatic Recognition of Handshake Data Exchange at Clock-Domain Crossing in Integrated Circuit Design
US8793548B2 (en) Integrated circuit, simulation apparatus and simulation method
JP5145167B2 (ja) クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体
JP2004021907A (ja) 性能評価用シミュレーションシステム
CN118966099B (zh) 一种验证方法、装置、电子设备及可读存储介质
US9721048B1 (en) Multiprocessing subsystem with FIFO/buffer modes for flexible input/output processing in an emulation system
Yang et al. Design and Verification of a High Performance Deserial Serial Peripheral Interface
JP4743427B2 (ja) 回路動作検証方法
WO2024114920A1 (en) Verification techniques for embedded systems
Semenov et al. Time Petri net unfoldings and hardware verification
JP2006209162A (ja) 論理検証装置
CN114817188A (zh) 用于多系统日志存取管理的方法、集成电路及可读介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100831

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: 20100927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees