JPH01315874A - 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム - Google Patents
回路変換システムと回路変換方法と反転論理生成方法および論理設計システムInfo
- Publication number
- JPH01315874A JPH01315874A JP63237662A JP23766288A JPH01315874A JP H01315874 A JPH01315874 A JP H01315874A JP 63237662 A JP63237662 A JP 63237662A JP 23766288 A JP23766288 A JP 23766288A JP H01315874 A JPH01315874 A JP H01315874A
- Authority
- JP
- Japan
- Prior art keywords
- rule
- conversion
- circuit
- knowledge
- logic
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 131
- 239000000284 extract Substances 0.000 claims abstract description 6
- 238000006243 chemical reaction Methods 0.000 claims description 237
- 230000008569 process Effects 0.000 claims description 91
- 238000012217 deletion Methods 0.000 claims description 18
- 230000037430 deletion Effects 0.000 claims description 18
- 230000003936 working memory Effects 0.000 claims description 14
- 238000013461 design Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 74
- 238000010586 diagram Methods 0.000 description 22
- 230000001419 dependent effect Effects 0.000 description 14
- 210000003127 knee Anatomy 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 244000118350 Andrographis paniculata Species 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005502 phase rule Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 235000009065 Taxus cuspidata Nutrition 0.000 description 1
- 244000162450 Taxus cuspidata Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S706/00—Data processing: artificial intelligence
- Y10S706/902—Application using ai with detail of the ai system
- Y10S706/919—Designing, planning, programming, CAD, CASE
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S706/00—Data processing: artificial intelligence
- Y10S706/902—Application using ai with detail of the ai system
- Y10S706/919—Designing, planning, programming, CAD, CASE
- Y10S706/921—Layout, e.g. circuit, construction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、論理回路の自動変換に係り、特に、機能記述
または論理回路を論理的に等価で、特定のテクノロジー
向けの回路に最適変換するに好適な回路変換方法または
論理設計システムに関する。
または論理回路を論理的に等価で、特定のテクノロジー
向けの回路に最適変換するに好適な回路変換方法または
論理設計システムに関する。
従来の技術
従来の回路自動変換システムは、変換前の回路から、前
もって定義されている入カバターンに一致する部分を検
出し、その出力端子のファンアウト数などの条件に従っ
て、直接、対応する出カバターンで置き換える方式(た
とえば、情報処理学会第30回全国大会講演論文集、p
p1923〜1926 (1985)に記載がある。)
であり、また、知識ベース(つまり、ルールベース)を
用いたシステムでは、ルールの条件部にそのルールを起
動する前提条件を記述し、結論部にそのルールが起動さ
れた時の回路に対する操作(つまり、アクシロン)を記
述するというルールの記述方式を採用するものが多い。
もって定義されている入カバターンに一致する部分を検
出し、その出力端子のファンアウト数などの条件に従っ
て、直接、対応する出カバターンで置き換える方式(た
とえば、情報処理学会第30回全国大会講演論文集、p
p1923〜1926 (1985)に記載がある。)
であり、また、知識ベース(つまり、ルールベース)を
用いたシステムでは、ルールの条件部にそのルールを起
動する前提条件を記述し、結論部にそのルールが起動さ
れた時の回路に対する操作(つまり、アクシロン)を記
述するというルールの記述方式を採用するものが多い。
なお、この種の装置として関連するものには例えば特開
昭59−168545号公報が挙げられる。
昭59−168545号公報が挙げられる。
発明が解決しようとする課題
上記従来例は、回路変換ルールの簡潔化、変換ルール作
成の効率化、容易性および回路変換処理の効率化という
点について配慮されておらず、■ 変換ルールの条件部
や結論部の一部のみが異なる変換ルールを多数作成する
必要がある。
成の効率化、容易性および回路変換処理の効率化という
点について配慮されておらず、■ 変換ルールの条件部
や結論部の一部のみが異なる変換ルールを多数作成する
必要がある。
■ 設計者が有する変換ルールと異なり、ルールの結論
部を記述する際に推論メカニズムを意識して回路をどの
ように変更するかを不自然な形で記述する必要がある。
部を記述する際に推論メカニズムを意識して回路をどの
ように変更するかを不自然な形で記述する必要がある。
■ 熟練設計者が行うような総合的観点からの高度な変
換を実現するには、lルール当たりの記述量が膨大にな
り、かつルール数も膨大となるため、事実上実現が困難
である。
換を実現するには、lルール当たりの記述量が膨大にな
り、かつルール数も膨大となるため、事実上実現が困難
である。
■ 変換処理効率から見ると、条件部の似通った変換ル
ールが多いため、推論効率が非常に悪(、変換に多大な
処理時間を要す。
ールが多いため、推論効率が非常に悪(、変換に多大な
処理時間を要す。
■ 変換ルールを複数のルールに分割記述する場合も、
作業用記述部(ワーキングメモリ)への中間データ追加
・検索・削除等の無駄なアクセスが増え、推論処理の効
率が非常に悪い。
作業用記述部(ワーキングメモリ)への中間データ追加
・検索・削除等の無駄なアクセスが増え、推論処理の効
率が非常に悪い。
以上■〜■等の問題があった。
本発明の目的は、このような従来の問題点を改善し、設
計者の有する回路変換知識を簡潔な変換ルールの形で容
易に取り入れることができ、熟練設計者差みの回路変換
を容易に実現することが可能である回路変換方法と回路
変換システムおよび論理設計システムを提供することに
ある。
計者の有する回路変換知識を簡潔な変換ルールの形で容
易に取り入れることができ、熟練設計者差みの回路変換
を容易に実現することが可能である回路変換方法と回路
変換システムおよび論理設計システムを提供することに
ある。
課題を解決するための手段
上記目的は、知識やルールを用いた回路変換システムに
おいて、推論駆動部に、変換ルール適用時にその回路変
換に必要とする従属的な変換ルールを選択するための情
報を伝達するルール選択情報伝達手段とその伝達情報を
受けて所要の変換ルールを選択するルール選択手段を設
け、さらに、変換ルールの条件部あるいは結論部の全体
または部分を変換ルールを用いて置き換えるルールの置
換手段と、変換ルールを基に削除すべき素子を自動的に
摘出する削除素子摘出手段と、摘出された素子を削除す
る素子削除手段と、変換ルールの結論部に表れる素子を
自動的に追加登録する手段とを設けることによって達成
される。
おいて、推論駆動部に、変換ルール適用時にその回路変
換に必要とする従属的な変換ルールを選択するための情
報を伝達するルール選択情報伝達手段とその伝達情報を
受けて所要の変換ルールを選択するルール選択手段を設
け、さらに、変換ルールの条件部あるいは結論部の全体
または部分を変換ルールを用いて置き換えるルールの置
換手段と、変換ルールを基に削除すべき素子を自動的に
摘出する削除素子摘出手段と、摘出された素子を削除す
る素子削除手段と、変換ルールの結論部に表れる素子を
自動的に追加登録する手段とを設けることによって達成
される。
また、上記目的は、知識やルールを用いた回路変換シス
テムにおいて、論理反転知識記憶部を設け、推論駆動部
に、素子の接続信号中の論理反転を表す信号を判定する
手段を備えた素子登録手段と、前記論理反転知識記憶部
に記憶されている論理反転規則に表わされた論理の反転
関係を利用して反転信号を抽出あるいは生成する反転信
号生成手段とを設けることによって達成される。
テムにおいて、論理反転知識記憶部を設け、推論駆動部
に、素子の接続信号中の論理反転を表す信号を判定する
手段を備えた素子登録手段と、前記論理反転知識記憶部
に記憶されている論理反転規則に表わされた論理の反転
関係を利用して反転信号を抽出あるいは生成する反転信
号生成手段とを設けることによって達成される。
あるいは、上記目的は、知識やルールを用いた回路変換
方法および論理設計システムにおいて、等価論理知識記
憶手段を設け、その記憶手段によって論理的に等価な回
路関係、つまり等価論理規則を記憶し、ルールを適用す
る過程(ごおいて、前記等価論理規則を用いて、ルール
前提部の回路に論理的に等価な回路を認識する処理、ま
たは前記等価論理規則を用いて、ルール帰結部の回路に
論理的に等価な回路を生成する処理を行うことによって
達成される。
方法および論理設計システムにおいて、等価論理知識記
憶手段を設け、その記憶手段によって論理的に等価な回
路関係、つまり等価論理規則を記憶し、ルールを適用す
る過程(ごおいて、前記等価論理規則を用いて、ルール
前提部の回路に論理的に等価な回路を認識する処理、ま
たは前記等価論理規則を用いて、ルール帰結部の回路に
論理的に等価な回路を生成する処理を行うことによって
達成される。
作 用
ルール選択情報伝達手段は現在適用中の変換ルールの結
論部を評価する際に、必要な従属的な変換ルールを選択
するための情報をルール選択手段に伝達し、従属的な変
換ルールを選択して適用し、前記適用中の変換ルールに
関する処理を完了する。それによって、条件部や結論部
の一部のみが異なる変換ルールを集め、それらのルール
を、それらの共通部分からなる主ルールと個々のルール
の差異を記述した従属ルールとに階層構造化することが
可能であり(第2図)、変換ルールが簡潔に記述でき、
個々のルールの記述量も削減できる。さらに、主ルール
と従属ルールとの接続に際し、作業用記憶部(ワーキン
グメモリ)へのアクセスを伴わないため、処理時間の大
幅な増加を防止できる。
論部を評価する際に、必要な従属的な変換ルールを選択
するための情報をルール選択手段に伝達し、従属的な変
換ルールを選択して適用し、前記適用中の変換ルールに
関する処理を完了する。それによって、条件部や結論部
の一部のみが異なる変換ルールを集め、それらのルール
を、それらの共通部分からなる主ルールと個々のルール
の差異を記述した従属ルールとに階層構造化することが
可能であり(第2図)、変換ルールが簡潔に記述でき、
個々のルールの記述量も削減できる。さらに、主ルール
と従属ルールとの接続に際し、作業用記憶部(ワーキン
グメモリ)へのアクセスを伴わないため、処理時間の大
幅な増加を防止できる。
ルールの置換手段も同様に変換ルールに複数回記述され
る煩雑な部分を簡潔化して記述し、煩雑な部分に展開す
るルールを別に記述することが可能である。それによっ
て、例えば、ビット幅をもつ素子とそのビット幅を展開
するルールを用いた表現が可能となり、各ビット毎に変
換ルールを設ける必要がな(、ルールの簡潔化が可能で
ある。
る煩雑な部分を簡潔化して記述し、煩雑な部分に展開す
るルールを別に記述することが可能である。それによっ
て、例えば、ビット幅をもつ素子とそのビット幅を展開
するルールを用いた表現が可能となり、各ビット毎に変
換ルールを設ける必要がな(、ルールの簡潔化が可能で
ある。
削除素子摘出手段は、変換ルールから、そのルールを適
用7る際に削除さな↓jれはならない素子を摘出し、素
子削除手段によって、作業用記憶部(ワーキングメモリ
)内のそれらの素子を削除する。さらに、素子登録手段
は、変換ルールの結論部に記述されている素子を作業用
記憶部(ワーキングメモリ)に追加登録する。それによ
って、各変換ルールの結論部に素子の削除や追加登録等
のアクションを記述する必要がなく、個々のルールの記
述が簡潔になる。
用7る際に削除さな↓jれはならない素子を摘出し、素
子削除手段によって、作業用記憶部(ワーキングメモリ
)内のそれらの素子を削除する。さらに、素子登録手段
は、変換ルールの結論部に記述されている素子を作業用
記憶部(ワーキングメモリ)に追加登録する。それによ
って、各変換ルールの結論部に素子の削除や追加登録等
のアクションを記述する必要がなく、個々のルールの記
述が簡潔になる。
また、素子登録手段は、現在適用中の変換ルールの結論
部を評価し、作業用記憶部に必要な素子を追加登録する
際に、その素子の接続信号が論理の反転(つまり、論理
否定)を表す信号を判別し、反転信号生成手段により、
その反転信号を生成し、その反転信号を前記素子の接続
信号として前記素子を作業用記憶部に追加登録する。そ
れによって、変換ルールにおける素子に接される信号を
論理否定を用いて表現することができるため、変換ルー
ルが簡潔に記述でき、ルールの記述量も削減できる。例
えば、and素子をnor素子に変換する場合、従来、
and素子をnor素子と2つのインバータに変換し、
冗長なインバータを削除するという処理を行う必要があ
ったが、本発明によれば、変換ルールを信号X、Yの論
理否定X、Yを用いて表現することにより、同じ変換結
果が得られ、変換ルールが簡潔に記述できるとともに、
作業用記憶部への余分なアクセスが省けるため、処理時
間を短縮することが可能である。
部を評価し、作業用記憶部に必要な素子を追加登録する
際に、その素子の接続信号が論理の反転(つまり、論理
否定)を表す信号を判別し、反転信号生成手段により、
その反転信号を生成し、その反転信号を前記素子の接続
信号として前記素子を作業用記憶部に追加登録する。そ
れによって、変換ルールにおける素子に接される信号を
論理否定を用いて表現することができるため、変換ルー
ルが簡潔に記述でき、ルールの記述量も削減できる。例
えば、and素子をnor素子に変換する場合、従来、
and素子をnor素子と2つのインバータに変換し、
冗長なインバータを削除するという処理を行う必要があ
ったが、本発明によれば、変換ルールを信号X、Yの論
理否定X、Yを用いて表現することにより、同じ変換結
果が得られ、変換ルールが簡潔に記述できるとともに、
作業用記憶部への余分なアクセスが省けるため、処理時
間を短縮することが可能である。
また、変換ルールの前提部を対象回路と照合する際に、
ルールの前提部の回路と同じ回路が対象回路中にな(で
も、等値論理知識記憶部に記憶されている等値論理規則
を用いることにより、その回路と論理的に等価な回路を
対象回路の中に認識することができる。あるいは、変換
ルールの帰結部の回路を対象回路中に生成する際に、ル
ール帰結部の回路が対象回路の構成に適さなくても、前
記等価論理規則を用いることにより、ルール帰結部の回
路と論理的に等価で、かつ対象回路の構成要素として適
した回路を生成することが可能である。これによって、
論理的に(すなわち、内容的に)同等な変換ルールを複
数作成する必要がないため、変換ルール数が削減でき、
個々の変換ルールも簡潔に記述できる。(なぜならば、
複数の論理的に同等な変換ルールの中から最も簡潔なル
ールを選べばよい。) 実施例 本発明の実施例を、図面を参照しながら説明する。
ルールの前提部の回路と同じ回路が対象回路中にな(で
も、等値論理知識記憶部に記憶されている等値論理規則
を用いることにより、その回路と論理的に等価な回路を
対象回路の中に認識することができる。あるいは、変換
ルールの帰結部の回路を対象回路中に生成する際に、ル
ール帰結部の回路が対象回路の構成に適さなくても、前
記等価論理規則を用いることにより、ルール帰結部の回
路と論理的に等価で、かつ対象回路の構成要素として適
した回路を生成することが可能である。これによって、
論理的に(すなわち、内容的に)同等な変換ルールを複
数作成する必要がないため、変換ルール数が削減でき、
個々の変換ルールも簡潔に記述できる。(なぜならば、
複数の論理的に同等な変換ルールの中から最も簡潔なル
ールを選べばよい。) 実施例 本発明の実施例を、図面を参照しながら説明する。
第1実施例
以下、本発明の第1実施例を図面により説明する。第1
図は、本発明の第1実施例の基本構成を示すブロック図
である。図中、1は変換知識記憶部、2は入力部、3は
作業用記憶部、4出力部、5は推論駆動部(インタプリ
タ)、6はプログラムを記憶し、必要に応じて実行する
プログラム実行部を示す。また、推論駆動部5は、大局
的ルール選択手段21、適用ルール保持手段22、ルー
ルの置換手段23、適用条件照合手段24、素子検索手
段25、削除素子格納手段26、素子削除手段27、ル
ール適用手段28、素子登録手段29、ルール選択情報
伝達手段30および局面的ルール選択手段31から構成
されている。
図は、本発明の第1実施例の基本構成を示すブロック図
である。図中、1は変換知識記憶部、2は入力部、3は
作業用記憶部、4出力部、5は推論駆動部(インタプリ
タ)、6はプログラムを記憶し、必要に応じて実行する
プログラム実行部を示す。また、推論駆動部5は、大局
的ルール選択手段21、適用ルール保持手段22、ルー
ルの置換手段23、適用条件照合手段24、素子検索手
段25、削除素子格納手段26、素子削除手段27、ル
ール適用手段28、素子登録手段29、ルール選択情報
伝達手段30および局面的ルール選択手段31から構成
されている。
次に上記各部について説明する。
変換知識記憶部1には、対局的ルール10、局面的ルー
ル1、12等の複数の種類の変換ルールとを記憶する。
ル1、12等の複数の種類の変換ルールとを記憶する。
例えば、大局的ルール10は主ルールであり、第3図の
(a)に示すような変換ルールである。局面的ルール1
1は従属ルールであり、第3図の(b)に示すような変
換ルールである。なお、従属ルールは別の従属ルールの
主ルールになることもある。また、局面的ルール12は
展開ルールであり、展開ルールには第3図の(C)に示
すような複数ビット巾をもつゲートを各ビット毎に展開
するルールなどがある。
(a)に示すような変換ルールである。局面的ルール1
1は従属ルールであり、第3図の(b)に示すような変
換ルールである。なお、従属ルールは別の従属ルールの
主ルールになることもある。また、局面的ルール12は
展開ルールであり、展開ルールには第3図の(C)に示
すような複数ビット巾をもつゲートを各ビット毎に展開
するルールなどがある。
第3図は、テクノロジに依頼しない抽象的な論理回路を
論理的に等価で、かつ、CMO8型O8ンジスタによる
スタンダード・セルから成る回路に変換する1f−th
en型ルールの一例である。第3図(a)の主ルールは
、「ファンアウトが1のNORゲートの出力に別のNO
Rゲートが接続しているならば、AND−NOR複合ゲ
ート化のルールを適用する」という大局的なルールを表
している。第3図(b)の従属ルールは、A N、 D
−N OR複合ゲート化のルールであり、「2人力N
ORのそれぞれの人力に2人力NOR及び3人力NOR
が接続するならば、スタンダード・セルantd00と
それぞれの各入力に接続するインバータとに変換する」
という局面的なルールを表している。ただし、各入力に
接続するインバータは、2ビットおよび3ビツトのビッ
ト11をもつ論理反転の簡略化されたマクロで表現され
ている。第3図(c)の展開ルールは、「複数ビットの
ビット巾をもつ論理反転マクロを各ビット毎のインバー
タに変換する」という簡略な表現を実表現に展開するル
ールである。なお、本実施例では簡単のため、2種の局
面的ルール1、12Lか示さないが、多種類の局面的ル
ールに分類し、使用することも可能である。
論理的に等価で、かつ、CMO8型O8ンジスタによる
スタンダード・セルから成る回路に変換する1f−th
en型ルールの一例である。第3図(a)の主ルールは
、「ファンアウトが1のNORゲートの出力に別のNO
Rゲートが接続しているならば、AND−NOR複合ゲ
ート化のルールを適用する」という大局的なルールを表
している。第3図(b)の従属ルールは、A N、 D
−N OR複合ゲート化のルールであり、「2人力N
ORのそれぞれの人力に2人力NOR及び3人力NOR
が接続するならば、スタンダード・セルantd00と
それぞれの各入力に接続するインバータとに変換する」
という局面的なルールを表している。ただし、各入力に
接続するインバータは、2ビットおよび3ビツトのビッ
ト11をもつ論理反転の簡略化されたマクロで表現され
ている。第3図(c)の展開ルールは、「複数ビットの
ビット巾をもつ論理反転マクロを各ビット毎のインバー
タに変換する」という簡略な表現を実表現に展開するル
ールである。なお、本実施例では簡単のため、2種の局
面的ルール1、12Lか示さないが、多種類の局面的ル
ールに分類し、使用することも可能である。
入力部2は、変換前の回路を表すデータを作業用記憶部
3に入力する。
3に入力する。
作業用記憶部3は、変換前の回路、変換途中状態の回路
、変換後の回路を表すデータ等を記憶する。作業用記憶
部3に記憶される回路を表すデータの一例を第4図に示
す。第4図は、素子を中心に素子間の入出力関係によっ
て回路を表すデータである。第4図(a)は、第4図(
b)の回路を表すデータの一例である。データは、基本
的に、個々の素子を識別するための識別名称41と、複
数の属性コード42とそれらの属性値43とから成る。
、変換後の回路を表すデータ等を記憶する。作業用記憶
部3に記憶される回路を表すデータの一例を第4図に示
す。第4図は、素子を中心に素子間の入出力関係によっ
て回路を表すデータである。第4図(a)は、第4図(
b)の回路を表すデータの一例である。データは、基本
的に、個々の素子を識別するための識別名称41と、複
数の属性コード42とそれらの属性値43とから成る。
第4図(a)の例では、属性コード42と属性値43の
対は“;:”で対応づけ、各対は“:”で区切られてい
る。また、識別名称41は、“二一二”によって他のデ
ータと区別されている。属性コード42としては、素子
の種類を表す。“akind−of”、入力信号を表す
“1nput″、出力信号名を表す“output”お
よびファンアウトを表す“fanout”等がある。本
例は作業用記憶部3のデータの一例であり、作業用記憶
部3内のデータとしては、本例と同等な表現、あるいは
本例のような素子に着目したものでなく、信号(すなわ
ちネット)に着目して回路を表現したデータでも差し支
えない。
対は“;:”で対応づけ、各対は“:”で区切られてい
る。また、識別名称41は、“二一二”によって他のデ
ータと区別されている。属性コード42としては、素子
の種類を表す。“akind−of”、入力信号を表す
“1nput″、出力信号名を表す“output”お
よびファンアウトを表す“fanout”等がある。本
例は作業用記憶部3のデータの一例であり、作業用記憶
部3内のデータとしては、本例と同等な表現、あるいは
本例のような素子に着目したものでなく、信号(すなわ
ちネット)に着目して回路を表現したデータでも差し支
えない。
出力部4は、作業用記憶部3から変換後の回路を表すデ
ータを取り出す。
ータを取り出す。
プログラム実行部6は、プログラミング信号Prolo
g、Li5p、 C等でコーディングされた各種プログ
ラムの実行体(あるいはロード・モジュール)を記憶し
ておき、それらの各種プログラムを推論駆動部5(特に
適用条件照合手段24およびルール適用手段28)から
の指令によって適宜実行する。各種プログラムとしては
、条件部における条件の判定あるいは各種演算、結論部
における手続き的な処理等がある。
g、Li5p、 C等でコーディングされた各種プログ
ラムの実行体(あるいはロード・モジュール)を記憶し
ておき、それらの各種プログラムを推論駆動部5(特に
適用条件照合手段24およびルール適用手段28)から
の指令によって適宜実行する。各種プログラムとしては
、条件部における条件の判定あるいは各種演算、結論部
における手続き的な処理等がある。
次に推論駆動部5における各手段の動作機能を処理手順
と共に説明する。
と共に説明する。
第5図は、推論駆動部5における回路変換処理概要の一
例を示す流れ図である。
例を示す流れ図である。
処理ステップ51は、変換ルール競合解消を考慮して、
変換ルールを優先度の高い順に順次選択する部分であり
、第1図の大局的ルール選択手段21あるいは局面的ル
ール選択手段31によって処理される。なお、変換ルー
ルの優先度は、各ルールに前もって指定しても、あるい
は、何らか評価関数(指標)等で決定してもよい。
変換ルールを優先度の高い順に順次選択する部分であり
、第1図の大局的ルール選択手段21あるいは局面的ル
ール選択手段31によって処理される。なお、変換ルー
ルの優先度は、各ルールに前もって指定しても、あるい
は、何らか評価関数(指標)等で決定してもよい。
処理ステップ52は、第1図に示すルールの置換手段2
3によって、前ステップ51で選択された変換ルールの
条件部中で、局面的ルール12の条件部にマツチする部
分をその結論部で置き換える処理(ルール条件部の展開
処理)を行う。この展開処理には、ビット巾をもつマク
ロの1ビツト毎の展開や簡略化された表現の実現への展
開等がある。
3によって、前ステップ51で選択された変換ルールの
条件部中で、局面的ルール12の条件部にマツチする部
分をその結論部で置き換える処理(ルール条件部の展開
処理)を行う。この展開処理には、ビット巾をもつマク
ロの1ビツト毎の展開や簡略化された表現の実現への展
開等がある。
処理ステップ53は、適用条件照合手段24により処理
ステップ52の出力である変換ルールの条件部の各項を
第1図の作業用記憶部3の内容と突合せ照合を行う(詳
細は後述する)。
ステップ52の出力である変換ルールの条件部の各項を
第1図の作業用記憶部3の内容と突合せ照合を行う(詳
細は後述する)。
ステップ54は、処理ステップ53の照合処理により、
ルールの条件部が成立するかどうかを判定する。本ステ
ップの判定が成立すれば、処理ステップ55の処理を実
行し、不成立であればステップ58を実行する。
ルールの条件部が成立するかどうかを判定する。本ステ
ップの判定が成立すれば、処理ステップ55の処理を実
行し、不成立であればステップ58を実行する。
処理ステップ55は、第1図の素子削除手段27により
、削除素子格納手段26に格納されている素子を順次作
業用記憶部3中のデータから削除する。
、削除素子格納手段26に格納されている素子を順次作
業用記憶部3中のデータから削除する。
処理ステップ56は、第1図に示すルール適用手段23
により、適用する変換ルールの結論部中で、局面的ルー
ル12の条件部しにマツチする部分をその局面的ルール
の結論部で置き換える処理(ルール結論部の展開処理)
を行う。
により、適用する変換ルールの結論部中で、局面的ルー
ル12の条件部しにマツチする部分をその局面的ルール
の結論部で置き換える処理(ルール結論部の展開処理)
を行う。
処理ステップ57は、第1図のルール適用手段28によ
り、作業用記憶部3のデータの更新、素子の追加、ある
いは従属ルールの起動等を行う。
り、作業用記憶部3のデータの更新、素子の追加、ある
いは従属ルールの起動等を行う。
(処理の詳細は後述する。)
本処理ステップ57終了後、再び処理ステップ53に戻
り、同じ変換ルールに対して、作業記憶部3のデータと
の突合せを行う。
り、同じ変換ルールに対して、作業記憶部3のデータと
の突合せを行う。
ステップ58は、現在選択されている変換ルールの次に
適用すべき変換ルールが、変換知識記憶部1に存在する
かどうか判定する。もし存在すれば、処理ステップ51
に再び戻り、次の変換ルールを選択し、存在しなければ
変換処理を終了する。
適用すべき変換ルールが、変換知識記憶部1に存在する
かどうか判定する。もし存在すれば、処理ステップ51
に再び戻り、次の変換ルールを選択し、存在しなければ
変換処理を終了する。
第6図は、前記ステップ53のルール条件部の照合処理
の一例を示す流れ図である。
の一例を示す流れ図である。
ステップ60は、変換ルールの条件部に於ける処理すべ
き項を第1項に指定する。つまり、処理項の項番りを1
番とする。
き項を第1項に指定する。つまり、処理項の項番りを1
番とする。
ステップ61は、処理中の項、つまり第り番目の項が素
子を表すものかどうかを判定する。第り番目の項が素子
を表すものならば、ステップ62の処理を行い、第り番
目の項がそれ以外の処理を表すものであれば、ステップ
66の処理を行う。
子を表すものかどうかを判定する。第り番目の項が素子
を表すものならば、ステップ62の処理を行い、第り番
目の項がそれ以外の処理を表すものであれば、ステップ
66の処理を行う。
ステップ62は、第1図における素子検索手段25を用
いて、この第り番目の項に該当する素子が作業用記憶部
3に存在するかどうかを突き合わせる。
いて、この第り番目の項に該当する素子が作業用記憶部
3に存在するかどうかを突き合わせる。
ステップ63は、前記ステップ62に於て、該当する素
子が存在したかどうかを判定する。存在(つまり成立)
すればステップ64の処理を行い、存在しなければ条件
不成立で処理を終了する。
子が存在したかどうかを判定する。存在(つまり成立)
すればステップ64の処理を行い、存在しなければ条件
不成立で処理を終了する。
ステップ64は、前記ステップ62に於て存在を確認さ
れた素子を、当該変換ルールを適応する際に(つまり、
ルールの条件成立後)、削除すべきかどうか判定する。
れた素子を、当該変換ルールを適応する際に(つまり、
ルールの条件成立後)、削除すべきかどうか判定する。
その素子が削除すべき素子であれば、ステップ65の処
理を行い、削除すべきでなければ、ステップ68の処理
を行う。
理を行い、削除すべきでなければ、ステップ68の処理
を行う。
ステップ65は、前記ステップ64で判定された素子を
第1図に示す削除素子格納手段26によって格納してお
(。但し、削除素子格納手段26には初期状態では何も
格納されていない。
第1図に示す削除素子格納手段26によって格納してお
(。但し、削除素子格納手段26には初期状態では何も
格納されていない。
ステップ66は、第り番目の項が表す条件判定等の各種
処理を、プログラム実行部6へ指令して実行させる。
処理を、プログラム実行部6へ指令して実行させる。
ステップ67は、前記ステップ66で実行される処理が
成立したかどうかの判定であり、成立ずればステップ6
8の処理を行い、不成立の場合には条件不成立で終了す
る。なお、前記ステップ66で実行される処理が判定を
要しない場合には常に成立とみなす。
成立したかどうかの判定であり、成立ずればステップ6
8の処理を行い、不成立の場合には条件不成立で終了す
る。なお、前記ステップ66で実行される処理が判定を
要しない場合には常に成立とみなす。
ステップ68は、第り番目の項が最終項であるかどうか
の判定であり、最終項であれば条件成立で処理を終了し
、最終項でなければステップ69においてLに1を加算
し、ルールの条件部の次の項に対してステップ61以降
の処理を繰り返し実行する。
の判定であり、最終項であれば条件成立で処理を終了し
、最終項でなければステップ69においてLに1を加算
し、ルールの条件部の次の項に対してステップ61以降
の処理を繰り返し実行する。
第7図は、前記ルール結論部の適用処理57の一例を示
す流れ図である。
す流れ図である。
ステップ70は、変換ルールの結論部における処理をす
べき項を第1項に指定する。つまり、処理項の順番Mを
1番目とする。
べき項を第1項に指定する。つまり、処理項の順番Mを
1番目とする。
ステップ71は、処理中の項、つまり第M項が素子を表
すものか、従属ルールの起動を表すものか、それ以外の
各種処理を表すものかの判定であり、素子ならばステッ
プ72、従属ルールの起動ならステップ73、それ以外
の各種処理ならステップ74の処理をそれぞれ行う。
すものか、従属ルールの起動を表すものか、それ以外の
各種処理を表すものかの判定であり、素子ならばステッ
プ72、従属ルールの起動ならステップ73、それ以外
の各種処理ならステップ74の処理をそれぞれ行う。
ステップ72は、前記ステップ71で判定した素子を第
1図に示す素子登録手段29により、作業用記憶部3内
のデータに追加登録する。
1図に示す素子登録手段29により、作業用記憶部3内
のデータに追加登録する。
ステップ73は、ルール選択情報伝達手段30により、
前記ステップ71で判定した従属ルールに関する情報を
局面的ルール選択手段31に伝達し、再帰的に第5図の
流れ図に示す処理を実行し、従属ルールを適用する。
前記ステップ71で判定した従属ルールに関する情報を
局面的ルール選択手段31に伝達し、再帰的に第5図の
流れ図に示す処理を実行し、従属ルールを適用する。
なお、第5図の流れ図に示す処理を再帰的に実行する場
合には、特にルール選択処理51は局面的ルール選択手
段によって処理される。
合には、特にルール選択処理51は局面的ルール選択手
段によって処理される。
ステップ74は、前記ステップ71で判定した各種処理
を、プログラム実行部6へ指令して実行させる。
を、プログラム実行部6へ指令して実行させる。
ステップ75は、第M項がルール結論部の最終項である
かどうかの判定であり、最終項ならば処理を終了し、最
終項でなければステップ76においてMに1を加え、ル
ールの結論部の次の項に対してステップ71以降の処理
を繰り返し実行する。
かどうかの判定であり、最終項ならば処理を終了し、最
終項でなければステップ76においてMに1を加え、ル
ールの結論部の次の項に対してステップ71以降の処理
を繰り返し実行する。
以上が本−実施例における回路変換処理の説明であるが
、第1図のブロック図において、ルール条件部の展開処
理52、及びルール結論部の展開処理56を、それぞれ
ルール条件部の照合処理53、及びルール結論部の適用
処理57の処理中で適宜行うことも可能である。
、第1図のブロック図において、ルール条件部の展開処
理52、及びルール結論部の展開処理56を、それぞれ
ルール条件部の照合処理53、及びルール結論部の適用
処理57の処理中で適宜行うことも可能である。
また、第5図の流れ図に示す処理は、高級プログラミン
グ言語Prologによって容易に実現でホる。なお、
Prologに関する説明は、例えば、W、F。
グ言語Prologによって容易に実現でホる。なお、
Prologに関する説明は、例えば、W、F。
Clocksim、C,S、Melllishニブログ
ラミング インプロローグ(Programing i
n Prolog)、Springer−Verlag
(1981)等を参照するとよい。以下、Prolog
での実現について説明する。
ラミング インプロローグ(Programing i
n Prolog)、Springer−Verlag
(1981)等を参照するとよい。以下、Prolog
での実現について説明する。
第8図に第3図に示した変換ルールの記述例を示す。
つまり、第8図(a)は第3図(a)の主ルールの記述
例であり、第8図(b)は第3図(b)の従属ルールの
記述例である。本例では大局的ルール10は“==〉”
で、局面的ルール11は“@=〉”で表す。また、第8
図(a)中のr Length(L 、 M)」はリス
トLの長さがMであることを意味するPr010gの組
み込み述語であり、rM=<NJもMがNより小さいこ
とを判定するPrologの組み込み述語である。ルー
ルの右辺の“@“は、従属ルールの適用を示している。
例であり、第8図(b)は第3図(b)の従属ルールの
記述例である。本例では大局的ルール10は“==〉”
で、局面的ルール11は“@=〉”で表す。また、第8
図(a)中のr Length(L 、 M)」はリス
トLの長さがMであることを意味するPr010gの組
み込み述語であり、rM=<NJもMがNより小さいこ
とを判定するPrologの組み込み述語である。ルー
ルの右辺の“@“は、従属ルールの適用を示している。
さらに、第8図(b)のルールの右辺の“#”は、“#
”の付いた項に展開ルールを適用し、ルールの置換を行
わなければならないことを示している。
”の付いた項に展開ルールを適用し、ルールの置換を行
わなければならないことを示している。
第8図に示すようなルールを変換知識記憶部lに記憶し
ておくと、第5図に示す流れ図のステップ53.54,
55.57の一連の処理は、Prologで次のように
簡単に実現できる。
ておくと、第5図に示す流れ図のステップ53.54,
55.57の一連の処理は、Prologで次のように
簡単に実現できる。
1nference(LIIS、RH5)ニーunif
yjeft(LHS、L、[]) 。
yjeft(LHS、L、[]) 。
remove gates(L) e 0・…−・”
…・・・−…(1)call(RH5)。
…・・・−…(1)call(RH5)。
すなわち、’ 1nference(Ll5.RlfS
) Jの第1引数が選択されたルールの条件部(つまり
左辺)であり、第2引数RH3がルールの結論部(つま
り右辺)である。さらにr unityjeft(LI
IS、L、El) Jはステップ53を、 rre+e
ove−gates(L)」はステップ55を、「ca
ll(RH5)」はステップ57をそれぞれ実現してい
る。なお、ステップ54の判定は、’unity−1e
ft J述語が成功(true)するか失敗(fail
)するかで判定する。また、’ remove−gat
es(L)」述語はステップ55の処理を行う素子削除
手段27を実現し、その引数りは削除すべき素子のリス
トであり、削除素子格納手段26を実現している。
) Jの第1引数が選択されたルールの条件部(つまり
左辺)であり、第2引数RH3がルールの結論部(つま
り右辺)である。さらにr unityjeft(LI
IS、L、El) Jはステップ53を、 rre+e
ove−gates(L)」はステップ55を、「ca
ll(RH5)」はステップ57をそれぞれ実現してい
る。なお、ステップ54の判定は、’unity−1e
ft J述語が成功(true)するか失敗(fail
)するかで判定する。また、’ remove−gat
es(L)」述語はステップ55の処理を行う素子削除
手段27を実現し、その引数りは削除すべき素子のリス
トであり、削除素子格納手段26を実現している。
次に、第6図に示すステップ53の処理は’unify
jeft(P、Ll、C2)」述語で次のようにPro
logで実現できる。
jeft(P、Ll、C2)」述語で次のようにPro
logで実現できる。
unifyjeft((PI 、P2) 、Ll 、C
3)ニー!。
3)ニー!。
unrfy−1ef t(P LL1i2) +uni
fyjeft(P2.C2,C3)。
fyjeft(P2.C2,C3)。
unifyjeft((Gate natme:::5
Iots>rE(Gate−natme: : :
5lots)ILL、いニー!。
Iots>rE(Gate−natme: : :
5lots)ILL、いニー!。
unify−gate(Gate、5lots)。
unifyjeft(?P、L、L)ニー!。
unify−1eft(P、−、[])。
unify−1eft((not P)、L、L)ニー
!+not(unify−1eft(P、−、[]))
。
!+not(unify−1eft(P、−、[]))
。
unify−1eft(P、L、L)ニー上記のPro
lOg−の節において、第1番目の節は、ルールの条件
部を1項づつ再帰的に処理することを意味し、第2番目
の節は、第1引数にあるルール条件部の項が素子を表わ
すものならば、ワーキングメモリ(作業用記憶部3)に
該当する素子があるかどうか検索するとともに、該当す
る素子が存在すれば、第3引数のリストにその素子を格
納する(ステップ65)。なお、’ unify−ga
te(Gate、5Iots) Jはステップ62の処
理を行う素子検出手段25を実現する述語である。また
、第3番目の節は、削除しない素子を“?”で判定(ス
テップ64)−しており、第2引数のリストには素子を
格納していない。第4番目の節は、ルール条件部の項に
ある否定表現を処理する部分であり、第6図では簡単の
ために説明していない。第5番目の節はステップ66の
処理を行う。その際、各種処理プログラムもProlo
gで実現されているため、ブログラム実行部6はPro
logで処理系(つまりPrologの推論機構)その
ものとなる。また、第3番目の節のカットオペレータ“
!”のため、検索した素子がワーキングメモリに存在し
なかったくつまり、述語unify−gateが失敗(
fail)した)場合、’un汀yjeft J述語全
体が失敗(fail )する。
lOg−の節において、第1番目の節は、ルールの条件
部を1項づつ再帰的に処理することを意味し、第2番目
の節は、第1引数にあるルール条件部の項が素子を表わ
すものならば、ワーキングメモリ(作業用記憶部3)に
該当する素子があるかどうか検索するとともに、該当す
る素子が存在すれば、第3引数のリストにその素子を格
納する(ステップ65)。なお、’ unify−ga
te(Gate、5Iots) Jはステップ62の処
理を行う素子検出手段25を実現する述語である。また
、第3番目の節は、削除しない素子を“?”で判定(ス
テップ64)−しており、第2引数のリストには素子を
格納していない。第4番目の節は、ルール条件部の項に
ある否定表現を処理する部分であり、第6図では簡単の
ために説明していない。第5番目の節はステップ66の
処理を行う。その際、各種処理プログラムもProlo
gで実現されているため、ブログラム実行部6はPro
logで処理系(つまりPrologの推論機構)その
ものとなる。また、第3番目の節のカットオペレータ“
!”のため、検索した素子がワーキングメモリに存在し
なかったくつまり、述語unify−gateが失敗(
fail)した)場合、’un汀yjeft J述語全
体が失敗(fail )する。
第7図に示すステップ57の処理は、rcall(RI
s)J述語によってPrologの処理系によって推論
されている。また、ステップ71の判定およびステップ
72.73は次のように簡単に実現できる。
s)J述語によってPrologの処理系によって推論
されている。また、ステップ71の判定およびステップ
72.73は次のように簡単に実現できる。
(Gate name:::5lots)ニーadd−
gate(Gate−nas+e、5lots、) 、
!。
gate(Gate−nas+e、5lots、) 、
!。
@Pニー!、5ubrule−inference(@
=>、P、)+!。
=>、P、)+!。
これらの節のうち、第1番目の節は、ルールの結論部の
項が素子を表わすものである場合、ステップ72の処理
を行う、 ”add−gate(Gate−natae
。
項が素子を表わすものである場合、ステップ72の処理
を行う、 ”add−gate(Gate−natae
。
5lots)」述語は素子登録手段29を実現する。第
2番目の節は、ルールの結論部の項が従属ルールの適用
を表わすものである場合、ステップ73の処理を行うo
’5ubrule−7nference(@=>、P
)」述語はルール選択情報伝達手段30の実現を示す一
例である。この場合、従属ルールの適用処理は次のよう
に従属ルールを選択し、その従属ルールに対して、’1
nference(Q、RHS)」述語を再帰的に実行
することにより、容易に実現できる。
2番目の節は、ルールの結論部の項が従属ルールの適用
を表わすものである場合、ステップ73の処理を行うo
’5ubrule−7nference(@=>、P
)」述語はルール選択情報伝達手段30の実現を示す一
例である。この場合、従属ルールの適用処理は次のよう
に従属ルールを選択し、その従属ルールに対して、’1
nference(Q、RHS)」述語を再帰的に実行
することにより、容易に実現できる。
5ubrule−inference(Op、P)ニー
5elect、rule(Op、(P 、Q) #RH
5) 1inference(Q、Ru5)、!。
5elect、rule(Op、(P 、Q) #RH
5) 1inference(Q、Ru5)、!。
ここで、’5elect−rule(Op、(P+Q)
、Ru5)」述語は、局面的ルール選択手段31を実
現する。例えば、第8図に示すルール記述に対して、述
語’se 1ect−rule」は次のように簡単に記
述することかで′きる。
、Ru5)」述語は、局面的ルール選択手段31を実
現する。例えば、第8図に示すルール記述に対して、述
語’se 1ect−rule」は次のように簡単に記
述することかで′きる。
5elect−rule(OpルH3、RIIS) :
−Rule=、 、[Op、LIIS、RIISI
。
−Rule=、 、[Op、LIIS、RIISI
。
Ru1e。
また、以上の!’rologによる一実施例を実現した
例においては、適用ルール保持手段22は、前記’1n
ference(L12.RIIS)」述語を記述した
節(1)に現われる’unifyje4t(L12.L
、[])」述語の第1引数LHS、および’call(
RtlS)」述語の引数RHSで、それぞれルールの条
件部、および結論部を保持することによって実現されて
いる。さらに、大局的ルール選択手段21はProlo
gのユニフィケション機能を用いて、局面的ルール選択
手段31と同様しにして簡単に実現できる。
例においては、適用ルール保持手段22は、前記’1n
ference(L12.RIIS)」述語を記述した
節(1)に現われる’unifyje4t(L12.L
、[])」述語の第1引数LHS、および’call(
RtlS)」述語の引数RHSで、それぞれルールの条
件部、および結論部を保持することによって実現されて
いる。さらに、大局的ルール選択手段21はProlo
gのユニフィケション機能を用いて、局面的ルール選択
手段31と同様しにして簡単に実現できる。
なお、第5図の流れ図に示すステップ56の処理は、第
9図に示すように展開ルールを記述すると、次の節によ
り、容易に実現できる。
9図に示すように展開ルールを記述すると、次の節によ
り、容易に実現できる。
ltPニー4<(PO−>Q)。
call(Q)。
ステップ52の処理も同様に容易に実現できる。
ここで、第9図は、第3図(c)に示す展開ルールの一
記述例を示す。
記述例を示す。
なお、上記Prologで実現した例においては、“@
”、“#”、“?”、“、“not”、“==〉”、”
@=>”、“#=〉”、“二二二”および“二二”はオ
ペレータ宣言されているものとする。
”、“#”、“?”、“、“not”、“==〉”、”
@=>”、“#=〉”、“二二二”および“二二”はオ
ペレータ宣言されているものとする。
以」二の例では、一実施例を高級プログラミング言語!
’rologを用いて実現したが、高級プログラミング
言語Li5p、C等を用いても実現することも可能であ
る。
’rologを用いて実現したが、高級プログラミング
言語Li5p、C等を用いても実現することも可能であ
る。
この実施例によれば、第2図に示すように、条件部や結
論部の一部のみが異なる変換ルールを集め、それらのル
ールを、それらの共通部分からなる主ルールと個々のル
ールの差異を記述した従属ルールとに階層構造化するこ
とが可能であり、(1)変換ルー・ルを設計者が有する
イメージにほぼ近い形で記述できる。
論部の一部のみが異なる変換ルールを集め、それらのル
ールを、それらの共通部分からなる主ルールと個々のル
ールの差異を記述した従属ルールとに階層構造化するこ
とが可能であり、(1)変換ルー・ルを設計者が有する
イメージにほぼ近い形で記述できる。
(2)ルールの記述が簡潔な形式である。
(3)ルールの段階的構造化、及びビット幅を持つ素子
などの簡略記述が可能であるので、1ルール当りの記述
量を少な(できる。
などの簡略記述が可能であるので、1ルール当りの記述
量を少な(できる。
■ 変換ルールの分類が可能なため、回路変換に必要な
設計知識を知識ベースに整理、保存できる。
設計知識を知識ベースに整理、保存できる。
(5)ルールの構造化により、推論効率が大幅に向上す
るので、構造化を行わない場合に比較して約4〜7倍程
度の処理の高速化が図れる。
るので、構造化を行わない場合に比較して約4〜7倍程
度の処理の高速化が図れる。
以上(1)〜(5)の効果がある。
第2実施例
以下本発明の第2実施例を図面により説明する。第10
図は、本発明の第2実施例の基本構成を示すブロック図
である。図中、1は変換知識記憶部、2は入力部、3は
作業用記憶部、4は出力部、5は推論駆動部(インタプ
リタ)、6はプログラムを記憶し、必要に応じて実行す
るプログラム実行部、7は論理反転に関する知識を記憶
する論理反転知識記憶部を示す。
図は、本発明の第2実施例の基本構成を示すブロック図
である。図中、1は変換知識記憶部、2は入力部、3は
作業用記憶部、4は出力部、5は推論駆動部(インタプ
リタ)、6はプログラムを記憶し、必要に応じて実行す
るプログラム実行部、7は論理反転に関する知識を記憶
する論理反転知識記憶部を示す。
また、論理駆動部5は、ルール選択手段14゜適用ルー
ル保持手段22.適用条件照合手段24、素子検索手段
25.削除素子格納手段26゜素子削除手段27.ルー
ル適用手段28.素子登録手段29.および反転信号生
成手段32から構成されている。
ル保持手段22.適用条件照合手段24、素子検索手段
25.削除素子格納手段26゜素子削除手段27.ルー
ル適用手段28.素子登録手段29.および反転信号生
成手段32から構成されている。
なお、本実施例では、特に単純なルールベースシステム
の例を示すが、一般のルールベースシステムでも容易に
類推できる。さらに、本発明は、プログラム実行部の有
無に拘りない。また、変換知識記憶部と論理反転知識記
憶部とを統合しミ知識記憶部(知識ベース)としてもよ
い。
の例を示すが、一般のルールベースシステムでも容易に
類推できる。さらに、本発明は、プログラム実行部の有
無に拘りない。また、変換知識記憶部と論理反転知識記
憶部とを統合しミ知識記憶部(知識ベース)としてもよ
い。
次に上記各部について説明する。
変換知識記憶部には、例えば、第20図に示すような変
換ルール13を記憶する。
換ルール13を記憶する。
第20図は、テクノロジに依存しない抽象的な論理回路
を論理的に等価で、かつ、CMO3型O3ンジスタによ
るスタンダード・セルから成る回路に変換する1f−t
hen型ルールの一例である。つまり、第20図のルー
ルは「2人力NOR素子の入力に共にファンアウトが1
の2人力AND素子を3人力AND素子とが接続してい
るならば、AND−NOR複合ゲートantd00に変
換する」という変換ルールを表している。
を論理的に等価で、かつ、CMO3型O3ンジスタによ
るスタンダード・セルから成る回路に変換する1f−t
hen型ルールの一例である。つまり、第20図のルー
ルは「2人力NOR素子の入力に共にファンアウトが1
の2人力AND素子を3人力AND素子とが接続してい
るならば、AND−NOR複合ゲートantd00に変
換する」という変換ルールを表している。
入力部29作業用記憶部3.出力部4.推論駆動部5.
プログラム実行部6は、前記第1実施例の各々に対応し
ている。
プログラム実行部6は、前記第1実施例の各々に対応し
ている。
論理反転知識記憶部7には、論理の反転関係を示す論理
反転規則20を記憶する。例えば、論理反転規則20は
、同一人力の回路で出力が論理反転になる規則、逆に出
力が同一の回路で入力の1つが論理反転関係になる規則
、あるいはフリップ・フロップのように2つの出力が互
いに論理反転関係にある規則、等である。第11A図は
、論理反転規則で、特に同一人力の2つの回路において
出力が論理反転になる規則の一例である。第2図の例で
は、“−〜”で対応づけられた同一人力のAND素子と
NANDAND素子いはOR素子とNOR素子等の出力
が互いに論理反転関係にあることを示している。また、
論理反転規則に、第4B図に示すようなNOR素子を、
その人力X、Zの論理反転X、Tを入力するNANDA
ND素子することによりYの論理反転Yを生成する規則
、あるいは第4C図に示すようなAND素子の入力Yに
対し、もう一方に入力Xの論理反転Xを入力とすちるN
OR素子によってYの論理反転Yを生成する規則、等も
使用することも可能である。
反転規則20を記憶する。例えば、論理反転規則20は
、同一人力の回路で出力が論理反転になる規則、逆に出
力が同一の回路で入力の1つが論理反転関係になる規則
、あるいはフリップ・フロップのように2つの出力が互
いに論理反転関係にある規則、等である。第11A図は
、論理反転規則で、特に同一人力の2つの回路において
出力が論理反転になる規則の一例である。第2図の例で
は、“−〜”で対応づけられた同一人力のAND素子と
NANDAND素子いはOR素子とNOR素子等の出力
が互いに論理反転関係にあることを示している。また、
論理反転規則に、第4B図に示すようなNOR素子を、
その人力X、Zの論理反転X、Tを入力するNANDA
ND素子することによりYの論理反転Yを生成する規則
、あるいは第4C図に示すようなAND素子の入力Yに
対し、もう一方に入力Xの論理反転Xを入力とすちるN
OR素子によってYの論理反転Yを生成する規則、等も
使用することも可能である。
次に推論駆動部5における各手段の動作機能を処理手順
と共に説明する。
と共に説明する。
第12図は、推論駆動部5における回路変換処理概要の
一例を示す流れ図である。
一例を示す流れ図である。
処理ステップ51は、変換ルール競合解消を考慮して、
変換ルールを優先度の高い順に順次選択する部分であり
、第10図のルール選択手段14によって処理される。
変換ルールを優先度の高い順に順次選択する部分であり
、第10図のルール選択手段14によって処理される。
なお、変換ルールの優先度は、各ルールに前もって指定
しても、あるいは、何らか評価関数(指標)等で決定し
てもよい。
しても、あるいは、何らか評価関数(指標)等で決定し
てもよい。
処理ステップ53は、適用条件照合手段24により処理
ステップ52の出力である変換ルールの条件部の各項を
第10図の作業用記憶部3の内容と突合せ照合を行う(
処理の詳細は前記第1実施例中、第6図により説明して
いる)。
ステップ52の出力である変換ルールの条件部の各項を
第10図の作業用記憶部3の内容と突合せ照合を行う(
処理の詳細は前記第1実施例中、第6図により説明して
いる)。
ステップ54は、処理ステップ53の照合処理により、
ルールの条件部が成立するかどうかを判定する。本ステ
ップの判定が成立すれば、処理ステップ55の処理を実
行し、不成立であればステップ58を実行する。
ルールの条件部が成立するかどうかを判定する。本ステ
ップの判定が成立すれば、処理ステップ55の処理を実
行し、不成立であればステップ58を実行する。
処理ステップ55は、第10図の素子削除手段27によ
り、削除素子格納手段26に格納されている素子を順次
作業用記憶部3中のデータから削除する。
り、削除素子格納手段26に格納されている素子を順次
作業用記憶部3中のデータから削除する。
処理ステップ57は、第10図のルール適用手段28に
より、作業用記憶部3のデータの更新、素子の追加等を
行う(処理の詳細は前記第1実施例中、第7図により説
明している)。
より、作業用記憶部3のデータの更新、素子の追加等を
行う(処理の詳細は前記第1実施例中、第7図により説
明している)。
本処理ステップ57終了後、再び処理ステップ53に戻
り、同じ変換ルールに対して、作業用記憶部3のデータ
との突合せを行う。
り、同じ変換ルールに対して、作業用記憶部3のデータ
との突合せを行う。
ステップ58は、現在選択されている変換ルールの次に
適用すべき変換ルールが、変換知識記憶部1に存在する
かどうかを判定する。もし存在すれば、処理ステップ5
1に再び戻り、次の変換ルールを選択し、存在しなけれ
ば変換処理を終了する。
適用すべき変換ルールが、変換知識記憶部1に存在する
かどうかを判定する。もし存在すれば、処理ステップ5
1に再び戻り、次の変換ルールを選択し、存在しなけれ
ば変換処理を終了する。
第13図は、本発明の主要部である第7図ステップ72
および、発明の一つである反転論理生成方法の一例を示
す流れ図である。
および、発明の一つである反転論理生成方法の一例を示
す流れ図である。
ステップ80は、登録素子の入力信号および出力信号に
おいて論理反転信号Y、が使用されているとき、その信
号Xの論理反転である信号Y、を作業用記憶部3内のデ
ータ回路中に生成する。処理の詳細は第14図に示す。
おいて論理反転信号Y、が使用されているとき、その信
号Xの論理反転である信号Y、を作業用記憶部3内のデ
ータ回路中に生成する。処理の詳細は第14図に示す。
ステップ100は、第10図における素子登録手段29
により前記ステップ80で生成された信号Y、を用いて
、登録素子の入力信号あるいは出力信号のうちすべての
論理反転信号X、を対応する信号Y、に置き換え、その
素子を作業用記憶部3内のデータに登録する。
により前記ステップ80で生成された信号Y、を用いて
、登録素子の入力信号あるいは出力信号のうちすべての
論理反転信号X、を対応する信号Y、に置き換え、その
素子を作業用記憶部3内のデータに登録する。
第14図は、第13図におけるステップ80の一例を詳
細に示す流れ図である。ステップ81〜88までは登録
素子に入力する信号に対する処理であり、ステップ91
〜98は登録素子から出力する信号に対する処理である
。第14図の例では、全ての入力信号に対して処理した
後、出力信号に対して処理しているが、逆に、先に出力
信号に対して処理する場合、あるいは、入力信号、出力
信号の順序を意識せず処理する場合も考えられる。以下
、処理を詳細に説明する。
細に示す流れ図である。ステップ81〜88までは登録
素子に入力する信号に対する処理であり、ステップ91
〜98は登録素子から出力する信号に対する処理である
。第14図の例では、全ての入力信号に対して処理した
後、出力信号に対して処理しているが、逆に、先に出力
信号に対して処理する場合、あるいは、入力信号、出力
信号の順序を意識せず処理する場合も考えられる。以下
、処理を詳細に説明する。
まず、入力信号の各々に対して、ステップ81〜87の
処理を行う。
処理を行う。
ステップ81は、その入力信号が未決定信号(つまり、
信号名が決まっていない信号)かどうかを判定する。そ
の結果、未決定信号ならばステップ82を、さもなけれ
ばステップ83を実行する。
信号名が決まっていない信号)かどうかを判定する。そ
の結果、未決定信号ならばステップ82を、さもなけれ
ばステップ83を実行する。
ステップ82は、まだ信号名が決まっていない信号に、
信号名を割りつける処理である。
信号名を割りつける処理である。
ステップ83は、その入力信号が論理反転信号(つまり
、ある信号Yの論理、否定Yの形式を表されている信号
)であるかどうかを判定する。その結果、論理否定信号
ならばステップ84を、さもなければステップ88を実
行する。
、ある信号Yの論理、否定Yの形式を表されている信号
)であるかどうかを判定する。その結果、論理否定信号
ならばステップ84を、さもなければステップ88を実
行する。
ステップ84は、論理反転信号を生成するために、論理
反転知識記憶部7における論理反転規則20のいずれか
が適用可能であるかどうかを判定する。つまり、信号Y
の論理反転信号Yを生成する場合、第1IA図(あるい
は、第11B図)に示すような論理反転規則の左辺(す
なわち“−〜”の左辺)あるいは右辺のいずれかの回路
で、かつ、その出力信号がYである回路が、作業用記憶
部3内のデータ回路中に存在する(つまり、パターン・
マツチする)かどうかを判定する。例えば、第LIA図
の一例では、作業用記憶部3内のデータ回路に出力信号
Yをもつ2人力AND回路、2人力OR回路、等が存在
するかどうかを判定する。その結果、存在すれば、論理
反転規則が適用可能であるので、ステップ85の処理を
実行し、いずれの規則に対しても存在しなければステッ
プ87を実行する。
反転知識記憶部7における論理反転規則20のいずれか
が適用可能であるかどうかを判定する。つまり、信号Y
の論理反転信号Yを生成する場合、第1IA図(あるい
は、第11B図)に示すような論理反転規則の左辺(す
なわち“−〜”の左辺)あるいは右辺のいずれかの回路
で、かつ、その出力信号がYである回路が、作業用記憶
部3内のデータ回路中に存在する(つまり、パターン・
マツチする)かどうかを判定する。例えば、第LIA図
の一例では、作業用記憶部3内のデータ回路に出力信号
Yをもつ2人力AND回路、2人力OR回路、等が存在
するかどうかを判定する。その結果、存在すれば、論理
反転規則が適用可能であるので、ステップ85の処理を
実行し、いずれの規則に対しても存在しなければステッ
プ87を実行する。
ステップ85は、前記ステップ84において適用可能で
あると判定された論理反転規則の左辺あるいは右辺にあ
る(前記ステップでマツチした)回路を作業用記憶部3
内のデータから削除し、それぞれ対応するその規則の右
辺あるいは左辺にある回路を作業用記憶部3内に追加登
録する。例えば、前記ステップ84において、第11A
図の第1番目の規則が適用可能となった場合、ステップ
84で存在が確認された出力信号YのAND素子を作業
用記憶部3から削除し、対応する同一人力信号のNAN
D素子を作業用記憶部3に追加登録する。なお、素子の
削除は、第12図におけるステップ55と同様の処理を
行う。また、素子の登録は、第7図におけるステップ7
2を再帰的に実行することによって実現できる。
あると判定された論理反転規則の左辺あるいは右辺にあ
る(前記ステップでマツチした)回路を作業用記憶部3
内のデータから削除し、それぞれ対応するその規則の右
辺あるいは左辺にある回路を作業用記憶部3内に追加登
録する。例えば、前記ステップ84において、第11A
図の第1番目の規則が適用可能となった場合、ステップ
84で存在が確認された出力信号YのAND素子を作業
用記憶部3から削除し、対応する同一人力信号のNAN
D素子を作業用記憶部3に追加登録する。なお、素子の
削除は、第12図におけるステップ55と同様の処理を
行う。また、素子の登録は、第7図におけるステップ7
2を再帰的に実行することによって実現できる。
ステップ88は、前記ステップ85の処理によって削除
される信号Yを確保するため、入力信号Yかつ出力信号
Yをもつインバータを作業用記憶部3に追加登録する。
される信号Yを確保するため、入力信号Yかつ出力信号
Yをもつインバータを作業用記憶部3に追加登録する。
ただし、ステップ85を処理した後の作業用記憶部3内
のデータ回路に前記信号Yを入力信号にもつ素子が存在
しなければ、インバータを追加登録する必要はない。
のデータ回路に前記信号Yを入力信号にもつ素子が存在
しなければ、インバータを追加登録する必要はない。
また、ステップ85において、インバータをバッファに
変換する場合(つまり、入力信号Yあるいは出力信号Y
をもつインバータがデータ回路中に存在するとき)、そ
れぞれ、そのインバータの出力信号あるいは入力信号が
反転信号Yであるため、ステップ85の処理はその反転
信号Yを抽出する処理のみにし、かつ、ステップ86の
処理を省略してもよい。同様に、出力信号Yを持つフリ
ップ・フロップがデータ回路中に存在する場合も、ステ
ップ85は反転信号Yを抽出する処理にし、ステップ8
6の処理を省略する。
変換する場合(つまり、入力信号Yあるいは出力信号Y
をもつインバータがデータ回路中に存在するとき)、そ
れぞれ、そのインバータの出力信号あるいは入力信号が
反転信号Yであるため、ステップ85の処理はその反転
信号Yを抽出する処理のみにし、かつ、ステップ86の
処理を省略してもよい。同様に、出力信号Yを持つフリ
ップ・フロップがデータ回路中に存在する場合も、ステ
ップ85は反転信号Yを抽出する処理にし、ステップ8
6の処理を省略する。
ステップ87は、ステップ84において、いずれの論理
反転規則も適用できなかった場合、入力信号Yのインバ
ータを作業用記憶部3内のデータに追加登録することに
より、反転信号Yを生成する処理である。
反転規則も適用できなかった場合、入力信号Yのインバ
ータを作業用記憶部3内のデータに追加登録することに
より、反転信号Yを生成する処理である。
なお、ステップ86.87のインバータの登録は、第7
図のステップ72を再帰的に実行することによって実現
する。
図のステップ72を再帰的に実行することによって実現
する。
ステップ88は、登録素子の全ての入力信号に対して上
記ステップ81〜87の処理を行ったがどうかを判定す
る。その結果、全ての入力信号に対して処理済みならば
、出力信号に対する処理(ステップ91〜98)を実行
し、さもなければ未処理の入力信号に対して再びステッ
プ81〜87を実行する。
記ステップ81〜87の処理を行ったがどうかを判定す
る。その結果、全ての入力信号に対して処理済みならば
、出力信号に対する処理(ステップ91〜98)を実行
し、さもなければ未処理の入力信号に対して再びステッ
プ81〜87を実行する。
次に、出力信号に対して、同様にステップ91〜98の
処理を行う。
処理を行う。
ステップ9、ステップ92.ステップ93については、
それぞれ前記ステップ8、ステップ82、ステップ83
と同様の処理を行うので、その説明を省略する。
それぞれ前記ステップ8、ステップ82、ステップ83
と同様の処理を行うので、その説明を省略する。
ステップ94は、ステップ84と同様、論理反転信号を
生成するため論理反転知識記憶部7における論理反転規
則20のいずれかが適用可能であるかどうかを判定する
。つまり、信号Yの論理反転信号を生成するとき、いず
れかの論理反転規則の左辺あるいは右辺にある回路で、
かつその入力信号の一つが信号Yとなる回路が作業用記
憶部3内のデータにパターン・マツチするかどうかを判
定する。その結果、パターン・マツチすればステップ9
5を実行し、さもなければステップ96を実行する。
生成するため論理反転知識記憶部7における論理反転規
則20のいずれかが適用可能であるかどうかを判定する
。つまり、信号Yの論理反転信号を生成するとき、いず
れかの論理反転規則の左辺あるいは右辺にある回路で、
かつその入力信号の一つが信号Yとなる回路が作業用記
憶部3内のデータにパターン・マツチするかどうかを判
定する。その結果、パターン・マツチすればステップ9
5を実行し、さもなければステップ96を実行する。
ステップ95は、ステップ84と同様、前記ステップ9
4において適用可能と判定された論理反転規則を用いて
、所望の論理反転信号を生成する処理である。例えば、
第11C図の論理反転規則の左辺の2人力AND素子が
パターン・マツチしたとすれば、その素子を作業用記憶
部3から削除し、同一出力信号で、かつ入力信号X、Y
を持つNOR素子を作業用記憶部3に追加登録する。な
お、素子の削除は第12図におけるステップ55と同様
の処理を行う。また、素子の登録は、第7図におけるス
テップ72を再帰的に実行することによって実現できる
。
4において適用可能と判定された論理反転規則を用いて
、所望の論理反転信号を生成する処理である。例えば、
第11C図の論理反転規則の左辺の2人力AND素子が
パターン・マツチしたとすれば、その素子を作業用記憶
部3から削除し、同一出力信号で、かつ入力信号X、Y
を持つNOR素子を作業用記憶部3に追加登録する。な
お、素子の削除は第12図におけるステップ55と同様
の処理を行う。また、素子の登録は、第7図におけるス
テップ72を再帰的に実行することによって実現できる
。
ステップ96は、前記ステップ87と同様に、ステップ
94において、いずれの論理反転規則も適用できなかっ
た場合、出力信号Yのインバータを作業用記憶部3内の
データに追加登録することにより、反転信号Yを生成す
る処理である。
94において、いずれの論理反転規則も適用できなかっ
た場合、出力信号Yのインバータを作業用記憶部3内の
データに追加登録することにより、反転信号Yを生成す
る処理である。
ただし、ステップ94において、入力信号Yを持つイン
バータにパターン・マツチした場合、ステップ95では
、信号Yを入力する素子が複数存在するならば、そのイ
ンバータの出力信号がYとなっているため、反転信号Y
の抽出のみを行い、インバータは削除しない。
バータにパターン・マツチした場合、ステップ95では
、信号Yを入力する素子が複数存在するならば、そのイ
ンバータの出力信号がYとなっているため、反転信号Y
の抽出のみを行い、インバータは削除しない。
ステップ97は、論理反転信号Yが複数の素子の入力に
なっている(つまり、ファンアウトが複数である)場合
、ステップ94〜96を繰り返し処理するための判定で
ある。論理反転すべき信号を入力すると全素子に対して
ステップ94〜96の処理を終えたならば、ステップ9
8を実行し、さもなければ未処理部分に対してステップ
94〜96を実行する。
なっている(つまり、ファンアウトが複数である)場合
、ステップ94〜96を繰り返し処理するための判定で
ある。論理反転すべき信号を入力すると全素子に対して
ステップ94〜96の処理を終えたならば、ステップ9
8を実行し、さもなければ未処理部分に対してステップ
94〜96を実行する。
ステップ98は、前記ステップ88と同様に、登録素子
が複数が出力信号を持つ場合、各々に対してステップ9
1〜97を繰り返し実行するための判定である。
が複数が出力信号を持つ場合、各々に対してステップ9
1〜97を繰り返し実行するための判定である。
以上ステップにおいて、入力信号に対するステップ84
〜87および出力信号に対するステップ94〜97は、
第10図の反転信号生成手段によって行われる。
〜87および出力信号に対するステップ94〜97は、
第10図の反転信号生成手段によって行われる。
また、以上の例では、入力信号および出力信号の両方の
論理反転信号の生成を考慮したが、入力信号あるいは出
力信号のいずれか一方のみの場合も容易に実現できる。
論理反転信号の生成を考慮したが、入力信号あるいは出
力信号のいずれか一方のみの場合も容易に実現できる。
以上が本第2実施例における回路変換処理の説明である
。また、第5図における流れ図の処理は、前記第1実施
例と全く同様に、Prologによって容易に実現でき
る。
。また、第5図における流れ図の処理は、前記第1実施
例と全く同様に、Prologによって容易に実現でき
る。
次に、反転論理生成方法の(Prologによる)実現
例を簡単に説明する。
例を簡単に説明する。
第16図は、第11A図に示す論理反転規則の一記述例
である。
である。
例えば、第16図に示す論理反転規則を論理反転知識記
憶部7に記憶しておくと、第14図の流れ図に示すステ
ップ84,85,86,87の一連の処理は、I’ro
logで次のように簡単に実現できる。
憶部7に記憶しておくと、第14図の流れ図に示すステ
ップ84,85,86,87の一連の処理は、I’ro
logで次のように簡単に実現できる。
reverse−1ogic(X 、Z) : −P−
<G:::a−kind−of::−H−::X; )
。
<G:::a−kind−of::−H−::X; )
。
Q−(G: : :a−kind−of : ニー;−
: :Z;−) 。
: :Z;−) 。
5elect−rule(、−’、P、Q)。
unifile4t(P、 (P) + () Lre
place gate(P、Q)、!。
place gate(P、Q)、!。
reversejogic(X、Z)ニーcreat(
inverter(input: :X;output
: :Z))。
inverter(input: :X;output
: :Z))。
すなわち、rreversejogic(X、Z)」述
語は、第1引数の信号Xの論理反転信号が第2引数の信
号Zであるという述語である。このとき、第14図のス
テップ84は第1番目の節のrselect−rule
(0=〜’、P、QJ述語および「uniry−1ef
t(P。
語は、第1引数の信号Xの論理反転信号が第2引数の信
号Zであるという述語である。このとき、第14図のス
テップ84は第1番目の節のrselect−rule
(0=〜’、P、QJ述語および「uniry−1ef
t(P。
[P]、())J述語によって実現される。また、「r
eplace−gate(P、Q)」述語は、ステップ
85.86を実現している。’replace、、−g
ate」述語の一例を以下に示す。
eplace−gate(P、Q)」述語は、ステップ
85.86を実現している。’replace、、−g
ate」述語の一例を以下に示す。
replace−gate((−:::a−kind−
of::1nverter; ; ::−)、−)ニー
!。
of::1nverter; ; ::−)、−)ニー
!。
replace gate((−:::−;outp
ut(Q)::−;output(*Q)::−)、−
)ニー!、 repla6e−gate(P、Q)ニ
ーP−(G:::a kind−of::kind;−
::X;−)。
ut(Q)::−;output(*Q)::−)、−
)ニー!、 repla6e−gate(P、Q)ニ
ーP−(G:::a kind−of::kind;−
::X;−)。
0ベーニニ:−;−::Z;−)す
resoveJra−e(G)。
call(Q)。
creat(inverter((1nput : :
Z Houtput : : X)) 。
Z Houtput : : X)) 。
ここで、第1番目の節は、前記のインバータをバッファ
に変換する場合に相当し、第2番目の節は、フリップ・
フロップが存在する場合に相当する。ただし、第2w1
の*Qは、出力端子Qの出力信号の論理否定信号を出力
する端子を意味する。
に変換する場合に相当し、第2番目の節は、フリップ・
フロップが存在する場合に相当する。ただし、第2w1
の*Qは、出力端子Qの出力信号の論理否定信号を出力
する端子を意味する。
また、第3番目の節における’removeJrame
(G) J述語および’call(Q)」述語がステッ
プ85を実現し、’createjnverter((
input: :Z;output::X)) J述語
がステップ86を実現している。
(G) J述語および’call(Q)」述語がステッ
プ85を実現し、’createjnverter((
input: :Z;output::X)) J述語
がステップ86を実現している。
また、前記rreverse−1ogic(X、Z)」
述語の第2番目の節は、反転規則が適用できない場合の
インバータの追加処理(ステップ87)を実行する部分
である。
述語の第2番目の節は、反転規則が適用できない場合の
インバータの追加処理(ステップ87)を実行する部分
である。
なお、rcreate−inverter」述語は、作
業用記憶部3へのインバータの追加登録を行う述語であ
り、以下のように簡単に実現できる。
業用記憶部3へのインバータの追加登録を行う述語であ
り、以下のように簡単に実現できる。
creat(inverter(Slots)ニーca
ll((:::a−kind−of::1nverte
r;5lots))。
ll((:::a−kind−of::1nverte
r;5lots))。
以上のPrologで実現した反転信号生成手段を有効
利用すると、例えば、第15図のルールの記述例は、第
17図に示すようにルールの結論部を論理反転信号を用
いて非常に簡潔に記述できる。ただし、第17図におけ
る“〜″ (あるいは“−”)は論理反転を意味する記
号である。つまり、“〜X”は信号Xの反転信号を意味
する。また、第14図のステップ83およびステップ9
3における論理反転信号かどうかの判定は、信号名“〜
”が付いているかどうかを判定することにより容易に実
現できる。なお、第17図において、“(Xll、X1
2)“を“ [X1、X12〕”のように簡潔に記述す
る論理反転信号の使用方法も考えられる。
利用すると、例えば、第15図のルールの記述例は、第
17図に示すようにルールの結論部を論理反転信号を用
いて非常に簡潔に記述できる。ただし、第17図におけ
る“〜″ (あるいは“−”)は論理反転を意味する記
号である。つまり、“〜X”は信号Xの反転信号を意味
する。また、第14図のステップ83およびステップ9
3における論理反転信号かどうかの判定は、信号名“〜
”が付いているかどうかを判定することにより容易に実
現できる。なお、第17図において、“(Xll、X1
2)“を“ [X1、X12〕”のように簡潔に記述す
る論理反転信号の使用方法も考えられる。
さらに、未決定信号の判定(ステップ81および91)
は、Prologの組込み述語rvar(X)」を用い
、信号名が変数かどうかを判定することにより実現でき
る。ステップ82および92における信号名決定では、
Prologの基本的な述語である’gensyI」述
語を用いて簡単に信号名称を生成できる。
は、Prologの組込み述語rvar(X)」を用い
、信号名が変数かどうかを判定することにより実現でき
る。ステップ82および92における信号名決定では、
Prologの基本的な述語である’gensyI」述
語を用いて簡単に信号名称を生成できる。
また、出力信号に対する反転論理生成方法(第14図の
ステップ94.95.96.97)も前記入力信号に対
する場合と同様に容易に実現できる。
ステップ94.95.96.97)も前記入力信号に対
する場合と同様に容易に実現できる。
なお、上記Prologで実現した例においては、“@
” 、 “#” 、“?” 、” 、“not” 、−
==〉” 、 “@=〉” 、“#=〉” ” :
: :′および::”はオペレータ宣言されているもの
とする。
” 、 “#” 、“?” 、” 、“not” 、−
==〉” 、 “@=〉” 、“#=〉” ” :
: :′および::”はオペレータ宣言されているもの
とする。
以上の例では、一実施例を高級プログラミング言IPr
ologを用いて実現したが、高級プログラミング言語
L is p s C等を用いても実現することも可能
である。
ologを用いて実現したが、高級プログラミング言語
L is p s C等を用いても実現することも可能
である。
この実施例によれば、変換ルールに論理反転信号を使用
でき、論理反転信号の生成方法を意識する必要がないた
め、 (1) 変換ルールを設計者が有するイメージにほぼ
近い形で記述できる。
でき、論理反転信号の生成方法を意識する必要がないた
め、 (1) 変換ルールを設計者が有するイメージにほぼ
近い形で記述できる。
(2) ルールの記述が簡潔な形式である。
(3)ルールの段階的構造化、及びビット幅を持つ素子
などの簡略記述が可能であるので、1ルール当りの記述
量を少な(できる。
などの簡略記述が可能であるので、1ルール当りの記述
量を少な(できる。
(4) 変換ルールの分類が可能なため、回路変換に
必要な設計知識をベースに整理、保存できる。
必要な設計知識をベースに整理、保存できる。
(ω 論理反転信号の自動生成により、推論効率が大幅
に向上するので、処理の高速化が図れる。
に向上するので、処理の高速化が図れる。
以上(1)〜(5)の効果がある。
第3実施例 ・
以下、本発明の第3実施例を図面により説明する。第1
8図は、本発明の第3実施例の基本構成を示すブロック
図である。図中、lは変換知識記憶部、2は入力部、3
は作業用記憶部、4は出力部、5は推論駆動部(インタ
プリタ)、6はプログラムを記憶し、必要に応じて実行
するプログラム実行部、8は等価論理に関する知識を記
憶する等値論理知識記憶部を示す。
8図は、本発明の第3実施例の基本構成を示すブロック
図である。図中、lは変換知識記憶部、2は入力部、3
は作業用記憶部、4は出力部、5は推論駆動部(インタ
プリタ)、6はプログラムを記憶し、必要に応じて実行
するプログラム実行部、8は等価論理に関する知識を記
憶する等値論理知識記憶部を示す。
また、推論駆動部5は、ルール選択手段14゜適用ルー
ル保持手段22.適用条件照合手段24、素子検索手段
25.削除素子格納手段26゜素子削除手段27.ルー
ル適用手段28.素子登録手段29から構成されている
。
ル保持手段22.適用条件照合手段24、素子検索手段
25.削除素子格納手段26゜素子削除手段27.ルー
ル適用手段28.素子登録手段29から構成されている
。
なお、本実施例では、特に単純なルールベースシステム
の例を示すが、一般のルールベースシステムでも容易に
類推できる。さらに、本発明は、プログラム実行部の有
無に拘りなく、また、変換知識気憶手段と等値論理知識
記憶手段とを統合し、知識記憶手段(知識ベース)とし
てもよい。
の例を示すが、一般のルールベースシステムでも容易に
類推できる。さらに、本発明は、プログラム実行部の有
無に拘りなく、また、変換知識気憶手段と等値論理知識
記憶手段とを統合し、知識記憶手段(知識ベース)とし
てもよい。
次に上記各部について説明する。
変換知識記憶部、入力部22作業用記憶部3、出力部4
.推論駆動部5.プログラム実行部6は、前記第1実施
例または、前記第2実施例の各々に対応している。
.推論駆動部5.プログラム実行部6は、前記第1実施
例または、前記第2実施例の各々に対応している。
等値論理知識記憶手段8には、論理的に等価な関係を示
す等価論理規則40を記憶する。第19図は、等価論理
規則の例である。第19図の例では、“=”で対応づけ
られた’ANDJとrNANDの出力の論理否定」、あ
るいはrANDJと「その入力を論理否定したN0RJ
などが等価論理の関係にあることを示している。
す等価論理規則40を記憶する。第19図は、等価論理
規則の例である。第19図の例では、“=”で対応づけ
られた’ANDJとrNANDの出力の論理否定」、あ
るいはrANDJと「その入力を論理否定したN0RJ
などが等価論理の関係にあることを示している。
次に推論駆動部5における各手段の動作機能を処理手順
と共に説明する。
と共に説明する。
第12図は、推論駆動部5における回路変換処理概要の
一例を示す流れ図である。
一例を示す流れ図である。
処理ステップ51は、変換ルール競合解消を考慮して、
変換ルールを優先度の高い順に順次選択する部分であり
、第18図のルール選択手段14によって処理される。
変換ルールを優先度の高い順に順次選択する部分であり
、第18図のルール選択手段14によって処理される。
なお、変換ルールの優先度は、各ルールに前もって指定
しても、あるいは、何らか評価関数(指標)等で決定し
てもよい。
しても、あるいは、何らか評価関数(指標)等で決定し
てもよい。
処理ステップ53は、適用条件照合手段24により処理
ステップ52の出力である変換ルールの条件部の各項を
第18図の作業用記憶部3の内容と突合せ照合を行う(
詳細は後述する)。
ステップ52の出力である変換ルールの条件部の各項を
第18図の作業用記憶部3の内容と突合せ照合を行う(
詳細は後述する)。
ステップ54は、処理ステップ53の照合処理により、
ルールの条件部が成立するかどうかを判定する。本ステ
ップの判定が成立すれば、処理ステップ55の処理を実
行し、不成立であればステップ58を実行する。
ルールの条件部が成立するかどうかを判定する。本ステ
ップの判定が成立すれば、処理ステップ55の処理を実
行し、不成立であればステップ58を実行する。
処理ステップ55は、第18図の素子削除手段27によ
り、削除素子格納手段26に格納されている素子を順次
作業用記憶部3中のデータから削除する。
り、削除素子格納手段26に格納されている素子を順次
作業用記憶部3中のデータから削除する。
処理ステップ57は、第18図のルール適用手段28に
より、作業用記憶部3のデータの更新、素子の追加等を
行う(処理の詳細は後述する。)。
より、作業用記憶部3のデータの更新、素子の追加等を
行う(処理の詳細は後述する。)。
本処理ステップ57終了後、再び処理ステップ53に戻
り、同じ変換ルールに対して、作業用記憶部3のデータ
との突合せを行う。
り、同じ変換ルールに対して、作業用記憶部3のデータ
との突合せを行う。
ステップ58は、現在選択されている変換ルールの次に
適用すべき変換ルールが、変換知識記憶部1に存在する
かどうかを判定する。もし存在すれば、処理ステップ5
1に再び戻り、次の変換ルールを選択し、存在しなけれ
ば変換処理を終了する。
適用すべき変換ルールが、変換知識記憶部1に存在する
かどうかを判定する。もし存在すれば、処理ステップ5
1に再び戻り、次の変換ルールを選択し、存在しなけれ
ば変換処理を終了する。
第6図は、前記ステップ53のルール条件部の照合処理
の一例を示す流れ図である。
の一例を示す流れ図である。
ステップ60は、変換ルールの条件部に於ける処理すべ
き項を第1項に指定する。つまり、処理順の項番りを1
番とする。
き項を第1項に指定する。つまり、処理順の項番りを1
番とする。
ステップ61は、処理中の項、つまり第り番目の項が素
子を表すものかどうかを判定する。第り番目の項が素子
を表すものならば、ステップ62の処理を行い、第り番
目の項がそれ以外の処理を表すものであれば、ステップ
66の処理を行う。
子を表すものかどうかを判定する。第り番目の項が素子
を表すものならば、ステップ62の処理を行い、第り番
目の項がそれ以外の処理を表すものであれば、ステップ
66の処理を行う。
ステップ62は、第18図における素子検索手段25を
用いて、この第り番目の項に該当する素子が作業用記憶
部3に存在するかどうかを突合わせる。
用いて、この第り番目の項に該当する素子が作業用記憶
部3に存在するかどうかを突合わせる。
もし、第り番目の項に該当する素子が作業用記憶部3に
存在しないならば、等値論理知識記憶部8に記憶されて
いる等値論理規則40に、その第り番目の項の素子に関
連する等値論理規則があれば、その規則を用いて、その
第り番目の素子と論理的に等価な回路(すなわち、単一
の素子あるいは複数の素子から構成される回路〉が作業
用記憶部3に存在するかどうかを突き合わせる。存在す
るならば、第り番目の素子の代りにその回路を用いて以
下の処理を行う。
存在しないならば、等値論理知識記憶部8に記憶されて
いる等値論理規則40に、その第り番目の項の素子に関
連する等値論理規則があれば、その規則を用いて、その
第り番目の素子と論理的に等価な回路(すなわち、単一
の素子あるいは複数の素子から構成される回路〉が作業
用記憶部3に存在するかどうかを突き合わせる。存在す
るならば、第り番目の素子の代りにその回路を用いて以
下の処理を行う。
ステップ63は、前記ステップ62に於て、該当する素
子(あるいは、それに代る回路)が存在したかどうかを
判定する。存在(つまり成立)すればステップ64の処
理を行い、存在しなければ条件不成立で処理を終了する
。
子(あるいは、それに代る回路)が存在したかどうかを
判定する。存在(つまり成立)すればステップ64の処
理を行い、存在しなければ条件不成立で処理を終了する
。
ステップ64、前記ステップ62に於て存在を確認され
た素子を、当該変換ルールを適応する際に(つまり、ル
ールの条件成立後)、削除すべきかどうか判定する。そ
の素子が削除すべき素子であれば、ステップ65の処理
を行い、削除すべきでなければ、ステップ68の処理を
行う。
た素子を、当該変換ルールを適応する際に(つまり、ル
ールの条件成立後)、削除すべきかどうか判定する。そ
の素子が削除すべき素子であれば、ステップ65の処理
を行い、削除すべきでなければ、ステップ68の処理を
行う。
ステップ65は、前記ステップ64で判定された素子を
第18図に示す削除素子格納手段26によって格納して
おく。但し、削除素子格納手段26には初期状態では何
も格納されていない。
第18図に示す削除素子格納手段26によって格納して
おく。但し、削除素子格納手段26には初期状態では何
も格納されていない。
ステップ66は、第り番目の項が表す条件判定等の各種
処理を、プログラム実行部6へ指令して実行させる。
処理を、プログラム実行部6へ指令して実行させる。
ステップ67は、前記ステップ66で実行される処理が
成立したかどうかの判定であり、成立すればステップ6
8の処理を行い、不成立の場合には条件不成立で終了す
る。なお、前記ステップ66で実行される処理が判定を
要しない場合には常に成立とみなす。
成立したかどうかの判定であり、成立すればステップ6
8の処理を行い、不成立の場合には条件不成立で終了す
る。なお、前記ステップ66で実行される処理が判定を
要しない場合には常に成立とみなす。
ステップ68は、第り番目の項が最終項であるかどうか
の判定であり、最終項であれば条件成立で処理を終了し
、最終項でなければステップ69においてLに1を加算
し、ルールの条件部の次の項に対してステップ61以降
の処理を繰り返し実行する。
の判定であり、最終項であれば条件成立で処理を終了し
、最終項でなければステップ69においてLに1を加算
し、ルールの条件部の次の項に対してステップ61以降
の処理を繰り返し実行する。
第7図は、前記ルール結論部の適用処理57の一例を示
す流れ図である。
す流れ図である。
ステップ70は、変換ルールの結論部における処理をす
べき項を第1項に指定する。つまり、処理順の順番Mを
1番目とする。
べき項を第1項に指定する。つまり、処理順の順番Mを
1番目とする。
ステップ71は、処理中の項、つまり第M項が素子を表
すものか、それ以外の各種処理を表すも′のかの判定で
あり、素子ならばステップ72、それ以外の各種処理な
らステップ74の処理をそれぞれ行う。
すものか、それ以外の各種処理を表すも′のかの判定で
あり、素子ならばステップ72、それ以外の各種処理な
らステップ74の処理をそれぞれ行う。
ステップ72は、前記ステップ71で判定した素子を第
18図に示す素子登録手段29により、作業用記憶部3
内のデータに追加登録する。
18図に示す素子登録手段29により、作業用記憶部3
内のデータに追加登録する。
もし、追加登録する素子が、変換後の回路を構成する素
子として適切、でないならば、等価論理知識記憶部8に
記憶されている等値論理規則40にその素子に関連する
等値論理規則があれば、その規則を用いて、その追加登
録すべき素子の代りに、その素子と論理的に等価で、か
つ適切な回路(すなわち、単一の素子あるいは複数の素
子から構成される回路)を作業用記憶部3に追加登録す
る。
子として適切、でないならば、等価論理知識記憶部8に
記憶されている等値論理規則40にその素子に関連する
等値論理規則があれば、その規則を用いて、その追加登
録すべき素子の代りに、その素子と論理的に等価で、か
つ適切な回路(すなわち、単一の素子あるいは複数の素
子から構成される回路)を作業用記憶部3に追加登録す
る。
ステップ74は、前記ステップ71で判定した各種処理
を、プログラム実行部6へ指令して実行させる。
を、プログラム実行部6へ指令して実行させる。
ステップ75は、第M項がルール結論部の最終項である
かどうかの判定であり、最終項ならば処理を終了し、最
終項でなければステップ76におていMに1を加え、ル
ールの結論部の次の項に対してステップ71以降の処理
を繰り返し実行する。
かどうかの判定であり、最終項ならば処理を終了し、最
終項でなければステップ76におていMに1を加え、ル
ールの結論部の次の項に対してステップ71以降の処理
を繰り返し実行する。
以上が第3実施例における回路変換処理の説明である。
次に、本発明の回路変換方法を用いた回路変換処理を具
体的に例を挙げて説明する。
体的に例を挙げて説明する。
第22図は、前記実施例における作業用記憶部3に記憶
されている回路の一部分を表す例である。第22図の回
路において、インバータ101、インバータ102.N
0R103,NAND104、インバータ105および
N0R106は、AND−NOR複合ゲートantdo
oに変換することができる。
されている回路の一部分を表す例である。第22図の回
路において、インバータ101、インバータ102.N
0R103,NAND104、インバータ105および
N0R106は、AND−NOR複合ゲートantdo
oに変換することができる。
従来の変換方法ならば、この変換を実現するため、以下
の2通りの方法がある。
の2通りの方法がある。
(1) 第1の方法は、第20図に示すAND−N。
RwI合ゲートへ変換するルールと論理的に等価である
第23図に示す変換ルールを作成し、第22図の回路に
適用する方法である。
第23図に示す変換ルールを作成し、第22図の回路に
適用する方法である。
この方法は、第20図の変換ルールと第23図の変換ル
ールを比較すればわかるように、変換ルールが複雑にな
り、個々のケースに対応したルールを作成する必要があ
る。
ールを比較すればわかるように、変換ルールが複雑にな
り、個々のケースに対応したルールを作成する必要があ
る。
■ 第2の方法は、まず、第24図に示す変換ルールa
およびbを適用し、第22図に示す回路のインバータ1
01とインバータ102とN0RI03、およびNAN
D104とインバータ105を、それぞれ2人力AND
および3人力ANDに変換した後、第20図に示す変換
ルールを適用する方法である。
およびbを適用し、第22図に示す回路のインバータ1
01とインバータ102とN0RI03、およびNAN
D104とインバータ105を、それぞれ2人力AND
および3人力ANDに変換した後、第20図に示す変換
ルールを適用する方法である。
この方法は、個々の変換ルールは第1の方法に比べ、簡
潔であるが、第1の方法では1回の変換で済むところ、
3回の変換を行う必要があり、ルール数が多くなると共
に作業用記憶部へのアクセスが多(なる。
潔であるが、第1の方法では1回の変換で済むところ、
3回の変換を行う必要があり、ルール数が多くなると共
に作業用記憶部へのアクセスが多(なる。
本発明の方法によれば、従来の難点を改善することが可
能である。つまり、第22図の回路に第20図に示す変
換ルールを適用すると、第19図に示す等値論理規則(
イ)を用いて、インバータ101とインバータ102と
N0R103とを2人力ANDと認識し、第19図の等
値論理規則(ア)ヲ用イテ、NAND104とインバー
タ1o5とを3人力ANDと認識し、回路変換を行い、
所望の回路が生成される。
能である。つまり、第22図の回路に第20図に示す変
換ルールを適用すると、第19図に示す等値論理規則(
イ)を用いて、インバータ101とインバータ102と
N0R103とを2人力ANDと認識し、第19図の等
値論理規則(ア)ヲ用イテ、NAND104とインバー
タ1o5とを3人力ANDと認識し、回路変換を行い、
所望の回路が生成される。
この実施例によれば、簡単な等値論理規則を有効に利用
し、少ない簡潔な変換ルールで多数の処理が可能になる
。したがって、 (1) 変換ルールを設計者が有するイメージにほぼ
近い形で記述できる。
し、少ない簡潔な変換ルールで多数の処理が可能になる
。したがって、 (1) 変換ルールを設計者が有するイメージにほぼ
近い形で記述できる。
■ ルールの記述が簡潔な形式である。
C) 変換ルール数を少なくできると共に1ルール当り
の記述量も少なくできる。
の記述量も少なくできる。
(11)変換ルールの分類が可能なため、回路変換に必
要な設計知識を知識ベースに整理・保存できる。
要な設計知識を知識ベースに整理・保存できる。
(9等値論理規則の利用により、推論効率が大幅に向上
するので、処理の高速化が図れる。
するので、処理の高速化が図れる。
以上(1)〜(9の効果がある。
なお、本発明の前記第1実施例または前記第2実施例ま
たは前記第3実施例の回路変換方法を用いた論理設計シ
ステムの実施例に関しては、ハードウェア記述言語等に
よる機能記述を機能ブロックの接続情報へ変換する機能
記述変換手段について、特願昭62−241289等に
詳しい記載があり、また、機能ブロックの接続情報を回
路または論理回路の接続情報へ変換する回路変換手段は
、本実施例によって容易に実現できる。
たは前記第3実施例の回路変換方法を用いた論理設計シ
ステムの実施例に関しては、ハードウェア記述言語等に
よる機能記述を機能ブロックの接続情報へ変換する機能
記述変換手段について、特願昭62−241289等に
詳しい記載があり、また、機能ブロックの接続情報を回
路または論理回路の接続情報へ変換する回路変換手段は
、本実施例によって容易に実現できる。
以上、3実施例を用いて説明したように、本発明によれ
ば、同一の機能を有する回路を異なるテクノロジ(ある
いはデバイス)で実装する際に必要となる回路変換また
は論理設計において、設計者の有する変換知識を簡潔な
形のルールで記述することによって容易にシステムに取
り込めるため、計算機による回路変換処理を熟練設計者
差みの高品質で行えるとともに、効率的な推論により処
理の高速化が図れる。さらに、テクノロジの変更に対し
ても容易に対処できる。そのため、設計工数及びコスト
が削減し、設計品質が向上する等の効果がある。
ば、同一の機能を有する回路を異なるテクノロジ(ある
いはデバイス)で実装する際に必要となる回路変換また
は論理設計において、設計者の有する変換知識を簡潔な
形のルールで記述することによって容易にシステムに取
り込めるため、計算機による回路変換処理を熟練設計者
差みの高品質で行えるとともに、効率的な推論により処
理の高速化が図れる。さらに、テクノロジの変更に対し
ても容易に対処できる。そのため、設計工数及びコスト
が削減し、設計品質が向上する等の効果がある。
発明の効果
本発明によれば、同一の機能を有する回路を異なるテク
ノロジ(あるいはデバイス)で実装する際に必要となる
回路変換または論理設計において、設計者の有する変換
知識を簡潔な形のルールで記述することによって容易に
システムに取り込めるため、計算機による回路変換処理
を熟練設計者差みの高品質で行えるとともに、効率的な
推論により処理の高速化が図れる。さにら、テクノロジ
の変更に対しても容易に対処できる。そのため、設計工
数およびコストが削減し、設計品質が向上する等の効果
がある。
ノロジ(あるいはデバイス)で実装する際に必要となる
回路変換または論理設計において、設計者の有する変換
知識を簡潔な形のルールで記述することによって容易に
システムに取り込めるため、計算機による回路変換処理
を熟練設計者差みの高品質で行えるとともに、効率的な
推論により処理の高速化が図れる。さにら、テクノロジ
の変更に対しても容易に対処できる。そのため、設計工
数およびコストが削減し、設計品質が向上する等の効果
がある。
第1図は本発明の第1実施例における基本構成を示すブ
ロック図、第2図はルールの階層的構造化の概念図、第
3図は変換ルールの一例を示す説明図、第4図は回路表
現の一例を示す説明図、第5図は実施例の推論駆動部に
おける回路変換処理の一例を示す流れ図、第6図はルー
ル条件部の照合処理の一例を示す流れ図、第7図はルー
ル結論部の適用処理の一例を示す流れ図、第8図は変換
ルールの記述例を示す説明図、第9図は展開ルールの記
述例を示す説明図、第10図は本発明の第2実施例にお
ける基本構成を示すブロック図、第11図は回路表現の
一例を示す説明図、第12図は実施例の推論駆動部にお
ける回路変換処理の一例を示す流れ図、第13図は素子
作業用記憶部への登録処理の一例を示す流れ図、第14
図は論理反転信号生成処理の一例を示子流れ図、第15
図は変換ルールの記述例を示す説明図、第16図は論理
反転規則の記述例を示す説明図、第17図は論理反転信
号を用いた変換ルールの記述例を示す説明図、第18図
は本発明の第3実施例における基本構成を示すブロック
図、第19図は2人力ANDと等価な回路号示す回路図
、第20図は変換ルールの□−例を示す説明図、第21
図は回路表現の一例を示す説明図、第22図は等値論理
規則の例を示す説明図、第23図は変換対象回路の一例
である部分回路図、第24図は第20図の変換ルールと
論理的に等価な変換ルールを示す説明図である。
□ 1・・・・・・変換知識記憶部、2・・・・・・入力部
、3・旧・・作業用記憶部、4・・・・・・出力部、5
・・・・・・推論駆動部、6−・・・・・プログラム実
行部、7・・・・・・論理反転知識記憶部、8・・・・
・・等値論理知識記憶部、10・・・・・・大局的ルー
ル、1、12・・・・・・局面的ルール、13・・・・
・・変換ルール、14・・・・・・ルール選択手段、2
0・・・・・・論理反転規則、21・・・・・・大周的
ルール選択手段、22・・・・・・適用ルール保持手段
、23・・・・・・ルールの置換手段、24・・・・・
・適用条件照合手段、25・・・・・・素子検索手段、
26・・・・・・削除素子格納手段、27・・・・・・
素子削除手段、28・・・・・・ルール適用手段、29
・・・・・・素子登録手段、30・・・・・・ルール選
択情報伝達手段、31・・・・・・局面的ルール選択手
段、32・・・・・・反転信号生成手段、40・・・・
・・等価論理規則。 代理人の氏名 弁理士 粟野重孝 ほか1名第2図 A B ct D、 −E/、 (rJ
) J A、B、Cz、ρ、2 E、!J 1:z J
0%、B、○ −EJ、FJ、q 第 3 図 (a)iルール (b) 従J!ル −ル (a数の信号の播肩り凝阜ユ(謬=イ占号GINインノ
〈−タ【村ゆ6)第4図 (α)(b2の目蕗4義Tデータの一伊J0121;p
(It : : 5174 :fane(It::
J <b) ファンアラ7−3の3人力ytorか飢桟4
圓隊第5図 第6図 第7図 第8図 (σ)王ルーシの記述0グ (b)従属ルー)4/Q記述例 第9図 tm> trμC 第11図 A 第13図 車14図 第15図 第16図 817図 第19図 ヘ \〜−一一7′第21図 1124図
ロック図、第2図はルールの階層的構造化の概念図、第
3図は変換ルールの一例を示す説明図、第4図は回路表
現の一例を示す説明図、第5図は実施例の推論駆動部に
おける回路変換処理の一例を示す流れ図、第6図はルー
ル条件部の照合処理の一例を示す流れ図、第7図はルー
ル結論部の適用処理の一例を示す流れ図、第8図は変換
ルールの記述例を示す説明図、第9図は展開ルールの記
述例を示す説明図、第10図は本発明の第2実施例にお
ける基本構成を示すブロック図、第11図は回路表現の
一例を示す説明図、第12図は実施例の推論駆動部にお
ける回路変換処理の一例を示す流れ図、第13図は素子
作業用記憶部への登録処理の一例を示す流れ図、第14
図は論理反転信号生成処理の一例を示子流れ図、第15
図は変換ルールの記述例を示す説明図、第16図は論理
反転規則の記述例を示す説明図、第17図は論理反転信
号を用いた変換ルールの記述例を示す説明図、第18図
は本発明の第3実施例における基本構成を示すブロック
図、第19図は2人力ANDと等価な回路号示す回路図
、第20図は変換ルールの□−例を示す説明図、第21
図は回路表現の一例を示す説明図、第22図は等値論理
規則の例を示す説明図、第23図は変換対象回路の一例
である部分回路図、第24図は第20図の変換ルールと
論理的に等価な変換ルールを示す説明図である。
□ 1・・・・・・変換知識記憶部、2・・・・・・入力部
、3・旧・・作業用記憶部、4・・・・・・出力部、5
・・・・・・推論駆動部、6−・・・・・プログラム実
行部、7・・・・・・論理反転知識記憶部、8・・・・
・・等値論理知識記憶部、10・・・・・・大局的ルー
ル、1、12・・・・・・局面的ルール、13・・・・
・・変換ルール、14・・・・・・ルール選択手段、2
0・・・・・・論理反転規則、21・・・・・・大周的
ルール選択手段、22・・・・・・適用ルール保持手段
、23・・・・・・ルールの置換手段、24・・・・・
・適用条件照合手段、25・・・・・・素子検索手段、
26・・・・・・削除素子格納手段、27・・・・・・
素子削除手段、28・・・・・・ルール適用手段、29
・・・・・・素子登録手段、30・・・・・・ルール選
択情報伝達手段、31・・・・・・局面的ルール選択手
段、32・・・・・・反転信号生成手段、40・・・・
・・等価論理規則。 代理人の氏名 弁理士 粟野重孝 ほか1名第2図 A B ct D、 −E/、 (rJ
) J A、B、Cz、ρ、2 E、!J 1:z J
0%、B、○ −EJ、FJ、q 第 3 図 (a)iルール (b) 従J!ル −ル (a数の信号の播肩り凝阜ユ(謬=イ占号GINインノ
〈−タ【村ゆ6)第4図 (α)(b2の目蕗4義Tデータの一伊J0121;p
(It : : 5174 :fane(It::
J <b) ファンアラ7−3の3人力ytorか飢桟4
圓隊第5図 第6図 第7図 第8図 (σ)王ルーシの記述0グ (b)従属ルー)4/Q記述例 第9図 tm> trμC 第11図 A 第13図 車14図 第15図 第16図 817図 第19図 ヘ \〜−一一7′第21図 1124図
Claims (1)
- 【特許請求の範囲】 (1)回路変換知識を記憶する変換知識記憶部と、回路
変換作業用記憶部と、該作業用記憶部に回路データを入
力する入力部と、該作業用記憶部から回路データを出力
する出力部と、前記回路変換知識に基づいて推論を行う
推論駆動部とを備え、第1の素子集合に属する素子から
構成される回路を、論理的に等価で、かつ第2の集合に
属する素子のみから構成される回路に変換する回路変換
システムにおいて、前記変換知識記憶部に、条件部と結
論部とで表現された複数の種類(あるいは形式)の変換
ルールを記憶させ、前記変換ルールの条件部あるいは推
論部で使用する判定や演算や諸関数等を含む各種処理を
行うプログラムを記憶および実行するプログラム実行部
を有し、前記推論駆動部が、前記変換知識記憶部から適
用すべき変換ルールを保持する適用ルール保持手段と、
前記作業用記憶部内のデータから素子を検索する素子検
索手段と、前記素子検索手段あるいは前記プログラム実
行部による各種処理により、前記適用ルール保持手段に
保持された適用ルールの条件部と前記作業用記憶部内の
データとを照合する適用条件照合手段と、前記適用ルー
ルの条件部が成立した後に削除すべき素子を適用ルール
から抽出し、指摘する削除素子摘出手段と、前記適用条
件照合手段により適用ルールの条件部の成立を確認した
後、前記削除素子摘出手段により摘出された素子を前記
作業用記憶部内のデータから順次削除する素子削除手段
と、前記作業用記憶部内のデータに登録すべき素子を前
記適用ルールから抽出し、追加登録する素子登録手段と
、前記条件部の成立を確認した後、前記適用ルールの結
論部に記述された素子あるいは各種処理を、前記素子登
録手段により登録あるいは前記プログラム実行部により
実行し、前記作業用記憶部内のデータを更新するルール
適用手段と、前記ルール適用手段により前記適用ルール
の結論部を実行時に、適用すべき変換ルールを選択する
ための情報を、ルール選択手段に伝達するルール選択情
報伝達手段とを含むことを特徴とする回路変換システム
。 (2)推論駆動部が、適用ルール保持手段に保持されて
いる第1の変換ルールの条件部または結論部の全体ある
いは部分に適合する条件部をもつ第2の変換ルールを変
換知識記憶部から選択し、前記第1の変換ルールのうち
の第2の変換ルールの条件部に適合する部分を第2の変
換ルールの結論部で置換するルールの置換手段を含むこ
とを特徴とする請求項1記載の回路変換システム。 (3)削除素子摘出手段に代えて、変換ルールの適用条
件照合の際に、適用条件照合手段によって削除すべき素
子を抽出し、推論駆動部にそれらの素子を格納する削除
素子格納手段を設けることを特徴とする請求項1または
2記載の回路変換システム。 (4)条件部と結論部とで表現された複数の種類(ある
いは形式)の変換ルールを記憶させた回路変換知識記憶
部と、前記変換ルールに基づいて推論を行う推論駆動部
とを備え、前記変換知識記憶部から適用すべき変換ルー
ルを保持する適用ルール保持過程を有する回路変換方法
であって、前記推論駆動部が、前記適用ルール保持手段
に保持されている第1の変換ルールの条件部または結論
部の全体あるいは部分に適合する条件部をもつ第2の変
換ルールを前記変換知識記憶部から選択し、前記第1の
変換ルールのうちの前記第2の変換ルールの条件部に適
合する部分を前記第2の変換ルールの結論部で置換する
ルール置換過程を含むことを特徴とする回路変換方法。 (5)回路変換知識を記憶する変換知識記憶部と、回路
変換作業用記憶部と、該作業用記憶部に回路データを入
力する入力部と、該作業用記憶部から回路データを出力
する出力部と、前記回路変換知識に基づいて推論を行う
推論駆動部とを備え、第1の素子集合に属する素子から
構成される回路を、論理的に等価で、かつ第2の集合に
属する素子のみから構成される回路に変換する回路変換
システムにおいて、前記変換知識記憶部に、条件部と結
論部とで表現された変換ルールを記憶させ、論理の反転
関係を表す論理反転規則を記憶する論理反転知識記憶部
を有し、前記推論駆動部が、前記作業用記憶部に素子を
追加登録する素子登録手段と、前記論理反転規則を利用
し、前記作業用記憶部に登録されているデータから特定
の信号の反転信号を抽出あるいは生成する反転信号生成
手段とを含み、素子を前記作業用記憶部に追加登録する
際に、その素子への接続信号のうち、反転論理を表す信
号に対して前記反転信号生成手段により、それらの反転
信号を求めることを特徴とする回路変換システム。 (6)素子登録手段が、登録する素子の接続信号のうち
から論理反転を表す信号を判定する手段を備えることを
特徴とする請求項5記載の回路変換システム。 (7)素子登録手段が、登録する素子の接続信号のうち
の未決定信号に対し、新規信号名を割り付ける手段を備
えることを特徴とする請求項5または6記載の回路変換
システム。(8)条件部と論理部とで表現された変換ル
ールを記憶させた変換知識記憶部を備え、前記ルールの
選択を行うルール選択過程と、前記ルールの条件部と変
換対象となる回路との照合を行う条件部照合過程と、前
記ルールの結論部を適用して前記回路の変更を行う結論
部適用過程とを有する回路変換方法であって、論理の反
転関係を表す論理反転規則を記憶する論理反転知識記憶
部を有し、前記結論部適用過程に、素子を登録する際に
前記素子の入力あるいは出力信号が反転信号であるかど
うか判断する過程と、前記論理反転規則が適用可能かど
うかを判断する過程と、適用可能と判断された場合に前
記論理反転規則により前記回路を変更して前記反転信号
を抽出する過程と、適用可能と判断されなかった場合に
前記回路にインバータ(つまり、反転論理生成素子)を
追加して前記反転信号を生成する過程とを備えたことを
特徴とする回路変換方法。 (9)論理反転規則を記憶する論理反転知識記憶部を有
し、所望の信号に対して、作業用記憶部内の回路に前記
論理反転規則が適用可能かどうか判断する第1の過程と
、前記第1の過程で適用可能と判断された場合、前記適
用可能な論理反転規則を用いて前記回路を変更する第2
の過程と、前記第1の過程で適用可能と判断されなかっ
た場合、前記回路にインバータを追加する第3の過程と
を含む処理により、前記所望の信号の論理反転信号を抽
出または生成することを特徴とする反転論理生成方法。 (10)第1の素子集合に属する素子から構成される回
路を、論理的に等価で、かつ第2の集合に属する素子の
みから構成される回路に変換する回路変換方法であって
、回路変換知識を記憶する変換知識記憶手段と、論理的
に等価な関係を表す等価論理規則を記憶する等価論理知
識記憶手段とを有し、前記変換知識気憶手段に、前提部
と帰結部とで表現された変換ルールを記憶させ、前記変
換ルールを適用し、回路変換する過程が、前記等価論理
規則を用いて、その変換ルールの前提部の回路に論理的
に等価な回路を認識する過程、または前記等価論理規則
を用いて、その変換ルールの帰結部の回路に論理的に等
価な回路を生成する過程を少なくとも一方を含むことを
特徴とする回路変換方法。 (11)請求項4または8または10記載の回路変換方
法に基づいて回路変換を行う回路変換手段と、機能記述
を機能ブロックの接続情報へ変換する機能記述変換手段
とを有し、入力手段により入力された機能記述を前記機
能記述変換手段により、機能ブロックの接続情報へ変換
した後、前記回路変換手段により、その機能ブロックの
接続情報を回路または論理回路の接続情報へ変換するこ
とを特徴とする論理設計システム。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62241288A JPS6482263A (en) | 1987-09-25 | 1987-09-25 | Circuit conversion system |
JP62-241288 | 1987-09-25 | ||
JP1294188 | 1988-01-22 | ||
JP63-12941 | 1988-01-22 | ||
JP63-61082 | 1988-03-15 | ||
JP6108288 | 1988-03-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01315874A true JPH01315874A (ja) | 1989-12-20 |
JP2506991B2 JP2506991B2 (ja) | 1996-06-12 |
Family
ID=27280054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63237662A Expired - Lifetime JP2506991B2 (ja) | 1987-09-25 | 1988-09-22 | 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5043914A (ja) |
EP (1) | EP0309292B1 (ja) |
JP (1) | JP2506991B2 (ja) |
DE (1) | DE3855860T2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095441A (en) * | 1986-09-12 | 1992-03-10 | Digital Equipment Corporation | Rule inference and localization during synthesis of logic circuit designs |
JPH02259836A (ja) * | 1989-03-31 | 1990-10-22 | Hitachi Ltd | フアジイ推論方法 |
JPH03116237A (ja) * | 1989-09-29 | 1991-05-17 | Hitachi Ltd | 知識処理方法 |
JP3049561B2 (ja) * | 1990-05-21 | 2000-06-05 | 東洋通信機株式会社 | プロダクションシステムとプロダクションシステムの変換装置 |
GB2246883B (en) * | 1990-08-07 | 1995-01-11 | Matsushita Electric Ind Co Ltd | Inference processor |
JPH05274390A (ja) * | 1992-03-30 | 1993-10-22 | Matsushita Electric Ind Co Ltd | 回路素子割り付け方法及び遅延最適化方法並びに論理設計システム |
JP2840169B2 (ja) * | 1992-12-28 | 1998-12-24 | 松下電器産業株式会社 | 論理回路の自動設計方法およびその装置 |
US5903470A (en) * | 1993-02-17 | 1999-05-11 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for automatically designing logic circuit, and multiplier |
JP2972498B2 (ja) * | 1993-09-02 | 1999-11-08 | 松下電器産業株式会社 | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 |
US5648911A (en) * | 1993-12-21 | 1997-07-15 | Grodstein; Joel Joseph | Method of minimizing area for fanout chains in high-speed networks |
US5734798A (en) * | 1995-12-01 | 1998-03-31 | Hewlett-Packard Co. | Method and apparatus for extracting a gate modeled circuit from a fet modeled circuit |
US5808896A (en) * | 1996-06-10 | 1998-09-15 | Micron Technology, Inc. | Method and system for creating a netlist allowing current measurement through a sub-circuit |
US6701289B1 (en) * | 1997-01-27 | 2004-03-02 | Unisys Corporation | Method and apparatus for using a placement tool to manipulate cell substitution lists |
US6009249A (en) * | 1997-06-13 | 1999-12-28 | Micron Technology, Inc. | Automated load determination for partitioned simulation |
AU2002229155A1 (en) * | 2000-08-04 | 2002-02-18 | Automatic Parallel Designs Limited | A parallel counter and a logic circuit for performing multiplication |
US7136888B2 (en) | 2000-08-04 | 2006-11-14 | Arithmatica Limited | Parallel counter and a logic circuit for performing multiplication |
GB2365636B (en) | 2000-08-04 | 2005-01-05 | Automatic Parallel Designs Ltd | A parallel counter and a multiplication logic circuit |
US6883011B2 (en) | 2000-08-04 | 2005-04-19 | Arithmatica Limited | Parallel counter and a multiplication logic circuit |
GB2373602B (en) | 2001-03-22 | 2004-11-17 | Automatic Parallel Designs Ltd | A multiplication logic circuit |
US20030005786A1 (en) * | 2001-07-05 | 2003-01-09 | Microdexterity Systems, Inc. | Parallel mechanism |
US6971083B1 (en) * | 2002-11-13 | 2005-11-29 | Altera Corporation | Method for programming programmable logic device with blocks that perform multiplication and other arithmetic functions |
GB2396718B (en) | 2002-12-23 | 2005-07-13 | Arithmatica Ltd | A logic circuit and method for carry and sum generation and method of designing such a logic circuit |
US6909767B2 (en) | 2003-01-14 | 2005-06-21 | Arithmatica Limited | Logic circuit |
US7042246B2 (en) | 2003-02-11 | 2006-05-09 | Arithmatica Limited | Logic circuits for performing threshold functions |
US7308471B2 (en) | 2003-03-28 | 2007-12-11 | Arithmatica Limited | Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding |
US7170317B2 (en) | 2003-05-23 | 2007-01-30 | Arithmatica Limited | Sum bit generation circuit |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6274158A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | 回路変換方式 |
JPS62194578A (ja) * | 1985-10-21 | 1987-08-27 | Hitachi Ltd | 論理回路の製造方式 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4703435A (en) * | 1984-07-16 | 1987-10-27 | International Business Machines Corporation | Logic Synthesizer |
-
1988
- 1988-09-22 JP JP63237662A patent/JP2506991B2/ja not_active Expired - Lifetime
- 1988-09-26 EP EP88308899A patent/EP0309292B1/en not_active Expired - Lifetime
- 1988-09-26 US US07/249,555 patent/US5043914A/en not_active Expired - Fee Related
- 1988-09-26 DE DE3855860T patent/DE3855860T2/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6274158A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | 回路変換方式 |
JPS62194578A (ja) * | 1985-10-21 | 1987-08-27 | Hitachi Ltd | 論理回路の製造方式 |
Also Published As
Publication number | Publication date |
---|---|
EP0309292A3 (en) | 1991-05-02 |
EP0309292A2 (en) | 1989-03-29 |
JP2506991B2 (ja) | 1996-06-12 |
DE3855860T2 (de) | 1997-10-16 |
US5043914A (en) | 1991-08-27 |
EP0309292B1 (en) | 1997-04-09 |
DE3855860D1 (de) | 1997-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH01315874A (ja) | 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム | |
Kupferman et al. | Modular model checking | |
KR101805946B1 (ko) | 입-출력 예시를 사용한 텍스트 조작 프로그램 생성 | |
JPH05324713A (ja) | 自然語処理方法および自然語処理システム | |
CN110245349A (zh) | 一种句法依存分析方法、装置及一种电子设备 | |
JP2801931B2 (ja) | 論理設計処理装置および回路変換ルール翻訳装置ならびに回路変換ルール翻訳方法 | |
Butler et al. | Retrieving information from data flow diagrams | |
Hammer et al. | Towards a model theory of diagrams | |
Zhou et al. | Survey of intelligent program synthesis techniques | |
Ross | Running programs backwards: the logical inversion of imperative computation | |
Urban et al. | Inference of ranking functions for proving temporal properties by abstract interpretation | |
Flower et al. | Automated theorem proving with spider diagrams | |
JP2005115498A (ja) | ソフトウェア開発前処理方法、ソフトウェア制御方法、ソフトウェア開発方法並びにソフトウェア開発装置 | |
Lukose | Executable conceptual structures | |
Murthy et al. | Gamma programming paradigm and heterogeneous computing | |
Jarzabek et al. | Towards a precise description of reverse engineering methods and tools | |
Liu et al. | MVDLite: A Light-weight Representation of Model View Definition with Fast Validation for BIM Applications | |
Baillot | Type inference for light affine logic via constraints on words | |
Guerrero et al. | Designing lattices of truth degrees for fuzzy logic programming environments | |
Seow et al. | A temporal logic specification interface for automata-theoretic finitary control synthesis | |
OB et al. | METHOD AUTOMATED CLASS CONVERSION FOR COMPOSITION IMPLEMENTATION. | |
Rajlich | Theory of data structures by relational and graph grammars | |
JP2005234800A (ja) | 用例機械翻訳装置及び用例翻訳コンピュータプログラム、並びに用例検索装置及び用例検索コンピュータプログラム | |
Goncharov | Unifying Semantics for Programming and Verification | |
Lambers | Sufficient Criteria for Consistent Behavior Modeling with Refined Activity Diagrams: Long Version |