JP4480737B2 - 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法 - Google Patents

論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法 Download PDF

Info

Publication number
JP4480737B2
JP4480737B2 JP2007089143A JP2007089143A JP4480737B2 JP 4480737 B2 JP4480737 B2 JP 4480737B2 JP 2007089143 A JP2007089143 A JP 2007089143A JP 2007089143 A JP2007089143 A JP 2007089143A JP 4480737 B2 JP4480737 B2 JP 4480737B2
Authority
JP
Japan
Prior art keywords
transition
state
embedding
character string
constraint
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
JP2007089143A
Other languages
English (en)
Other versions
JP2008250504A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007089143A priority Critical patent/JP4480737B2/ja
Priority to US12/023,583 priority patent/US20080243470A1/en
Publication of JP2008250504A publication Critical patent/JP2008250504A/ja
Application granted granted Critical
Publication of JP4480737B2 publication Critical patent/JP4480737B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • 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/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

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)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Stored Programmes (AREA)

Description

この発明は、検証対象となるLSIなどのハードウェアモジュールの論理検証を支援する論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法に関する。
LSIなどのハードウェアモジュールの設計では、従来から設計期間の短縮による作業効率化が要求されている一方、ハードウェアモジュールが正しく動作するかどうかを検証する検証作業が必要不可欠であり、特に、大規模化、高機能化、高速化および低消費電力化が要求されているハードウェアモジュールについては、高品質を維持するためにもこの検証作業は重要である。
一般に、ハードウェアモジュールの論理検証では、プロトコル違反を検出するインターフェースプロトコルチェッカをインターフェース仕様記述から自動生成し、そのインターフェースプロトコルチェッカを用いてハードウェアモジュールの論理検証をおこなっている。
具体的には、たとえば、検証対象となるハードウェアモジュールの周りをテストベンチが取り囲んでいる検証環境下において、ハードウェアモジュールの入出力の信号変換(インターフェースプロトコル)が仕様に合っているか否かをモニタリングして、プロトコル違反(制約の不成立)の有無をチェックしている(たとえば、下記特許文献1〜4参照。)。
特開2006−053813号公報 特開2005−108007号公報 特開2006−099518号公報 特開2006−219193号公報
しかしながら、上述した特許文献1〜4に記載の従来技術では、自動生成されたインターフェースプロトコルチェッカを用いたハードウェアモジュールの論理検証において、プロトコル違反が発生した場合に出力されるエラーメッセージについて、何ら言及されていない、あるいは、設計者にとって分かりにくい内容となっていた。
このため、ハードウェアモジュールのどの箇所(時期)でプロトコル違反が発生したのか、また、どのインターフェース信号がプロトコル違反の原因となっているのかを特定する作業に多大な時間を要してしまい、検証作業の長期化、ひいては設計作業の長期化を招くという問題があった。
ここで、従来技術の問題点を具体的に説明する。図18は、従来技術の問題点を示す説明図である。図18において、アサーション記述情報1800は、ハードウェアモジュールのプロトコル違反をチェックするアサーションを実行する情報である。プロトコル違反が発生すると、アサーション記述情報1800におけるreport以下のメッセージが出力される。
ここでは、ハードウェアモジュールが取ることができる状態S1に関するプロトコル違反が発生すると、“Assertion (A&〜B&〜C&D)|(A&B&C&D)|(A&〜B&C&D) failed at state S1”というエラーメッセージが出力されることとなる。
設計者は、このエラーメッセージをもとに、プロトコル違反の発生箇所を特定し、さらに、メッセージ内の論理式から原因となっているインターフェース信号を特定する。しかし、実際にはインターフェース信号の信号数は10〜100ビット程度になるため特定作業が著しく困難となってしまい、検証作業の長期化、ひいては設計作業の長期化を招くという問題があった。
一方で、インターフェースプロトコルチェッカを手作業で作成して、設計者にとって分かりやすいエラーメッセージを出力させるように作り込むことが考えられる。しかし、信号数が10〜100ビット程度になることが想定されるため、インターフェースプロトコルチェッカの作成作業に手間がかかってしまい、検証作業の長期化を招いてしまう場合があるという問題があった。
この発明は、上述した従来技術による問題点を解消するため、設計者にとって分かりやすい内容のエラーメッセージを提示することにより、論理検証期間の短縮化を図ることができる論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかる論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法は、検証対象となるハードウェアモジュールの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出し、その羅列した文字列を、前記有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記初期状態から前記各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成し、前記有限状態機械モデルの中から前記ハードウェアモジュールに入力される信号が満たすべき制約に関する制約論理式を取得し、任意の制約の不成立を示す旨の文字列が述部として予め記述されたレポート文の前記述部に対する主部をあらわす文字列を埋め込むための埋め込み位置に取得された制約論理式を埋め込み、かつ、前記述部を修飾する修飾文字列を埋め込むための埋め込み位置に作成されたメッセージ情報を埋め込むことにより、前記制約の不成立をチェックするアサーション記述情報を生成することを特徴とする。
この発明によれば、ハードウェアモジュールの有限状態機械モデルを用いて、各状態の特徴を説明するメッセージ情報を自動作成することにより、各状態を容易に特定することができる。また、この発明によれば、制約の不成立が発生した場合に提示されるレポート文に、各状態の特徴を説明するメッセージ情報が含まれるため、制約の不成立の発生箇所(時期)を容易に特定することができる。
また、上記発明において、前記制約論理式に含まれる前記ハードウェアモジュールに入力される信号の信号名を、前記主部をあらわす文字列を埋め込むための埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記修飾文字列を埋め込むための埋め込み位置に埋め込むことにより、前記アサーション記述情報を生成することとしてもよい。
この発明によれば、制約の不成立の原因となっている信号を容易に特定することができる。
また、上記発明において、前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報の入力を受け付けて、そのインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成し、その有限状態機械モデルの中から前記羅列した文字列を抽出することとしてもよい。
また、上記発明において、前記インターフェース仕様記述情報は、前記ハードウェアモジュールに入力される信号の入力条件の意味をあらわす文字列と前記信号の信号変化パターンとを含み、前記有限状態機械モデルは、前記入力条件の意味をあらわす文字列を前記信号の信号変化パターンに従って羅列した文字列が、前記各遷移状態に関連付けられた状態遷移グラフによって表現されており、前記状態遷移グラフの前記各遷移状態に関連付けられた羅列した文字列を抽出することとしてもよい。
これらの発明によれば、各状態の特徴を説明するメッセージ文を、ハードウェアモジュールに入力される信号の入力条件の意味をあらわす文字列を用いて記述することができる。
また、上記発明において、前記有限状態機械モデルは、前記入力条件をあらわす入力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理式が、前記各遷移枝に関連付けられた状態遷移グラフによって表現されており、前記状態遷移グラフの前記各状態と当該各状態に対する遷移先の状態との間の前記各遷移枝に関連付けられた論理式の論理和をあらわす制約論理式を取得することとしてもよい。
この発明によれば、各状態に入力される信号が満たすべき制約に関する制約論理式を取得することができる。
また、上記発明において、前記メッセージ情報と関連付けて前記状態遷移グラフを出力することとしてもよい。
この発明によれば、状態遷移グラフによって状態間の遷移を直感的に認識することができ、各状態の特定をより容易におこなうことができる。
また、上記発明において、前記有限状態機械モデルを表現し、当該有限状態機械モデルの各状態の特徴を説明する状態メッセージ情報が記述された状態遷移表の入力を受け付け、その状態遷移表の前記状態メッセージ情報を前記羅列した文字列として抽出することとしてもよい。
この発明によれば、設計者の手作業によって作成された状態遷移表を用いて有限状態機械モデルを表現することにより、インターフェース仕様記述情報を必要としない。
また、上記発明において、前記有限状態機械モデルを用いて、前記ハードウェアモジュールの動作を示すハードウェア記述情報を生成することとしてもよい。
この発明によれば、ハードウェアモジュールの論理検証に用いるハードウェア記述情報を自動的に生成することができる。
本発明にかかる論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法によれば、設計者にとって分かりやすい内容のエラーメッセージを提示することにより、論理検証期間の短縮化を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法の好適な実施の形態を詳細に説明する。
(論理検証支援装置のハードウェア構成)
まず、この発明の実施の形態にかかる論理検証支援装置100のハードウェア構成について説明する。図1は、この発明の実施の形態にかかる論理検証支援装置100のハードウェア構成を示す説明図である。図1において、論理検証支援装置100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN、WANやインターネットなどのネットワーク140に接続可能である。
コンピュータ本体110は、CPU、メモリ、インターフェースを有する。CPUは、論理検証支援装置100のハードウェア構成の全体の制御を司る。メモリは、ROM、RAM、HD、光ディスク111、フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。
また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。
また、出力装置130としては、ディスプレイ131、スピーカ132、プリンタ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ132は、効果音や読み上げ音などの音声を出力する。また、プリンタ133は、画像データや文書データを印刷する。
(論理検証支援装置100の機能的構成)
つぎに、この発明の実施の形態にかかる論理検証支援装置100の機能的構成について説明する。図2は、この発明の実施の形態にかかる論理検証支援装置100の機能的構成を示すブロック図である。図2において、論理検証支援装置100は、入力部201と、有限状態機械生成部202と、抽出部203と、作成部204と、出力部205と、取得部206と、アサーション生成部207と、変換部208と、ハードウェア記述情報生成部209と、から構成されている。
これら各機能201〜209は、メモリに格納された当該機能に関するプログラムをCPUに実行させることにより、当該機能を実現することができる。また、各機能201〜209からの出力データはメモリに保持される。また、図2中矢印で示した接続先の機能的構成は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムをCPUに実行させる。
まず、入力部201は、ハードウェアモジュールMの通信手順に関するインターフェース仕様記述情報D1の入力を受け付ける機能を有する。インターフェース仕様記述情報D1とは、ハードウェアモジュールMの通信手順に関する記述情報である。入力部201によって入力を受け付けたインターフェース仕様記述情報D1はメモリに保持される。
具体的には、たとえば、インターフェース仕様記述情報D1は、ハードウェアモジュールMにどのような信号が入力されて、どのような種類の通信がおこなわれ、それぞれの種類の通信がどのような信号変化パターンを有しているかを網羅的に記述したものである。
このインターフェース仕様記述情報D1は、計算機上のテキストファイルによって記述することができ、文法と解釈が数学的に定義された記述言語を使って記述されている。たとえば、正規表現(regular expression)などをベースにすることにより、信号値の時間的な変化パターンを数学的に表現することができる。
ここで、ハードウェアモジュールMのインターフェース仕様記述情報D1について説明する。図3は、ハードウェアモジュールMのインターフェース仕様記述情報D1を示す説明図である。図3中、A、B、C、Dは観測するインターフェース信号を示している。また、“〜”は論理否定、“|”は排他的論理和、“&”は論理積、“*”は0回以上の繰り返しをあらわす。
図3において、『boolean』は、ハードウェアモジュールMに入力される信号の入力条件を定義している。具体的には、各入力条件の意味をあらわす文字列と、各入力条件を規定する論理式と、の組み合わせによって各入力条件を定義する。
ここでは、信号の入力条件を、文字列「NOP」と論理式「〜A|〜B」との組み合わせ、文字列「Request」と論理式「A&B&〜D」との組み合わせ、文字列「Wait」と論理式「A&B&C&D」との組み合わせ、文字列「Exec」と論理式「A&〜B&C&D」との組み合わせ、文字列「Cancel」と論理式「A&〜B&〜C&D」との組み合わせによって定義している。
『sequence』は、ハードウェアモジュールMに入力される信号の信号変化パターンを定義している。具体的には、信号の信号変化パターンの意味をあらわす文字列と、『boolean』において定義された文字列の羅列と、の組み合わせによって信号変化パターンを定義する。
ここでは、信号変化パターンを、文字列「Normal」と羅列した文字列「Request Wait* Exec Exec」との組み合わせ、文字列「Abort」と羅列した文字列「Request Wait* Cancel」との組み合わせによって定義している。羅列した文字列の意味は、「Abort」を例に挙げると、「Request」のあとに、「Wait」が0回以上繰り返されたあと、「Cancel」が発生することを示している。
『transaction』は、ハードウェアモジュールMが取ることのできる状態集合のバリエーションを定義している。具体的には、ハードウェアモジュールMが取ることのできる状態集合をあらわす文字列によってバリエーションを定義する。ここでは、文字列「NOP」、「Normal」および「Abort」によって3つの状態集合が定義されている。
図2の説明に戻り、有限状態機械生成部202は、入力部201によって入力されたインターフェース仕様記述情報D1に基づいて、ハードウェアモジュールMに入出力される信号の状態遷移に関する有限状態機械モデルを生成する機能を有する。具体的には、メモリから入力部201によって入力されたインターフェース仕様記述情報D1を読み出して、そのインターフェース仕様記述情報D1に基づく有限状態機械モデルを生成して、メモリに保持する。
有限状態機械モデルとは、ハードウェアモジュールMが取ることのできる有限の状態集合およびある状態から他の状態への可能な有限の遷移集合を用いて記述された動作(動的)モデルである。この有限状態機械モデルは、信号の入力条件の意味をあらわす文字列を信号の信号変化パターンに従って羅列した文字列(後述するラベルL)が、各遷移状態に関連付けられた状態遷移グラフによって表現することができる。
各遷移状態に関連付けられる羅列した文字列とは、図3に示した「NOP」や「Request」などの入力条件の意味をあらわす単語の羅列である。なお、各遷移状態に関連付ける文字列として、入力条件の意味をあらわす記号、絵文字および図形などを用いることとしてもよい。
また、有限状態機械モデルは、入力条件をあらわす入力変数を用いて任意の遷移元の状態と遷移元に対する遷移先の状態との間の遷移条件が規定された論理式が、各遷移枝に関連付けられた状態遷移グラフによって表現することができる。入力変数とは、ハードウェアモジュールMに入力されるインターフェース信号A〜Dの信号値である。ここで、インターフェース仕様記述情報D1に基づく状態遷移グラフ400について説明する。
図4は、ハードウェアモジュールMの状態遷移グラフ400を示す説明図である。図4において、状態遷移グラフ400は、任意の遷移元の状態と遷移元に対する遷移先の状態との間の遷移条件である論理式(図3に示した入力条件)が、各遷移枝(S0→S0、S0→S1、S1→S0、S1→S1、S1→S2、S2→S0)に関連付けられたグラフである。
状態遷移グラフ400において、状態S0が初期状態であり、クロックに同期してある状態から他の状態への状態遷移が起こる。また、遷移枝には遷移条件を示す論理式が記述されている。この論理式は、図3に示した『boolean』で定義された論理式を用いて記述されているため、この論理式自体が、ハードウェアモジュールMに入力される信号が満たすべき入力条件となる。
また、状態遷移グラフ400の各遷移状態(初期状態を除く状態)には、その状態を特定するためのメッセージが記述されたラベルL1,L2が関連付けられている。このラベルL1,L2には、初期状態から各遷移状態に辿り着くまでの各遷移枝に関連付けられた論理式の意味をあらわす文字列を遷移順に羅列した文字列が記述されている。
具体的には、信号の入力条件の意味をあらわす文字列を信号の信号変化パターンに従って羅列した文字列である。設計者は、このラベルL1,L2に記述されているメッセージ内容により、各遷移状態を特定するとともに、各遷移状態に辿り着くまでの経緯を直感的に把握することができる。
ここで、ラベルL1を例に挙げると、状態S0から状態S1に辿り着くまでの遷移を意味する文字列「Request Wait*」が記述されている。この文字列「Request Wait*」は、「Request」のあとに、「Wait」を0回以上繰り返して、状態S1に遷移したことを意味している。
なお、ラベルL1,L2に記述されるメッセージは、各状態を特定する内容であればよく、設計者にとって分かりやすい表現であればよい。たとえば、各遷移状態を識別するための識別IDをラベルL1,L2に記述することとしてもよい。
ここで、有限状態機械生成部202による状態遷移グラフ400の生成手法の一例について説明する。まず、状態遷移アルゴリズムについて説明する。図5は、状態遷移アルゴリズムの具体例を示す説明図である。図5中、“p”、“q”は遷移条件をあらわす正規表現であり、“ε”はイプシロン遷移をあらわしている。
図5中(1)において、状態Saと状態Sbとの間の遷移枝には、遷移条件をあらわす正規表現「pq」が関連付けられている。ここで、正規表現「pq」を展開すると、状態Saから状態Scに遷移したあと、状態Sbに遷移する。
このとき、状態Saから状態Sbへ遷移する途中で新しく生成された状態Scには、その状態Scを特定するラベルLcが関連付けられてメモリに保持される。このラベルLcのメッセージは、状態Saに関連付けられているラベルLaのメッセージ「L」に、状態Saと状態Scとの間の遷移条件をあらわす文字列「p」が追加されたメッセージ「Lp」となる。
図5中(2)において、状態Saと状態Sdとの間の遷移枝には、遷移条件をあらわす正規表現「p*」が関連付けられている。ここで、正規表現「p*」を展開すると、状態Saからイプシロン遷移して状態Seに遷移したあと、状態Seで0回以上の自己ループを繰り返し、このあと、イプシロン遷移して状態Sdに遷移する。
このとき、状態Saから状態Sdへ遷移する途中で新しく生成された状態Seには、その状態Seを特定するラベルLeが関連付けられてメモリに保持される。ラベルLeのメッセージは、状態Saに関連付けられているラベルLaのメッセージ「L」に、状態Seでの自己ループをあらわす文字列「p*」が追加されたメッセージ「Lp*」となる。
図5中(3)において、状態Saと状態Sfとの間の遷移枝には、遷移条件をあらわす正規表現「p|q」が関連付けられている。ここで、正規表現「p|q」を展開すると、状態Saから状態Sfに遷移する遷移枝が「p」が発生した場合の遷移枝と、「q」が発生した場合の遷移枝との2本となる。
これら(1)〜(3)の状態遷移アルゴリズムを利用してインターフェース仕様記述情報D1に記述されている正規表現(『sequence』で定義されている信号変化パターン)を展開することより、図4に示した状態遷移グラフ400を生成することができる。
つぎに、図3に示したインターフェース仕様記述情報D1から状態遷移グラフ400を生成する手順について説明する。図6−1〜図6−3は、状態遷移グラフ400の生成手順を示す説明図である。なお、図6−1〜図6−3において状態S0は初期状態である。
まず、図3に示したインターフェース仕様記述情報D1の『transaction』の記述内容に基づいて状態遷移グラフ611を生成する。具体的には、『transaction』に定義されている状態集合に応じた数の遷移枝(ここでは3本)を生成し、各遷移枝に文字列「NOP」,「Normal」,「Abort」が関連付けられた状態遷移グラフ611を生成する。
つぎに、各遷移枝に関連付けられている文字列「Normal」,「Abort」をインターフェース仕様記述情報D1の『sequence』の記述内容に基づいて変換して状態遷移グラフ612を生成する。具体的には、「Normal」を「Request Wait* Exec Exec」に置き換え、さらに、「Abort」を「Request Wait* Cancel」に置き換える。
つぎに、図5中(1)で説明した状態遷移アルゴリズムを用いて、「Request Wait* Exec Exec」および「Request Wait* Cancel」を展開することにより遷移状態グラフ613を生成する。このとき、各遷移状態SA〜SEに、その状態を特定するためのメッセージが記述されたラベルL1〜L5を関連付けてメモリに保持する。
ここで、ラベルL3を例に挙げると、状態S0から状態SCに辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列が記述されている。具体的には、状態S0から状態SCに辿り着くまでの各遷移枝に関連付けられている文字列「Request」、「Wait*」、「Exec」を遷移順に羅列した文字列「Request Wait* Exec」が記述される。
つぎに、図5中(2)で説明した状態遷移アルゴリズムを用いて、「Wait*」を展開することにより、イプシロン遷移を表現した状態遷移グラフ621を生成する。このとき、新たに生成される状態SFには状態SBと同一のラベルL2が関連付けられ、また、新たに生成される状態SGには状態SEと同一のラベルL5が関連付けられる。
つぎに、状態遷移グラフ621を簡単化して整理することにより状態遷移グラフ631を生成する。具体的には、イプシロン遷移をあらわす遷移枝を消去して状態遷移グラフ631を生成する。このとき、状態SA,SF,SBのうち状態SFのみを残し、また、状態SA,SF,SBのうち発生時期が最も遅い状態SBに関連付けられていたラベルL2を、状態SFに関連付ける。状態SGについても同様である。
最後に、状態遷移グラフ631のうち同一の遷移条件で2つの状態に遷移する遷移枝(非決定的な枝)を1つの遷移枝に統合することにより状態遷移グラフ632を生成する。ここでは、状態S0から「Request」が成立すると、状態SFに遷移する遷移枝と状態SGに遷移する遷移枝とが存在する。
このため、これら2つの遷移枝を統合して1つの遷移枝とする。遷移枝が統合された結果、状態SFおよび状態SGが一つの状態SHとなる。このとき、状態SHには、ラベルL2またはL5のいずれか一方が関連付けられる。
なお、統合前の各状態に関連付けられているラベルLのメッセージがそれぞれ異なる場合には、いずれか一方のラベルを関連付けることとしてもよく、また、両方のメッセージが記述されたラベルLを生成して関連付けることとしてもよい。
このようにして生成された状態遷移グラフ632の各選択枝に関連付けられた遷移条件の意味をあらわす文字列を当該文字列に対応する論理式に置き換えることにより、図4に示した状態遷移グラフ400を生成することができる。なお、状態遷移グラフ632における状態SH,SCは、状態遷移グラフ400の状態S1,S2にそれぞれ対応している。
ここで図2の説明に戻り、抽出部203は、検証対象となるハードウェアモジュールMの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出する機能を有する。
具体的には、有限状態機械モデルをメモリから読み出して、その有限状態機械モデルの中から、各遷移状態に関連付けられている羅列した文字列を抽出してメモリに保持する。この有限状態機械モデルは、有限状態機械生成部202によって生成されたモデルであってもよく、また、後述する状態遷移表900を用いて表現されるモデルであってもよい。
より具体的には、抽出部203は、ハードウェアモジュールMに入力される信号の入力条件の意味をあらわす文字列を信号の信号変化パターンに従って羅列した文字列が、各遷移状態に関連付けられた状態遷移グラフ400における、各遷移状態(状態S1,S2)に関連付けられた羅列した文字列を抽出する。
この羅列した文字列とは、状態遷移グラフ400の状態S1,S2にそれぞれ関連付けられているラベルL1,L2に記述されているメッセージ(「Request Wait*」、「Request Wait* Exec」)である。
このとき、抽出部203は、羅列した文字列と状態S1,S2とを関連付けてメモリに保持する。具体的には、ラベルL1の羅列した文字列「Request Wait*」と状態S1とを関連付けて、さらに、ラベルL2の羅列した文字列「Request Wait* Exec」と状態S2とを関連付けてメモリに保持する。
作成部204は、抽出部203によって抽出された羅列した文字列を、有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、初期状態から各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成する機能を有する。
具体的には、たとえば、有限状態機械モデルの各状態の特徴を説明するメッセージ文を作成するメッセージテンプレートを使用して、初期状態から各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成してメモリに保持する。ここで、メッセージ情報の作成に使用するメッセージテンプレートについて説明する。
図7は、メッセージテンプレートの一例を示す説明図である。図7において、メッセージテンプレート700は、有限状態機械モデルの状態S0〜Snの特徴を説明するメッセージ文を作成するテンプレートである。具体的に、メッセージテンプレート700には、状態S0(初期状態)をあらわす固定のメッセージ文、および各状態S1〜Snに応じた未完成のメッセージ文が用意されている。
状態S0をあらわす固定のメッセージ文は、初期状態であることを意味する「the idle state」である。また、状態S1〜Snに応じた未完成のメッセージ文は、各状態S1〜Snをあらわす文字列を修飾する修飾文字列の埋め込み位置700−1〜700−nが空白となっている「the state after 空白」である。
作成部204は、抽出部203によって抽出された羅列した文字列を、メッセージテンプレート700における有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置700−1〜700−nに埋め込むことにより、初期状態から各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成する。
ここでは、抽出部203によって抽出された羅列した文字列である「Request Wait*」および「Request Wait* Exec」を、メッセージテンプレート700の対応する埋め込み位置700−1,700−2に埋め込むことにより、状態S0から各状態S1,S2に辿り着くまでの遷移を意味するメッセージ情報810(図8参照)を作成することができる。
出力部205は、作成部204によって作成されたメッセージ情報をメモリから読み出して、そのメッセージ情報を出力する機能を有する。また、出力部205は、メッセージ情報と関連付けて状態遷移グラフを出力することとしてもよい。出力部205による出力形式は、ディスプレイ131での画面表示、プリンタ133での印刷出力、メモリへのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。
ここで、出力部205による出力形式の具体例について説明する。図8は、出力形式の具体例を示す説明図である。ここでは、メッセージ情報810と関連付けて状態遷移グラフ400を出力する場合について説明する。図8において、出力結果800には、図4に示した状態遷移グラフ400と作成部204によって作成されたメッセージ情報810とが表示されている。
メッセージ情報810は、状態遷移グラフ400の状態S0,S1,S2の特徴を説明するメッセージ文として、状態S0が初期状態であることを意味するメッセージX、状態S0から各状態S1,S2に辿り着くまでの遷移を意味するメッセージY,Zが記述されている。
設計者は、出力結果800の状態遷移グラフ400により、状態S0から各状態S1,S2への遷移を直感的に認識するとともに、メッセージ情報810の記述内容により、状態S0から各状態S1,S2に辿り着くまでの経緯を直感的に把握することができる。
なお、本実施の形態では、インターフェース仕様記述情報D1に基づいて有限状態機械モデルを自動生成することとしたが、設計者の手作業によって有限状態機械モデルを生成することとしてもよい。この場合、ハードウェアモジュールMが取ることのできる有限の状態集合、およびある状態から他の状態への可能な有限の遷移集合を表現する状態遷移表を手作業によって作成する。
図9は、ハードウェアモジュールMの状態遷移表を示す説明図である。図9において、状態遷移表900には、有限状態機械モデルの各状態の状態ID、状態メッセージ、遷移条件および次状態IDに関する情報が保持されている。状態IDは、各状態を識別する識別情報である。
状態メッセージは、各状態の特徴を説明するメッセージであり、たとえば、図8に示したメッセージX,Y,Zに相当する。遷移条件は、状態間の遷移枝の遷移条件である。次状態IDは、遷移条件に応じて遷移する遷移先の状態である。
この状態遷移表900を用いてハードウェアモジュールMの有限状態機械モデルを表現することができる。状態遷移表900に基づくメッセージ情報810を作成する場合には、抽出部203によって状態遷移表900から各状態の状態メッセージを抽出し、その状態メッセージを用いてメッセージ情報810のメッセージ文を作成する。
具体的には、入力部201により、ハードウェアモジュールMの有限状態機械モデルを表現し、当該有限状態機械モデルの各状態の特徴を説明する状態メッセージ情報が記述された状態遷移表900の入力を受け付け、抽出部203により、入力部201によって入力された状態遷移表の状態メッセージ情報を羅列した文字列として抽出する。
そして、抽出部203によって抽出された状態メッセージを、メッセージテンプレート700における有限状態機械モデルの各状態をあらわす未完成のメッセージ文と置き換えることにより、初期状態から各遷移状態に辿り着くまでの遷移を意味するメッセージ情報810を作成することができる。
ここで図2の説明に戻り、取得部206は、ハードウェアモジュールMの有限状態機械モデルの中から、ハードウェアモジュールMに入力される信号が満たすべき制約に関する制約論理式を取得する機能を有する。具体的には、メモリから有限状態機械モデルを読み出して、その有限状態機械モデルの中から状態ごとの制約論理式を取得してメモリに保持する。
より具体的には、たとえば、入力条件をあらわす入力変数を用いて任意の遷移元の状態と遷移元に対する遷移先の状態との間の遷移条件が規定された論理式が、各遷移枝に関連付けられた状態遷移グラフ400の各状態と当該各状態に対する遷移先の状態との間の各遷移枝に関連付けられた論理式の論理和をあらわす制約論理式を取得する。
ここで、図4に示した状態遷移グラフ400の状態S1を例に挙げると、状態S1の制約論理式は各遷移枝に関連付けられた論理式「A&〜B&〜C&D」、「A&B&C&D」および「A&〜B&C&D」の論理和となる。状態S1の制約論理式を下記式(1)に示す。
(A&〜B&〜C&D)|(A&B&C&D)|(A&〜B&C&D) …(1)
アサーション生成部207は、取得部206によって取得された制約論理式を、制約の不成立をあらわすレポート文の述部に対する主部の埋め込み位置に埋め込み、かつ、メッセージ情報(たとえば、図8に示したメッセージX,Y,Z)を、述部を修飾する修飾文字列の埋め込み位置に埋め込むことにより、制約の不成立をチェックするアサーション記述情報D2を生成する機能を有する。
アサーション記述情報D2は、ハードウェアモジュールMの論理検証時に、ハードウェアモジュールMに入力される信号が満たすべき制約の不成立をチェックするアサーションを実現する情報であり、たとえば、PSL言語(Property Specification Language)を用いて記述される。
アサーション記述情報D2を生成する場合、上記式(1)を制約の不成立をあらわすレポート文の述部に対する主部の埋め込み位置に埋め込むこととしてもよく、また、上記式(1)を複数の論理式「A&〜B&〜C&D」,「A&B&C&D」,「A&〜B&C&D」に分解して、各論理式を主部の埋め込み位置に埋め込むこととしてもよい。
アサーション記述情報D2に記述されているレポート文は、制約の不成立が発生した場合に出力される情報である。設計者は、このレポート文を元に制約不成立の発生箇所を特定することができる。本実施の形態では、このレポート文の内容をより詳細なものとすることにより、制約不成立の発生箇所の迅速な発見を支援する。
また、出力部205は、アサーション生成部207によって生成されたアサーション記述情報D2をメモリから読み出して出力する機能を有する。このアサーション記述情報D2は、後述するハードウェア記述情報D3とともに、ハードウェアモジュールMを論理検証するインターフェースプロトコルチェッカとして用いることができる。
ここで、アサーション生成部207によるアサーション記述情報D2の生成手法の一例について説明する。以下、状態遷移グラフ400の状態S1を例に挙げて、アサーション記述情報D2の生成手法を説明する。まず、アサーション生成部207の変換部208により、制約論理式を分解して複数の積項に変換する。
具体的には、たとえば、制約論理式の論理否定に対して非冗長積和論理式変換をおこなうことにより、制約論理式を複数の積項に変換する。なお、非冗長積和論理式変換については公知技術のため説明は省略する。
図10は、制約論理式の変換処理の概要を示す説明図である。図10において、まず、取得部206によって取得された上記式(1)を論理否定演算することにより数式(2)を生成する。このあと、数式(2)を非冗長積和論理式変換することにより数式(3)を生成し、その数式(3)を積項1001〜1003ごとに分解する。
これにより、状態S1に関する制約論理式(上記式(1))を簡単化して表現することができる。具体的には、論理式「A&〜B&〜C&D」は積項1001に相当し、論理式「A&B&C&D」は積項1002に相当し、論理式「A&〜B&C&D」は積項1003に相当する。
つぎに、これら複数の積項1001〜1003をアサーションテンプレート(図12参照)に適用することにより、ハードウェアモジュールMに入力される信号が満たすべき制約の不成立をチェックするアサーション記述情報D2を生成する。
積項1001〜1003をアサーションテンプレートに適用する場合、まず、各積項1001〜1003について、論理否定をあらわす“〜”が含まれていない変数P1,…,Pmと、論理否定をあらわす“〜”が含まれている変数Q1,…,Qnと、に区分した変数リストRtを作成する。変数はインターフェース信号A〜Dの信号値A〜Dである。
図11は、状態S1の変数リストRtを示す説明図である。図11において、変数リストRtには、積項1001〜1003ごとに、“〜”が含まれていない変数と、“〜”が含まれている変数とが区分されて保持されている。具体的には、積項1001について、論理否定を含む変数Q1:〜Aを保持している。
また、積項1002について、論理否定を含まない変数P1:B、および論理否定を含む変数Q1:〜Cを保持している。また、積項1003について、論理否定を含む変数Q1:〜Dを保持している。なお、図11中、対応する変数が存在しない項目には「none」と表記する。
つぎに、変数リストRtを用いて積項1001〜1003ごとに、アサーションテンプレートに適用する。図12は、アサーションテンプレートの一例を示す説明図である。図12において、アサーションテンプレート1200は、アサーション記述情報D2の記述内容を決定するテンプレートである。
アサーションテンプレート1200は、適用条件ごとに、アサーション記述情報D2に記述するテンプレート文1200−1〜1200−3を有している。適用条件とは、各積項1001〜1003を、どのテンプレート文1200−1〜1200−3に適用するのかを決める条件である。
また、テンプレート文1200−1〜1200−3には、複数の空白箇所(埋め込み位置P1〜P5)が用意されており、各埋め込み位置P1〜P7に適切な文字列を埋め込むことによりアサーション記述情報D2の記述内容を生成する。具体的には、埋め込み位置P1には状態名を、埋め込み位置P2には積項を、埋め込み位置P3には各積項の論理否定を含まない変数を、埋め込み位置P4には各積項の論理否定を含む変数を、埋め込み位置P5には各状態に応じたメッセージ情報を埋め込む。
アサーションテンプレート1200に適用するためには、まず、変数リストRtのリスト内容に基づいて、積項1001〜1003ごとの適用条件を特定する。具体的には、積項1001については、論理否定を含む変数Q1=〜Aのみを保持しているため、適用条件は「m=0かつn>0」となる。
また、積項1002については、論理否定を含まない変数P1:B、および論理否定を含む変数Q1:〜Cを保持しているため、適用条件は「m>0かつn>0」となる。また、積項1003については、論理否定を含む変数Q1:〜Dのみを保持しているため、適用条件は「m=0かつn>0」となる。
そして、積項1001〜1003ごとの適用条件に応じて、アサーションテンプレート1200のテンプレート文1200−1〜1200−3の埋め込み位置P1〜P5に文字列を埋め込むことにより、アサーション記述情報D2を生成する。
たとえば、積項1001を例に挙げると、条件は「m=0かつn>0」であるため、テンプレート文1200−3の各埋め込み位置P1〜P5に適切な文字列を埋め込む。具体的には、テンプレート文1200−3の埋め込み位置P1に状態名「S1」を埋め込み、埋め込み位置P2に積項「〜A」を埋め込み、埋め込み位置P4に論理否定を含む変数「A」を埋め込み、埋め込み位置P5に状態S1に応じたメッセージY(図8参照)を埋め込む。
これにより、状態S1の積項1001に関するアサーション記述情報D2の記述内容が完成する。同様に、積項1002および積項1003についての記述内容を完成させて、それらの記述内容を含むアサーション記述情報D2を生成する。
図13は、ハードウェアモジュールMのアサーション記述情報D2を示す説明図である。図13において、アサーション記述情報D2には、状態遷移グラフ400の状態S1に関する情報が記述されている。インターフェース信号A〜Dが満たすべき制約の不成立が発生すると、各制約に対応したreport以下のレポート文が設計者に提示されることとなる。
たとえば、状態S1において、インターフェース信号Aが満たすべき制約の不成立が発生すると、「A is not asserted at the state after Request Wait*」が出力される。設計者は、図8に示したメッセージ情報810を用いて、レポート文の内容を確認することにより、制約の不成立の発生箇所を迅速に特定することができる。
図2の説明に戻り、ハードウェア記述情報生成部209は、ハードウェアモジュールMの有限状態機械モデルを用いて、ハードウェアモジュールMの動作を示すハードウェア記述情報D3を生成する機能を有する。ハードウェア記述情報D3は、たとえば、Verilogなどのハードウェア記述言語HDLを用いて記述される。ハードウェア記述情報生成部209によって生成されたハードウェア記述情報D3はメモリに保持される。
また、出力部205は、ハードウェア記述情報生成部209によって生成されたハードウェア記述情報D3をメモリから読み出して出力する機能を有する。このハードウェア記述情報D3は、上述したアサーション記述情報D2とともに、ハードウェアモジュールMを論理検証するインターフェースプロトコルチェッカとして用いることができる。
また、ハードウェア記述情報生成部209は、ハードウェアモジュールMの有限状態機械モデルと、取得部206によって取得された制約論理式とに基づいて、ハードウェア記述言語HDLを用いて記述されたインターフェースプロトコルチェッカHDLを生成する機能を有する。
このインターフェースプロトコルチェッカHDLは、ハードウェアモジュールMの論理検証に用いることができ、上述したアサーション記述情報D2およびハードウェア記述情報D3の記述内容を含んでいる。具体的には、たとえば、アサーションテンプレート1200を用いて生成されたアサーション記述情報D2がハードウェア記述言語HDLによって表現されている。
出力部205は、ハードウェア記述情報生成部209によって生成されたインターフェースプロトコルチェッカHDLを出力する機能を有する。ここで、ハードウェア記述言語HDLを用いて記述されたインターフェースプロトコルチェッカHDLの具体例について説明する。図14は、インターフェースプロトコルチェッカHDLの具体例を示す説明図である。
図14において、インターフェースプロトコルチェッカHDLには、ハードウェアモジュールMのアサーション記述情報D2およびハードウェア記述情報D3が、ハードウェア記述言語HDLによって記述されている。たとえば、ハードウェアモジュールMに入力される信号が満たすべき制約がif文によって記述されており、制約の不成立が発生した場合のレポート文がdisplay以下に記述されている。
より具体的には、たとえば、状態S1におけるインターフェース信号Dに関する制約が不成立となった場合のレポート文は、「D is not asserted at the state after Request Wait*」となる。
これにより、PSL言語を使用できない環境下、あるいは、設計者がPSL言語を知らない場合であっても、ハードウェア記述言語HDLを用いて、ハードウェアモジュールMの論理検証に使用するインターフェースプロトコルチェッカを自動生成することができる。
(論理検証支援装置100の論理検証支援処理手順)
つぎに、この発明の実施の形態にかかる論理検証支援装置100の論理検証支援処理手順について説明する。図15は、この発明の実施の形態にかかる論理検証支援装置100の論理検証支援処理手順を示すフローチャートである。
図15のフローチャートにおいて、まず、入力部201により、インターフェース仕様記述情報D1が入力されたか否かを判断する(ステップS1501)。ここで、インターフェース仕様記述情報D1が入力されるのを待って(ステップS1501:No)、入力された場合(ステップS1501:Yes)、作成部204により、メッセージ情報作成処理を実行する(ステップS1502)。
このあと、アサーション生成部207により、アサーション記述情報生成処理を実行する(ステップS1503)。そして、ハードウェア記述情報生成部209により、ハードウェアモジュールMの有限状態機械モデルを用いて、ハードウェアモジュールMの動作を示すハードウェア記述情報D3を生成する(ステップS1504)。
最後に、出力部205により、ステップS1502において作成されたメッセージ情報810を出力するとともに、ステップS1503において生成されたアサーション記述情報D2およびステップS1504において生成されたハードウェア記述情報D3をインターフェースプロトコルチェッカとして出力する(ステップS1505)。
つぎに、図15に示したメッセージ情報作成処理(ステップS1502)の処理手順について説明する。図16は、メッセージ情報作成処理の処理手順を示すフローチャートである。図16のフローチャートにおいて、まず、有限状態機械生成部202により、図15に示したステップS1501において入力されたインターフェース仕様記述情報D1に基づいて、ハードウェアモジュールMに入出力される信号の状態遷移に関する有限状態機械モデルを生成する(ステップS1601)。
このあと、抽出部203により、有限状態機械生成部202によって生成された有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出する(ステップS1602)。
そして、作成部204により、メッセージテンプレート700を使用して、抽出部203によって抽出された羅列した文字列を、有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、初期状態から各遷移状態に辿り着くまでの遷移を意味するメッセージ情報810を作成して(ステップS1603)、図15に示したステップS1503に移行する。
つぎに、図15に示したアサーション記述情報生成処理(ステップS1503)の処理手順について説明する。図17は、アサーション記述情報生成処理の処理手順を示すフローチャートである。図17のフローチャートにおいて、まず、取得部206により、図16に示したステップS1601において生成された有限状態機械モデルの中からハードウェアモジュールMに入力される信号が満たすべき制約に関する制約論理式を取得する(ステップS1701)。
このあと、変換部208により、取得部206によって取得された制約論理式を積項に変換する変換処理を実行する(ステップS1702)。そして、アサーション生成部207により、アサーションテンプレート1200を使用して、変換部208によって変換された積項を、制約の不成立をあらわすレポート文の述部に対する主部の埋め込み位置に埋め込み、かつ、図15に示したステップS1502において作成されたメッセージ情報810を、述部を修飾する修飾文字列の埋め込み位置に埋め込むことにより、制約の不成立をチェックするアサーション記述情報D2を生成して(ステップS1703)、図15に示したステップS1504に移行する。
このように、本実施の形態によれば、ハードウェアモジュールMの有限状態機械モデルを用いて、各状態の特徴を説明するメッセージ情報810を自動作成することができる。このとき、ハードウェアモジュールMに入力される信号の入力条件の意味をあらわす文字列を用いて、各状態の特徴を説明するメッセージ文を記述することにより、設計者にとって分かりやすい内容のメッセージ情報810を自動作成することができる。
設計者は、メッセージ情報810の内容を確認することにより、各状態を容易に特定することができる。また、制約の不成立が発生した場合に提示されるレポート文に、メッセージ情報810の内容と関連付けられた、各状態の特徴を説明するメッセージが含まれるため、制約の不成立の発生箇所(時期)を容易に特定することができる。
以上説明したように、この発明にかかる論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法によれば、設計者にとって分かりやすい内容のエラーメッセージを提示することにより、論理検証期間の短縮化を図ることができる。
なお、本実施の形態で説明した論理検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明した論理検証支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した論理検証支援装置100の機能的構成201〜209をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、論理検証支援装置100を製造することができる。
(付記1)検証対象となるハードウェアモジュールの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出させる抽出工程と、
前記抽出工程によって抽出された羅列した文字列を、前記有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記初期状態から前記各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成させる作成工程と、
前記作成工程によって作成されたメッセージ情報を出力させる出力工程と、
をコンピュータに実行させることを特徴とする論理検証支援プログラム。
(付記2)前記有限状態機械モデルの中から前記ハードウェアモジュールに入力される信号が満たすべき制約に関する制約論理式を取得させる取得工程と、
前記取得工程によって取得された制約論理式を、前記制約の不成立をあらわすレポート文の述部に対する主部の埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記述部を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記制約の不成立をチェックするアサーション記述情報を生成させるアサーション生成工程と、
を前記コンピュータに実行させることを特徴とする付記1に記載の論理検証支援プログラム。
(付記3)前記アサーション生成工程は、
前記制約論理式に含まれる前記ハードウェアモジュールに入力される信号の信号名を、前記主部の埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記修飾文字列の埋め込み位置に埋め込むことにより、前記アサーション記述情報を生成させることを特徴とする付記2に記載の論理検証支援プログラム。
(付記4)前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報の入力を受け付けさせる入力工程と、
前記入力工程によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成させる有限状態機械生成工程と、を前記コンピュータに実行させ、
前記抽出工程は、
前記有限状態機械生成工程によって生成された有限状態機械モデルの中から、前記羅列した文字列を抽出させることを特徴とする付記1〜3のいずれか一つに記載の論理検証支援プログラム。
(付記5)前記インターフェース仕様記述情報は、
前記ハードウェアモジュールに入力される信号の入力条件の意味をあらわす文字列と前記信号の信号変化パターンとを含み、
前記有限状態機械モデルは、
前記入力条件の意味をあらわす文字列を前記信号の信号変化パターンに従って羅列した文字列が、前記各遷移状態に関連付けられた状態遷移グラフによって表現されており、
前記抽出工程は、
前記状態遷移グラフの前記各遷移状態に関連付けられた羅列した文字列を抽出させることを特徴とする付記4に記載の論理検証支援プログラム。
(付記6)前記有限状態機械モデルは、
前記入力条件をあらわす入力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理式が、前記各遷移枝に関連付けられた状態遷移グラフによって表現されており、
前記取得工程は、
前記状態遷移グラフの前記各状態と当該各状態に対する遷移先の状態との間の前記各遷移枝に関連付けられた論理式の論理和をあらわす制約論理式を取得させることを特徴とする付記5に記載の論理検証支援プログラム。
(付記7)前記出力工程は、
前記メッセージ情報と関連付けて前記状態遷移グラフを出力させることを特徴とする付記5または6に記載の論理検証支援プログラム。
(付記8)前記入力工程は、
前記有限状態機械モデルを表現し、当該有限状態機械モデルの各状態の特徴を説明する状態メッセージ情報が記述された状態遷移表の入力を受け付けさせ、
前記抽出工程は、
前記入力工程によって入力された状態遷移表の前記状態メッセージ情報を前記羅列した文字列として抽出させることを特徴とする付記4に記載の論理検証支援プログラム。
(付記9)前記有限状態機械モデルを用いて、前記ハードウェアモジュールの動作を示すハードウェア記述情報を生成させるハードウェア記述情報生成工程を前記コンピュータに実行させることを特徴とする付記1〜8のいずれか一つに記載の論理検証支援プログラム。
(付記10)付記1〜9のいずれか一つに記載の論理検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
(付記11)検証対象となるハードウェアモジュールの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出する抽出手段と、
前記抽出手段によって抽出された羅列した文字列を、前記有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記初期状態から前記各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成する作成手段と、
前記作成手段によって作成されたメッセージ情報を出力する出力手段と、
を備えることを特徴とする論理検証支援装置。
(付記12)前記有限状態機械モデルの中から前記ハードウェアモジュールに入力される信号が満たすべき制約に関する制約論理式を取得する取得手段と、
前記取得手段によって取得された制約論理式を、前記制約の不成立をあらわすレポート文の述部に対する主部の埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記述部を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記制約の不成立をチェックするアサーション記述情報を生成するアサーション生成手段と、
を備えることを特徴とする付記11に記載の論理検証支援装置。
(付記13)前記アサーション生成手段は、
前記制約論理式に含まれる前記ハードウェアモジュールに入力される信号の信号名を、前記主部の埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記修飾文字列の埋め込み位置に埋め込むことにより、前記アサーション記述情報を生成することを特徴とする付記12に記載の論理検証支援装置。
(付記14)前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報の入力を受け付けさせる入力手段と、
前記入力手段によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成する有限状態機械生成手段と、を備え、
前記抽出手段は、
前記有限状態機械生成手段によって生成された有限状態機械モデルの中から、前記羅列した文字列を抽出することを特徴とする付記11〜13のいずれか一つに記載の論理検証支援装置。
(付記15)前記インターフェース仕様記述情報は、
前記ハードウェアモジュールに入力される信号の入力条件の意味をあらわす文字列と前記信号の信号変化パターンとを含み、
前記有限状態機械モデルは、
前記入力条件の意味をあらわす文字列を前記信号の信号変化パターンに従って羅列した文字列が、前記各遷移状態に関連付けられた状態遷移グラフによって表現されており、
前記抽出手段は、
前記状態遷移グラフの前記各遷移状態に関連付けられた羅列した文字列を抽出することを特徴とする付記14に記載の論理検証支援装置。
(付記16)前記有限状態機械モデルは、
前記入力条件をあらわす入力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理式が、前記各遷移枝に関連付けられた状態遷移グラフによって表現されており、
前記取得手段は、
前記状態遷移グラフの前記各状態と当該各状態に対する遷移先の状態との間の前記各遷移枝に関連付けられた論理式の論理和をあらわす制約論理式を取得することを特徴とする付記15に記載の論理検証支援装置。
(付記17)前記出力手段は、
前記メッセージ情報と関連付けて前記状態遷移グラフを出力することを特徴とする付記15または16に記載の論理検証支援装置。
(付記18)前記入力手段は、
前記有限状態機械モデルを表現し、当該有限状態機械モデルの各状態の特徴を説明する状態メッセージ情報が記述された状態遷移表の入力を受け付け、
前記抽出手段は、
前記入力手段によって入力された状態遷移表の前記状態メッセージ情報を前記羅列した文字列として抽出することを特徴とする付記14に記載の論理検証支援装置。
(付記19)前記有限状態機械モデルを用いて、前記ハードウェアモジュールの動作を示すハードウェア記述情報を生成するハードウェア記述情報生成手段を備えることを特徴とする付記11〜18のいずれか一つに記載の論理検証支援装置。
(付記20)検証対象となるハードウェアモジュールの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出する抽出工程と、
前記抽出工程によって抽出された羅列した文字列を、前記有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記初期状態から前記各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成する作成工程と、
前記作成工程によって作成されたメッセージ情報を出力する出力工程と、
を含んだことを特徴とする論理検証支援方法。
(付記21)前記有限状態機械モデルの中から前記ハードウェアモジュールに入力される信号が満たすべき制約に関する制約論理式を取得する取得工程と、
前記取得工程によって取得された制約論理式を、前記制約の不成立をあらわすレポート文の述部に対する主部の埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記述部を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記制約の不成立をチェックするアサーション記述情報を生成するアサーション生成工程と、
を含んだことを特徴とする付記20に記載の論理検証支援方法。
(付記22)前記アサーション生成工程は、
前記制約論理式に含まれる前記ハードウェアモジュールに入力される信号の信号名を、前記主部の埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記修飾文字列の埋め込み位置に埋め込むことにより、前記アサーション記述情報を生成することを特徴とする付記21に記載の論理検証支援方法。
(付記23)前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報の入力を受け付ける入力工程と、
前記入力工程によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成する有限状態機械生成工程と、を含み、
前記抽出工程は、
前記有限状態機械生成工程によって生成された有限状態機械モデルの中から、前記羅列した文字列を抽出することを特徴とする付記20〜22のいずれか一つに記載の論理検証支援方法。
(付記24)前記インターフェース仕様記述情報は、
前記ハードウェアモジュールに入力される信号の入力条件の意味をあらわす文字列と前記信号の信号変化パターンとを含み、
前記有限状態機械モデルは、
前記入力条件の意味をあらわす文字列が前記信号の信号変化パターンに従って羅列した文字列が、前記各遷移状態に関連付けられた状態遷移グラフによって表現されており、
前記抽出工程は、
前記状態遷移グラフの前記各遷移状態に関連付けられた羅列した文字列を抽出することを特徴とする付記23に記載の論理検証支援方法。
(付記25)前記有限状態機械モデルは、
前記入力条件をあらわす入力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理式が、前記各遷移枝に関連付けられた状態遷移グラフによって表現されており、
前記取得工程は、
前記状態遷移グラフの前記各状態と当該各状態に対する遷移先の状態との間の前記各遷移枝に関連付けられた論理式の論理和をあらわす制約論理式を取得することを特徴とする付記24に記載の論理検証支援方法。
(付記26)前記出力工程は、
前記メッセージ情報と関連付けて前記状態遷移グラフを出力することを特徴とする付記24または25に記載の論理検証支援方法。
(付記27)前記入力工程は、
前記有限状態機械モデルを表現し、当該有限状態機械モデルの各状態の特徴を説明する状態メッセージ情報が記述された状態遷移表の入力を受け付け、
前記抽出工程は、
前記入力工程によって入力された状態遷移表の前記状態メッセージ情報を前記羅列した文字列として抽出することを特徴とする付記23に記載の論理検証支援方法。
(付記28)前記有限状態機械モデルを用いて、前記ハードウェアモジュールの動作を示すハードウェア記述情報を生成するハードウェア記述情報生成工程を含んだことを特徴とする付記20〜27のいずれか一つに記載の論理検証支援方法。
以上のように、本発明にかかる論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法は、LSIなどのハードウェアモジュールの論理検証に有用である。
この発明の実施の形態にかかる論理検証支援装置のハードウェア構成を示す説明図である。 この発明の実施の形態にかかる論理検証支援装置の機能的構成を示すブロック図である。 ハードウェアモジュールMのインターフェース仕様記述情報D1を示す説明図である。 ハードウェアモジュールMの状態遷移グラフを示す説明図である。 状態遷移アルゴリズムの具体例を示す説明図である。 状態遷移グラフの生成手順を示す説明図(その1)である。 状態遷移グラフの生成手順を示す説明図(その2)である。 状態遷移グラフの生成手順を示す説明図(その3)である。 メッセージテンプレートの一例を示す説明図である。 出力形式の具体例を示す説明図である。 ハードウェアモジュールMの状態遷移表を示す説明図である。 制約論理式の変換処理の概要を示す説明図である。 状態S1の変数リストRtを示す説明図である。 アサーションテンプレートの一例を示す説明図である。 ハードウェアモジュールMのアサーション記述情報D2を示す説明図である。 インターフェースプロトコルチェッカHDLの具体例を示す説明図である。 この発明の実施の形態にかかる論理検証支援装置の論理検証支援処理手順を示すフローチャートである。 メッセージ情報作成処理の処理手順を示すフローチャートである。 アサーション記述情報生成処理の処理手順を示すフローチャートである。 従来技術の問題点を示す説明図である。
符号の説明
201 入力部
202 有限状態機械生成部
203 抽出部
204 作成部
205 出力部
206 取得部
207 アサーション生成部
208 変換部
209 ハードウェア記述情報生成部
700 メッセージテンプレート
800 出力結果
810 メッセージ情報
1100 アサーションテンプレート
M ハードウェアモジュール
D1 インターフェース仕様記述情報
D2 アサーション記述情報
D3 ハードウェア記述情報

Claims (6)

  1. 検証対象となるハードウェアモジュールの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出させる抽出工程と、
    前記抽出工程によって抽出された羅列した文字列を、前記有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記初期状態から前記各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成させる作成工程と、
    前記有限状態機械モデルの中から前記ハードウェアモジュールに入力される信号が満たすべき制約に関する制約論理式を取得させる取得工程と、
    任意の制約の不成立を示す旨の文字列が述部として予め記述されたレポート文の前記述部に対する主部をあらわす文字列を埋め込むための埋め込み位置に前記取得工程によって取得された制約論理式を埋め込み、かつ、前記述部を修飾する修飾文字列を埋め込むための埋め込み位置に前記作成工程によって作成されたメッセージ情報を埋め込むことにより、前記制約の不成立をチェックするアサーション記述情報を生成させるアサーション生成工程と、
    をコンピュータに実行させることを特徴とする論理検証支援プログラム。
  2. 前記アサーション生成工程は、
    前記制約論理式に含まれる前記ハードウェアモジュールに入力される信号の信号名を、前記主部をあらわす文字列を埋め込むための埋め込み位置に埋め込み、かつ、前記メッセージ情報を、前記修飾文字列を埋め込むための埋め込み位置に埋め込むことにより、前記アサーション記述情報を生成させることを特徴とする請求項1に記載の論理検証支援プログラム。
  3. 前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報の入力を受け付けさせる入力工程と、
    前記入力工程によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成させる有限状態機械生成工程と、を前記コンピュータに実行させ、
    前記抽出工程は、
    前記有限状態機械生成工程によって生成された有限状態機械モデルの中から、前記羅列した文字列を抽出させることを特徴とする請求項1または2に記載の論理検証支援プログラム。
  4. 前記インターフェース仕様記述情報は、
    前記ハードウェアモジュールに入力される信号の入力条件の意味をあらわす文字列と前記信号の信号変化パターンとを含み、
    前記有限状態機械モデルは、
    前記入力条件の意味をあらわす文字列を前記信号の信号変化パターンに従って羅列した文字列が、前記各遷移状態に関連付けられた状態遷移グラフによって表現されており、
    前記抽出工程は、
    前記状態遷移グラフの前記各遷移状態に関連付けられた羅列した文字列を抽出させることを特徴とする請求項3に記載の論理検証支援プログラム。
  5. 検証対象となるハードウェアモジュールの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出する抽出手段と、
    前記抽出手段によって抽出された羅列した文字列を、前記有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記初期状態から前記各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成する作成手段と、
    前記有限状態機械モデルの中から前記ハードウェアモジュールに入力される信号が満たすべき制約に関する制約論理式を取得する取得手段と、
    任意の制約の不成立を示す旨の文字列が述部として予め記述されたレポート文の前記述部に対する主部をあらわす文字列を埋め込むための埋め込み位置に前記取得手段によって取得された制約論理式を埋め込み、かつ、前記述部を修飾する修飾文字列を埋め込むための埋め込み位置に前記作成手段によって作成されたメッセージ情報を埋め込むことにより、前記制約の不成立をチェックするアサーション記述情報を生成するアサーション生成手段と、
    を備えることを特徴とする論理検証支援装置。
  6. 抽出手段、作成手段、取得手段およびアサーション生成手段を備える論理検証支援装置が、
    前記抽出手段により、検証対象となるハードウェアモジュールの有限状態機械モデルの中から、初期状態から各遷移状態に辿り着くまでの各遷移枝の遷移条件の意味をあらわす文字列を遷移順に羅列した文字列を抽出する抽出工程と、
    前記作成手段により、前記抽出工程によって抽出された羅列した文字列を、前記有限状態機械モデルの各状態をあらわす文字列を修飾する修飾文字列の埋め込み位置に埋め込むことにより、前記初期状態から前記各遷移状態に辿り着くまでの遷移を意味するメッセージ情報を作成する作成工程と、
    前記取得手段により、前記有限状態機械モデルの中から前記ハードウェアモジュールに入力される信号が満たすべき制約に関する制約論理式を取得する取得工程と、
    前記アサーション生成手段により、任意の制約の不成立を示す旨の文字列が述部として予め記述されたレポート文の前記述部に対する主部をあらわす文字列を埋め込むための埋め込み位置に前記取得工程によって取得された制約論理式を埋め込み、かつ、前記述部を修飾する修飾文字列を埋め込むための埋め込み位置に前記作成工程によって作成されたメッセージ情報を埋め込むことにより、前記制約の不成立をチェックするアサーション記述情報を生成するアサーション生成工程と、
    を実行することを特徴とする論理検証支援方法。
JP2007089143A 2007-03-29 2007-03-29 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法 Expired - Fee Related JP4480737B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007089143A JP4480737B2 (ja) 2007-03-29 2007-03-29 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法
US12/023,583 US20080243470A1 (en) 2007-03-29 2008-01-31 Logical check assist program, recording medium on which the program is recorded, logical check assist apparatus, and logical check assist method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007089143A JP4480737B2 (ja) 2007-03-29 2007-03-29 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法

Publications (2)

Publication Number Publication Date
JP2008250504A JP2008250504A (ja) 2008-10-16
JP4480737B2 true JP4480737B2 (ja) 2010-06-16

Family

ID=39795825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007089143A Expired - Fee Related JP4480737B2 (ja) 2007-03-29 2007-03-29 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法

Country Status (2)

Country Link
US (1) US20080243470A1 (ja)
JP (1) JP4480737B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5109143B2 (ja) * 2007-06-28 2012-12-26 株式会社東芝 検証装置および検証方法
US8311806B2 (en) * 2008-06-06 2012-11-13 Apple Inc. Data detection in a sequence of tokens using decision tree reductions
JP5577619B2 (ja) * 2009-04-30 2014-08-27 富士通株式会社 論理回路設計装置
JP5807452B2 (ja) * 2011-08-29 2015-11-10 富士通株式会社 修正プログラム、修正装置、および修正方法
EP2820537A1 (en) 2012-02-15 2015-01-07 The Mathworks, Inc. Generating a state diagram
WO2013123376A1 (en) * 2012-02-15 2013-08-22 The Mathworks, Inc. Unified state transition table describing a state machine model
CN114090154B (zh) * 2021-11-17 2023-12-01 卡斯柯信号有限公司 基于有限状态机的多状态图符显示方法、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6059837A (en) * 1997-12-30 2000-05-09 Synopsys, Inc. Method and system for automata-based approach to state reachability of interacting extended finite state machines
JP4481762B2 (ja) * 2004-08-13 2010-06-16 富士通株式会社 論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体
JP2007034833A (ja) * 2005-07-28 2007-02-08 Fujitsu Ltd 機能検証記述生成装置,機能検証記述生成方法,及び機能検証記述生成プログラム

