JP6209892B2 - 競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置 - Google Patents

競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置 Download PDF

Info

Publication number
JP6209892B2
JP6209892B2 JP2013157057A JP2013157057A JP6209892B2 JP 6209892 B2 JP6209892 B2 JP 6209892B2 JP 2013157057 A JP2013157057 A JP 2013157057A JP 2013157057 A JP2013157057 A JP 2013157057A JP 6209892 B2 JP6209892 B2 JP 6209892B2
Authority
JP
Japan
Prior art keywords
transaction
event
events
pair
timing adjustment
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
JP2013157057A
Other languages
English (en)
Other versions
JP2015026337A (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 JP2013157057A priority Critical patent/JP6209892B2/ja
Publication of JP2015026337A publication Critical patent/JP2015026337A/ja
Application granted granted Critical
Publication of JP6209892B2 publication Critical patent/JP6209892B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、半導体装置の競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置に関する。
LSI等の半導体装置は、機能検証装置を用いてハードウェア記述言語により記載された論理回路を検証する。この機能検証の一つとして、複数信号のタイミング依存によるLSI内部信号の競合検証がある。
競合検証では、例えば、競合の条件を登録したテーブルを参照し、複数のプログラムが並行して動作するシミュレーション中に発生した条件のうち競合させたい条件が一致するかをチェックする技術がある。この技術では、一部の条件一致時にシミュレーション実行を停止し、全部の条件一致時にシミュレーション実行を再開させる(例えば、下記特許文献1参照。)。
特開平11−238002号公報
しかしながら、従来技術では、データの入力側からみて深い位置に位置する競合点における競合の検証時に、複数のデータパス別の時間差を全て把握して競合を生じさせることは困難であり、競合の検証に手間がかかった。
例えば、競合点として、コア内部の競合点(アービタ)の調停動作(優先出力)を確認するために、このアービタに対して2つの信号(データ1,データ2)が同時に入力されたときの検証を行う。この際、コアに対して外部からそれぞれ入力される2つのデータは、競合点(アービタ)に到達するまでにかかる時間が異なる場合がある。例えば、2つのデータパス上で競合点(アービタ)より手前の回路ブロック(例えば、フリップフロップ(FF))で所定のイベント発生が生じると、検証が必要な競合点(アービタ)にリクエストが届くまでの(遅延)時間が異なってしまう。
図10は、競合の発生を説明するための図である。横軸は時間であり、縦軸には2つのデータ(データ1,データ2)を示す。はじめに、(a)に示すように、データ1,2を同時に(時期t=0)入力させたとする。このときのアービタに対するリクエストが生じるまでの時間は、データ1がt=1、データ2がt=2であったとする。この場合、データ1,2間のリクエストの時間差Δを波形等で確認する。この後、(b)に示すように、時間差Δに相当する分だけデータ2の入力タイミングを遅らせれば、競合点(アービタ)においてデータ1,2のリクエストが競合可能となる。
しかしながら、(b)に示した入力タイミングを遅らせたとしても、競合点(アービタ)においてデータ1,2のリクエストのタイミングが競合しない場合がある。例えば、(c)に示すように、データ2に対して時間差Δを与えて入力しても、実際に競合点(アービタ)にリクエストが発生するまでの時間がt=2’となり予想したt=2と異なることがある。
この相違は、データパス上の複数の回路ブロック(FF)において所定のイベント発生等に基づく遅延量の積算によって生じる。従来、検証装置では、大規模なLSI上での個々の回路ブロック(FF)の順序制御までは把握せずに、時間差Δを更新して所定回数までに競合条件が満たされるか判断している。そして、検証装置による競合条件が満たされない場合、設計者により時間差Δを手作業で更新する等の作業が必要となり、競合条件に収束するまでに時間と手間がかかった。また、手作業で行っても競合条件に収束しない結果となる場合もある。
ここで、データパス上の回路ブロック(FF)は膨大な数であるため、個々の回路ブロックの動作にかかる遅延量を全て把握することは困難であり、競合点(アービタ)における競合のタイミングが最適となるようにいかにして調整するか、その具体的解決が望まれている。データの入力側からみたデータパスの深い位置の競合点(アービタ)では、手前に多数のブロックが存在するため、複数のデータが競合する入力タイミングを得ることが困難であった。
一つの側面では、本発明は、複数のデータの任意の競合点における競合タイミングを最適に調整できることを目的とする。
一つの案では、競合させたい一対のイベントの指定により、半導体装置の入力のトランザクションとイベントとに基づき、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択し、選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整し、入力タイミングが調整された一方のトランザクションに含まれる他のイベントの時刻が、他方のトランザクションに含まれる同一のイベントの時刻と不一致となるかを判断し、判断結果として不一致が得られた1組のトランザクションと、調整した前記入力タイミングと、を競合させたい一対のイベントに対するタイミング調整結果として出力する。
一つの実施形態によれば、複数のデータの任意の競合点における競合タイミングを最適に調整できる。
図1は、実施の形態にかかる競合テスト用タイミング調整装置の機能を示すブロック図である。 図2は、イベントテーブルに格納されるイベントテーブル情報を示す図表である。 図3は、イベントテーブル生成の処理手順の一例を示すフローチャートである。 図4は、競合シナリオ生成にかかるトランザクション選択例を説明するための図表である。 図5は、競合シナリオ生成のためのトランザクション選択処理の一例を示すフローチャートである。 図6は、競合シナリオ生成処理の一例を示すフローチャートである。 図7は、競合テスト用タイミング調整装置のハードウェア構成の一例を示すブロック図である。 図8は、競合テスト用タイミング調整装置の配置例を示す図である。 図9は、競合点でのタイミング競合の一例を示す図である。 図10は、競合の発生を説明するための図である。
(実施の形態)
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。図1は、実施の形態にかかる競合テスト用タイミング調整装置の機能を示すブロック図である。競合テスト用タイミング調整装置100は、イベントテーブル生成部101と、イベントテーブル102と、競合シナリオ生成部103と、を含む。
イベントテーブル生成部101は、コアに対する入力トランザクションの集合の情報(Tr1,Tr2,…,Trn)110と、コア内部における内部イベントのリスト情報(Ev1,Ev2,…,Evm)111とに基づき、イベントテーブル情報112を生成し、イベントテーブル102に格納する。内部イベントのリスト情報111は、コア内部において競合点(アービタ等)における競合させたい(競合対象)のイベントを含む。
競合シナリオ生成部103は、イベントテーブル102に格納されたイベントテーブル情報112と、競合させたいイベントの組の情報113の指定入力と、に基づいて、競合させたいイベントに対する競合シナリオの情報121を生成する。競合させたいイベントの組の情報113は、内部イベントのリスト情報111のなかからサブセットとして用意し、指定入力することができる。例えば、競合点がコア内部の所定のブロック(例えばアービタ)の場合、このブロック(アービタ)に対してリクエスト(Req)を出力する1対のブロック(例えばFF)がイベントの組の情報として指定入力される。
(イベントテーブルの生成について)
図2は、イベントテーブルに格納されるイベントテーブル情報を示す図表である。イベントテーブル生成部101は、入力トランザクションの集合の情報110の複数のトランザクション(Tri)をシミュレータによりシミュレーション実行する。このシミュレーション実行時に、イベントテーブル生成部101は、内部イベントのリスト情報111に登録されたイベント(Evj)が発生する時刻(Tk)を一覧化したイベントテーブル情報112をイベントテーブル102に格納する。イベントテーブル情報112は、縦軸が各トランザクションTri、横軸には各イベントEvjを時刻Tk毎に(右方向ほど時刻経過)格納する。
例えば、各イベントEvjは、コア内部におけるデータパス上の各FFに相当する。図2において、例えば、図中112aに示すトランザクションTr3を実行した際に、イベントEv1,Ev3は発生せず、イベントEv2,Ev4,Ev5が発生した時刻がそれぞれT=50,80,100であることを示している。
図3は、イベントテーブル生成の処理手順の一例を示すフローチャートである。イベントテーブル生成部101が行うイベントテーブル情報112の生成内容について説明する。はじめに、イベントテーブル生成部101は、トランザクションTri実行の初期値i=0をセットする(ステップS301)。次に、イベントテーブル生成部101は、シミュレータにより、入力トランザクションの集合の情報110が示すトランザクションTriを実行させる(ステップS302)。
この後、イベントテーブル生成部101は、内部イベントのリスト情報111に登録されたイベント(Evj)が発生する時刻(Tk)をイベントテーブル情報112の該当するイベント(Evj)に記録する(ステップS303)。そして、変数iをインクリメントする。
そして、イベントテーブル生成部101は、n個の最後のトランザクション(Trn)のシミュレーション実行が終了したか判断する(i<n)(ステップS304)。そして、未実行分のトランザクションがあれば(ステップS304:No)、ステップS302に戻り、全て実行済みであれば(ステップS304:Yes)、以上のイベントテーブル情報112の生成の処理を終了する。
(競合シナリオの生成について)
競合シナリオ生成部103は、以下の(1)、(2)の処理を行う。
(1)競合イベントが同時に発生するための時刻調整と、トランザクションの組の優先度の付与。この処理では、イベントテーブル情報112に基づいて、競合点において競合させたいイベントが発生するトランザクションの組を全て生成する。そして、競合させたいイベントが同時に発生するように、トランザクションの開始時刻を決定する。また、他のイベントの競合可能性により、生成したトランザクションの組に優先度を付与する。
(2)上記(1)で付与された優先度順にトランザクションの各組み合わせのシミュレーション実行による競合発生の有無の確認と、競合シナリオの生成。この処理では、競合シナリオ生成部103は、トランザクションの各組み合わせに対し、優先度順にシミュレータによるシミュレーションの実行により、実際に競合点で競合が生じるか否かを確認し、競合が起こった組み合わせを競合シナリオ121として出力する。
(1:競合イベントが同時に発生するための時刻調整と、トランザクションの組の優先度の付与の処理内容の説明)
図4は、競合シナリオ生成にかかるトランザクション選択例を説明するための図表である。図2と同様のイベントテーブル情報112の例を用い、競合シナリオ生成部103が行う処理例について説明する。ここで、競合点(アービタ等)において競合させたいイベントの組がEv4とEv5であるとする。
はじめに、(a)に示すように、競合シナリオ生成部103は、(1)イベントEv4を発生させるトランザクションTrを探す。そして、(2)イベントEv4が含まれるトランザクションTr1を選択する。この後、(3)イベントEv5を発生させるトランザクションを探し、トランザクションTr2を選択する。
この後、(b)示すように、(4)選択したトランザクションTr1のイベントEv4(T=50)と、トランザクションTr2のイベントEv5(T=80)を同時に発生させる時刻を判断する。この場合、競合シナリオ生成部103は、トランザクションTr1とTr2の時刻の差分Δにより、トランザクションTr1の開始時刻を+30と判断する。
この後、(c)に示すように、(5)トランザクションTr1のイベントEv2の時刻が50となり(20+30)、トランザクションTr2のイベントEv2の時刻50と同じになる。これにより、イベントEv2における競合による調停が働き、トランザクションTr1またはTr2のいずれかの処理が待たされる(遅延が生じる)可能性がある。
イベントEv2の発生は、競合させたいイベントEv4とEv5が発生する前(データパス上の手前)の位置であるため、競合シナリオ生成部103は、イベントEv2における調停の結果、イベントEv4とEv5は同時に発生(競合)しない可能性があると判断する。このような場合、競合シナリオ生成部103は、トランザクションTr1とTr2の組み合わせを低優先度に設定する。
そして、(d)に示すように、(6)一方のトランザクションTr1を基準として組み合わせたときの他方のトランザクションTr2を優先度を下げ、対応してテーブルの格納順位を下げる。この後、(7)競合シナリオ生成部103は、再度イベントEv5を生じるトランザクションTrを探し、(8)トランザクションTr3を選択する。
この後、選択したトランザクションTr1のイベントEv4(T=50)と、トランザクションTr3のイベントEv5(T=100)を同時に発生させる時刻を判断する。この場合、競合シナリオ生成部103は、トランザクションTr1とTr3の時刻の差分Δにより、トランザクションTr1の開始時刻を+50と判断する。
この場合、(e)に示すように、トランザクションTr1について、(9)イベントEv2の開始時刻は70となり(20+50)、トランザクションTr3の時刻50と異なるため、同時に発生しない(競合なし)と判断する。また、(10)イベントEv3については、トランザクションTr3側にイベントがないため、同時に発生しないと判断する。そして、(11)イベントEv4の開始時刻は100であり(50+50)、トランザクションTr3の時刻80と異なるため、同時に発生しない(競合なし)と判断する。
以上により、競合シナリオ生成部103は、(12)トランザクションTr1とTr3の組み合わせを高優先度とする。
この後、競合シナリオ生成部103は、トランザクションの各組み合わせに対し、シミュレータによるシミュレーションの実行により、実際に競合点で競合が生じるか否かを確認し、競合が起こった組み合わせを競合シナリオ121として出力する。この際、図4に示した高優先度のトランザクションTr1のイベントEv4と、トランザクションTr3のイベントEv5との組み合わせ、を優先してシミュレーションを行う。
図5は、競合シナリオ生成のためのトランザクション選択処理の一例を示すフローチャートである。上記図4の処理例に示した競合シナリオ生成部103が行う処理内容について説明する。以下の処理では、競合させたいイベントを含む1組のトランザクションを選択して、1組のトランザクションに含まれる複数の他の(競合点以外の)イベントについての競合が発生しないトランザクションの組を選択する。競合シナリオ生成部103は、イベントテーブル102のイベントテーブル情報112からトランザクションの組を変更して読み出し、各トランザクションの組に対する以下の処理を行う。
はじめに、競合シナリオ生成部103は、イベントテーブル102のイベントテーブル情報112を読み出し、競合点におけるイベントEvjを含むトランザクションTriを選択する(ステップS501)。次に、選択したトランザクションTriに含まれる全てのイベントEvjを抽出したか判断し(ステップS502)、未抽出分が残っていれば(ステップS502:No)、残りのイベントEvjを抽出し(ステップS503)、ステップS501に戻る。全て抽出済みであれば(ステップS502:Yes)、ステップS504に移行する。
ステップS501〜ステップS503の処理により、イベントテーブル情報112に含まれる全てのトランザクションTriの全てのイベントEvjが抽出される。抽出した情報は、図示しないメモリに保持しておく。例えば、図4の(a)に示す例では、トランザクションTr1〜Tr3に含まれる各イベントEvが抽出される。
以下の処理では、競合シナリオ生成部103は、競合点における競合を発生させる複数のイベントEvjを含む全てのトランザクションTriについて、1組(一対)のトランザクションTri毎にタイミング(時刻)調整を行い、競合点以外でのイベントでの競合の発生の有無を確認する。
まず、競合シナリオ生成部103は、1組のトランザクションTriを選択する(ステップS504)。例えば、図4に示したトランザクションTr1,Tr2を選択する。次に、選択した1組のトランザクションTriのうち、時刻Tijが最大値のイベントEvjを探す(ステップS505)。最大値の時刻Tijにおけるイベントは、コア上のデータパスにおいて最も奥部に位置するブロック(アービタ等)における競合を示す。例えば、図4の(b)に示す例では、1組のトランザクションTr1,Tr2のうち最大値の時刻Tijは、80である。
なお、この例では、競合点を最も奥に位置するブロックとして時刻の最大値を探すこととしたが、競合点をデータパス上でより手前の任意のブロックに設定し、対応する時刻を探すこととしてもよい。
次に、競合シナリオ生成部103は、選択した1組のトランザクションTriのうち一方のトランザクションTriの開始時刻を変更する(ステップS506)。この際、競合シナリオ生成部103は、1組のトランザクションTriにおける競合点における時刻が同じになる差分Δを求め、一方のトランザクションTriの開始時刻に差分Δを加える。例えば、図4の(c)に示す例では、トランザクションTr1の開始時刻に差分Δとして30を加える。
次に、競合シナリオ生成部103は、差分Δを加えたトランザクションTriに含まれる各イベントEvjの時刻に差分Δを加える(ステップS507)。図4の(c)に示す例では、トランザクションTr1の各イベントEv2,Ev3,Ev4の時刻にそれぞれ差分Δの30が加えられる。
次に、競合シナリオ生成部103は、選択した一対のトランザクションTriにおける各イベントEvjにおける競合の有無を確認する処理を行う。この際、所望する競合点に対応するイベントEvjの時刻は一致し、かつ、他のイベントEvjにおける時刻が不一致であることを条件として確認の処理を行う。
ステップS508の処理は、1組のトランザクションTriを更新する処理であるが、競合シナリオ生成部103は、初回については、ステップS504にて選択された1組のトランザクションTriを選択する(ステップS508)。
以降の処理では、変数kのインクリメントにより、競合点における競合を行うトランザクションTriの組が変更される。すなわち、競合点(アービタ)に対するデータ入力は、1組に限らず複数存在する可能性があるため、これら複数のデータ入力に対応する複数組のトランザクションTriを順次選択する。例えば、図4の例では、トランザクションTr1とTr2の組の後、トランザクションTr1を代えずにトランザクションTr3を選択してトランザクションTr1,Tr3を1組とする。
ステップS508の後、競合シナリオ生成部103は、1組のトランザクションTriについて、各イベントEvjにおける時刻Tijが不一致であるか判断する(ステップS509)。例えば、図4の(c)に示す例では、トランザクションTr1,Tr2のイベントEv2,Ev3,Ev4における時刻の不一致を判断する。
この結果、競合シナリオ生成部103は、イベントEvjにおける時刻の一致が生じた場合には(ステップS509:No)、該当するトランザクションTriの優先度を下げ、イベントテーブル情報112の最下段に位置変更する(ステップS510)。例えば、図4(d)に示すように、1組のトランザクションTriのうち一方のトランザクションTr2の優先度を下げてイベントテーブル情報112の最下段に位置変更する。これにより、イベントテーブル情報112には、上段ほど、優先度が高いトランザクションTriが格納されることになる。
次に、競合シナリオ生成部103は、1組のトランザクションTriの一方のトランザクションを新たなトランザクションTriに変更する(ステップS511)。この際、トランザクションは競合点におけるイベント(時刻)を含むトランザクションを選択する。図4の(d)の例では、新たなトランザクションTriとしてトランザクションTr3を選択し、トランザクションTr1,Tr3が新たな1組のトランザクションとなる。
次に、競合シナリオ生成部103は、この新たな一組のトランザクションTriを用いた上記のタイミング調整の処理を実行済みであるか確認する(ステップS512)。未実行の組であれば(ステップS512:No)、ステップS509に戻るが、実行済みであれば(ステップS512:Yes)、全ての組み合わせのトランザクションTriにおいてタイミング調整の結果、競合点以外のイベントでの競合が生じたため、タイミング調整(以降の競合シナリオ作成)は不可能と判断し(ステップS513)、以上のタイミング調整にかかる処理を終了する。
また、上記ステップS509において、競合シナリオ生成部103は、イベントEvjにおける時刻の不一致が確認できた場合には(ステップS509:Yes)、競合点における他の組のトランザクションTriがあるか判断する(ステップS514)。そして、他の組のトランザクションTriが残っている場合には(ステップS514:Yes)、競合シナリオ生成部103は、変数kをインクリメントし(ステップS515)、ステップS508に戻り、新たなトランザクションTri+kを用いた1組のトランザクションにおけるタイミングの調整処理を行う。
一方、他の組のトランザクションTriがない場合には(ステップS514:No)、競合シナリオ生成部103は、競合点における全ての組のトランザクションTriに対するタイミング調整が有効であり、以降の競合シナリオの作成が可能であると判断し、以上のタイミング調整の処理を終了する。
(2:優先度順にトランザクションの各組み合わせのシミュレーション実行による競合発生の有無の確認と、競合シナリオの生成の処理説明)
図6は、競合シナリオ生成処理の一例を示すフローチャートである。競合シナリオ生成部103が行う処理内容について説明する。図6は、図5に示した処理の実行後に競合シナリオ生成部103が実行し、選択した1組のトランザクション毎の競合シミュレーションをシミュレータに実行させる。そして、競合が起こるトランザクションの組み合わせを競合シナリオとして生成する。
はじめに、競合シナリオ生成部103は、初期設定を行う(ステップS601)。トランザクションTr1をd1とし、他のトランザクションTr2以降をd2〜dnとする。また、フラグを初期値(0)に設定する。フラグは、イベントの開始時間変更時に1に変更される。
次に、競合シナリオ生成部103は、トランザクションd1〜dnの組み合わせをシミュレータに出力し、シミュレーションを実行させる(ステップS602)。この際、図4および図5を用いて説明した選択処理により、優先度が高い1組のトランザクションを最初に選択し、シミュレータにシミュレーション実行させる。そして、競合シナリオ生成部103は、シミュレーション結果が、所望する一対のイベントにおいて実際に競合条件が満たされたかを判断する(ステップS603)。
シミュレーション実行により実際に競合条件が満たされたシミュレーション結果が得られた場合には(ステップS603:Yes)、競合シナリオ生成部103は、競合テスト用タイミング調整が成功したと判断する。そして、競合シナリオ生成部103は、ステップS602にて実行したトランザクションの組み合わせの情報を示す競合シナリオを生成し(ステップS604)、処理を終了する。
一方、シミュレーション実行により競合条件が満たされないシミュレーション結果の場合には(ステップS603:No)、競合シナリオ生成部103は、各組み合わせの一方のトランザクションd1以外のトランザクションd(d2〜dn)について、各イベントEvjに所定の時間差Δを加える(ステップS605)。時間差Δにより、上述したように、イベントEvjの開始時間が変更される。
次に、競合シナリオ生成部103は、フラグが1であるか判断する(ステップS606)。フラグが1でなければ(ステップS606:No)、開始時間の変更に対応してフラグを1に変更し(ステップS607)、ステップS602に戻り、ステップS602以下の処理を再実行する。開始時間の変更後のシミュレーション実行により、競合条件が満たされれば(ステップS603:Yes)、タイミング調整が成功した(ステップS604)、と判断できるようになる。ステップS602〜ステップS607の処理は、既存の競合タイミング検証と同等の処理である。
一方、ステップS606にて、フラグが1であれば(ステップS606:Yes)、競合シナリオ生成部103に設けられたアサーション生成部は、アサーションの生成を行う(ステップS608)。このアサーションは、各イベントにおける競合があり得るかの組の情報であり、例えば、(e1|−>!e2)||(e1|−>!e3)…(e1|−>!en)との記載で表し、各イベントe1,e2…からのそれぞれのリクエスト(Req)に関する情報を含む。そして、フォーマル検証ツールにこのアサーションを渡し、シミュレータによるシミュレーション時のフォーマル分析を実行させる(ステップS609)。フォーマル検証ツールからは、分析結果としてアサーションが証明されたか否かを競合シナリオ生成部103に返答する。
そして、競合シナリオ生成部103は、アサーションが証明された場合には(ステップS610:Yes)、ステップS612に移行する。アサーションが証明されていない場合には(ステップS610:No)、競合シナリオ生成部103は、次に高い優先度のトランザクションの組を選定し(ステップS611:Yes)、ステップS601に戻る。
ステップS611において、次に優先の高いトランザクションの組がない場合(ステップS611:No)には、ステップS612に移行する。ステップS612では、競合シナリオの生成が不可能であり失敗であると判断し(ステップS612)、以上の競合シナリオ生成の処理を終了する。
(競合テスト用タイミング調整装置のハードウェア構成)
図7は、競合テスト用タイミング調整装置のハードウェア構成の一例を示すブロック図である。図7において、競合テスト用タイミング調整装置700は、CPU701と、Read−Only Memory(ROM)702と、Random Access Memory(RAM)703と、を含む。また、半導体メモリやディスクドライブ等の記憶部704と、ディスプレイ708と、通信インターフェース(I/F)709と、キーボード710と、マウス711と、スキャナ712と、プリンタ713とを備えてもよい。これらCPU701〜プリンタ713はバス714によってそれぞれ接続されている。
CPU701は、競合テスト用タイミング調整装置700の全体の制御を司る演算処理装置である。ROM702は、競合テスト用タイミング調整装置700の競合テスト用タイミング調整プログラムを記憶する不揮発性メモリである。RAM703は、CPU701による演算処理実行時のワークエリアとして使用される揮発性メモリである。
通信インターフェース709は、ネットワーク715と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。具体的に、通信インターフェース709は、通信回線を通じてネットワーク715となるLocal Area Network(LAN)、Wide Area Network(WAN)、インターネットなどに接続され、ネットワーク715を介して他の装置に接続される。通信インターフェース709には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ708は、競合テスト用タイミング調整処理のための設定画面やタイミング調整結果について、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などをデータ表示する装置である。ディスプレイ708には、例えば、Thin Film Transistor(TFT)液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイなどを採用することができる。
上述した図1を用いて説明した競合テスト用タイミング調整の機能(イベントテーブル生成部101、競合シナリオ生成部103)は、図7に記載のCPU701がROM702に格納された競合テスト用タイミング調整プログラムを実行処理して得ることができる。
(競合テスト用タイミング調整装置の配置を示す図)
図8は、競合テスト用タイミング調整装置の配置例を示す図である。フォーマル検証ツール801と、シミュレータ802との間のインターフェースとして競合テスト用タイミング調整装置100(競合シナリオ生成部103)が配置される。
競合シナリオ生成部103には、上述したように、競合点での競合を確認するために、競合点で競合させたいイベントの組(例えば、Ev4,Ev5)の情報が入力される。競合シナリオ生成部103は、上述した(1)、(2)の処理により、このイベントの組の情報に基づいて、このイベントに対応するトランザクションの組を生成する。そして、競合点において競合させたいイベントが同時に起こるように、トランザクションのデータd1…dnに対するタイミング調整を更新する。
この更新は、図8のデータ入力シーケンス更新処理部103aが実行し、シミュレータ802に対してタイミング調整し、更新したトランザクションd1…dnを出力する。シミュレータ802は、シミュレーション結果t1…tnをデータ入力シーケンス更新処理部103aに返答する。
また、アサーション生成部103bは、アサーションを作成してフォーマル検証ツール801に出力する。フォーマル検証ツール801は、フォーマル分析結果をアサーション生成部103bに返答する。
そして、競合シナリオ生成部103は、データ入力シーケンス更新処理部103a、およびアサーション生成部103bからの返答に基づいて、競合点において競合させたいイベントが同時に起こり、かつ、他のイベント(競合点よりも前のデータパス上のブロック)における競合を回避する旨の競合シナリオを生成し、出力する。競合シナリオは、シミュレータ802に出力されるものであり、シミュレータ802に対する競合可能データ入力シーケンスをテキスト等により記載したものである。
(競合点でのタイミング競合の例)
図9は、競合点でのタイミング競合の一例を示す図である。コア901には、複数のデータパスが配置され、データパス1(902a)上の複数のブロック(FF1〜FFn)と、データパス2(902b)上の複数のブロック(FF1〜FFm)が配置されている。これらデータパス1,2の入力側からみた奥部のブロックとしてアービタ903が配置されているとする。そして、このアービタ903におけるデータ入力の競合時の動作を検証する場合には、アービタ903の直前のFFnとFFmからのリクエスト(Req)を同時に発生させる必要がある。
このため、テストベンチ910は、データパス1,2に対してデータを入力するドライバ1(911a),ドライバ2(911b)の入力タイミングを調整する。テストベンチ910は、上述したフォーマル検証ツール801、シミュレータ802および競合テスト用タイミング調整装置100(競合シナリオ生成部103)を含む。そして、競合シナリオ生成部103によって最適に調整されたタイミングを有してデータが入力され、アービタ903は、直前のFFnとFFmからのリクエスト(Req)を同時に発生させることができる。
これにより、コア901の奥部に位置するアービタ903等のブロックであっても、競合を発生させることができるようになり、競合発生時のブロックの動作(アービタ903の調停動作)をモニタ等で確認できるようになる。なお、データパス上の任意のブロック(イベント)を指定して競合テスト用タイミング調整装置に入力すれば、このブロックにおける競合についても同様に競合時の動作を確認できるようになる。
さらには、入力トランザクションのイベントのうち最大値の時刻を抽出するとともに、一対のイベントが入力されるブロックを特定してもよい。そして、イベントテーブル112を参照して、データパスの最奥部に位置するブロック(例えばアービタ903)を競合点として競合点を自動探索することもできる。これにより、競合させたい一対のイベントの指定入力を省くことができる。
以上説明した実施の形態によれば、競合点において競合させたいイベントを同時に起こすことができるようにトランザクションの入力タイミングを調整することができる。この際、入力タイミングを調整したトランザクションにおいて競合点以外のイベントにおける競合の有無を確認する。これにより、競合点以外のデータパス上の前段のブロックでのイベント発生による遅延発生の可能性を確認でき、競合点において競合させたいイベントの入力タイミングを最適に調整できるようになる。
これにより、単にトランザクションの入力タイミング(開始時刻)を遅延させただけの場合に、他のブロックでのイベント発生を要因として、競合点で競合のタイミングがずれ、競合が生じない、状態となることを回避できる。そして、競合点で競合させたいイベントを同時に起こるトランザクションを用いて競合タイミングテスト(競合検証)を行えるようになる。
なお、本実施の形態で説明したプログラムは、予め用意されたプログラムをコンピュータで実行することにより実現することができる。また、このプログラムは、半導体メモリ、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)半導体装置の内部信号を任意のイベントで競合させる競合タイミングを調整する競合テスト用タイミング調整プログラムにおいて、
コンピュータに、
競合させたい一対のイベントの指定により、前記半導体装置の入力のトランザクションと前記イベントとに基づき、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択させ、
選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整させ、
入力タイミングが調整された一方のトランザクションに含まれる他のイベントの時刻が、他方のトランザクションに含まれる同一のイベントの時刻と不一致となるかを判断させ、
判断結果として不一致が得られた1組のトランザクションと、調整した前記入力タイミングと、を競合させたい一対のイベントに対するタイミング調整結果として出力させる、
処理を実行させることを特徴とする競合テスト用タイミング調整プログラム。
(付記2)前記半導体装置の入力のトランザクションと、前記イベントとを関連付けたイベントテーブルを生成させ、
競合させたい一対のイベントの入力に基づき、前記イベントテーブルを参照して、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択させることを特徴とする付記1に記載の競合テスト用タイミング調整プログラム。
(付記3)前記判断結果として一致が生じた前記一方のトランザクションには低い優先度を付与することを特徴とする付記1または2に記載の競合テスト用タイミング調整プログラム。
(付記4)前記判断結果として一致が生じた後、前記一対のイベントに関連する前記トランザクションの組が残っていない場合には、一対のイベントに対するタイミング調整が不可であると判断することを特徴とする付記1〜3のいずれか一つに記載の競合テスト用タイミング調整プログラム。
(付記5)前記トランザクションをシミュレータに実行させ、前記イベントが生じた時刻を前記イベントテーブルに記録させることを特徴とする付記2〜4のいずれか一つに記載の競合テスト用タイミング調整プログラム。
(付記6)前記タイミング調整結果により得られた複数組のトランザクションをシミュレータに出力させ、
前記シミュレータのシミュレーション結果に基づき、前記一対のイベントにおける競合条件が満たされた場合に、一対のイベントに対するタイミング調整に関する情報を競合シナリオとして出力させる、
ことを特徴とする付記1〜5のいずれか一つに記載の競合テスト用タイミング調整プログラム。
(付記7)前記判断結果として一致が生じた前記一方のトランザクションは、前記イベントテーブルの優先度が低い格納位置に変更させることを特徴とする付記2〜6のいずれか一つに記載の競合テスト用タイミング調整プログラム。
(付記8)選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻のうち、時刻が最大値のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整させることを特徴とする付記1〜7のいずれか一つに記載の競合テスト用タイミング調整プログラム。
(付記9)半導体装置の内部信号を任意のイベントで競合させる競合タイミングを調整する競合テスト用タイミング調整方法において、
コンピュータが、
競合させたい一対のイベントの指定により、前記半導体装置の入力のトランザクションと前記イベントとに基づき、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択し、
選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整し、
入力タイミングが調整された一方のトランザクションに含まれる他のイベントの時刻が、他方のトランザクションに含まれる同一のイベントの時刻と不一致となるかを判断し、
判断結果として不一致が得られた1組のトランザクションと、調整した前記入力タイミングと、を競合させたい一対のイベントに対するタイミング調整結果として出力する、
処理を実行することを特徴とする競合テスト用タイミング調整方法。
(付記10)半導体装置の内部信号を任意のイベントで競合させる競合タイミングを調整する競合テスト用タイミング調整装置において、
前記半導体装置の入力のトランザクションと、前記イベントとを関連付けたイベントテーブルと、
競合させたい一対のイベントの入力に基づき、前記イベントテーブルを参照して、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択し、
選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整し、
入力タイミングが調整された一方のトランザクションに含まれる他のイベントの時刻が、他方のトランザクションに含まれる同一のイベントの時刻と不一致となるかを判断し、
判断結果として不一致が得られた1組のトランザクションと、調整した前記入力タイミングと、を競合させたい一対のイベントに対するタイミング調整結果として出力する競合シナリオ生成部と、
を有することを特徴とする競合テスト用タイミング調整装置。
(付記11)前記トランザクションをシミュレータに実行させ、前記イベントが生じた時刻を前記イベントテーブルに記録させることにより、前記半導体装置の入力のトランザクションと、前記イベントとを関連付けた前記イベントテーブルを生成するイベントテーブル生成部、
をさらに有することを特徴とする付記10に記載の競合テスト用タイミング調整装置。
100 競合テスト用タイミング調整装置
101 イベントテーブル生成部
102 イベントテーブル
103 競合シナリオ生成部
901 コア
903 アービタ
910 テストベンチ

Claims (10)

  1. 半導体装置の内部信号を任意のイベントで競合させる競合タイミングを調整する競合テスト用タイミング調整プログラムにおいて、
    コンピュータに、
    競合させたい一対のイベントの指定により、前記半導体装置の入力のトランザクションと前記イベントとに基づき、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択させ、
    選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整させ、
    入力タイミングが調整された一方のトランザクションに含まれる他のイベントの時刻が、他方のトランザクションに含まれる同一のイベントの時刻と不一致となるかを判断させ

    判断結果として不一致が得られた1組のトランザクションと、調整した前記入力タイミングと、を競合させたい一対のイベントに対するタイミング調整結果として出力させる、
    処理を実行させることを特徴とする競合テスト用タイミング調整プログラム。
  2. 前記半導体装置の入力のトランザクションと、前記イベントとを関連付けたイベントテーブルを生成させ、
    競合させたい一対のイベントの入力に基づき、前記イベントテーブルを参照して、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択させることを特徴とする請求項1に記載の競合テスト用タイミング調整プログラム。
  3. 前記判断結果として一致が生じた前記一方のトランザクションには低い優先度を付与することを特徴とする請求項1または2に記載の競合テスト用タイミング調整プログラム。
  4. 前記判断結果として一致が生じた後、前記一対のイベントに関連する前記トランザクションの組が残っていない場合には、一対のイベントに対するタイミング調整が不可であると判断することを特徴とする請求項1〜3のいずれか一つに記載の競合テスト用タイミング調整プログラム。
  5. 前記トランザクションをシミュレータに実行させ、前記イベントが生じた時刻を前記イベントテーブルに記録させることを特徴とする請求項2に記載の競合テスト用タイミング調整プログラム。
  6. 前記タイミング調整結果により得られた複数組のトランザクションをシミュレータに出力させ、
    前記シミュレータのシミュレーション結果に基づき、前記一対のイベントにおける競合条件が満たされた場合に、一対のイベントに対するタイミング調整に関する情報を競合シナリオとして出力させる、
    ことを特徴とする請求項1〜5のいずれか一つに記載の競合テスト用タイミング調整プログラム。
  7. 前記判断結果として一致が生じた前記一方のトランザクションは、前記イベントテーブルの優先度が低い格納位置に変更させることを特徴とする請求項2または5に記載の競合テスト用タイミング調整プログラム。
  8. 選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻のうち、時刻が最大値のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整させることを特徴とする請求項1〜7のいずれか一つに記載の競合テスト用タイミング調整プログラム。
  9. 半導体装置の内部信号を任意のイベントで競合させる競合タイミングを調整する競合テスト用タイミング調整方法において、
    コンピュータが、
    競合させたい一対のイベントの指定により、前記半導体装置の入力のトランザクションと前記イベントとに基づき、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択し、
    選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整し、
    入力タイミングが調整された一方のトランザクションに含まれる他のイベントの時刻が、他方のトランザクションに含まれる同一のイベントの時刻と不一致となるかを判断し、
    判断結果として不一致が得られた1組のトランザクションと、調整した前記入力タイミングと、を競合させたい一対のイベントに対するタイミング調整結果として出力する、
    処理を実行することを特徴とする競合テスト用タイミング調整方法。
  10. 半導体装置の内部信号を任意のイベントで競合させる競合タイミングを調整する競合テスト用タイミング調整装置において、
    前記半導体装置の入力のトランザクションと、前記イベントとを関連付けたイベントテーブルと、
    競合させたい一対のイベントの入力に基づき、前記イベントテーブルを参照して、前記一対のイベントに関連する複数の前記トランザクションを1組毎に選択し、
    選択した1組の前記トランザクションに含まれる前記一対のイベントの時刻が一致するように、一方のトランザクションの入力タイミングを調整し、
    入力タイミングが調整された一方のトランザクションに含まれる他のイベントの時刻が、他方のトランザクションに含まれる同一のイベントの時刻と不一致となるかを判断し、
    判断結果として不一致が得られた1組のトランザクションと、調整した前記入力タイミングと、を競合させたい一対のイベントに対するタイミング調整結果として出力する競合シナリオ生成部と、
    を有することを特徴とする競合テスト用タイミング調整装置。
JP2013157057A 2013-07-29 2013-07-29 競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置 Expired - Fee Related JP6209892B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013157057A JP6209892B2 (ja) 2013-07-29 2013-07-29 競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013157057A JP6209892B2 (ja) 2013-07-29 2013-07-29 競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置

Publications (2)

Publication Number Publication Date
JP2015026337A JP2015026337A (ja) 2015-02-05
JP6209892B2 true JP6209892B2 (ja) 2017-10-11

Family

ID=52490915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013157057A Expired - Fee Related JP6209892B2 (ja) 2013-07-29 2013-07-29 競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置

Country Status (1)

Country Link
JP (1) JP6209892B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2908339B2 (ja) * 1996-08-29 1999-06-21 日本電気アイシーマイコンシステム株式会社 半導体集積回路のシミュレーション方式
JP2001222442A (ja) * 2000-02-08 2001-08-17 Fujitsu Ltd パイプライン試験方法、パイプライン試験命令生成方法及びその記憶媒体
US6772370B1 (en) * 2000-11-03 2004-08-03 Freescale Semiconductor, Inc. Method and apparatus for generation of pipeline hazard test sequences
JP5308098B2 (ja) * 2008-08-13 2013-10-09 株式会社日立情報通信エンジニアリング 情報処理装置試験プログラム及び方法
JP2010244300A (ja) * 2009-04-06 2010-10-28 Mitsubishi Electric Corp テストパターン作成手法、シミュレーション方法、情報処理装置およびシミュレーション装置

Also Published As

Publication number Publication date
JP2015026337A (ja) 2015-02-05

Similar Documents

Publication Publication Date Title
KR102412480B1 (ko) 초기 스테이지 ic 레이아웃 설계용 drc 프로세싱 툴
US10521536B2 (en) RTL verification using computational complexity-based property ranking and scheduling
US9129081B2 (en) Synchronized three-dimensional display of connected documents
US20120317454A1 (en) Multi-targeting boolean satisfiability-based test pattern generation
CN101877016A (zh) 对临界尺寸(cd)扫描电镜的cd提取进行建模
US10969764B2 (en) Support device, design support method and computer-readable non-transitory medium
JP6693903B2 (ja) ハードウェア試験装置及びハードウェア試験方法
US10083272B2 (en) Integrated circuit design layout optimizer based on process variation and failure mechanism
JP2014106928A (ja) 試験方法、試験プログラム、および、試験制御装置
US9218273B2 (en) Automatic generation of a resource reconfiguring test
JP6209892B2 (ja) 競合テスト用タイミング調整プログラム、競合テスト用タイミング調整方法および競合テスト用タイミング調整装置
KR20180138401A (ko) 웹 기반의 자동시험장비의 운용 시스템 및 그 운용 방법
US20120254815A1 (en) Method and System for Synthesizing Relative Timing Constraints on an Integrated Circuit Design to Facilitate Timing Verification
JP2015166981A (ja) レイアウト検証方法、検証装置、及び検証プログラム
US20150261906A1 (en) Quality of results system
JP2009230392A (ja) シミュレーション装置、シミュレーション方法及びプログラム
US10885258B1 (en) Fixing ESD path resistance errors in circuit design layout
US9348963B1 (en) Automatic abutment for devices with horizontal pins
JP2017120514A (ja) 半導体設計支援装置、半導体設計支援方法、及び半導体設計支援プログラム
JP2009181292A (ja) Mc/dcパターン生成装置
JP2006268165A (ja) 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体
JP5310397B2 (ja) 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体
JP2018081354A (ja) シミュレーション支援装置、シミュレーション支援方法、およびシミュレーション支援プログラム
US20200074309A1 (en) Systems and methods to semantically compare product configuration models
JP6968736B2 (ja) 回路解析装置及び回路解析用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170410

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170828

R150 Certificate of patent or registration of utility model

Ref document number: 6209892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees