• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない(前置又は当審拒絶理由) G06F
管理番号 1114218
審判番号 不服2002-16958  
総通号数 65 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2001-04-20 
種別 拒絶査定不服の審決 
審判請求日 2002-09-04 
確定日 2005-03-24 
事件の表示 平成11年特許願第290276号「シミュレーションモデルの生成方法、シミュレーション方法及びその記録媒体、シミュレーションモデル生成装置、シミュレーション装置」拒絶査定不服審判事件〔平成13年 4月20日出願公開、特開2001-109788〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 1.手続の経緯・本願発明
本願は、平成11年10月12日の出願であって、その請求項1に係る発明は、特許請求の範囲の請求項1に記載された次のとおりのものと認める。(以下、「本願発明」という。)
「【請求項1】機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、資源の制約の下で、前記機能合成部が、回路モジュールを表現するアルゴリズム記述の複数機能を単位クロックの中で動作が可能である部分機能に分解するステップと、
前記単位クロックに相当する状態毎の前記アルゴリズム記述中の変数と前記資源のうちのレジスタの対応関係を示す変数/レジスタ/状態対応表を生成するステップと、
前記クロックレベル検証部が、前記回路モジュールと外部とのインターフェイス情報と前記部分機能と前記変数/レジスタ/状態対応表を組合わせることにより前記アルゴリズム記述からクロックレベル記述のクロックレベルアルゴリズムモデルを生成するステップと具備し、前記クロックレベル記述は、前記単位クロックでの前記資源のうちのレジスタの各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述であるシミュレーションモデルの生成方法。」

2.引用刊行物記載の発明
(1)これに対して、当審において平成16年10月15日付けで通知した拒絶の理由に引用した、若林他、“伝送用LSIを動作合成で開発,機能設計の期間が1/10に短縮”、日経エレクトロニクス、1996年2月12日、No.655、日経BP社、p.147〜169(以下、「刊行物1」という。)には、次の事項が記載されている。
ア 「大規模ディジタルLSIやこれを利用した電子機器を設計するための「動作合成ツール」がいよいよ設計の現場に登場し始めている。
動作合成ツールとは、ハードウエアの動作を表現するアルゴリズムから論理合成ツールに入力するRTL(register transfer level)記述を生成するEDAツールである。」(148頁左欄1〜9行)
イ 「従来、アルゴリズム設計の良しあしを設計の早期に評価する効果的な手段がなかった。機能設計後のRTLのシミュレーションで初めて確認していた。ここでアルゴリズムの間違いが見つかると、機能設計に戻って回路を修正し、さらにRTL記述を修正する必要がある。一方、動作合成を適用した場合には、動作レベルでアルゴリズムを直接シミュレーションできる。つまりアルゴリズムを設計しながら検証や修正ができる。」(150頁右欄3〜14行)
ウ 「記述のしやすさという点でみても、動作記述はRTL記述よりも有利である。これは、(1)動作記述の方が逐次動作を自然に記述できる、(2)より抽象度の高いレベルで記述できるので記述量が少なくてすむ、(3)合成ツールに入力できる記述の制約が緩いなどの理由による。」(151頁中欄2行〜152頁左欄3行)
エ 「当社が開発したCyberは、詳細なタイミングを記述できるように工夫した動作記述言語「BDL(Behavior Description Language)を使用している。BDLの文法はC言語に似ている。逐次動作を流れに従って時間順に記述できる。」(152頁左欄12行〜同中欄5行)
オ 「工程1:C言語の開発環境でデバグ
まずBDLの動作記述を使ってアルゴリズムを検証する。BDLはC言語の文法を拡張して、タイミング情報を記述できるようにした言語である。入出力端子の宣言やwait文、7ビットなどのデータ型があることを除けば、C言語とほぼ同じような記述でハードウエアの動作を表現できる。
C言語とBDLの違いを吸収するマクロを利用すれば、プリプロセサを使って、動作合成とCコンパイラの両方に入力できる記述を作成できる。たとえば外部回路との間でデータをやりとりするBDLの動作記述を、C言語の入出力動作に変換する。こうすれば、アルゴリズムの検証時に動作レベルでシミュレーションする必要がなくなる。ソフトウエア開発用のCコンパイラとデバガを使ってBDL記述のデバグを進めることができる。」(157頁右欄1行〜158頁左欄9行)
カ 「クロック同期動作を記述しやすい
動作合成で自動的にスケジューリングを行う場合、動作の並列性などを設計者が明示する必要はない。しかし、スケジューリングを行わない場合、1ステップで並列に実行する動作群を明示する必要がある。通常、1相の同期回路を想定して、クロックの立ち上がりエッジのタイミングをステップの始まりと見なす。たとえばVHDLでは「wait until clock' event and clock='1';」というステートメントで、クロックの変化点(FSMの状態の遷移)を記述するBDLはこれを記号「$」で示す(図5参照)。」(160頁右欄1行〜161頁中欄4行)
キ 「BDLであれば、ループや条件分岐の制御構造のままクロックのタイミングを記述できる(図5の"else $"部分)。
また、BDLはハンドシェークなどの同期回路を表現するためにwait文を用意している。さらに、演算器やマルチプレクサ、レジスタ、バスの接続関係といったデータパス回路の構造は意識せずに記述できる。
変数は設計者が必要な数だけ宣言すればよい。これらは動作合成によって最適な数のレジスタに割り当てられる。論理合成では、設計者がハードウエアを意識して記述しないと、レジスタ数や演算器の数が増加してしまう、という問題があった。
もちろん動作合成ツールを利用する場合、無理に抽象度の高い動作記述で書かなければならないというわけではない。データパス回路の構造を書いた方がわかりやすいときには、構造を詳細に記述してもよい。構造を詳細に記述した部分は、指定しない限り動作合成によって最適化されない。」(162頁左欄1〜26行)
ク 「現在、Cyberは制約条件として以下の条件を設定できる。
(1)クロック周期(単位はns)
(2)使用する演算器(数、ビット幅、種類)
(3)使用するメモリ(容量、ビット幅、種類)
(4)使用する入出力端子(本数、ビット幅、種類)
(5)動作記述の変数と入出力端子の対応などの情報」(162頁中欄15〜25行)

これら記載事項及び図4(150頁)によると、刊行物1には、
「大規模ディジタルLSIを設計するための動作合成ツールにおいて、動作レベルでアルゴリズムを直接シミュレーションでき、入出力端子の宣言を含み1ステップで並列に実行する動作群を明示してクロックの変化点を記述する動作記述言語を用い、変数は動作合成によって最適な数のレジスタに割り当てられるものである方法」の発明が記載されている。

(2)また、同じく当審における上記拒絶の理由に引用された特開平5-101141号公報(以下、「刊行物2」という。)には、図面とともに、次の事項が記載されている。
ア 「【従来の技術】近年、LSIの大規模化が進み、それに伴ってLSI設計の期間短縮のため、論理回路を自動的に合成する論理合成システムが用いられてきている。論理合成システムを用いて論理回路を設計する際には、機能記述言語により設計対象の動作を記述する必要がある。
【0003】従来、機能記述言語はレジスタ転送レベルの言語であった。レジスタ転送レベルの言語では、設計対象のレジスタ、演算器などのハードウェア構成及び各動作周期(以下、クロック・サイクルという)毎のレジスタ間のデータの流れと処理を記述する。この言語を用いて論理回路を設計するには、レジスタ、演算器等のハードウェアに関する専門知識が必要とされる。
【0004】このため、最近ではハードウェアの専門知識を必要としない設計対象の動作のみを記述する動作機能記述(ビヘイビア記述ともいう)から論理回路を合成する高位合成システムによる高位合成装置の開発が行われてきている。動作機能記述ではハードウェアの構成を意識せずに設計対象の動作仕様をプログラムと同様にアルゴリズミックに記述できる。
【0005】アルゴリズミックに記述された動作を論理回路で実行可能にするためには、前記のように記述された動作を各クロック・サイクル毎に実行される動作に分割する処理、すなわちステート分割の処理が必要となる。1ステートにおける動作は1クロック・サイクルで実行され、異なるステート間における演算データの受け渡しにはレジスタが用いられる。
【0006】この高位合成システムでは、動作機能記述で表わされた設計対象の動作のステート分割の処理を行い、ステート間で演算データの受け渡しがある場合、その演算データに対応した動作機能記述中の演算対象となる変数をレジスタに割付ける。」(2頁1欄45行〜同2欄26行)
イ 「【0045】次に、図1で示した変数解析部3における、ステート分割後の各ステートで必要とされるレジスタの求め方を説明する。
【0046】図2は、この変数解析部3による処理手順を示すフローチャートである。
【0047】まず、最初のステート中の変数の解析を実行する(ステップ101)。その結果、次のステートに受け渡される変数を、変数名とステートの番号と変数の属する演算の組としてレジスタ・リスト記憶部4に登録する(ステップ102)。この操作を各ステートに渡り繰り返す(ステップ102〜104)。
(中略)
【0059】以下、図19で示したデータフローのマージ方法を、図4及びマージ規則を用いて説明する。
【0060】まず、マージ規則1を適用する事により、1つの加算器で実行したい演算の入力変数x2に対応したレジスタx2はステート1に、x1はステート2に属しているので、これら2つのレジスタx1,x2はマージ可能である(ステップ201〜203)。この結果、レジスタx1とx2がマージされる(ステップ204)。
【0061】同様にステート1に属するレジスタx3とステート2に属するレジスタy1がマージ規則1によりマージ可能であるため、マージされる(ステップ201〜204)。
【0062】次に、マージ規則2を適用する前に、ステート2に同一の変数y1が現われているので、レジスタx3とy1とのマージ操作に関与しない、乗算への入力変数y1をレジスタ・リスト記憶部4から削除する。そして、出力変数y1とz1とに対応したレジスタをマージする(ステップ205,206)。
【0063】さらに、マージ規則5,6を適用することにより、図5に示すレジスタ割付けの結果が得られる。図5から分かるように、ステート1で用いられるレジスタx2とステート2で用いられるレジスタx1とが共用化されている。他のレジスタも同様に共用化されている。」(5頁7欄8行〜同8欄23行)

3.対比
本願発明と刊行物1に記載された発明とを対比すると、刊行物1に記載された発明の「大規模ディジタルLSI」は、本願発明の「回路モジュール」に相当し、刊行物1に記載された発明の「動作合成ツール」はシミュレーションを行うものであるから「シミュレーション装置」ということができ、刊行物1記載の発明の「1ステップで並列に実行する動作群を明示してクロックの変化点を記述する」ことの、「1ステップ」は「単位クロック」に相当し、また、この記述はC言語による記述(本願発明の「アルゴリズム記述」に相当。)を前提としている(上記2.(1)オ参照。)から、同「1ステップで並列に実行する動作群を明示」とは、本願発明の「回路モジュールを実現するアルゴリズム記述の複数機能を単位クロックの中で動作が可能である部分機能に分解」に相当する。
また、刊行物1記載の発明では、入出力端子の宣言(本願発明の「回路モジュールと外部とのインターフェイス情報」に相当。)を含む動作記述言語による記述(本願発明の「クロックレベル記述」に相当。)を用いてシミュレーションされ、シミュレーションのためにはモデルが必要なことは自明であるから、刊行物1に記載された発明も「回路モジュールと外部とのインターフェイス情報と前記部分機能により前記アルゴリズム記述からクロックレベル記述のクロックレベルアルゴリズムモデルを生成するステップ」を有するものと認められる。
してみると、両者は、
「シミュレーション装置において、
回路モジュールを表現するアルゴリズム記述の複数機能を単位クロックの中で動作が可能である部分機能に分解するステップと、
前記回路モジュールと外部とのインターフェイス情報と前記部分機能とにより前記アルゴリズム記述からクロックレベル記述のクロックレベルアルゴリズムモデルを生成するステップと具備する、シミュレーションモデルの生成方法。」
である点で一致しているが、下記の点で相違する。

(相違点1)本願発明のシミュレーション装置は機能合成部を具備し、「回路モジュールを表現するアルゴリズム記述の複数機能を単位クロックの中で動作が可能である部分機能に分解するステップ」を、資源の制約の下で、前記機能合成部が具備するのに対し、刊行物1に記載された発明では、前記ステップを人手で行う点。
(相違点2)本願発明の前記機能合成部が、前記単位クロックに相当する状態毎の前記アルゴリズム記述中の変数と前記資源のうちのレジスタの対応関係を示す変数/レジスタ/状態対応表を生成するステップを具備し、さらにクロックレベル検証部を具備し、前記クロックレベル検証部が、前記変数/レジスタ/状態対応表をも組み合わせて前記クロックレベルアルゴリズムモデルを生成するステップを具備し、前記クロックレベル記述は、前記単位クロックでの前記資源のうちのレジスタの各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述であるのに対し、刊行物1に記載された発明では、シミュレーションの後の動作合成(150頁図4(a)参照。)で、変数を最適な数のレジスタに割り当てるが、その割り当てをどのように行うかは明示されていないし、クロックレベル記述はレジスタのおのおのの動作を記述するものではない点。

4.当審の判断
そこで、上記(相違点1)について検討すると、回路モジュール設計の分野において、人手による作業を自動化することは一般的な課題であるから、刊行物2(上記2.(2)ア参照。)に記載された高位合成システムによるステート分割の技術を適用して、刊行物1に記載された発明の前記「部分機能に分解するステップ」を自動的に行うようにすることは当業者が容易になし得ることである。そしてこの自動化の際に、刊行物1には資源を制約条件とすべきことが記載されている(上記2.(1)ク参照。)から、前記ステップを「資源の制約の下で」行うようにすることは当業者が容易に設計できることである。
また、上記(相違点2)について検討すると、レジスタの各々の動作を記述しシミュレーションを行うことは従来技術であり(上記2.(1)イ参照。)、また、刊行物1記載の発明も結局変数をレジスタに割り当てるのであるから、シミュレーションの段階で変数をレジスタに割り当て変数の代わりにレジスタの動作を記述することは当業者が容易に考え得ることである。そして、刊行物2には変数をレジスタに割り当てるために変数/レジスタ/状態対応表を生成することが記載されている(上記2.(2)イ参照。)から、この技術を適用して、刊行物1に記載された発明の「クロックレベル記述」をレジスタの各々の動作を記述するものとすることは、当業者が容易になし得ることである。

5.むすび
以上のとおり、本願発明は、刊行物1及び刊行物2に記載された発明に基づいて当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない。
よって、結論のとおり審決する。
 
審理終結日 2005-01-18 
結審通知日 2005-01-25 
審決日 2005-02-07 
出願番号 特願平11-290276
審決分類 P 1 8・ 121- WZ (G06F)
最終処分 不成立  
前審関与審査官 早川 学  
特許庁審判長 小川 謙
特許庁審判官 深沢 正志
江頭 信彦
発明の名称 シミュレーションモデルの生成方法、シミュレーション方法及びその記録媒体、シミュレーションモデル生成装置、シミュレーション装置  
代理人 徳丸 達雄  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