JP2000268074A - 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法 - Google Patents

検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法

Info

Publication number
JP2000268074A
JP2000268074A JP11074118A JP7411899A JP2000268074A JP 2000268074 A JP2000268074 A JP 2000268074A JP 11074118 A JP11074118 A JP 11074118A JP 7411899 A JP7411899 A JP 7411899A JP 2000268074 A JP2000268074 A JP 2000268074A
Authority
JP
Japan
Prior art keywords
verification
processor
operation model
hazard
stall
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
JP11074118A
Other languages
English (en)
Inventor
Kazuyoshi Kono
和義 河野
Hiroshi Imai
浩史 今井
Atsushi Mizuno
水野  淳
Hironori Kamiya
裕徳 上谷
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 JP11074118A priority Critical patent/JP2000268074A/ja
Publication of JP2000268074A publication Critical patent/JP2000268074A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 プロセッサの設計検証(動作検証)を行なう
ための検証プログラムおよびプロパティを自動生成する
装置および方法を提供する。 【解決手段】 プロセッサ仕様3を入力し、プロセッサ
の動作モデル5を生成する動作モデル生成部7と、動作
モデル5およびプロセッサ仕様3を入力し、検証項目集
合を生成する検証項目集合生成部11と、既存の検証プ
ログラム13および動作モデル5を入力し、検証項目集
合9を編集する検証項目集合編集部15と、検証項目集
合9および動作モデル5を入力し、各検証項目に対応す
る検証プログラム17を生成する検証プログラム生成部
19とから構成される検証プログラム自動生成装置1で
ある。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサの設計
検証を行なうための検証プログラムを自動生成する装置
および方法に関する。また、本発明は、プロセッサの動
作検証を行なうためのプロパティを自動生成する装置お
よび方法に関する。
【0002】
【従来の技術】高効率な検証プログラムの生成はプロセ
ッサの設計検証容易化のためには不可欠である。しか
し、検証プログラムの検証項目作成は人手によるため、
検証項目の漏れ、誤った検証項目の作成などが起こり得
る。さらに、プロセッサの論理が複雑になると検証項目
の個数も膨大となり、人手での検証項目の作成はより一
層困難となる。また、すでに作成済の検証プログラムが
存在すれば、その検証プログラムの検証項目に関しては
新たに検証プログラムを作成する必要はない。ところ
が、既存の検証プログラムが目的の検証項目を満たすも
のであるか否かは実際にその検証プログラムをプロセッ
サに与えてシミュレーションしてみなければわからな
い。したがって、検証プログラムの個数が多い場合もし
くは検証プログラムのサイズが大きい場合には膨大なシ
ミュレーション時間を要する。
【0003】また、検証プログラムはプロセッサの動作
モデルに基づいて作成されるが、その動作モデルの作成
は設計者がプロセッサの仕様を参考に行なっている。し
たがって、動作モデル作成にはかなりの時間が必要であ
り、また、プロセッサの仕様が変更されればその仕様を
満たすように動作モデルを再び作成し直す必要があっ
た。
【0004】一方、製品サイクルが短くなり、設計から
市場投入までの時間の短縮が求められている。プロセッ
サの設計では設計中の論理回路の動作検証に多くの時間
が費やされており、この時間短縮のため動作検証にシミ
ュレーションを用いない形式的検証方法が採用されてき
ている。
【0005】形式的検証方法のうちモデル検証と呼ばれ
る方法は設計対象のプロセッサの動作をプロパティとし
て記述し、プロセッサがプロパティを満足するかどうか
を形式的に検証する。このようにして、設計対象の論理
回路が仕様通りの動作を行うかどうかを検証する。
【0006】従来、プロパティは設計者が仕様と回路記
述を見ながら作成していたが、プロセッサの大規模化に
伴いその仕様が複雑化し、プロパティの作成に要する時
間が長期化する傾向にある。また、人手によるため、正
しいプロパティを作成することが難しいという問題があ
る。
【0007】
【発明が解決しようとする課題】本発明は、このような
課題を解決し、プロセッサの設計検証を行なうための検
証プログラムを自動生成する装置および方法を提供す
る。また、本発明は、プロセッサの動作検証を行なうた
めのプロパティを自動生成する装置および方法を提供す
る。
【0008】
【課題を解決するための手段】上記課題を解決するた
め、本発明の第1の特徴は、プロセッサ仕様を入力し、
プロセッサの動作モデルを生成する動作モデル生成部
と、前記動作モデルおよび前記プロセッサ仕様を入力
し、検証項目集合を生成する検証項目集合生成部と、既
存の検証プログラムおよび前記動作モデルを入力し、前
記検証項目集合を編集する検証項目集合編集部と、前記
検証項目および前記動作モデルを入力し、各検証項目に
対応する検証プログラムを生成する検証プログラム生成
部とを少なくとも有する検証プログラム自動生成装置で
あることである。
【0009】本発明の第2の特徴は、プロセッサ仕様を
入力し、プロセッサの動作モデルを生成する動作モデル
生成ステップと、前記動作モデルおよび前記プロセッサ
仕様を入力し、検証項目集合を生成する検証項目集合生
成ステップと、既存の検証プログラムおよび前記動作モ
デルを入力し、前記検証項目集合を編集する検証項目集
合編集ステップと、前記検証項目および前記動作モデル
を入力し、各検証項目に対応する検証プログラムを生成
する検証プログラム生成ステップとを少なくとも有する
検証プログラム自動生成方法であることである。
【0010】本発明の第3の特徴は、プロセッサ仕様を
入力し、プロセッサの動作モデルを生成する動作モデル
生成部と、その動作モデルおよびプロセッサの回路記述
を入力し、前記プロセッサのプロパティを生成するプロ
パティ生成部とを少なくとも有するプロパティ自動生成
装置であることである。
【0011】本発明の第4の特徴は、プロセッサ仕様を
入力し、プロセッサの動作モデルを生成する動作モデル
生成ステップと、その動作モデルおよびプロセッサの回
路記述を入力し、前記プロセッサのプロパティを生成す
るプロパティ生成ステップとを少なくとも有するプロパ
ティ自動生成方法であることである。
【0012】
【発明の実施の形態】(第1の実施の形態)図1は本発
明の第1の実施の形態に係る検証プログラム自動生成装
置の構成を示すブロック図である。本発明の第1の実施
の形態は、パイプライン化したプロセッサを設計する場
合に本発明を適用した例である。図1に示すように、本
発明の第1の実施の形態に係る検証プログラム自動生成
装置1は、プロセッサの仕様3を入力し、プロセッサの
動作モデル5を生成する動作モデル生成部7と、プロセ
ッサの仕様3および動作モデル5を入力し、検証項目集
合9を生成する検証項目集合生成部11と、既存の検証
プログラム13および動作モデル5を入力し、検証項目
集合9を編集する検証項目集合編集部15と、動作モデ
ル5および検証項目集合9を入力し、各検証項目に対応
する検証プログラム17を生成する検証プログラム生成
部19とを備えて構成される。
【0013】プロセッサの仕様3には設計対象のプロセ
ッサの命令セット・アーキテクチャ(ISA:instruct
ion set architecture)仕様、各命令のパイプライン動
作仕様、パイプラインのストール(stall)規則が含ま
れる。図2に命令セット・アーキテクチャ仕様の例を示
す。図2に示した例では、命令セット・アーキテクチャ
仕様として6個の命令およびその動作が与えられてい
る。「nop」命令は何も行なわない命令、「add」
命令は整数の加算を行なう命令、「sub」命令は整数
の減算を行なう命令、「fadd」命令は浮動小数点数
の加算を行なう命令、「fsub」命令は浮動少数点数
の減算を行なう命令、「ld」命令はメモリからデータ
をロードする命令である。
【0014】図3にパイプライン動作仕様の例を示す。
パイプライン制御の動作を考えた場合に全く同様に動作
する命令はグループ化することができるようにしてお
く。図3に示した例では、「add」命令および「su
b」命令を「int」命令に、「fadd」命令および
「fsub」命令を「fpu」命令にグループ化する。
各パイプライン・ステージにおける動作(パイプライン
動作)は次の通りである。「FET」ステージは命令の
フェッチ、デコードおよびレジスタ・フェッチを行な
う。「ALU」ステージは整数演算の実行を行なう。
「FPU」パイプライン・ステージは浮動小数点演算の
実行を行なう。「MEM」ステージはメモリ・アクセス
を行なう。「WB」ステージはレジスタへの書き込みを
行なう。
【0015】パイプラインのストール規則は構造ハザー
ド・ストール規則とデータ・ハザード・ストール規則か
らなる。構造ハザード・ストール規則はパイプライン動
作中に構造ハザードが起こった場合のストール規則を記
述する。データ・ハザード・ストール規則はパイプライ
ン動作中にデータ・ハザードが起こった場合のストール
規則を記述する。なお、ストール規則については後で詳
しく説明する。
【0016】(動作モデル生成部7)動作モデル生成部
7はプロセッサ仕様3からプロセッサの動作モデル5を
生成する。生成された動作モデル5は検証項目集合生成
部11、検証項目集合編集部15および検証プログラム
生成部19で使用される。図4に動作モデル生成部7の
動作を示すフローチャートを示す。動作モデル生成部7
の処理は、(1)パイプライン構造グラフの作成(ステ
ップ41)、(2)構造ハザードによるストール条件の
決定(ステップ42)、(3)データ・ハザードによる
ストール条件の決定(ステップ43)、(4)有限状態
機械(finite state machine)の生成(ステップ4
4)、に分かれる。
【0017】(1)パイプライン構造グラフの作成 まず、動作モデル生成部7はパイプライン構造グラフを
作成する。パイプライン構造グラフはパイプラインを構
成する各ステージの接続関係を表す有向グラフGであ
る。Gはパイプライン動作仕様に記されているパイプラ
イン・ステージを節点、パイプライン・ステージ間の接
続を有向辺とし、同一のパイプライン・ステージを表す
節点を一つにまとめることにより作成される。図5に図
3に示したパイプライン動作仕様から得られるパイプラ
イン構造グラフを示す。
【0018】(2)構造ハザードによるストール条件の
決定 次に、動作モデル生成部7は構造ハザードによるストー
ル条件を決定する。ステップ1で求めたパイプライン構
造グラフの節点のうち複数の有向辺の終点となる節点が
構造ハザードの原因となる。たとえば図5に示したパイ
プライン構造グラフでは、3個の有向辺の終点となる節
点「WB」が構造ハザードの原因となる。構造ハザード
によるストール条件は、まず構造ハザード状態集合を求
め、この構造ハザード状態集合と構造ハザードストール
規則を用いて構造ハザードによるストール条件を決定す
る。
【0019】構造ハザード状態集合は、パイプライン構
造グラフから2個以上の有向辺の終点となる節点の集合
Sを求め、集合Sのすべての要素sについて次の処理を
行なうことで求められる。まず、要素sを終点に持つ有
向辺の集合Eを求める。そして、集合Eの要素eのすべ
ての対(ei,ej)(但し、(ei,ej)と(ej
i)は同一視する)について、eiの始点をsi、ej
始点をsjとし、有効グラフGの節点nに対応するパイ
プラインステージに来る可能性のある命令の集合をIn
st(n)とする。Inst(si)のすべての要素ik
およびInst(sj)のすべての要素jlについて
((si,ik),(sj,jl))を構造ハザード状態集
合の要素に加える。ステージが異なっていても、同一の
リソースを使用する場合、構造ハザードが起こる。この
ような場合も、ほぼ同様の方法を用いることにより、構
造ハザード状態を求めることが可能である。図6に図3
に示したパイプライン動作仕様に対する構造ハザード状
態集合を示す。
【0020】構造ハザード状態集合が得られたら、構造
ハザード状態集合のすべての要素についてハザードが起
きた時の動作を決定し、すべての構造ハザード状態集合
の要素に対応するパイプラインの状態に対して構造ハザ
ードが起こった時のストール条件を決定する。この時に
構造ハザード・ストール規則を用いる。図7に構造ハザ
ード・ストール規則の例を示す。この例では、命令間に
優先順位を決めておき優先順位の最も高いもの以外の命
令がストールするという規則を表している。例えば、
「((ALU,int),(FPU,fpu))−(A
LU,Int)」は、ALUステージにint命令が存
在し、FPUステージにfpu命令が存在する場合、A
LUステージに存在するint命令がストールすること
を表している。図8に図7の規則から得られた構造ハザ
ードによるストール条件を示す。たとえば図8の第2列
は、ALUステージに存在するint命令が構造ハザー
ドによりストールする条件は“MEMステージにld命
令が存在するかFPUステージにfpu命令が存在する
時である”ことを表している。また第3列は、MEMス
テージに存在するld命令は構造ハザードによりストー
ルすることはないことを表している。
【0021】図9に構造ハザード・ストール規則の他の
例を示す。この例では、構造ハザードを引き起こす命令
の命令発行順序を比較し、発行順が最も早い命令以外の
命令がストールするという規則を表している。PSi
PSjをパイプライン・ステージとしたとき、Orde
r(PSi)>Order(PSj)が真とは、PSi
存在する命令がPSjに存在する命令より後に発行され
たことを表わすとする。図10に図9の規則から得られ
た構造ハザードによるストール条件を示す。
【0022】なお、本発明の第1の実施の形態におい
て、決定した構造ハザードによるストール条件の編集
(変更)機能を有していることが好ましい。構造ハザー
ド・ストール規則では表現できないものや構造ハザード
・ストール規則の例外等を扱うことができるようにする
ためである。
【0023】(3)データ・ハザードによるストール条
件の決定 次に、動作モデル生成部7はデータ・ハザードによるス
トール条件を決定する。まず、命令セット・アーキテク
チャ仕様からデータ・ハザードが起こる命令対の集合
(以下、データ・ハザード状態集合と呼ぶ)を求める。
図3のパイプライン動作仕様ではFETステージでレジ
スタ・フェッチが行なわれるため、データ・ハザードの
チェックはFETステージにおいて行なう。データ・ハ
ザード状態集合の要素を(Inst(FET),(P
S,Inst(PS)))とする。データ・ハザードは
先行命令のデスティーネーション・レジスタと後続命令
のソース・レジスタが一致する場合に起こる。したがっ
て、図2の命令セット・アーキテクチャ仕様および図3
のパイプライン動作仕様の場合、データ・ハザード状態
集合は図11に示すものとなる。
【0024】データ・ハザード状態集合が得られたら、
データ・ハザード状態集合のすべての要素についてハザ
ードが起きた時の動作を決定し、各命令対に対してデー
タ・ハザードによるストール条件を決める。この時にデ
ータ・ハザード・ストール規則を用いる。図12にデー
タ・ハザード・ストール規則の例を示す。この例では、
○印がついている命令対でデータ・ハザードが起こった
場合、FETステージに存在する命令がストールするこ
とを表している。また、図13にデータ・ハザード・ス
トール規則の他の例を示す。この例では、パイプライン
・ステージの前半でレジスタへの書き込みを行ない、パ
イプライン・ステージの後半でレジスタの参照を行なう
という実装にすることで、WBステージで書き込まれた
値を同一サイクルのFETステージで参照可能となり、
WBステージに存在する命令との間でデータ・ハザード
によるストールが起こらなくなる場合を示している。さ
らに図14にデータ・ハザード・ストール規則の他の例
を示す。この例は、フォワーディングを行なうことによ
り「ld」命令以外の命令でデータ・ハザードによるス
トールが起こらなくなる場合である。
【0025】図15に図12の規則から得られたデータ
・ハザード・ストール条件を示す。図15において、
「Inst(PS)」はパイプライン・ステージPSに
現在存在する命令を返す関数である。「DHStall
Rule」はFETステージに存在する命令、FET以
外のステージおよびそのステージに存在する命令から、
FETステージに存在する命令がデータ・ハザードによ
りストールする可能性があるか否かを返す関数であり、
図12〜図14に示したデータ・ハザード・ストール規
則で対応するものが○印の場合“1”を返し、×印の場
合“0”を返す。「src」は命令のソース・レジスタ
の集合を返す関数であり、「dest」は命令のデステ
ィネーション・レジスタを返す関数である。
【0026】なお、本発明の第1の実施の形態におい
て、決定したデータ・ハザードによるストール条件の編
集(変更)機能を有していることが好ましい。データ・
ハザード・ストール規則では表現できないものやデータ
・ハザード・ストール規則の例外等を扱うことができる
ようにするためである。
【0027】(4)有限状態機械(finite state machi
ne)の生成 次に、動作モデル生成部7は各パイプライン・ステージ
の命令の組み合わせを状態とみなした有限状態機械を生
成する。以下では説明簡略化のため、構造ハザードによ
るストール条件については図7に示した構造ハザード・
ストール規則を用いて決定するものとする。一方、デー
タ・ハザードによるストールについてはここでは考えな
いものとする。以降では、後段のパイプライン・ステー
ジがストールしたらストールするというストール条件を
「暗黙のストール条件」と呼ぶことにする。パイプライ
ン・ステージPSのストール条件を「Stall(P
S)」、パイプライン・ステージPSの暗黙のストール
条件を「ImplicitStall(PS)」、パイ
プライン・ステージPSの構造ハザード・ストール条件
を「SHStall(PS)」、パイプライン・ステー
ジPSのデータ・ハザード・ストール条件を「DHSt
all(PS)」で表すことにする。
【0028】図16に「Stall(PS)」を表す式
を示す。また、図17に「ImplicitStall
(PS)」を表す式を示す。但し、図17において、P
SSetは全パイプライン・ステージからなる集合であ
る。また、「Next(PS,I))」はパイプライン
・ステージPSに存在する命令がIである場合の次段の
パイプライン・ステージを返す関数である。図18は図
3のパイプライン動作仕様に対する関数Nextを表で
示したものである。また、図19は論理式で示したもの
である。これらはパイプライン動作仕様から自動的に生
成することができる。
【0029】パイプライン・ステージPSに存在する命
令がIである時の構造ハザード・ストール条件を「SH
Stall(PS,I)」とすれば、「SHStall
(PS)」は図20で示される式で表される。またパイ
プライン・ステージPSに存在する命令がIである時の
データ・ハザード・ストール条件を「DHStall
(PS,I)」とすれば、「DHStall(PS)」
は図21で示される式で表される。但し、図20、図2
1において、InstSetは全命令からなる集合であ
る。図7に示した構造ハザードストール規則から導かれ
る「SHStall(PS,I)」を図22に示す。こ
の「SHStall(PS,I)」は図4のステップ2
で求めた構造ハザード・ストール条件である。図20に
示した「SHStall(PS)」の式を用いれば、
「SHStall(PS)」は図23に示すものとな
る。一方、データ・ハザードによるストールについては
考慮しないので、「DHStall(PS)」は図24
に示すものとなる。
【0030】パイプライン構造グラフGの節点間に以下
に示す関係を定義することにより節点集合は半順序集合
となる。
【0031】定義1:パイプライン構造グラフGを有向
グラフとし、eをGの有向辺とする。mがeの始点、n
がeの終点のときm>nである。
【0032】「ImplicitStall(PS)」
および「Stall(PS)」を定義1の順序に従って
作成すれば、すなわち「ImplicitStall
(PS)」および「Stall(PS)」作成時にPS
より小さいパイプライン・ステージPSj の「Impl
icitStall(PSj )」および「Stall
(PSj )」が作成済みであるようにすれば、「Imp
licitStall(PS)」および「Stall
(PS)」を求めることができる。たとえば図3に示し
たパイプライン動作仕様の場合は、WB→MEM→FP
U→ALU→FETの手順で求めることができる。その
結果を、図25、図26、図27に示す。
【0033】パイプライン・ステージPSの次状態関数
「NextInst(PS)」を求めるにはパイプライ
ン・ステージPSに対応する節点を以下の3つのケース
に分けて考える。
【0034】ケース1:節点を終点としてもつ有向辺が
存在しない場合 ケース2:節点を始点としてもつ有向辺が存在しない場
合 ケース3:上記以外の場合 有向グラフGが1個の節点のみからなる場合にはケース
1かつケース2という状況が起こり得るが、この場合グ
ラフはパイプラインを表しているとはいえない。したが
って、パイプラインを考える場合は必ず3つのケースは
互いに独立となる。ケース1の場合「NextInst
(PS)」は図28に示す式、ケース2の場合「Nex
tInst(PS)」は図29に示す式、ケース3の場
合「NextInst(PS)」は図30に示す式とな
る。但し、図18において、「Inst(IN)」は次
サイクルに入力される命令を表わすものとし、図29、
図30において、「Bubble」はステージに命令が
存在しないことを表わすものとする。さらに、図29、
図30において、「PSSet」は全パイプライン・ス
テージからなる集合であるとする。また、図31に図2
の命令セット・アーキテクチャ仕様および図3にパイプ
ライン動作仕様に対して実際に求めた次状態関数を示
す。
【0035】このようにして動作モデル生成部7は命令
セット・アーキテクチャ仕様、パイプライン動作仕様、
構造ハザード・ストール規則およびデータ・ハザード・
ストール規則を含むプロセッサ仕様3から動作モデル5
(本実施の形態では有限状態機械である)を自動的に生
成する。したがって、プロセッサの仕様3に変更があっ
ても、プロセッサ仕様3を修正するだけで、変更された
プロセッサ仕様3に対する動作モデル5を自動的に生成
することが可能となる。また、パイプラインのストール
動作を変更したい場合でも、ストール規則を修正するこ
とにより、変更されたストール動作に対する動作モデル
を自動的に生成できる。
【0036】(検証項目集合生成部11)次に、検証項
目集合生成部11の動作について説明する。検証項目は
各パイプライン・ステージの状態の組み合わせで表現す
る。具体的にはたとえば図32に示した通りである。検
証項目集合生成部11は構造ハザードが起こる各パイプ
ライン・ステージの状態、データ・ハザードが起こる各
パイプライン・ステージの状態を列挙する。なお、本実
施の形態では、動作モデル生成部7がストール条件を生
成する際にストールが起こるパイプラインの状態の組み
合わせを求めている。したがって、検証項目集合生成部
11は動作モデル生成部7に含まれることになる。
【0037】(検証項目集合編集部15)次に、検証項
目集合編集部15の動作について説明する。検証項目集
合編集部15は検証項目生成部11で作成された検証項
目集合9を編集する。検証項目集合編集部15の主な目
的は既存の検証プログラム13が存在すれば、既存の検
証プログラム13で検証可能な検証項目を検証項目集合
9から取り除くことである。検証項目集合9を編集する
ことにより検証プログラム生成部19において不要な検
証項目についての検証プログラムの生成を抑制すること
ができる。
【0038】検証項目集合編集部15は既存の検証プロ
グラム13および動作モデル5に基づいて検証項目集合
9を編集する。検証項目集合編集部15は既存の検証プ
ログラム13を動作モデル5に与え、簡易シミュレーシ
ョンを行なう。動作モデル5ではパイプラインの制御動
作のみをモデル化しているため、オペランドで与えられ
るデータがどのように加工されるかはシミュレートしな
い。したがって、通常のシミュレーションと比べて高速
に実行できる。各サイクル毎に各パイプライン・ステー
ジの状態を記録し、その状態が検証項目集合9に含まれ
る場合には検証項目集合9からその状態を取り除く。
【0039】(検証プログラム生成部19)次に、検証
プログラム生成部19の動作について説明する。検証プ
ログラム生成部19は動作モデル5および検証項目集合
9から検証項目集合9の各要素を検証するための命令列
(検証プログラム)17を自動生成する。検証項目は各
パイプライン・ステージに存在する命令により表現され
ている。また動作モデル5は各パイプライン・ステージ
に存在する命令を状態とみなした有限状態機械として表
現されている。これらを用いた命令列の自動生成は、B
DDを用いることにより初期状態から到達可能な状態集
合を計算することで、容易に実現可能である。
【0040】本発明の第1の実施の形態によれば、プロ
セッサ仕様から自動的に動作モデルを生成できる。それ
により動作モデル作成にかかる時間を短縮することがで
きる。また、プロセッサの仕様に変更があった場合、命
令セット・アーキテクチャ仕様もしくはパイプライン仕
様を修正することにより、変更された仕様に対する動作
モデルを自動的に生成することが可能となる。またパイ
プラインのストール動作を変更したい場合でも、ストー
ル規則を修正することにより、変更されたストール動作
に対する動作モデルを自動的に生成することが可能とな
る。
【0041】また、本発明の第1の実施の形態によれ
ば、従来人手により作成していた検証項目をプロセッサ
仕様から自動的に生成することができる。このことによ
り検証項目の洩れを防ぐことができる。また人手作成に
比べて、検証項目の作成に要する時間を減らすことがで
きる。この効果は回路の複雑さが増せば増すほど顕著に
表れる。
【0042】さらに、本発明の第1の実施の形態によれ
ば、既存の検証プログラムにより検証される検証項目を
仕様から作成した検証項目集合から取り除くことができ
る。このことにより、不要な検証プログラムの生成を抑
制することができる。ランダムなテストプログラム自動
生成をアルゴリズミックなテストプログラム自動生成を
組み合わせて行なう時にも有効である。
【0043】(第2の実施の形態)次に、本発明の第2
の実施の形態について説明する。図33は、本発明の第
2の実施の形態は、第1の実施の形態同様、パイプライ
ン化したプロセッサを設計する場合に本発明を適用した
例である。図33に示すように、本発明の第2の実施の
形態に係るプロパティ自動生成装置21は、プロセッサ
仕様23を入力し、プロセッサ仕様23を解析する仕様
解析部25と、その解析結果を入力し、動作モデルを生
成する動作モデル生成部27と、プロセッサの回路記述
29を入力し、プロセッサの回路記述29を読み込む回
路記述読み込み部31と、その読み込み結果を入力し、
プロセッサの回路記述29を解析する記述解析部33
と、動作モデル生成部27が生成した動作モデルと記述
解析部33の解析結果を入力し、プロセッサのプロパテ
ィ35を生成するプロパティ生成部37とを備えて構成
される。
【0044】プロセッサの仕様23には、図1に示した
第1の実施の形態のプロセッサ仕様3と同様、設計対象
のプロセッサの命令セット・アーキテクチャ(ISA)
仕様、各命令のパイプライン動作仕様、パイプラインの
ストール規則が含まれる。仕様解析部25はプロセッサ
仕様23を解析し、動作モデル生成部27が必要とする
情報を提供する。仕様解析部25が提供する情報に基づ
いて動作モデル生成部27は動作モデルを生成する。本
実施の形態では、仕様解析部25が最初にプロセッサ仕
様23を解析しているが、第1の実施の形態のように動
作モデル生成部27が直接プロセッサ仕様23を入力す
る構成としてもよい。
【0045】プロセッサの回路記述29はたとえばレジ
スタ転送レベル(RTL)で記述される。回路記述読み
込み部31は回路記述29を読み込み、記述解析部33
がプロパティ生成部37が必要とする情報を回路記述2
9から取り出す。プロパティ生成部37は動作モデル生
成部27が生成した動作モデルと記述解析部33が提供
する回路記述についての情報からプロパティ35を自動
生成する。
【0046】次に、図33に示した動作モデル生成部2
7の動作モデル生成とプロパティ生成部37のプロパテ
ィ生成について説明する。図34は、図33の動作モデ
ル生成部27の動作モデル生成とプロパティ生成部37
のプロパティ生成の処理手順を示すフローチャートであ
る。まず、動作モデル生成(ステップ342)は図1に
示した本発明の第1の実施の形態の動作モデル生成部7
の動作と同様であるのでここでは説明しない。また、ハ
ザード状態生成(ステップ341)は構造ハザードが起
こる各パイプライン・ステージの状態、データ・ハザー
ドが起こる各パイプライン・ステージの状態を列挙す
る。本第2の実施の形態ではストール条件を生成する
際、ストールが起こるパイプラインの状態の組み合わせ
を求めているため、動作モデル生成(ステップ342)
でハザード状態を生成している。ハザード状態は各パイ
プライン・ステージの状態の組み合わせで表現される。
具体的には図32に示した通りである。なお、検証対象
動作39はたとえばパイプラインのハザードである。
【0047】次に、ハザード解消状態生成(ステップ3
43)の処理について説明する。ハザード状態生成(ス
テップ341)で構造ハザード状態集合およびデータ・
ハザード状態集合が求められている。また、動作モデル
生成(ステップ342)で各パイプライン・ステージの
命令の組み合わせを一つの状態とみなした有限状態機械
が生成されている。したがって、ハザード状態と有限状
態機械の次状態関数「NextInst」を用いてハザ
ード解消状態を求めることができる。具体的には、構造
ハザード状態集合SHSSとデータ・ハザード状態集合
DHSSの各状態sに対して、まず各パイプライン・ス
テージPSiに対してNextlnst(PSi)を計算
し、ハザード解消状態Hsに各Nextlnst(P
i)を要素として加えることで求めることができる。
図35に、その例に対応したハザード解消状態を図36
に示す。
【0048】次に、レジスタ名とシグナル名のマッチン
グ(ステップ344)の処理について説明する。レジス
タ名とシグナル名のマッチング(ステップ344)では
ハザード状態生成(ステップ341)およびハザード解
消状態生成(ステップ343)で生成された状態、すな
わち各パイプライン・ステージの命令とプロセッサのR
TL記述41内のレジスタおよびシグナルとの対応付け
を行う。例えば、パイプライン・ステージFETに命令
intが存在している場合、RTL記述41中ではレジ
スタFet_reg[3:0]に値0001が格納され
ている状態がパイプライン・ステージFETに命令in
tが存在する場合に対応するとき、「Inst(FE
T)==int」と「Fet_reg[3:0]=“0
001”」の対応付けを行う。
【0049】次に、プロパティ生成(ステップ345)
の処理について説明する。例えば、「ハザード状態sに
あるとき、次のクロック・サイクルでハザード解消状態
s’になる」という型のプロパティを生成する場合を考
える。図35および図36に示した例で説明する。各パ
イプライン・ステージの命令とRTL記述中のレジスタ
との対応関係の例を図37に示す。図37には図35お
よび図36に示した例で必要な部分のみを示した。プロ
パティ生成(ステップ345)は、ハザード状態生成
(ステップ341)およびハザード解消状態生成(ステ
ップ343)で生成された状態、すなわち各パイプライ
ン・ステージの命令の組み合わせを、レジスタ名とシグ
ナル名マッチング(ステップ344)で対応付けられた
各パイプライン・ステージの命令とRTL記述41中の
レジスタの対応関係を用いて、RTL記述41中のレジ
スタに置き換えることによりプロパティ43を生成す
る。図35および図36に示した例に対するプロパティ
43を図38に示す。
【0050】本発明の第2の実施の形態によれば、大規
模プロセッサの動作検証の際に必要な検証対象動作を表
すプロパティをプロセッサ仕様とプロセッサの回路記述
から自動的に作成することができる。それにより短期間
で動作検証のためのプロパティを用意することが可能と
なる。
【0051】(第3の実施の形態)次に、本発明の第3
の実施の形態について説明する。本発明の第3の実施の
形態は、第2の実施の形態で示した動作モデル生成とプ
ロパティ生成の他の例を示すものである。本発明の第3
の実施の形態は、バス調停を設計する場合に本発明を適
用した例である。図39に本第3の実施の形態に用いる
プロセッサ仕様23の例を示す。この例はバス調停のア
ルゴリズムがラウンド・ロビンであり、バスに接続され
るコンポーネント(クライアントと呼ぶ)を示してい
る。図40に本第3の実施の形態に用いる検証対象動作
39の例を示す。ここでは、図39および図40に示し
た例に対してプロパティを自動生成する場合について説
明する。図41は、本発明の第3の実施の形態の動作を
示すフローチャートである。
【0052】図39に示したラウンド・ロビン型のバス
調停とは、バス使用要求を出したクライアントを待ち行
列に置かれた順に一定時間ずつ処理し、クロック・サイ
クル毎に待ち行列の先頭にあったものを最後尾に置く調
停方式である。まず、動作モデル生成(ステップ41
1)でラウンド・ロビン型バス調停を実現する上で必要
なクライアント数、各クライアントの優先順位を生成す
る。その例を図42に示す。この例では、クライアント
数は8であり、クライアントの優先順位は適当に生成し
た。
【0053】次に、レジスタ名とシグナル名のマッチン
グ(ステップ412)では、動作モデル生成(ステップ
411)で生成したモデルの各クライアントのバス使用
要求、使用許可とRTL記述41内のレジスタ名との対
応関係を生成する。RTL記述41の例を図43に、ク
ライアント名とレジスタ名の対応関係の表を図44に示
す。
【0054】最後に、プロパティ生成(ステップ41
3)では、「クライアントCL0がバスをリクエストす
るとき、8クロック・サイクル以内に許可される」とい
う型のプロパティを生成すると仮定すれば、レジスタ
名、シグナル名マッチングの処理で得られた対応関係の
表を用いてクライアント名をRTL記述中のレジスタ名
に置き換え、プロパティ43を生成する。生成されたプ
ロパティの例を図45に示す。
【0055】本発明の第3の実施の形態においても第2
の実施の形態と同様の効果を得ることができる。
【0056】
【発明の効果】本発明によれば、プロセッサの動作検証
を短時間で行なうことが可能となる。したがって、プロ
セッサの設計時間の短縮を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る検証プログラ
ム自動生成装置の構成を示すブロック図である。
【図2】命令セット・アーキテクチャ仕様の例を示す図
である。
【図3】パイプライン動作仕様の例を示す図である。
【図4】図1の動作モデル生成部の動作を示すフローチ
ャートである。
【図5】図3のパイプライン動作仕様から得られるパイ
プライン構造グラフを示す図である。
【図6】図3のパイプライン動作仕様に対する構造ハザ
ード状態集合を示す図である。
【図7】構造ハザード・ストール規則の例を示す図であ
る。
【図8】図7の規則から得られた構造ハザードによるス
トール条件を示す図である。
【図9】構造ハザード・ストール規則の他の例を示す図
である。
【図10】図9の規則から得られた構造ハザードによる
ストール条件を示す図である。
【図11】図2の命令セット・アーキテクチャ仕様およ
び図3のパイプライン動作仕様に対するデータ・ハザー
ド状態集合を示す図である。
【図12】データ・ハザード・ストール規則の例を示す
図である。
【図13】データ・ハザード・ストール規則の他の例を
示す図である。
【図14】データ・ハザード・ストール規則の他の例を
示す図である。
【図15】図12の規則から得られたデータ・ハザード
・ストール条件を示す図である。
【図16】パイプライン・ステージPSのストール条件
「Stall(PS)」を表す式を示す図である。
【図17】パイプライン・ステージPSの暗黙のストー
ル条件「ImplicitStall(PS)」を表す
式を示す図である。
【図18】図3のパイプライン動作仕様に対する関数N
extを表で示した図である。
【図19】図3のパイプライン動作仕様に対する関数N
extを論理式で示した図である。
【図20】パイプライン・ステージの構造ハザード・ス
トール条件を表す式を示す図である。
【図21】パイプライン・ステージのデータ・ハザード
・ストール条件を表す式を示す図である。
【図22】各パイプライン・ステージの全命令に対する
構造ハザード・ストール条件を表す表を示す図である。
【図23】各パイプライン・ステージの構造ハザード・
ストール条件を表す表を示す図である。
【図24】各パイプライン・ステージに対応するデータ
・ハザード・ストール条件を表す表を示す図である。
【図25】各パイプライン・ステージの全命令に対する
暗黙のストール条件を表す表を示す図である。
【図26】各パイプライン・ステージに対する暗黙のス
トール条件を表す表を示す図である。
【図27】各パイプライン・ステージに対するストール
条件を表す表を示す図である。
【図28】前段のパイプライン・ステージが存在しない
パイプライン・ステージに対する次サイクルの命令を表
す式を示す図である。
【図29】前段および後段のパイプライン・ステージが
存在するパイプライン・ステージに対する次サイクルの
命令を表す式を示す図である。
【図30】後段のパイプライン・ステージが存在しない
パイプライン・ステージに対する次サイクルの命令を表
す式を示す図である。
【図31】各パイプライン・ステージに対する次サイク
ルの命令を表す表を示す図である。
【図32】図2の命令セット・アーキテクチャ仕様およ
び図3のパイプライン動作仕様で規定される動作モデル
を有限状態機械で表現する時に用いる状態を示す図であ
る。
【図33】本発明の第2の実施の形態に係るプロパティ
自動生成装置の構成を示すブロック図である。
【図34】、図33の動作モデル生成部の動作モデル生
成とプロパティ生成部のプロパティ生成の処理手順を示
すフローチャートである。
【図35】ハザード状態の例を示す図である。
【図36】ハザード解消状態の例を示す図である。
【図37】各パイプライン・ステージの命令とRTL記
述中のレジスタとの対応関係の例を示す図である。
【図38】図35および図36に示した例に対するプロ
パティを示す図である。
【図39】本発明の第3の実施の形態に用いるプロセッ
サ仕様の例を示す図である。
【図40】本発明の第3の実施の形態に用いる検証対象
動作の例を示す図である。
【図41】本発明の第3の実施の形態の動作を示すフロ
ーチャートである。
【図42】動作モデルの例を示す図である。
【図43】RTL記述の例を示す図である。
【図44】クライアント名とレジスタ名の対応関係の表
を示す図である。
【図45】生成されたプロパティを示す図である。
【符号の説明】
1 検証プログラム自動生成装置 3、23 プロセッサ仕様 5 動作モデル 7、27 動作モデル生成部 9 検証項目集合 11 検証項目集合生成部 13 既存の検証プログラム 15 検証項目集合編集部 17 検証プログラム 19 検証プログラム生成部 21 プロパティ自動生成装置 25 仕様解析部 29 プロセッサの回路記述 31 回路記述読み込み部 33 記述解析部 35 プロパティ 37 プロパティ生成部 39 検証対象動作 41 RTL記述 43 プロパティ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 水野 淳 神奈川県川崎市幸区堀川町580番1号 株 式会社東芝半導体システム技術センター内 (72)発明者 上谷 裕徳 神奈川県川崎市幸区堀川町580番1号 株 式会社東芝半導体システム技術センター内 Fターム(参考) 2G032 AA03 AC08 AE12 5B013 CC01 EE08 5B046 AA08 BA03 JA05 9A001 DD03 HH32 LL08

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサ仕様を入力し、プロセッサの
    動作モデルを生成する動作モデル生成部と、 前記動作モデルおよび前記プロセッサ仕様を入力し、検
    証項目集合を生成する検証項目集合生成部と、 既存の検証プログラムおよび前記動作モデルを入力し、
    前記検証項目集合を編集する検証項目集合編集部と、 前記検証項目および前記動作モデルを入力し、各検証項
    目に対応する検証プログラムを生成する検証プログラム
    生成部とを少なくとも有することを特徴とする検証プロ
    グラム自動生成装置。
  2. 【請求項2】 プロセッサ仕様を入力し、プロセッサの
    動作モデルを生成する動作モデル生成ステップと、 前記動作モデルおよび前記プロセッサ仕様を入力し、検
    証項目集合を生成する検証項目集合生成ステップと、 既存の検証プログラムおよび前記動作モデルを入力し、
    前記検証項目集合を編集する検証項目集合編集ステップ
    と、 前記検証項目および前記動作モデルを入力し、各検証項
    目に対応する検証プログラムを生成する検証プログラム
    生成ステップとを少なくとも有することを特徴とする検
    証プログラム自動生成方法。
  3. 【請求項3】 プロセッサ仕様を入力し、プロセッサの
    動作モデルを生成する動作モデル生成部と、 その動作モデルおよびプロセッサの回路記述を入力し、
    前記プロセッサのプロパティを生成するプロパティ生成
    部とを少なくとも有することを特徴とするプロパティ自
    動生成装置。
  4. 【請求項4】 プロセッサ仕様を入力し、プロセッサの
    動作モデルを生成する動作モデル生成ステップと、 その動作モデルおよびプロセッサの回路記述を入力し、
    前記プロセッサのプロパティを生成するプロパティ生成
    ステップとを少なくとも有することを特徴とするプロパ
    ティ自動生成方法。
JP11074118A 1999-03-18 1999-03-18 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法 Pending JP2000268074A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11074118A JP2000268074A (ja) 1999-03-18 1999-03-18 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11074118A JP2000268074A (ja) 1999-03-18 1999-03-18 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法

Publications (1)

Publication Number Publication Date
JP2000268074A true JP2000268074A (ja) 2000-09-29

Family

ID=13537982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11074118A Pending JP2000268074A (ja) 1999-03-18 1999-03-18 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法

Country Status (1)

Country Link
JP (1) JP2000268074A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007115001A (ja) * 2005-10-20 2007-05-10 Nec Engineering Ltd アサーション自動生成装置および論理回路設計検証方法
JP2008262311A (ja) * 2007-04-11 2008-10-30 Fujitsu Ltd セキュリティ検査用モデル生成プログラム,装置,およびセキュリティ検査用モデル検査装置
JP2009230667A (ja) * 2008-03-25 2009-10-08 Nec Corp プロパティ生成システムおよびプロパティ検証システム
JP2009230677A (ja) * 2008-03-25 2009-10-08 Nec Corp プロパティ生成システムおよびプロパティ検証システム
JP2012141707A (ja) * 2010-12-28 2012-07-26 Fujitsu Semiconductor Ltd プロセッサ検証プログラム
KR20140034050A (ko) * 2012-09-07 2014-03-19 삼성전자주식회사 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법
JP2014053011A (ja) * 2012-09-07 2014-03-20 Samsung Electronics Co Ltd アサーション生成装置及び方法並びにプロセッサ検証装置及び方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007115001A (ja) * 2005-10-20 2007-05-10 Nec Engineering Ltd アサーション自動生成装置および論理回路設計検証方法
JP4564914B2 (ja) * 2005-10-20 2010-10-20 Necエンジニアリング株式会社 アサーション自動生成装置および論理回路設計検証方法
JP2008262311A (ja) * 2007-04-11 2008-10-30 Fujitsu Ltd セキュリティ検査用モデル生成プログラム,装置,およびセキュリティ検査用モデル検査装置
JP2009230667A (ja) * 2008-03-25 2009-10-08 Nec Corp プロパティ生成システムおよびプロパティ検証システム
JP2009230677A (ja) * 2008-03-25 2009-10-08 Nec Corp プロパティ生成システムおよびプロパティ検証システム
JP2012141707A (ja) * 2010-12-28 2012-07-26 Fujitsu Semiconductor Ltd プロセッサ検証プログラム
KR20140034050A (ko) * 2012-09-07 2014-03-19 삼성전자주식회사 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법
JP2014053011A (ja) * 2012-09-07 2014-03-20 Samsung Electronics Co Ltd アサーション生成装置及び方法並びにプロセッサ検証装置及び方法
KR101968214B1 (ko) 2012-09-07 2019-04-11 삼성전자주식회사 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법

Similar Documents

Publication Publication Date Title
Kaivola et al. Replacing testing with formal verification in intel coretm i7 processor execution engine validation
US7003420B2 (en) Late binding of variables during test case generation for hardware and software design verification
US6647513B1 (en) Coverage-based test generation for microprocessor verification
US7533294B2 (en) Functional coverage driven test generation for validation of pipelined processors
Park et al. BLoG: Post-silicon bug localization in processors using bug localization graphs
US9720793B2 (en) Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads
US11734480B2 (en) Performance modeling and analysis of microprocessors using dependency graphs
US20080172551A1 (en) Operation verification method for verifying operations of a processor
JP2008176453A (ja) シミュレーション装置
JP3373607B2 (ja) プロセッサの制御機構検証用命令列の自動生成方法及び装置
Velev Using rewriting rules and positive equality to formally verify wide-issue out-of-order microprocessors with a reorder buffer
JP2000268074A (ja) 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法
Bhagwati et al. Automatic verification of pipelined microprocessors
JP2001273340A (ja) マイクロプロセッサの設計検証方法及びマイクロプロセッサの設計検証装置及びパイプラインシミュレータ生成装置
Aagaard et al. Reasoning about pipelines with structural hazards
JPH0850554A (ja) プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置
Nelson et al. Formal verification of a superscalar execution unit
Srivas et al. Verification of the FtCayuga fault-tolerant microprocessor system. Volume 1: A case study in theorem prover-based verification
US20050149301A1 (en) Method for design validation using retiming
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
JP3171182B2 (ja) 機能合成方法,機能合成装置およびその記録媒体
Gharehbaghi et al. Error model free automatic design error correction of complex processors using formal methods
US9880810B1 (en) Universal shifter and rotator and methods for implementing a universal shifter and rotator
Park et al. Automatic generation of operation tables for fast exploration of bypasses in embedded processors
WO2000068782A1 (fr) Procede de mise au point d'un circuit integre a semiconducteur