JP2009301192A - シミュレーション装置およびシミュレーション方法 - Google Patents
シミュレーション装置およびシミュレーション方法 Download PDFInfo
- Publication number
- JP2009301192A JP2009301192A JP2008153006A JP2008153006A JP2009301192A JP 2009301192 A JP2009301192 A JP 2009301192A JP 2008153006 A JP2008153006 A JP 2008153006A JP 2008153006 A JP2008153006 A JP 2008153006A JP 2009301192 A JP2009301192 A JP 2009301192A
- Authority
- JP
- Japan
- Prior art keywords
- assertion
- circuit
- signal
- computer
- break
- 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.)
- Withdrawn
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
【課題】アサーション記述のハードウェア化に伴う回路規模の増大を防ぐ。
【解決手段】プログラマブル回路102は、動作クロック生成回路104のクロック信号に同期して動作する設計対象回路106を実装し、回路106に対するアサーション検証開始の信号を生成するアサーショントリガ検出回路(検出回路)107_1〜107_nおよびアサーション検証の結果判定を行うアサーション条件判定式回路(判定回路)108_1〜108_nを含む。コンピュータ100は、回路106のシミュレーション結果を判定するアサーション結果判定プログラム101を実行する。検出回路によってアサーション検証開始を検出し、コンピュータ100が、アサーション結果の判断タイミングを決定し、判定回路がアサーション検証の結果判定を行い、コンピュータ100が、判断タイミングにおいて結果判定を元にアサーション検証を行う。
【選択図】図1
【解決手段】プログラマブル回路102は、動作クロック生成回路104のクロック信号に同期して動作する設計対象回路106を実装し、回路106に対するアサーション検証開始の信号を生成するアサーショントリガ検出回路(検出回路)107_1〜107_nおよびアサーション検証の結果判定を行うアサーション条件判定式回路(判定回路)108_1〜108_nを含む。コンピュータ100は、回路106のシミュレーション結果を判定するアサーション結果判定プログラム101を実行する。検出回路によってアサーション検証開始を検出し、コンピュータ100が、アサーション結果の判断タイミングを決定し、判定回路がアサーション検証の結果判定を行い、コンピュータ100が、判断タイミングにおいて結果判定を元にアサーション検証を行う。
【選択図】図1
Description
本発明は、シミュレーション装置およびシミュレーション方法に関し、特にLSIの検証のためのソフトウェア及びハードウェアの協調シミュレーション技術に関する。
大規模化、複雑化するシステムLSIの設計において、シミュレーション及びシミュレーション結果確認に要する時間が増大しており、シミュレーションの高速化、シミュレーション結果確認の自動化が重要な課題となっている。この課題に対する1つの対策として、ソフトウェアシミュレータの機能拡張によりアサーション技術の導入が進んできた。ここでアサーションとは、「本来成立すべき条件」を表現したもので、回路がどのように振舞うべきか、或いは振舞ってはいけないかをアサーション言語(例えば、PSL、System Verilog Assertion等)で定義し、シミュレーション実行中に、常に回路動作を監視し、回路の不具合の発生時間と不具合箇所を特定して通知する検証手法である。
ところが、アサーションの適用時には、ソフトウェアシミュレータにかかる処理負荷が大きく、非適用時に比べてシミュレーション時間が著しく長くなる。そこで、シミュレーションの高速化手法としてソフトウェアシミュレータとハードウェアを接続した協調シミュレーション装置が利用される(特許文献1参照)。この協調シミュレーション装置では、ハードウェア上のプログラマブル回路に、ハードウェア記述言語(HDL)等で設計された設計対象回路を実装し、この設計対象回路を動作させるプログラムを、コンピュータ上で実行されるプログラムであるソフトウェアシミュレータ上に実現する。このような協調シミュレーション装置によれば、従来のソフトウェアシミュレータにおける処理負荷を軽減してシミュレーションの高速化を図ることが可能である。したがって、この協調シミュレーション装置にアサーション手法を実現する事で、回路の不具合の発生時間、不具合箇所の特定を効率良く行うことができる。
特許文献1に記載のシミュレーション装置において、プログラマブル回路は、コンピュータ及び設計対象回路間のデータ転送をトランザクション単位で行うデータ転送回路と、設計対象回路の動作が仕様を満たしているかを検証し、設計対象回路の動作が仕様を満たしていないときにエラー検出として通知する検証回路と、エラーの検出が通知された場合に設計対象回路の動作を一時的に停止させて、検証回路による検証の結果をコンピュータに転送する検証結果転送回路とを備える。
以下の分析は本発明において与えられる。
特許文献1に記載のシミュレーション装置は、シミュレーション開始からエラー検出までのサイクル数の情報をプログラマブル回路に蓄えている。このため、アサーション記述の時間的条件が長時間に及ぶような場合、情報蓄積用のシフトレジスタ等を時間に応じて多段構成にする必要があり、回路規模が増大してしまう。すなわち、プログラマブル回路上の設計対象回路と設計対象回路に定義されたアサーションの全てを論理回路に置換し、ハードウェア化する必要がある。一般的にアサーションは、検証開始のトリガとなる検出式が成立することによって検証を開始し、時間的条件を記載したタイミングで条件判定式を評価するため、時間的条件もハードウェアで実現する必要がある。したがって、アサーションのハードウェア化において、特に時間的条件のハードウェア化に伴う順序回路等の規模が増大してしまう。
本発明の1つのアスペクト(側面)に係るシミュレーション装置は、クロック信号に同期して動作する設計対象回路を実装するプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備え、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化してプログラマブル回路上に構成し、クロック信号に係るアサーション結果の判断タイミングの決定機能をプログラムとしてコンピュータに実現させる。
本発明の他のアスペクト(側面)に係るシミュレーション方法は、クロック信号に同期して動作する設計対象回路を実装し、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して含むプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備えるシミュレーション装置がシミュレーションを行う方法であって、プログラマブル回路が、信号生成機能によってアサーション検証開始を検出するステップと、コンピュータが、クロック信号に係るアサーション結果の判断タイミングを決定するステップと、プログラマブル回路が、結果判定機能によってアサーション検証の結果判定を行うステップと、コンピュータが、判断タイミングにおいて結果判定を元にアサーション検証の正否を判定する処理と、を含む。
本発明によれば、アサーション記述による検証を実行する場合、アサーション記述のハードウェア化に伴うプログラマブル回路に実現する回路の規模増大を防ぐことができる。
本発明の実施形態に係るシミュレーション装置は、クロック信号に同期して動作する設計対象回路を実装するプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備える。プログラマブル回路は、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して構成する。また、プログラムは、クロック信号に係るアサーション結果の判断タイミングの決定機能をコンピュータに実現させる。
プログラマブル回路は、設計対象回路に対し、アサーション検証開始前およびアサーション検証の結果判定後において第1のクロック信号に同期して動作させ、アサーション検証開始をコンピュータに通知し、アサーション検証開始後においてコンピュータから指示された第2のクロック信号に同期して動作させてもよい。また、プログラムは、アサーション検証開始後に第2のクロック信号のクロック数をカウントすることでアサーション結果の判断タイミングを決定する機能をコンピュータに実現させてもよい。
プログラマブル回路は、アサーション検証開始の信号生成機能によってブレーク要求信号を発生してブレーク要因情報と共にコンピュータに通知し、プログラムは、ブレーク要求信号およびブレーク要因情報を受け取ってアサーション結果の判断タイミングを決定し、決定された判断タイミングを元にブレーク解除信号をプログラマブル回路に出力する機能をコンピュータに実現させてもよい。
設計対象回路の検証時における成立すべき条件式を表現したアサーション記述を、信号生成機能を表すトリガ検出式と、判断タイミングを表す時間的条件式と、結果判定機能を表す条件判定式と、に分割して表してもよい。
設計対象回路は、信号生成機能を論理回路化したアサーショントリガ検出回路と、結果判定機能を論理回路化したアサーション条件判定式回路と、を含み、プログラマブル回路は、アサーショントリガ検出回路の出力信号からブレーク要求信号を生成し、ブレーク要因情報と共にコンピュータに出力し、ブレーク解除信号をコンピュータから入力するブレーク信号発生回路と、コンピュータからのクロック選択信号に従って、アサーション検証実行時に第1のクロック信号から第2のクロック信号に切り替え、アサーション検証の結果判定後に第2のクロック信号から第1のクロック信号に切り替えて、クロック信号を設計対象回路に供給する動作クロック生成回路と、ブレーク信号、ブレーク要因情報、アサーション条件判定式回路の出力をコンピュータに出力し、クロック切り替え信号、ブレーク解除信号をコンピュータから入力するためのI/Oポートと、を備え、プログラムは、ブレーク信号およびブレーク要因情報を受け取る処理と、ブレーク信号を受け取って、設計対象回路の動作を第2のクロック信号に切り替えるようにクロック選択信号を出力する処理と、ブレーク要因情報を元にアサーション記述から時間的条件を解釈して判断タイミングにおいてアサーション条件判定式回路の出力をリードしてアサーション条件の正否を判定する処理と、全てのアサーション検証終了後にブレーク解除信号をプログラマブル回路に出力する処理と、ブレーク解除信号を出力した後、第1のクロック信号に切り替えるようにクロック選択信号を出力する処理と、をコンピュータに実行させてもよい。
設計対象回路は、アサーショントリガ検出回路を複数含み、ブレーク信号発生回路は、アサーショントリガ検出回路を識別する情報としてブレーク要因情報を出力するようにしてもよい。
設計対象回路は、アサーション条件判定式回路を複数含み、プログラマブル回路は、コンピュータから入力する条件判定選択信号に応じて複数のアサーション条件判定式回路の一つを選択する条件判定式選択回路をさらに備え、コンピュータは、アサーション記述から時間的条件を解釈して条件判定選択信号を出力し、選択されたアサーション条件判定式回路の出力における判断タイミングを元にアサーション条件の正否を判定するようにしてもよい。
本発明の実施形態に係るプログラマブル回路は、一の信号の論理値の検証をコンピュータに実行させるためにアクティブなブレーク要求信号をポートから出力してコンピュータが供給するクロック信号をポートから入力すると共に、一の信号をポートからコンピュータに出力し、ポートから出力された一の信号の論理値の検証が完了したことに応答してコンピュータから出力されたアクティブなブレーク解除信号をポートから入力する。
本発明の実施形態に係るシミュレーション装置によれば、アサーション記述の時間的条件式をコンピュータ上のプログラムとして実現するので、従来技術の問題点であるアサーション記述のハードウェア化に伴うプログラマブル回路に実現する回路規模の増大を防ぐことができる。すなわち、アサーション記述の時間的条件式の論理回路化による回路規模の増加を防ぐことができる。また、アサーション記述によって検証品質の向上を図り、協調シミュレーションのメリットである高速検証を維持することができる。
以下、実施例に即し、図面を参照して詳しく説明する。
図1は、本発明の第1の実施例に係るシミュレーション装置の構成を示すブロック図である。図1において、シミュレーション装置は、コンピュータ100とプログラマブル回路102とを備える。コンピュータ100は、アサーション結果判定プログラム101を備える。プログラマブル回路102は、サイクル動作を行なう設計対象回路106、ブレーク信号発生回路105、動作クロック生成回路104、I/Oポート103を備える。設計対象回路106は、n個のアサーショントリガ検出回路107_1〜107_n、及びn個のアサーション条件判定式回路108_1〜108_nを備える。プログラマブル回路102とコンピュータ100とは、プログラマブル回路102内のI/Oポート103を介して接続される。
アサーショントリガ検出回路107_1〜107_nのそれぞれの出力は、ブレーク信号発生回路105の入力に接続される。アサーション条件判定式回路108_1〜108_nのそれぞれの出力は、I/Oポート103の入力に接続される。ブレーク信号発生回路105の入出力は、I/Oポート103に接続される。動作クロック生成回路104の入力は、I/Oポート103の出力に接続され、動作クロック生成回路104の出力は、設計対象回路106の入力に接続される。
次に、アサーション記述について説明する。図2は、アサーション記述の例を示す図である。図2のアサーション記述は、設計対象回路106において、「(a&b|c)=1」の論理が成立することでアサーション検証が開始され、「##3」で示される3クロック後に、「d==1」の論理が成立することを検証し、「d==1」の論理が成立しなかった場合は、不図示の出力装置などに“error”と表示することを意味している。
図3は、図2のアサーション記述をタイミングチャートとして示した図である。図3において、「(a&b|c)=1」の論理が成立した時刻T2がアサーション検証の開始タイミングとなる。ここで、「(a&b|c)=1」の部分がトリガ検出式に該当する。また、アサーション検証期間T1は、「##3」の記述によって決定し、「##3」で表される3クロック期間が時間的条件式に該当する。さらに、図2のアサーション記述のOK/NGは、「d==1」が成立するか否かで判定し、「d==1」の部分が条件判定式に該当する。
以上のように、アサーション記述をトリガ検出式、時間的条件式、および条件判定式に分割し、トリガ検出式及び条件判定式を論理回路化してプログラマブル回路102にアサーショントリガ検出回路107_1〜107_n及びアサーション条件判定式回路108_1〜108_nとして実装し、時間的条件をアサーション結果判定プログラム101としてコンピュータ100に実装する。
図4は、図2のアサーション記述を適用した場合のプログラマブル回路102の構成例を示す図である。図4において、アサーショントリガ検出回路107_1は、論理積回路417と論理和回路416を備える。論理積回路417は、設計対象回路106中の信号a、bを入力し、論理積信号419を生成する。論理和回路416は、論理積信号419と信号cを入力し、論理和信号であるアサーショントリガ検出信号414_1を生成する。アサーショントリガ検出信号414_1は、図2のアサーション記述中のトリガ検出式である「(a&b|c)」に対応する。
ここではアサーション記述数が1つである場合を説明したが、アサーション記述がn個存在する場合は、n番目のアサーショントリガ検出回路107_nまで同様の方法で実装する。
また、ブレーク信号発生回路105は、トリガ検出回路411とブレーク生成回路409を備える。トリガ検出回路411は、アサーショントリガ検出信号414_1〜414_nを入力し、出力信号410をブレーク生成回路409に出力する。ブレーク生成回路409は、ブレーク要求信号403及びブレーク要因情報であるアサーション番号を含むブレーク要因信号404をI/Oポート103に出力し、I/Oポート103からブレーク解除信号405を入力する。
アサーション条件判定式回路108_1は、等価式判定回路418を備える。等価式判定回路418は、設計対象回路106中の信号dを入力し、信号dが論理値「1」に等しい場合に論理値「1」をアサーション条件判定式出力信号406_1としてI/Oポート103に出力する。アサーション条件判定式出力信号406_1は、図2のアサーション記述例の条件判定式である「d==1」に対応する。
上述した例ではアサーション記述数が単数である場合を示しているが、アサーション記述がn個存在する場合は、n番目のアサーション条件判定式回路108_nまで同様の方法で実装する。そして、アサーション条件判定式出力信号406_1〜406_nは、I/Oポート103に出力される。
動作クロック生成回路104は、セレクタ408を備える。セレクタ408は、I/Oポート103からのクロック選択信号402の論理値に従ってクロック信号CLK_A(401)およびクロック信号CLK_B(412)のいずれか一方を選択し、動作クロック信号413として設計対象回路106に出力する。設計対象回路106は、動作クロック信号413に同期して動作する。
次に、プログラマブル回路102の動作について説明する。図5は、プログラマブル回路102における各信号のタイミングチャートである。設計対象回路106は、動作クロック信号413のレベル遷移にしたがってシミュレーションを実行する。動作クロック信号413としては、アサーション検証期間以外の期間においてクロック信号CLK_Bが選択される。
設計対象回路106のシミュレーション実行中にアサーショントリガ検出回路107_1の論理が成立すると、アサーショントリガ検出信号414_1の論理値が「1」になる。そして、ブレーク信号発生回路105は、時刻T10においてブレーク要求信号403をアクティブ(ハイレベル)にし、ブレーク要因情報であるブレーク要因信号404を「1」にする。さらに、クロック選択信号402がクロック信号CLK_A側を選択するように変更され、以降はコンピュータ100が供給するクロック信号CLK_Aによって設計対象回路106が動作する。また、ブレーク要求信号403、ブレーク要因信号404がI/Oポート103を介してコンピュータ100に転送され、アサーション結果判定プログラム101が実行される。
アサーション条件判定式回路108_1は、時刻T11においてアサーション条件判定式出力信号406_1をI/Oポート103に転送する。
コンピュータ100は、アサーション結果判定プログラム101を実行し、アサーション条件判定式出力信号406_1をI/Oポート103を介して読み出し、アサーション検証が完了すると、時刻T12においてI/Oポート103を介してブレーク解除信号405をアクティブ(ハイレベル)にし、ブレーク信号発生回路105に転送する。
さらに、次のクロックタイミングである時刻T13で、コンピュータ100は、ブレーク解除信号405を非アクティブ(ローレベル)にする。
次の時刻T14でクロック信号CLK_B側を選択するようにクロック選択信号402の論理を変更する。時刻T14以降はプログラマブル回路102側のクロック信号CLK_Bで設計対象回路106が動作する。
次に、複数のアサーション要因が重複した場合の動作を図6のタイミングチャートを用いて説明する。図6において、アサーショントリガ発生タイミングである時刻T21以降は、第1のアサーション検証を実行しているが、その途中で第nのアサーショントリガが発生したとする。この場合、ブレーク信号発生回路105は、第nのアサーショントリガ発生タイミングである時刻T22においてブレーク要因アサーション番号を含むブレーク要因信号404を「n」に変更し、I/Oポート103を介してコンピュータ100に転送する。
コンピュータ100は、アサーション結果判定プログラム101を実行し、全てのアサーション検証完了タイミングである時刻T23においてブレーク解除信号405をアクティブにし、ブレーク信号発生回路105に転送する。さらに、次のクロックタイミングである時刻T24でブレーク解除信号405を非アクティブにする。また、時刻T25でクロック選択信号402の論理をクロック信号CLK_B側を選択するように変更して、時刻T25以降はプログラマブル回路側のクロック信号CLK_Bで設計対象回路106が動作するようにする。このように動作することで、複数のアサーション要因が重複した場合の並列アサーション検証が可能となる。
次に、コンピュータ100に実装されるアサーション結果判定プログラム101及びプログラマブル回路102の動作を図7のフローチャートを用いて説明する。図7において、コンピュータ100とプログラマブル回路102は、連係して動作する。
まず、プログラマブル回路102の動作について説明する。プログラマブル回路102は、ステップS730でクロック信号CLK_Bに同期してシミュレーションを開始する。ステップS731でシミュレーション終了を判定し、終了していなければステップS732に進み、シミュレーションを実行させてアサーショントリガ検出信号414_1〜414_nのいずれかが検出されるまで、ステップS731、S732の動作を繰り返す。
シミュレーション実行中にアサーショントリガ検出信号414_1〜414_nを検出すると、ステップS733に進み、ブレーク要求信号403を出力する。
プログラマブル回路102は、コンピュータ100からの動作クロックの切り替えによって、ステップS734以降はコンピュータ100側のクロック信号CLK_Aで動作する。ステップS735でシミュレーション終了を判定し、終了していなければステップS736でコンピュータ100側からブレーク解除信号405が入力されるまで、ステップS735、S736の動作を繰り返す。
ステップS736でブレーク解除信号405を検出すると、ステップS737に進み、再びプログラマブル回路102側のクロック信号CLK_Bで動作し、ステップS731に戻る。
次に、コンピュータ100側の動作について説明する。コンピュータ100は、ステップS700でプログラマブル回路102側からブレーク要求信号403が入力されるのを待つ。ブレーク要求信号403が入力されるとステップS701に進み、ブレーク要因信号404からブレーク要因アサーション番号を解読する。そして、ステップS702でプログラマブル回路102の設計対象回路106をコンピュータ100側のクロック信号CLK_Aで動作させるように切り替え、プログラマブル回路102のアサーション条件判定式出力値をリード可能な状態に変更する。
ステップS703で前述したアサーション記述の時間的条件の内容から、前述したアサーション条件判定式出力値を判定すべきタイミングまで待つ。アサーション検証期間になると、ステップS704でプログラマブル回路102側からアサーション条件式出力値をリードしてステップS705でOK/NGを判定する。そして、ステップS707でブレーク解除信号405をプログラマブル回路102側に出力し、ステップS708でプログラマブル回路102側の動作クロック信号をクロック信号CLK_Bに戻す。そして、ステップS700へ戻る。
図7のフローチャートでは、ブレーク要因となるアサーションが単数の場合を示しているが、複数のアサーションが重複した場合であっても、コンピュータ側の動作フローの変更によって容易に対応することができる。
以上説明したように、ハードウェアとソフトウェアの協調型のシミュレーション装置において、アサーション記述による検証を実行する場合、アサーション記述を時間的条件式とトリガ検出式と条件判定式とに分割し、トリガ検出式と条件判定式を論理回路化し、時間的条件式をコンピュータ上のプログラムとして構成する。このようなシミュレーション装置によれば、従来技術の問題点である回路規模の増加を防ぐことができる。
図8は、本発明の第2の実施例に係るプログラマブル回路102’の構成を示す図である。図8において、図4と同一の符号は同一物を表し、その説明を省略する。第2の実施例に係るシミュレーション装置は、プログラマブル回路102’において、アサーション条件判定式回路が複数存在し、それぞれの出力が条件判定式選択回路421を介してI/Oポート103に出力される点が、図4のプログラマブル回路と異なる。図4におけるアサーション条件判定式回路108_1は、アサーション条件判定式が単一である場合を示している。図8では、アサーション条件判定式が複数である場合に、複数のアサーション条件判定式回路424_1_1〜424_1_kを実装する。条件判定式選択回路421は、コンピュータ100側からI/Oポート103を介して入力する条件判定選択信号422に応じて、アサーション条件判定式回路424_1_1〜424_1_kのそれぞれの出力信号420_1_1〜420_1_kのいずれかを選択し、条件判定式出力信号423としてI/Oポート103を介してコンピュータ100側に出力する。
アサーション条件判定式が複数である場合のアサーション記述の例を図9に示す。図9のアサーション記述では、実施例1と同様に「(a&b|c)=1」の論理が成立することがアサーション検証の開始タイミングとなっており、「##3」時間後に1番目の条件判定式「d==1」の判定を実施する。実施例1との違いは、1番目の条件判定式の判定後、「##2」時間後に2番目の条件判定式である「e==1」の判定を実施し、さらに複数の条件判定式での判定実施後、最後のk番目の条件判定式である「x==1」の判定を実施してアサーション判定を完了する。
図8は、図9のアサーション記述例を本発明に適用した場合のブロック図である。図8のアサーション条件判定式回路424_1_1の出力信号420_1_1は、図9のアサーション記述例の1番目の条件判定式である「d==1」に対応する。同様に、アサーション条件判定式回路424_1_2の出力信号420_1_2は、図9のアサーション記述例の2番目の条件判定式である「e==1」に対応し、アサーション条件判定式回路424_1_kの出力信号420_1_kは、図9のアサーション記述例のk番目の条件判定式である「x==1」に対応する。
次に、図10に示すタイミングチャートを参照して、図8のプログラマブル回路102’の動作を説明する。但し、第1実施例である図4と同様の動作については説明を省略する。条件判定選択信号422は、アサーショントリガ検出タイミングである時刻T31において、1番目の条件判定式を表す論理値「1」を示す。条件判定式選択回路421は、アサーション条件判定式回路424_1_1の出力信号420_1_1を選択し、条件判定式出力信号423として出力信号420_1_1が出力される。アサーション条件判定式の判定タイミングである時刻T32において、コンピュータ100は、図7のフローチャートに従って第1_1番目のアサーション条件判定式の結果を判定する。
次に、2番目の条件判定式の判定タイミングである時刻T33において条件判定選択信号422は、論理値「2」を示し、条件判定式選択回路421は、アサーション条件判定式回路424_1_2の出力信号420_1_2を選択し、条件判定式出力信号423として出力信号420_1_2を出力し、コンピュータ100は、第1_2番目のアサーション条件判定式の結果を判定する。
同様に、k番目の条件判定式の判定タイミングである時刻T34において条件判定選択信号422は、論理値「k」を示し、条件判定式選択回路421は、アサーション条件判定式回路424_1_kの出力信号420_1_kを選択し、条件判定式出力信号423として出力信号420_1_kを出力し、コンピュータ100は、第1_k番目のアサーション条件判定式の結果を判定する。
更に、コンピュータ100は、図7のフローチャートに従ってプログラムを実行し、全てのアサーション検証完了タイミングである時刻T35においてブレーク解除信号405をアクティブにし、ブレーク信号発生回路105に転送する。さらに、次のクロックタイミングである時刻T36でブレーク解除信号405を非アクティブにし、時刻T37でクロック選択信号402をCLK_B側を選択するように変更して、時刻T37以降は、プログラマブル回路側のクロック信号であるクロック信号CLK_Bで設計対象回路106が動作する。
以上のように条件判定式回路を複数実装し、コンピュータ100からのアサーション検証期間によって条件判定式回路出力の1つを選択することで、アサーション記述に複数の条件判定式が存在する場合であってもアサーション検証が可能となる。
なお、前述の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
100 コンピュータ
101 アサーション結果判定プログラム
102、102’ プログラマブル回路
103 I/Oポート
104 動作クロック生成回路
105 ブレーク信号発生回路
106 設計対象回路
107_1〜107_n アサーショントリガ検出回路
108_1〜108_n、424_1_1〜424_1_k アサーション条件判定式回路
401、412 クロック信号
402 クロック選択信号
403 ブレーク要求信号
404 ブレーク要因信号
405 ブレーク解除信号
406_1〜406_n アサーション条件判定式出力信号
408 セレクタ
409 ブレーク生成回路
410、420_1_1〜420_1_k 出力信号
411 トリガ検出回路
413 動作クロック信号
414_1〜414_n アサーショントリガ検出信号
416 論理和回路
417 論理積回路
418、425_1_1〜425_1_k 等価式判定回路
419 論理積信号
421 条件判定式選択回路
422 条件判定選択信号
423 条件判定式出力信号
101 アサーション結果判定プログラム
102、102’ プログラマブル回路
103 I/Oポート
104 動作クロック生成回路
105 ブレーク信号発生回路
106 設計対象回路
107_1〜107_n アサーショントリガ検出回路
108_1〜108_n、424_1_1〜424_1_k アサーション条件判定式回路
401、412 クロック信号
402 クロック選択信号
403 ブレーク要求信号
404 ブレーク要因信号
405 ブレーク解除信号
406_1〜406_n アサーション条件判定式出力信号
408 セレクタ
409 ブレーク生成回路
410、420_1_1〜420_1_k 出力信号
411 トリガ検出回路
413 動作クロック信号
414_1〜414_n アサーショントリガ検出信号
416 論理和回路
417 論理積回路
418、425_1_1〜425_1_k 等価式判定回路
419 論理積信号
421 条件判定式選択回路
422 条件判定選択信号
423 条件判定式出力信号
Claims (12)
- クロック信号に同期して動作する設計対象回路を実装するプログラマブル回路と、
前記設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、
を備え、
前記設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して前記プログラマブル回路上に構成し、前記クロック信号に係るアサーション結果の判断タイミングの決定機能をプログラムとして前記コンピュータに実現させることを特徴とするシミュレーション装置。 - 前記プログラマブル回路は、前記設計対象回路に対し、アサーション検証開始前およびアサーション検証の結果判定後において第1のクロック信号に同期して動作させ、アサーション検証開始を前記コンピュータに通知し、アサーション検証開始後においてコンピュータから指示された第2のクロック信号に同期して動作させ、
前記プログラムは、アサーション検証開始後に第2のクロック信号のクロック数をカウントすることでアサーション結果の判断タイミングを決定する機能を前記コンピュータに実現させることを特徴とする請求項1記載のシミュレーション装置。 - 前記プログラマブル回路は、前記アサーション検証開始の信号生成機能によってブレーク要求信号を発生してブレーク要因情報と共に前記コンピュータに通知し、
前記プログラムは、前記ブレーク要求信号およびブレーク要因情報を受け取ってアサーション結果の判断タイミングを決定し、決定された判断タイミングを元にブレーク解除信号を前記プログラマブル回路に出力する機能を前記コンピュータに実現させることを特徴とする請求項1記載のシミュレーション装置。 - 前記設計対象回路の検証時における成立すべき条件式を表現したアサーション記述を、前記信号生成機能を表すトリガ検出式と、前記判断タイミングを表す時間的条件式と、前記結果判定機能を表す条件判定式と、に分割して表すことを特徴とする請求項1記載のシミュレーション装置。
- 前記設計対象回路は、
前記信号生成機能を論理回路化したアサーショントリガ検出回路と、
前記結果判定機能を論理回路化したアサーション条件判定式回路と、
を含み、
前記プログラマブル回路は、
前記アサーショントリガ検出回路の出力信号から前記ブレーク要求信号を生成し、前記ブレーク要因情報と共に前記コンピュータに出力し、前記ブレーク解除信号を前記コンピュータから入力するブレーク信号発生回路と、
前記コンピュータからのクロック選択信号に従って、アサーション検証実行時に第1のクロック信号から第2のクロック信号に切り替え、アサーション検証の結果判定後に第2のクロック信号から第1のクロック信号に切り替えて、クロック信号を前記設計対象回路に供給する動作クロック生成回路と、
前記ブレーク信号、前記ブレーク要因情報、前記アサーション条件判定式回路の出力を前記コンピュータに出力し、前記クロック切り替え信号、前記ブレーク解除信号を前記コンピュータから入力するためのI/Oポートと、
を備え、
前記プログラムは、
前記ブレーク信号およびブレーク要因情報を受け取る処理と、
前記ブレーク信号を受け取って、前記設計対象回路の動作を第2のクロック信号に切り替えるように前記クロック選択信号を出力する処理と、
前記ブレーク要因情報を元にアサーション記述から時間的条件を解釈して判断タイミングにおいて前記アサーション条件判定式回路の出力をリードして前記アサーション条件の正否を判定する処理と、
全てのアサーション検証終了後に前記ブレーク解除信号を前記プログラマブル回路に出力する処理と、
前記ブレーク解除信号を出力した後、第1のクロック信号に切り替えるように前記クロック選択信号を出力する処理と、
を前記コンピュータに実行させることを特徴とする請求項3に記載のシミュレーション装置。 - 前記設計対象回路は、前記アサーショントリガ検出回路を複数含み、
前記ブレーク信号発生回路は、前記アサーショントリガ検出回路を識別する情報として前記ブレーク要因情報を出力することを特徴とする請求項5記載のシミュレーション装置。 - 前記設計対象回路は、前記アサーション条件判定式回路を複数含み、
前記プログラマブル回路は、前記コンピュータから入力する条件判定選択信号に応じて複数の前記アサーション条件判定式回路の一つを選択する条件判定式選択回路をさらに備え、
前記コンピュータは、アサーション記述から時間的条件を解釈して前記条件判定選択信号を出力し、選択された前記アサーション条件判定式回路の出力における判断タイミングを元に前記アサーション条件の正否を判定することを特徴とする請求項5記載のシミュレーション装置。 - クロック信号に同期して動作する設計対象回路を実装し、設計対象回路に対するアサーション検証開始の信号生成機能およびアサーション検証の結果判定機能を論理回路化して含むプログラマブル回路と、設計対象回路のシミュレーション結果を判定するプログラムを実行するコンピュータと、を備えるシミュレーション装置がシミュレーションを行う方法であって、
前記プログラマブル回路が、前記信号生成機能によってアサーション検証開始を検出するステップと、
前記コンピュータが、前記クロック信号に係るアサーション結果の判断タイミングを決定するステップと、
前記プログラマブル回路が、前記結果判定機能によってアサーション検証の結果判定を行うステップと、
前記コンピュータが、前記判断タイミングにおいて前記結果判定を元にアサーション検証の正否を判定する処理と、
を含むことを特徴とするシミュレーション方法。 - 前記プログラマブル回路は、前記設計対象回路に対し、アサーション検証開始前およびアサーション検証の結果判定後において第1のクロック信号に同期して動作させ、アサーション検証開始を前記コンピュータに通知し、アサーション検証開始後においてコンピュータから指示された第2のクロック信号に同期して動作させ、
前記コンピュータは、アサーション検証開始後に第2のクロック信号のクロック数をカウントすることでアサーション結果の判断タイミングを決定することを特徴とする請求項8記載のシミュレーション方法。 - 前記プログラマブル回路は、前記アサーション検証開始によってブレーク要求信号を発生してブレーク要因情報と共に前記コンピュータに通知し、
前記コンピュータは、前記ブレーク要求信号およびブレーク要因情報を受け取ってアサーション結果の判断タイミングを決定し、
前記決定した判断タイミングを元にブレーク解除信号を前記プログラマブル回路に出力することを特徴とする請求項8記載のシミュレーション方法。 - 前記設計対象回路の検証時における成立すべき条件式を表現したアサーション記述を、前記信号生成機能を表すトリガ検出式と、前記判断タイミングを表す時間的条件式と、前記結果判定機能を表す条件判定式と、に分割して表すことを特徴とする請求項8記載のシミュレーション方法。
- 一の信号の論理値の検証をコンピュータに実行させるためにアクティブなブレーク要求信号をポートから出力して前記コンピュータが供給するクロック信号を前記ポートから入力すると共に、
前記一の信号を前記ポートから前記コンピュータに出力し、前記ポートから出力された前記一の信号の論理値の検証が完了したことに応答して前記コンピュータから出力されたアクティブなブレーク解除信号を前記ポートから入力することを特徴とするプログラマブル回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008153006A JP2009301192A (ja) | 2008-06-11 | 2008-06-11 | シミュレーション装置およびシミュレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008153006A JP2009301192A (ja) | 2008-06-11 | 2008-06-11 | シミュレーション装置およびシミュレーション方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009301192A true JP2009301192A (ja) | 2009-12-24 |
Family
ID=41548038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008153006A Withdrawn JP2009301192A (ja) | 2008-06-11 | 2008-06-11 | シミュレーション装置およびシミュレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009301192A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011164860A (ja) * | 2010-02-08 | 2011-08-25 | Fujitsu Ltd | 検証装置及び検証プログラム |
JP2015069549A (ja) * | 2013-09-30 | 2015-04-13 | 富士通セミコンダクター株式会社 | 半導体集積回路および半導体集積回路の検証方法 |
-
2008
- 2008-06-11 JP JP2008153006A patent/JP2009301192A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011164860A (ja) * | 2010-02-08 | 2011-08-25 | Fujitsu Ltd | 検証装置及び検証プログラム |
JP2015069549A (ja) * | 2013-09-30 | 2015-04-13 | 富士通セミコンダクター株式会社 | 半導体集積回路および半導体集積回路の検証方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776547B1 (en) | Infinite-depth path-based analysis of operational timing for circuit design | |
US11842199B2 (en) | Controlling the operating speed of stages of an asynchronous pipeline | |
US7464361B2 (en) | System and method for asynchronous logic synthesis from high-level synchronous descriptions | |
JPH1074214A (ja) | ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法 | |
JP4599266B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
EP3149577B1 (en) | Extracting system architecture in high level synthesis | |
CN112818621A (zh) | 用于预测软ip部件的性能、功率和面积表现的系统和方法 | |
JP2008123056A (ja) | 論理回路のタイミング制約生成システムおよび論理回路のタイミング制約生成方法、制御プログラム、可読記録媒体 | |
JP2009301192A (ja) | シミュレーション装置およびシミュレーション方法 | |
US8392776B2 (en) | Delay fault diagnosis program | |
US7500210B2 (en) | Chip area optimization for multithreaded designs | |
US8775989B2 (en) | Computer-aided design system and methods thereof for merging design constraint files across operational modes | |
CN215180689U (zh) | 测试电路和包括测试电路的计算系统 | |
CN114764118A (zh) | 测试电路、测试方法和包括测试电路的计算系统 | |
JP4847383B2 (ja) | 順序回路及びその高速化方法 | |
JP4205525B2 (ja) | 並列シミュレーション装置および並列シミュレーション方法 | |
JP5145167B2 (ja) | クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体 | |
CN109478141B (zh) | 控制异步管线的级的操作速度 | |
JP2004070559A (ja) | シミュレーション装置及びシミュレーション方法 | |
EP2958234B1 (en) | Integrated circuit | |
JP3678656B2 (ja) | インタフェース回路、論理回路検証方法、論理装置、情報処理装置 | |
JP2010113405A (ja) | 半導体集積回路合成装置 | |
JP4771076B2 (ja) | 回路解析装置、回路解析方法、およびプログラム | |
JPH08106476A (ja) | 論理回路自動合成方法 | |
Higuchi | CAD Tools for Early Timing Closure in System-on-a-Chip Design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110906 |