(57)【要約】【課題】複数の部品が同時に動作し合う特徴を有するハードウェア記述言語プログラムの論理シミュレーションの検証完了指標として、ソフトウェアプログラムの検証指標（Ｃ０／Ｃ１／Ｃ２）だけでは不十分である。【解決手段】ハードウェアならではの同時動作によって発生し得る競合状態を想定した回路構成、具体的には、同時にリクエストが到着することを想定した優先付けが成されている回路構成を、ハードウェアプログラムから意味解釈によってカバレッジポイント群として抽出して、それらが論理シミュレーションによって活性化されたか否か、の百分率として測る検証装置により、達成できる。【選択図】図５
2011138428.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語でプログラミングされた論理回路の検証装置において、
回路プログラム受付部と、前記回路プログラム内の競合状態想定回路構成、及びの競合条件を、競合カバレッジポイントとして検出する競合カバレッジポイント抽出部と、前記回路プログラムをテストプログラムによってテストするシミュレーション部と、競合カバレッジポイントでの競合条件の同時発生を監視し、集計することにより、競合カバレッジ率を算出する競合カバレッジ率算出部と、競合カバレッジ率表示部とからなることを特徴とする検証装置。
【請求項２】
請求項１に記載の検証装置であって、
前記回路プログラム受付部は、前記回路プログラムをブール式に変換し、
前記ターゲットパターンは、ブール式に変換されたパターンであることを特徴とする検証装置。
【請求項３】
ハードウェア記述言語でプログラミングされた論理回路の回路プログラムを受け付けるステップと、前記回路プログラム内の競合状態想定回路構成、及びその競合条件を競合カバレッジポイントとして抽出するステップと、前記回路プログラムをテストプログラムによってテストするためにシミュレーションするステップと、競合カバレッジポイントでの競合条件の同時発生を監視し、集計することにより、競合カバレッジ率を算出するステップと、競合カバレッジ率を表示するステップとからなる検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証装置および検証方法に係り、特に、ハードウェア記述言語でプログラミングされた論理回路の検証装置および検証方法に関する。
【背景技術】
【０００２】
ソフトウェアプログラムの検証完了基準としては、Ｃ０（命令カバレッジ）、Ｃ１（分岐カバレッジ）、Ｃ２（経路カバレッジ）がある。それらは元々ソフトウェアプログラムの検証完了基準として考案されたものである。検証完了基準は、作成されたプログラム毎の構文構造から一意的に決まるカバレッジポイント群が検証時に活性化されたか否か、の百分率として測られるものである。非特許文献１、非特許文献２は、カバレッジの簡単な解説を記載している。
【０００３】
一方、ハードウェア設計に於いても、論理合成技術の実用化に伴い、ディジタル回路をハードウェア記述言語（ＨＤＬ：Hardware Description Language）プログラミングによってソフトウェアライクに設計するに至っている。これに伴って、論理シミュレーション等の、ハードウェア設計に於ける検証でも、Ｃ０、Ｃ１、Ｃ２が検証完了基準として用いられるようになっている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】玉井 哲雄、外２名、「ソフトウェアのテスト技法」、共立出版、１９８８年
【非特許文献２】坂本 直史、外２名、”組込みソフトウェア管理者・技術者向け用語集”、[online]、第３．１版、２００８年４月１７日改訂、カバレッジ、ＮＰＯ法人 組込みソフトウェア管理者・技術者育成研究会、[平成２１年１１月１１日検索]、インターネット＜http://www.sessame.jp＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、元々ソフトウェアの検証完了指標として考案されたＣ０、Ｃ１、Ｃ２だけでは、論理シミュレーション等の、ハードウェア設計に於ける検証の完了指標とは成り得ない。これは、複数の部品が同時に動作し合う特徴を有するハードウェアをハードウェア記述言語（ＨＤＬ）でプログラミングしたハードウェアプログラム（または、回路プログラム、とも言う）の論理シミュレーションの検証完了指標として、同時動作の特徴を有さないソフトウェアプログラムの検証指標だけでは甚だ不十分だからである。したがって、Ｃ０、Ｃ１、Ｃ２を以て検証完了指標とするのは非常に危険である。本発明が解決しようとする課題は、ハードウェアならではの同時動作の特徴を考慮に入れたハードウェアプログラムの論理シミュレーションの検証方法とその検証装置の提供である。
【課題を解決するための手段】
【０００６】
ハードウェアならではの同時動作によって発生し得る競合状態を想定した回路構成、具体的には、同時にリクエストが到着することを想定した優先付けが成されている回路構成をハードウェアプログラムから意味解釈によってカバレッジポイント群として抽出する。論理シミュレーションによって、カバレッジポイント群が、活性化されたか否か、の百分率として測るＣＸ（競合カバレッジ）を創出した。本発明は、同時に、ＣＸカバレッジポイント群の自動抽出手段、および、上記ＣＸカバレッジ値の算出手段を提供する。
【０００７】
上述した課題は、ハードウェア記述言語でプログラミングされた論理回路の検証装置において、回路プログラム受付部と、回路プログラム内の競合状態想定回路構成、及びその競合条件を、競合カバレッジポイントとして検出する競合カバレッジポイント抽出部と、回路プログラムをテストプログラムによってテストするシミュレーション部と、競合カバレッジポイントでの競合条件の同時発生を監視し、集計することにより、競合カバレッジ率を算出する競合カバレッジ率算出部と、競合カバレッジ率表示部とからなる検証装置により、達成できる。
【０００８】
また、ハードウェア記述言語でプログラミングされた論理回路の回路プログラムを受け付けるステップと、回路プログラム内の競合状態想定回路構成、及びその競合条件を競合カバレッジポイントとして抽出するステップと、回路プログラムをテストプログラムによってテストするためにシミュレーションするステップと、競合カバレッジポイントでの競合条件の同時発生を監視し、集計することにより、競合カバレッジ率を算出するステップと、競合カバレッジ率を表示するステップとからなる検証方法により、達成できる。
【発明の効果】
【０００９】
ハードウェア設計に於ける論理シミュレーション等の検証完了基準として、ハードウェアならではの特徴である同時動作性が考慮され、しかも自動的にカバレッジポイント群とカバレッジ値が得られる。すなわち、客観的かつ実用的な完了基準が得られる。これによって、ＬＳＩ等のハードウェア開発に於ける論理シミュレーション等の検証品質を測り、検証戦略にフィードバックする。この結果、検証を不足なく、しかも無駄なく、効率的に行なうことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】競合状態発生を想定した回路の構成を説明するブロック図である。
【図２】回路をシーケンシャルに表現したフローチャートである。
【図３】ハードウェアプログラミングリストである。
【図４】ハードウェア検証装置のハードウェアブロック図である。
【図５】ハードウェア検証装置の処理を説明するフローチャートである。
【図６】ハードウェア検証装置の出力であるカバレッジ集計結果を説明する図である。
【図７】ＣＸカバレッジポイント抽出の詳細を説明する図である。
【図８】回路プログラムを説明する図である。
【図９】ターゲットパターンを説明する図である。
【図１０】パターンマッチング結果を説明する図である。
【図１１】パターンマッチング判定処理の詳細を説明する図である。
【図１２】ターゲットパターンを説明する図である。
【図１３】ハードウェア検証装置の処理を説明するフローチャートである。
【図１４】ブール式化した回路記述を説明する図である。
【図１５】ターゲットブール式パターンを説明する図である。
【図１６】パターンマッチング結果を説明する図である。
【図１７】パターンマッチング判定処理の詳細を説明する図である。
【図１８】ターゲットパターンを説明する図である。
【図１９】回路データベースの視覚化表現である。
【図２０】ロジックコーンを説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
【実施例１】
【００１２】
全搭載部品がコンカレント動作するハードウェア（論理回路）に於いて、競合状態の発生を回避する回路構成、および競合状態が発生した場合の処理の優先順を持たせた回路構成は、ハードウェア中に頻出する。
【００１３】
図１を参照して、競合状態が発生した場合の処理の優先順を持たせた回路１００の構成を説明する。図１の回路１００において、ハードウェア（論理回路）中の機能Ｆａと機能Ｆｂは、リソースＲｘを時分割に共有して使用する。一方、機能Ｆｃは、リソースＲｙを占有して使用する。図１の→印は、機能Ｆがリソースを使用するためのリクエストを示す。☆印は、リクエストが同時到着した場合の優先順が高いことを表している。リクエストｓｓは、セットのリクエストである。リクエストｓｒは、リセットのリクエストである。
【００１４】
リクエストｓｓとリクエストｓｒの同時到着時の優先順を明示的に指定している理由は、次のいずれかである。すなわち、（１）リソースＲｘ、またはリソースＲｘを含む機能Ｆｃが同時に複数のリクエストの処理ができない。（２）その他の制約のためである。いずれも、何らかの理由により設計者は意図を持って、この回路構成にしている筈である。
【００１５】
この設計者の意図、すなわち”同時動作要求時の優先順位”に着目して、意図通りの回路構成になっているか否かのテストを実施したか？確認したか？をカバレッジポイントとしたのが、今回独自に創出したカバレッジ指標、競合カバレッジである。すなわち、ＣＸは、回路の検証時点で、競合状態を再現させ、確認したか否かを検証品質の指標とする。ＣＸとしては、優先順位付きの同期セット・リセット・フリップフロップ、カウンタ系回路（ロードとクリアの優先順位等）、ＦＳＭ（Finite State Machine）系回路（遷移先の優先順位等）等、が考えられる。
【００１６】
ハードウェア記述言語（ＨＤＬ）プログラミングにおいては、本来、全搭載部品がコンカレントに動作するものをシーケンシャルに表現してプログラミングする。図２は、図１のハードウェアをシーケンシャルに表現したフローチャートである。また、図３は、実際のハードウェアプログラミングリストである。
【００１７】
図２において、回路１００は、リクエストｓｓを送信するか判定する（Ｓ１１）。ＹＥＳのとき、回路１００は、リソースＲｘでセット処理を実行する（Ｓ１２）。回路１００は、リクエストｐを送信するか判定する（Ｓ１３）。ＹＥＳのとき、回路１００は、リソースＲｙで何らかの処理（Ｒｙ（ｐ））を実行して（Ｓ１４）、終了する。
【００１８】
ステップ１１（Ｓ１１）でＮＯのとき、回路１００は、リクエストｓｒを送信するか判定する（Ｓ１６）。ＹＥＳのとき、回路１００は、リソースＲｘでリセット処理を実行する（Ｓ１７）。ステップ１６（Ｓ１６）でＮＯのとき、回路１００は、ステップ１３（Ｓ１３）に遷移する。ステップ１３（Ｓ１３）でＮＯのとき、回路１００は、終了する。
【００１９】
図３において、同期セット・リセット付きフリップフロップのＨＤＬのプログラミングリストは、１：〜１３：の行番号と制御文および実行文とから構成される。
【００２０】
ＨＤＬは、図２および図３に示したように、ハードウェア動作をソフトウェア動作に置き換えて表現するので、ソフトウェア用の検証指標Ｃ０、Ｃ１、Ｃ２を用いることとなった訳である。しかし、それと同時に、本来のハードウェアの検証において留意すべき同時動作の考慮が抜け落ちてしまった。
【００２１】
ＣＸは、図１ではリクエストｓｓとリクエストｓｒの同時発生によるリソースＲｘ使用要求の競合を、図２ではステップ１２（Ｓ１２）を実行する際の、その裏で成立しているステップ１７（Ｓ１７）の実際には実行されない実行要求の競合を、さらに図３では行番号６と行番号８との競合を、カバレッジポイントとしたカバレッジ指標である。
【００２２】
図４を参照して、ハードウェア検証装置２００を説明する。図４において、ハードウェア検証装置２００は、内部バス２７０で相互接続されたＣＰＵ２１０、メインメモリ２２０、記憶装置２３０、入力装置２４０、出力装置２５０、ＬＡＮインタフェース部２６０で構成されている。ハードウェア検証装置２００は、メモリ２２０上のプログラムをＣＰＵが実行することにより、ハードウェアの論理シミュレーションを実行する。入力装置２４０は、回路プログラムおよびテストプログラムを読み込む。出力装置２５０は、カバレッジ出力結果を表示する。記憶装置２３０は、回路プログラム、テストプログラム、ターゲットの記述パターン、カバレッジ出力結果等を一次記憶する。ＬＡＮインタフェース部２６０は、ハードウェア検証装置２００を図示しないＬＡＮに接続する。
【００２３】
図５を参照して、ハードウェア検証装置２００の処理を説明する。ハードウェア検証装置２００は、ハードウェア記述言語（ＨＤＬ）による回路プログラムを受け付ける（Ｓ１０）。ハードウェア検証装置２００は、カバレッジポイントを抽出する（Ｓ２０）。ステップ２０は、従来と同様にＣ０、Ｃ１、Ｃ２のカバレッジポイントを抽出する（Ｓ２１〜Ｓ２３）と共にＣＸのカバレッジポイントを抽出する（Ｓ２４）。ハードウェア検証装置２００は、テストプログラムを受け付ける（Ｓ３０）。ハードウェア検証装置２００は、テストプログラムを実行して、シミュレーションを実施する（Ｓ４０）。ハードウェア検証装置２００は、結果として各カバレッジ率を算出する（Ｓ５０）。ハードウェア検証装置２００は、最後に各カバレッジ率を表示する（Ｓ６０）。
【００２４】
図６を参照して、ハードウェア検証装置２００の出力であるカバレッジ集計結果３００を説明する。図６において、カバレッジ出力結果３００は、ｂｌｋ０〜ｂｌｋＮのブロック別３１０と、全体３２０とに分けられて、Ｃ０、Ｃ１、Ｃ２、ＣＸのカバレッジ率とその生データを表示する。
【００２５】
図７を参照して、図５のＣＸカバレッジポイント抽出（Ｓ２４）の詳細を説明する。ハードウェア検証装置２００は、ＣＸカバレッジポイント抽出において、回路プログラムとターゲット記述パターン（即ち、ＣＸカバレッジポイントの記述パターン）を受け付けて、パターンマッチングを行なう。ここで、パターンマッチングは、回路プログラムからターゲット記述パターンにマッチした個所を検出する処理である。ハードウェア検証装置２００は、パターンマッチン部結果を出力する。
【００２６】
図８を参照して、図７の回路プログラムを説明する。図８の回路プログラムは、図３の回路プログラムとほぼ同じであり、”Ｒｘ＜＝’１’；”と”Ｒｘ＜＝’０’”；に競合がある。
【００２７】
図９を参照して、ターゲットパターンを説明する。図９において、ターゲットパターンは、２種類ある。ターゲットパターンは、最初がセット優先の同期セット・リセットのフリップフロップ（以下ＦＦと記載）、２番目がリセット優先の同期セット・リセットのＦＦである。図９において、○、△、□の記載は、変数であり、このパターンをパターンマッチングする。
【００２８】
図１０を参照して、パターンマッチング結果を説明する。図１０において、パターンマッチング結果は、ターゲットパターンごとに出力され、セット優先の同期セット・リセットのＦＦでは、○＝Ｒｘ、△＝ｓｒ、□＝ｓｓを検出している。これは、図８の競合ポイント（競合状態想定回路（○＝Ｒｘ）と、その競合条件（△＝ｓｒ、□＝ｓｓ））である。一方、リセット優先の同期セット・リセットのＦＦでは、ヒットなしである。
【００２９】
図１１を参照して、図７を参照して説明したパターンマッチング判定処理の詳細を説明する。図１１において、ハードウェア検証装置２００は、回路プログラムと予め登録されたターゲットパターンと比較し、一致するパターンがあるか判定する。一致するとき、ハードウェア検証装置２００は、競合パターン別に、競合ポイントごとに、リソース名、競合条件を判定し検出する。一致するパターンの有無判定で不一致のとき、ハードウェア検証装置２００は、そのまま終了する。
【００３０】
図１２を参照して、ハードウェア検証装置２００に予め登録されたターゲットパターンを説明する。図１２において、ターゲット記述パターンは、（Ａ）がセット優先の同期セット・リセットＦＦ、（Ｂ）がリセット優先の同期セット・リセットのＦＦである。しかし、ターゲットパターンの各々には多くのバリエーションがある。基本的に各パターンには、数多くの記述バリエーションが考え得るからである。（Ａ）（Ｂ）パターンに関して、各々図１２の２つのバリエーションのみを示した。指定したパターンとバリエーションのみがパターンマッチ対象となるので、セット優先の同期セット・リセットＦＦを全て抽出するためにはバリエーションを全て登録する必要がある。しかし、同じ結果を得るプログラミング記法は無数にあり、バリエーションを全て登録するのは、困難である。
【００３１】
バリエーションを全て列挙し尽くすことに終りがないのみならず、バリエーションをライブラリとして登録するだけで、動作するように抽出プログラムを工夫する必要がある。また、バリエーションの数をｎとすると、処理時間は、ｎのオーダＯ（ｎ）となる（ｎが２ｎとなると、処理時間も２倍となる）ことにも留意が必要である。
【実施例２】
【００３２】
図１３を参照して、図５のＣＸカバレッジポイント抽出（Ｓ２４）の改良された詳細を説明する。ハードウェア検証装置２００は、図８を用いて説明した回路プログラムを受け付け、ブール式に変換する。ハードウェア検証装置２００は、ターゲットブール式パターンを受け付け、ブール式に変換された回路プログラムとのパターンマッチング判定を実施する。ハードウェア検証装置２００は、パターンマッチング結果を出力する。
【００３３】
図１４を参照して、ブール化した回路記述を説明する。図１４は、図８を用いて説明した回路プログラムをブール式に変換したものである。回路プログラムのブール式表現への変換は、クワイン・マクラスキーの方法、または、カルノー図表による方法で行なう。
【００３４】
図１５を参照して、ターゲットブール式パターンを説明する。図１５は、セット優先のセット・リセット競合ＦＦのブール式パターンと、リセット優先のセット・リセット競合ＦＦのブール式パターンである。図１５において、：＝の左辺のＱは、次のＱ出力（Ｑｎ)である。：＝の右辺のＱは、現在のＱ出力（Ｑｐ)である。また、！はｎｏｔ、＆はａｎｄ、｜はｏｒである。また、ＳＳはセット、ＳＲはリセットである。
【００３５】
図１６を参照して、ターゲットパターンにマッチしたブール式を説明する。図１６において、セット優先のセット・リセット競合ＦＦのブール式パターンでは、Ｑ＝Ｒｘ、ＳＲ＝ｓｒ、ＳＳ＝ｓｒが検出されている。一方、リセット優先のセット・リセット競合ＦＦのブール式パターンでは、検出がない。
【００３６】
図１７を参照して、図１３で示したＣＸカバレッジポイント抽出フロー中の、パターンマッチング判定（真理値ベースのパターンマッチング）処理の詳細を説明する。図１７において、ハードウェア検証装置２００は、ブール式に変換された回路プログラムと予め登録されたターゲットブール式パターンとを比較し、一致するパターンがあるか判定する。一致するとき、ハードウェア検証装置２００は、競合パターン別に、競合ポイントごとに、リソース名、競合条件を判定し検出する。一致するパターンの有無判定で不一致のとき、ハードウェア検証装置２００は、そのまま終了する。
【００３７】
図１８を参照して、ターゲットブール式パターンを説明する。図１８において、ターゲットブール式パターンは、（Ａ）セット優先の同期セット・リセットＦＦ、（Ｂ）リセット優先の同期セット・リセットのＦＦである。
【００３８】
ターゲットブール式パターンは、表面上の書き方の違いによるバリエーションは数多く存在する。しかし、どのバリエーションのものも真理値表化すれば全く同一のものに帰着される。したがって、１つのパターンに付き１つのバリエーションのみ指定すれば、図１１に於いて１つのパターンに付き考え得る全てのバリエーションを指定したことと等価となる。よって、考え得るバリエーションを全て列挙すると云う終りのない作業をせずに、ブール式パターン１つで全てのバリエーションを一網打尽にすることができる。また、処理時間もバリエーション数ｎのオーダＯ（ｎ）となることもない。
【００３９】
以下、回路プログラム（ＲＴＬ：Register Transfer Level）がブール式に変換できる理由を説明する。ＲＴＬをコンパイルすることにより、回路データベースを得る。回路データベースを視覚化して表現すれば、図１９となる。図１９は、いわゆる論理回路図に他ならない。
【００４０】
よって、ブール式変換の処理内容を図１９を用いて説明する。論理回路は、ロジックコーンと呼ばれる単位に分解して考えることができる。ロジックコーンとは、図１９中の点線の三角形で表された、頂点がフリップフロップ（ＦＦ）のＱ出力またはプライマリアウトプット（ＰＯ）で、底辺がプリライマリインプット（ＰＩ）または、他のロジックコーン（厳密には、自分自身も含めたロジックコーン）の頂点からなる三角形である。論理回路は、各ロジックコーンとその接続を指定することにより一意に表現することができる。
【００４１】
図２０に典型的なロジックコーンを示す。図２０において、底辺側入力にＱがあるのは、自己回帰のルートと表現している。ロジックコーンの内側にあるＦＦのＤ入力を頂点とする三角形部の回路は、純粋に組合せ論理だけから成るので、この部分をブール関数ｆ（Ｑ,Ａ,Ｂ,Ｃ,Ｄ）で表わすと、図２０が以下の式で表現可能である。
Ｑｎ：＝ｆ（Ｑｐ,Ａ,Ｂ,Ｃ,Ｄ）,clock_signal,clock_edge,async_signal,async_value…（式１）
ここで、clock_signalは、クロック信号を表わす。clock_edgeは、ｐｏｓ（立ち上り）、ｎｅｇ（立下り）の値を取り、クロックの立ち上り、立ち下りの何れで動作するかを表わす。async_signalは、非同期動作信号名を表す。async_valueは、０（非同期リセット）、１（非同期セット）、任意の信号名（非同期セット・リセット等）の値を取り、非同期動作を表わす。
【００４２】
回路図データベースから作成可能な内側の三角形に対応する真理値表に、クワイン・マクラスキーの方法を適用することにより、ｆ（Ｑｐ,Ａ,Ｂ,Ｃ,Ｄ）が具体的な式として算出できる。また、clock_signal, clock_edge, async_signal, async_valueは、回路図データベースから得ることができる。
図１９の論理回路も、ロジックコーンとその接続を指定することにより一意に表現することができるので、定式化できる。
【００４３】
図１５に記載したターゲットブール式と等価な真理値表を説明する。セット優先のセット・リセット競合ＦＦは、表１と等価である。また、リセット優先のセット・リセット競合ＦＦは、表２と等価である。
【００４４】
表１  セット優先の競合ＦＦ         表２  リセット優先の競合ＦＦ
−−−−−−−−−−−−−          −−−−−−−−−−−−−
入力      ｜  出力                  入力      ｜  出力
ＳＳ    ＳＲ  ｜  Ｑｎ              ＳＳ    ＳＲ  ｜  Ｑｎ
０      ０   ｜  Ｑｐ               ０      ０   ｜  Ｑｐ
０      １   ｜   ０                ０      １   ｜   ０
１      ０   ｜   １                １      ０   ｜   １
１      １   ｜   １                １      １   ｜   ０
−−−−−−−−−−−−−          −−−−−−−−−−−−−
フリップフロップの真理値表から、セット優先／リセット優先のセット・リセット競合ＦＦのいずれかも判定することができる。入力リテラルがａ、ｂ、ｃ、ｄで、出力の現状態をＱｐ、次状態をＱｎとして、表３の真理値表を持つＦＦを考える。
【００４５】
表３  ＦＦの真理値表                 表４  関数置換した真理値表
−−−−−−−−−−−−−−−−−        −−−−−−−−−−−−−−−
入力          ｜  出力                  入力        ｜  出力
ａ    ｂ    ｃ    ｄ  ｜  Ｑｎ            ａ＆ｂ    ｃ｜ｄ  ｜  Ｑｎ
−−−−−−−−−−−−−−−−−        −−−−−−−−−−−−−−−
０    ０    ０    ０  ｜  Ｑｐ              ０        ０    ｜  Ｑｐ
０    ０    ０    １  ｜   ０               ０        １    ｜   ０
０    ０    １    ０  ｜   ０               １        ０    ｜   １
０    ０    １    １  ｜   ０               １        １    ｜   １
０    １    ０    ０  ｜  Ｑｐ          −−−−−−−−−−−−−−−
０    １    ０    １  ｜   ０
０    １    １    ０  ｜   ０
０    １    １    １  ｜   ０
１    ０    ０    ０  ｜  Ｑｐ
１    ０    ０    １  ｜   ０
１    ０    １    ０  ｜   ０
１    ０    １    １  ｜   ０
１    １    ０    ０  ｜   １
１    １    ０    １  ｜   １
１    １    １    ０  ｜   １
１    １    １    １  ｜   １
−−−−−−−−−−−−−−−−−
真理値表３に基づいて、入力を関数で置換すると表４を得る。表４と表１の対比から、このＦＦは、ａ＆ｂ（ａ ａｎｄ ｂ）をセットリクエスト、ｃ｜ｄ（ｃ ｏｒ ｄ）をリセットリクエストとするセット優先のセット・リセット競合ＦＦであることが分かる。
【符号の説明】
【００４６】
１００…回路、２００…ハードウェア検証装置、２１０…ＣＰＵ、２２０…メインメモリ、２３０…記憶装置、２４０…入力装置、２５０…出力装置、２６０…ＬＡＮインタフェース部、２７０…内部バス。
【図１】
2011138428.tif 000003
【図２】
2011138428.tif 000004
【図３】
2011138428.tif 000005
【図４】
2011138428.tif 000006
【図５】
2011138428.tif 000007
【図６】
2011138428.tif 000008
【図７】
2011138428.tif 000009
【図８】
2011138428.tif 000010
【図９】
2011138428.tif 000011
【図１０】
2011138428.tif 000012
【図１１】
2011138428.tif 000013
【図１２】
2011138428.tif 000014
【図１３】
2011138428.tif 000015
【図１４】
2011138428.tif 000016
【図１５】
2011138428.tif 000017
【図１６】
2011138428.tif 000018
【図１７】
2011138428.tif 000019
【図１８】
2011138428.tif 000020
【図１９】
2011138428.tif 000021
【図２０】
2011138428.tif 000022