JP2005275963A - モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム - Google Patents

モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム Download PDF

Info

Publication number
JP2005275963A
JP2005275963A JP2004090290A JP2004090290A JP2005275963A JP 2005275963 A JP2005275963 A JP 2005275963A JP 2004090290 A JP2004090290 A JP 2004090290A JP 2004090290 A JP2004090290 A JP 2004090290A JP 2005275963 A JP2005275963 A JP 2005275963A
Authority
JP
Japan
Prior art keywords
description
register
bus protocol
circuit
monitor
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.)
Pending
Application number
JP2004090290A
Other languages
English (en)
Inventor
Shinpei Isoda
新平 磯田
Takehiko Tsuchiya
丈彦 土屋
Kazunari Horikawa
和成 堀川
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 JP2004090290A priority Critical patent/JP2005275963A/ja
Publication of JP2005275963A publication Critical patent/JP2005275963A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 同一のバスプロトコルを構成する制御回路に対してプロパティ記述を再利用することができ、検証時間を短縮可能なモニタ記述生成装置を提供する。
【解決手段】 バスプロトコルを構成する制御回路の回路記述を格納する回路記述記憶装置2と、バスプロトコルに規定される複数のシーケンスをそれぞれ特定するバスプロトコルプロファイルを格納するバスプロトコルプロファイル記憶装置3と、回路記述からレジスタを抽出する回路記述レジスタ抽出手段10と、レジスタのうち、複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する関係レジスタ抽出手段20と、関係レジスタを用いて、制御回路の内部状態に対応するシーケンスを示すモニタ記述を生成するモニタ記述生成手段30とを備える。
【選択図】 図1

Description

本発明は、バスプロトコルを構成する制御回路の検証手法に係り、特に、バスプロトコルを構成する制御回路を検証するためのモニタ記述を生成するモニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラムに関する。
バスプロトコルを構成する制御回路(バスインターフェース回路)としては、一般的にステートマシンが用いられる。「バスプロトコル」とは、転送の種類毎に、信号の全部又は一部の組に対して、出力されるべき信号パターン(以下、「シーケンス」という。)を規定する規約を意味する。また、「ステートマシン」は、入力条件により予め設定された複数の内部状態(ステート)を順に遷移する順序回路である。ステートマシンは、設計仕様(以下、「プロパティ」という。)を満たす限り自由に設計することができる。このため、同一のバスプロトコルで実装するステートマシンであっても複数の実現方法が存在し、ステートマシンの構造は設計者、実装方法や設計の変更により異なる場合がある。
ステートマシンに対しては、通常、プロパティを満たしているかどうかを検証するプロパティ・チェックが行われる(例えば、特許文献1参照。)。プロパティ・チェックを行うために、検証用のプロパティが記述されたプロパティ記述が用意される。例えば、「信号「REQ」が1であれば、3クロックサイクル以内に信号「GNT」が1にならなければいけない」というプロパティ記述としては、

if (REQ == 1) then (within(3, GNT == 1));

と記述される。ここで、ステートマシンに依存するプロパティ記述の場合には、同一のバスプロトコルを構成するステートマシンであっても、構造が異なるステートマシンに対して再利用することができない。このため、構造が異なるステートマシン毎にプロパティ記述を用意する必要があるので、開発工数や開発費が増加する。
これに対して、構造が異なっても同一のバスプロトコルを構成するステートマシンに対して再利用できるように、バスプロトコルにより規定された信号のみを用いたプロパティ記述の場合にはシーケンスを全て記述する必要があるので、検証に多大な時間を要する。
特開2003−196342号公報
本発明の目的は、同一のバスプロトコルを構成する制御回路に対してプロパティ記述を再利用することができ、検証時間を短縮可能なモニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラムを提供することである。
本発明の第1の特徴は、(イ)バスプロトコルを構成する制御回路の回路記述を格納する回路記述記憶装置と、(ロ)バスプロトコルに規定される複数のシーケンスをそれぞれ特定するバスプロトコルプロファイルを格納するバスプロトコルプロファイル記憶装置と、回路記述からレジスタを抽出する回路記述レジスタ抽出手段と、(ハ)レジスタのうち、複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する関係レジスタ抽出手段と、(ニ)関係レジスタを用いて、制御回路の内部状態に対応するシーケンスを示すモニタ記述を生成するモニタ記述生成手段とを備えるモニタ記述生成装置であることを要旨とする。
本発明の第2の特徴は、(イ)回路記述レジスタ抽出手段が、回路記述記憶装置に格納されたバスプロトコルを構成する制御回路の回路記述からレジスタを抽出する手順と、(ロ)関係レジスタ抽出手段が、レジスタのうち、バスプロトコルプロファイル記憶装置に格納されたバスプロトコルプロファイルにより特定される、バスプロトコルに規定される複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する手順と、(ハ)モニタ記述生成手段が、関係レジスタを用いて、制御回路の内部状態に対応するシーケンスを示すモニタ記述を生成する手順とを含むモニタ記述生成方法であることを要旨とする。
本発明の第3の特徴は、コンピュータに、(イ)回路記述記憶装置に格納されたバスプロトコルを構成する制御回路の回路記述からレジスタを抽出する手順と、(ロ)レジスタのうち、バスプロトコルプロファイル記憶装置に格納されたバスプロトコルプロファイルにより特定される、バスプロトコルに規定される複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する手順と、(ハ)関係レジスタを用いて、制御回路の内部状態に対応するシーケンスを示すモニタ記述を生成する手順とを実行させるモニタ記述生成プログラムであることを要旨とする。
本発明によれば、同一のバスプロトコルを構成する制御回路に対してプロパティ記述を再利用することができ、検証時間を短縮可能なモニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラムを提供することができる。
本発明の実施の形態に係るバスプロトコルを構成する制御回路51は、例えば図2(a)に示すように、外部回路間の入力信号「CLK」,「RST_X」,「CMD」,「DIN」,「ACK」、及び出力信号「START」,「BURST」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」の組に対してシーケンスを規定する。制御回路51の回路記述は、例えばステートマシンを用いて記述される。
ステートマシンは、例えば図2(b)に示すように、入力条件により、ステップS1における第1ステート「BUS_IDLE」、ステップS2における第2ステート「SWRITE」、ステップS3における第3ステート「SREAD」、ステップS4における第4ステート「BWRITE」、及びステップS5における第5ステート「BREAD」等のステートを順に遷移する。ステートマシンとしては、例えば図3〜図10に一連して示すように、ハードウェア記述言語(以下、「HDL」という。)を用いて、レジスタ・トランスファー・レベル(RTL)で記述される。
図3に示した記述部P111において、変数として「CLK」,「RST_X」,「CMD」,「DIN」,「ACK」,「START」,「BURST」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」が宣言されている。記述部P112のポート宣言部において、図2(a)に示した制御回路51の入力信号として「CLK」,「RST_X」,「CMD」,「DIN」,「ACK」が宣言され、出力信号として「START」,「BURST」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」が宣言されている。なお、「CLK」はクロック信号を示し、「RST_X」はリセット信号を示し、「ADDR」はアドレス信号を示し、「DOUT」はデータ信号を示す。
図4に示した記述部P113のレジスタ宣言部において、図2(a)に示したレジスタR1〜R10から出力される信号として「BURST」,「START」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」,「STATE_REG」,「BURST_COUNT」が宣言され、レジスタR1〜R10に入力される信号として「BURST_next」,「START_next」,「CEN_next」,「ADDR_next」,「RD_next」,「WR_next」,「DOUT_next」,「LAST_next」,「STATE_REG_next」,「BURST_COUNT_next」が宣言されている。「STATE_REG」,「STATE_REG_next」はそれぞれステートマシンのステートを示すレジスタR1に関する信号である。記述部P114のワイヤ宣言部において、「BURST_COUNT_INCREMENT」が「BURST_COUNT」を1インクリメントした値と宣言されている。記述部P115のパラメータ宣言部において、「BUS_IDLE」が「000」、「SWRITE」が「001」、「SREAD」が「010」「BWRITE」が「011」、「BREAD」が「100」、「nop」が「000」、「sw」が「001」、「sr」が「010」「bw」が「011」、「br」が「100」と宣言されている。
図5に示した記述部P121において、記述部P121において、クロック信号「CLK」の立ち上がり毎又はリセット信号「RST_X」の立ち下がり毎に記述部P122が実行される。記述部P122において、「RST_X」が「0」であればリセット動作が行われ、「STATE_REG」が「BUS_IDLE」となる。「BURST_COUNT」が「000」となり、「START」,「CEN」,「RD」,「WR」,「LAST」,「BURST」がそれぞれ「0」となり、「ADDR」,「DOUT」がそれぞれ「00000000」となる。一方、「RST_X」が「1」であれば、「STATE_REG」,「BURST_COUNT」,「START」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」,「BURST」にそれぞれ「STATE_REG_next」,「BURST_COUNT_next」,「START_next」,「CEN_next」,「ADDR_next」,「RD_next」,「WR_next」,「DOUT_next」,「LAST_next」,「BURST_next」が代入される。即ち、記述部P121から、図2(a)に示すように、クロック信号「CLK」に同期したレジスタR1〜R10が合成されると推測される。レジスタR1〜R10はそれぞれ、クロック信号「CLK」に同期して、「STATE_REG_next」,「BURST_COUNT_next」,「START_next」,「CEN_next」,「ADDR_next」,「RD_next」,「WR_next」,「DOUT_next」,「LAST_next」,「BURST_next」を入力し、「STATE_REG」,「BURST_COUNT」,「START」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」,「BURST」を出力する。
図6に示した記述部P131において「STATE_REG」,「CMD」,「LAST」,「ACK」,「BURST_COUNT」,「CEN」,「ADDR」,「DOUT」,「BURST」,「BURST_COUNT」_INCREMENT」のいずれかの値が変化する毎に、記述部P132から図10に示した記述部P192までの処理が実行される。図6に示した記述部P132において、「STATE_REG」が「BUS_IDLE」となる。「BURST_COUNT」が「000」となり、「BURST」,「START」,「CEN」,「RD」,「WR」,「LAST」がそれぞれ「0」となり、「ADDR」,「DOUT」がそれぞれ「00000000」となる。
図7に示した記述部P14から図10に示した記述部P191までにおいて、「STATE_REG」が変化した場合の処理が記述されている。図7に示した記述部P140において、「STATE_REG」が「BUS_IDLE」の場合の処理が記述されている。記述部P141において、「CMD」が変化した場合の処理が記述されている。
記述部P142において、「CMD」が「nop」の場合には、動作が中断される。記述部P143において、「CMD」が「sw」の場合には、「STATE_REG」が「SWRITE」となり、「LAST」,「START」,「CEN」,「WR」がそれぞれ「1」となり、「ADDR」及び「DOUT」がそれぞれ任意の値となる。図7に示した記述部P144において、「CMD」が「sr」の場合には、「STATE_REG」が「SREAD」となり、「LAST」,「START」,「CEN」,「RD」が「1」となり、「ADDR」が任意の値となる。図7に示した記述部P145において、「CMD」が「bw」の場合には、「STATE_REG」が「BWRITE」となり、「BURST」,「START」,「CEN」,「WR」がそれぞれ「1」となり、「ADDR」,「DOUT」がそれぞれ任意の値となる。図7に示した記述部P146において、「CMD」が「br」の場合には、「STATE_REG」が「BREAD」となる。「BURST」,「START」,「CEN」,「RD」がそれぞれ「1」となり、「ADDR」が任意の値となる。
図8に示した記述部P150において、「STATE_REG」が「SWRITE」の場合には、記述部P151において「RD」が「0」となり、「WR」が「1」となり、「CEN」.「ADDR」,「DOUT」がそれぞれ値を保持する。記述部P152において、「STATE_REG」が「SWRITE」で更に「ACK」が「1」であれば、「STATE_REG」が「BUS_IDLE」となり、「CEN」,「LAST」,「RD」,「WR」がそれぞれ「0」となり、「ADDR」,「DOUT」がそれぞれ「00000000」となる。一方、「STATE_REG」が「SWRITE」で更に「ACK」が「0」であれば、「STATE_REG」,「LAST」がそれぞれ値を保持する。
記述部P160において、「STATE_REG」が「SREAD」の場合には記述部P161において「CEN」,「ADDR」が値を保持し、「RD」が「1」、「WR」が「0」となる。記述部P162において「STATE_REG」が「SREAD」で更に「ACK」が1であれば、「STATE_REG」が「BUS_IDLE」となり、「CEN」,「LAST」,「RD」,「WR」がそれぞれ「0」となり、「ADDR」が「00000000」となる。一方、「STATE_REG」が「SREAD」で更に「ACK」が「0」であれば、「STATE_REG」,「LAST」がそれぞれ値を保持する。
図9に示した記述部P170において、「STATE_REG」が「BWRITE」の場合には、記述部P171において「CEN」,「LAST」,「ADDR」,「DOUT」がそれぞれ値を保持し、「RD」が「0」となり、「WR」が「1」となる。記述部P172において「STATE_REG」が「BWRITE」の場合で、「ACK」が「1」、で更に「BURST_COUNT」が「011」以上であれば、「STATE_REG」が「BUS_IDLE」となり、「BURST_COUNT」が「000」となり、「CEN」,「LAST」,「BURST」,「RD」,「WR」がそれぞれ「0」となり、「ADDR」,「DOUT」がそれぞれ「00000000」となる。一方、「STATE_REG」が「BWRITE」の場合で「ACK」が1であり更に「BURST_COUNT」が「010」以上であれば、「STATE_REG」,「LAST」がそれぞれ値を保持し、「BURST_COUNT」が1インクリメントされる。「ACK」が1であり、「BURST_COUNT」が「001」以下であれば、「STATE_REG」が値を保持し、「BURST_COUNT」が1インクリメントされる。一方、記述部P174において、「STATE_REG」が「BWRITE」の場合で「ACK」が「0」であれば、「STATE_REG」,「BURST_COUNT」がそれぞれ値を保持する。
図10に示した記述部P180において、「STATE_REG」が「BREAD」の場合には、記述部P181において「CEN」,「LAST」,「ADDR」がそれぞれ値を保持し、「RD」が「1」となり、「WR」が「0」となる。記述部P182において、「STATE_REG」が「BREAD」の場合で「ACK」が「1」であり、更に「BURST_COUNT」が「011」以上であれば、「STATE_REG」が「BUS_IDLE」となり、「BURST_COUNT」が「000」となり、「CEN」,「LAST」,「BURST」,「RD」,「WR」がそれぞれ「0」となり、「ADDR」が「00000000」となる。一方、「STATE_REG」が「BREAD」の場合で「ACK」が「1」であり、更に「BURST_COUNT」が「010」以上であれば、「STATE_REG」が値を保持し、「BURST_COUNT」が1インクリメントされ、「LAST」が「1」となる。一方、「STATE_REG」が「BREAD」の場合で「ACK」が1であり、更に「BURST_COUNT」が「001」以下であれば、「STATE_REG」が値を保持し、「BURST_COUNT」が1インクリメントされる。記述部P184において、「ACK」が「0」であれば、「STATE_REG」,「BURST_COUNT」がそれぞれ値を保持する。
また、本発明の実施の形態における「バスプロトコルプロファイル」は、バスプロトコルにより規定されるシーケンスを特定する記述である。バスプロトコルプロファイルは、例えば図11に示すように、バスプロトコルにおけるシーケンスを区切り、その区間に対して名称(以下、「シーケンス名称」という。)を付与する。図11において、コロン「:」によって区切られた列は、左から順に「時刻」、「シーケンス名称」、「ずらす値」、「信号値」を示す。
左から1列目の「時刻」の欄において、「$0」は基準となる時刻を意味する。また、「%1」は直前の時刻「$0」から相対的に1クロックサイクル後の時刻、「%2」は直前の時刻から相対的に1クロックサイクル後の時刻、「%[..1]」は直前の時刻から相対的に1クロックサイクル以上後の時刻を意味する。左から2列目の「シーケンス名称」の欄には、シーケンス名称として、アイドル「IDLE」,「SW」,「SR」,「BW」,「BW.1ack」,「BW.2ack」,「BW.3ack」,「BR」,「BR.1ack」,「BR.2ack」,「BR.3ack」,等が付与されている。「SW」,「SR」,「BW」,「BW.1ack」,「BW.2ack」,「BW.3ack」,「BR」,「BR.1ack」,「BR.2ack」,「BR.3ack」は、「startof〜」と「endof〜」とで囲まれた部分の範囲に付与される。「IDLE」は、「startof〜」と「endof〜」で囲まれない部分に付与される。例えば記述部P23に示すように、「BW」を更に細かく区分する場合には、「BW.1ack」等とドット「.」を付けて付与される。左から3列目の「ずらす値」の欄には、図11には記述がないが、シーケンス名称を1列目の時刻から相対的にずらす値が記述される。例えば、

%1 :IDLE :#1: RST_X == 1;

と記述する場合、直前の時刻から相対的に1クロックサイクル後に、「RST_X」は「1」となり、「RST_X」が「1」となる時刻の1クロックサイクル後に対して「IDLE」が付与されている。また、左から4列目の「信号値」の欄には、1列目の時刻における入出力信号、及び入出力信号の値が記述される。
記述部P21のシーケンスが実行される場合、時刻「0」において「RST_X」の値が「0」となる。時刻「1」において、シーケンス名称「IDLE」が付与されたシーケンスが実行され、「RST_X」が「1」となる。時刻「2」においてシーケンス名称「SW」が付与されたシーケンスが実行され、「START」,「CEN」,「LAST」,「WR」がそれぞれ「1」となり,「BURST」,「RD」がそれぞれ「0」となり、「ADDR」,「DOUT」はそれぞれ「8'haa」,「8'hdd」となる。「8'haa」,「8'hdd」はそれぞれ任意の値を示す。図11に示した記述部P22〜P24も、記述部P21と実質的に同様の記述方法であるので、重複した説明を省略する。
以上の説明を基礎として、以下において本発明の実施の形態を説明する。以下の図面の記載において同一或いは類似部分には同一或いは類似な符号を付している。
本発明の実施の形態に係るモニタ記述生成装置は、図1に示すように、中央処理装置(CPU)1、回路記述記憶装置2、バスプロトコルプロファイル記憶装置3、主記憶装置4、入力装置6及び出力装置7を備える。
回路記述記憶装置2は、図3〜図10に示すようなバスプロトコルを構成するステートマシンの回路記述を格納する。また、図1に示したバスプロトコルプロファイル記憶装置3は、図11に示すようなバスプロトコルプロファイルを格納する。
図1に示したCPU1は、回路記述レジスタ抽出手段10、関係レジスタ抽出手段20及びモニタ記述生成手段30を備える。回路記述レジスタ抽出手段10は、回路記述記憶装置2に格納された回路記述を参照して全てのレジスタを抽出する。回路記述レジスタ抽出手段10は、例えば図5に示した記述部P122を参照して、信号「STATE_REG」,「BURST_COUNT」,「START」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」,「BURST」の値を保持する図2(a)に示したレジスタR1〜R10を抽出する。
図1に示した関係レジスタ抽出手段20は、回路記述レジスタ抽出手段10により抽出された全てのレジスタのうち、バスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルにより特定される、バスプロトコルに規定されるシーケンスに関係するレジスタ(以下、「関係レジスタ」という。)を抽出する。関係レジスタ抽出手段20は、図12に示すように、リセット値抽出部21、レジスタ値抽出部22、バックトレース部23及び関係レジスタ抽出部24を備える。
リセット値抽出部21は、図1に示した回路記述記憶装置2に格納された回路記述を参照して、回路記述レジスタ抽出手段10により抽出された全てのレジスタがリセット動作時に保持する値を抽出する。リセット値抽出部21は、例えば図5に示した記述部P123を参照してリセット動作時にレジスタR1〜R10が保持する「STATE_REG」,「BURST_COUNT」,「START」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」,「BURST」の値「000」,「0」,「0」,「00000000」,「0」,「0」,「00000000」,「0」,「0」を抽出する。
図12に示したレジスタ値抽出部22は、図1に示したバスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルにより特定されるシーケンスを実行してシミュレーション(値伝搬シミュレーション)を行う。ここで、レジスタ値抽出部22は、バスプロトコルプロファイルに記述された入力信号の値は印加して、バスプロトコルプロファイルに記述された出力信号の値を取る場合に関係するレジスタR1〜R10が保持する信号の値を抽出する。
レジスタ値抽出部22は、例えば図11に示したバスプロトコルプロファイルの記述部P23の「BW」が付与されたシーケンスを実行して、値伝搬シミュレーションを行う。図15に示すように、時刻T01〜T21において「BW」、時刻T21〜T31において「BW」内の分類の「BW.1ack」、時刻T31〜T41において「BW」、時刻T41〜T51において「BW」内の分類の「BW.2ack」、時刻T51〜T61において「BW」、時刻T61〜T71において「BW」内の分類の「BW.3ack」、時刻T71〜T81において「BW」がそれぞれ付与されたシーケンスが実行される。図11に示したバスプロトコルプロファイルの他のシーケンス名称「IDLE」「SW」,「SR」,「BW」,「BR」が付与されたシーケンスに対しても同様に値伝搬シミュレーションを行う。ここで、図16に示すように、レジスタR1〜R10が保持する「ADDR」,「DOUT」,「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」の値を抽出する。図16において、シーケンス名称「IDLE」,「SW」,「SR」,「BW」,「BR」と、レジスタR1〜R10が保持する「ADDR」,「DOUT」,「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」の値がそれぞれ対応付けて記述されている。
図12に示したバックトレース部23は、図1に示したバスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルに記述された出力信号に関係する、回路記述記憶装置2に格納された回路記述に格納されたレジスタと異なる他のレジスタの値を決定する。バックトレース部23は、図13に示すように、出力信号抽出部231、関係信号抽出部232、信号分類部233、信号値候補抽出部234及び信号値決定部235を備える。
出力信号抽出部231は、図12に示したレジスタ値抽出部22による値伝播シミュレーション中に出力信号が記述された箇所に達したとき、複数の出力信号のうち任意に1つの出力信号を抽出する。出力信号抽出部231は例えば、図11に示したバスプロトコルプロファイルの記述部P23の「BW」の実行部分の「$2」の行に達したとき、「START」,「CEN 」,「LAST」,「BURST」,「RD」,「WR」,「ADDR」,「DOUT」のうち、「CEN」を抽出する。
図13に示した関係信号抽出部232は、図1に示した回路記述記憶装置2に格納された回路記述を参照して、図13に示した出力信号抽出部231により抽出された出力信号に関係する信号(以下、「関係信号」という。)を抽出する。ここで、関係信号は、出力信号が駆動されている行が実行される場合の条件式の分岐に際して値が評価される信号、及び出力信号の駆動に関連する信号を含む。「条件式の分岐に際して値が評価される信号」とは、if文やcase文等の条件式の括弧の中に記述されている信号を意味する。一方、「出力信号の駆動に関連する信号」とは、出力信号への代入部分で、右辺に記述されている信号を意味する。
例えば、「CEN」の関係信号として、図5に示した記述部P121のif文の括弧の中に記述されている「RST_X」、「CEN」への代入部分で右辺に記述されている「CEN」、図6に示した記述部P131の括弧中に記述されている「ADDR」,「DOUT」図7に示した記述部P14のif文の括弧の中に記述されている「STATE_REG」、記述部P142のcase文の括弧の中に記述されている「CMD」、図8に示した記述部P152のif文の括弧の中に記述されている「ACK」、図9に示した記述部P172のif文の括弧の中に記述されている「BURST_COUNT」がそれぞれ抽出される。
図13に示した信号分類部233は、関係信号抽出部232により抽出された関係信号を、既定値の関係信号(既定値信号)と、未定値の関係信号(未定値信号)とに分類し、未定値信号を抽出する。信号分類部233は、例えば図11に示したバスプロトコルプロファイルの記述部P23を参照して、既定値信号「STATE_REG」,「BURST_COUNT」,「ACK」.「RST_X」,「CEN」と、未定値信号「CMD」,「ADDR」,「DOUT」とに分類し、「CMD」,「ADDR」,「DOUT」を抽出する。信号分類部233は更に、未定値信号のうち、例えばアドレス信号及びデータ信号等の任意の値に連なることが明示された未定値信号を分類して除外する。信号分類部233は、例えば「CMD」,「ADDR」,「DOUT」のうち、「ADDR」,「DOUT」を分類して除外する。
信号値候補抽出部234は、バスプロトコルプロファイルに記述された出力信号がバスプロトコルプロファイルに記述された通りの値となる場合に、信号分類部233により分類された未定値信号が取りうる値の候補を全て抽出する。例えば、図11に示した記述部P23の出力信号である「START」,「CEN」,「LAST」,「BURST」,「RD」,「WR」がそれぞれ「1」,「1」,「0」,「1」,「0」,「1」を出力するような「CMD」の値の候補を抽出する。
例えば、「CMD」が記述部P141の「sw」、記述部P142「sr」、記述部P143の「bw」、記述部P144の「br」の場合に、「CEN」がバスプロトコルに規定される「1」となるので、「sw」,「sr」,「bw」,「br」のパラメータの値である「001」「010」,「011」,「100」が、「CEN」が「1」の場合の「CMD」の値の候補として抽出される。同様に、「START」が「1」の場合の候補として「001」,「011」,「011」,「100」が抽出され、「CEN」が「1」の場合の候補として「001」,「010」,「011」,「100」が抽出され、「BURST」が「1」の場合の候補として「011」,「011」,「100」が抽出され、「RD」が「0」の場合の候補として「001」,「011」が抽出され、「WR」が「1」の場合の候補として「001」,「011」が抽出される。なお、「LAST」が「0」の場合は「CMD」は任意の値をとるので、候補は抽出されない。
図14に示した信号値決定部235は、信号値候補抽出部234により抽出されたの未定値信号の候補の論理積を演算し、未定値信号の値を決定する。例えば、信号値決定部235は、「CMD」の値の候補である「001」,「010」,「011」,「100」の論理積を取り、「011」に決定する。この結果、バスプロトコルプロファイルに記述された出力信号に関係する図2(a)に示した制御回路51の内部のレジスタR11の値も抽出することができる。一方、図11に示したバスプロトコルプロファイルに記述された信号値等の情報が少なすぎる場合等には、論理積を演算しても値が1つに決定されない。信号値決定部235は、論理積を演算しても値が1つに決定されない場合、警告を発し、図1に示した出力装置7等に警告を出力させる。
図12に示した関係レジスタ抽出部24は、図1に示した回路記述レジスタ抽出手段10により抽出された全てのレジスタのうち、図2に示したレジスタ値抽出部22により抽出された値が、リセット値抽出部21により抽出されたリセット動作時の値のまま不変のレジスタを除外して、関係レジスタの組(コントロールレジスタセット)をそれぞれ抽出する。リセット動作時の値のまま値が不変のレジスタから出力される信号は、アドレス信号やデータ信号或いはアドレス信号やデータ信号の一部等の、ステートマシンの制御には直接影響を及ぼさない信号であると考えられる。
例えば、図16に示した記述部P30及び記述部P31における「IDLE」,「SW」,「SR」,「BW」,「BR」における「ADDR」,「DOUT」を出力するレジスタR6,R9が除外される。更に「SW」においては、記述部P32の「BURST_COUNT」、記述部P33の「BURST」、及び記述部P34の「RD」を出力するレジスタR2,R4,R7が除外される。また、「SR」においては、記述部P35の「BURST_COUNT」、記述部P36の「BURST」、記述部P37の「RD」を出力するレジスタR2,R4,R7が除外される。「BW」においては、記述部P38の「RD」を出力するレジスタR7が除外され、「BR」においては、記述部P39の「WR」を出力するレジスタR8が除外される。
この結果、「IDLE」において、「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」をそれぞれ出力するレジスタR1,R2,R5,R3,R10,R4,R7,R8が関係レジスタの組として抽出される。また、「SW」において、「STATE_REG」,「CEN」,「START」,「LAST」,「WR」をそれぞれ出力するレジスタR1,R5,R3,R10,R8が関係レジスタの組として抽出される。また、「SR」において、「STATE_REG」,「CEN」,「START」,「LAST」,「RD」をそれぞれ出力するレジスタR1,R5,R3,R10,R7が関係レジスタの組として抽出される。また、「BW」において、「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「WR」をそれぞれ出力するレジスタR1,R2,R5,R3,R10,R4,R8が関係レジスタの組として抽出される。また、「BR」において、「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」をそれぞれ出力するレジスタR1,R2,R5,R3,R10,R4,R7が関係レジスタの組として抽出される。
図12に示した関係レジスタ抽出部24は更に、例えば図17に示すように、シーケンス名称毎に、関係レジスタの組、及び関係レジスタの値を対応付ける。記述部P141のシーケンス名称「IDLE」において、関係レジスタR1,R2,R5,R3,R10,R4,R7,R8から出力される「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」と、「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」の値「000」,「000」,「0」,「0」,「0」,「0」,「0」,「0」を対応付けている。記述部P42,P43,P44,P45の「SW」,「SR」,「BW」,「BR」においても同様に、関係レジスタ及び関係レジスタの値をそれぞれ対応付けているので、重複した説明を省略する。
図1に示したモニタ記述生成手段30は、関係レジスタ抽出手段20により抽出された関係レジスタを用いてモニタ記述を生成する。「モニタ記述」とは、図1に示した回路記述記憶装置2に格納された回路記述から構成される制御回路の内部状態に対応するシーケンスを示す記述である。モニタ記述生成手段30は、図14に示すように、インスタンス記述生成部31、名称変更部32、組み合わせ回路記述生成部33及びモニタ記述生成部34を備える。
インスタンス記述生成部31は、図1に示した回路記述記憶装置2に格納された回路記述、及びバスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルを読み込んで、図18に示すようなインスタンス記述を生成する。回路記述P51において、回路記述に記述された入力信号「CLK」,「RST_X」,「DIN」,「ACK」及び出力信号「START」,「BURST」,「CEN」,「ADDR」,「RD」,「WR」,「DOUT」,「LAST」が記述されている。回路記述P52において、シーケンス名称の数に対応するビットを追加した新たな出力信号「IDLE」,「SW」,「SR」,「BW」,「BR」が記述されている。なお、新たな出力信号の名称は、シーケンス名称と重複しなければ任意に決定して良い。記述部P53において、検証したい回路記述のインスタンスが記述されている。初めの「BUSMASTER_TEST_MODULE」はモジュール名を示し、次の「BUSMASTER_TEST_MODULE」はインスタンス名を示す。ピリオド「.」に続く「CLK」等の信号名がインスタンスされる側の信号名を意味する。また、インスタンスされる側の信号名に続く「(CLK)」等の括弧内の信号名が、インスタンスする側の信号名を意味する。
図14に示した名称変更部32は、インスタンス記述生成部31により生成されたインスタンス記述の新たな出力信号の名称とシーケンス名称とが重複しているか否か判定する。判定した結果、名称が重複している場合には重複を回避するために新たな出力信号の名称を変更する。名称変更部32は、例えば、図18に示した新たな出力信号の名称「IDLE」,「SW」,「SR」,「BW」,「BR」が、図11に示したシーケンス名称である「IDLE」,「SW」,「SR」,「BW」,「BR」と重複している場合に、新たな出力信号の名称の接尾辞としてアンダースコア「_」と数字を付加し、「IDLE_0001」,「SW_0001」,「SR_0001」,「BW_0001」,「BR_0001」等と変更する。
図14に示した組み合わせ回路記述生成部33は、図12に示した関係レジスタ抽出手段20により抽出された関係レジスタを用いて、図20〜図23に一連して示すような組み合わせ回路記述を生成する。「組み合わせ回路記述」とは、図14に示したインスタンス記述生成部31により生成されたインスタンス記述で付加された新たな出力信号に対して、図4〜図10に示した回路記述から構成されるステートマシン内の関係レジスタから出力される値R1〜R5,R7〜R10を取り出して、シーケンスを表す信号を出力する組み合わせ回路の記述である。
例えば図19の記述部P61において、図23に示した関係レジスタR1,R2,R5,R3,R10,R4,R7,R8からそれぞれ出力される「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」の値が「000」,「000」,「0」,「0」,「0」,「0」,「0」,「0」の場合には、組み合わせ回路が新たな出力信号「IDLE」に「1」を出力するとが記述されている。また、記述部P62において、関係レジスタR1,R5,R3,R10,R7からそれぞれ出力される「STATE_REG」,「CEN」,「START」,「LAST」,「RD」の値が「001」,「1」,「1」,「1」,「1」、又は「001」,「1」,「0」,「1」,「1」の場合には、組み合わせ回路52が新たな出力信号「SW」に「1」を出力することが記述されている。
また、図20の記述部P63において、関係レジスタR1,R5,R3,R10,R7から出力される「STATE_REG」,「CEN」,「START」,「LAST」,「RD」の値が「001」,「1」,「1」,「1」,「1」、又は「001」,「1」,「0」,「1」,「1」の場合には、組み合わせ回路52は新たな出力信号「SR」に「1」を出力することにより、ステートマシンのステートに対応するシーケンス名称が「SR」であることが示される。また、図21に示した記述部P64、及び図22の記述部P65においても同様に、関係レジスタの値に基づいて、組み合わせ回路52は新たな出力信号「BW」及び「BR」に「1」をそれぞれ出力することが記述されている。
なお、記述部P64の「BW」内、及び記述部P65の「BR」内の分類は、ドット「.」の代わりにアンダースコア「_」及び文字列「tsb」等を用いて、「BW_tsb_1ack」,「BW_tsb_2ack」,「BW_tsb_3ack」及び「BR_tsb_1ack」,「BR_tsb_2ack」,「BR_tsb_3ack」等と表すことができる。
図14に示したモニタ記述生成部34は、インスタンス記述生成部31により生成されたインスタンス記述、及び組み合わせ回路記述生成部33により生成された組み合わせ回路記述をあわせて、モニタ記述として生成する。
モニタ記述から、例えば図23に示すようなモニタ50が構成される。モニタ50は、図19に示したインスタンス記述により回路記述がインスタンスされた制御回路51、及び図20〜図23に示したインスタンス記述により構成される組み合わせ回路52を含むラッパーである。組み合わせ回路52は、制御回路51中の全てのレジスタR1〜R10のうち、関係レジスタR1〜R5,R7,R8,R10の信号「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」に基づいて、制御回路51のステートに対応するシーケンスを示す信号を出力する。
例えば図19の記述部P61によれば、図23に示した関係レジスタR1,R2,R5,R3,R10,R4,R7,R8からそれぞれ出力される「STATE_REG」,「BURST_COUNT」,「CEN」,「START」,「LAST」,「BURST」,「RD」,「WR」の値が「000」,「000」,「0」,「0」,「0」,「0」,「0」,「0」の場合には、組み合わせ回路52が新たな出力信号「IDLE」に「1」を出力することにより、制御回路51のステートに対応するシーケンス名称が「IDLE」であることが示される。
また、時19の記述部P62よれば、図23に示した関係レジスタR1,R5,R3,R10,R7からそれぞれ出力される「STATE_REG」,「CEN」,「START」,「LAST」,「RD」の値が「001」,「1」,「1」,「1」,「1」、又は「001」,「1」,「0」,「1」,「1」の場合には、組み合わせ回路52が新たな出力信号「SW」に「1」を出力することにより、制御回路51のステートに対応するシーケンス名称が「SW」であることが示される。
また、図20の記述部P63よれば、図23に示した関係レジスタR1,R5,R3,R10,R7から出力される「STATE_REG」,「CEN」,「START」,「LAST」,「RD」の値が「001」,「1」,「1」,「1」,「1」、又は「001」,「1」,「0」,「1」,「1」の場合には、組み合わせ回路52は新たな出力信号「SR」に「1」を出力することにより、制御回路51のステートに対応するシーケンス名称が「SR」であることが示される。
同様に、図21に示した記述部P64、及び図22の記述部P65によれば、関係レジスタの値に基づいて、組み合わせ回路52は新たな出力信号「BW」及び「BR」に「1」をそれぞれ出力することにより、制御回路51のステートに対応するシーケンス名称がそれぞれ、「BW」及び「BR」であることが示される。
なお、「BW_tsb_1ack」,「BW_tsb_2ack」,「BW_tsb_3ack」及び「BR_tsb_1ack」,「BR_tsb_2ack」,「BR_tsb_3ack」に対応する新たな信号は図18に示したインスタンス記述において付加していないが、「BW_tsb_1ack」,「BW_tsb_2ack」,「BW_tsb_3ack」及び「BR_tsb_1ack」,「BR_tsb_2ack」,「BR_tsb_3ack」に対応する新たな信号も付加すれば、ステートマシンのステートに対応するシーケンス名称が、バーストライト内の分類「BW_tsb_1ack」,「BW_tsb_2ack」又は「BW_tsb_3ack」や、バーストリード中の分類「BR_tsb_1ack」,「BR_tsb_2ack」又は「BR_tsb_3ack」であることが分かる。
図1に示した入力装置6としては、例えばキーボード、マウス、OCR等の認識装置、イメージスキャナ等の図形入力装置、音声入力装置等の特殊入力装置が使用可能である。出力装置7は、図1に示した回路記述記憶装置2に格納された図4〜図10に示したような回路記述、図1に示したバスプロトコルプロファイル記憶装置3に格納された図11に示したようなバスプロトコルプロファイル、図1に示したモニタ記述生成手段30により生成された図23に示したようなモニタ等を出力可能である。出力装置7としては、液晶ディスプレイ、CRTディスプレイ等の表示装置や、インクジェットプリンタ、レーザプリンタ等の印刷装置等を用いることができる。
主記憶装置4には、ROM及びRAMが組み込まれている。ROMは、CPU1において実行されるプログラム(モニタ記述生成プログラム)を格納しているプログラム記憶装置等として機能する(プログラムの詳細は後述する。)。RAMは、CPU1におけるプログラム実行処理中に利用されるデータ等を一時的に格納したり、作業領域として利用される一時的なデータメモリ等として機能する。主記憶装置4としては、例えば半導体メモリ、磁気ディスク、光ディスク、光磁気ディスクや磁気テープ等が採用可能である。
また、図1に示したモニタ記述生成装置は、入力装置6、出力装置7等をCPU1につなぐ図示を省略した入出力制御装置(インターフェース)を備える。また、CPU1は、図示を省略した記憶装置管理手段を備える。回路記述記憶装置2及びバスプロトコルプロファイル記憶装置3との入出力が必要な場合は、記憶装置管理手段を介して、必要なファイルの格納場所を探し、ファイルの読み出し・書き込み処理がなされる。
以下、本発明の実施の形態に係るモニタ記述生成方法を図24及び図25のフローチャートを参照しながら説明する。なお、各手順における図1のCPU1の処理結果は主記憶装置4に逐次格納される。
(イ)図24のステップS10において、図1に示した回路記述レジスタ抽出手段10は、回路記述記憶装置2に格納された回路記述からレジスタを全て抽出する。なお、回路記述は、回路記述記憶装置2に予め格納されていても良く、或いは入力装置6を介して入力・格納されても良い。
(ロ)ステップS21において、図12に示したリセット値抽出部21は、図1に示した回路記述レジスタ抽出手段10により抽出されたレジスタに対して、リセット動作時の全てのレジスタの値を抽出する。ステップS22において、図12に示したレジスタ値抽出部22は、図1に示したバスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルにより特定されるシーケンスを実行して値伝播シミュレーションを行い、シーケンスに関係する全てのレジスタの値を抽出する。ステップS23において、レジスタ値抽出部22による値伝播シミュレーション中に、バスプロトコルプロファイルの出力信号が記述された箇所に達すると、ステップS24に進む。一方、バスプロトコルプロファイルに出力信号が記述された箇所がなければ、ステップS25に進む。
(ハ)ステップS241において、図13に示した出力信号抽出部231は、ステップS23で達したバスプロトコルプロファイルに記述された複数の出力信号のうち、1つの出力信号を抽出する。ステップS242において、図13に示した関係信号抽出部232は、図1に示した回路記述記憶装置2に格納された回路記述を参照して、ステップS241において抽出された出力信号に関係する関係信号を全て抽出する。
(ニ)ステップS243において、図13に示した信号分類部233は、ステップS242で抽出された関係信号を、既定値信号と未定値信号とに分類し、未定値信号を抽出する。更に、信号分類部233は、分類した未定値信号から、アドレス信号及びデータ信号等の任意の値を出力する未定値信号を分類し、除外する。
(ホ)ステップS244において、信号値候補抽出部234は、ステップS243で分類された未定値信号に対して、バスプロトコルプロファイルに記述された出力信号がバスプロトコルプロファイルに記述された通りの値となる場合の、全ての値の候補を抽出する。ステップS245において、バスプロトコルプロファイルの全ての出力信号に対して未定値信号の値の候補がそれぞれ抽出された場合、ステップS246に進む。一方、未抽出の出力信号がある場合には、ステップS241〜S244の手順を未抽出の出力信号に対して同様に繰り返す。
(ヘ)ステップS246において、信号値決定部235は、未定値信号の値の候補の論理積を取り、値を決定する。1通りの値が決定された場合、ステップS22の手順における値伝播シミュレーションを再開し、ステップS246で決定した値に関係するレジスタの値も抽出する。一方、ステップS246において、信号の値が1通りに定まらない場合は、ステップS247において警告を発する。警告を受けて、設計・検証者や仕様により問題がないと判断された場合は、ステップS22の手順に戻り、その複数の候補にそれぞれ関係するレジスタの値をそれぞれ抽出する。
(ト)ステップS25において、注目しているシーケンスの値伝播シミュレーションが終了したらステップS26に進み、注目しているシーケンスの途中であればステップS22に戻る。ステップS26において、バスプロトコルプロファイルに記述された全てのシーケンスが実行された場合にはステップS27に進み、実行されていないシーケンスがある場合にはステップS22の手順に戻り、実行されていない他のシーケンスに対して値伝搬シミュレーションが行われる。
(チ)ステップS27において、図12に示した関係レジスタ抽出部24は、ステップS10において抽出された全てのレジスタのうち、ステップS21において抽出されたリセット動作時の値から、ステップS22において抽出された値が不変のレジスタを除外し、関係レジスタを抽出する。
(リ)図25のステップS31において、図14に示したインスタンス記述生成部31は、図1に示した回路記述記憶装置2に格納された回路記述、及びバスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルを読み込んで、インスタンス記述を生成する。
(ヌ)ステップS32において、図14に示した名称変更部32は、ステップS31で生成されたインスタンス記述に記述された出力信号の名称とシーケンス名称とを比較して、出力信号の名称とシーケンス名称とが衝突しているか否か判断する。出力信号の名称とシーケンス名称とが衝突していなければステップS34に進む。一方、出力信号の名称とシーケンス名称が衝突している場合、ステップS33に進み、出力信号の名称を変更する。そして、ステップS32の手順に戻り、出力信号の変更された名称とシーケンス名称を比較する。
(ル)ステップS34において、図14に示した組み合わせ回路記述生成部33は、ステップS27で抽出された関係レジスタを用いて、ステップS31で生成されたインスタンス記述に基づいて、組み合わせ回路を生成する。ステップS35において、図14に示したモニタ記述生成部34は、ステップS32で生成されたインスタンス記述、及びステップS35で生成された組み合わせ回路記述をあわせて、モニタ記述として出力する。
実施の形態に係るモニタ記述生成装置及びモニタ記述生成方法により生成されたモニタ記述を用いることにより、ステートマシンのステートを参照することなく、モニタの入出力信号と新たな出力信号のみを参照するだけでステートマシンのステートに対応するシーケンスを示すことができる。即ち、ステートマシンの内部状態を、実装方法等に依存せずに、バスプロトコルのみに依存する情報に変換することができる。したがって、ステートマシンの設計から独立させてプロパティを記述することができる。したがって、例えば、「バーストライト(BW)中、3回目の「ACK」がアサートされたら、次のクロックサイクルで「LAST」をアサートしなくてはならない」というプロパティの場合、

if ( BW_tsb_3ack == 1’b1) then ( next( LAST == 1’b1 ) );

のように記述することができる。よって、一旦開発したプロパティ記述を、構造が異なるが同一のバスプロトコルを構成する制御回路に対して再利用することができる。したがって、制御回路を検証する際の時間短縮・検証効率の向上を図ることができ、回路記述とプロパティ記述の同時開発も可能となる。更に、プロパティに「CLK」,「RST_X」,「CMD」,「DIN」,「ACK」等の入力信号を記述しなくて良いので、入力信号を記述した場合に比べて、プロパティ・チェッカにおける処理時間を短縮可能となる。
また、ステップS10の手順において、図1に示した回路記述レジスタ抽出手段10により論理合成を行わずにレジスタR1〜R10を抽出するので、特に論理合成に時間を要する回路記述の場合に全てのレジスタの抽出に要する時間を短縮し、検証の効率化を図ることができる。
また、図1に示した関係レジスタ抽出手段20により、値伝播シミュレーションとバックトレースを組み合わせることにより、値伝播シミュレーションのみでは決定できない、回路記述に記述されていないレジスタR11であってバスプロトコルプロファイルに記述された出力信号に関係するレジスタR11の値を抽出可能となる。したがって、シーケンス中のレジスタの値の組み合わせの数を減らすことができ、検証時間の短縮を図ることができる。
また、図3に示した信号値決定部235が、図25のステップS237において1通りに組み合わせが決定しないときに警告を発することにより、バスプロトコルプロファイルの記述に対して必要な情報の欠落している可能性を指摘することで、検証効率を向上させることができる。
なお、図3に示した出力信号抽出部231及び関係信号抽出部232により、出力信号及び関係信号をそれぞれ予め抽出して、図1に示した回路記述記憶装置2等に予め格納しても良い。バスプロトコルプロファイルに記述された出力信号及び関係信号を予め抽出・格納しておけば、バックトレースの際の処理時間を短縮することができ、検証時間の短縮、効率化を図ることができる。
図24及び図25に示した:(イ)ステップS10における回路記述レジスタ抽出手段10が、回路記述記憶装置により格納されたバスプロトコルを構成する制御回路の回路記述からレジスタを抽出する手順;(ロ)ステップS20における関係レジスタ抽出手段が20、レジスタのうち、バスプロトコルプロファイル記憶装置により格納されたバスプロトコルプロファイルにより特定される、バスプロトコルに規定される複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する手順;(ハ)モニタ記述生成手段30が、関係レジスタを用いて、制御回路の内部状態に対応するシーケンスを示すモニタ記述を生成する手順;等の一連の手順は、図24及び図25と等価なアルゴリズムのプログラム(モニタ記述生成プログラム)により、図1に示したモニタ記述生成装置を制御して実行できる。このプログラムは、図1に示したモニタ記述生成装置を構成するコンピュータシステムの主記憶装置4等に記憶させれば良い。
また、このプログラムは、コンピュータ読取り可能な記録媒体に保存し、この記録媒体を情報処理装置のプログラム記憶装置に読み込ませることにより、本発明の一連の手順を実行することができる。ここで、「コンピュータ読取り可能な記録媒体」とは、例えばコンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープ等のプログラムを記録することができるような媒体等を意味する。具体的には、フレキシブルディスク、CD−ROM,MOディスク、カセットテープ、オープンリールテープ等が「コンピュータ読取り可能な記録媒体」に含まれる。例えば、情報処理装置の本体は、フレキシブルディスク装置(フレキシブルディスク駆動)及び光ディスク装置(光ディスク駆動)を内蔵若しくは外部接続するように構成できる。フレキシブルディスク駆動に対してはフレキシブルディスクを、また光ディスク駆動に対してはCD−ROMをその挿入口から挿入し、所定の読み出し操作を行うことにより、これらの記録媒体に格納されたプログラムを情報処理装置を構成するプログラム記憶装置にインストールすることができる。また、所定の駆動装置を接続することにより、例えばゲームパック等に利用されているメモリ装置としてのROMや、磁気テープ装置としてのカセットテープを用いることもできる。更に、インターネット等の情報処理ネットワークを介して、このプログラムをプログラム記憶装置に格納することが可能である。
(変形例)
本発明の実施の形態の変形例に係るモニタ記述生成装置は、図1に示したモニタ記述生成手段30の代わりに、図26に示すような仮想信号名称決定部31x、名称変更部32、及び仮想信号定義部33xを備えるモニタ記述生成手段30xを備える点が異なる。
仮想信号名称決定部31xは、図1に示した回路記述記憶装置2に格納された回路記述、及びバスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルを読み込んで、図28及び図29に示すように、プロパティ・チェッカ内で用いる仮想信号の名称を決定する。図28の記述部P71において「IDLE」、記述部P72において「SW」、記述部P73において「SR」、図29に示した記述部P74において「BW」、記述部P75において「BR」が仮想信号の名称として記述されている。バスプロトコルプロファイルにおいて、シーケンス「BW」,「BR」内の分類は、図29に示すようにドット「.」の代わりにアンダースコア「_」と文字列「tsb」を用いてそれぞれ、「BW_tsb_1ack」,「BW_tsb_2ack」,「BW_tsb_3ack」,「BR_tsb_1ack」,「BR_tsb_2ack」,「BR_tsb_3ack」等と記述される。
図26に示した名称変更部32は、仮想信号名称決定部31xにより決定された仮想信号の名称とシーケンス名称とが衝突しているか否か判定する。衝突していると判定された場合、仮想信号の名称が変更される。
仮想信号定義部33xは、シーケンス名称の数に対応する数のビットを有するプロパティ・チェッカ内部の信号(仮想信号)を定義する。仮想信号の定義は利用するプロパティ・チェッカにより異なる。この場合、プロパティ・チェッカ内部のみで用いる仮想信号を定義し、その仮想信号に対して、図23に示した組み合わせ回路52と同様な組み合わせ回路を持つようにその仮想信号を定義すれば良い。プロパティ・チェッカ内部のみで用いられる仮想信号を定義した記述を「モニタ記述」として生成する。図26に示したモニタ記述生成手段30xの他の構成は、図1に示したモニタ記述生成装置と実質的に同様であるので、重複した説明を省略する。
本発明の実施の形態の変形例に係るモニタ記述生成方法は、図24のステップS10〜S27の手順までは実質的に同様であるので、重複した説明を省略する。
(イ)図27のステップS41において、図26に示した仮想信号名称決定部31xは、図1に示したバスプロトコルプロファイル記憶装置3に格納されたバスプロトコルプロファイルを読み込んで、バスプロトコルプロファイルに記述されたシーケンス名称の数に対応する数のプロパティ・チェッカ内部の仮想信号を定義する。
(ロ)ステップS42において、図26に示した名称変更部32は、ステップS41において決定された仮想信号の名称とシーケンス名称とが衝突しているか否か判定する。衝突していなければ、ステップS44に進む。一方、衝突している場合には、ステップS43に進み、仮想信号の名称を変更して、ステップS42の手順に戻る。
(ハ)ステップS44において、図26に示した仮想信号定義部33xは、ステップS42で生成された関係するレジスタに基づいて、プロパティ・チェック内で用いる仮想信号定義(モニタ記述)を生成する。生成されたモニタ記述は、ファイル、アプリケーション・プログラミング・インターフェース(API)、又はその他の方法で、プロパティ・チェッカに引き渡される。
以上説明したように、本発明の実施の形態の変形例によれば、最終的にプロパティ・チェッカを用いて検証することを考慮して、HDLを用いたモニタの他に、プロパティ・チェッカ内部で独自に定義する仮想信号を用いてモニタとして利用することもできる。仮想信号を用いたモニタ記述を生成する場合でも、プロパティ・チェッカで検証した場合と同様に、内部状態を参照することなく、入出力信号とシーケンス名称に対応して付加されたプロパティ・チェッカ内部の仮想信号のみを参照するだけで記述することが可能となる。したがって、プロパティの再利用性が高まり、入力信号を最初から記述していないため、最初から記述した場合に比べて、プロパティ・チェッカで処理する時間を短くすることが可能となる。
更に、プロパティ・チェッカを用いて検証する際、バスプロトコルプロファイルに対応したシーケンス名称の仮想信号を自動でプロパティ・チェッカに引き渡すことで、省力化を図ることができる。
(その他の実施の形態)
本発明は、第の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。例えば、図11にバスプロトコルプロファイルの一例を示したが、バスプロトコルプロファイルとしては、バスプロトコルに沿って入出力信号の値を変化させるときに、入出力信号の値の組み合わせ(時間的な組み合わせを含む)に対して一意に定まる名称を特定することができる記述であれば良い。
また、図1に示したモニタ記述生成装置において、回路記述レジスタ抽出手段10が、論理合成ツールであっても良い。即ち、回路記述レジスタ抽出手段10が、回路記述に基づいて実際に論理合成し、論理合成された制御回路から全てのレジスタを抽出することもできる。このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論であり、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
本発明の実施の形態に係るモニタ記述生成装置を示すブロック図である。 本発明の実施の形態に係る回路記述に記述されたステートマシンの状態遷移図である。 本発明の実施の形態に係る回路記述の一例を示す記述(その1)である。 本発明の実施の形態に係る回路記述の一例を示す記述(その2)である。 本発明の実施の形態に係る回路記述の一例を示す記述(その3)である。 本発明の実施の形態に係る回路記述の一例を示す記述(その4)である。 本発明の実施の形態に係る回路記述の一例を示す記述(その5)である。 本発明の実施の形態に係る回路記述の一例を示す記述(その6)である。 本発明の実施の形態に係る回路記述の一例を示す記述(その7)である。 本発明の実施の形態に係る回路記述の一例を示す記述(その8)である。 本発明の実施の形態に係るバスプロコトルプロファイルを示す記述である。 本発明の実施の形態に係る関係レジスタ抽出手段を示すブロック図である。 本発明の実施の形態に係るバックトレース部を示すブロック図である。 本発明の実施の形態に係るモニタ記述生成手段を示すブロック図である。 本発明の実施の形態に係る値伝播シミュレーションを説明するためのタイミングチャートである。 本発明の実施の形態に係る全てのレジスタとシーケンス名称の対応を示す記述である。 本発明の実施の形態に係る関係レジスタとシーケンス名称の対応を示す記述である。 本発明の実施の形態に係るモニタの回路図である。 本発明の実施の形態に係るインスタンス記述である。 本発明の実施の形態に係る組み合わせ回路記述(その1)である。 本発明の実施の形態に係る組み合わせ回路記述(その2)である。 本発明の実施の形態に係る組み合わせ回路記述(その3)である。 本発明の実施の形態に係る組み合わせ回路記述(その4)である。 本発明の実施の形態に係るモニタ記述生成方法を説明するためのフローチャート(その1)である。 本発明の実施の形態に係るモニタ記述生成方法を説明するためのフローチャート(その2)である。 本発明の実施の形態の変形例に係るモニタ記述生成手段を示すブロック図である。 本発明の実施の形態の変形例に係るモニタ記述生成方法を説明するためのフローチャートである。 本発明の実施の形態に係る仮想信号を用いたモニタ記述(その1)である。 本発明の実施の形態に係る仮想信号を用いたモニタ記述(その2)である。
符号の説明
1…中央処理装置(CPU)
2…回路記述記憶装置
3…バスプロトコルプロファイル記憶装置
4…主記憶装置
5…プログラム記憶装置
6…入力装置
7…出力装置
10…回路記述レジスタ抽出手段
20…関係レジスタ抽出手段
21…リセット値抽出部
22…レジスタ値抽出部
23…バックトレース部
231…出力信号抽出部
232…関係信号抽出部
233…信号分類部
234…信号値候補抽出部
235…信号値決定部
24…関係レジスタ抽出部
30…モニタ記述生成手段
30x…モニタ記述生成手段
31…インスタンス記述生成部
31x…仮想信号名称決定部
32…名称変更部
33…回路記述生成部
33x…仮想信号定義部
34…組み合わせ回路記述生成部
35…モニタ記述生成部

Claims (5)

  1. バスプロトコルを構成する制御回路の回路記述を格納する回路記述記憶装置と、
    前記バスプロトコルに規定される複数のシーケンスをそれぞれ特定するバスプロトコルプロファイルを格納するバスプロトコルプロファイル記憶装置と、
    前記回路記述からレジスタを抽出する回路記述レジスタ抽出手段と、
    前記レジスタのうち、前記複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する関係レジスタ抽出手段と、
    前記関係レジスタを用いて、前記制御回路の内部状態に対応する前記シーケンスを示すモニタ記述を生成するモニタ記述生成手段
    とを備えることを特徴とするモニタ記述生成装置。
  2. 前記関係レジスタ抽出手段は、
    前記レジスタのリセット動作時の値を抽出するリセット値抽出部と、
    前記レジスタの前記複数のシーケンスにおける値をそれぞれ抽出するレジスタ値抽出部と、
    前記リセット動作時の値から前記複数のシーケンスにおける値が変化した前記レジスタを前記関係レジスタとして抽出する関係レジスタ抽出部
    とを備えることを特徴とする請求項1に記載のモニタ記述生成装置。
  3. 前記関係レジスタ抽出手段は、前記バスプロトコルに規定される出力信号に関係し、前記抽出されたレジスタと異なる他のレジスタの値を決定するバックトレース部を更に備えることを特徴とする請求項1に記載のモニタ記述生成装置。
  4. 回路記述レジスタ抽出手段が、回路記述記憶装置に格納されたバスプロトコルを構成する制御回路の回路記述からレジスタを抽出する手順と、
    関係レジスタ抽出手段が、前記レジスタのうち、バスプロトコルプロファイル記憶装置に格納されたバスプロトコルプロファイルにより特定される、前記バスプロトコルに規定される複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する手順と、
    モニタ記述生成手段が、前記関係レジスタを用いて、前記制御回路の内部状態に対応する前記シーケンスを示すモニタ記述を生成する手順
    とを含むことを特徴とするモニタ記述生成方法。
  5. コンピュータに、
    回路記述記憶装置に格納されたバスプロトコルを構成する制御回路の回路記述からレジスタを抽出する手順と、
    前記レジスタのうち、バスプロトコルプロファイル記憶装置に格納されたバスプロトコルプロファイルにより特定される、前記バスプロトコルに規定される複数のシーケンスにそれぞれ関係する関係レジスタをそれぞれ抽出する手順と、
    前記関係レジスタを用いて、前記制御回路の内部状態に対応する前記シーケンスを示すモニタ記述を生成する手順
    とを実行させることを特徴とするモニタ記述生成プログラム。
JP2004090290A 2004-03-25 2004-03-25 モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム Pending JP2005275963A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004090290A JP2005275963A (ja) 2004-03-25 2004-03-25 モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004090290A JP2005275963A (ja) 2004-03-25 2004-03-25 モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム

Publications (1)

Publication Number Publication Date
JP2005275963A true JP2005275963A (ja) 2005-10-06

Family

ID=35175553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004090290A Pending JP2005275963A (ja) 2004-03-25 2004-03-25 モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム

Country Status (1)

Country Link
JP (1) JP2005275963A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008083781A (ja) * 2006-09-26 2008-04-10 Fujitsu Ltd 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP2009511318A (ja) * 2005-10-06 2009-03-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング マイクロコントローラとFlexRay通信モジュールとを繋ぐ加入者インタフェース、FlexRay加入者装置、およびマイクロコントローラとFlexRay通信モジュールとを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
JP2009199274A (ja) * 2008-02-20 2009-09-03 Fujitsu Microelectronics Ltd 設計検証プログラム、設計検証方法および設計検証装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009511318A (ja) * 2005-10-06 2009-03-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング マイクロコントローラとFlexRay通信モジュールとを繋ぐ加入者インタフェース、FlexRay加入者装置、およびマイクロコントローラとFlexRay通信モジュールとを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
JP2008083781A (ja) * 2006-09-26 2008-04-10 Fujitsu Ltd 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP4707191B2 (ja) * 2006-09-26 2011-06-22 富士通株式会社 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP2009199274A (ja) * 2008-02-20 2009-09-03 Fujitsu Microelectronics Ltd 設計検証プログラム、設計検証方法および設計検証装置

Similar Documents

Publication Publication Date Title
JP4655240B2 (ja) タイミング解析支援装置
US7617469B2 (en) Assertion description conversion device, method and computer program product
JP4147842B2 (ja) 論理検証システム及び方法、論理コーン抽出装置及び方法、論理検証及び論理コーン抽出プログラム
JP5040758B2 (ja) シミュレーション装置、シミュレーション方法及びプログラム
JP4850091B2 (ja) 検証シナリオ生成装置,方法,およびプログラム,並びに検証装置
US8321825B2 (en) Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification
US10430535B2 (en) Verification support program medium, verification support method, and information processing device for verification of a circuit
JP2009140388A (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
JP2006127449A (ja) シミュレーションモデル生成方法
JP2005275963A (ja) モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム
JP2007233842A (ja) リセット動作検証回路の生成方法
US8984456B2 (en) Macro timing analysis device, macro boundary path timing analysis method and macro boundary path timing analysis program
JP5115003B2 (ja) 論理設計支援システム及びプログラム
JP2006309667A (ja) 動作合成検証装置及び方法
JPWO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
JP6089627B2 (ja) 消費電力見積り装置および消費電力見積り方法
JP5239747B2 (ja) 論理シミュレーションプログラム、論理シミュレーション装置、論理シミュレーション方法
JP5104356B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US9047428B2 (en) Determining method, computer product, and determining apparatus
US20230205969A1 (en) Techniques for modeling and verification of convergence for hierarchical domain crossings
JP2007241836A (ja) マルチサイクルパス検証方法
JP4448048B2 (ja) 構造解析プログラム
JP5849973B2 (ja) データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム
JP2007011477A (ja) 論理回路動作モデル生成装置及び論理回路動作モデル生成方法
JP2009140028A (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体