DE3855860T2 - Schaltungsveränderungssystem und -verfahren, Verfahren zur Erzeugung von invertierter Logik und Logikentwurfssystem - Google Patents

Schaltungsveränderungssystem und -verfahren, Verfahren zur Erzeugung von invertierter Logik und Logikentwurfssystem

Info

Publication number
DE3855860T2
DE3855860T2 DE3855860T DE3855860T DE3855860T2 DE 3855860 T2 DE3855860 T2 DE 3855860T2 DE 3855860 T DE3855860 T DE 3855860T DE 3855860 T DE3855860 T DE 3855860T DE 3855860 T2 DE3855860 T2 DE 3855860T2
Authority
DE
Germany
Prior art keywords
rule
circuit
candidate
elements
logical
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.)
Expired - Fee Related
Application number
DE3855860T
Other languages
English (en)
Other versions
DE3855860D1 (de
Inventor
Noriko Matsumoto
Masahiko Matsunaka
Tamotsu Nishiyama
Masahiko Ueda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from JP62241288A external-priority patent/JPS6482263A/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE3855860D1 publication Critical patent/DE3855860D1/de
Publication of DE3855860T2 publication Critical patent/DE3855860T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE
    • Y10S706/921Layout, 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)

Description

    Hintergrund der Erfindung
  • Diese Erfindung bezieht sich auf eine automatische Transformation eines logischen Schaltkreises und insbesondere auf ein Schaltkreistransformationsverfahren oder ein logisches Designsystem, das dazu geeignet ist, optimal eine Funktionsbeschreibung oder einen logischen Schaltkreis, äquivalent logisch in einen Schaltkreis für eine spezifische Technologie zu transformieren.
  • Ein herkömmliches, automatisches Schaltkreistransformationssystem ist ein Verfahren zum Erfassen eines Bereichs, der mit einem vordefinierten Eingabemuster von einem Schaltkreis vor einer Transformation übereinstimmt, und Ersetzen direkt durch ein entsprechendes Ausgangsmuster gemäß dem Zustand, wie beispielsweise die Ausgangsverzweigungszahl des Ausgangsanschlusses (zum Beispiel erwähnt in Collected Papers der 30th National Convention of Information Processing Society of Japan, Seiten 1923-1926,1985), und in ein System unter Verwendung einer Kenntnisgrundlage (das bedeutet eine Regelgrundlage), des Regelbeschreibungssystems der Beschreibung des vorherigen Zustands zum Beginnen mit der Regel in dem Zustandsteil der Regel, und des Beschreibens des Betriebs (das bedeutet die Wirkung) in Bezug auf den Schaltkreis, wenn diese Regel in dem Rückschlußteil gestartet wird, das umfangreich eingesetzt wird. Ein Gerät dieser Art ist zum Beispiel in dem Japanischen, offengelegten Patent Nr. 59-168545 beschrieben.
  • In diesem herkömmlichen Beispiel allerdings werden keine Betrachtungen in Bezug auf die Vereinfachung der Schaltkreistransformationsregel, der Effektivität der Transformationsregelerstellung, deren Vereinfachung und der Effektivität der Schaltkreistransformationsverarbeitung angegeben, und die nachfolgenden Probleme sind unter anderem vorhanden.
  • (1) Es ist nötig, viele Transformationsregeln aufzustellen, die sich nur in einem Teil unterscheiden, wie beispielsweise dem Zustandsteil und dem Rückschlußteil der Transformationsregel.
  • (2) Unterschiedlich zu der Transformationsregel, die im Besitz des Designers ist, ist es notwendig, in einer nicht natürlichen Form zu beschreiben, wie der Schaltkreis zu ändern ist, was in Bezug auf den Folgerungsmechanismus bekannt ist, wenn der Rückschlußteil der Regel beschrieben wird.
  • (3) Um eine fortschrittliche Transformation von einem umfassenden Gesichtspunkt aus gesehen, die von einem erfahrenen Designer vorgenommen wird, zu realisieren, ist die Beschreibungsmenge pro Regel enorm und die Zahl der Regeln ist gewältig, was tatsächlich schwierig zu realisieren ist.
  • (4) Von dem Gesichtspunkt einer Transformationsverarbeitungseffektivität aus gesehen sind dabei viele Transformationsregeln ähnlich in dem Zustandsteil vorhanden, wodurch die Schlußfolgerungseffektivität sehr schlecht ist und eine verlängerte Verarbeitungszeit für die Transformation benötigt wird.
  • (5) Wenn eine Transformationsregel in mehrere Regeln unterteilt und beschrieben wird, wird eine verschwenderische Hinzufügung von Zwischendaten zu dem Beschreibungsteil zur Verarbeitung (Arbeitsspeicher) hinzugefügt, wodurch sich ein Aufsuchen und ein Löschen erhöhen und die Effektivität einer Schlußfolgerungsverarbeitung extrem schlecht ist.
  • Die EP-A-0217291 offenbart ein Beispiel einer Einrichtung zum Transformieren eines Original-Schaltkreises, und zwar über zwei Zwischenschaltkreisstufen, in einen erwünschten Schaltkreis unter Verwendung von drei Transformationsregelgrund lagen. Dies kann zum Beispiel zum Transformieren eines CMOS-Schaltkreises in einen IIL- Schaltkreis verwendet werden. In dieser Offenbarung weist die erste Transformationsstufe, die den Original-Schaltkreis in einen ersten Zwischenschaltkreis transformiert, Teile auf, die leicht in das angestrebte Schaltkreissystem konvertiert werden können. In der zweiten Transformation wird der erste Zwischenschaltkreis in einen zweiten Schaltkreis unter Verwendung von Basistransformationen für die Schaltkreisveränderung, die ausgeführt werden soll, transformiert. In der dritten Transformation wird der zweite Zwischenschaltkreis für eine derartige Betrachtung, wie beispielsweise eine Ausgangsverzweigung und um redundante Schaltkreise zu entfernen, optimiert.
  • Die vorliegende Erfindung schafft ein Verfahren zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente aufgebaut ist, in einen logisch äquivalenten, zweiten Schaltkreis, der durch einen zweiten Satz Elemente gebildet ist, das aufweist
  • Auswahl einer Kandidatenregel von einem Kenntnisgrundspeicher, der Transformationsregeln speichert, die allgemeine Regeln und lokale Regeln aufweisen, wobei jede Regel durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird; Erweitern des Zustandsteils der Kandidatenregel durch Ersetzen eines Bereichs des Zustandsteils, der den Zustandsteil einer lokalen Regel anpaßt, durch den Rückschlußteil der lokalen Regel;
  • Anpassen des erweiterten Zustandsteils der Kandidatenregel an Schaltkreisdaten, die in einem Arbeitsspeicher gespeichert sind;
  • Entscheiden der Anwendbarkeit der Kandidatenregel;
  • Entfernen der Elemente des Zustandsteils der Kandidatenregel von den Schaltkreisdaten in dem Arbeitsspeicher;
  • Erweitern des Rückschlußteils der Kandidatenregel durch Ersetzen eines Bereichs des Rückschlußteils, das den Zustandsteil einer lokalen Regel anpaßt, durch den Rückschlußteil der lokalen Regel; und
  • Anwenden der Kandidatenregel, in der der Zustandsteil und der Rückschlußteil erweitert worden sind, an die Schaltkreisdaten in dem Arbeitsspeicher, nachdem die Anwendbarkeit der Kandidatenregel bestätigt ist.
  • Die vorliegende Erfindung schafft weiterhin ein logisches Designsystem zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente gebildet ist, in einen logisch äquivalenten, zweiten Schaltkreis, der durch einen zweiten Satz Elemente gebildet ist, das aufweist
  • eine Kenntnisgrundspeichereinrichtung zum Speichern von Schaltkreistransformationsregeln, die allgemeine Regeln und lokale Regeln aufweisen, wobei jede der Transformationsregeln durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
  • eine Eingabeeinrichtung zum Eingeben einer funktionalen Beschreibung und zum Überführen der funktionalen Beschreibung in Schaltkreisdaten;
  • eine Arbeitsspeichereinrichtung zum Speichern der Schaltkreisdaten;
  • eine Ausgabeeinrichtung zum Liefern der Schaltkreisdaten von dem Arbeitsspeicher;
  • eine Schlußfolgerungseinrichtung zum Rückschließen auf den zweiten Satz Elemente auf der Basis der Transformationsregeln;
  • eine Programmausführeinrichtung zum Speichern und Ausführen von Programmen, um die Betriebsweise des Systems zu steuern, die Entscheidungen, Operationen und Funktionen gemäß den Transformationsregeln umfassen, und
  • wobei die Schlußfolgerungseinrichtung aufweist:
  • eine Regelauswahleinrichtung und eine lokale Regelauswahleinrichtung zum Auswählen einer Kandidatenregel aus den Transformationsregeln;
  • eine Regelhalteeinrichtung zum Halten der Kandidatenregel;
  • eine Regelersetzungseinrichtung zum Erweitern des Zustandsteils und des Rückschlußteils der Kandidatenregel durch Ersetzen eines Bereichs des jeweiligen Teils, der den Zustandsteil einer lokalen Regel anpaßt, durch den Rückschlußteil der lokalen Regel;
  • eine Elementsucheinrichtung zum Suchen nach Elementen in den Schaltkreisdaten, die in dem Arbeitsspeicher gespeichert sind;
  • eine Regelanpassungseinrichtung zum Vergleichen des erweiterten Zustandsteils der Kandidatenregel mit den Schaltkreisdaten in dem Arbeitsspeicher, und zwar unter Verwendung der Elementsucheinrichtung und der Programmausführeinrichtung, und zum Prüfen der Anwendbarkeit der Kandidatenregel;
  • eine Elementspeichereinrichtung zum Extrahieren von Elementen, die gemäß den Elementen, die in der Kandidatenregel beschrieben sind, entfernt werden sollen, und zum Speichern der extrahierten Elemente;
  • eine Elemententfernungseinrichtung zum sequentiellen Entfernen der Elemente, die extrahiert sind und in der Elementspeichereinrichtung gespeichert sind, von den Schaltkreisdaten, die in dem Arbeitsspeicher gespeichert sind, nachdem die Anwendbarkeit der Kandidatenregel durch die Regelanpassungseinrichtung eingerichtet ist;
  • eine Regelanwendungseinrichtung zum Aktualisieren der Daten in dem Arbeitsspeicher durch zusätzliches Registrieren der Elemente, die in dem erweiterten Rückschlußteil durch die Programmausführeinrichtung beschrieben sind, nach Bestätigung der Anwendbarkeit; und
  • eine Elementhinzufügungseinrichtung zum zusätzlichen Registrieren des Elements, das aus Elementen extrahiert ist, die in dem erweiterten Rückschlußteil der Kandidatenregel beschrieben sind, in die Daten, die in dem Arbeitsspeicher gespeichert sind; und eine Regelanforderungseinrichtung zum Bewirken, daß die Lokal-Regel-Auswahleinrichtung eine neue Transformationsregel auswählt, die angewandt werden soll, und um sie zu der Regelhalteeinrichtung zu übertragen, wie dies gemäß dem Rückschlußteil der Kandidatenregel notwendig ist, die zuletzt durch die Regelanwendungseinrichtung angewandt war.
  • Die vorliegende Erfindung schafft darüberhinaus ein Verfahren zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente aufgebaut ist, in einen logisch äquivalenten Schaltkreis, der durch einen zweiten Satz Elemente aufgebaut ist, das aufweist:
  • Auswählen einer Kandidatenregel von einem Kenntnisgrundspeicher, der Transformationsregeln speichert, wobei jede Regel durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
  • Anpassen einer Kandidatenregel an Schaltkreisdaten, die in dem Arbeitsspeicher gespeichert sind;
  • Prüfen der Anwendbarkeit der Kandidatenregel;
  • Anwenden der Kandidatenregel bei den Schaltkreisdaten zum Transformieren des Schaltkreises nach Bestätigung der Anwendbarkeit der Kandidatenregeln, wobei dieser Schritt eines Anwendens der Kandidatenregel die Schritte aufweist
  • Entscheiden, ob jedes Signal der Ausgangsleingangssignale eines Elements eine logische Negation eines spezifischen Signals ausdrückt und Extrahieren des Signals, wenn das Element zusätzlich durch Transformieren in die Schaltkreisdaten, die in dem Arbeitsspeicher gespeichert sind, registriert werden sollen;
  • Aktualisieren der Schaltkreisdaten und Extrahieren des Signals von den Schaltkreisdaten gemäß einer logischen Negationsregel, die von einem Logik-Negations-Kenntnisgrundspeicher ausgewählt ist, Speichern der logischen Negationsregeln, die einen logischen Schaltkreis auf einen anderen logischen Schaltkreis beziehen, mit mindestens einer Vielzahl negierter Ausgangs/Eingangssignale, falls die logische Negation dahingehend beurteilt ist, daß sie anwendbar ist, wobei dieses Signal äquivalent zu der logischen Negation des spezifischen Signals ist; und
  • Erzeugen des Signals durch Hinzufügen eines Inverters, der das spezifische Signal akzeptiert, zu den Schaltkreisdaten, falls die logische Negationsregel dahingehend beurteilt wird, daß sie nicht anwendbar ist.
  • Diese Erfindung schafft auch ein logisches Designsystem zum Transformieren eines ersten Schaltkreises, der aus einem ersten Satz Elemente aufgebaut ist, in einen logisch äquivalenten zweiten Schaltkreis, der aus einem zweiten Satz Elemente aufgebaut ist, das aufweist
  • eine Kenntnisgrundspeichereinrichtung zum Speichern von Schaltkreistransformationsregeln, wobei jede der Transformationsregeln durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
  • eine Eingabeeinrichtung zum Eingeben einer funktionalen Beschreibung und zum Überführen der funktionalen Beschreibung in Schaltkreisdaten;
  • eine Arbeitsspeichereinrichtung zum Speichern der Schaltkreisdaten;
  • eine Ausgabeeinrichtung zum Liefern von Schaltkreisdaten von dem Arbeitsspeicher;
  • eine Schlußfolgerungseinrichtung zum Rückschließen auf den zweiten Satz Elemente auf der Basis der Transformationsregeln;
  • eine Programmausführeinrichtung zum Speichern und Ausführen von Programmen von Verarbeitungsvorgängen, die Enscheidungen, Operationen und Funktionen gemäß den Transformationsregeln umfassen, und
  • einen Logik-Negations-Kenntnisgrundspeicher zum Speichern logischer Negationsregeln, die einen logischen Schaltkreis zu einem anderen logischen Schaltkreis mit mindestens einer Mehrzahl negierter Eingangs/Ausgangssignale in Bezug setzen, und wobei die Schlußfolgerungseinrichtung aufweist
  • eine Regelauswahleinrichtung zum Auswählen einer Kandidatenregel aus den Transformationsregeln;
  • eine Regelhalteeinrichtung zum Halten der Kandidatenregel;
  • eine Elementsucheinrichtung zum Suchen nach Elementen in den Schaltkreisdaten, die in dem Arbeitsspeicher gespeichert sind;
  • eine Regelanpassungseinrichtung zum Vergleichen des Zustandsteils der Kandidatenregel mit den Schaltkreisdaten in dem Arbeitsspeicher, und zwar unter Verwendung der Elementsucheinrichtung und der Programmausführeinrichtung, und zum Prüfen der Anwendbarkeit der Kandidatenregel;
  • eine Elementspeichereinrichtung zum Extrahieren von Elementen, die gemäß den Elementen entfernt werden sollen, die in der Kandidatenregel beschrieben sind, und zum Speichern der extrahierten Elemente;
  • eine Elemententfernungseinrichtung zum sequentiellen Entfernen der Elemente, die extrahiert und in der Elementspeichereinrichtung gespeichert sind, von den Schaltkreisdaten, die in dem Arbeitsspeicher gespeichert sind, nachdem die Anwendbarkeit der Kandidatenregel durch die Regelanpassungseinrichtung eingerichtet ist;
  • eine Regelanwendungseinrichtung zum Aktualisieren der Daten in dem Arbeitsspeicher durch zusätzliches Registrieren von Elementen, die in dem Rückschlußteil beschrieben sind, durch die Elementhinzufügungseinrichtung und die Programmausführungseinrichtung, nach Bestätigung der Anwendbarkeit; und
  • eine Elementhinzufügungseinrichtung zum zusätzlichen Registrieren des Elements, das von Elementen extrahiert ist, die in dem Rückschlußteil der Kandidatenregel beschrieben sind, in die Daten, die in dem Arbeitsspeicher gespeichert sind; und
  • eine ein logisches Negationssignal erzeugende Einrichtung zum Erzeugen des logischen Negationssignals eines spezifischen Signals aus den Daten, die in dem Arbeitsspeicher gespeichert werden sollen, unter Nutzung der logischen Negationsregel.
  • Die vorliegende Erfindung schafft weiterhin ein Verfahren zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente gebildet ist, in einen logisch äquivalenten zweiten Schaltkreis, der aus einem zweiten Satz Elemente gebildet ist, das aufweist
  • Auswählen einer Kandidatenregel von einem Kenntnisgrundspeicher, der Transformationsregeln speichert, wobei jede Regel durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
  • Anpassen der Kandidatenregel an Schaltkreisdaten, die in dem Arbeitsspeicher gespeichert sind;
  • Entscheiden der Anwendbarkeit der Kandidatenregel; und
  • Anwenden der Kandidatenregeln auf die Schaltkreisdaten zum Transformieren des Schaltkreises, nach Bestätigung der Anwendbarkeit der Kandidatenregel;
  • Erkennen eines Unterschaltkreises der Schaltkreisdaten als ein logisches Schaltkreisäquivalent zu einem Schaltkreis, der in dem Zustandsteil in der Kandidatenregel beschrieben ist, wenn die Anwendbarkeit nicht bestätigt ist, unter Verwendung einer logischen Äquivalenzregel, die in einem Logik-Äquivalenz-Kenntnisgrundspeicher gespeichert ist.
  • Die vorliegende Erfindung schafft zusätzlich ein logisches Designsystem zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente gebildet ist, in einen logisch äquivalenten zweiten Schaltkreis, der durch einen zweiten Satz Elemente gebildet ist, das aufweist
  • eine Kenntnisgrundspeichereinrichtung (1) zum Speichern von Schaltkreistransformationsregeln (13), wobei jede der Transformationsregeln durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
  • eine Eingabeeinrichtung (2) zum Eingeben einer funktionalen Beschreibung und zum Überführen der funktionalen Beschreibung in Schaltkreisdaten,
  • eine Arbeitsspeichereinrichtung (3) zum Speichern der Schaltkreisdaten; eine Ausgabeeinrichtung (4) zum Liefern von Schaltkreisdaten von dem Arbeitsspeicher (3);
  • eine Schlußfolgerungseinrichtung (5) zum Rückschließen auf den zweiten Satz der Elemente auf der Basis der Transformationsregeln;
  • eine Programmausführeinrichtung (6) zum Speichern und Ausführen von Programmen von Verarbeitungsvorgängen, die Entscheidungen, Operationen und Funktionen umfassen, gemäß den Transformationsregeln (13),
  • einen Logik-Äquivalenz-Kenntnisgrundspeicher (8) zum Speichern logischer Aquivalenzregeln (40), die ausdrücken, daß ein Schaltkreis logisch zu einem anderen Schaltkreis äquivalent ist; und
  • wobei die Schlußfolgerungseinrichtung (5) aufweist
  • eine Regelauswahleinrichtung (14) zum Auswählen einer Kandidatenregel, wobei die Kandidatenregel eine der Transformationsregeln (13) ist;
  • eine Regelhalteeinrichtung (22) zum Halten der Kandidatenregel;
  • eine Elementsucheinrichtung (25) zum Suchen nach einem Element in den Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind;
  • eine Schaltkreiserkennungseinrichtung (8, 25) zum Erkennen eines Unterschaltkreises aus Daten als ein logisches Schaltkreisäquivalent zu einem Bereich eines Zustandsteils der Kandidatenregel und einer solchen der Äquivalenzregel (40), die in dem Äquivalenz- Kenntnisgrundspeicher (8) gespeichert ist;
  • eine Regelanpassungseinrichtung (24) zum Vergleichen des Zustandsteils der Kandidaten regel mit den Schaltkreisdaten in dem Arbeitsspeicher (3), unter Verwendung der Elementsucheinrichtung (25), der Programmausführeinrichtung (6) und der Schaltkreiserkennungseinrichtung, und zum Prüfen der Anwendbarkeit der Kandidatenregel.
  • Es ist demzufolge ein primärer Vorteil dieser Erfindung, daß ein Schaltkreistransformationsverfahren, ein Schaltkreistransformationssystem und ein logisches Designsystem, die geschaffen werden, dazu geeignet sind, die Schaltkreistransformationskenntnis, die im Besitz des Designers ist, leicht in einer einfachen Form einer Transformationsregel aufzunehmen und eine Schaltkreistransformation so professionell wie von einem erfahrenen Designer zu realisieren.
  • Während die neuartigen Merkmale der Erfindung in den beigefügten Ansprüchen angegeben sind, wird die Erfindung, sowohl in Bezug auf die Organisation als auch den Inhalt, besser, zusammen mit den Aufgaben und Merkmalen davon, aus der nachfolgenden, detaillierten Beschreibung, die in Verbindung mit den Zeichnungen vorgenommen wird, verständlich und ersichtlich werden.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 zeigt ein Blockdiagramm, das eine Basisstruktur einer ersten Ausführungsform dieser Erfindung darstellt;
  • Fig. 2 zeigt eine konzeptmäßige Zeichnung einer hierarchischen Strukturierung einer Regel;
  • Fig. 3 zeigt eine erläuternde Zeichnung, die ein Beispiel einer Transformationsregel darstellt;
  • Fig. 4 zeigt eine erläuternde Zeichnung, die ein Beispiel eines Schaltkreisausdrucks darstellt;
  • Fig. 5 zeigt ein Flußdiagramm, das ein Beispiel einer Schaltkreistransformationsverarbeitung in der Schlußfolgerungseinrichtung der Ausführungsform darstellt;
  • Fig. 6 zeigt ein Flußdiagramm, das ein Beispiel einer Anpassungsverarbeitung eines Regelzustandsteils darstellt;
  • Fig. 7 zeigt ein Flußdiagramm, das ein Beispiel einer Anwendungsverarbeitung eines Regelrückschlußteils darstellt;
  • Fig. 8 zeigt eine erläuternde Zeichnung, die ein Beschreibungsbeispiel einer Transformationsregel darstellt;
  • Fig. 9 zeigt eine erläuternde Zeichnung, die ein Beschreibungsbeispiel einer Erweiterungsregel darstellt;
  • Fig. 10 zeigt ein Blockdiagramm, das eine Basisstruktur einer zweiten Ausführungsform dieser Erfindung darstellt;
  • Fig. 11 zeigt eine erläuternde Zeichnung, die ein Beispiel einer logischen Negationsregel darstellt;
  • Fig. 12 zeigt ein Flußdiagramm, das ein Beispiel einer Transformationsverarbeitung in der Schlußfolgerungseinrichtung der Ausführungsform darstellt;
  • Fig. 13 zeigt ein Flußdiagramm, das ein Beispiel einer Additionsverarbeitung in den Arbeitsspeicher hinein darstellt;
  • Fig. 14 zeigt ein Flußdiagramm, das ein Beispiel einer logischen Negationssignalerzeugungsverarbeitung darstellt;
  • Fig. 15 zeigt erläuterndes Diagramm, das ein Beschreibungsbeispiel einer Transformationsregel darstellt;
  • Fig. 16 zeigt eine erläuternde Zeichnung, die ein Beschreibungsbeispiel einer logischen Negationsregel darstellt;
  • Fig. 17 zeigt eine erläuternde Zeichnung, die ein Beschreibungsbeispiel einer Transformationsregel, die ein logisches Negationssignal erwirkt, darstellt;
  • Fig. 18 zeigt ein Blockdiagramm, das eine Basisstruktur einer dritten Ausführungsform dieser Erfindung darstellt;
  • Fig. 19 zeigt ein Schaltkreisdiagramm, das einen Schaltkreis äquivalent zu zwei Eingangs-UND-Gliedern darstellt;
  • Fig. 20 zeigt eine erläuternde Zeichnung, die ein Beispiel einer Transformationsregel darstellt;
  • Fig. 21 zeigt eine erläuternde Zeichnung, die ein Beispiel einer logischen Äquivalenzregel darstellt;
  • Fig. 22 zeigt ein Teilschaltkreisdiagramm als ein Beispiel eines Transformationsobjektschaltkreises;
  • Fig. 23 zeigt eine erläuternde Zeichnung, die eine Transformationsregel logisch äquivalent zu der Transformationsregel in Fig. 20 darstellt;
  • Fig. 24 zeigt eine erläuternde Zeichnung einer Transformationsregel für eine Transformation in einen UND-Schaltkreis hinein; und
  • Fig. 25 zeigt ein Schaltkreisdiagramm nach einer Transformation der Fig. 22.
  • Detaillierte Beschreibung der Erfindung
  • Einige der Ausführungsformen dieser Erfindung werden nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Erste Ausführungsform
  • Unter Bezugnahme nun auf die Zeichnungen wird eine erste Ausführungsform dieser Erfindung nachfolgend beschrieben.
  • Fig. 1 zeigt ein Blockdiagramm, das eine Basisstruktur der ersten Ausführungsform dieser Erfindung darstellt, bei der das Bezugszeichen 1 einen Kenntnisgrundspeicher bezeichnet, 2 eine Eingabeeinrichtung ist, 3 ein Arbeitsspeicher ist, 4 eine Ausgabeeinrichtung ist, 5 eine Schlußfolgerungseinrichtung (Interpretiereinrichtung) ist und 6 eine Programmausführeinrichtung zum Speichern des Programms und zum Ausführen von diesem, wie dies erforderlich ist, ist. Die Schlußfolgerungseinrichtung 5 ist aus einer Allgemeinregel-Auswahleinrichtung 21, einer Regelhalteeinrichtung 22, einer Regelzurückplazierungseinrichtung 23, einer Regelanpassungseinrichtung 24, einer Elementsucheinrichtung 25, einer Elementspeichereinrichtung 26, einer Elemententfernungseinrichtung 27, einer Regelanwendungseinrichtung 28, einer Elementadditionseinrichtung 29, einer Regelerforderniseinrichtung 30 und einer Lokalregelauswahleinrichtung 31 aufgebaut.
  • Jedes Teil wird nachfolgend im Detail erläutert.
  • Der Kenntnisgrundspeicher 1 speichert Transformationsregeln einer Vielzahl von Arten, wie beispielsweise einer allgemeinen Regel 10 und lokaler Regeln 11,12, usw.. Zum Beispiel ist die allgemeine Regel 10 eine Hauptregel, oder eine Transformationsregel, wie dies in den Fig. 3(a) dargestellt ist. Die lokale Regel 11 ist eine untergeordnete Regel, oder eine Transformationsregel, wie dies in Fig. 3(b) dargestellt ist. Die untergeordnete Regel kann eine Hauptregel einer anderen untergeordneten Regel werden. Die lokale Regel 12 ist eine Erweiterungsregel, wie beispielsweise eine Regel zum Erweitern eines Gatters, das Vielfach-Bit-Breiten in jedem Bit besitzt, wie dies in Fig. 3 (c) dargestellt ist.
  • Fig. 3 stellt ein Beispiel einer Regel vom IF-THEN-Typ zum Transformieren eines abstrakten, logischen Schaltkreises, der nicht von einer Technologie in einen logisch äquivalenten Schaltkreis abhängig ist, der aus standardmäßigen Zellen aus Transistoren vom CMOS-Typ aufgebaut ist, dar. Die Hauptregel (a) in Fig. 3 drückt eine allgemeine Regel aus, die bedeutet, "wenn ein anderes NOR-Gatter mit dem Ausgang eines bestimmten NOR-Gatters verbunden ist, dessen Verzweigungsausgang 1 ist, wird eine ein AND-NOR-Komplex-Gatter erstellende Regel angewandt". Die untergeordnete Regel (b) in Fig. 3 ist eine ein AND-NOR-Komplex-Gatter erstellende Regel und sie ist eine lokale Regel, was bedeutet, "falls zwei Eingangs-NOR-Glieder und drei Eingangs-NOR-Glieder mit zwei Eingangs-NOR-Gliedern jeweils verbunden sind, werden sie in Standard-Zellen antd und Inverter werden mit jedem Eingang verbunden". Allerdings wird der Inverter, der mit jedem Eingang verbunden ist, grob vereinfacht in der logischen Invertierung ausgednickt, die Bit-Breiten von 2 Bits und 3 Bits besitzt. Die Erweiterungsregel (c) in Fig. 3 dient dazu, den einfachen Ausdruck "um das logische Inversions-Makro zu transformieren, das eine Bit-Breite vielfacher Bits besitzt, in Inverter jedes Bits" in einen realen Ausdruck zu erweitern. In dieser Ausführungsform sind darüberhinaus nur zwei Typen lokaler Regeln 11,12 zum Zwecke der Vereinfachung dargestellt, allerdings ist es auch möglich, sie durch Klassifizierung in mehrfache Typen lokaler Regeln zu verwenden.
  • Die Eingabeeinrichtung 2 tritt in die Daten, die den Schaltkreis ausdrücken, vor einer Transformation in den Arbeitsspeicher 3 ein.
  • Der Arbeitsspeicher 3 speichert die Daten, die den Schaltkreis ausdrücken, vor einer Transformation, den Schaltkreis in der Mitte einer Transformation und den Schaltkreis nach einer Transformation. Ein Beispiel von Daten, die den Schaltkreis ausdrücken, der in dem Arbeitsspeicher 3 gespeichert ist, ist in Fig. 4 dargestellt. Fig. 4 stellt Daten zum Ausdrücken eines Schaltkreises durch die Eingangs-Ausgangs-Beziehung unter Elementen dar, die auf Elementen zentriert sind. Fig. 4 (a) zeigt ein Beispiel von Daten, die den Schaltkreis der Fig. 4 (b) ausdrücken. Die Daten sind grundsätzlich aus einem Identitätsnamen 41 zum Identifizieren individueller Elemente, einer Vielzahl von Attribut- Coden 42 und mehreren Attribut-Werten 43 zusammengesetzt. In dem Beispiel in Fig. 4 (a) wird das Paar eines Attribut-Codes 42 und eines Attribut-Werts 43 ausgedrückt durch: "::" und jedes Paar wird durch ";" geteilt. Der Identitätsname 41 wird von anderen Daten durch ":::" unterschieden. Attribut-Code 42 umfassen "eine Art von" ("a-kind-of") zum Ausdrücken des Elements, "Eingabe" ("input") zum Ausdrücken des Eingabesignalnamens, "Ausgabe" ("output") zum Ausdrücken des Ausgabesignalnamens, und "Ausgangsverzweigung" ("far-out") zum Ausdrücken der Ausgangsverzweigung. Dies ist ein Beispiel von Daten des Arbeitsspeichers 3, und, wie die Daten in dem Arbeitsspeicher 3, können Daten, die den Schaltkreis ausdrücken, durch Beachtung eines Signals (das bedeutet net) verwendet werden, anstelle der Daten, die ihn ausdrücken, durch Beachtung eines Elements, wie in diesem Beispiel.
  • Der Ausgang 4 nimmt die Daten, die den Schaltkreis ausdrücken, nach Transformationen von dem Arbeitsspeicher 3 heraus.
  • Die Programmausführungseinrichtung 6 speichert die Ausführungsformen verschiedener Programme (oder Lademodule), die mit einer Programmiersprache Prolog, Lisp, C., usw., codiert sind und führt diese Programme durch den Befehl von der Schlußfolgerungseinrichtung 5 aus (insbesondere von der Regelanpassungseinrichtung 24 und der Regelanwendungseinrichtung 28). Diese Programme können eine Entscheidung über einen Zustand in dem Zustandsteil, verschiedene Berechnungen, Verfahren in dem Rückschlußteil, umfassen.
  • Die Betriebsfunktion jeder Einrichtung in der Schlußfolgerungseinrichtung 5 wird zusammen mit den Verfahren der Verarbeitung erläutert.
  • Fig. 5 zeigt ein Flußdiagramm das ein Beispiel einer Schaltkreistransformationsverarbeitungs-Darstellung in der Schlußfolgerungseinrichtung 5 darstellt.
  • Ein Verarbeitungsschritt 51 ist der Teil zum Auswählen der Transformationsregeln sequentiell von der höchsten Priorität, unter Berücksichtigung einer Aufhebung eines Wettbewerbs von Transformationsregeln, die durch die Allgemeinregel-Auswahleinrichtung 21 oder die Lokalregelauswahleinrichtung 31 in Fig. 1 verarbeitet wird. Die Prioritätsreihenfolge der Transformationsregeln kann entweder zuvor für jede Regel oder durch eine bestimmte Evaluationsfunktion (Index) oder dergleichen bestimmt werden.
  • Ein Verarbeitungsschritt 52 ist derjenige, den Bereich, der sich mit dem Zustandsteil der lokalen Regel 12 durch ihren Rückschlußteil (Expansionserweiterung des Regelzustandsteils) anpaßt, zu ersetzen, und zwar innerhalb des Zustandsteils der Transformationsregel, die durch den vorherigen Schritt 51, durch die Regelersetzungseinrichtung 23, wie dies in Fig. 1 dargestellt ist, ausgewählt ist. Typen dieser Expansionsverarbeitung umfassen die Expansion jedes Bits in dem Makro, das eine Bit-Breite besitzt, und ein Erweitern bzw. Expandieren in eine Realisierung eines vereinfachten Ausdrucks.
  • Ein Verarbeitungsschritt 53 ist derjenige, jeden Term des Zustandsteils der Transformationsregel, die die Ausgabe des Verarbeitungsschritts 52 mit den Daten in dem Verarbeitungsspeicher 3 in Fig. 1 mittels der Regelanpassungseinrichtung 24 (Details sind nachfolgend erwähnt) ist, anzupassen.
  • Ein Schritt 54 ist derjenige, zu entscheiden, ob der Zustandsteil der Regel eingerichtet wird oder nicht, und zwar durch die Anpassungsverarbeitung in dem Verarbeitungsschritt 53. Wenn die Entscheidung dieses Schritts vorgenommen ist, wird ein Schritt 55 ausgeführt, und wenn sie nicht eingerichtet ist, wird ein Schritt 58 ausgeführt.
  • Ein Verarbeitungsschritt 55 ist derjenige, die Elemente, die in der Elementspeichereinrichtung 26 gespeichert sind, von den Daten in dem Arbeitsspeicher 3 sequentiell, und zwar durch die Elemententfernungseinrichtung 27 in Fig. 1, zu entfernen.
  • Ein Verarbeitungsschritt 56 ist derjenige, die Bereichsanpassung mit dem Zustandsteil der lokalen Regel 12 mit dem Schlußfolgerungsteil seiner lokalen Regel (Expansionsverarbeitung des Regelschlußfolgerungsteils) zu ersetzen, und zwar innerhalb des Schlußfolgerungsteils der anwendbaren Transformationsregel, durch die Regelzurückplazierungseinnchtung 23, dargestellt in Fig. 1.
  • Ein Verarbeitungsschritt 57 ist derjenige, die Daten in dem Arbeitsspeicher 3 zu aktualisieren, Elemente zu addieren, oder die untergeordnete Regel zu starten, und zwar durch die Regelanwendungseinrichtung 28 in Fig. 1 (Details der Verarbeitung sind nachfolgend erwähnt).
  • Nach diesem Verarbeitungsschritt 57 kehrt die Betriebsweise zu dem Verarbeitungsschritt 53 zurück und dieselbe Transformationsregel wird zu den Daten in dem Arbeitsspeicher 3 angepaßt.
  • Ein Schritt 58 dient dazu, zu entscheiden, ob die Transformationsregel, die als nächstes auf die momentan ausgewählte Transformationsregel angewandt werden soll, in dem Kenntnisgrundspeicher 1 vorhanden ist oder nicht. Falls sie vorhanden ist, kehrt die Betriebsweise zu dem Verarbeitungsschritt 51 zurück und die nächste Transformationsregel wird ausgewählt. Falls Sie nicht vorhanden ist, wird die Transformationsverarbeitung beendet.
  • Fig. 6 zeigt ein Flußdiagramm, das ein Beispiel einer Anpassungsverarbeitung des Regelzustandsteils in dem Schritt 53 darstellt.
  • Ein Schritt 60 dient dazu, den Term zu spezifizieren, der in dem Zustandsteil der Transformationsregel als erster Term verarbeitet werden soll. Das bedeutet, Term Nummer L des Verarbeitungsterms ist Nr. 1.
  • Ein Schritt 61 dient dazu, zu entscheiden, ob der Term in der Verarbeitung, das bedeutet der L-te Term, ein Element ausdrückt oder nicht. Falls der L-te Term ein Element ausdrückt, wird ein Schritt 62 verarbeitet, und ansonsten wird Schritt 66 ausgeführt.
  • Ein Schritt 62 dient dazu, zu prüfen, ob das Element entsprechend diesem L-ten Term in dem Arbeitsspeicher 3 vorhanden ist oder nicht, und zwar unter Verwendung der Elementsucheinrichtung 25 in Fig. 1.
  • Ein Schritt 63 dient dazu, zu entscheiden, ob das entsprechende Element in dem vorherigen Schritt 62 vorhanden war oder nicht. Falls es vorhanden (eingerichtet) war, wird ein Schritt 64 verarbeitet, und falls es nicht vorhanden war, wird die Verarbeitung beendet, da dieser Zustand nicht eingerichtet ist.
  • Ein Schritt 64 ist derjenige, zu entscheiden, ob das Element, dessen Existenz im Schritt 62 bestätigt worden ist, gelöscht werden sollte oder nicht, wenn diese Transformationsregel angewendet wird (das bedeutet, nachdem der Regelzustand eingerichtet ist). Falls das Element gelöscht werden soll, wird ein Schritt 65 verarbeitet, und falls nicht gelöscht werden soll, wird ein Schritt 68 verarbeitet.
  • Ein Schritt 65 dient dazu, das Element, das in dem Schritt 64 entschieden ist, in die Elementspeichereinrichtung 26, die in Fig. 1 dargestellt ist, zu speichern. Allerdings wird nicht in der Elementspeichereinrichtung 26 in ihrem anfänglichen Zustand gespeichert.
  • Ein Schritt 66 dient dazu, verschiedene Verarbeitungen, wie beispielsweise eine Zustandsentscheidung, die durch den L-ten Term repräsentiert ist, durch einen Berfehl zu der Programmausführungseinrichtung 6 auszuführen.
  • Ein Schritt 67 dient dazu, zu entscheiden, ob die Verarbeitung, die in dem Schritt 66 ausgeführt ist, eingerichtet ist oder nicht. Falls sie eingerichtet ist, wird ein Schritt 68 verarbeitet, und falls sie nicht eingerichtet ist, ist die Verarbeitung vorüber, da der Zustand nicht eingerichtet ist. Darüberhinaus wird, falls die Verarbeitung, die in dem Schritt 67 ausgeführt ist, keine Entscheidung erfordert, sie immer dahingehend angenommen, daß sie eingerichtet ist.
  • Ein Schritt 68 dient dazu, zu entscheiden, ob der L-te Term der End-Term ist oder nicht. Falls er der End-Term ist, ist die Verarbeitung vorüber, da der Zustand eingerichtet ist, und falls er nicht der endgültige ist, wird 1 zu L im Schritt 69 hinzuaddiert, und die Verarbeitung nach dem Schritt 61 wird wiederholt in Bezug auf den nächsten Term in dem Regelzustandsteil ausgeführt.
  • Fig. 7 zeigt ein Flußdiagramm, das ein Beispiel einer Anwendungsverarbeitung 67 des Regelrückschlußteils darstellt.
  • Ein Schritt 70 dient dazu, den Term, der in dem Rückschlußteil der Transformationsregel als der erste Term verarbeitet werden soll, zu spezifizieren. Das bedeutet, daß der M-te Verarbeitungsterm Nr. 1 ist.
  • Ein Schritt 71 dient dazu, zu entscheiden, ob der Term in der Verarbeitung, das bedeutet der M-te Term, ein Element darstellt, den Start der untergeordneten Regel vornimmt, oder eine andere Verarbeitung vornimmt. Falls er ein Element darstellt, wird ein Schritt 73 verarbeitet, wenn er einen Start einer untergeordneten Regel darstellt, wird ein Schritt 73 verarbeitet, und falls er eine andere Verarbeitung darstellt, wird ein Schritt 74 verarbeitet.
  • Ein Schritt 72 dient dazu, das Element, das in dem vorangehenden Schritt 71 entschieden ist, zusätzlich zu den Daten in dem Arbeitsspeicher 3 durch die Elementadditionseinrichtung 29, die in Fig. 1 dargestellt ist, zu registrieren.
  • =Ein Schritt 73 dient dazu, die Informationen, die sich auf die untergeordnete Regel beziehen, die in dem Schritt 71 entschieden ist, zu der Lokalregelauswahleinrichtung 31 durch die Regelregistrierungseinrichtung 30 zu übertragen, und für die Verarbeitung, die in dem Flußdiagramm in Fig. 5 dargestellt ist, rekursiv auszuführen, und die untergeordnete Regel anzuwenden.
  • Darüberhinaus wird, wenn die Verarbeitung, die in dem Flußdiagramm in Fig. 5 dargestellt ist, rekursiv ausgeführt wird, die Regelauswahlverarbeitung 51 besonders durch die Lokalregelauswahleinrichtung verarbeitet.
  • Ein Schritt 74 dient dazu, die verschiedenen Verarbeitungen, die in dem Schritt 71 entschieden sind, durch Befehligen des Programmausführungsteils 6 auszuführen.
  • Ein Schritt 75 dient dazu, zu entscheiden, ob der M-te Term der End-Term des Regelrückschlußteils ist. Falls er der End-Term ist, wird die Verarbeitung beendet, und falls er nicht der abschließende ist, wird 1 zu M im Schritt 76 hinzuaddiert und die Verarbeitung nach dem Schritt 71 wird wiederholt auf dem nächsten Term des Regelrückschlußteils ausgeführt.
  • Dies ist die Verarbeitung der Schaltkreistransformationsverarbeitung in der ersten Ausführungsform dieser Erfindung. Daneben ist es, in dem Blockdiagramm in Fig. 1, auch möglich, die Expansionsverarbeitung 52 des Regelzustandsteils und die Expansionsverarbeitung 56 des Regelrückschlußteils geeignet in der Mitte der Verarbeitung der Anpassungsverarbeitung 53 des Regelrückschlußteils und der Anwendungsverarbeitung 57 des Regelrückschlußteils jeweils zu verarbeiten.
  • Die Verarbeitung, die in dem Flußdiagramm in Fig. 5 dargestellt ist, kann leicht durch eine niveaumäßig hohe Programmiersprache Prolog realisiert werden. Prolog wird zum Beispiel in Programming in Prolog von W. F. Clockshim und C. S. Mellish (Springer-Verlag, 1981) erläutert. Die Realisierung mit Prolog wird nachfolgend beschrieben.
  • Fig. 8 stellt Beschreibungsbeispiele der Transformationsregeln, die in Fig. 3 dargestellt sind, dar.
  • Das bedeutet, Fig. 8 (a) ist ein Beschreibungsbeispiel einer Hauptregel in Fig. 3 (a) und Fig. 8 (b) ist ein Beschreibungsbeispiel einer untergeordneten Regel in Fig. 3 (b). Hier wird die allgemeine Regel 10 durch "==> " und die lokale Regel 11 durch "@=> " ausgedrückt. In Fig. 8 (a) ist ein "Length (L, M)" ein eingeschlossenes Prädikat eines Prolog, was bedeutet, daß die Länge einer Liste L M ist, und "M=< N" bedeutet in ähnlicher Weise, daß M kleiner als N ist. Das Symbol "@" an der rechten Seite der Regel stellt die Anwendung einer untergeordneten Regel dar. Das Symbol "#" an der rechten Seite der Regel in Fig. 8 (b) bedeutet, daß die erweiternde Regel bei einem Term angewandt wird, der die "#" Markierung besitzt, und daß die Regel ersetzt werden sollte.
  • Wenn eine solche Regel, wie dies in Fig. 8 dargestellt ist, in dem Kenntnisgrundspeicher 1 gespeichert wird, kann eine Serie von Verarbeitungen der Schritte 53, 54, 55, 57 in dem Flußdiagramm, das in Fig. 5 dargestellt ist, leicht wie folgt durch Prolog realisiert werden:
  • inference (LHS, RHS):-
  • unify_left (LHS, L, []), ... (1)
  • remove_gates (L),
  • call (RHS).
  • Das bedeutet, das erste Argument von "interference (LHS, RHS)" ist der Zustandsteil (das bedeutet die linke Seite) der ausgewählten Regel und das zweite Argument RHS ist der Rückschlußteil (oder die rechte Seite) der Regel. Weiterhin realisiert "unit_left (LHS, L, [])"den Schritt 53, "remove_gates (L)" den Schritt 55 und "call (RHS)" den Schritt 57. Die Entscheidung in dem Schritt 54 hängt davon ab, ob das "unity_left" Prädikat erfolgreich war oder nicht erfolgreich (fehlgeschlagen) ist. Das Prädikat "remove_ gates (L)" realisiert die Elemententfernungseinrichtung 27, die in der Verarbeitung des Schritts 55 vorgenommen werden soll, und ihr Argument L ist eine Liste eines Elements, das gelöscht werden soll, was die Elementspeichereinrichtung 26 realisiert.
  • Die Verarbeitung des Schritts 53 in Fig. 6 ist das Prädikat "unify_left (P, L1, L2)" und es kann wie folgt durch Prolog realisiert werden.
  • unify_left ((P1, P2), L1, L3):-!,
  • unify_left (P1, L1, L2),
  • unify_left (P2, L2, L3).
  • unify_left ((Gate name:::Slots), [(Gate_name:::Slots)1L], L):-!,
  • unify_gate (Gate, Slots).
  • unify_left (P, L, L):-!,
  • unify_left (P, _, []).
  • unify_left ((not P), L, L):-!,
  • not(unify_left (P, _[])).
  • unify_left (P, L, L):--
  • P.
  • In den obigen Prolog-Klauseln bedeutet die erste Klausel, daß der Regelzustandsteil rekursiv durch jeden Term verarbeitet wird, und die zweite Klausel sucht, falls der Term des Regelzustandsteils in dem ersten Argument ein Element ausdrückt, um zu sehen, ob dort ein entsprechendes Element in dem Arbeitsspeicher 3 vorhanden ist, und wenn ein entsprechendes Element gefunden wird, wird dieses Element in der Liste des dritten Arguments (Schritt 65) gespeichert. Darüberhinaus ist "unify_gates (Gate, Slots)" ein Prädikat, das die Elementsucheinrichtung 25 zur Verarbeitung des Schritts 62 realisiert. Die dritte Klausel entscheidet, daß das Element nicht durch "?" entfernt werden soll (Schritt 64), und kein Element wird in der Liste des zweiten Arguments gespeichert. Die vierte Klausel ist ein Bereich zur Verarbeitung des negativen Ausdrucks in dem Term des Regelzustandsteils, der nicht in Fig. 6 zum Zwecke der Vereinfachung erläutert ist. Die fünfte Klausel dient dazu, den Schritt 66 zu verarbeiten. Hierbei wird, da die verschiedenen Verarbeitungsprogramme auch durch Prolog realisiert werden, die Programmausführungseinrichtung 6 das Verarbeitungssystem des Prolog (das bedeutet, der Interferenzmechanismus von Prolog) selbst. Daneben schlägt, aufgrund des Schnittoperators"!" in der dritten Klausel, falls das gesuchte Element nicht in dem Arbeitsspeicher 3 gefunden wird (das bedeutet, das Prädikat "unify_gate" schlägt fehl), das gesamte "unify_left" Prädikat fehl.
  • Die Verarbeitung des Schritts 57, wie dies in Fig. 7 dargestellt ist, wird durch das Verarbeitungssystem von Prolog durch das Prädikat "call (RHS)" abgeleitet. Die Entscheidung des Schritts 71, und die Schritte 72 und 73, können leicht wie folgt realisiert werden.
  • ((Gate_name:::Slots):-
  • add_gate (Gate_name, Slots,),!.
  • @P:-!, subrule_inference (@=> , P,), !.
  • Von diesen Klauseln verarbeitet die erste Klausel den Schritt 72, wenn der Term des Rückschlußteils der Regel ein Element ausdrückt. Das Prädikat "add_gate (Gate_name, Slots)" realisiert die Elementadditionseinrichtung 29. Die zweite Klausel verarbeitet den Schritt 73, falls der Term des Rückschlußteils der Regel die Anwendung der untergeordneten Regel ausdrückt. Das Prädikat "subrule_inference (@=> , P)" ist ein Beispiel eines Realisierens der Regelanforderungseinrichtung 30. In diesem Fall kann die Anwendungsverarbeitung der untergeordneten Regel leicht durch Auswahl der untergeordneten Regel so, wie dies nachfolgend dargestellt ist, und durch rekursives Ausführen des Prädikats "inference (Q, RHS)" zu dieser untergeordneten Regel realisiert werden.
  • subrule_inference (Op, P):--
  • select_rule (Op, (P, Q), RHS),
  • inference (Q, RHS),!.
  • Hier realisiert das Prädikat "select_rule (Op, (P, Q), RHS)" die Lokalregelauswahleinrichtung 31. Zum Beispiel kann in Bezug auf die Regelbeschreibung, die in Fig. 8 dargestellt ist, das Prädikat "select_rule" leicht wie folgt beschrieben werden.
  • select_rule (0p, LHS, RHS):--
  • Rule=. .[0p, LHS, RHS],
  • Rule.
  • Darüberhinaus wird in dem Beispiel einer Realisierung einer Ausführungsform durch Prolog, wie dies vorstehend dargestellt ist, die Regelhalteeinrichtung 22 durch Halten des Zustandsteils und des Rückschlußteils jeder Regel jeweils durch das erste Argument LHS des Prädikats "unify_left (LHS, L, [])", das in der Klausel (1) erscheint, die das obige Prädikat "inference (LHS, RHS) beschreibt, und das Argument RHS des Prädikats "call (RHS)" realisiert. Die Allgemeinregelauswahleinrichtung 21 wird leicht realisiert, entsprechend der Lokalregelauswahleinrichtung 31, durch Verwendung einer Vereinheitlichungsfunktion von Prolog.
  • Darüberhinaus wird die Verarbeitung des Schritts 56, die in dem Flußdiagramm in Fig. 5 dargestellt ist, leicht in dem nachfolgenden Fall durch Beschreibung der Erweiterungsregel, wie dies in Fig. 9 dargestellt ist, realisiert.
  • #P:-!, (P#=> Q),
  • call(Q).
  • In ähnlicher Weise kann die Verarbeitung des Schritts 52 leicht realisiert werden.
  • Ein Beispiel einer Beschreibung einer Erweiterungsregel, die in Fig. 3(a) dargestellt ist ist in Fig. 9 angegeben.
  • Darüberhinaus werden in dem Beispiel, das durch Prolog vorstehend realisiert ist, "@", "#", "?", "-", "not", "==> ", "@=> ", "#=> ", ":::" und "::" dahingehend angenommen, daß sie durch den Benutzer erklärt werden.
  • In dem obigen Beispiel wird die Ausführungsform unter Verwendung einer niveaumäßig hohen Programmiersprache Prolog realisiert, allerdings ist es auch möglich, eine Realisierung unter Verwendung anderer, niveaumäßig hoher Programmiersprachen vorzunehmen, wie beispielsweise Lisp und C.
  • Gemäß dieser Ausführungsform, wie sie in Fig. 2 dargestellt ist, ist es möglich, Transformationsregeln zu sammeln, die sich nur in einem Teil des Zustandsteils und des Rückschlußteils unterscheiden, und diese Regeln in einer hierarchischen Struktur aufzubauen, die Hauptregeln, die aus deren gemeinsamen Teilen zusammengesetzt sind, und untergeordneten Regeln, die die Unterschiede der individuellen Regeln beschreiben, umfassen, und deshalb werden die nachfoglenden Effekte erzielt.
  • (1) Die Transformationsregel kann in einer Form sehr nahe zu dem Bild, das durch den Designer verarbeitet wird, beschrieben werden.
  • (2) Die Regelbeschreibung ist einfach.
  • (3) Die Quantität einer Beschreibung pro Regel kann aufgrund des Aufbaus einer Regel in einer Schrittstruktur reduziert werden und eine einfache Beschreibung von Elementen, die eine Bit-Breite haben, kann realisiert werden.
  • (4) Da die Transformationsregeln klassifiziert werden können, kann die Designkenntnis, die für eine Schaltkreistransformation notwendig ist, angeordnet und auf der Kenntnisbasis gespeichert werden.
  • (5) Durch den Regelstrukturaufbau wird die Schlußfolgerungseffektivität merkbar verbessert und die Verarbeitungsgeschwindigkeit ist etwa 4 bis 7 mal so hoch wie verglichen mit dem Fall ohne einen Strukturaufbau.
  • Zweite Ausführungsform
  • Eine zweite Ausführungsform dieser Erfindung wird nun nachfolgend unter Bezugnahme auf die Zeichnungen beschrieben.
  • Fig. 10 zeigt ein Blockdiagramm, das eine Grundstuktur der zweiten Ausführungsform dieser Erfindung darstellt, bei der das Bezugszeichen 1 einen Kenntnisgrundspeicher bezeichnet, 2 eine Eingabeeinrichtung ist, 3 ein Arbeitsspeicher ist, 4 eine Ausgabeeinrichtung ist, 5 eine Schlußfolgerungseinrichtung (Interpretereinrichtung) ist, 6 eine Programmausführeinrichtung zum Speichern von Programmen und Ausführen, wie dies erforderlich ist, ist, und 7 ein logischer Negations-Kenntnisgrundspeicher zum Speichern der Kenntnis, die sich auf die logische Negation bezieht, ist.
  • Die Schlußfolgerungseinrichtung 5 ist aus einer Regelauswahleinrichtung 14, einer Regelhalteeinrichtung 22, einer Regelanpassungseinrichtung 24, einer Elementsucheinrichtung 25, einer Elementspeichereinrichtung 26, einer Elemententfernungseinrichtung 27, einer Regelanwendungseinrichtung 28, einer Elementadditionseinrichtung 29 und einer ein logisches Negationssignal erzeugenden Einrichtung 32 aufgebaut.
  • In dieser Ausführungsform ist ein besonders einfaches Regelgrundsystembeispiel dargestellt, allerdings kann es leicht durch ein anderes, generalisiertes Regelgrundsystem analog umgesetzt werden. Weiterhin hängt diese Erfindung nicht von einem Vorhandensein oder einem Nichtvorhandensein einer Programmausführung ab. Oder der Transformationskenntnisspeicher und der Logik-Negations-Kenntnisgrundspeicher können kombiniert werden, um einen Kenntnisgrundspeicher (Kenntnisbasis) aufzubauen.
  • Diese Teile werden im Detail nachfolgend beschrieben.
  • Der Kenntnisgrundspeicher 1 speichert die Transformationsregel 13 zum Beispiel, wie dies in Fig. 20 dargestellt ist.
  • Fig. 20 zeigt ein Beispiel einer Regel vom Typ IF-THEN (FALLS-DANN) zur Transformation eines technologie-unabhängigen, abstrakten, logischen Schaltkreises in einen logisch äquivalenten, logischen Schaltkreis, der aus Standardzellen von CMOS-Transistoren aufgebaut ist. Das bedeutet, daß die Regel der Fig. 20 eine Transformationsregel ausdrückt, die bedeutet "falls 2 Eingangs-AND-Elemente und 3 Eingangs-AND-Elemente, deren Ausgang list, mit beiden Eingängen von 2 Eingangs-NOR-Elementen verbunden sind, werden sie in AND-NOR-Compound-Gate antd transformiert".
  • Die Eingabeeinrichtung 2, der Arbeitsspeicher 3, die Ausgabeeinrichtung 4, die Schlußfolgerungseinrichtung 5 und die Programmausführeinrichtung 6 entsprechen den Einrichtungen der ersten Ausführungsform.
  • Der Logik-Negations-Kenntnisgrundspeicher 7 speichert die logische Negationsregel 20, die die logische Negationsbeziehung angibt. Beispiele der logischen Negationsregel 20 können die Regel eines logischen Negierens des Ausgangs in dem Schaltkreis desselben Eingangs, die Regel eines logischen Negierens eines der Eingänge in einen Schaltkreis desselben Ausgangs des Konträren und die Regel einer logischen Negierung von zwei Ausgängen wechselseitig, wie beispielsweise in einem Flip-Flop, umfassen. Fig. 11A bezieht sich auf eine logische Negationsregel, insbesondere auf eine Regel eines logischen Negierens des Ausgangs in zwei Schaltkreisen mit demselben Eingang. In dem Beispiel in Fig. 11 zeigt sie das AND-Element und das NAND-Element, oder das OR-Element und das NOR-Element, die dieselben Eingänge besitzen, entsprechend zueinander durch das Symbol "= , die in der logisch negierten Relation in deren Ausgängen wechselseitig sind. Daneben kann in der logischen Negationsregel, durch Transformieren des NOR-Elements, wie dies in Fig. 11B dargestellt ist, in ein NAND-Element, das die logische Negation , ihrer Eingänge X, Z als die Eingänge aufnimmt, die Regel zum Erzeugen einer logischen Negation von Y verwendet werden, oder in Bezug auf den Eingang Y des AND-Elements, wie dies in Fig. 1 1C dargestellt ist, kann die Regel der erzeugenden, logischen Negation von Y durch das NOR-Element, das die logische Negation eines anderen Eingangs X als Eingang aufnimmt, auch verwendet werden.
  • Die betriebsmäßige Funktion jeder Einrichtung in der Schlußfolgerungseinrichtung 5 wird nachfolgend zusammen mit dem Verarbeitungsverfahren erläutert.
  • Fig. 12 zeigt ein Flußdiagramm, das ein Beispiel des Aufbaus der Schaltkreistransformationsverarbeitung in der Schlußfolgerungseinrichtung 5 darstellt.
  • Ein Verarbeitungsschritt 51 ist derjenige, die Transformationsregeln sequentiell in der Reihenfolge einer Priorität unter Berücksichtigung einer Aufhebung eines Konkurrierens von Regeln auszuwählen, die durch die Regelauswahleinrichtung 14 in Fig. 10 verarbeitet wird. Die Prioritätsreihenfolge der Transformationsregeln kann entweder im voraus für jede Regel spezifiziert werden oder durch eine bestimmte Abschätzungsfunktion bzw. Evaluationsfunktion (Index) oder dergleichen bestimmt werden.
  • Ein Verarbeitungsschritt 53 ist derjenige, jeden Term des Zustandsteils der Transformationsregel anzupassen, der der Ausgang des Verarbeitungsschritts 51 ist, gegen die Daten in dem Arbeitsspeicher 3 in Fig. 10, und zwar durch die Regelanpassungseinrichtung 24 (die Details dieser Verarbeitung sind in Fig. 6 beschrieben, die sich auf die erste Ausführungsform bezieht).
  • Ein Schritt 54 ist derjenige, zu entscheiden, ob der Zustandsteil der Regel durch die Anpassungsverarbeitung des Schritts 53 eingerichtet ist oder nicht. Falls die Entscheidung dieses Schritts eingerichtet ist, wird ein Schritt 55 verarbeitet, und falls sie nicht eingerichtet ist, wird ein Schritt 58 ausgeführt.
  • Ein Verarbeitungsschritt 55 ist derjenige, das Element zu entfernen, das in der Elementspeichereinrichtung 26 gespeichert ist, und zwar sequentiell von den Daten in dem Arbeitsspeicherteil 3 durch die Elemententfernungseinrichtung 27 in Fig. 10.
  • Ein Schritt 57 ist derjenige, die Daten in dem Arbeitsspeicher 3 zu aktualisieren und Elemente hinzuzufügen, und zwar durch die Regelanwendungseinrichtung 28 in Fig. 10. (Die Details dieser Verarbeitung sind in Fig. 7 beschrieben, die sich auf die erste Ausführungsform bezieht).
  • Nach diesem Verarbeitungsschritt 57 kehrt die Betriebsweise zu dem Verarbeitungsschritt 53 zurück und dieselbe Transformationsregel wird gegenüber den Daten in dem Arbeitsspeicher 3 angepaßt.
  • Ein Schritt 58 ist derjenige, zu entscheiden, ob die Transformationsregel, die als nächstes auf die momentan ausgewählte Transformationsregel angewandt werden soll, in dem Kenntnisgrundspeicher 1 vorhanden ist oder nicht. Falls sie vorhanden ist, kehrt die Betriebsweise zu dem Schritt 51 zurück und die nächste Transformationsregel wird ausgewählt; falls sie nicht vorhanden ist, wird die Transformationsverarbeitung beendet.
  • Fig. 13 zeigt ein Flußdiagramm, das den Schritt 72 in Fig. 7, der ein prinzipieller Teil dieser Erfindung ist, und ein Beispiel eines Negations-Logik-Erzeugungsverfahrens, das eines nach der Erfindungen ist, dargestellt.
  • Ein Schritt 80 ist derjenige, daß dann, wenn ein logisches, negiertes Signal i in dem Eingangssignal und dem Ausgangssignal eines registrierten Elements verwendet wird, ein Signal Yi zu erzeugen, das eine logische Negation des Signals Xi in dem Datenschaltkreis in dem Arbeitsspeicher 3 ist. Die Einzelheiten einer Verarbeitung sind in Fig. 14 dargestellt.
  • Ein Schritt 100 ist derjenige, alle logischen, negierten Signale i der Eingangssignale oder der Ausgangssignale eines registrierten Elements, das einem Signal Yi entspricht, unter Verwendung des Signals Yi, das in dem vorhergehenden Schritt 80 durch die Elementadditionseinrichtung 29 in Fig. 10 erzeugt ist, zu ersetzen und das Element in den Daten in dem Arbeitsspeicher 3 zu addieren.
  • Fig. 14 zeigt ein Flußdiagramm, das die Details eines Beispiels eines Schritts 80 in Fig. 13 darstellt. Die Schritte von 81 bis 88 sind die Verarbeitung in Bezug auf die Signale, die in das registrierte Element eingegeben sind, und die Schritte von 91 bis 98 sind die Verarbeitung in Bezug auf die Signale, die von dem registrierten Element geliefert sind. In dem Beispiel in Fig. 14 werden, nach einer Verarbeitung in Bezug auf alle Eingangssignale, Ausgangssignale verarbeitet. Im Gegensatz dazu kann eine Verarbeitung in Bezug auf Ausgangssignale, oder eine Verarbeitung ohne sich über die Sequenz der Eingangssignale und der Ausgangssignale bewußt zu sein, auch ins Auge gefaßt werden. Die Verarbeitung wird in Einzelheiten nachfolgend beschrieben.
  • Als erstes wird jedes Eingangssignal von den Schritten 81 bis 87 verarbeitet.
  • Der Schritt 81 ist derjenige, zu entscheiden, ob das Eingangssignal ein unbestimmtes Signal ist (ein Signal ohne einen bestimmten Namen) oder nicht. Falls es unbestimmt ist, wird als Folge der Schritt 82 verarbeitet, und ansonsten wird Schritt 83 ausgeführt.
  • Der Schritt 82 ist derjenige, ein Signal mit einem Signalnamen zu benennen.
  • Der Schritt 83 ist derjenige, zu entscheiden, ob das Eingangssignal ein logisches, negiertes Signal ist (das bedeutet, das Signal, das das Format einer logischen Negation eines bestimmten Signals Y ausdrückt) oder nicht. Falls es ein logisches Negationssignal ist, wird der Schritt 84 verarbeitet, und ansonsten wird der Schritt 88 ausgeführt.
  • Der Schritt 84 ist derjenige, zu entscheiden, welche eine der logischen Negationsregeln 20 in dem Logik-Negations-Kenntnisgrundspeicher 7 zum Erzeugen eines logischen, negierten Signals anwendbar ist. Das bedeutet, daß, wenn ein logisch negiertes Signal eines Signals Y erzeugt wird, beurteilt wird, ob der Schaltkreis, der entweder die linke Seite (die linke Seite von "= ") oder die rechte Siete der logischen Negationsregel, die in Fig. 11A (oder Fig. 11B) dargestellt ist, ist und von welchem Ausgangssignal Y in dem Datenschaltkreis in dem Arbeitsspeicher 3 vorhanden ist (das bedeutet, ob zu Mustern angepaßt ist) oder nicht. Zum Beispiel wird in dem Beispiel in Fig. 11A beurteilt, ob ein 2-Eingangs-AND-Schaltkreis, ein 2-Eingangs-OR-Schaltkreis, oder dergleichen, der ein Ausgangssignal Y besitzt, in dem Datenschaltkreis in dem Arbeitsspeicher 3 vorhanden ist oder nicht. Falls er vorhanden ist, ist als Folge die logische Negationsregel anwendbar und Schritt 85 wird ausgeführt, und falls er nicht in irgendeiner Regel vorhanden ist, wird Schritt 87 ausgeführt.
  • Der Schritt 85 dient dazu, den Schaltkreis an der linken Seite oder der rechten Seite (wie dies in dem vorherigen Schritt angepaßt ist) der logischen Negationsregel, die dahingehend beurteilt ist, daß sie in dem vorhergehenden Schritt 84 anwendbar ist, von den Daten in dem Arbeitsspeicher 3 zu entfernen und die entsprechende rechte Seite oder linke Seite der Regel wird zusätzlich in dem Arbeitsspeicher 3 registriert. Zum Beispiel wird, in dem Schritt 84, falls die erste Regel in Fig. 11A angewandt werden kann, das AND-Element des Ausgangssignals Y dahingehend bestätigt, daß es in dem Schritt 84 vorhanden ist, wird von dem Arbeitsspeicherteil 3 entfernt, und das NAND-Element des entsprechenden selben Eingangssignals wird zusätzlich in dem Arbeitsspeicher 3 registriert. Ein Entfernen des Elements ist dasselbe wie in dem Schritt 55 in Fig. 12. Eine Hinzufügung eines Elements kann auch durch rekursives Ausführen eines Schritts 72 in Fig. 15 realisiert werden.
  • Der Schritt 86 dient zusätzlich dazu, den Inverter, der ein Eingangssignal und ein Ausgangssignal Y besitzt, in dem Arbeitsspeicher 3 zu registrieren, um das Signal Y durch die Verarbeitung des vorherigen Schritts 85 entfernt zu halten. Es ist allerdings nicht notwendig, zusätzlich den Inverter zu registrieren, ohne daß ein Element, das diese Signale Y als ein Eingangssignal besitzt, in dem Datenschaltkreis in dem Arbeitsspeicher 3, nach der Verarbeitung des Schritts 85, vorhanden ist.
  • In dem Schritt 85 ist darüberhinaus, wenn ein Transformieren der Invertereinrichtung in einen Puffer (das bedeutet, wenn der Inverter ein Eingangssignal Y hat oder ein Ausgangssignal Y, in dem Datenschaltkreis vorhanden ist), da das Ausgangssignal oder das Eingangssignal des Inverters ein logisch negiertes Signal ist, der Schritt 85 nur derjenige, das logisch negierte Signal aufzugreifen, und der Schritt 86 kann weggelassen werden. In ähnlicher Weise ist, falls ein Flip-Flop, das ein Ausgangssignal Y besitzt, in dem Datenschaltkreis vorhanden ist, der Schritt 85 nur derjenige, das invertierte Signal aufzugreifen, und der Schritt 86 wird weggelassen.
  • Der Schritt 87 ist derjenige, ein logisch negiertes Signal durch zusätzliches Registrieren des Inverters des Eingangssignals Y in die Daten in dem Arbeitsspeicher 3 zu erzeugen, falls irgendeine logische Negationsregel nicht im Schritt 84 angewandt werden kann.
  • Eine Hinzufügung eines Inverters in den Schritten 86, 87 kann durch rekursives Ausführen des Schritts 72 in Fig. 7 realisiert werden.
  • Der Schritt 88 ist derjenige, zu entscheiden, ob die Verarbeitung der Schritte 81 bis 87 bei allen Eingangssignalen des registrierten Elements bewirkt worden ist oder nicht. Falls es bei allen Eingangssignalen verarbeitet ist, werden die Ausgangssignale verarbeitet (Schritte 91 bis 98); ansonsten werden die Schritte 81 bis 87 wieder in Bezug auf unverarbeitete Eingangssignale ausgeführt.
  • Für Ausgangssignale werden ähnlich die Schritte 91 bis 87 ausgeführt.
  • Die Schritte 91, 92, 93 sind dieselben wie die vorhergehenden Schritte 81, 82, 83 und werden hier nicht erläutert werden.
  • Der Schritt 94 ist derjenige, zu entscheiden, ähnlich dem Schritt 84, welche eine der logischen Negationsregeln 20 in dem logischen Negations-Kenntnisgrundspeicher 7 zur Erzeugung logisch negierter Signale anwendbar ist. Das bedeutet, daß, wenn ein logisch negiertes Signal des Signals Y erzeugt wird, entschieden wird, ob der Schaltkreis entweder an der linken Seite oder der rechten Seite irgendeiner der logischen Negationsregeln angeordnet ist, und ob eines dieser Eingangssignale, das ein Signal Y ist, an das Muster der Daten in dem Arbeitsspeicher 3 angepaßt ist oder nicht. Falls angepaßt ist, wird als Folge der Schritt 95 ausgeführt; ansonsten wird Schritt 96 ausgeführt.
  • Der Schritt 95 ist derjenige, ein erwünschtes, logisch negiertes Signal, und zwar unter Verwendung der logischen Negationsregel, in Bezug auf die entschieden ist, daß sie in dem Schritt 94 anwendbar ist, dasselbe wie im Schritt 84, zu erzeugen. Zum Beispiel wird, falls das 2-Eingangs-AND-Element an der linken Seite der logischen Negationsregel in Fig. 11C im Muster angepaßt wird, das Element von dem Arbeitsspeicher 3 entfernt und ein NOR-Element, das dasselbe Ausgangssignal besitzt, und auch Eingangssignale , werden zusätzlich in dem Arbeitsspeicher 3 registriert. Ein Entfernen des Elements ist dasselbe wie im Schritt 55 in Fig. 12. Ein Hinzufügen eines Elements wird durch rekursives Ausführen des Schritts 72 in Fig. 7 realisiert.
  • Der Schritt 96 dient, ähnlich zu Schritt 87, dazu, ein logisch negiertes Signal durch zusätzliches Registrieren des Inverters des Ausgangssignals Y in den Daten in dem Arbeitsspeicher 3 zu erzeugen, falls eine logische Negationsregel nicht im Schritt 94 angewandt werden kann.
  • Im Schritt 94 wird allerdings, falls im Muster mit dem Inverter angepaßt wird, der ein Eingangssignal Y besitzt, falls viele Elemente, die das Signal Y als Eingang aufnehmen, in dem Schritt 95 vorhanden sind, da das Ausgangssignal des Inverters ist, nur das logisch negierte Signal aufgegriffen, und der Inverter wird nicht gelöscht.
  • Der Schritt 97 dient dazu, die Schritte 94 bis 96 wiederholt zu verarbeiten, falls das logisch negierte Signal vielfache Elementeingänge besitzt (das bedeutet die Ausgangsverzweigung ist mehrfach). Wenn eine Verarbeitung der Schritte 94 bis 96 bei allen Elementen vorüber ist, die die Signale aufnehmen, die logisch als Eingänge negiert werden sollen, wird der Schritt 98 ausgeführt; ansonsten werden die Schritte 94 bis 96 an dem unbearbeiteten Bereich ausgeführt.
  • Der Schritt 98 dient dazu, zu entscheiden, um die Schritte 91 bis 97 wiederholt individuell auszuführen, falls das registrierte Element vielfache Ausgangssignale besitzt, und zwar dasselbe wie im Schritt 88 vorstehend.
  • Von diesen Schritten werden die Schritte 84 bis 87 bei Eingangssignalen und die Schritte 94 bis 97 bei Ausgangssignalen durch die das logische Negationssignal erzeugende Einrichtung in Fig.10 bewirkt.
  • In den vorstehenden Beispielen wurde eine Erzeugung eines logisch negierten Signals sowohl des Eingangs- als auch des Ausgangssignals in Betracht gezogen, allerdings ist es auch möglich, dies leicht in dem Fall nur eines Eingangssignals oder nur eines Ausgangssignals zu realisieren.
  • Bis hier ist die Schaltkreistransformationsverarbeitung in der zweiten Ausführungsform erläutert. Darüberhinaus kann die Verarbeitung in dem Flußdiagramm der Fig. 5 leicht durch Prolog realisiert werden, und zwar exakt in derselben Art und Weise wie in der ersten Ausführungsform.
  • Ein Beispiel einer Realisierung eines logischen Negationserzeugungsverfahrens (durch Prolog) wird kurz nachfolgend beschrieben.
  • Fig. 16 zeigt ein Beschreibungsbeispiel einer logischen Negationsregel, die in Fig. 11A dargestellt ist.
  • Zum Beispiel kann, wenn die logische Negationsregel, die in Fig. 16 dargestellt ist, in dem Logik-Negations-Kenntnisgrundspeicher 7 gespeichert ist, eine Reihe von Verarbeitungen in den Schritten 84, 85, 86, 87 ist, die in dem Flußdiagramm in Fig. 14 dargestellt sind, leicht wie folgt durch Prolog realisiert werden.
  • reverse_logic (X, Z):--
  • P = (G:::a_kind_of::_;_::X;_),
  • Q = (G:::a_kind_of::_; ::Z;_),
  • select_rule ('= ', P, Q),
  • unify_left(P, [P], []),
  • replace_gate (P, Q),!,
  • reverse_logic (X, Z):-
  • create_inverter ((input::X;output::Z)).
  • Dies bedeutet, daß das Prädikat "reverse_logic (X, Y)" bedeutet, daß das logisch negierte Signal des Signals X des ersten Arguments ein Signal Z des zweiten Arguments ist. Zu diesem Zeitpunkt wird der Schritt 84 in Fig. 14 durch das Prädikat "select_rule (@= @,p, Q)" und das Prädikat "unify_left (P, [P], (J)" in der ersten Klausel realisiert. Darüberhinaus realisiert das Prädikat "replace_gate(P, Q)" die Schrite 85, 86. Ein Beispiel eines Prädikats "replace_gate" ist nachfolgend dargestellt. replace_gate ((_:::a_kind_of::inverter;_;_LL),J:-!.
  • replace_gate ((_:::_;output(Q)::_;output(*Q)::_,_:_!.
  • replace_gate (P, Q):_
  • P = (G:::a_kind_of::kind;_::X;_),
  • Q = (:::_K_::Z;_),
  • remove_frame (G),
  • call (Q),
  • create_inverter ((input::Z;output::X)).
  • Die erste Klausel entspricht einem Fall eines Transformierens des Inverters in einen Puffer, wie vorstehend ausgeführt ist, während die zweite Klausel einem Fall entspricht, wo ein Flip-Flop existiert. In der zweiten Klausel bedeutet *Q den Anschluß zum Liefern des logisch negierten Signals des Ausgangssignals des Ausgangsanschlusses Q. In der dritten Klausel realisieren das Prädikat "remove_frame (G)" und das Prädikat "call (Q)" den Schritt 85 und das Prädikat "create_inverter (input::Z;output::X)" realisiert den Schritt 86.
  • Die zweite Klausel in dem vorstehenden Prädikat "reverse_logic (X, Z)" ist der Bereich zum Ausführen der zusätzlichen Verarbeitung (Schritt 87) des Inverters, wenn die logische Negationsregel nicht angewandt werden kann.
  • Das Prädikat "create_inverter" dient zur zusätzlichen Registrierung des Inverters in dem Arbeitsspeicher 3, was leicht wie folgt realisiert wird.
  • create_inverter/Slots):_
  • call ((:::a_kind_of::inverter;Slots)).
  • Durch effektives Verwenden der logischen Negationssignalerzeugungseinrichtung, die zum Beispiel in Prolog realisiert ist, kann das Beschreibungsbeispiel der Fig.15 den Rückschlußteil der Regel sehr einfach unter Verwendung des logisch negierten Signals ausdrücken, wie dies in Fig. 17 dargestellt ist. In Fig. 17 bedeutet das Symbol " " (oder "-") die logische Negation. Das bedeutet, " X" bedeutet ein logisch negiertes Signal des Signals X. Daneben wird im Schritt 83 und im Schritt 93 in Fig. 14 die Entscheidung, ob oder ob nicht das logisch negierte Signal vorhanden ist, leicht durch eine Entscheidung realisiert werden, ob " " an den Signalnamen angehängt ist oder nicht. Darüberhinaus kann es in Fig. 17 auch dahingehend betrachtet werden, daß es einfach als " [X1, X2]" anstelle von "( X1, X2)" beschrieben ist.
  • Weiterhin kann die Entscheidung eines unbestimmten Signals (Schritt 81 und 91) durch Entscheidung realisiert werden, ob der Signalname ein variabler ist oder nicht, und zwar unter Verwendung des eingeschlossenen Prädikats "var (X)" des Prolog. In der Bestimmung des Signalnamens in den Schritten 82 und 92 kann ein Signalname leicht durch das Prädikat "gensym" erzeugt werden, bei dem es sich um ein Basisprädikat von Prolog handelt.
  • Zusätzlich kann das logisch negierte Logikerzeugungsverfahren zu dem Ausgangssignal (Schritte 94, 95, 96, 97 in Fig. 14) auch einfach wie in dem Fall eines Eingangssignals realisiert werden.
  • In den vorstehenden Beispielen, die mit Prolog realisiert sind, wird angenommen, daß "-", "not", "==> ", ":::" und "::", durch den Bediener bestimmt werden.
  • In diesen Beispielen wurde die Ausführungsform unter Verwendung der niveaumäßig hohen Programmiersprache Prolog realisiert, allerdings ist es auch möglich, sie durch andere niveaumäßig hohe Programmiersprachen, wie beispielsweise Lisp und C, zu realiseren.
  • Gemäß dieser Ausführungsform werden, da die logisch negierten Signale in den Transformationsregeln verwendet werden können, und es nicht notwendig ist, von dem Erzeugungsverfahren der logisch negierten Signale Kenntnis zu haben, die nachfolgenden Effekte mit sich gebracht.
  • (1) Die Transformationsregel kann in einer Form sehr nahe zu dem Bild, das im Besitz des Designers ist, beschrieben werden.
  • (2) Die Regelbeschreibung ist einfach.
  • (3) Der Umfang einer Beschreibung pro Regel kann reduziert werden, und zwar aufgrund eines Aufbaus der Regel in Schrittstruktur, und eine einfache Beschreibung der Elemente, die eine Bit-Breite besitzen, kann realisiert werden.
  • (4) Da die Transformationsregeln klassifiziert werden können, kann die Designkenntnis, die für eine Schaltkreistransformation notwendig ist, auf der Kenntnisgrund lage angeordnet und gespeichert werden.
  • (5) Durch automatisches Erzeugen eines logisch negierten Signals wird die Schlußfolgerungseffektivität merkbar erhöht und die Verarbeitungsgeschwindigkeit kann erhöht werden.
  • Dritte Ausführungsform
  • Eine dritte Ausführungsform dieser Erfindung wird nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Fig. 18 zeigt ein Blockdiagramm, das eine Basisstruktur der dritten Ausführungsform dieser Erfindung darstellt, in dem das Bezugszeichen 1 einen Kenntnisgrundspeicher bezeichnet, 2 eine Eingabeeinrichtung ist, 3 ein Arbeitsspeicher ist, 4 eine Ausgabeeinrichtung ist, 5 eine Schlußfolgerungseinrichtung (Interpreter) 6 ist, eine Programmausführeinrichtung zum Speichern von Programmen und zum Ausführen, wie dies erforderlich ist, ist, und 8 ein logischer Äquivalenzkenntnisgrundspeicher zum Speichern der Kenntnis über eine logische Äquivalenz ist.
  • Die Schlußfolgerungseinrichtung 5 ist aus einer Regelauswahleinrichtung 14, einer Regelhalteeinrichtung 22, einer Regelanpassungseinrichtung 24, einer Elementsucheinrichtung 25, einer Elementspeichereinrichtung 26, einer Elemententfernungseinrichtung 27, einer Regelanwendungseinrichtung 28 und einer Elementhinzufügungseinrichtung 29 aufgebaut.
  • In dieser Ausführungsform ist ein Beispiel eines bestimmten, einfachen Regelgrundsystems dargestellt, allerdings kann es leicht durch ein anderes, generalisiertes Regelgrundsystem analogisiert werden. Diese Erfindung hängt darüberhinaus nicht von dem Vorhandensein oder Nichtvorhandensein einer Programmausführeinrichtung ab und der Kenntnisgrundspeicher und der logische Äquivalenzkenntnisgrundspeicher können kombiniert werden, um einen Kenntnisgrundspeicher (Kenntnisgrundlage) aufzubauen.
  • Diese Teile sind im Detail nachfolgend beschrieben.
  • Der Kenntnisgrundspeicher 1, die Eingabeein richtung 2, der Arbeitsspeicher 3, die Ausgabeeinrichtung 4, die Schlußfolgerungseinrichtung 5 und die Programmausführeinrichtung 6 entsprechen den Teilen in der ersten und zweiten Ausführungsform vorstehend. Der logische Äquivalenzkenntnisgrundspeicher 8 speichert eine logische Äquivalenzregel 40, die eine logisch äquivalente Relation darstellt. Fig. 19 zeigt ein Beispiel einer logischen Äquivalenzregel. In dem Beispiel in Fig. 19 ist dargestellt, daß eine "AND" und "logische Negation des Ausgangs von NAND" und ein "AND" und ein "NOR durch logische Negation ihres Eingangs", was in entsprechender Relation durch das Symbol "=" angezeigt ist, in der logischen Relation jeweils äquivalent sind.
  • Die Betriebsfunktion jeder Einrichtung in der Schlußfolgerungseinrichtung 5 wird zusammen mit dem Verfahren der Verarbeitung erläutert.
  • Fig. 12 zeigt ein Flußdiagramm, das ein Beispiel eines Aufbaus einer Schaltkreistransformation, die in der Schlußfolgerungseinrichtung 5 arbeitet, darstellt.
  • Ein Verarbeitungsschritt 51 ist der Teil zur Auswahl der Transformationsregeln sequentiell von der höchsten Priorität aus, und zwar unter Berücksichtigung einer Aufhebung einer Konkurrenz von Transformationsregeln, die durch die Regelauswahleinrichtung 14 in Fig. 18 verarbeitet werden. Die Prioritätsreihenfolge in Bezug auf Transformationsregeln kann entweder zuvor für jede Regel oder durch eine bestimmte Abschätzungsfunktion (Index) oder dergleichen bestimmt werden.
  • Ein Verarbeitungsschritt 53 ist derjenige, jeden Term des Zustandsteils der Transformationsregel anzupassen, die der Ausgang des Verarbeitungsschritts 52 ist, mit den Daten in dem Arbeitsspeicher 3 in Fig. 18 mittels der Regelanpassungseinrichtung 24 (Details sind nachfolgend erwähnt).
  • Ein Schritt 54 dient dazu, zu entscheiden, ob der Zustandsteil der Regel eingerichtet ist oder nicht, und zwar durch die Anpassungsverarbeitung in dem Verarbeitungsschritt 53. Wenn die Entscheidung dieses Schritts eingerichtet ist, wird ein Schritt 55 ausgeführt, und falls sie nicht eingerichtet ist, wird ein Schritt 58 ausgeführt.
  • Ein Verarbeitungsschritt 55 ist derjenige, die Elemente, die in der Elementenspeichereinrichtung 26 gespeichert sind, von den Daten in dem Arbeitsspeicher 3 sequentiell durch die Elemententfernungseinrichtung 27 in Fig. 18 zu entfernen.
  • Ein Verarbeitungsschritt 57 ist derjenige, die Daten in dem Arbeitsspeicher 3 zu aktualisieren, oder Elemente hinzuzufügen, und zwar durch die Regelanwendungseinrichtung 28 in Fig. 18 (Details einer Verarbeitung sind später erwähnt).
  • Nach diesem Verarbeitungsschritt 57 kehrt die Betriebsweise zu dem Verarbeitungsschritt 53 zurück und dieselbe Transformationsregel wird zu den Daten in dem Arbeitsspeicher 3 angepaßt.
  • Ein Schritt 58 ist derjenige, zu entscheiden, ob die Transformationsregel, die als nächstes auf die momentan ausgewählte Transformationsregel angewandt werden soll, in dem Kenntnisgrundspeicher 1 vorhanden ist oder nicht. Falls sie vorhanden ist, kehrt die Betriebsweise zu dem Verarbeitungsschritt 51 zurück und die nächste Transformationsregel wird ausgewählt. Falls sie nicht vorhanden ist, wird die Transformationsbearbeitung beendet.
  • Fig. 6 zeigt ein Flußdiagramm, das ein Beispiel einer Anpassungsverarbeitung des Regelzustandsteils in dem Schritt 53 darstellt.
  • Ein Schritt 60 dient dazu, den Term, der in dem Zustandsteil der Transformationsregel verarbeitet werden soll, als den ersten Term zu spezifizieren. Das bedeutet, die Term- Nummer L des Verarbeitungs-Terms ist Nr. 1.
  • Ein Schritt 61 dient dazu, zu entscheiden, ob der Term in der Verarbeitung, das bedeutet der L-te Term, ein Element ausdrückt oder nicht. Falls der L-te Term ein Element ausdrückt, wird ein Schritt 62 verarbeitet und ansonsten wird ein Schritt 66 ausgeführt. Ein Schritt 62 dient dazu, zu prüfen, ob das Element entsprechend zu diesem L-ten Term in dem Arbeitsspeicher 3 vorhanden ist oder nicht, und zwar unter Verwendung der Elementsucheinrichtung 25 in Fig. 18.
  • Wenn das Element entsprechend zu dem L-ten Term nicht in dem Arbeitsspeicher 3 vorhanden ist und falls dort eine logische Äquivalenzregel, die sich auf das Element des L- ten Terms in der logischen Äquivalenzregel 40 bezieht, die in dem logischen Äquivalenzkenntnisgrundspeicher 8 gespeichert ist, vorhanden ist, wird diese Regel verwendet und sie wird dahingehend geprüft, ob irgendein schaltkreismäßiges, logisches Äquivalent zu dem L-ten Element (das bedeutet der Schaltkreis, der aus einem einzelnen Element oder mehrfachen Elementen aufgebaut ist) in dem Arbeitsspeicher 3 vorhanden ist oder nicht. Falls es vorhanden ist, wird dieser Schaltkreis anstelle des L-ten Elements verwendet, und die darauffolgende Verarbeitung wird ausgeführt.
  • Ein Schritt 63 dient dazu, zu entscheiden, ob das entsprechende Element (in seinem Ersatzschaltkreis) in dem vorangehenden Schritt 62 vorhanden war oder nicht. Falls es vorhanden (eingerichtet) war, wird ein Schritt 64 verarbeitet, und falls es nicht vorhanden war, wird die Verarbeitung beendet, da der Zustand nicht eingerichtet ist.
  • Ein Schritt 64 dient dazu, zu entscheiden, ob das Element, dessen Existenz in dem Schritt 62 bestätigt worden ist, entfernt werden sollte oder nicht, wenn diese Transformationsregel angewandt wird (das bedeutet, nachdem der Regelzustand eingerichtet ist). Falls das Element entfernt werden soll, wird ein Schritt 65 verarbeitet, und falls es nicht entfernt werden soll, wird ein Schritt 68 verarbeitet.
  • Ein Schritt 65 dient dazu, das Element, das in dem Schritt 64 entschieden bzw. beurteilt ist, in der Elementspeichereinrichtung 26, die in Fig. 18 dargestellt ist, zu speichern. Allerdings ist nichts in der Elementspeichereinrichtung 26 in ihrem anfänglichen Zustand gespeichert.
  • Ein Schritt 66 dient dazu, verschiedene Verarbeitungen auszuführen, wie beispielsweise eine Zustandsbeurteilung, die durch den L-ten Term repräsentiert ist, und zwar durch einen Befehl zu der Programmausführeinrichtung 6.
  • Ein Schritt 67 dient dazu, zu entscheiden, ob die Verarbeitung, die in dem Schritt 66 ausgeführt ist, eingerichtet ist oder nicht. Falls sie eingerichtet ist, wird ein Schritt 68 verarbeitet, und falls sie nicht eingerichtet ist, ist die Verarbeitung vorüber, da der Zustand nicht eingerichtet ist. Darüberhinaus wird, wenn die Verarbeitung, die im Schritt 67 ausgeführt ist, keine Beurteilung erfordert, sie immer dahingehend betrachtet, daß sie eingerichtet ist.
  • Ein Schritt 68 dient dazu, zu entscheiden, ob der L-te Term der End-Term ist oder nicht. Falls er der End-Term ist, ist die Verarbeitung vorüber, da der Zustand eingerichtet ist, und falls er nicht der endgültige ist, wird 1 zu L im Schritt 69 hinzuaddiert, und die Verarbeitung nach Schritt 61 wird wiederholt in Bezug auf den nächsten Term in dem Regelzustandsteil ausgeführt.
  • Fig. 7 zeigt ein Flußdiag ramm, das ein Beispiel einer Anwendungsverarbeitung 67 des Regelrückschlußteils darstellt.
  • Ein Schritt 70 dient dazu, den Term, der in dem Rückschlußteil der Transformationsregel als der erste Term verarbeitet werden soll, zu spezifizieren. Das bedeutet, der M-te Verarbeitungsterm ist Nr. 1.
  • Ein Schritt 71 dient dazu, zu entscheiden, ob der Term in der Verarbeitung, das bedeutet, der M-te Term stellt ein Element dar, den Start einer untergeordneten Regel vornimmt, oder eine andere Verarbeitung vornimmt. Wenn er ein Element darstellt, wird ein Schritt 73 verarbeitet, wenn er einen Start einer untergeordneten Regel darstellt, wird Schritt 73 verarbeitet, und wenn er eine andere Verarbeitung darstellt, wird ein Schritt 74 verarbeitet.
  • Ein Schritt 72 dient dazu, zusätzlich das Element, das in dem vorherigen Schritt 71 entschieden ist, zu den Daten in dem Arbeitsspeicher 3 durch die Elementhinzufügungseinrichtung 29, die in Fig. 18 dargestellt ist, zu registrieren.
  • Wenn das Element, das zusätzlich registriert werden soll, nicht als das Element geeignet ist, um den Schaltkreis nach einer Transformation aufzubauen und falls dort eine logische Äquivalenzregel vorhanden ist, die sich auf dieses Element in der logischen Äquivalenzregel 40 bezieht, die in dem logischen Äquivalenzkenntnisgrundspeicher 8 gespeichert ist, wird diese Regel verwendet, und anstelle des Elements, das zusätzlich registriert werden soll, wird ein Schaltkreis, der zu dem Element logisch äquivalent ist und geeignet ist (das bedeutet einen Schaltkreis, der auf einem einzelnen Element oder mehrfachen Elementen aufgebaut ist) zusätzlich in dem Arbeitsspeicher 3 registriert.
  • Ein Schritt 74 dient dazu, die verschiedenartige Verarbeitung, die in dem Schritt 71 beurteilt ist, durch Befehligen der Programmausführeinrichtung 6 auszuführen.
  • Ein Schritt 75 dient dazu, zu entscheiden, ob der M-te Term der End-Term des Regelrückschlußteils ist. Falls er der End-Term ist, wird die Verarbeitung beendet, und falls er nicht der endgültige ist, wird 1 zu M im Schritt 76 hinzuaddiert und die Verarbeitung nach dem Schritt 71 wird wiederholt in Bezug auf den nächsten Term des Regelrückschlußteils ausgeführt.
  • Dies beendet die Erläuterung der Schaltkreistransformationsbearbeitung in der dritten Ausführungsform. Als nächstes wird die Schaltkreistransformationsverarbeitung durch Einsetzen des Schaltkreistransformationsverfahrens dieser Erfindung nachfolgend zusammen mit praktischen Beispielen beschrieben.
  • Fig. 22 zeigt ein Beispiel, das einen Teil des Schaltkreises darstellt, der in dem Arbeitsspeicher 3 der vorstehenden Ausführungform gespeichert ist. In dem Schaltkreis in Fig. 22 können ein Inverter 101, ein Inverter 102, ein NOR-Glied 103, ein NAND-Glied 104, ein Inverter 105 und ein NOR-Glied 106 in AND-NOR-Complex-Gatter antd transformiert werden.
  • In diesem herkömmlichen Transformationsverfahren kann diese Transformation in zwei Arten und Weisen realisiert werden.
  • (1) Die erste Art und Weise ist diejenige, eine Transformationsregel zu erstellen, wie in Fig. 23 dargestellt, die logisch zu der Regel äquivalent ist, die in das AND-NOR- Complex-Gatter transformiert werden soll, wie dies in Fig. 20 dargestellt ist, und sie ist auf den Schaltkreis in Fig. 22 anzuwenden.
  • In diesem Verfahren wird, wie durch Vergleich der Transformationsregel in Fig. 20 mit der Transformationsregel in Fig. 23 ersichtlich ist, die Transformationsregel verkompliziert, und es ist notwendig, eine Regel entsprechend zu jedem Fall zu erstellen.
  • (2) In der zweiten Art und Weise werden durch zuerst Anwenden der Transformationsregeln a und b, wie dies in Fig. 24 dargstellt ist, der Inverter 101 und der Inverter 102 und das NOR-Glied 103, und das NAND-Glied 104 und der Inverter 105, wie dies in Fig. 22 dargestellt ist, jeweils in ein 2-Eingangs-AND-Glied und ein 3-Eingangs-AND-Glied transformiert, und dann wird die Transformationsregel, die in Fig. 20 dargestellt ist, angewandt.
  • In diesem Verfahren sind die einzelnen Transformationsregeln einfach, verglichen mit der ersten Art und Weise, allerdings ist es notwendig, dreimal zu transformieren, während einmal in der ersten Art und Weise genug ist, und die Zahl der Regeln wird erhöht und der Zugriff zu dem Arbeitsspeicher 3 ist oft erforderlich.
  • Das Verfahren dieser Erfindung kann die herkömmlichen Probleme lösen. Das bedeutet, daß dann, wenn die Transformationsregel, die in Fig. 20 dargestellt ist, auf den Schaltkreis in Fig. 22 angewandt wird, der Inverter 101 und der Inverter 102 und das NOR- Glied 103 als ein 2-Eingangs-AND-Glied unter Verwendung der logischen Äquivalenzregel (b), wie in Fig. 19 dargestellt ist, erkannt werden, und das NAND-Glied 104 und der Inverter 105 werden als 3-Eingangs-AND-Glied unter Verwendung der logischen Äquivalenzregel (a) in Fig. 19 erkannt, um dadurch Schaltkreise zu transformieren und einen Schaltkreis zu erzeugen, wie dies in Fig. 25 dargestellt ist.
  • Gemäß dieser Ausführungsform sind durch effektives Verwenden der einfachen, logischen Äquivalenzregeln vielfache Verarbeitungsmöglichkeiten mit einer kleinen Anzahl einfacher Regeln möglich und demzufolge werden die nachfolgenden Effekte mit sich gebracht.
  • (1) Die Transformationsregel kann in einer Form sehr nahe zu dem Bild, das der Designer im Auge hat, beschrieben werden.
  • (2) Die Regelbeschreibung ist einfach.
  • (3) Die Qualität der Beschreibung pro Regel kann reduziert werden, während die Anzahl der Transformationsregeln niedrig wird.
  • (4) Da Transformationsregeln klassifiziert werden können, kann die Designkenntnis, die für eine Schaltkreistransformation notwendig ist, in der Kenntnisgrundlage angeordnet und gespeichert werden.
  • (5) Die Schlußfolgerungseffektivität wird merkbar unter Verwendung der logischen Äquivalenzregel erhöht, so daß die Verarbeitungsgeschwindigkeit auch erhöht werden kann.
  • Darüberhinaus wird in Bezug auf die Ausführungsformen eines logischen Aufbauens eines Systems, das das Schaltkreistransformationsverfahren der ersten, zweiten oder dritten Ausführungsform, die hier beschrieben sind, einsetzt, die Funktionsbeschreibungs- Übertragungseinrichtung zum Übertragen bzw. Übersetzen der Funktionsbeschreibung in eine Hardware-Sprache in Verbindung mit Informationen eines Funktionsblocks spezifisch in der Japanischen Patentanmeldung Nr.62-241289 beschrieben; und die Schaltkreistransformationseinrichtung zum Transformieren der Verbindungsinformationen der Blockfunktion in Verbindung mit Informationen eines Schaltkreises oder eines logischen Schaltkreises kann leicht durch die Ausführungsformen dieser Erfindung realisiert werden.
  • Wie vorstehend unter Bezugnahme auf drei Ausführungsformen, und zwar gemäß dieser Erfindung, erläutert ist, kann in der Schaltkreistransformation oder dem logischen Aufbau, der notwendig ist, wenn Schaltkreise aufgebaut werden, die dieselbe Funktion durch unterschiedliche Technologien (oder Vorrichtungen) besitzen, die Transformationskenntnis, die der Designer besitzt, leicht in das System unter Beschreibung durch eine Regel in einem einfachen Format hineingenommen werden, und die Schaltkreistransformation, die durch einen Computer verarbeitet wird, kann unter einer hohen Qualität ebenso erfahren wie der erfahrene Designer ausgeführt werden, während die Verarbeitungsgeschwindigkeit durch die effiziente Schlußfolgerung erhöht werden kann. Weiterhin ist es auch möglich, Technologieänderungen anzupassen. Demgemäß werden die für das Design erforderlichen Arbeitszeiten und die Kosten reduziert und die Designqualität wird erhöht.
  • Während spezifische Ausführungsformen der Erfindung hier dargestellt und beschrieben worden sind, wird erkannt werden, daß andere Modifikationen und Änderungen Fachleuten auf dem betreffenden Fachgebiet innerhalb des Schutzumfangs der Erfindung, wie sie durch die beigefügten Ansprüche definiert ist, ersichtlich werden.

Claims (14)

1. Verfahren zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente gebildet ist, in einen logisch äquivalenten, zweiten Schaltkreis, der durch einen zweiten Satz Elemente gebildet ist, das aufweist
Auswahl (51) einer Kandidatenregel von einem Kenntnisgrundspeicher (1), der Transformationsregeln (10,11,12) speichert, die allgemeine Regeln (10) und lokale Regeln (11,12) aufweisen, wobei jede Regel durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgednickt wird;
Erweitern (52) des Zustandsteils der Kandidatenregel durch Ersetzen eines Bereichs des Zustandsteils, der den Zustandsteil einer lokalen Regel anpaßt, durch den Rückschlußteil der lokalen Regel;
Anpassen (53) des erweiterten Zustandsteils der Kandidatenregel an Schaltkreisdaten, die in einem Arbeitsspeicher (3) gespeichert sind;
Entscheiden (54) der Anwendbarkeit der Kandidatenregel;
Entfernen (55) der Elemente des Zustandsteils der Kandidatenregel von den Schaltkreisdaten in dem Arbeitsspeicher (3);
Erweitern (56) des Rückschlußteils der Kandidatenregel durch Ersetzen eines Bereichs des Rückschlußteils, das den Zustandsteil einer lokalen Regel anpaßt, durch den Rückschlußteil der lokalen Regel; und Anwenden (57) der Kandidatenregel, in der der Zustandsteil und der Rückschlußteil erweitert worden sind, an die Schaltkreisdaten in dem Arbeitsspeicher (3), nachdem die Anwendbarkeit der Kandidatenregel bestätigt ist.
2. Verfahren nach Anspruch 1, wobei der Schritt eines Anwendens der Kandidatenregel (57) aufweist
Registrieren (72) der Elemente, die von Elementen extrahiert sind, die in dem Rückschlußteil der Kandidatenregel beschrieben sind, in die Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind,
Auswählen und Anwenden (73) der lokalen Regel (12), die in dem Kenntnisgrundspeicher (1) gespeichert ist, wie dies durch die Kandidatenregel instruiert ist.
3. Logisches Designsystem zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente gebildet ist, in einen logisch äquivalenten, zweiten Schaltkreis, der durch einen zweiten Satz Elemente gebildet ist, das aufweist
eine Kenntnisgrundspeichereinrichtung (1) zum Speichern von Schaltkreistransformationsregeln (10,11,12), die allgemeine Regeln (10) und lokale Regeln (11,12) aufweisen, wobei jede der Transformationsregeln durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
eine Eingabeeinrichtung (2) zum Eingeben einer funktionalen Beschreibung und zum Überführen der funktionalen Beschreibung in Schaltkreisdaten;
eine Arbeitsspeichereinrichtung (3) zum Speichern der Schaltkreisdaten;
eine Ausgabeeinrichtung (4) zum Liefern der Schaltkreisdaten von dem Arbeitsspeicher (3);
eine Schlußfolgerungseinrichtung (5) zum Rückschließen auf den zweiten Satz Elemente auf der Basis der Transformationsregeln;
eine Programmausführeinrichtung (6) zum Speichern und Ausführen von Programmen, um die Betriebsweise des Systems zu steuern, die Entscheidungen, Operationen und Funktionen gemäß den Transformationsregeln (10,11,12) umfassen, und
wobei die Schlußfolgerungseinrichtung (5) aufweist:
eine Regelauswahleinrichtung (21) und eine lokale Regelauswahleinrichtung (31) zum Auswählen einer Kandidatenregel aus den Transformationsregeln (10,11,12);
eine Regelhalteeinrichtung (22) zum Halten der Kandidatenregel;
eine Regelersetzungseinrichtung (23) zum Erweitern des Zustandsteils und des Rückschlußteils der Kandidatenregel durch Ersetzen eines Bereichs des jeweiligen Teils, der den Zustandsteil einer lokalen Regel anpaßt, durch den Rückschlußteil der lokalen Regel;
eine Elementsucheinrichtung (25) zum Suchen nach Elementen in den Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind;
eine Regelanpassungseinrichtung (24) zum Vergleichen des erweiterten Zustandsteils der Kandidatenregel mit den Schaltkreisdaten in dem Arbeitsspeicher (93), und zwar unter Verwendung der Elementsucheinrichtung (25) und der Programmausführeinrichtung (6), und zum Prüfen der Anwendbarkeit der Kandidatenregel;
eine Elementspeichereinrichtung (26) zum Extrahieren von Elementen, die gemäß den Elementen, die in der Kandidatenregel beschrieben sind, entfernt werden sollen, und zum Speichern der extrahierten Elemente;
eine Elemententfernungseinrichtung (27) zum sequentiellen Entfernen der Elemente, die extrahiert sind und in der Elementspeichereinrichtung (26) gespeichert sind, von den Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind, nachdem die Anwendbarkeit der Kandidatenregel durch die Regelanpassungseinrichtung (24) eingerichtet ist;
eine Regelanwendungseinrichtung (28) zum Aktualisieren der Daten in dem Arbeitsspeicher (3) durch zusätzliches Registrieren der Elemente, die in dem erweiterten Rückschlußteil durch die Programmausführeinrichtung (6) beschrieben sind, nach Bestätigung der Anwendbarkeit; und
eine Elementhinzufügungseinrichtung (29) zum zusätzlichen Registrieren des Elements, das aus Elementen extrahiert ist, die in dem erweiterten Rückschlußteil der Kandidatenregel beschrieben sind, in die Daten, die in dem Arbeitsspeicher (3) gespeichert sind; und
eine Regelanforderungseinrichtung (30) zum Bewirken, daß die Lokal-Regel-Auswahleinrichtung (31) eine neue Transformationsregel auswählt, die angewandt werden soll, und um sie zu der Regelhalteeinrichtung (22) zu übertragen, wie dies gemäß dem Rückschlußteil der Kandidatenregel notwendig ist, die zuletzt durch die Regelanwendungseinrichtung (28) angewandt war.
4. Logisches Designsystem nach Anspruch 3, wobei die Schlußfolgerungseinrichtung (5) weiterhin aufweist
eine Regelersetzungseinrichtung (23) zum Ersetzen eines Teils oder des gesamten einer Kandidatenregel, die in der Regelhalteeinrichtung (22) gehalten wird, durch eine andere Transformationsregel, die den Teil oder das gesamte der Kandidatenregel anpaßt.
5. Logisches Designsystem nach Anspruch 3 oder 4, wobei die Elementspeichereinrichtung (26) Elemente extrahiert, die entfernt werden sollen, gemäß Elementen, die in der Kandidatenregel gespeichert sind, und sie speichert.
6. Verfahren zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente aufgebaut ist, in einen logisch äquivalenten Schaltkreis, der durch einen zweiten Satz Elemente aufgebaut ist, das aufweist:
Auswählen (51) einer Kandidatenregel von einem Kenntnisgrundspeicher (1), der Transformationsregeln (13) speichert, wobei jede Regel durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
Anpassen (53) einer Kandidatenregel an Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind;
Prüfen (54) der Anwendbarkeit der Kandidatenregel;
Anwenden (57) der Kandidatenregel bei den Schaltkreisdaten zum Transformieren des Schaltkreises nach Bestätigung der Anwendbarkeit der Kandidatenregeln, wobei dieser Schritt eines Anwendens der Kandidatenregel die Schritte aufweist:
Entscheiden (81, 83, 91, 93), ob jedes Signal der Ausgangs/Eingangssignale eines Elements eine logische Negation eines spezifischen Signals ausdrückt und Extrahieren des Signals, wenn das Element zusätzlich durch Transformieren in die Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind, registriert werden sollen;
Aktualisieren (85, 95) der Schaltkreisdaten und Extrahieren des Signals von den Schaltkreisdaten gemäß einer logischen Negationsregel, die von einem Logik-Negations-Kenntnisgrundspeicher (7) ausgewählt ist, Speichern der logischen Negationsregeln (20), die einen logischen Schaltkreis auf einen anderen logischen Schaltkreis beziehen, mit mindestens einer Vielzahl negierter Ausgangs/Eingangssignale, falls die logische Negation dahingehend beurteilt ist, daß sie anwendbar ist, wobei dieses Signal äquivalent zu der logischen Negation des spezifischen Signals ist; und
Erzeugen (87, 96) des Signals durch Hinzufügen eines Inverters, der das spezifische Signal akzeptiert, zu den Schaltkreisdaten, falls die logische Negationsregel dahingehend beurteilt wird, daß sie nicht anwendbar ist.
7. Verfahren nach Anspruch 6, bei dem die Schritte eines Entscheidens, eines Aktualisierens und eines Erzeugens aufweisen:
Entscheiden (83), ob ein Eingangssignal eines Schaltkreiselements ein logisches Negationssignal ( Yi) ist;
Entscheiden (84), ob eine logische Negationsregel in dem Logik-Negations-Kenntnisgrundspeicher (7) gespeichert ist, auf einen anderen Schaltkreis anwendbar ist, unter Abgeben eines Signals (Yi), um ein logisches Negationssignal ( Yi) zu erzeugen; Aktualisieren (85) der anderen Schaltkreisdaten gemäß der logischen Negationsregel, falls die logische Negationsregel dahingehend beurteilt wird, daß sie in dem Entscheidungsschritt (84) anwendbar ist; und
Hinzufügen (87) eines Inverters, der ein Signal (Yi) eingibt, zu den Schaltkreisdaten und Erzeugen des logischen Negationssignals ( Yi), falls die logische Negationsregel dahingehend beurteilt wird, daß sie nicht in dem Entscheid ungsschritt (84) anwendbar ist;
Extrahieren (93) eines logischen Negationssignals ( Yi) von dem Ausgangssignal eines Schaltkreiselements, das in einem Arbeitsspeicher (3) gespeichert ist;
Entscheiden (94), ob eine logische Negationsregel, die in einem Logik-Negations- Kenntnisgrundspeicher (7) gespeichert ist, auf den anderen Schaltkreis anwendbar ist, der in dem Arbeitsspeicher (3) gespeichert ist, wobei ein Signal (Yi) eingegeben wird, um das logische Negationssignal ( Yi) einzugeben;
Aktualisieren (95) der anderen Schaltkreisdaten gemäß der logischen Negationsregel, falls die logische Negationsregel dahingehend beurteilt wird, daß sie in dem Entscheidungsschritt (93) anwendbar ist; und
Hinzufügen (96) eines Inverters, der ein Signal (Yi) eingibt, zu den Schaltkreisdaten, und Erzeugen des logischen Negationssignals ( Yi), falls die logische Negationsregel dahingehend beurteilt wird, daß sie nicht in dem Entscheid ungsschritt (94) anwendbar ist.
8. Logisches Designsystem zum Transformieren eines ersten Schaltkreises, der aus einem ersten Satz Elemente aufgebaut ist, in einen logisch äquivalenten zweiten Schaltkreis, der aus einem zweiten Satz Elemente aufgebaut ist, das aufweist
eine Kenntnisgrundspeichereinrichtung (1) zum Speichern von Schaltkreistransformationsregeln (13), wobei jede der Transformationsregeln durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
eine Eingabeeinrichtung (2) zum Eingeben einer funktionalen Beschreibung und zum Überführen der funktionalen Beschreibung in Schaltkreisdaten;
eine Arbeitsspeichereinrichtung (3) zum Speichern der Schaltkreisdaten;
eine Ausgabeeinrichtung (4) zum Liefern von Schaltkreisdaten von dem Arbeitsspeicher (3);
eine Schlußfolgerungseinrichtung (5) zum Rückschließen auf den zweiten Satz Elemente auf der Basis der Transformationsregeln;
eine Programmausführeinrichtung (6) zum Speichern und Ausführen von Programmen von Verarbeitungsvorgängen, die Enscheidungen, Operationen und Funktionen gemäß den Transformationsregeln (13) umfassen, und
einen Logik-Negations-Kenntnisgrundspeicher (7) zum Speichern logischer Negationsregeln (20), die einen logischen Schaltkreis zu einem anderen logischen Schaltkreis mit mindestens einer Mehrzahl negierter Eingangs/Ausgangssignale in Bezug setzen, und wobei die Schlußfolgerungseinrichtung (5) aufweist
eine Regelauswahleinrichtung (14) zum Auswählen einer Kandidatenregel aus den Transformationsregeln (13);
eine Regelhalteeinrichtung (22) zum Halten der Kandidatenregel;
eine Elementsucheinrichtung (25) zum Suchen nach Elementen in den Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind;
eine Regelanpassungseinrichtung (24) zum Vergleichen des Zustandsteils der Kandidatenregel mit den Schaltkreisdaten in dem Arbeitsspeicher (3), und zwar unter Verwendung der Elementsucheinrichtung (25) und der Programmausführeinrichtung (6), und zum Prüfen der Anwendbarkeit der Kandidatenregel;
eine Elementspeichereinrichtung (26) zum Extrahieren von Elementen, die gemäß den Elementen entfernt werden sollen, die in der Kandidatenregel beschrieben sind, und zum Speichern der extrahierten Elemente;
eine Elemententfernungseinrichtung (27) zum sequentiellen Entfernen der Elemente, die extrahiert und in der Elementspeichereinrichtung (26) gespeichert sind, von den Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind, nachdem die Anwendbarkeit der Kandidatenregel durch die Regelanpassungseinrichtung (24) eingerichtet ist;
eine Regelanwendungseinrichtung (28) zum Aktualisieren der Daten in dem Arbeitsspeicher (3) durch zusätzliches Registrieren von Elementen, die in dem Rückschlußteil beschrieben sind, durch die Elementhinzufügungseinrichtung (29) und die Programmausführungseinrichtung (6), nach Bestätigung der Anwendbarkeit; und
eine Elementhinzufügungseinrichtung (29) zum zusätzlichen Registrieren des Elements, das von Elementen extrahiert ist, die in dem Rückschlußteil der Kandidatenregel beschrieben sind, in die Daten, die in dem Arbeitsspeicher (3) gespeichert sind; und
eine ein logisches Negationssignal erzeugende Einrichtung (32) zum Erzeugen des logischen Negationssignals eines spezifischen Signals aus den Daten, die in dem Arbeitsspeicher (3) gespeichert werden sollen, unter Nutzung der logischen Negationsregel (20).
9. Logisches Designsystem nach Anspruch 8, wobei die Elementhinzufügungseinrichtung (29) umfaßt
eine Entscheidungseinrichtung zum Entscheiden, ob jedes der Ausgangs- und Eingangssignale eines Elements, das zusätzlich registriert werden soll, eine logische Negation eines spezifischen Signals ausdrückt, und zum Extrahieren des Signals.
10. Logisches Designsystem nach Anspruch 8 oder 9, wobei die Elementhinzufügungseinrichtung (29) umfaßt
eine Zuordnungseinrichtung zum Zuordnen eines neuen Signalnamens zu einem unbestimmten Ausgangs- oder Eingangssignal des Elements, das zusätzlich registriert werden soll.
11. Verfahren zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente gebildet ist, in einen logisch äquivalenten zweiten Schaltkreis, der aus einem zweiten Satz Elemente gebildet ist, das aufweist
Auswählen (51) einer Kandidatenregel von einem Kenntnisgrundspeicher (1), der Transformationsregeln (13) speichert, wobei jede Regel durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
Anpassen (53) der Kandidatenregel an Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind;
Entscheiden (54) der Anwendbarkeit der Kandidatenregel; und
Anwenden (57) der Kandidatenregeln auf die Schaltkreisdaten zum Transformieren des Schaltkreises, nach Bestätigung der Anwendbarkeit der Kandidatenregel;
Erkennen eines Unterschaltkreises der Schaltkreisdaten als ein logisches Schaltkreisäquivalent zu einem Schaltkreis, der in dem Zustandsteil in der Kandidatenregel beschrieben ist, wenn die Anwendbarkeit nicht bestätigt ist, unter Verwendung einer logischen Äquivalenzregel (40), die in einem Logik-Äquivalenz-Kenntnisgrundspeicher (8) gespeichert ist.
12. Verfahren nach Anspruch 11, wobei der Schritt (57) eines Anwendens der Kandidatenregel weiterhin aufweist
Erzeugen eines Unterschaltkreises, in den Schaltkreisdaten, der logisch äquivalent zu einem Schaltkreis ist, der in dem Rückschlußteil der Kandidatenregel beschrieben ist, unter Verwendung einer logischen Äquivalenzregel (40), die in dem Logik- Äquivalenz-Kenntnisgrundspeicher (8) gespeichert ist.
13. Logisches Designsystem zum Transformieren eines ersten Schaltkreises, der durch einen ersten Satz Elemente gebildet ist, in einen logisch äquivalenten zweiten Schaltkreis, der durch einen zweiten Satz Elemente gebildet ist, das aufweist eine Kenntnisgrundspeichereinrichtung (1) zum Speichern von Schaltkreistransformationsregeln (13), wobei jede der Transformationsregeln durch eine Formel mit einem Zustandsteil und einem Rückschlußteil ausgedrückt wird;
eine Eingabeeinrichtung (2) zum Eingeben einer funktionalen Beschreibung und zum Überführen der funktionalen Beschreibung in Schaltkreisdaten,
eine Arbeitsspeichereinrichtung (3) zum Speichern der Schaltkreisdaten;
eine Ausgabeeinrichtung (4) zum Liefern von Schaltkreisdaten von dem Arbeitsspeicher (3);
eine Schlußfolgerungseinrichtung (5) zum Rückschließen auf den zweiten Satz der Elemente auf der Basis der Transformationsregeln;
eine Programmausführeinrichtung (6) zum Speichern und Ausführen von Programmen von Verarbeitungsvorgängen, die Entscheidungen, Operationen und Funktionen umfassen, gemäß den Transformationsregeln (13),
einen Logik-Äquivalenz-Kenntnisgrundspeicher (8) zum Speichern logischer Äquivalenzregeln (40), die ausdrücken, daß ein Schaltkreis logisch zu einem anderen Schaltkreis äquivalent ist; und
wobei die Schlußfolgerungseinrichtung (5) aufweist
eine Regelauswahleinrichtung (14) zum Auswählen einer Kandidatenregel, wobei die Kandidatenregel eine der Transformationsregeln (13) ist;
eine Regelhalteeinrichtung (22) zum Halten der Kandidatenregel;
eine Elementsucheinrichtung (25) zum Suchen nach einem Element in den Schaltkreisdaten, die in dem Arbeitsspeicher (3) gespeichert sind;
eine Schaltkreiserkennungseinrichtung (8, 25) zum Erkennen eines Unterschaltkreises aus Daten als ein logisches Schaltkreisäquivalent zu einem Bereich eines Zustandsteils der Kandidaten regel und einer solchen der Äquivalenzregel (40), die in dem Äquivalenz-Kenntnisgrundspeicher (8) gespeichert ist;
eine Regelanpassungseinrichtung (24) zum Vergleichen des Zustandsteils der Kandidatenregel mit den Schaltkreisdaten in dem Arbeitsspeicher (3), unter Verwendung der Elementsucheinrichtung (25), der Programmausführeinrichtung (6) und der Schaltkreiserkennungseinrichtung, und zum Prüfen der Anwendbarkeit der Kandidatenregel.
14. Logisches Designsystem nach Anspruch 13, wobei die Schlußfolgerungseinrichtung (5) weiterhin aufweist
eine Elemententfernungseinrichtung (27) zum sequentiellen Entfernen von Elementen, die aus Elementen extrahiert sind, die in deren Kandidatenregel beschrieben sind, von den Daten, die in dem Arbeitsspeicher (3) gespeichert sind;
eine Elementhinzufügungseinrichtung (29) zum zusätzlichen Registrieren des Elements, das von den Elementen extrahiert wird, die in der Kandidatenregel beschrieben sind, in die Daten, die in dem Arbeitsspeicher (3) gespeichert sind;
eine Schaltkreiserzeugungseinrichtung zum Erzeugen eines Unterschaltkreises logisch äquivalent zu einem Bereich eines Rückschlußteils der Kandidatenregel durch die Elementhinzufügungseinrichtung (29) unter Verwendung der Äquivalenzregel (40); und
eine Regelanwendungseinrichtung (28) zum Aktualisieren der Daten, die in dem Arbeitsspeicher (3) gespeichert sind, durch zusätzliches Registrieren des Schaltkreises, der in dem Rückschlußteil der Kandidatenregel beschrieben ist, oder des Schaltkreises, der notwendigerweise durch die Schaltkreiserzeugungseinrichtung erzeugt ist, nach Bestätigung der Anwendbarkeit.
DE3855860T 1987-09-25 1988-09-26 Schaltungsveränderungssystem und -verfahren, Verfahren zur Erzeugung von invertierter Logik und Logikentwurfssystem Expired - Fee Related DE3855860T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP62241288A JPS6482263A (en) 1987-09-25 1987-09-25 Circuit conversion system
JP1294188 1988-01-22
JP6108288 1988-03-15

Publications (2)

Publication Number Publication Date
DE3855860D1 DE3855860D1 (de) 1997-05-15
DE3855860T2 true DE3855860T2 (de) 1997-10-16

Family

ID=27280054

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3855860T Expired - Fee Related DE3855860T2 (de) 1987-09-25 1988-09-26 Schaltungsveränderungssystem und -verfahren, Verfahren zur Erzeugung von invertierter Logik und Logikentwurfssystem

Country Status (4)

Country Link
US (1) US5043914A (de)
EP (1) EP0309292B1 (de)
JP (1) JP2506991B2 (de)
DE (1) DE3855860T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
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
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
CN1468396A (zh) * 2000-08-04 2004-01-14 自动平行设计公司 并行计数器和用于执行乘法的逻辑电路
US7136888B2 (en) 2000-08-04 2006-11-14 Arithmatica Limited Parallel counter and a logic circuit for performing multiplication
GB2373602B (en) 2001-03-22 2004-11-17 Automatic Parallel Designs Ltd A multiplication logic circuit
WO2003004223A2 (en) * 2001-07-05 2003-01-16 Microdexterity Systems, Inc. Parallel manipulator
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
WO2004064254A2 (en) 2003-01-14 2004-07-29 Arithmatica Limited A 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
WO2004104820A2 (en) 2003-05-23 2004-12-02 Arithmatica Limited A sum bit generation circuit

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703435A (en) * 1984-07-16 1987-10-27 International Business Machines Corporation Logic Synthesizer
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 (de) 1991-05-02
EP0309292B1 (de) 1997-04-09
EP0309292A2 (de) 1989-03-29
JP2506991B2 (ja) 1996-06-12
US5043914A (en) 1991-08-27
DE3855860D1 (de) 1997-05-15
JPH01315874A (ja) 1989-12-20

Similar Documents

Publication Publication Date Title
DE3855860T2 (de) Schaltungsveränderungssystem und -verfahren, Verfahren zur Erzeugung von invertierter Logik und Logikentwurfssystem
DE69527563T2 (de) Automationssystem und -verfahren zum LSI-Entwurf
DE69033471T2 (de) Natürliche Sprache verarbeitendes Gerät
DE69521507T2 (de) System und verfahren zur auf einem modell basierender prüfung von lokalen entwurfsregeln
DE69838835T2 (de) Verfahren zur Prüfung und zur Darstellung einer Hardware durch Zerlegung und Aufteilung
DE69029956T2 (de) Vorrichtung zur Parallelisierung von Programmen
DE3788830T2 (de) Anpassbarer Mechanismus zur Durchführung von aufeinanderfolgenden Entscheidungen.
DE3485999T2 (de) Hochgeschwindigkeitverarbeitungssystem fuer rechneranlage.
DE60318471T2 (de) Extraktion von wissen mittels eines objektbasierten semantischen netzes
DE68926956T2 (de) Anordnung zur teilung eines generischen kodes für ein digitales datenverarbeitungssystem
DE69223787T2 (de) System fuer qualitative schlussfolgerung mit paralleler verarbeitung
DE3650156T2 (de) Auf regeln basiertes datenwiederauffindverfahren und anordnung.
DE69528084T2 (de) Verfahren zum Entwurf einer integrierten Halbleiter-Schaltung
DE69030815T2 (de) Apparat und verfahren zur erzeugung von dokumenten
DE69331085T2 (de) Automatisiertes LSI-Entwurfsystem und Verfahren
DE3503119A1 (de) Verfahren zum automatischen erzeugen eines quellenprogramms
DE68927433T2 (de) Schemagenerator und Verfahren zur Schemaherstellung
DE69532307T2 (de) Ausdrucks-Propagierung für hierarchisches Netzlisten
DE68927075T2 (de) Verfahren und System zum Durchführen von Argumentations- aufgaben unter Verwendung von Lehrsätzen mit Hilfe von parallel betriebenen Prozessoren
DE69031998T2 (de) Hilfswerkzeug zum Strukturieren eines Wissensverarbeitungssystems
DE69838441T2 (de) Verfahren und Anordnung zur Verifizierung logischer Geräte
DE3855494T2 (de) Abfragevorrichtung und -methode
DE112018006377T5 (de) Verschmelzen spärlich besetzter kernels zur approximation eines vollen kernels eines neuronalen faltungsnetzes
DE112019004391T5 (de) Grossmodellunterstützung für deep learning
DE102015016413A1 (de) Leiterprogrammabrufvorrichtung, die dazu fähig ist, Leiterschaltungen basierend auf vorgegebenen Signaloperationsbedingungen abzurufen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee