ポートフォリオを新規に作成して保存 |
|
|
既存のポートフォリオに追加保存 |
|
PDFをダウンロード |
審決分類 |
審判 全部申し立て 2項進歩性 G06F |
---|---|
管理番号 | 1010324 |
異議申立番号 | 異議1999-70928 |
総通号数 | 9 |
発行国 | 日本国特許庁(JP) |
公報種別 | 特許決定公報 |
発行日 | 1991-09-12 |
種別 | 異議の決定 |
異議申立日 | 1999-03-17 |
確定日 | 2000-01-12 |
異議申立件数 | 1 |
訂正明細書 | 有 |
事件の表示 | 特許第2797128号「論理シミュレータ」の請求項1ないし2に係る特許に対する特許異議の申立てについて、次のとおり決定する。 |
結論 | 訂正を認める。 特許第2797128号の請求項1ないし2に係る特許を維持する。 |
理由 |
I.手続きの経緯 本件特許第2797128号に係る発明は、平成2年1月12日に特許出願され、平成10年7月3日にその発明ついて特許の設定登録がなされた後、その特許について、特許異議申立人村戸良至より特許異議申立がなされ、取消理由通知がなされ、取消理由通知の指定期間内である平成11年7月30日に訂正請求がなされたものである。 II.訂正の適否についての判断 1.訂正の内容 ▲1▼訂正事項a 特許請求の範囲の請求項1に係る記載 「前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップと」 を、 「前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻 順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップと」 と訂正する。 ▲2▼訂正事項b 特許請求の範囲の請求項2に係る記載 「シミュレーション用の入力信号のイベントの種類と……ファンクションロジック部とを具備した」 を、 「前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直す」 と訂正する。 ▲3▼訂正事項c 明細書の第4頁第3〜18行の記載「(課題を解決するための手段)……(作用)」 を、 「(課題を解決するための手段) すなわち本発明の論理シミュレータは、 入出力装置と、 少なくとも、前記入出力装置から入力された被シミュレーションロジック回路の構成に関するデータと、該ロジック回路の動作をテストするためのテストパターンに関するデータと、該ロジック回路内のメモリーに格納されたデータと、シミュレーション結果とを格納する複数のRAMと、 前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻 順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップとを具備したことを特徴とする。 また、請求項2の発明は、請求項1記載の論理シミュレータにおいて、 前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直すことを特徴とする。 (作用)」 と訂正する。 2.訂正の目的の適否、新規事項の有無及び拡張・変更の存否 ▲1▼上記訂正事項aについては、 特許請求の範囲の請求項1に記載された 「前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップと」 を、より下位概念である 「前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻 順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップと」 に限定するものである。 したがって、この訂正は特許請求の範囲の減縮に相当するものである。 ▲2▼上記訂正事項bについては、 特許請求の範囲の請求項2に記載された 「前記シミュレーションチップは、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻順にこれらのテスト・ベクタ間に書き込むタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを具備した」 を、上記訂正事項aによって実質的に請求項1に記載する訂正を行った関係から削除するとともに、上記の「タイムホイール部」の構成を、より下位概念である 「前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直す」 に限定するものである。 したがって、この訂正は特許請求の範囲の減縮に相当するものである。 ▲3▼上記訂正事項cについては、 上記訂正事項a,bの訂正に伴い、明細書の記載を整合させたものである。 すなわち、訂正前の記載内容では、訂正事項a,bに係る訂正によって減縮された特許請求の範囲の記載との関係において明りょうでない部分が生じることになり、この明りょうでない部分が発生することを回避するために発明の詳細な説明の記載を訂正するものである。 そして、上記いずれの訂正も実質上特許請求の範囲を拡張し、又は変更するものでもない。 3.独立特許要件 (1)本件発明 平成11年7月30日付け訂正明細書の請求項1、2に係る発明(以後、「本件発明」という。)は、その訂正明細書の特許請求の範囲の請求項1、2に記載された事項により特定される次のとおりのものである。 「【請求項1】入出力装置と、 少なくとも、前記入出力装置から入力された被シミュレーションロジック回路の構成に関するデータと、該ロジック回路の動作をテストするためのテストパターンに関するデータと、該ロジック回路内のメモリーに格納されたデータと、シミュレーション結果とを格納する複数のRAMと、 前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップとを具備したことを特徴とする論理シミュレータ。 【請求項2】請求項1記載の論理シミュレータにおいて、 前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直すことを特徴とする論理シミュレータ。」 (2)当審が通知した取消理由に引用された引用刊行物に記載の発明 ▲1▼刊行物1(特開昭63-204442号公報)には、次の事項が記載されている。 「論理回路におけるゲートの動作をシミュレーションする論理シミュレーション専用エンジンにおいて、論理回路を構成する評価対象メモリをメモリセルに区分して、当該メモリセルを上記ゲートと対応づけた上で、評価対象メモリに関する内部状態を保持するメモリ評価用メモリと、評価対象メモリに対するアドレス信号を発生するためのアドレス信号用ネット・ステータス・メモリとを用意し、評価対象メモリと評価対象ゲートとが混在している状態での論理回路を評価できる専用プロセッサが開示されている。」(刊行物1の第2頁下右欄第19行〜第3頁上左欄第10行目)と記載されている。 刊行物1には、ゲートとメモリとの混在する論理回路を評価できるように考慮したメモリ・シミュレーション機構をもつ論理シミュレーション専用プロセッサに関する発明が記載されている。 (3)対比・判断 ▲1▼請求項1について、 本件請求項1に係る発明は、ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うシミュレーションチップにおいて「次のイベントの発生時間がポインターによって示されるタイムホイール部」をその構成の特徴点とするものである。 一方、刊行物1には、本件請求項1に係る発明の構成要件を示す構成の一部が記載されてはいるももの、請求項1に係る発明の上記構成の特徴点「次のイベントの発生時間がポインターによって示されるタイムホイール部」は刊行物1に記載されていない。また、刊行物1に記載された発明から「次のイベントの発生時間がポインターによって示されるタイムホイール部」を設けることが容易に考えることはできない。さらに、特許異議申立人は平成11年11月9日付けの回答書で、『「タイムホール部」は刊行物1の「評価ゲート・バッファ(6)」に対応し、「アキュムレータ部」は刊行物1の「評価パイプライン(5)」に対応し、「ファンクションロジック部」は刊行物1の「ファンアウト・パイプライン(4)」に対応しており』と主張しているが、この記載も具体的説明がされておらず不明瞭である。 したがって、本件請求項1に係る発明は刊行物1に記載された発明にもとづいて当業者が容易に発明することができたものとすることはでない。 そして、本件請求項1に係る発明の特許は、上記刊行物1に記載のない上記構成の特徴点を有することにより、特許明細書に記載されたとおりの、「従来に比べて高速にシミュレーションを行うことができる」という作用・効果を奏するものである。 よって、本件請求項1に係る発明は特許出願の際独立して特許を受けることができるものである。 ▲2▼請求項2について 本件請求項2に係る発明も、同請求項1に係る発明を更に技術的に限定具体化したものであるから、これも上記刊行物1に記載された発明から当業者が容易に発明できたものではない。 4.むすび 以上のとおりであるから、上記訂正事項は、特許法第120条の4第2項及び同条第3項において準用する126条第2〜4項の規定に適合するので、当該訂正を認める。 III.特許異議申立について 1.申立ての理由の概要 特許異議申立人村戸良至は、証拠として甲第1号証(特開昭63-204442号公報)を提出し、本件請求項1、2に係る発明は、特許法第29条第2項の規定に違反してなされたものであるから、特許を取り消すべき旨主張している。 2.判断 特許公報に記載された請求項1、2に係る発明については、上記II.3.(3)で示したように、取消理由通知で示した刊行物に記載された発明から容易に発明をすることができたものとすることはできない。 3.むすび 以上のとおりであるから、特許異議申立人の理由及び証拠によっては、本件請求項1、2に係る発明の特許を取り消すことはできない。 また、他に本件請求項1、2に係る発明の特許を取り消すべき理由を発見しない。 よって、結論のとおり決定する。 |
発明の名称 |
(54)【発明の名称】 論理シミュレータ (57)【特許請求の範囲】 (1) 入出力装置と、 少なくとも、前記入出力装置から入力された被シミュレーションロジック回路の構成に関するデータと、該ロジック回路の動作をテストするためのテストパターンに関するデータと、該ロジック回路内のメモリーに格納されたデータと、シミュレーション結果とを格納する複数のRAMと、 前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入カ信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力-出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップとを具備したことを特徴とする論理シミュレータ。 (2) 請求項1記載の論理シミュレータにおいて、 前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直すことを特徴とする論理シミュレータ。 【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、論理シミュレータに関する。 (従来の技術) 一般に、半導体デバイスは多数の基本機能素子からなる論理回路によって構成されるが、例えば新しい半導体デバイスを設計する際においては、設計した論理回路が期待通りの動作を行うか否か等を予め論理シミュレータによりシミュレーションしている。このような論理シミュレータは、従来汎用コンピュータ等を用いて、ソフトウエアによって構成されていた。 また、このような論理シミュレータにおける論理シミュレーションの高速化を図るため、例えば特開昭59-3652号公報、特開昭63-257841号公報等において、上述したような論理シミュレータのソフトウエアの一部を、ハードウエアに置き換えた論理シミュレータが提案されている。 (発明が解決しようとする課題) しかしながら、近年半導体デバイスは高集積化される傾向にあり、これに伴い、論理シミュレータによってシミュレーションすべきロジック回路も、大規模化、複雑化する傾向にある。このため、上述した従来のソフトウエアの一部を、ハードウエアに置き換えた論理シミュレータにおいても、シミュレーションに数時間あるいは数十時間を要する場合があり、さらにシミュレーションの高速化を図ることが求められている。 特に、シミュレーションすべきロジック回路が、RAMおよびROM等のメモリーを有し、シミュレーション中にこれらのメモリーにアクセスしてデータの読み出し、また、書き込みを行うような場合、従来の論理シミュレータでは、ハードウエアとソフトウエアとの間での応答を必要とするため、シミュレーション速度が遅くなるという問題があった。 本発明は、かかる従来の事情に対処してなされたもので、RAMおよびROM等のメモリーを有するロジック回路であっても、従来に較べて高速にシミュレーションを行うことのできる論理シミュレータを提供しようとするものである。 [発明の構成] (課題を解決するための手段) すなわち本発明の論理シミュレータは、 入出カ装置と、 少なくとも、前記入出力装置から入力された被シミュレーションロジック回路の構成に関するデータと、該ロジック回路の動作をテストするためのテストパターンに関するデータと、該ロジック回路内のメモリーに格納されたデータと、シミュレーション結果とを格納する複数のRAMと、 前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力-出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップとを具備したことを特徴とする。 また、請求項2の発明は、請求項1記載の論理シミュレータにおいて、 前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直すことを特徴とする。 (作用) 本発明の論理シミュレータでは、少なくとも、シミュレーションを行うロジックの構成に関するデータと、該ロジックの動作をテストするためのテストパターンに関するデータと、該ロジック回路内のメモリーに格納されたデータと、シミュレーション結果とを格納する複数のRAMを有する。そして、これらのRAMとの応答により、シミュレーションチップが、自走(シミュレーションチップ内の演算処理のみ)で被シミュレーションロジック回路の状態をシミュレーションする。 また、被シミュレーションロジック回路を構成するメモリー(RAMおよびROM)に格納されたデータは、予め論理シミュレータ内の専用のRAM(RAM、ROMデータメモリー)に格納しておく。そして、シミュレーションチップは、上記メモリーを多入力-出力の複数のセルとして取り扱うとともに、必要に応じて前記専用のRAM内からデータを読み出し、また、書き込みを行う。 したがって、RAMおよびROM等のメモリーを有するロジック回路であつても、シミュレーション途中で汎用コンピュータと応答を行わずに、シミュレーションを実行することができる。 このため、従来に較べて大幅にシミュレーション速度の高速化を図ることができる。 (実施例) 以下、本発明の一実施例の論理シミュレータを図面を参照して説明する。 第1図に示すように、この実施例の諭理シミュレータは、1チップ上に形成されたハードウエアから構成されるシミュレーションチップ1と、例えば複数のRAMから構成されるデータ収容部2と、入出力装置としてのエンジニアリング・ワーク・ステーション(以下EWSという)3とからその主要部が構成されている。 また、上記シミュレーションチップ1は、タイムホイール部(以下TWUという)11と、アキュムレータ部(以下ACUという)12と、ファンクションロジック部(以下FDUという)13とから横成されている。 一方、データ収容部2は、コンディションステートメモリー(以下COMという)21、テストベクタメモリー(以下TVMという)22、タイムホイールメモリー(以下TWMという)23、イベントテーブルメモリー(以下ETMという)24、ネットインフォメーションメモリー(以下NIMという)25、結果格納用メモリー(以下RSMという)26、セルスペックメモリー(以下CSMという)27、RAM、ROMデータメモリー28(以下RRMという)28、ネットシグナルステートメモリー(以下STMという)29等から構成されている。 上記シミュレーションチップ1とデータ収容部2は、外部バス(外部データバス、外部アドレスバス)4を介して接続されている。 また、ロジック部1内のTWU11、ACU12、FDU13は内部バス(内部データバス、内部アドレスバス)14を介して接続されている。 さらに、複数のメモリーのうちSTM29だけは、専用のステートバス(ステートデータバス、ステートアドレスバス)30を介してACU12に接続されている。 シミュレーションに必要なデータは、EWS3によって入力され、データ収容部2に転送され、必要に応じてシミュレーションチップ1に取り込まれるが、データ収容部2のメモリーのうち、COM21には、EWS3との応答時に必要なデータが収容される。 シミュレーションに必要なデータとしては、ロジックの構成に関するデータすなわち各セル(論理素子)の接続状態に関するネットインフォメーションデータおよび各セルのスペックに関するセルスペックデータと、シミュレーション用の入力信号に関するテスト・ベクタ等があるが、これらは、シミュレーションに先立って予めEWS3からTVM22、NIM25、CSM27内に書き込まれる。 なお、TVM22に格納されるテスト・ベクタには、例えば入カ信号の立ち上り、立ち下がり等の変化(以下イベントという)の種類と、イベントの発生したネット名に関する情報が発生時刻順に記載されている。また、それぞれのイベントには、イベントの発生順を示すイベントゲートフラグが付されている。 また、NIM25に格納されるネットインフォメーションデータは、第4図に示すように例えばあるセルの出力側のネットがどのセルに接続されているかを示すネット次段メモリー(以下NNMという)25aおよび拡張ネット次段メモリー(以下ENNMという)25bと、あるセルの入カ側にどのネットが接続されているかを示すネット前段メモリー(以下NBMという)25cおよび拡張ネット前段メモリー(以下ENBMという)25dとに分けられている。また、このネットインフォメーションデータには、セル種(例えばANDゲートであるかORゲートであるか等)に関する情報およびセルのファンアウト(負荷容量)に関する情報が含まれている。また、CSM27内に格納されるセルスペックデータは、各セルのホールドタイム、セットアップタイム等のタイミングエラーおよびファンアウトによる遅延時間を算出するのに必要となる性能を示すもの等である。 上記ロジックの構成に関するネットインフォメーションデータのうち、RAMおよびROM等のメモリーに関しては、例えば第2図(a)に示すように、復数の入力101a〜101zと、榎数の出力102a〜102zを有するセル103と考え、これらを第2図(b)に示すように、各出力102a〜102z毎に分割された複数の一出力セル103a〜103zとして取り扱う。 このようにRAMおよびROMを1出力毎に分割して取り扱うことにより、ロジック部1でシミュレーションを行う際に、分割した各セルについて一出力のみに着目して処理することができる。 このため、RAMおよびROMを、他のANDゲートやORゲート等の通常のセルと同様に取り扱うことが可能となる。 また、上記RAMおよびROM内に格納されている実際のデータは、そのアドレスにしたがって、RRM28内に格納されており、必要に応じてこのRRM28をアクセスすることにより、データの読み出し、書き込み等を行う。 次に、1チップ上に形成されたハードウェアから構成されるロジック部1の構成および動作についてTWU11、ACU12、FDU13の順に説明する。 TWU11は、例えば第3図に示す如く構成されている。 TWU11においては、EWS3からTVM22に書き込まれたテスト・ベクタを順次読み込み、TWM23とETM24に展開するとともに、新しく発生したイベントを発生時刻順にこれらのテスト・ベクタ間に書き込む。 すなわち、上記TWM23は、イベントを管理するメモリーであって、アドレスを絶対時間で持ち、データとしてイベントの発生ネット名、イベント値等のイベントに関するデータを格納したETM24内のアドレス値(ポインター)、次のイベントの発生時間(TWMのアドレス:ポインター)等を格納する。また、ETM24は、データとしてある時間に発生したイベントの発生ネット名、イベント値を持ち、さらに同時間に発生した別のイベントデータが格納されているETMのアドレス値(ポインター)等を持つ。 TWU11のデータバスレジスタ40は、内部バスと外部バスとをつなぐ双方向レジスタである。また、コンパレイティブロジック41は、同時間に発生するイベントかどうかを判断するものであり、データチェックロジック42は、新しく発生したイベントやロードしてきたイベントがポインターを切断するかどうか(ポインターのチェーンをつなぎ直す必要があるか)または、メモリーの書き込みが禁止でないかどうか等を判断する。また、加算ロジック43は、現在の絶対時間とディレー値から新しく発生したイベントの絶対時間を算出する。 また、TVMカウンタ44は、TVM22のテスト・ベクタをTWMにロードするためのものであり、TWMカウンタ45は、TWM23のアドレスとなる絶対時間を、ETMカウンタ46は、ETM24のアドレスを示す。 また、ビフォーイベントレジスタ(以下BEレジスタという)47は、現時間のTWM23のデータを示す。ネクストイベントレジスタ(以下NEレジスタという)48は、TVM22からロードされたデータや新しく発生したイベントデータを格納し処理する。 また、TWUコントロールロジック49は、TWU11の動作を制御する。 次にTWU11の動作を説明する。 まず、TWU11は、TVM22内に収容されたシミュレーションを行うテスト・ベクターを、TWM23にロードする。(但し、TWM23の示す時間範囲のみロード)。 上記動作で、同時間に発生するイベントがあれば、そのイベントの発生ネット名、イベント値をETM24に書き込み、このETM24のアドレスをTWM23のポインターとして書き込む。なお、この動作は、BEレジスタ47と、NEレジスタ48を用いて行う。また、ロードしたイベントが先にロードしたイベントを越え、TWM23の次の発生時間を示すポインターを更新する(ポインターのチェーンをつなぎ直す)必要があればポインタの更新を行う。 上述のようにしてTVM22からTWM23へのテスト・ベクターのロードが終了すると、ACU12からのイベント読み出し要求信号(ACUリクエスト)を受けて順次イベントをTWM23からACU12へと読み出す。 データを送り出すと、外部バス4の使用権はACU12に移り、TWU11は、FDU13から来る新しく発生したイベント書き込み要求信号またはACU12からのACUリクエストが来るまで待機状態となる。 そして、ACUリクエストが来ると、再び、順次イベントをTWM23からACU12へと読み出す。 FDU13からイベント書き込み要求信号が発生したとき、内部データバス14には新しく発生したイベントの発生ネット名、イベント値とディレー値が送られて来ている。TWU11は、このデータをデータバスレジスタ40でラッチした後、加算器ロジック43で現在の絶対時間とディレー値から新しく発生したイベントの絶対時間を算出してTWM23に書き込む。この時、TWM23の次のイベント発生時間を示すポインターを更新する(ポインターのチェーンをつなぎ直す)必要があればポインターの更新を行う。 この後、まだTWM23内にイベントがあれば上述したように、TWM23からACU12へとイベントを読み出し、同様な処理を行う。また、TWM23内にイベントがなければ、次の時間範囲のテスト・ベクターを、TVM22からTWM23にロードし、上述した処理を繰り返す。そして、TVM22にあるシミュレーションを行うテスト・ベクターを全てロードして処理し、それによって発生するイベントも全て処理したならば、動作を終了する。 なお、第3図に示す例では、各メモリーとしてSRAMを用いているが、DRAMを用いる場合は、DRAMコントローラ回路を追加する必要がある。 次に第4図を参照してACU12について説明する。 ACU12では、まずACUコントロールロジック60からACUリクエストを出し、TWU11からTWアクノリッジ信号に同期して内部バス上に出力されたイベントデータを、IBUSレジスタ61にラッチする。ACU12は、TWアクノリッジ信号を受けると外部バス4の占有権を得、イベントデータをラッチしてイベント読み出し要求信号を“L”にすることで内部動作に入る。 そして、IBUSレジスタ61にラッチしたイベントの発生ネット名(アドレス)によってSTM29をアクセスし、イベントの発生したネットの現状態(論理値)と、イベントゲートフラグをステータスレジスタ62に格納する。 この後、IBUSレジスタ61に格納されているTWU11からのイベントゲートフラグと、ステータスレジスタ62に格納されているSTM29からのイベントゲートフラグとを、ALU63で比較演算することで、カレントイベントが有効なイベントであるのか、無効なイベントであるのか、または不確定なイベントであるとして、論理“E”にリプレースしなければならないのかを判断する。 上記判断において、カレントイベントが無効であると判断された場合は、次のTWU11からのイベントデータの計算に備えて、IBUSレジスタ61のイベントゲートフラグをSTM29に書き込んで、カレントイベントの処理を終了する。 一方、上記判断において、カレントイベントが有効あるいは不確定と判断された場合は、IBUSレジスタ61のイベントゲートフラグをSTM29に書き込み、その後、データセレクター64を介してRSM26にカレントイベントの内容を書き残す。この際、カレントイベントが書き込まれるアドレスは、RSM書き込みアドレスカウンタ65によって、“0000”から順次“FFFF”までインクリメントしていく。 なお、シミュレーションの結果は、一旦TWM23またはETM24に書き込まれ、ディレー時間の後、これらのメモリーから読み出され、イベントゲートフラグの検査をした後に始めてパストイベントとなりRSM26に書き込まれる。 次に、ACU12は、カレントイベントによって発生する次段セルの出力変化(次段イベント)を求める作業に入る。 まず、IBUSレジスタ61にラッチしているイベントの発生したネット名(アドレス)によってNIM25中のNNM25aをアクセスし、次段イベントの発生する可能性のあるネット名(アドレス)、セル種、ファンアウトをNNレジスタ66に格納する。ここで、次段イベントの発生する可能性のあるネットが2以上ある場合は、2番目以降については次段ネットアドレス同士をつなぐポインターのみ読みだしておき、最初の次段ネットを処理した後、ポインターによって次の次段ネットを順次読み出し処理していく。 次に、NNレジスタ66に格納した次段ネットのアドレスによって、NIM25中のNBM25cをアクセスし、次段ネットに影響を与える入力ネットのアドレス、およびその入力ピンコード(クロック、クリアー、データイネーブル、ロード等)をNBレジスタ67に格納する。人力ネットのアドレスが2以上ある場合は、次段ネットの場合と同様に、ポインターを用いて1入力ずつ読み出していく。また、並列処理により、NNレジスタ66に格納した次段ネットのアドレスによって、STM29をアクセスし、次段ネットの現状態(論理値)とイベントゲートフラグをステータスレジスタ62に格納する。 この後、NBレジスタ67に格納した入力ネットのアドレスによって、STM29をアクセスし、入カネットの現状態(論理値)をステータスレジスタ62に格納する。また、NBレジスタ67に格納した入力ネットのアドレスをつなぐポインターによって、ENBM25dをアクセスし、他の入カネットのアドレスをNBレジスタ67に格納する。そして、ステータスレジスタ62、NNレジスタ66、NBレジスタ67に格納した次段ネット、入力ネット、ピンコード、セル種、ファンアウト等に関する情報を、ステータスレジスタ62を書き換える毎に、データセレクター68から内部バス14を経由してFDU13の入力レジスタに転送する。 全ての情報をFDU13に転送し終わると、ACUコントロールロジック60からACUコンティニューか、ACUリクエストを出して外部バス4の占有権をFDU13に渡す。 すなわち、次段ネットが複数ある場合は、ACUコンティニュー信号を出してFDU13、TWU11の処理が終了するのを待ち、TWアクノリッジがあれば次の次段ネットについて、上記処理を繰り返す。また、次の次段ネットがない場合は、内部のNNレジスタ66、NBレジスタ67、ステータスレジスタ62を全てクリアし、次のカレントイベントがTWU11から内部バス14上に出力され、TWアクノリッジがあるまでACUリクエストを出して待機する。 次に第5図を参照してFDU13について説明する。 まず、FDU13は、上述のようにしてACU12から転送されたデータをラッチする。そして、各論理ブロックにおいて、入力端子論理値から出力論理値を決定し、セル種データにより、指定セルの出力論理値を選択する。 次に、この選択された出力論理値と、現出カ論理値との比較を行い、イベントの発生(変化の有無)を判断する。また、イベントピン(イベントが発生したピン)以外の入カデータにより出力が決定される場合は、イベントの発生無しと判定する。 イベントの発生が無い場合は、内部バス14にイベントの発生無しの信号を送り、FDU13の処理を終了する。 一方、イベントの発生がある場合は、現出力論理値と、上記選択された出力論理値より、イベントの立ち上り/立ち下り変化を判断し、セル種、入力ピン名、出力ピン名により、CSM27のアドレスを作成し、CSM27から入カしたデータと、ファンアウトデータから遅延時間を計算して、ネットアドレス、イベントの有無、論理値とともに内部バス14に送り出し、FDU13の処理を終了する。 こうして、ある時刻において発生したイベントに基づく被シミュレーションロジックの状態がシミュレーションされることになる。 なお、前述した如く、被シミュレーションロジック回路のRAM、ROM等のメモリーについては、各出力毎に分割された複数の一出力セルとして順次各分割されたセルの状態がシミュレーションされる。また、これらのメモリー内に格納されたデータは、RRM28内に展開されているので、必要に応じてRRM28内から読み出し、RRM28内へ書き込みをしてシミュレーションを行う。 そして、このような、TWU11、ACU12、FDU13による処理を繰り返すことにより、TVM22内のテスト・ベクタに応じた被シミュレーションロジックの時間的な変化を、シミュレーション途中でEWS3との応答を行うことなく、順次シミュレーションする。 すなわち、この実施例の論理シミュレータでは、メモリー以外のロジック部分が全て1チップ上にハードウエアとして形成されており、このハードウエア単独でシミュレーションを行うことができる。また、被シミュレーションロジック回路のRAM、ROM等のメモリーは、各出力毎に分割された複数の一出力セルとして取り扱い、例えば他のANDゲートやORゲート等の通常のセルと同様にシミュレーションを行う。さらに、被シミュレーションロジック回路のRAM、ROM等のメモリー内に格納されたデータは、予め専用のRRM28内に展開しておき、必要に応じてRRM28内から読み出し、RRM28内へ書き込みをしてシミュレーションを行う。 したがって、例えばRAM、ROM等のメモリーを有するロジック回路のシミュレーションを行う場合であっても、従来の論理シミュレータの如くシミュレーション途中でハードウエア部分(シミュレーションチップ1)とソフトウエア部分(EWS3)とが応答を行う必要がない。 このため、このような応答に要する時間を削除することができ、従来に較べて大幅にシミュレーション速度を高速化することができる。 なお、上記実施例では、1チップ上にTWU11と、ACU12と、FDU13とを設けた例について説明したが、これらは必ずしも1チップ上に設ける必要はなく、復数例えば2〜3チップ上に分割して設けてもよい。このように構成した場合、各部の構成の変更等は容易になるが、シミュレーション速度は、1チップ上に設けた場合より若干遅くなる。 [発明の効果] 以上説明したように、本発明の論理シミュレータによれば、RAMおよびROM等のメモリーを有するロジック回路のシミュレーションであっても、従来に較べて高速にシミュレーションを行うことができる。 【図面の簡単な説明】 第1図は本発明の一実施例の論理シミュレータの全体構成を示す図、第2図はメモリーの取り扱いを説明するための図、第3図は第1図の論理シミュレータのタイムホイール部の構成を示す図、第4図は第1図の論理シミュレータのアキュムレータ部の構成を示す図、第5図は第1図の論理シミュレータのファンクションロジック部の構成を示す図である。 1……シミュレーションチップ、2……データ収容部(RAM)、3……エンジニアリング・ワーク・ステーシーン(入出力装置)、4……外部バス、11…タイムホイール部、12……アキュムレータ部、13……ファンクションロジック部、14……内部バス、21……コンディションステートメモリー、22……テストベクタメモリー、23……タイムホイールメモリー、24……イベントテーブルメモリー、25……ネットインフォメーションメモリー、26……結果格納用メモリー、27……セルスペックメモリー、28……RAM、ROMデータメモリー、29……ネットシグナルステートメモリー、30……ステートバス。 |
訂正の要旨 |
▲1▼訂正事項a 特許請求の範囲の請求項1に係る記載 「前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップと」 を、 「前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻 順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップと」 と訂正する。 ▲2▼訂正事項b 特許請求の範囲の請求項2に係る記載 「シミュレーション用の入力信号のイベントの種類と……ファンクションロジック部とを具備した」 を、 「前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直す」 と訂正する。 ▲3▼訂正事項c 明細書の第4頁第3〜18行の記載「(課題を解決するための手段)……(作用)」 を、 「(課題を解決するための手段) すなわち本発明の論理シミュレータは、 入出力装置と、 少なくとも、前記入出力装置から入力された被シミュレーションロジック回路の構成に関するデータと、該ロジック回路の動作をテストするためのテストパターンに関するデータと、該ロジック回路内のメモリーに格納されたデータと、シミュレーション結果とを格納する複数のRAMと、 前記RAMとの応答により、自走で前記ロジック回路の状態をシミュレーションするシミュレーションチップであって、 シミュレーション用の入力信号のイベントの種類とイベントの発生したネット名に関する情報が発生時刻順に記載されているテスト・ベクタを前記RAMから順次読み込んでメモリに展開するとともに、新しく発生したイベントを発生時刻 順にこれらのテスト・ベクタ間に書き込み、かつ、次のイベントの発生時間がポインターによって示されるタイムホイール部と、 前記タイムホイール部から、順次前記イベントの情報を読込んで、各ネットにおけるシミュレーションを実行するアキュムレータ部と、 前記アキュムレータ部からのシミュレーション結果を受け取って、各論理ブロックにおけるイベントの発生状態を判定し、判定結果を出力するファンクションロジック部とを備え、 前記ロジック回路内のメモリーを多入力一出力の複数のセルとして取り扱うとともに、必要に応じて前記RAM内から該メモリーに格納されたデータを読み出し、書き込みをするシミュレーションチップとを具備したことを特徴とする。 また、請求項2の発明は、請求項1記載の論理シミュレータにおいて、 前記タイムホイール部では、必要に応じて前記ポインターを更新することによりポインターのチェーンをつなぎ直すことを特徴とする。 (作用)」 と訂正する。 |
異議決定日 | 1999-12-17 |
出願番号 | 特願平2-4928 |
審決分類 |
P
1
651・
121-
YA
(G06F)
|
最終処分 | 維持 |
前審関与審査官 | 早川 学、奥村 元宏 |
特許庁審判長 |
小川 謙 |
特許庁審判官 |
関川 正志 東 次男 |
登録日 | 1998-07-03 |
登録番号 | 特許第2797128号(P2797128) |
権利者 | 東京エレクトロン株式会社 |
発明の名称 | 論理シュミレ-タ |
代理人 | 須山 佐一 |
代理人 | 須山 佐一 |