Also Published As

Publication number Publication date
US20080243470A1 (en) 2008-10-02
JP2008250504A (ja) 2008-10-16

Similar Documents

Publication Publication Date Title
JP4480737B2 (ja) 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法
JP4255079B2 (ja) アサーション生成システムと回路検証システムおよびプログラムならびにアサーション生成方法
JP4783658B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
TWI521367B (zh) 同步至非同步設計轉換
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
US8756407B2 (en) Configuration rule prototyping tool
JP4759392B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP2010003008A (ja) 検出プログラム、検出装置および検出方法
US20100088656A1 (en) Property checking system, property checking method, and computer-readable storage medium
JP4679442B2 (ja) 論理合成装置
WO2012049816A1 (ja) モデル検査装置、方法及びプログラム
JP5265318B2 (ja) 論理検証装置
WO2014094534A1 (zh) 一种基于文件字典拼装的文件开发工具装置以及方法
CN106104470B (zh) 动作设计装置
US7634750B2 (en) Logic diagram display method, program, and apparatus
JP4387324B2 (ja) プロパティ変換装置
JP5001190B2 (ja) Lsi設計検証システム、lsi設計検証方法およびそのプログラム
JP2015179481A (ja) 動作設計装置及び動作設計プログラム
US20090319983A1 (en) Intellectual property model creating apparatus, intellectual property model creating method, and computer product
JP2008112277A (ja) タイミングチャート生成装置
JP4985858B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
JP2008117136A (ja) 検証支援プログラム、記録媒体、検証支援装置および検証支援方法
JP5587459B2 (ja) 論理検証装置
JP2008129921A (ja) 論理機能検証装置及び論理機能検証方法
JP2007041868A (ja) 論理合成のタイミング制約生成装置と論理合成方法とプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100118

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

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

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

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4480737

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140326

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees