JP3951925B2 - ハードウェア/ソフトウェア協調検証方法 - Google Patents

ハードウェア/ソフトウェア協調検証方法 Download PDF

Info

Publication number
JP3951925B2
JP3951925B2 JP2003024706A JP2003024706A JP3951925B2 JP 3951925 B2 JP3951925 B2 JP 3951925B2 JP 2003024706 A JP2003024706 A JP 2003024706A JP 2003024706 A JP2003024706 A JP 2003024706A JP 3951925 B2 JP3951925 B2 JP 3951925B2
Authority
JP
Japan
Prior art keywords
host cpu
software component
binary code
cpu
hardware
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.)
Expired - Fee Related
Application number
JP2003024706A
Other languages
English (en)
Other versions
JP2004234528A (ja
Inventor
博行 山下
隆夫 新舎
英昭 藤懸
俊明 古渡
智也 平尾
敦史 大熊
宏晃 西
道明 村岡
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003024706A priority Critical patent/JP3951925B2/ja
Priority to US10/766,955 priority patent/US7155690B2/en
Publication of JP2004234528A publication Critical patent/JP2004234528A/ja
Application granted granted Critical
Publication of JP3951925B2 publication Critical patent/JP3951925B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318314Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Description

【0001】
【発明の属する技術分野】
本発明は、半導体装置に搭載されるハードウェア及びソフトウェアを協調検証(Co-verification)する方法に関する。
【0002】
【従来の技術】
近年、SoCを搭載した機器が広く普及してきている。SoCとは、System on a Chip の略で、コンピュータの主要機能を一つのチップ(半導体装置)に詰め込む技術、あるいは、当該技術によりコンピュータの主要機能を搭載したチップをいう。
【0003】
図1は、かかるSoCの上流設計フローを示す図である。同図に示されるように、システム・レベルの設計が完了した後、アーキテクチャ・レベルの設計に移行する。アーキテクチャ・レベルの設計では、CPU(Central Processing Unit)、OS(Operating System)、バス(Bus)等の基本部品の選択、ハードウェア及びソフトウェアへの機能分割、並びにハードウェア設計及びソフトウェア設計が行われる。そして、アーキテクチャ・レベルの設計により得られた基本部品、ハードウェア部品及びソフトウェア部品に対し、それらの検証モデルに基づくハードウェア/ソフトウェア協調検証が実行される。
【0004】
一般に、かかるハードウェア/ソフトウェア協調検証においては、CPUの検証モデルとして、下記特許文献1〜3に開示されるように、命令レベルでシミュレーションを行うISS(Instruction Set Simulator, 命令セット・シミュレータ)が使用されている。このISSは、Cベース言語で記述され、市販のシミュレータとしてSystem−G(ガイオ・テクノロジー社製)等が知られている。なお、本明細書において、「Cベース言語」とは、ANSI−C/C++の各種拡張言語、SpecC、SystemCのいずれかの言語を意味する。
【0005】
又、CPU専用メモリ、バス等のハードウェア部品についても、Cベース言語で記述された検証モデルが使用される。更に、その他のハードウェア部品についても、Cベース言語を用いたビヘイビア(Behavior)記述又はRTL(Register Transfer Level)記述による検証モデルが使用される。なお、ビヘイビア記述とは、回路のふるまいを記述したものであり、一方、RTL記述とは、レジスタの値が遷移していく様子を記述したものである。
【0006】
一方、OS、ミドルウェア、割込みハンドラ、デバイス・ドライバ、タスク等のソフトウェア部品の検証モデルは、実論理即ちターゲットCPUのバイナリ・コード(命令コード)自身で構成される。なお、本明細書において、「ターゲットCPU」とは、検証対象のSoC等の半導体装置に搭載されているCPU(例えば、ARMプロセッサ)を意味する。
【0007】
以上のような検証モデル(ハードウェア部品、ソフトウェア部品)にテストベンチ及びCベース・シミュレータを加えることで、図2に示される如き従来の協調検証システム(ソフトウェア構成)が構成される。テストベンチは、テスト・データの入力、テスト・データの出力と期待値との比較、等を実行し、Cベース・シミュレータは、シミュレーション全体の動作を制御する。又、ISSは、ハードウェア部品からのマスク可能割込みINT(maskable INTerrupt)やテストベンチからのマスク不能割込みNMI(NonMaskable Interrupt)を受付けつつ動作する。
【0008】
このISSの機能は、命令レベル・シミュレーション、メモリ・アクセス(LOAD/STORE命令)、I/Oアクセス、及び割込み処理である。命令レベル・シミュレーション機能では、ターゲットCPUのバイナリ・コード・レベルでのシミュレーションを実行する。又、メモリ・アクセス機能では、バスへのREAD/WRITEアクセスを実行する。なお、バスがメモリ・アクセスを制御する。I/Oアクセス機能では、LOAD/STORE命令(一回あたりのデータ転送量が小さい)を用いた、バスへのREAD/WRITEアクセスを実行する。なお、バスがI/O(ハードウェア部品)アクセスを制御する。又、割込み処理機能では、割込み(INTi(i=1, …,n)、NMI)の受付け、割込みハンドラの起動制御、実行中の処理の中断、中断した処理の再開、等を実行する。
【0009】
ISSを使用した協調検証に関する先行技術文献としては、下記特許文献1〜3の他に、下記の非特許文献1及び2が存在する。なお、下記の非特許文献3は、後述する説明において引用される“Basic Block”に関するものであり、非特許文献4〜6は、後述する説明において引用される“Fixed I/O Behaviorモデル”に関するものであり、非特許文献7〜9は、C言語ベースの設計及び検証の技術動向に関するものである。
【0010】
【特許文献1】
特開2000−259445号公報
【特許文献2】
特開2001−256072号公報
【特許文献3】
特開2002−175344号公報
【非特許文献1】
若林一敏:C言語によるLSI設計−動作合成とHW/SW協調検証の実際、NE Embedded Symposium 2002.
【非特許文献2】
黒川、池上、大坪、浅尾、桐ヶ谷、三栖、高橋、川津、新田、笠、若林、友部、高橋、向山、竹中:C言語ベースの動作合成を利用したシステムLSI設計手法の効果分析と考察、電子情報通信学会第15回軽井沢ワークショップ、pp. 131-142、Apr. 2002.
【非特許文献3】
T. Sherwood, E. Perelman and B. Calder, “Basic Block Distribu tion Analysis to Find Periodic Behavior and Simulation Points in Applications”, in International Conference on Parallel Arc hitectures and Compilation Techniques, Sept. 2001.
【非特許文献4】
D. W. Knapp, T. Ly, D. MacMillen and R. Miller, “Behavioral S ynthesis Methodology for HDL-Based Specification and Validatio n”, Proc. Design Automation Conf., June 1995.
【非特許文献5】
T. Ly, D. W. Knapp, R. Miller and D. MacMillen, “Scheduling u sing Behavioral Templates”, Proc. Design Automation Conf., Ju ne 1995.
【非特許文献6】
D. W. Knapp, “Behavioral Synthesis: Digital System Design usi ng the Synopsys Behavioral Compiler”, Prentice Hall PTR.
【非特許文献7】
L. Gauthier, S. Yoo and A. A. Jerraya, “Automatic Generation and Targeting of Application Specific Operating Systems and Em bedded Systems Software”, Proc. Design Automation and Test in Europe, Mar. 2001.
【非特許文献8】
D. Lyonnard, S. Yoo, A. Baghdadi and A. A. Jerraya, “Automati c Generation of Application-Specific Architectures for Heterog eneous Multiprocessor System-on-Chip”, Proc. Design Automatio n Conf., June 2001.
【非特許文献9】
S. Yoo, G. Nicolescu, L. Gauthier and A. A. Jerraya, “Automat ic Generation of Fast Timed Simulation Models for Operating Sy stems in SoC”, Proc. Design Automation and Test in Europe, Ma r. 2002.
【0011】
【発明が解決しようとする課題】
上述のような、従来技術に係る、ISSを使用したハードウェア/ソフトウェア協調検証方法では、シミュレーションが命令レベルで実行され、即ち一命令ごとにその命令内容を解釈しながら実行されるとともに、メモリ・アクセスが必要となるため、シミュレーション時間即ち検証時間が大きくなるという問題がある。
【0012】
本発明は、上述した問題点に鑑みてなされたものであり、その目的は、タイミングについてのシミュレーション精度を低下させることなく、一命令ごとの解釈と実行を不要とするCベースのネイティブ・コード・シミュレーションを実現することにより、シミュレーションの高速化を実現したハードウェア/ソフトウェア協調検証方法を提供することにある。
【0013】
なお、以下の説明において、「Untimedソフトウェア部品」とは、その全ての処理をANSI−Cで記述したソフトウェア部品、又は、その全ての処理を実行するバイナリ・コードのソフトウェア部品を意味する。一方、「Timedソフトウェア部品」とは、その全ての処理を複数の単位処理に分割し、各単位処理を記述したANSI−C記述の後に、当該単位処理の実行時間を記述したCベース言語記述(実行時間挿入文)を追加したソフトウェア部品、又は、その全ての処理を複数の単位処理に分割し、各単位処理を実行するバイナリ・コードの後に、当該単位処理の実行時間を記述したCベース言語記述(実行時間挿入文)同等機能のバイナリ・コードを追加したソフトウェア部品を意味する。又、「ホストCPU」とは、協調検証を実行するパーソナル・コンピュータ(PC)又はワーク・ステーション(WS)に搭載されているCPU(例えば、Pentium(登録商標)プロセッサ)を意味する。
【0014】
【課題を解決するための手段】
上記目的を達成するために、本発明の第一の面(Aspect)によれば、ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアを協調検証する方法であって、(a) 検証モデルとしてのCベース言語記述のTimedソフトウェア部品を入力してコンパイルし、検証モデルとしてのCベース言語記述のハードウェア部品を入力してコンパイルし、並びに該コンパイルされたTimedソフトウェア部品及び該コンパイルされたハードウェア部品をリンクするステップと、(b) テストベンチを入力してコンパイルするステップと、(c) ステップ(a)により処理された検証モデルとステップ(b)により処理されたテストベンチとをリンクするステップと、(d) ステップ(c)で生成された実行プログラムに基づいてシミュレーションを実行するステップと、(e) ステップ(d)によるシミュレーションの結果を出力するステップと、を具備するハードウェア/ソフトウェア協調検証方法が提供される。
【0015】
又、本発明の第二の面によれば、ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアを協調検証する方法であって、(a) 検証モデルとしてのホストCPU用バイナリ・コードのTimedソフトウェア部品を入力し、検証モデルとしてのCベース言語記述のハードウェア部品を入力してコンパイルし、並びに該入力されたTimedソフトウェア部品及び該コンパイルされたハードウェア部品をリンクするステップと、(b) テストベンチを入力してコンパイルするステップと、(c) ステップ(a)により処理された検証モデルとステップ(b)により処理されたテストベンチとをリンクするステップと、(d) ステップ(c)で生成された実行プログラムに基づいてシミュレーションを実行するステップと、(e) ステップ(d)によるシミュレーションの結果を出力するステップと、を具備するハードウェア/ソフトウェア協調検証方法が提供される。
【0016】
又、本発明の第三の面によれば、ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアを協調検証する方法であって、(a) 検証モデルとしてのCベース言語記述のTimedソフトウェア部品を入力してコンパイルし、検証モデルとしてのホストCPU用バイナリ・コードのTimedソフトウェア部品を入力し、検証モデルとしてのCベース言語記述のハードウェア部品を入力してコンパイルし、並びに該コンパイルされ又は該入力されたTimedソフトウェア部品及び該コンパイルされたハードウェア部品をリンクするステップと、(b) テストベンチを入力してコンパイルするステップと、(c) ステップ(a)により処理された検証モデルとステップ(b)により処理されたテストベンチとをリンクするステップと、(d) ステップ(c)で生成された実行プログラムに基づいてシミュレーションを実行するステップと、(e) ステップ(d)によるシミュレーションの結果を出力するステップと、を具備するハードウェア/ソフトウェア協調検証方法が提供される。
【0017】
又、本発明の第四の面によれば、前記本発明の第一又は第三の面による方法において、ANSI−C記述のUntimedソフトウェア部品からCベース言語記述のTimedソフトウェア部品を予め作成すべく、更に、ANSI−C記述のUntimedソフトウェア部品を入力して、Basic Block を認識し、制御点を挿入するステップと、該制御点を挿入されたUntimedソフトウェア部品をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、該生成されたターゲットCPU用バイナリ・コードについて制御点間の実行時間を算出するステップと、該算出された実行時間に応じて、該制御点を挿入されたUntimedソフトウェア部品の各制御点へ実行時間挿入文を挿入し、Cベース言語記述のTimedソフトウェア部品として出力するステップと、が具備される。
【0018】
又、本発明の第五の面によれば、前記本発明の第二又は第三の面による方法において、ターゲットCPU用バイナリ・コードのUntimedソフトウェア部品からホストCPU用バイナリ・コードのTimedソフトウェア部品を予め作成すべく、更に、ターゲットCPU用バイナリ・コードのUntimedソフトウェア部品を入力して、ホストCPU用バイナリ・コードのソフトウェア部品へと変換するステップと、該ホストCPU用バイナリ・コードのソフトウェア部品について、Basic Block を認識し、制御点を挿入するステップと、該制御点を挿入されたソフトウェア部品について制御点間の実行時間を算出するステップと、該算出された実行時間に応じて、該制御点を挿入されたソフトウェア部品の各制御点へ実行時間挿入文同等機能のバイナリ・コードを挿入し、ホストCPU用バイナリ・コードのTimedソフトウェア部品として出力するステップと、が具備される。
【0019】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施形態について説明する。
【0020】
図3は、本発明に係るハードウェア/ソフトウェア協調検証方法を実施するためのハードウェア環境を説明するための図である。同図に例示されるように、本発明に係る協調検証は、中央処理装置(CPU)12及び主記憶装置(MS)14を有するコンピュータ本体10、ディスプレイ20、キーボード22、マウス24、ハードディスク装置等からなる外部記憶装置30を備える通常のパーソナル・コンピュータ(PC)又はワーク・ステーション(WS)上で実行可能である。
【0021】
CPU12は、協調検証を実行するホストCPUとして動作するものであり、例えば、Pentium(登録商標)プロセッサである。以下に説明される協調検証のためのプログラムは、CPU12によって実行される。又、各種のデータ、ファイル等は、外部記憶装置30から主記憶装置(MS)14にロードされて処理される。
【0022】
次に、ハードウェア/ソフトウェア協調検証の対象となるSoC(半導体装置)に搭載される各種部品のうち、ソフトウェア部品の検証モデルの作成方法について、図4を用いて説明する。同図に示される例では、ソフトウェア部品のうち、OS/ミドルウェア及びタスクは、ANSI−Cのみで論理設計されているが、割込みハンドラ及びデバイス・ドライバについては、それらの設計論理にANSI−Cによる記述に加えてアセンブリ言語による記述が含まれる。そのため、まず、そのアセンブリ言語による記述部分がANSI−Cによる記述へと変換される。この変換は、人手によりなされる。
【0023】
更に、デバイス・ドライバについては、バスへの直接READ/WRITEアクセスを実行するように、人手により変換される。即ち、従来のISSでは、一回あたりのデータ転送量が小さいLOAD/STORE命令を用いてI/Oアクセスがなされていたため低速であったが、本実施形態においては、I/Oアクセスの高速化が図られる。
【0024】
最後に、全てANSI−Cにより記述されたOS/ミドルウェア、割込みハンドラ、デバイス・ドライバ及びタスクについて、Untimedソフトウェア部品(ANSI−C記述)からTimedソフトウェア部品(Cベース言語記述)への自動的な変換が、次に説明されるプログラムにより、実施される。
【0025】
図5は、ANSI−C記述のUntimedソフトウェア部品からCベース言語記述のTimedソフトウェア部品への変換を実行するプログラムの処理手順を説明するフローチャートである。又、図6は、その変換処理の内容について説明するための図である。
【0026】
まず、図5のステップ110では、ANSI−C記述のUntimedソフトウェア部品50を入力して、Basic Block を認識し、制御点を挿入することにより、制御点を挿入されたUntimedソフトウェア部品(ANSI−C記述)52を出力する。このBasic Blockは、プログラムがストレートに走行する部分を指すものであり、その詳細は、上記非特許文献3に説明されている。そして、その認識された Basic Block の前後に制御点が挿入される。
【0027】
即ち、図6(A)に示されるUntimedソフトウェア部品(ANSI−C記述)に対しては、ノードa及びノードbが一つの Basic Block と認識され、ノードc、ノードd及びノードeが一つの Basic Block と認識され、ノードc及びノードfが一つの Basic Block と認識され、ノードgが一つの Basic Block と認識される。そのため、図6(B)に示されるように、ノードbとノードcとの間、ノードeとノードgとの間、ノードfとノードgとの間、及びノードgの後に、それぞれ制御点が挿入される。
【0028】
次いで、ステップ120では、かかる制御点を挿入されたUntimedソフトウェア部品(ANSI−C記述)52をコンパイルすることにより、ターゲットCPU用のバイナリ・コード54を生成する。
【0029】
次いで、ステップ130では、上述のコンパイルの結果、生成されたターゲットCPU用バイナリ・コード(命令コード)54に基づいて、制御点間の実行時間を算出する。その算出は、
kΣ[各命令のサイクル数]
なる演算式に基づいて行われる。ここで、係数kは、キャッシュ・メモリのミスヒットに起因するオーバヘッド係数であり、本実施形態においてはキャッシュ・メモリ・モデルを設けないことから、統計的処理を可能とするために導入されたものである。
【0030】
最後のステップ140では、制御点を挿入されたUntimedソフトウェア部品52の各制御点へ、ステップ130で算出された実行時間に応じた実行時間挿入文を挿入し、Cベース言語記述のTimedソフトウェア部品56として出力する。
【0031】
例えば、ステップ130において、図6(B)に示されるノードa及びノードbの実行時間がt1と算出され、ノードc、ノードd及びノードe の実行時間がt2と算出され、ノードc及びノードf の実行時間がt3と算出され、ノードg の実行時間がt4と算出されたとする。その場合には、図6(C)に示されるように、ノードbとノードcとの間の制御点には、実行時間挿入文として waitfor(t1) が挿入される。同様に、ノードeとノードgとの間の制御点には実行時間挿入文として waitfor(t2) が挿入され、ノードfとノードgとの間の制御点には実行時間挿入文として waitfor(t3) が挿入され、ノードgの後の制御点には実行時間挿入文として waitfor(t4) が挿入されることとなる。
【0032】
図7は、このようにして作成されたCベース言語記述のTimedソフトウェア部品56に基づくCベース・シミュレーションについて説明するための図である。Cベース言語記述のTimedソフトウェア部品56をコンパイルしてホストCPU用バイナリ・コードを生成することにより、ホストCPU12(図3)におけるネイティブ・コード・シミュレーション(Native Code Simulation)が可能となる。
【0033】
即ち、Cベース言語記述のTimedソフトウェア部品56をコンパイルして生成されたホストCPU用バイナリ・コードをホストCPUで実行させることにより、一命令ごとにその命令内容を解釈してシミュレーションを実行するISSの場合に比較して、100〜1000倍程度の高速化を図ることができる。
【0034】
一方、シミュレーションの過程において、 waitfor 文が出現したところで、シミュレータがその内容を解釈することにより、命令実行時間の管理が可能となるため、タイミングについてのシミュレーション精度も維持することができる。即ち、ノードbに相当する命令コードの実行後には、 waitfor(t1) の命令コードを解釈することで累積処理時間T1=t1が求められる。同様に、ノードeに相当する命令コードの実行後には累積処理時間T2=t1+t2が求められる一方、ノードfに相当する命令コードの実行後には累積処理時間T2=t1+t3が求められる。
【0035】
そして、ノードgに相当する命令コードの実行後には、プログラムがノードc、ノードd及びノードe のルートを走行した場合には累積処理時間T3=t1+t2+t4が求められる一方、プログラムがノードc及びノードfのルートを走行した場合には累積処理時間T3=t1+t3+t4が求められることとなる。
【0036】
ところで、ANSI−C記述のUntimedソフトウェア部品からCベース言語記述のTimedソフトウェア部品を作成する図5のソフトウェア部品検証モデル作成方法では、Untimedソフトウェア部品のソース・コード(ANSI−C)が必要となるが、大半のOSやミドルウェアでは、その入手が困難である。そこで、本実施形態においては、ターゲットCPU用バイナリ・コードによるUntimedソフトウェア部品からホストCPU用バイナリ・コードによるTimedソフトウェア部品への変換が行われる。
【0037】
図8は、ターゲットCPU用バイナリ・コードのUntimedソフトウェア部品からホストCPU用バイナリ・コードのTimedソフトウェア部品への変換を実行するプログラムの処理手順を説明するフローチャートである。まず、ステップ210では、ターゲットCPU用バイナリ・コードのUntimedソフトウェア部品60を入力して、ホストCPU用バイナリ・コードのソフトウェア部品62へと変換する。この変換は、Dynamic(Transitive Technologies社製ツール)等を利用して実現することができる。
【0038】
次いで、ステップ220では、ホストCPU用バイナリ・コードのソフトウェア部品62について、前述したステップ110(図5)と同様に、Basic Block を認識することにより、制御点を挿入されたソフトウェア部品64を出力する。
【0039】
次いで、ステップ230では、前述したステップ130(図5)と同様に、制御点を挿入されたソフトウェア部品64について制御点間の実行時間を算出する。その算出は、
kΣ[各命令のサイクル数]
なる演算式に基づいて行われる。ここで、係数kは、キャッシュ・メモリのミスヒットに起因するオーバヘッド係数である。
【0040】
最後のステップ240では、制御点を挿入されたソフトウェア部品64の各制御点へ、算出された実行時間に応じた実行時間挿入文同等機能のバイナリ・コードを挿入し、ホストCPU用バイナリ・コードのTimedソフトウェア部品66として出力する。
【0041】
次に、ハードウェア/ソフトウェア協調検証の対象となるSoC(半導体装置)に搭載される各種部品のうち、ハードウェア部品の検証モデルの作成方法について説明する。前述のように、従来のハードウェア/ソフトウェア協調検証においては、CPU及びCPU専用メモリの検証モデルが準備されたが、本実施形態においては、それらの検証モデルは作成されず、その代わりに、ISS(Instruction Set Simulator)における割込み処理部を独立化させたIRS(Interrupt Routine Scheduler)が新たに導入される。このIRSは、Cベース言語で記述される。又、バスの検証モデルは、従来と同様に、Cベース言語で新規に作成される。
【0042】
又、Cベース言語を用いて論理設計されたビヘイビア(Behavior)記述のハードウェア部品は、動作合成ツールの拡張機能を利用して、Cベース言語記述からFixed I/O Behaviorモデルへと自動的に変換されることにより、その検証モデル(Cベース言語)が生成される。このFixed I/O Behaviorモデルは、Basic Block を利用した Timed ハードウェア・モデルと同等のものであり、その詳細は、上記の非特許文献4〜6に説明されている。
【0043】
又、Verilog/VHDLを用いて論理設計されたRTL(Register Transfer Level)記述のハードウェア部品は、HDL Import(CoWare社製ツール)等を利用して、RTL記述からRTL−Cベース言語モデルへと自動的に変換されることにより、その検証モデル(Cベース言語)が生成される。このRTL−Cベース言語モデルは、FSM(Finite State Machine,有限状態機械)の1ステートが1クロックの動作を表現するものである。
【0044】
以上のようにして作成されたソフトウェア部品及びハードウェア部品の検証モデルにテストベンチ及びCベース・シミュレータを加えることで、本実施形態に係る協調検証システム(ソフトウェア構成)が図9に示されるように構成される。なお、前述のように、テストベンチは、テスト・データの入力、テスト・データの出力と期待値との比較、等を実行し、Cベース・シミュレータは、シミュレーション全体の動作を制御する。IRSは、CPU割込み回路相当の機能を実現するものである。又INTは、マスク可能割込み(maskable INTerrupt)、NMIは、マスク不能割込み(NonMaskable Interrupt)である。
【0045】
図10は、図3に示されるハードウェア環境及び図9に示されるソフトウェア構成の下で実行される、SoCに対するハードウェア/ソフトウェア協調検証の手順を説明するためのフローチャートである。まず、ステップ310では、検証モデルの入力、必要なコンパイル、及びリンクを実行する。
【0046】
即ち、検証モデルとして、ホストCPU用バイナリ・コードのTimedソフトウェア部品、Cベース言語記述のTimedソフトウェア部品、Cベース言語記述のバス、Cベース言語記述の一般ハードウェア部品、及びCベース言語記述のIRSを入力する。なお、Timedソフトウェア部品としては、ホストCPU用バイナリ・コードのTimedソフトウェア部品のみが入力される場合、Cベース言語記述のTimedソフトウェア部品のみが入力される場合、及びそれらの双方が入力される場合がある。なお、ソフトウェア部品には、前述のように、OS/ミドルウェア、割込みハンドラ、デバイス・ドライバ、タスク等が含まれる。又、一般ハードウェア部品は、CPU、CPU専用メモリ及びバスを除くハードウェア部品である。
【0047】
そして、Cベース言語記述のTimedソフトウェア部品、Cベース言語記述のバス、Cベース言語記述の一般ハードウェア部品、及びCベース言語記述のIRSについては、そのコンパイルを行う一方、ホストCPU用バイナリ・コードのTimedソフトウェア部品についてはコンパイルの必要はない。かかるコンパイルを実施した後、全てのソフトウェア部品及びハードウェア部品をリンクする。
【0048】
次いで、ステップ320では、テストベンチを入力してコンパイルする。更に、ステップ330では、ステップ310において処理された各部品即ち検証モデルと、ステップ320において処理されたテストベンチとをリンクする。次いで、ステップ340では、Cベース・シミュレータによる制御の下、ステップ330で生成された実行プログラムにより、図7で説明されたシミュレーションが実行される。最後のステップ350では、そのシミュレーションの結果がディスプレイ20等に出力されて、協調検証が終了する。
【0049】
最後に、本実施形態における部品間の通信方式について、図11に基づき説明すると、ソフトウェア部品とソフトウェア部品との間の通信方式としては、ANSI−C通信方式(Semaphore,MailBox,EventFlag)が採用される一方、ハードウェア部品とハードウェア部品との間の通信方式としては、SystemC通信方式(sc event)が採用される。又、ソフトウェア部品とハードウェア部品との間の通信方式としては、ハードウェア起動時にあってはSystemC通信方式(sc event)が採用される一方、ハードウェア動作終了時にあっては割込み方式が採用される。
【0050】
一方、非特許文献7〜9に記載されているC言語ベースの設計及び検証技術の実施形態における部品間の通信方式について説明すると、ソフトウェア部品とソフトウェア部品との間の通信方式及びハードウェア部品とハードウェア部品との間の通信方式としては、SystemC通信方式(sc event)が採用されている。又、ソフトウェア部品とハードウェア部品との間の通信方式としては、ハードウェア起動時にあってはSystemC通信方式(sc event)が採用されている一方、ハードウェア動作終了時にあってはポーリング方式が採用されている。
【0051】
以上、本発明の実施形態について述べてきたが、もちろん本発明はこれに限定されるものではなく、例えば、図12に示されるような、マルチCPUシステムの検証モデルにも、本発明は適用可能である。
【0052】
【発明の効果】
以上説明したように、本発明によれば、Cベースのネイティブ・コード・シミュレーションが実現されるため、従来のISSを使用した方法に比較して、シミュレーション性能(命令数/秒)が従来の102〜103倍程度向上し、ハードウェア/ソフトウェア協調検証におけるシミュレーションの高速化が図られる。しかも、Timedソフトウェア部品に基づく時間管理が行われることで、タイミング検証の精度も維持される。したがって、本発明は、ハードウェア/ソフトウェア協調検証(特に、ソフトウェアの検証)における工数の低減に大きく寄与するものである。
【図面の簡単な説明】
【図1】SoCの上流設計フローを示す図である。
【図2】従来のハードウェア/ソフトウェア協調検証システムの構成(ソフトウェア構成)を示すブロック図である。
【図3】本発明に係るハードウェア/ソフトウェア協調検証方法を実施するためのハードウェア環境を例示するブロック図である。
【図4】ソフトウェア部品の検証モデルの作成方法について説明するための図である。
【図5】ANSI−C記述のUntimedソフトウェア部品からCベース言語記述のTimedソフトウェア部品への変換を実行するプログラムの処理手順を説明するフローチャートである。
【図6】ANSI−C記述のUntimedソフトウェア部品からCベース言語記述のTimedソフトウェア部品への変換処理の内容について説明するための図である。
【図7】Cベース言語記述のTimedソフトウェア部品に基づくCベース・シミュレーションについて説明するための図である。
【図8】ターゲットCPU用バイナリ・コードのUntimedソフトウェア部品からホストCPU用バイナリ・コードのTimedソフトウェア部品への変換を実行するプログラムの処理手順を説明するフローチャートである。
【図9】本実施形態に係るハードウェア/ソフトウェア協調検証システムの構成(ソフトウェア構成)を示すブロック図である。
【図10】本実施形態に係るハードウェア/ソフトウェア協調検証の手順を説明するためのフローチャートである。
【図11】部品間の通信方式について説明するための図である。
【図12】マルチCPUシステムの検証モデルを例示する図である。
【符号の説明】
10…コンピュータ(PC又はWS)本体
12…中央処理装置(CPU)
14…主記憶装置(MS)
20…ディスプレイ
22…キーボード
24…マウス
30…外部記憶装置(ハードディスク装置)

Claims (4)

  1. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアを協調検証する方法であって、
    (a) 該ホストCPUが、入力された検証モデルとしてのCベース言語記述のTimedソフトウェア部品をコンパイルし、入力された検証モデルとしてのCベース言語記述のハードウェア部品をコンパイルし、並びに該コンパイルされたTimedソフトウェア部品及び該コンパイルされたハードウェア部品をリンクするステップと、
    (b) 該ホストCPUが、入力されたテストベンチをコンパイルするステップと、
    (c) 該ホストCPUが、ステップ(a)により処理された検証モデルとステップ(b)により処理されたテストベンチとをリンクするステップと、
    (d) 該ホストCPUが、ステップ(c)で生成された実行プログラムに基づいてシミュレーションを実行するステップと、
    (e) 該ホストCPUが、ステップ(d)によるシミュレーションの結果を出力するステップと、
    を具備するとともに、ANSI−C記述のUntimedソフトウェア部品からCベース言語記述のTimedソフトウェア部品を予め作成すべく、更に、
    該ホストCPUが、入力されたANSI−C記述のUntimedソフトウェア部品について、Basic Block を認識し、制御点を挿入するステップと、
    該ホストCPUが、該制御点を挿入されたUntimedソフトウェア部品をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、
    該ホストCPUが、該生成されたターゲットCPU用バイナリ・コードについて制御点間の実行時間を算出するステップと、
    該ホストCPUが、該算出された実行時間に応じて、該制御点を挿入されたUntimedソフトウェア部品の各制御点へ実行時間挿入文を挿入し、Cベース言語記述のTimedソフトウェア部品として出力するステップと、
    を具備するハードウェア/ソフトウェア協調検証方法。
  2. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアを協調検証する方法であって、
    (a) 該ホストCPUが、入力された検証モデルとしてのCベース言語記述のハードウェア部品をコンパイルし、並びに入力された検証モデルとしてのホストCPU用バイナリ・コードのTimedソフトウェア部品及び該コンパイルされたハードウェア部品をリンクするステップと、
    (b) 該ホストCPUが、入力されたテストベンチをコンパイルするステップと、
    (c) 該ホストCPUが、ステップ(a)により処理された検証モデルとステップ(b)により処理されたテストベンチとをリンクするステップと、
    (d) 該ホストCPUが、ステップ(c)で生成された実行プログラムに基づいてシミュレーションを実行するステップと、
    (e) 該ホストCPUが、ステップ(d)によるシミュレーションの結果を出力するステップと、
    を具備するとともに、ターゲットCPU用バイナリ・コードのUntimedソフトウェア部品からホストCPU用バイナリ・コードのTimedソフトウェア部品を予め作成すべく、更に、
    該ホストCPUが、入力されたターゲットCPU用バイナリ・コードのUntimedソフトウェア部品を、ホストCPU用バイナリ・コードのソフトウェア部品へと変換するステップと、
    該ホストCPUが、該ホストCPU用バイナリ・コードのソフトウェア部品について、Basic Block を認識し、制御点を挿入するステップと、
    該ホストCPUが、該制御点を挿入されたソフトウェア部品について制御点間の実行時間を算出するステップと、
    該ホストCPUが、該算出された実行時間に応じて、該制御点を挿入されたソフトウェア部品の各制御点へ実行時間挿入文同等機能のバイナリ・コードを挿入し、ホストCPU用バイナリ・コードのTimedソフトウェア部品として出力するステップと、
    を具備するハードウェア/ソフトウェア協調検証方法。
  3. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアを協調検証する方法であって、
    (a) 該ホストCPUが、入力された検証モデルとしてのCベース言語記述のTimedソフトウェア部品をコンパイルし、入力された検証モデルとしてのCベース言語記述のハードウェア部品をコンパイルし、並びに該コンパイルされたTimedソフトウェア部品と、入力された検証モデルとしてのホストCPU用バイナリ・コードのTimedソフトウェア部品と該コンパイルされたハードウェア部品とをリンクするステップと、
    (b) 該ホストCPUが、入力されたテストベンチをコンパイルするステップと、
    (c) 該ホストCPUが、ステップ(a)により処理された検証モデルとステップ(b)により処理されたテストベンチとをリンクするステップと、
    (d) 該ホストCPUが、ステップ(c)で生成された実行プログラムに基づいてシミュレーションを実行するステップと、
    (e) 該ホストCPUが、ステップ(d)によるシミュレーションの結果を出力するステップと、
    を具備するとともに、ANSI−C記述のUntimedソフトウェア部品からCベース言語記述のTimedソフトウェア部品を予め作成すべく、更に、
    該ホストCPUが、入力されたANSI−C記述のUntimedソフトウェア部品について、Basic Block を認識し、制御点を挿入するステップと、
    該ホストCPUが、該制御点を挿入されたUntimedソフトウェア部品をコンパイルしてターゲットCPU用バイナリ・コードを生成するステップと、
    該ホストCPUが、該生成されたターゲットCPU用バイナリ・コードについて制御点間の実行時間を算出するステップと、
    該ホストCPUが、該算出された実行時間に応じて、該制御点を挿入されたUntimedソフトウェア部品の各制御点へ実行時間挿入文を挿入し、Cベース言語記述のTimedソフトウェア部品として出力するステップと、
    を具備するハードウェア/ソフトウェア協調検証方法。
  4. ホストCPUを使用して、一つのターゲットCPU及び一つのOSが少なくとも搭載される半導体装置のハードウェア及びソフトウェアを協調検証する方法であって、
    (a) 該ホストCPUが、入力された検証モデルとしてのCベース言語記述のTimedソフトウェア部品をコンパイルし、入力された検証モデルとしてのCベース言語記述のハードウェア部品をコンパイルし、並びに該コンパイルされたTimedソフトウェア部品と、入力された検証モデルとしてのホストCPU用バイナリ・コードのTimedソフトウェア部品と該コンパイルされたハードウェア部品とをリンクするステップと、
    (b) 該ホストCPUが、入力されたテストベンチをコンパイルするステップと、
    (c) 該ホストCPUが、ステップ(a)により処理された検証モデルとステップ(b)により処理されたテストベンチとをリンクするステップと、
    (d) 該ホストCPUが、ステップ(c)で生成された実行プログラムに基づいてシミュレーションを実行するステップと、
    (e) 該ホストCPUが、ステップ(d)によるシミュレーションの結果を出力するステップと、
    を具備するとともに、ターゲットCPU用バイナリ・コードのUntimedソフトウェア部品からホストCPU用バイナリ・コードのTimedソフトウェア部品を予め作成すべく、更に、
    該ホストCPUが、入力されたターゲットCPU用バイナリ・コードのUntimedソフトウェア部品を、ホストCPU用バイナリ・コードのソフトウェア部品へと変換するステップと、
    該ホストCPUが、該ホストCPU用バイナリ・コードのソフトウェア部品について、Basic Block を認識し、制御点を挿入するステップと、
    該ホストCPUが、該制御点を挿入されたソフトウェア部品について制御点間の実行時間を算出するステップと、
    該ホストCPUが、該算出された実行時間に応じて、該制御点を挿入されたソフトウェア部品の各制御点へ実行時間挿入文同等機能のバイナリ・コードを挿入し、ホストCPU用バイナリ・コードのTimedソフトウェア部品として出力するステップと、
    を具備するハードウェア/ソフトウェア協調検証方法。
JP2003024706A 2003-01-31 2003-01-31 ハードウェア/ソフトウェア協調検証方法 Expired - Fee Related JP3951925B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003024706A JP3951925B2 (ja) 2003-01-31 2003-01-31 ハードウェア/ソフトウェア協調検証方法
US10/766,955 US7155690B2 (en) 2003-01-31 2004-01-30 Method for co-verifying hardware and software for a semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003024706A JP3951925B2 (ja) 2003-01-31 2003-01-31 ハードウェア/ソフトウェア協調検証方法

Publications (2)

Publication Number Publication Date
JP2004234528A JP2004234528A (ja) 2004-08-19
JP3951925B2 true JP3951925B2 (ja) 2007-08-01

Family

ID=32953169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003024706A Expired - Fee Related JP3951925B2 (ja) 2003-01-31 2003-01-31 ハードウェア/ソフトウェア協調検証方法

Country Status (2)

Country Link
US (1) US7155690B2 (ja)
JP (1) JP3951925B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689202B1 (en) 2004-03-30 2014-04-01 Synopsys, Inc. Scheduling of instructions
US8677312B1 (en) 2004-03-30 2014-03-18 Synopsys, Inc. Generation of compiler description from architecture description
US9280326B1 (en) 2004-05-26 2016-03-08 Synopsys, Inc. Compiler retargeting based on instruction semantic models
US7313773B1 (en) * 2004-05-26 2007-12-25 Coware, Inc. Method and device for simulator generation based on semantic to behavioral translation
US7805708B2 (en) * 2005-05-13 2010-09-28 Texas Instruments Incorporated Automatic tool to eliminate conflict cache misses
JP2007310449A (ja) * 2006-05-16 2007-11-29 Fujitsu Ltd ソフトウェア/ハードウェア協調設計のためのモデル生成プログラム、およびモデル生成方法
JP4978233B2 (ja) 2007-02-22 2012-07-18 富士通セミコンダクター株式会社 シミュレータ開発システム及びシミュレータ開発方法
JP4799444B2 (ja) * 2007-02-26 2011-10-26 パナソニック株式会社 シミュレーションシステム
JP2008262318A (ja) * 2007-04-11 2008-10-30 Fujitsu Ten Ltd ソフトウェア評価装置及びその信号モニタ方法
JP4975544B2 (ja) * 2007-07-20 2012-07-11 富士通セミコンダクター株式会社 シミュレーション装置及びプログラム
US20090055155A1 (en) * 2007-08-20 2009-02-26 Russell Klein Simulating execution of software programs in electronic circuit designs
JP4873423B2 (ja) 2007-12-27 2012-02-08 東芝ソリューション株式会社 仮想化プログラム、シミュレーション装置、仮想化方法
US7957950B2 (en) * 2008-02-28 2011-06-07 Oki Semiconductor Co., Ltd. Hard/soft cooperative verifying simulator
JP5151722B2 (ja) 2008-06-20 2013-02-27 ソニー株式会社 データ処理装置およびその方法、並びにプログラム
US8898049B2 (en) * 2009-04-20 2014-11-25 International Business Machines Corporation System level power profiling of embedded applications executing on virtual multicore system-on-chip platforms
JP2011118637A (ja) * 2009-12-03 2011-06-16 Hitachi Ltd システムテスト仕様生成装置及び試験装置
KR101295673B1 (ko) * 2009-12-23 2013-08-20 인크론 지엠비에이치 임베디드 시스템을 시뮬레이션하는 방법 및 데이터 처리시스템
JP5450271B2 (ja) 2010-06-10 2014-03-26 株式会社東芝 シミュレーション装置、シミュレーションプログラム及び方法
JP5171914B2 (ja) * 2010-09-28 2013-03-27 株式会社東芝 設計記述書換装置およびその方法
FR2990281A1 (fr) 2012-05-07 2013-11-08 St Microelectronics Grenoble 2 Titre non renseigne.
CN104022919B (zh) * 2014-06-25 2018-12-14 北京经纬恒润科技有限公司 一种控制多总线接口数据激励的方法、装置及系统
US9600384B2 (en) * 2014-10-14 2017-03-21 Cypress Semiconductor Corporation System-on-chip verification
CN112668262B (zh) * 2020-12-25 2023-04-07 瓴盛科技有限公司 SoC验证方法、系统、装置和计算机可读介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149382A (ja) 1996-11-20 1998-06-02 Matsushita Electric Ind Co Ltd プログラム言語により電子回路を設計する装置
JP3904645B2 (ja) * 1996-12-26 2007-04-11 株式会社東芝 ハードウェア/ソフトウェア協調シミュレーション装置
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6862563B1 (en) * 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
JP3953243B2 (ja) * 1998-12-29 2007-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション システム分析のためにバス・アービトレーション制御を使用する同期方法及び装置
US6279146B1 (en) * 1999-01-06 2001-08-21 Simutech Corporation Apparatus and method for verifying a multi-component electronic design
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6327650B1 (en) * 1999-02-12 2001-12-04 Vsli Technology, Inc. Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor
JP2000259445A (ja) 1999-03-05 2000-09-22 Nec Corp ソフトウェア/ハードウェア協調シミュレーション方法
US6470481B2 (en) * 1999-07-29 2002-10-22 Michael C. Brouhard State management in a co-verification system
US6810373B1 (en) * 1999-08-13 2004-10-26 Synopsis, Inc. Method and apparatus for modeling using a hardware-software co-verification environment
US6634012B2 (en) * 1999-09-14 2003-10-14 Innologic Systems, Inc. Design verification by symbolic simulation using a native hardware description language
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
JP2001256072A (ja) 2000-03-10 2001-09-21 Sharp Corp システムエミュレータ
US7613599B2 (en) * 2000-06-02 2009-11-03 Synopsys, Inc. Method and system for virtual prototyping
US6701501B2 (en) * 2000-10-16 2004-03-02 Simon Joshua Waters Structured algorithmic programming language approach to system design
JP2002175344A (ja) 2000-10-17 2002-06-21 Nec Corp 電子回路と制御プログラムとのコバリデーション方法
EP1283422A1 (en) * 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
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

Also Published As

Publication number Publication date
US7155690B2 (en) 2006-12-26
JP2004234528A (ja) 2004-08-19
US20050149897A1 (en) 2005-07-07

Similar Documents

Publication Publication Date Title
JP3951925B2 (ja) ハードウェア/ソフトウェア協調検証方法
US7346903B2 (en) Compiling and linking modules of a cycle-based logic design
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
Kumar et al. A framework for hardware/software codesign
US20040122644A1 (en) Optimized execution of software objects generated from a hardware description
US6895524B2 (en) Circuit reduction technique for improving clock net analysis performance
Lahiri et al. Performance analysis of systems with multi-channel communication architectures
Villarreal et al. Improving software performance with configurable logic
US11513818B1 (en) Method, product, and system for integrating a hardware accelerator with an extensible processor
JP5200675B2 (ja) シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
Schmidt et al. A new formal verification approach for hardware-dependent embedded system software
Beltrame et al. Multi-accuracy power and performance transaction-level modeling
US6775810B2 (en) Boosting simulation performance by dynamically customizing segmented object codes based on stimulus coverage
Pétrot et al. Cycle precise core based hardware/software system simulation with predictable event propagation
JP4342392B2 (ja) ソフトウェア検証モデル生成方法
JP4271072B2 (ja) ソフトウェア検証モデル生成方法
Ulrich et al. Speed and accuracy in digital network simulation based on structural modeling
Isshiki et al. Trace-driven workload simulation method for Multiprocessor System-On-Chips
JP2663893B2 (ja) アーキテクチャ・シミュレータ
JP2005321848A (ja) システムシミュレーション実行プログラムおよびハードウェア記述変換プログラム
Chung et al. System-level performance analysis of embedded system using behavioral C/C++ model
JP2000259445A (ja) ソフトウェア/ハードウェア協調シミュレーション方法
Iugan et al. A generic conceptual framework based on formal representation for the design of continuous/discrete co-simulation tools
US6339751B1 (en) Circuit design support apparatus and a method
Davies et al. Timing verification for asynchronous design

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060328

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070416

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees