DE3900750A1 - Wissensbasis - verfahren - vorrichtung zum entwerfen integrierter schaltungen mittels funktionaler spezifikationen - Google Patents
Wissensbasis - verfahren - vorrichtung zum entwerfen integrierter schaltungen mittels funktionaler spezifikationenInfo
- Publication number
- DE3900750A1 DE3900750A1 DE3900750A DE3900750A DE3900750A1 DE 3900750 A1 DE3900750 A1 DE 3900750A1 DE 3900750 A DE3900750 A DE 3900750A DE 3900750 A DE3900750 A DE 3900750A DE 3900750 A1 DE3900750 A1 DE 3900750A1
- Authority
- DE
- Germany
- Prior art keywords
- integrated circuit
- flowchart
- cell
- activities
- conditions
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
Die Erfindung betrifft den Entwurf integrierter Schaltungen, insbesondere
ein rechnergestütztes Verfahren und eine derartige Vorrichtung für
den Entwurf integrierter Schaltungen.
Ein ASIC (application specific integrated circuit: applicationsspezifische
integrierte Schaltung) ist ein integrierter Schaltungschip, der
zur Durchführung einer bestimmten Funktion entworfen wurde, im Unterschied
zu Standard-integrierten Schaltungen für allgemeine Zwecke,
beispielsweise Mikroprozessoren, Speicherchips und so weiter. Normalerweise
ist ein sehr erfahrener Entwurfsingenieur mit speziellen Kenntnissen
im Entwurf von VLSI-Schaltkreisen erforderlich, um einen ASIC zu
entwerfen. Beim Entwurf zieht der VLSI-Entwurfsingenieur die zu
erzielenden speziellen Zwecke in Betracht sowie die von der integrierten
Schaltung durchzuführenden Aufgaben, und erzeugt Spezifikationen für das
Entwurfsaufbauniveau, die die unterschiedlichen Hardwarekomponenten
festlegen, die zur Durchführung der gewünschten Funktion erforderlich
sind, ebenso wie die Erfordernisse für die Verbindungen zwischen diesen
Komponenten. Weiterhin muß eine Systemsteuereinrichtung für die Syn
chronisation des Betriebs dieser Komponenten entworfen werden. Dies
erfordert ein breites, allumfassendes Wissen der unterschiedlichen
Hardwarekomponenten, die zur Erzielung der gewünschten Zwecke
erforderlich sind, und ebenso der Erfordernisse für deren Verbindungen,
der Signalpegelkompatibilität, der Zeitablaufkompatibilität, des
physikalischen Layouts, und so weiter. Bei jeder Entwurfstufe muß der
Entwerfer eine mühsame Analyse durchführen. Die Entwurfsspezifikationen,
die der VLSI-Entwurfsingenieur schafft, können beispielsweise in der
Form von schematischen Schaltungen erfolgen, von Parametern oder
spezialisierter Sprachen für die Beschreibung von Hardware (HDLs).
Ausgehend von den Entwurfsspezifikationen auf dem Aufbauniveau wird die
Beschreibung der Hardwarekomponenten und deren Verbindungen in eine Be
schreibung des physikalischen Chip-Layout-Niveaus umgewandelt, welche
die tatsächlichen topologischen Eigenschaften des integrierten Schaltkreis
chips beschreibt. Diese Beschreibung des physikalischen Chip-Layoutniveaus
stellt die Maskendaten zur Verfügung, die zur Herstellung
des Chips benötigt werden.
Infolge der enormen Fortschritte in der Technologie hochintegrierter
Schaltungen (VLSI) werden äußerst komplexe Schaltungssysteme auf einem
einzigen Chip hergestellt. Aufgrund ihrer Komplexität und dem Erfordernis,
kundenspezifische Chips schneller herzustellen und in größeren
Mengen, und da die Anzahl spezifischer Anwendungen immer mehr ansteigt,
müssen CAD-Verfahren (computer-aided design: rechnergestützter Entwurf)
verwendet werden. CAD-Verfahren sind erfolgreich beim Entwurf und der
Überprüfung integrierter Schaltungen eingesetzt worden, sowohl auf dem
Aufbauniveau als auch dem physikalischen Layoutniveau. Beispielsweise
wurden CAD-Systeme entwickelt, um dabei zu helfen, VLSI-Aufbauniveau
beschreibungen integrierter Schaltungen in die topologischen Maskendaten
auf dem physikalischen Layoutniveu umzuwandeln, die zur tatsächlichen Her
stellung des Chips erforderlich sind. Zwar erleichtern die momentan erhältlichen
CAD-Systeme das Entwurfsverfahren wesentlich, allerdings sind
momentan in der Praxis immer noch sehr erfahrene VLSI-Entwurfsingenieure
erforderlich, um die notwendigen Beschreibungen der Hardware auf dem
Aufbauniveau zu erzeugen.
Es gibt nur wenige VLSI-Entwerfer, die die äußerst spezialisierten
Fähigkeiten haben, die zur Herstellung von Beschreibungen von IC-Hardware
auf dem Aufbauniveau benötigt werden. Selbst mit Unterstützung erhältlicher
VLSI-CAD-Werkzeuge (tools) ist der Entwurfsvorgang zeitaufwendig,
und infolge des menschlichen Einflusses ist die Fehlerwahrscheinlichkeit
hoch. Es existiert ein bedeutsamer Bedarf für ein besseres
und kostengünstigeres Vorgehen zum Entwurf kundenspezifischer integrierter
Schaltungen.
Gemäß der vorliegenden Erfindung wird ein CAD-System und ein derartiges
Verfahren bereitgestellt, die es einem Benutzer ermöglichen, die funktionellen
Erfordernisse für eine gewünschte herzustellende integrierte
Schaltung zu definieren, unter Verwendung einer einfach verständlichen
Darstellung auf funktionalem Niveau, und welche hieraus die detaillierten
Informationen erzeugen, die zur direkten Herstellung einer
applikationsspezifischen integrierten Schaltung (ASIC), um diese
spezifischen Funktionen auszuführen, erforderlich sind. Daher eröffnet
die vorliegende Erfindung zum ersten Mal die Möglichkeit des Entwurfs
und der Herstellung von ASICs durch Entwerfer, Ingenieure und Techniker,
die nicht das spezielle Expertenwissen eines sehr erfahrenen VLSI-
Entwurfsingenieurs besitzen.
Die funktionalen Spezifikationen des gewünschten ASIC können auf geeignete
Weise definiert werden, beispielsweise in Listenform oder vorzugsweise
in einem Flußdiagrammformat. Ein Flußdiagramm stellt ein äußerst
wirksames Mittel zur Beschreibung einer Folge logischer Operationen dar,
und wird durch Software- und Hardwareentwerfer mit unterschiedlichem
Niveau an Erfahrung und Ausbildung gut verstanden. Von dem Flußdiagramm
(oder anderen funktionalen Spezifikationen) aus übersetzen das System
und das Verfahren gemäß der vorliegenden Erfindung die funktionalen Spezi
fikationen in eine Definition auf strukturellem Niveau einer integrierten
Schaltung, und die Definition kann direkt zu Herstellung des
ASIC verwendet werden. Die Definition auf strukturellem Niveau umfaßt
eine Liste der IC-Hardwarezellen, die zum Erreichen der funktionalen
Spezifikationen erforderlich sind. Diese Zellen werden aus einer Zellen
bibliothek vorher entworfener Hardwarezellen unterschiedlicher Funk
tionen und technischer Spezifikationen ausgewählt. Das System erzeugt
ebenfalls Datenpfade zwischen den ausgewählten Hardwarezellen. Darüber
hinaus erzeugt die vorliegende Erfindung eine Systemsteuerung und Steuerpfade
für die ausgewählten IC-Hardwarezellen. Die Liste der Hardwarezellen
und der Erfordernisse für deren Verbindung untereinander kann in
Form einer Netzliste dargestellt werden. Ausgehend von der Netzliste ist
es möglich, entweder bekannte manuelle Verfahren oder existierende VLSI-
CAD-Layoutsysteme einzusetzen, um die detaillierte geometrische Information
auf dem Chipniveau (beispielsweise Maskendaten) zu erzeugen, die
zur Herstellung der bestimmten applikationsspezifischen integrierten
Schaltung in Chipform erforderlich ist.
Die bevorzugte Ausführungsform des erfindungsgemäßen Systems beziehungsweise
des erfindungsgemäßen Verfahrens, die nachstehend noch im einzelnen
beschrieben wird, wird als Siliziumkompiler auf Wissensbasis
(KBSC) bezeichnet. Der KBSC ist eine ASIC-Entwurfsmethodenlehre auf der
Grundlage künstlicher Intelligenz (artificial intelligence) und der
Technologie von Expertensystemen. Das Benutzerinterface der KBSC ist ein
Flußdiagramm-Editor, der es dem Entwerfer gestattet, VLSI-Systeme in
Form eines Flußdiagramms darzustellen. Der KBSC verwendet ein Expertensystem
auf Wissensbasis, mit einer Wissensbasis, die von erfahrenen
ASIC-Entwerfern mit hohem Erfahrungsniveau im Entwurf von VLSIs erhalten
wurde, um vom Flußdiagramm eine Netzliste zu erzeugen, welche die ausgewählten
Hardwarezellen und deren erforderliche Verbindungen untereinander
beschreibt.
Die Erfindung wird nachstehend anhand zeichnerisch dargestellter Aus
führungsbeispiele näher erläutert, aus welchen weitere Vorteile und
Merkmale hervorgehen.
Es zeigt
Fig. 1a eine Erläuterung einer Darstellung des Entwurfs auf funktionalem
Niveau eines Abschnitts einer gewünschten herzustellenden
Schaltung, in Form eines Flußdiagramms;
Fig. 1b einer Erläuterung einer Darstellung des Entwurfs auf strukturellem
Niveau einer integrierten Schaltung;
Fig. 1c eine Erläuterung einer Entwurfsdarstellung einer Schaltung auf
einem physikalischen Layoutniveau, wie es bei der Herstellung
eines integrierten Schaltkreischips verwendet wird;
Fig. 2 ein Blockdiagramm mit einer Darstellung, wie Maskendaten für
eine integrierte Schaltung aus Flußdiagramm-Beschreibungen
durch das KBSC-System gemäß der vorliegenden Erfindung erzeugt
werden;
Fig. 3 eine etwas detaillierte schematische Erläuterung mit einer
Darstellung der Hauptkomponenten des KBSC-Systems;
Fig. 4 eine schematische Darstellung zur Erläuterung, wie das
ASIC-Entwurfsystem gemäß der vorliegenden Erfindung aus einer
Zellenbibliothek ausgewählte, vorher definierte IC-Hardwarezellen
heraushieht;
Fig. 5 ein Beispiel eines Flußdiagramms, welches eine Folge funktionaler
Betriebsabläufe definiert, die von einer integrierten
Schaltung durchgeführt werden sollen;
Fig. 6 eine strukturelle Darstellung mit einer Ansicht der Hardwareblöcke
und der erforderlichen Verbindungen zwischen diesen für
die in Fig. 5 definierte integrierte Schaltung;
Fig. 7 eine Darstellung des Flußdiagramm-Editor-Fensters;
Fig. 8 eine Darstellung des Flußdiagramm-Simulator-Fensters;
Fig. 9 eine Erläuterung der bei der Erzeugung der Zellenliste beteiligten
Schritte;
Fig. 10 ein beispielhaftes Flußdiagramm für ein Verkaufsmaschinensys
tem;
Fig. 11 eine Erläuterung der Hardwarekomponenten, die jedem der drei
Macros entsprechen, die in dem Flußdiagramm von Fig. 10 verwendet
werden;
Fig. 12 ein anfängliches Blockschaltbild mit einer Darstellung der
Hardwarekomponenten für eine integrierte Schaltung, wie sie im
Flußdiagramm der Fig. 10 definiert wurde;
Fig. 13 ein Blockschaltbild entsprechend Fig. 12 mit einer Darstellung
der Zwischenverbindungen zwischen Blöcken;
Fig. 14 ein Fig. 13 entsprechendes Blockschaltbild nach einer Optimierung
der Register; und
Fig. 15 ein Fig. 14 entsprechendes Blockschaltbild nach weiterer
Optimierung.
Fig. 1a, 1b und 1c erläutern drei unterschiedliche Niveaus zur Darstellung
des Entwurfs einer integrierten Schaltung. Fig. 1a zeigt eine
funktionale (am Verhalten ausgerichtete) Darstellung in Form eines Fluß
diagramms. Ein Flußdiagramm ist eine graphische Darstellung eines Algorithmus
und besteht aus zwei Arten von Blöcken oder Zuständen, nämlich
Tätigkeiten und Bedingungen (Entscheidungen). Tätigkeiten werden üblicherweise
in dem Flußdiagramm durch ein Rechteck dargestellt, und Bedingungen
werden durch einen Diamanten (rhombenförmig) bezeichnet.
Übergänge zwischen Tätigkeiten und Bedingungen werden durch Linien mit
Pfeilen dargestellt. Fig. 1b zeigt eine Darstellung auf strukturellem
(oder logischem) Niveau einer integrierten Schaltung. In dieser
Darstellung werden Blöcke verwendet, um IC-Hardwarekomponenten zur
Durchführung verschiedener Funktionen darzustellen, und die die Blöcke
verbindenden Linien stellen Pfade für den Fluß von Daten oder
Steuersignalen zwischen den Blöcken dar. Die Blöcke können
beispielsweise Hardwarekomponenten wie Addierer, Komparatoren, Register,
Systemsteuereinheiten, und so weiter darstellen. Fig. 1c erläutert eine
Darstellung auf dem physikalischen Layoutniveau eines Entwurfs für eine
integrierte Schaltung, und diese Darstellung stellt die detaillierten
Maskendaten zur Verfügung, die erforderlich sind, um die Geräte und
Leitungen herzustellen, welche zusammen die integrierte Schaltung
ausmachen.
Wie voranstehend erwähnt erfordert der Entwurf einer integrierten Schaltung
auf dem strukturellem Niveau einen Entwurfsingenieur mit sehr
spezialisierten Kenntnissen und derartiger Erfahrung im Entwurf von
VLSIs. Allerdings können in dem KBSC-System gemäß der vorliegenden Erfindung
integrierte Schaltungen auf einem funktionalen Niveau entworfen
werden, da die Erfahrung zum Entwurf von VLSIs durch die Erfindung bereitgestellt
und von dieser angewendet wird. Dadurch, daß dem Entwerfer
ermöglicht wird, mit Flußdiagrammen anstatt von schematischen Darstellungen
logischer Schaltkreise zu arbeiten, wird die Aufgabe des Entwurfs
kundenspezifischer integrierter Schaltungen erleichtert, beschleunigt,
wird weniger kostenaufwendig und verläßlicher. Der Entwerfer hat
mit einem Algorithmus unter Verwendung einfacher Flußdiagramme auf dem
Niveau des tatsächlichen Verhaltens zu tun, und muß nur die erforderlichen
logischen Schritte zur Durchführung einer Aufgabe wissen, anstelle
der spezifischen Einrichtungen zur Durchführung der Aufgabe. Der
Entwurf mit Flußdiagrammen erfordert weniger Arbeit bei der Durchführung
von Versuchen, das Flußdiagramme es dem Entwerfer gestatten, erheblich
näher am Algorithmus zu arbeiten. Andererseits erfordern bisher bestehende
VLSI-Designwerkzeuge, daß der Entwerfer einen Algorithmus mit
komplexen schematischen Schaltkreisen auf einem strukturellem Niveau
darstellt, was daher mehr Arbeit bei der Versuchsdurchführung erfordert.
Schaltkreisschemata bereiten dem Entwerfer höhere Schwierigkeiten, mit
der Funktion des Algorithmus fertig zu werden, die in das gewünschte
Design eingebaut werden muß, da sie Überlegungen bezüglich der Hardware
und der Funktion vermischen. Die Verwendung von Flußdiagrammen zum
Entwurf kundenspezifischer Schaltungen gestattet es einer großen Anzahl
von Systementwerfern, mit der VLSI-Technologie umzugehen, wogegen
bislang nur eine kleine Anzahl von Entwerfern die Kentnisse und
Fähigkeiten hatte, um die erforderlichen Hardwarebeschreibungen auf
strukturellem Niveau zu erzeugen.
Der gesamte Systemfluß ist in Fig. 2 erläutert. Der Benutzer gibt die
funktionalen Spezifikationen der Schaltung in den Siliciumcompiler auf
Wissensbasis (KBSC) 10 in Form eines Flußdiagramms 11 ein. Der KBSC 10
erzeugt dann eine Netzliste 15 aus dem Flußdiagramm. Die Netzliste 15
umfaßt eine aufgrund der Anforderungen erzeugte Systemsteuerung, sämt
liche anderen Hardwarezellen, die zur Implementierung der erforderlichen
Betriebsabläufe erforderlich sind, und Information für die
Verbindungen zum Verbinden der Hardwarezellen und der Systemsteuerung.
Die Netzliste kann als Eingang für jedes existierende VLSI-Layout- und
Fertigungsplanungs-Werkzeug 16 dienen, um Makendaten 18 für das
geometrische Layout zu erzeugen.
Die hauptsächlichen Elemente oder Module, die das KBSC-System ausmachen,
sind in Fig. 3 dargestellt. Bei der hier erläuterten und beschriebenen
Ausführungsform liegen diese Elemente oder Module in Form
von Softwareprogrammen vor, allerdings ist für Fachleute leicht erkennbar,
daß diese Elemente auf einfache Weise in anderer Form verkörpert
werden können, beispielsweise durch Hardware.
Wie aus Fig. 3 hervorgeht, umfaßt das KBSC-System 10 ein Programm 20
genannt EDSIM, das einen Flußdiagramm-Editor 21 zur Herstellung und zum
Editieren von Flußdiagrammen aufweist sowie einen Flußdiagramm-Simulator
22 zur Simulation und Überprüfung von Flußdiagrammen. Tätigkeiten,
die durch jedes der in dem Flußdiagramm dargestellten Rechtecke durchgeführt
werden sollen, werden aus einer Makrobibliothek 23 ausgewählt. Ein
Programm 30 genannt PSCS (path synthesizer and cell selector: Pfad-Synthese
und Zellenauswahl) umfaßt ein Datenpfad- und Steuerpfad-Synthesizermodul
31, welches ein Wissensbasissystem für die Synthese von
Daten- und Steuerpfaden darstellt. PSCS umfaßt ebenfalls einen Zellenauswähler
32 zur Auswahl der für den Entwurf des Systems erforderlichen
Zellen. Der Zellenauswähler 32 sucht aus einer Zellenbibliothek 34 vorher
entworfener Hardwarezellen die geeignete Zelle oder Zellen aus, die
zur Durchführung jeder Tätigkeit und jeder Bedingung erforderlich sind,
die in dem Flußdiagramm dargestellt sind. Ein Steuergenerator 33 erzeugt
eine kundenspezifisch entworfene Systemsteuerung zum Steuern der
Betriebsabläufe der anderen Hardwarezellen. Die Wissensbasis 35 enthält
Expertenwissen bezüglich ASIC-Entwurf, welches zur Synthese der Datenpfade
und zur Zellenauswahl erforderlich ist. Daher erzeugt PSCS mit
einem funktionalen Flußdiagramm als Eingang eine Systemsteuerung, sucht
alle anderen Hardwarezellen aus, erzeugt Daten- und Steuerpfade, und er
zeugt eine Netzliste, die diese gesamte Entwurfsinformation beschreibt.
Das KBSC-System verwendet einen hierarchischen Entwurfszugang für die
Zellenauswahl des ASIC, wie in Fig. 4 erläutert ist. Anstatt jede
erforderliche Hardwarezelle neu aufzubauen, stützt sich das System auf
eine Zellenbibliothek 34 vorher entworfener, ausgetesteter und erprobter
Hardwarezellen unterschiedlicher Arten und verschiedener funktioneller
Fähigkeiten bei einer gegebenen Art. Die Macrobibliothek 23 enthält
einen Satz von Macros, die verschiedene Tätigkeiten definieren, die in
dem Flußdiagramm festgelegt werden können. Für jede Macrofunktion in der
Macrobibliothek 23 können verschiedene Hardwarezellen in der
Zellenbibliothek 34 unterschiedlicher Geometrie und unterschiedlicher
Eigenschaften existieren, welche die angegebene Funktion durchführen
können. Unter Verwendung eines auf Regeln basierenden Expertensystems
mit einer Wissensbasis 35, die von erfahrenen ASIC-Entwerfern erhalten
wurde, sucht das KBSC-System aus der Zellenbibliothek 34 die optimale
Zelle zur Ausführung der gewünschten Funktion aus.
Wie wiederum aus Fig. 3 hervorgeht, werden die Zellen, die durch den
Zellenauswähler 32 ausgewählt wurden, die Steuerinformation, die durch
den Steuergenerator 33 erzeugt wurde, und die Daten- und Steuerpfade,
die durch den Daten/Steuerpfad-Synthesizer 31 erzeugt wurden, sämtlich
durch das PSCS-Programm 30 benutzt, um die Netzliste 15 zu erzeugen. Die
Netzliste ist eine Liste, die jeden Block in der Schaltung sowie die
Verbindungen zwischen den jeweiligen Eingängen und Ausgängen des Blocks
identifiziert. Die Netzliste stellt sämtliche erforderliche Information
zur Herstellung der integrierten Schaltung zur Verfügung. Rechnergestützte
Entwurfssysteme für die Plazierung von Zellen und für die Fertigungsplanung
sind im Handel erhältlich, welche Netzlistendaten als Eingangsgrößen
empfangen und das Layout der jeweiligen Zellen in dem Chip
durchführen, die erforderliche Fertigungsplanung erzeugen, und Maskendaten
herstellen, welche direkt in einer Chipherstellungsanlage zur Herstellung
integrierter Schaltungen verwendet werden können.
Das KBSC-System kann auf einem geeignet programmierten universellen
digitalen Computer ablaufen. Beispielsweise läuft eine Ausführungsform
des Systems in einer Workstation-Umgebung ab, beispielsweise aus Sun3
und VAXStation-II/GPX unter einem UNIX-Betriebssystem und X-Window Manager.
Die Workstation erfordert ein Minimum von 8 Megabyte
Hauptspeicher und 20 Megabyte Festplattenspeicher. Der verwendete
Monitor ist ein Farbbildschirm mit 8 Bit. Die Software verwendet die
Programmiersprache C und eine INGRES-relationale Datenbank.
Das Benutzerinterface arbeitet hauptsächlich unter Verwendung von Menues
und einer speziellen Befehlssprache. Die permanenten Daten des Entwurfs
integrierter Schaltungen sind in der Datenbank gespeichert, um sie
einfach hervorzuholen und zu überarbeiten. Der Hauptspeicher speichert
die nächsten Daten zeitweilig, sowie den ausführbaren Code,
Entwurfsdaten (Flußdiagramm, Logik, usw.), die Datenbasis (Zellenbibliothek),
und die Wissensbasis. Die CPU führt die Hauptaufgaben der Erzeugung
und Simulation von Flußdiagrammen und die automatische Synthese
des Entwurfs durch.
Um die Abbildung eines Flußdiagramms auf eine Netzliste zu beschreiben,
wird ein in Fig. 5 dargestelltes beispielhaftes Flußdiagramm trachtet,
welches Teil eines größeren Gesamtsystems ist. Bei diesem erläuternden
Flußdiagramm werden zwei Variablen, VAL1 und VAL2, verglichen, und wenn
sie gleich sind, werden sie addiert. In diesem Fall betrifft die erste
Tätigkeit (Tätigkeit 1) die Bewegung des Wertes der Variablen VAL1 zum
Register A. Die zweite Tätigkeit umfaßt die Bewegung des Wertes der
Variablen VAL2 in ein Register B. Die Bedingung 1 umfaßt den Vergleich
der Werte in den Registern A und B. Die Tätigkeit 3 umfaßt die Addition
der Register A und B und das Speichern des Ergebnisses im Register C.
Bei der Herstellung einer integrierten Schaltung zur Ausführung der in
Fig. 5 definierten Funktion bildet der KBSC die Flußdiagramm-Beschreibung
des Verhaltens des Systems ab auf die Erfordernisse für die Verbindung
zwischen Hardwarezellen untereinander. Die Hardwarezellen werden
durch eine Systemsteuerung gesteuert, die sämtliche Steuersignale er
zeugt. Es gibt zwei Arten von Variablen, die bei einer Systemsteuerung
beteiligt sind:
- (1) Eingangsvariablen: Diese werden durch Hardwarezellen erzeugt und/oder sind externe Eingangsgrößen für die Steuerung. Sie entsprechen Bedingungen in dem Flußdiagramm.
- (2) Ausgangsvariablen: Diese werden durch die Systemsteuerung erzeugt und entsprechen Tätigkeiten in dem Flußdiagramm.
Fig. 6 erläutert die Ergebnisse der Abbildung des Flußdiagramms gemäß
Fig. 5 auf Hardwarezellen. Die Tätigkeiten und die Bedingungen in dem
Flußdiagramm werden für die Zellenauswahl und die Synthese der Daten-
und Steuerpfade verwendet. Das VAL1-Register und VAL2-Register und die
sich hiervon erstreckenden Datenpfade wurden bereits Tätigkeiten
zugeordnet, die vor der Tätigkeit 1 in unserem Beispiel geschehen. Die
Tätigkeit 1 bewirkt die Erzeugung des Datenregisters A. Auf ähnliche
Weise bewirkt die Tätigkeit 2 die Zuordnung des Datenregisters B. Der
Komparator wird als ein Ergebnis der Vergleichsoperation in Bedingung 1
zugeordnet. Die Vergleichsoperation wird durch 1) Auswahl einer Komparator
zelle, 2) Abbildung des Eingangs der Komparatorzelle auf die Register A
und B, 3) Erzeugung von Datenpfaden zur Verbindung des Komparators
mit den Registern A und B und 4) Erzeugung von Eingangsvariablen, die
"gleich", "größer als", und "kleiner als" fürdie Systemsteuerung
entsprechen, durchgeführt. Auf ähnliche Weise bewirkt der Addiervorgang
bei der Tätigkeit 3 die Auswahl der Addiererzelle, die Abbildung der
Addiererparameter auf die Register, und die Erzeugung der Datenpfade.
Infolge dieser Vorgehensweise kann eine Blockliste für ein gegebenes
Flußdiagramm erstellt werden. Diese Blockliste besteht aus einer System
steuerung und so vielen anderen Blöcken, wie erforderlich sind, um die
notwendigen Betriebsabläufe durchzuführen. Die Blöcke werden durch Da
tenpfade verbunden, und die Blöcke werden durch die Systemsteuerung über
Steuerpfade gesteuert. Diese Blöcke können auf die Zellen abgebildet
werden, die aus einer Zellenbibliothek ausgewählt wurden, um eine
Zellenliste herzustellen.
Die Erzeugung und Überprüfung des Flußdiagramms ist der erste Schritt
bei der VLSI-Entwurfsmethode. Die Übertragung eines Algorithmus in ein
äquivalentes Flußdiagramm wird mit dem Flußdiagrammeditor 21 (Fig. 3)
durchgeführt. Die Überprüfung des editierten Flußdiagramms wird durch
den Flußdiagramm-Simulator 22 durchgeführt. Der Flußdiagramm-Editor und
-Simulator sind in eine Arbeitsumgebung zum interaktiven Editieren von
Flußdiagrammen eingebettet, mit einem entwerferfreundlichen Interface.
EDSIM ist das Programm, welches den Flußdiagrammeditor 21 und den
Flußdiagrammsimulator 22 enthält. Es stellt weiterhin Funktionen wie das
Laden und Retten von Flußdiagrammen zur Verfügung. EDSIM erzeugt eine
Zwischendatei, Zustandsliste genannt, für jedes Flußdiagramm. Diese
Datei wird dann durch das PSCS verwendet, um eine Netzliste
zu erzeugen.
Der Flußdiagramm-Editor 21 ist ein Softwaremodul, welches zur Darstellung,
Erzeugung und Editierung des Flußdiagramms verwendet wird.
Dieses Modul wird durch das Flußdiagramm-Editierfenster, welches in
Fig. 7 dargestellt ist, gesteuert. Zusammen mit Editierfunktionen
stellt der Flußdiagramm- Editor auch eine Überprüfung von Entwurfsfehlern
zur Verfügung.
Nachstehend erfolgt eine Beschreibung der Betriebsabläufe des Flußdiagramm-
Editors. Die hauptsächlichen Editierfunktionen umfassen die Erzeugung,
Editierung, und das Löschen von Zuständen, Bedingungen und
Übergängen. Der Herstellungs-Betriebsablauf gestattet dem Entwerfer,
einen neuen Zustand, eine neue Bedingung oder neue Übergänge einem Flußdiagramm
hinzufügen. Das Editieren gestattet dem Entwerfer, die
Position eines Zustands, einer Bedingung oder eines Übergangs zu ändern,
und das Löschen gestattet dem Entwerfer, einen Zustand, eine Bedingung
oder einen Übergang von dem momentanen Flußdiagramm zu entfernen. Zustände,
die Tätigkeiten enthalten, sind durch Kästen dargestellt, Bedin
gungen durch Diamanten, und Übergänge sind durch Linien mit Pfeilen dargestellt,
welche die Richtung des Übergangs angeben.
Editiertätigkeiten erlauben es dem Entwerfer, Tätigkeiten jedem Kasten
zuzuordnen. Diese Tätigkeiten bestehen aus Macronamen und Argumenten.
Ein Beispiel für Argumente ist das Setzen und Löschen externer Signale.
Eine Liste von Basismacros, die in der Macrobibliothek 23 verfügbar
sind, ist in Tabelle 1 dargestellt.
Macro | |
Beschreibung | |
ADD (A, B, C) | |
C=A+B | |
SUB (A, B, C) | C=A-B |
MULT (A, B, C) | C=A*B |
DIV (A, B, C) | C=A div B |
DECR (A) | A=A-1 |
INCR (A) | A=A+1 |
CLR (A) | A=0 |
REG (A, B) | B=A |
CMP (A, B) | Vergleiche A mit B und setze EQ, LT, GT Signale |
CMPO (A) | Vergleiche A mit O und setze EQ, LT, GT Signale |
NEGATE (A) | A=NOT (A) |
MOD (A, B, C) | C=A Modulus B |
POW (A, B, C) | C=A ∧ B |
DC2 (A, S1, S2, S3, S4) | Dekodiere A in S1, S2, S3, S4 |
EC2 (S1, S2, S3, S4, A) | Kodiere S1, S2, S3, S4 in A |
MOVE (A, B) | B=A |
CALL sub-flowchart (A, B, . . .) | Rufe ein Unter-Flußdiagramm. Übergib A, B, . . . |
START (A, B, . . .) | Anfangszustand eines Unter-Flußdiagramms |
STOP (A, B, . . .) | Endzustand eines Unter-Flußdiagramms |
Der Flußdiagramm-Editor stellt auch eine grafische Anzeige des Flußdiagramms
zur Verfügung, während der Flußdiagramm-Simulator das Flußdiagramm
simuliert. Diese grafische Darstellung besteht aus Kästen,
Diamanten und Linien, wie in Fig. 7 gezeigt ist. Diese werden alle auf
dem Bildschirm gezeichnet und sehen aus wie ein traditionelles Flußdiagramm.
Durch Anzeige des Flußdiagramms auf dem Bildschirm während der
Simulation wird dem Entwerfer ermöglicht, das Flußdiagramm zur selben
Zeit zu entwerfen und zu überprüfen.
Der Flußdiagramm-Simulator 22 ist ein zur Simulierung von Flußdiagrammen
verwendetes Softwaremodul. Dieses Modul wird durch das in Fig. 8 gezeigte
Simulatorfenster gesteuert. Der Flußdiagramm-Simulator simuliert
die Übergänge zwischen Zuständen und Bedingungen in einem Flußdiagramm.
Nachstehend erfolgt eine Aufstellung der Betriebsabläufe des Flußdiagramm-
Simulators:
edit data - Ändere den Wert eines Registers oder Speichers.
set state - Setze den nächsten zu simulierenden Zustand.
set detail or summary display - Zeige summarische oder Detailinformation während der Simulation an.
set breaks - Setze einen Breakpoint (Unterbrechungspunkt).
clear breaks - Lösche alle Breakpoints.
show breaks - Zeige momentane Breakpoints an.
step - Stufenschritt durch einen Übergang.
execute - Ausführung des Flußdiagramms.
stop - Ausführung des Flußdiagramms anhalten.
history ON or history OFF - Aufzeichnung der Geschichte ein- oder ausschalten
cancel - Momentanen Betriebsablauf löschen
help - "Hilfe-"Anzeige darstellen
close - Simulatorfenster schließen.
set state - Setze den nächsten zu simulierenden Zustand.
set detail or summary display - Zeige summarische oder Detailinformation während der Simulation an.
set breaks - Setze einen Breakpoint (Unterbrechungspunkt).
clear breaks - Lösche alle Breakpoints.
show breaks - Zeige momentane Breakpoints an.
step - Stufenschritt durch einen Übergang.
execute - Ausführung des Flußdiagramms.
stop - Ausführung des Flußdiagramms anhalten.
history ON or history OFF - Aufzeichnung der Geschichte ein- oder ausschalten
cancel - Momentanen Betriebsablauf löschen
help - "Hilfe-"Anzeige darstellen
close - Simulatorfenster schließen.
Die Ergebnisse der Simulation werden innerhalb des Simulatorfensters angezeigt.
Weiterhin verfolgt das Editor-Fenster das Flußdiagramm, während
dieses simuliert wird. Diese Verfolgung des Flußdiagramms macht ein
Editieren des Flußdiagramms einfach, wenn ein Fehler gefunden wird.
Der Zellenauswähler 32 ist ein System auf Wissensbasis zur Auswahl eines
Satzes optimaler Zellen aus der Zellenbibliothek 34, um ein VLSI-System
zu implementieren. Die Auswahl gründet sich auf funktionale Beschreibungen
in dem Flußdiagramm, wie sie durch die Macros angegeben sind, die
jeder in dem Flußdiagramm dargestellten Tätigkeit zugeordnet sind. Die
zur Implementierung eines VLSI-Systems ausgewählten Zellen hängen von
Faktoren ab wie beispielsweise der Funktion der Zelle, der verwendeten
Herstellungstechnologie, Leistungsbegrenzungen, Zeitverzögerungen und so
weiter. Der Zellenauswähler verwendet eine Wissensbasis, die von VLSI-
Entwurfsexperten erstellt wurde, um die Zellenauswahl durchzuführen.
Um ein VLSI-System aus einer Flußdiagramm-Beschreibung einer Benutzer
anwendung zu entwerfen ist es erforderlich, die Funktionen in einem Flußdiagramm
entsprechend Zellen aus einer Zellenbibliothek zuzuordnen.
Diese Abbildung erfordert den Einsatz von Techniken für künstliche
Intelligenz, da der Vorgang der Zellenauswahl kompliziert ist und auf
der Grundlage einer Anzahl von Entwurfsparametern und Entwurfsbedingungen
durchgeführt wird. Das für die Zellenauswahl eingesetzte Konzept
ist analog dem Konzept, wie es beim Kompilieren von Software verwendet
wird. Beim Kompilieren von Software wird eine Anzahl von Unterfunktionen
aus Bibliotheken zusammengefügt (gelinkt). Beim Entwurf von
VLSI-Systemen kann ein funktionales Macro auf eine Bibliothekszelle
abgebildet werden.
Fig. 4 erläutert das Konzept der hierarchischen Zellenauswahl. Der
Zellenauswahlvorgang wird in zwei Stufen durchgeführt.
- (1) Auswahl funktionaler Macros,
- (2) Auswahl geometrischer Zellen.
Ein Satz von Basismacros ist in Tabelle 1 dargestellt. Ein Macro entspricht
einer Tätigkeit in dem Flußdiagramm. Als Beispiel kann der Vorgang
der Addition von A und B und die Speicherung des Ergebnisses in C
betrachtet werden. Diese Funktion wird auf das Additionsmacro ADD (X, Y,
Z) abgebildet. Der Flußdiagramm-Editor und der Flußdiagramm-Simulator
werden zum Zeichnen der Rechtecke, Diamanten und Linien des Flußdiagramms
verwendet, um ein aus der Macrobibliothek 23 ausgewähltes Macro
jeder in dem Flußdiagramm dargestellten Tätigkeit zuzuordnen, und um die
Funktionen in Flußdiagrammen zu überprüfen. Das Flußdiagramm wird in
eine Zwischenform (Zustandsliste) umgewandelt und dem Zellenauswähler
als Eingangsgröße eingegeben.
Der Zellenauswähler verwendet ein auf Regeln basierendes Expertensystem
zur Auswahl der geeigneten Zelle oder Zellen zur Durchführung jeder
Tätigkeit. Wenn die Zellenbibliothek eine Anzahl von Zellen mit unterschiedlichen
Geometrien zur Durchführung der durch das Macro spezifizierten
Operation aufweist, dann kann eine geeignete Zelle auf der
Grundlage von Faktoren wie beispielsweise Zellenfunktion, verwendete
Herstellungstechnologie, Zeitverzögerung, Stromverbrauch, und so weiter
ausgewählt werden.
Die Wissensbasis des Zellenauswählers 32 enthält Information (Regeln) in
bezug auf:
- (1) Auswahl von Macros
- (2) Mischung zweier Macros
- (3) Abbildung von Macros auf Zellen
- (4) Mischung zweier Zellen
- (5) Fehlerdiagnose.
Die voranstehende Information ist in der Wissensbasis 35 als Regeln ge
speichert.
Fig. 9 zeigt die Erzeugungsschritte für die Zellenliste. Der erste
Schritt der Zellenlistenerzeugung ist die Transformation der Flußdiagramm-
Beschreibung in eine Struktur, die durch den Zellenauswähler verwendet
werden kann. Diese Struktur wird als Zustandsliste bezeichnet.
Die Blockliste wird aus der Zustandsliste durch den Schlußfolgerungs
mechanismus erzeugt. Die Blockliste enthält eine Liste der funktionalen
Blöcke, die in der integrierten Schaltung verwendet werden sollen.
Während dieser Stufe werden Regeln der folgenden Art angewendet.
- - Bilde Argumente auf Datenpfade ab
- - Bilde Tätigkeiten auf Macros ab
- - Verbinde diese Blöcke.
Weiterhin sind auf diesem Niveau Regeln zum Optimieren und für die Fehler
diagnose vorgesehen.
Der Zellenauswähler bildet die Blöcke auf Zellen ab, die aus der Zellen
bibliothek 34 ausgewählt werden. Er wählt eine optimale Zelle für einen
Block aus. Dies betrifft die Formulierung von Regeln zur Auswahl geeigneter
Zellen aus der Zellenbibliothek. Vier Arten von Information werden
für jede Zelle gespeichert. Diese sind:
- (1) Information auf funktionalem Niveau: Beschreibung der Zelle auf dem Registerübertragungsniveau;
- (2) Information auf dem Logikniveau: Beschreibung durch Flipflops und Tore (Gates);
- (3) Information auf dem Schaltungsniveau: Beschreibung auf dem Transis torniveau;
- (4) Information auf dem Layoutniveau: Festlegung auf dem Niveau der geometrischen Maske.
Die Attribute einer Zelle sind: Zellennamen, Beschreibung, Funktion,
Breite, Höhe, Status, Technologie, minimale Verzögerung, typische Ver
zögerung, maximale Verzögerung, Leistung, Datei, Entwerfer, Datum,
Kommentar, und Inspektor.
Beim Zellenauswahlvorgang kann die voranstehende Information verwendet
werden. Einige Parameter, die zur Abbildung vom Macros auf Zellen verwendet
werden können, sind:
- (1) Name des Macros
- (2) Auszuführende Funktion,
- (3) Komplexizität des Chips,
- (4) Fabrikationstechnologie,
- (5) zugelassene Verzögerungszeit,
- (6) Leistungsverbrauch, und
- (7) Bitgröße der Macro-Datenpfade.
Die Netzliste wird erzeugt, nachdem die Zellen durch PSCS ausgewählt
wurden. PSCS verwendet ebenfalls die Macro-Definitionen zu Verbindung
der Zellenanschlüsse mit anderen Zellen. PSCS verwendet die Zustands
Übergangsinformation aus einer Zwischenform-Darstellung eines Flußdiagramms
(also der Zustandsliste) zur Erzeugung einer Netzliste. PSCS enthält
das folgende Wissen für die Netzlistenerzeugung:
- 1) Datenpfadsynthese,
- 2) Datenpfadoptimierung,
- 3) Macro-Definitionen,
- 4) Zellenbibliothek, und
- 5) Fehlernachweis und Fehlerkorrektur.
Die voranstehende Information wird in der Wissensbasis als Regeln gespeichert.
Wissensingenieure helfen bei der Formulierung dieser Regeln
durch ASIC-Entwurfsexperten. Die Macrobibliothek 23 und die Zellenbibliothek
34 sind in einer Datenbank (Datenbasis) von KBSC gespeichert.
Von PSCS wird eine Anzahl von Operationen durchgeführt. Nachstehend
erfolgt eine Beschreibung des oberen Niveaus der PSCS-Operationen:
- (1) Lies die Zwischendatei des Flußdiagramms und Erzeuge eine Zustands liste.
- (2) Momentaner Zusammenhang = Start
- (3) Starte den Schlußfolgerungsmechanismus und lade die Regeln für den momentanen Zusammenhang.
- (4) Führe abhängig vom momentanen Zusammenhang eine der folgenden Operationen
durch:
- (a) Modifiziere die Zustandsliste für eine korrekte Implementierung.
- (b) Erzeuge Blockliste, Macroliste und Datenpfade.
- (c) Optimiere die Blockliste und die Datenpfadliste und führe Fehlerüberprüfungen durch.
- (d) Wandle Blöcke in Zellen um.
- (e) Optimiere die Zellenliste und führe Fehlerüberprüfungen durch.
- (f) Erzeuge die Netzliste.
- (g) Optimiere die Netzliste, führe Fehlerüberprüfungen durch, und gehe nach Beendigung zum Schritt 7.
- (5) Wenn sich der momentane Zusammenhang geändert hat, lade neue Zusammen hangsregeln.
- (6) Gehe nach 4.
- (7) Gib Netzlistendatei und stf-Dateien aus und Stopp.
In den nachstehenden Abschnitten werden Operationen beschrieben, die im
Schritt 4 angegeben sind. Die Regelsprache und die PSCS-Darstellung
werden ebenfalls beschrieben.
Die Regelsprache von PSCS ist so ausgewählt, daß sie deklarativ ist und
das Regeleditieren erleichtert. Damit der Experte die Struktur der Wissensbasis
versteht, stellt die Regelsprache Mittel zur Darstellung des
Wissens zur Verfügung. Dies ermöglicht es, das Format der Datenstrukturen
in der Regelbasis zu formulieren, und dies ermöglicht es dem Experten,
hierauf Bezug zu nehmen und die verschiedenen von dem System verwendeten
Strukturen zu verstehen. Beispielsweise kann der Experte den
Aufbau der Verdrahtung analysieren und ihre Komponenten bestimmen. Der
Experte kann dann diese Komponenten mit Regeln verbinden. Wenn ein neues
Objekt definiert werden muß, kann dann der Experte eine neue Struktur
deklarieren und eine existierende Struktur modifizieren, um diese mit
der neuen Struktur zu verbinden. Auf diese Weise kann das Wachstum der
Datenstrukturen besser durch den Experten visuell angezeigt werden. Dies
wiederum hilft dem Entwerfer, Regeln zu aktualisieren und zu ergänzen.
Die folgenden Merkmale sind in der Regelsprache enthalten:
- i) Wissensrepräsentation in Form einer Datensatzstruktur.
- ii) Bedingte Ausdrücke in einem Vorgänger einer Regel.
- iii) Die Möglichkeit zur Erzeugung und Zerstörung von Struktur bei Regeltätigkeiten.
- iv) Das Zuordnungsstatement in der Tätigkeit einer Regel.
- v) Die Möglichkeit zur Eingabe und Ausgabe bei Regeltätigkeiten.
- vi) Die Bereitstellung der Möglichkeit zum Aufrufen von C-Funktionen von Regeltätigkeiten aus.
Das zu verwendende Regelformat ist wie nachstehend angegeben:
Die Schlußfolgerungsstrategie basiert auf einem schnellen Musteranpassungs
algorithmus. Die Regeln sind in einem Netzwerk gespeichert, und es
ist vermieden, daß schrittweise durch die Regeln durchgegangen werden
muß. Diese beschleunigt die Ausführung. Die Konfliktlösungsstrategie,
die verwendet wird, basiert auf folgendem:
- (1) Es wird die Regel ausgewählt, welche die jüngsten Daten enthält.
- (2) Es wird die Regel ausgewählt, welche die komplexeste Bedingung auf weist.
- (3) Es wird die zuerst deklarierte Regel ausgewählt.
PSCS stellt einen interaktiven Regel-Editor zur Verfügung, welcher es
dem Experten ermöglicht, den Regelsatz zu aktualisieren. Die Regeln sind
in einer Datenbasis gespeichert, so daß die Editierfähigkeiten des
Datenbasispaketes zum Regel-Editieren verwendet werden können. Um diesen
Vorgang durchzuführen, mit der Experte mit den verschiedenen Wissens
strukturen und dem Schlußfolgerungsprozeß vertraut sein. Wenn dies nicht
möglich ist, ist die Hilfe eines Wissensingenieurs erforderlich.
PSCS stellt ein Menue zur Verfügung, von welchem verschiedene Optionen
gesetzt werden können. Es sind Einrichtungen zum Setzen verschiedener
Fehlersuchmarken und von Anzeigeoptionen sowie für die Gesamtsteuerung
von PSCS vorgesehen.
Es wird die Möglichkeit bereitgestellt, die von dem Benutzer erzeugte
Blockliste zu retten und anzuzeigen. Die Blocklistenkonfiguration, die
von dem Benutzer erzeugt wurde, kann in einer Datei gesichert und später
mit einem Plotter gedruckt werden. Weiterhin kann die PSCS-Anzeige
zurückgesetzt werden, um den Anzeigevorgang neu zu starten.
Beispielregeln für PSCS | ||
Regel 1: | ||
WENN | kein Block existiert | |
DANN @ | erzeuge eine Systemsteuerung | |
Regel 2: @ | WENN | ein Zustand existiert, der ein Macro aufweist UND dieses Macro noch nicht auf einen Block abgebildet ist |
DANN @ | finde ein korrespondierendes Macro in der Bibliothek und erzeuge einen Block für dieses Macro | |
Regel 3: @ | WENN | ein Übergang zwischen zwei Zuständen existiert UND Macros in diesen Zuständen sind, die dasselbe Argument verwenden |
DANN @ | stelle eine Verbindung von einem dem ersten Macro entsprechenden Register zu einem dem zweiten Macro entsprechenden Register her | |
Regel 4: @ | WENN | ein Register nur eine einzige Verbindung von einem anderen Register hat |
DANN @ | kombiniere diese Register zu einem einzigen Register | |
Regel 5: @ | WENN | zwei Komparatoren vorgesehen sind UND Eingangsdatenbreiten dieselbe Größe aufweisen UND ein Eingang hiervon derselbe ist UND die Ausgänge der Komparatoren verwendet werden, um dieselbe Operation durchzuführen |
DANN @ | verbinde diese Komparatoren zu einem einzigen Komparator | |
Regel 6: @ | WENN | Daten ohne ein Register vorliegen |
DANN @ | ordne ein Register für diese Daten zu | |
Regel 7: @ | WENN | alle Blöcke miteinander verbunden wurden UND ein Block einige nichtverbundene Anschlüsse aufweist |
DANN @ | entferne den Block und seine Anschlüsse, oder gib eine Fehlermeldung aus | |
Regel 8: @ | WENN | Speicher verwendet werden soll, aber hierfür kein Block erzeugt wurde |
DANN @ | erzeuge einen Speicherblock mit Daten, Adresse, Lese- und Schreibdaten und Steueranschlüssen | |
Regel 9: @ | WENN | ein Register eine einzige Verbindung zu einem Zähler aufweist |
DANN @ | kombiniere das Register und den Zähler; entferne das Register und seine Anschlüsse | |
Regel 10: @ | WENN | Verbindungen zu einem Anschluß eines Blocks von zahlreichen unterschiedlichen Blöcken existieren |
DANN @ | füge einen Multiplexer ein; entferne die Verbindungen zu den Anschlüssen und verbinde sie mit dem Eingang des Multiplexers; verbinde den Ausgang des Multiplexers mit dem Eingang des Blocks. |
Zusätzliche Regeln befassen sich mit den folgenden Punkten:
- - Entferne eine Zelle oder Zellen, die ersetzt werden kann bzw. können, durch Verwendung des Ausgangs einer anderen Zelle oder anderer Zellen
- - verringere Multiplexer-Bäume
- - verwende Fan-out von den Zellen, usw.
Das folgende Beispiel erläutert, wie die voranstehend beschriebenen
Merkmale der vorliegenden Erfindung bei dem Entwurf eines anwendungsspezifischen
integrierten Schaltkreises (ASIC) verwendet werden. Bei
diesem erläuternden Beispiel ist der ASIC zur Verwendung als eine Verkaufs
maschinensteuerung ausgelegt. Die Verkaufsmaschinensteuerung
empfängt jedes Mal ein Signal, wenn eine Münze in einer Münzenaufnahme
abgelagert wurde. Der Münzenwert wird aufgezeichnet, und wenn Münzen
empfangen wurden, die zusammen den richtigen Betrag ergeben, erzeugt die
Steuerung ein Signal zur Abgabe eines Erfrischungsgetränks. Wenn Münzen
empfangen werden, die zusammen mehr als die Kosten für das Erfrischungsgetränk
ausmachen, gibt die Steuerung Wechselgeld in der richtigen Menge
ab.
Das Muster für dieses Beispiel einer Verkaufsmaschinensteuerung ist ein
Lehrbuchbeispiel zum Lehren des Entwurfs digitaler Systemsteuerungen.
Vergleiche Fletcher, William I., An Engineering Approach to Digital
Design, Prentice-Hall, Inc., S. 491-505. In diesem Lehrbuchbeispiel kann
weitere Information bezüglich einer vollständigeren Erläuterung der Erfordernisse
für diese Verkaufsmachinensteuerung erhalten werden, und
zum Verständnis und zur Würdigung der komplexen Entwurfsvorgänge - vor
der vorliegenden Erfindung - für den Entwurf der Hardware-Komponenten für
eine Steuereinrichtung.
Fig. 10 erläutert ein Flußdiagramm für das Verkaufsmaschinensteuersystem.
dieses Flußdiagramm würde in das KBSC-System von dem Benutzer
durch den Flußdiagramm-Editor eingegeben werden. Zur kurzen Beschreibung
des Flußdiagramms wird erläutert, daß die Steuerung ein das Vorliegen
einer Münze anzeigendes Signal empfängt, wenn eine Münze in der Münzen
aufnahme empfangen wird. State0 und Cond0 definieren einen Wartezustand,
in welchem die Ablage einer Münze erwartet wird. Das Symbol CP (coin
present) bezeichnet das Vorliegen einer Münze, und das Symbol !CP (coin
not present) bezeichnet das Fehlen einer Münze. State1 und Cond1 bestimmen,
wenn die Münze die Münzenaufnahme verlasen hat. Bei State20, nach
Empfang einer Münze, veranlaßt der Macrobefehl ADD3.1 (lc, cv, sum) das
System, lc (letzte Münze) von cv (coin value: Münzenwert) zu addieren,
und das Ergebnis als Summe (sum) zu speichern. Der State21 zugeordnete
Macrobefehl bewegt den Wert in dem Register sum auf cv. Das Macro CMP.1
bei State22 vergleicht den Wert von cv mit PR (Price: Preis des Erfrischungs
getränks) und gibt Signale EQ, GT und LT zurück. Die Bedingung
Cond2 überprüft das Ergebnis der Vergleichsoperation CMP.1. Wenn das Ergebnis
"nicht größer als" (!GT.CMP.1) ist, dann überprüft die Bedingung
Cond3, ob das Ergebnis "gleich" (EQ.CMP.1) ist. Ist das Ergebnis
"ungleich" (!EQ.CMP.1), dann wird die Steuerung zum State0 zurückgeführt,
wo die Ablage einer weiteren Münze erwartet wird. Ist Cond3 EQ, dann erzeugt
State4 ein Steuersignal, um ein Erfrischungsgetränk abzugeben
(droppop), und der Macrobefehl CLR.1(cv) setzt cv auf Null zurück, und
erwartet einen weiteren Kunden.
Wenn die Gesamtmenge der angegebenen Münzen den Preis überschreitet, dann
erzeugt State30 die Tätigkeit "Münzrückgabe" ("returncoin"). Zusätzlich
verringert das Macro DECR.1 (cv) den Wert von cv um die Menge der zurück
gegebenen Münze. Bei State31 werden cv und PR wiederum verglichen. Falls
cv immer noch größer als PR ist, dann geht die Steuerung über zu State30
zur Rückgabe einer weiteren Münze. Die Bedingung Cod5 überprüft, ob das
Ergebnis von CMP.2 gleich EQ ist, und führt entweder dazu, daß die Abgabe
eines Getränks (droppop) "wahr" ist, oder daß zu State0 verzweigt wird,
wo auf die Ablage einer weiteren Münze gewartet wird. Die den Zuständen
(states) in Fig. 10 zugeordneten Macros entsprechen den voranstehend in
Tabelle 1 definierten Macros und definieren die bestimmten Tätigkeiten,
die in den jeweiligen Zuständen durchgeführt werden sollen.
Anhand A zeigt die Zwischendatei oder "Zustandsliste", die aus dem Flußdiagramm
von Fig. 10 erzeugt wird. Diese Zustandsliste wird als Ausgangsgröße
des EDSIM-Programms 20 erzeugt und als Eingangsgröße für das
PSCS-Programm 30 (Fig. 3) verwendet.
Fig. 11 erläutert für jedes der in dem Flußdiagramm von Fig. 10 ver
wendeten Macros die zugehörigen Hardware-Blöcke. Es wird deutlich, daß
das Vergleichsmacro CMP (A, B) zur Erzeugung eines Registers zum Speichern
des Wertes A führt, eines Registers zum Speichern des Wertes B, und eines
Komparatorblocks, und weiterhin Steuerpfade zur Systemsteuerung erzeugt
für die EQ-, LT- und GT-Signale, die als Ergebnis der Vergleichsoperation
erzeugt wurden. Das Additionsmacro ADD (A, B, C) führt zur Erzeugung eines
Registers für jeden der Eingangswerte A und B, eines Registers für den
Ausgangswert C, und zur Erzeugung eines Addiererblocks. Das Macro DECR
(A) führt zur Erzeugung eines Zählerblocks. Das PSCS-Programm 30 bildet
jedes der im Flußdiagramm von Fig. 10 verwendete Macros auf die
zugehörigen Hardware-Komponenten ab, und dies führt zur Erzeugung der in
Fig. 12 dargestellten Hardware-Blöcke. Zur Erzeugung der dargestellten
Blöcke hat sich das PSCS-Programm 30 auf die Regeln 1 und 2 der
voranstehend angegebenen Beispielregeln verlassen.
Fig. 13 erläutert die Verbindung der Blöcke von Fig. 12 untereinander
mit Datenpfaden und Steuerpfaden. Zur Abbildung der Daten- und Steuerpfade
wurde die Regel 3 durch das Daten/Steuerpfad-Syntheseprogramm 31
verwendet.
Fig. 14 zeigt das Ergebnis der Optimierung des Schaltkreises durch Anwendung
von Regel 4 zur Eliminierung redundanter Register. Als Ergebnis
der Anwendung dieser Regel wurden die Register R2, R3, R7, R8, und R9 in
Fig. 13 entfernt. Fig. 15 zeigt das Blockschaltbild nach weiterer Optimierung,
bei welcher redundante Komparatoren vereinigt werden. Diese
Optimierung wird in dem PSCS-Programm 30 durch Anwendung der Regel 5 er
reicht.
Nachdem nun der Systemsteuerblock, die anderen erforderlichen Hardware-
Blöcke und die Daten- und Steuerpfade für die integrierte Schaltung festgelegt
wurden, erzeugt nunmehr das PSCS-Programm 30 eine Netzliste 15,
welche diese Hardware-Komponenten und deren erforderliche Verbindungen
untereinander definiert. Aus dieser Netzliste können die Maskendaten zur
Erzeugung der integrierten Schaltung direkt unter Verwendung erhältlicher
VLSI-CAD-Werkzeuge hergestellt werden.
name rpop;
data path @ic<0 : 5<, cv<0 : 5<, sum<0 : 5<, @pr<0 : 5<;
data path @ic<0 : 5<, cv<0 : 5<, sum<0 : 5<, @pr<0 : 5<;
{
state4 : state0;
state30 : state21;
state21 : state22;
state20 : state21;
state4 : state0;
state30 : state21;
state21 : state22;
state20 : state21;
state0 :. lcp state0;
state0 :. cp state1;
state1 :. cp state1;
state1 :. lcp state20;
state22 :. GT.CMP.1 state30;
state22 :. IGT.CMP.1*EQ.CMP.1 state4;
state22 :. IGT.CMP.1*IEQ.CMP.1 state0;
state31 :. GT.CMP.2 state30;
state31 :. IGT.CMP.2*EQ.CMP.2 state4;
state31 :. IGT.CMP.2*IEQ.CMP. state0;
state0 :. cp state1;
state1 :. cp state1;
state1 :. lcp state20;
state22 :. GT.CMP.1 state30;
state22 :. IGT.CMP.1*EQ.CMP.1 state4;
state22 :. IGT.CMP.1*IEQ.CMP.1 state0;
state31 :. GT.CMP.2 state30;
state31 :. IGT.CMP.2*EQ.CMP.2 state4;
state31 :. IGT.CMP.2*IEQ.CMP. state0;
state30 :: returncoin;
state30 :: DECR.1(cv);
state4 :: droppop;
state4 :: CLR.1(cv);
state31 :: CMP.2(cv, pr);
state22 :: CMP.1(cv, pr);
state21 :: MOVE.1(sum, cv);
state20 :: ADD3.1(ic, cv, sum);
}
state30 :: DECR.1(cv);
state4 :: droppop;
state4 :: CLR.1(cv);
state31 :: CMP.2(cv, pr);
state22 :: CMP.1(cv, pr);
state21 :: MOVE.1(sum, cv);
state20 :: ADD3.1(ic, cv, sum);
}
Claims (30)
1. Rechnergestütztes (CAD) Entwurfssystem zum Entwerfen einer anwendungs
spezifischen integrierten Schaltung (ASIC), dadurch gekennzeichnet,
daß die anwendungsspezifische integrierte Schaltung direkt aus funktionalen
Spezifikationen für die integrierte Schaltung entworfen wird
mittels einer Eingangseinrichtung, die durch einen Benutzer betätigbar
ist, um funktionale Spezifikationen für die integrierte Schaltung zu
definieren, sowie einer rechnerbetätigten Einrichtung zur Übersetzung
der funktionalen Spezifikationen in eine Definition auf strukturellem
Niveau der integrierten Schaltung.
2. System nach Anspruch 1, dadurch gekennzeichnet, daß die funktionalen
Spezifikationen aus einer Reihe von Tätigkeiten und Bedingungen bestehen,
und daß die Definitionen auf dem strukturellen Niveau aus Blöcken
und Verbindungen der Blöcke untereinander bestehen.
3. System nach Anspruch 1, dadurch gekennzeichnet, daß die Eingabeeinrichtung
eine Flußdiagramm-Editoreinrichtung zur Erzeugung eines Flußdiagramms
umfaßt, welches Elemente aufweist, die eine Reihe von Tätigkeiten
und Bedingungen repräsentieren, welche die funktionalen Spezifikationen
für die integrierte Schaltung beschreiben.
4. System nach Anspruch 1, dadurch gekennzeichnet, daß die rechnerbetätigte
Einrichtung eine Zellenbibliothek aufweist, die einen Satz
erhältlicher Ic-Hardware-Zellen zur Durchführung von Tätigkeiten und
Bedingungen definiert, sowie eine Zellenauswahleinrichtung zur Auswahl
geeigneter Hardware-Zellen entsprechend den Blöcken der strukturellen
Definition aus der Zellenbibliothek.
5. Rechnergestütztes Entwurfssystem zum Entwerfen einer applikations
spezifischen integrierten Schaltung, dadurch gekennzeichnet, daß zum
direkten Entwerfen aus funktionalen Spezifikationen eine Macrobibliothek
vorgesehen ist, welche einen Satz möglicher Tätigkeiten und
Bedingungen festlegt, sowie eine Eingabevorrichtung, die von einem
Benutzer betätigbar ist, um funktionale Spezifikationen für die integrierte
Schaltung festzulegen, wobei die funktionalen Spezifikationen
aus einer Reihe von Tätigkeiten und Bedingungen bestehen und die Eingabeeinrichtung
eine Einrichtung aufweist, die es dem Benutzer
gestattet, für jede Tätigkeit und Bedingung in der definierten Reihe
von Tätigkeiten und Bedingungen ein Macro festzulegen, welches aus der
Macrobibliothek ausgewählt ist, und daß eine Zellenbibliothek vorgesehen
ist, die einen Satz erhältlicher IC-Hardware-Zellen zur Durchführung
von Tätigkeiten und Bedingungen definiert, sowie eine Zellenauswahleinrichtung
zur Auswahl geeigneter Hardware-Zellen zur Durchführung
der Tätigkeit oder Bedingung, die durch das bestimmte Macro
definiert ist, aus der Zellenbibliothek für jedes durch die Spezifikations
einrichtung festgelegte Macro.
6. System nach Anspruch 5, dadurch gekennzeichnet, daß die Zellenauswahl
einrichtung eine Wissensbasis umfaßt, welche Regeln zur Auswahl von
Hardware-Zellen aus der Zellenbibliothek enthält, sowie eine Schluß
folgerungsmechanismus-Einrichtung zur Auswahl geeigneter Hardware-Zellen
aus der Zellenbibliothek in Übereinstimmung mit den Regeln der
Wissensbasis.
7. System nach Anspruch 5, dadurch gekennzeichnet, daß die Eingabeeinrichtung
eine Flußdiagramm-Editoreinrichtung zur Erzeugung eines Flußdiagramms
aufweist, welches die Reihe von Aktionen und Bedingungen
repräsentierende Elemente aufweist.
8. System nach Anspruch 7, dadurch gekennzeichnet, daß zusätzlich eine
Flußdiagramm-Simulatoreinrichtung zum Simulieren der in dem Flußdiagramm
definierten Funktionen vorgesehen ist, um so dem Benutzer zu
ermöglichen, den Betriebsablauf der integrierten Schaltung zu
überprüfen.
9. System nach Anspruch 5, dadurch gekennzeichnet, daß die Eingabeeinrichtung
eine Einrichtung zum Empfang einer Benutzereingabe einer
Liste aufweist, welche die Reihe von Tätigkeiten und Bedingungen
definiert.
10. System nach Anspruch 5, dadurch gekennzeichnet, daß weiterhin eine
Datenpfad-Erzeugereinrichtung vorgesehen ist, welche mit der Zellenauswahl
einrichtung zur Erzeugung von Datenpfaden für die Hardware-Zellen
zusammenarbeitet, welche durch die Zellenauswahleinrichtung
ausgewählt wurden.
11. System nach Anspruch 10, dadurch gekennzeichnet, daß die Datenpfad-
Erzeugereinrichtung eine Wissensbasis umfaßt, welche Regeln zur Auswahl
von Datenpfaden zwischen Hardware-Zellen enthält, und eine
Schlußfolgerungsmechanismus-Einrichtung zur Auswahl von Datenpfaden
zwischen den durch die Zellenauswahleinrichtung ausgewählten Hardware-
Zellen aufweist in Übereinstimmung mit den Regeln der Wissensbasis
und den Argumenten der angegebenen Macros.
12. System nach Anspruch 10, dadurch gekennzeichnet, daß weiterhin eine
Steuergeneratoreinrichtung zur Erzeugung einer Steuerung und von
Steuerpfaden für die von der Zellenauswahleinrichtung ausgewählten
Hardwarezellen vorgesehen ist.
13. System nach Anspruch 5, dadurch gekennzeichnet, daß eine Netzlisten
generatoreinrichtung vorgesehen ist, welche mit der Zellenauswahleinrichtung
zusammenwirkt, um als Ausgangsgröße des Systems eine Netzliste
zu erzeugen, welche die Hardwarezellen definiert, die erforderlich
sind, um die funktionalen Erfordernisse der integrierten Schaltung
und die Verbindungen in dieser bereit zu stellen.
14. System nach Anspruch 13, dadurch gekennzeichnet, daß weiterhin eine
Maskendatengeneratoreinrichtung zur Erzeugung der Maskendaten, die
zur Herstellung einer integrierten Schaltung mit den spezifizierten
funktionalen Erfordernissen erforderlich sind, von der Netzliste vorgesehen
ist.
15. Rechnergestütztes Entwurfssystem zum Entwerfen einer applikationsspezifischen
integrierten Schaltung, dadurch gekennzeichnet, daß zum
direkten Entwerfen der Schaltung von einem Flußdiagramm, welches die
funktionalen Erfordernisse der integrierten Schaltung festlegt, eine
Macrobibliothek vorgesehen ist, welche einen Satz möglicher Tätigkeiten
und Bedingungen definiert, eine Flußdiagramm-Editiereinrichtung,
welche von einem Benutzer betätigbar ist, um ein Flußdiagramm zu erzeugen,
welches Tätigkeiten und Bedingungen repräsentierende Elemente
aufweist, wobei die Flußdiagramm-Editiereinrichtung eine Macro-Spezi
fizierungseinrichtung aufweist, um dem Benutzer zu gestatten, für
jede in dem Flußdiagramm repräsentierte Tätigkeit oder Bedingung ein
Macro zu spezifizieren, welches aus der Macrobibliothek ausgewählt
ist, eine Zellenbibliothek, welche einen Satz erhältlicher IC-Hardwarezellen
zur Durchführung von Tätigkeiten und Bedingungen definiert,
eine Zellenauswahleinrichtung zur Auswahl, aus der Zellenbibliothek
für jedes spezifizierte Macro, geeigneter Hardwarezellen zur
Durchführung der Tätigkeit oder Bedingung, welche durch das spezifizierte
Macro definiert ist, und eine Datenpfadgeneratoreinrichtung,
welche mit der Zellenauswahleinrichtung zusammenwirkt, um Datenpfade
für die durch die Zellenauswahleinrichtung ausgewählten Hardwarezellen
zu erzeugen.
16. System nach Anspruch 15, dadurch gekennzeichnet, daß die Zellenaus
wahleinrichtung eine Wissensbasis aufweist, welche Regeln zur Auswahl
von Hardwarezellen aus der Zellenbibliothek enthält, und eine
Schlußfolgerungsmechanismuseinrichtung, um geeignete Hardwarezellen
aus der Zellenbibliothek in Übereinstimmung mit den Regeln der Wissensbasis
auszuwählen, und daß die Datenpfadgeneratoreinrichtung eine
Wissensbasis umfaßt, welche Regeln zur Auswahl von Datenpfaden
zwischen Hardwarezellen enthält, sowie eine Schlußfolgerungsmechanismus
einrichtung zur Auswahl von Datenpfaden zwischen Hardwarezellen,
die durch die Zellenauswahleinrichtung ausgewählt wurden, in
Übereinstimmung mit den Regeln der Wissensbasis und den Argumenten der
spezifizierten Macros.
17. System nach Anspruch 15, dadurch gekennzeichnet, daß weiterhin eine
Steuergeneratoreinrichtung zur Erzeugung einer Steuerung und von
Steuerpfaden für die von der Zellenauswahleinrichtung ausgewählten
Hardwarezellen vorgesehen ist.
18. Rechnergestütztes Entwurfsystem für den Entwurf einer applikations
spezifischen integrierten Schaltung, dadurch gekennzeichnet, daß zum
direkten Entwurf der Schaltung aus einem Flußdiagramm, welches die
funktionalen Erfordernisse der integrierten Schaltung festlegt, eine
Flußdiagramm-Editiereinrichtung vorgesehen ist, welche durch einen
Benutzer betätigbar ist, um ein Flußdiagramm zu erzeugen, welches
Tätigkeiten repräsentierende Kästen aufweist, Bedingungen repräsentierende
Diamanten, und Übergänge zwischen Tätigkeiten und Bedingungen
repräsentierende Linien mit Pfeilen, und eine Einrichtung
umfaßt, um für jeden Kasten oder Diamanten eine bestimmte Tätigkeit
oder Bedingung, welche durchgeführt werden soll, zu spezifizieren,
weiterhin eine Zellenbibliothek vorgesehen ist, welche einen Satz erhältlicher
IC-Hardwarezellen zur Durchführung von Tätigkeiten und
Bedingungen definiert, eine Wissensbasis, welche Regeln zur Auswahl
von Hardwarezellen aus der Zellenbibliothek und zur Erzeugung von Daten-
und Steuerpfaden für Hardwarezellen enthält, und eine Experten
systemeinrichtung, welche mit der Wissensbasis betreibbar ist, um das
durch die Flußdiagramm-Editiereinrichtung definierte Flußdiagramm in
einer Netzliste zu übersetzen, welche die erforderlichen Hardwarezellen
und die Daten- und Steuerpfade definiert, die in einer integrierten
Schaltung erforderlich sind, welche die spezifizierten funktionalen
Anforderungen erfüllt.
19. System nach Anspruch 18, dadurch gekennzeichnet, daß eine Maskendaten
generatoreinrichtung zur Erzeugung der Maskendaten, die zur Herstellung
einer integrierten Schaltung mit den spezifizierten funktionalen
Anforderungen erforderlich sind, von der Netzliste vorgesehen
ist.
20. Rechnergestütztes Entwurfsverfahren zum Entfernen einer applikations
spezifischen integrierten Schaltung, welche eine gewünschte Funktion
durchführt, gekennzeichnet durch folgende Schritte:
Speichern eines Satzes von Definitionen möglicher Tätigkeiten und Be dingungen;
Speichern von Daten, welche einen Satz verfügbarer IC-Hardwarezellen zur Durchführung der Tätigkeiten und Bedingungen, die in dem gespeicherten Satz definiert sind, beschreiben;
Beschreiben einer Reihe von Tätigkeiten und Bedingungen für eine vorgeschlagene applikationsspezifische integrierte Schaltung;
Angabe einer der gespeicherten Definitionen, welche der gewünschten durchzuführenden Tätigkeit oder Bedingung entspricht, für jede beschriebene Tätigkeit und Bedingung der Reihe; und
Auswahl einer korrespondierenden IC-Hardwarezelle zur Durchführung der gewünschten Funktion der applikationsspezifischen integrierten Schaltung aus den gespeicherten Daten für jede der spezifizierten Definitionen.
Speichern eines Satzes von Definitionen möglicher Tätigkeiten und Be dingungen;
Speichern von Daten, welche einen Satz verfügbarer IC-Hardwarezellen zur Durchführung der Tätigkeiten und Bedingungen, die in dem gespeicherten Satz definiert sind, beschreiben;
Beschreiben einer Reihe von Tätigkeiten und Bedingungen für eine vorgeschlagene applikationsspezifische integrierte Schaltung;
Angabe einer der gespeicherten Definitionen, welche der gewünschten durchzuführenden Tätigkeit oder Bedingung entspricht, für jede beschriebene Tätigkeit und Bedingung der Reihe; und
Auswahl einer korrespondierenden IC-Hardwarezelle zur Durchführung der gewünschten Funktion der applikationsspezifischen integrierten Schaltung aus den gespeicherten Daten für jede der spezifizierten Definitionen.
21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, daß der Schritt
der Auswahl einer Hardwarezelle den Schritt der Anwendung eines
Satzes von in einer Wissensbasis gespeicherten Zellenauswahlregeln
auf die spezifizierte Definition der durchzuführenden Tätigkeit oder
Bedingung umfaßt.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, daß der weitere
Schritt der Erzeugung von Datenpfaden für die ausgewählten IC-Hard
warezellen vorgesehen ist.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, daß der Schritt
der Erzeugung von Datenpfaden die Anwendung eines Satzes von Datenpfadregeln,
die in einer Wissensbasis gespeichert sind, auf die
ausgewählten Zellen umfaßt sowie hieraus die Erzeugung von Daten
pfaden.
24. Verfahren nach Anspruch 23, dadurch gekennzeichnet, daß der weitere
Schritt der Erzeugung von Steuerpfaden für die ausgewählten IC-
Hardwarezellen vorgesehen ist.
25. Verfahren nach Anspruch 20, dadurch gekennzeichnet, daß der weitere
Schritt der Erzeugung einer Netzliste vorgesehen ist, welche die
Hardwarezellen definiert, die erforderlich sind, um die gewünschte
Funktion der integrierten Schaltung durchzuführen, und die hierfür
erforderlichen Zwischenverbindungen definiert, für die ausgewählten
IC-Hardwarezellen.
26. Verfahren nach Anspruch 25, dadurch gekennzeichnet, daß von der Netz
liste die Maskendaten erzeugt werden, welche erforderlich sind, um
eine integrierte Schaltung mit der gewünschten Funktion herzustellen.
27. Ein auf Wissen basierendes Entwurfsverfahren zum Entfernen einer app
likationsspezifischen integrierten Schaltung, die eine gewünschte
Funktion durchführt, mit folgenden Schritten:
Speichern eines Satzes von Macros, welche mögliche Tätigkeiten und Bedingungen definieren, in einer Macrobibliothek;
Speichern eines Satzes erhältlicher IC-Hardwarezellen zur Durchführung der Tätigkeiten und Bedingungen in einer Zellenbibliothek;
Speichern eines Satzes von Regeln zur Auswahl von Hardwarezellen aus der Zellenbibliothek zur Durchführung der Tätigkeiten und Bedingungen, welche durch die gespeicherten Macros definiert sind, in einer Wissens basis;
Beschreibung einer Reihe von Tätigkeiten und Bedingungen, welche die von der integrierten Schaltung auszuführende Funktion tragen, für eine vorgeschlagene applikationsspezifische integrierte Schaltung;
Spezifizierung eines Macros, welches aus der Macrobibliothek ausgewählt ist, das der Tätigkeit oder Bedingung entspricht, für jede beschreibende Tätigkeit oder Bedingung der Reihe; und
Anwendung von Regeln der Wissensbasis auf die spezifizierten Macros, um aus der Zellenbibliothek die Hardwarezellen auszuwählen, welche zur Durchführung der gewünschten Funktion der applikationsspezifischen integrierten Schaltung erforderlich sind.
Speichern eines Satzes von Macros, welche mögliche Tätigkeiten und Bedingungen definieren, in einer Macrobibliothek;
Speichern eines Satzes erhältlicher IC-Hardwarezellen zur Durchführung der Tätigkeiten und Bedingungen in einer Zellenbibliothek;
Speichern eines Satzes von Regeln zur Auswahl von Hardwarezellen aus der Zellenbibliothek zur Durchführung der Tätigkeiten und Bedingungen, welche durch die gespeicherten Macros definiert sind, in einer Wissens basis;
Beschreibung einer Reihe von Tätigkeiten und Bedingungen, welche die von der integrierten Schaltung auszuführende Funktion tragen, für eine vorgeschlagene applikationsspezifische integrierte Schaltung;
Spezifizierung eines Macros, welches aus der Macrobibliothek ausgewählt ist, das der Tätigkeit oder Bedingung entspricht, für jede beschreibende Tätigkeit oder Bedingung der Reihe; und
Anwendung von Regeln der Wissensbasis auf die spezifizierten Macros, um aus der Zellenbibliothek die Hardwarezellen auszuwählen, welche zur Durchführung der gewünschten Funktion der applikationsspezifischen integrierten Schaltung erforderlich sind.
28. Verfahren nach Anspruch 27, dadurch gekennzeichnet, daß der Schritt
der Beschreibung einer Reihe von Tätigkeiten und Bedingungen die Erzeugung
eines Flußdiagramms umfaßt, welches Elemente aufweist, die
Tätigkeiten und Bedingungen darstellen.
29. Verfahren nach Anspruch 27, dadurch gekennzeichnet, daß weiterhin
folgende Schritte vorgesehen sind:
Speichern eines Satzes von Regeln zur Erzeugung von Datenpfaden zwischen Hardwarezellen in einer Wissensbasis und
Anwendung von Regeln der Wissensbasis auf die spezifizierte Einrichtung, um Datenpfade für die ausgewählten Hardwarezellen zu schaffen.
Speichern eines Satzes von Regeln zur Erzeugung von Datenpfaden zwischen Hardwarezellen in einer Wissensbasis und
Anwendung von Regeln der Wissensbasis auf die spezifizierte Einrichtung, um Datenpfade für die ausgewählten Hardwarezellen zu schaffen.
30. Verfahren nach Anspruch 29, dadurch gekennzeichnet, daß weiterhin die
Schritte der Erzeugung einer Steuerung und der Erzeugung von Steuerpfaden
für die ausgewählten Hardwarezellen vorgesehen sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/143,821 US4922432A (en) | 1988-01-13 | 1988-01-13 | Knowledge based method and apparatus for designing integrated circuits using functional specifications |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3900750A1 true DE3900750A1 (de) | 1989-07-27 |
Family
ID=22505806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3900750A Ceased DE3900750A1 (de) | 1988-01-13 | 1989-01-12 | Wissensbasis - verfahren - vorrichtung zum entwerfen integrierter schaltungen mittels funktionaler spezifikationen |
Country Status (5)
Country | Link |
---|---|
US (1) | US4922432A (de) |
JP (1) | JP2862886B2 (de) |
DE (1) | DE3900750A1 (de) |
GB (1) | GB2213967B (de) |
NL (1) | NL192892C (de) |
Families Citing this family (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5610828A (en) * | 1986-04-14 | 1997-03-11 | National Instruments Corporation | Graphical system for modelling a process and associated method |
US5212650A (en) * | 1986-09-12 | 1993-05-18 | Digital Equipment Corporation | Procedure and data structure for synthesis and transformation of logic circuit designs |
US5095441A (en) * | 1986-09-12 | 1992-03-10 | Digital Equipment Corporation | Rule inference and localization during synthesis of logic circuit designs |
US5150308A (en) * | 1986-09-12 | 1992-09-22 | Digital Equipment Corporation | Parameter and rule creation and modification mechanism for use by a procedure for synthesis of logic circuit designs |
US5151867A (en) * | 1986-09-12 | 1992-09-29 | Digital Equipment Corporation | Method of minimizing sum-of-product cases in a heterogeneous data base environment for circuit synthesis |
US5197016A (en) * | 1988-01-13 | 1993-03-23 | International Chip Corporation | Integrated silicon-software compiler |
JPH01226066A (ja) * | 1988-03-04 | 1989-09-08 | Hitachi Ltd | ディジタル信号処理プロセッサ |
JPH0769926B2 (ja) * | 1988-03-18 | 1995-07-31 | 株式会社日立製作所 | 符号解読型選択論理生成装置 |
US5173864A (en) * | 1988-08-20 | 1992-12-22 | Kabushiki Kaisha Toshiba | Standard cell and standard-cell-type integrated circuit |
JPH0786883B2 (ja) * | 1988-09-09 | 1995-09-20 | 松下電器産業株式会社 | 網図または諭理回路図自動生成方法およびそのシステム |
US5452231A (en) * | 1988-10-05 | 1995-09-19 | Quickturn Design Systems, Inc. | Hierarchically connected reconfigurable logic assembly |
US5208768A (en) * | 1988-11-14 | 1993-05-04 | Digital Equipment Corporation | Expert system including arrangement for acquiring redesign knowledge |
US5283857A (en) * | 1988-11-14 | 1994-02-01 | Digital Equipment Corporation | Expert system including arrangement for acquiring redesign knowledge |
US5329470A (en) * | 1988-12-02 | 1994-07-12 | Quickturn Systems, Inc. | Reconfigurable hardware emulation system |
US5109353A (en) * | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
US5140526A (en) * | 1989-01-06 | 1992-08-18 | Minc Incorporated | Partitioning of Boolean logic equations into physical logic devices |
US5187784A (en) * | 1989-01-13 | 1993-02-16 | Vlsi Technology, Inc. | Integrated circuit placement method using netlist and predetermined ordering constraints to produce a human readable integrated circuit schematic diagram |
US5241656A (en) * | 1989-02-06 | 1993-08-31 | International Business Machines Corporation | Depth buffer clipping for window management |
US5371683A (en) * | 1989-03-22 | 1994-12-06 | Kabushiki Kaisha Toshiba | LSI design support system |
US5369593A (en) | 1989-05-31 | 1994-11-29 | Synopsys Inc. | System for and method of connecting a hardware modeling element to a hardware modeling system |
US5353243A (en) | 1989-05-31 | 1994-10-04 | Synopsys Inc. | Hardware modeling system and method of use |
JPH0341519A (ja) * | 1989-07-10 | 1991-02-22 | Hitachi Ltd | 知識処理システム |
US5243538B1 (en) * | 1989-08-09 | 1995-11-07 | Hitachi Ltd | Comparison and verification system for logic circuits and method thereof |
DE69032640D1 (de) * | 1989-09-05 | 1998-10-15 | Lsi Logic Corp | Logik-Kompilator zum Entwurf von Schaltungsmodellen |
JP2801931B2 (ja) * | 1989-09-07 | 1998-09-21 | 松下電器産業株式会社 | 論理設計処理装置および回路変換ルール翻訳装置ならびに回路変換ルール翻訳方法 |
US5307282A (en) * | 1989-09-22 | 1994-04-26 | Hewlett-Packard Company | Method of computer-aided prediction of collisions between objects including fabrication tools and parts to be fabricated |
US5231590A (en) * | 1989-10-13 | 1993-07-27 | Zilog, Inc. | Technique for modifying an integrated circuit layout |
US5448494A (en) * | 1989-12-20 | 1995-09-05 | Fujitsu Limited | Mask data processing apparatus for integrated circuit production |
US5448493A (en) * | 1989-12-20 | 1995-09-05 | Xilinx, Inc. | Structure and method for manually controlling automatic configuration in an integrated circuit logic block array |
US5367468A (en) * | 1990-02-21 | 1994-11-22 | Kabushiki Kaisha Toshiba | Design aid method and design aid apparatus for integrated circuits |
US5384710A (en) * | 1990-03-13 | 1995-01-24 | National Semiconductor Corporation | Circuit level netlist generation |
US5084824A (en) * | 1990-03-29 | 1992-01-28 | National Semiconductor Corporation | Simulation model generation from a physical data base of a combinatorial circuit |
US5553002A (en) * | 1990-04-06 | 1996-09-03 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface |
US5222030A (en) * | 1990-04-06 | 1993-06-22 | Lsi Logic Corporation | Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof |
US5544066A (en) * | 1990-04-06 | 1996-08-06 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of low-level design constraints |
US5867399A (en) * | 1990-04-06 | 1999-02-02 | Lsi Logic Corporation | System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description |
US5555201A (en) * | 1990-04-06 | 1996-09-10 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information |
US5572437A (en) * | 1990-04-06 | 1996-11-05 | Lsi Logic Corporation | Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models |
US5557531A (en) * | 1990-04-06 | 1996-09-17 | Lsi Logic Corporation | Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation |
US5623418A (en) * | 1990-04-06 | 1997-04-22 | Lsi Logic Corporation | System and method for creating and validating structural description of electronic system |
US5572436A (en) * | 1990-04-06 | 1996-11-05 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design |
US5544067A (en) | 1990-04-06 | 1996-08-06 | Lsi Logic Corporation | Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation |
US5870308A (en) * | 1990-04-06 | 1999-02-09 | Lsi Logic Corporation | Method and system for creating and validating low-level description of electronic design |
US5598344A (en) * | 1990-04-06 | 1997-01-28 | Lsi Logic Corporation | Method and system for creating, validating, and scaling structural description of electronic device |
US5278769A (en) * | 1991-04-12 | 1994-01-11 | Lsi Logic Corporation | Automatic logic model generation from schematic data base |
US5541849A (en) * | 1990-04-06 | 1996-07-30 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters |
US5428550A (en) * | 1990-06-28 | 1995-06-27 | National Semiconductor Corporation | Hierarchical hardware flowchart using symbolic macros |
US5258919A (en) * | 1990-06-28 | 1993-11-02 | National Semiconductor Corporation | Structured logic design method using figures of merit and a flowchart methodology |
US5699310A (en) * | 1990-06-29 | 1997-12-16 | Dynasty Technologies, Inc. | Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications |
US5713034A (en) * | 1990-08-07 | 1998-01-27 | Oki Electric Industry Co., Ltd. | CAE system for preparing transmission network and analyzing load in mechanical system |
US5412591A (en) * | 1990-08-09 | 1995-05-02 | Vlsi Technology, Inc. | Schematic compiler for a multi-format high speed multiplier |
US5187671A (en) * | 1990-08-24 | 1993-02-16 | Microelectronics And Computer Technology Corporation | Automated interconnect routing system |
US5406497A (en) * | 1990-09-05 | 1995-04-11 | Vlsi Technology, Inc. | Methods of operating cell libraries and of realizing large scale integrated circuits using a programmed compiler including a cell library |
JPH04116951A (ja) * | 1990-09-07 | 1992-04-17 | Fujitsu Ltd | 半導体集積回路 |
JPH04127275A (ja) * | 1990-09-19 | 1992-04-28 | Fujitsu Ltd | Lsi論理回路自動合成における組合せ回路のテクノロジーマッピング方式 |
US5490082A (en) * | 1990-11-07 | 1996-02-06 | Vlsi Technology, Inc. | Method of graphically designing circuits |
JP2573414B2 (ja) * | 1990-11-21 | 1997-01-22 | 株式会社東芝 | 半導体集積回路製造方法 |
US5303161A (en) * | 1990-12-10 | 1994-04-12 | Hughes Aircraft Company | Technology independent integrated circuit mask artwork generator |
US5740070A (en) * | 1991-06-11 | 1998-04-14 | Mega Chips Corporation | Apparatus for automatically generating logic circuit |
US5473546A (en) * | 1991-06-12 | 1995-12-05 | Lsi Logic Corporation | Method for flattening hierarchical design descriptions |
US5521836A (en) * | 1991-06-28 | 1996-05-28 | Vlsi Technology, Inc. | Method for determining instance placements in circuit layouts |
US5471398A (en) * | 1991-07-01 | 1995-11-28 | Texas Instruments Incorporated | MTOL software tool for converting an RTL behavioral model into layout information comprising bounding boxes and an associated interconnect netlist |
JP3172211B2 (ja) * | 1991-09-05 | 2001-06-04 | 富士通株式会社 | 回路合成システム |
FR2681748B1 (fr) * | 1991-09-20 | 1994-10-14 | Sgs Thomson Microelectronics Sa | Procede pour concevoir des circuits integres controleurs de protocole et systeme pour sa mise en óoeuvre. |
US5574655A (en) * | 1991-10-30 | 1996-11-12 | Xilinx, Inc. | Method of allocating logic using general function components |
US5337255A (en) * | 1991-10-30 | 1994-08-09 | Xilinx, Inc. | Method for implementing set/reset synchronously or asynchronously in a programmable logic device |
US5553001A (en) * | 1991-10-30 | 1996-09-03 | Xilinx, Inc. | Method for optimizing resource allocation starting from a high level |
JPH05128085A (ja) * | 1991-11-08 | 1993-05-25 | Toshiba Corp | システム制御の学習方法 |
US5452227A (en) * | 1991-11-13 | 1995-09-19 | Westinghouse Elec. Corp. | Method and apparatus for converting a programmable logic device designed into a selectable target gate array design |
US5386558A (en) * | 1992-02-24 | 1995-01-31 | Adapsys, Inc. | Method and apparatus for executing control system functions in a computer system |
JPH05274390A (ja) * | 1992-03-30 | 1993-10-22 | Matsushita Electric Ind Co Ltd | 回路素子割り付け方法及び遅延最適化方法並びに論理設計システム |
WO2004077555A1 (ja) * | 1992-03-31 | 2004-09-10 | Yasuo Jimbo | Lsi設計部品データの管理装置 |
US5491640A (en) * | 1992-05-01 | 1996-02-13 | Vlsi Technology, Inc. | Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication |
US5347465A (en) * | 1992-05-12 | 1994-09-13 | International Business Machines Corporation | Method of integrated circuit chips design |
US5526517A (en) * | 1992-05-15 | 1996-06-11 | Lsi Logic Corporation | Concurrently operating design tools in an electronic computer aided design system |
JPH07501906A (ja) * | 1992-06-02 | 1995-02-23 | アジレント・テクノロジーズ・インク | マルチレベル相互接続技術のためのコンピュータ支援設計方法及び装置 |
DE69331085T2 (de) * | 1992-08-26 | 2002-03-14 | Matsushita Electric Ind Co Ltd | Automatisiertes LSI-Entwurfsystem und Verfahren |
EP0600608B1 (de) * | 1992-10-29 | 1999-12-22 | Altera Corporation | Verfahren zum Prüfen von Entwürfen für programmierbare Logikschaltungen |
US5557532A (en) * | 1992-11-12 | 1996-09-17 | Vlsi Technology, Inc. | Parameterized generic compiler |
US5566079A (en) * | 1992-11-12 | 1996-10-15 | Vlsi Technology, Inc. | Parameterized generic multiplier complier |
JPH06168291A (ja) * | 1992-11-27 | 1994-06-14 | Nec Corp | 接続先一覧表によるフローチャートマクロの接続方式 |
US5416719A (en) * | 1992-12-17 | 1995-05-16 | Vlsi Technology, Inc. | Computerized generation of truth tables for sequential and combinatorial cells |
WO1994015311A1 (en) * | 1992-12-28 | 1994-07-07 | Xilinx, Inc. | Method for entering state flow diagrams using schematic editor programs |
US5617327A (en) * | 1993-07-30 | 1997-04-01 | Xilinx, Inc. | Method for entering state flow diagrams using schematic editor programs |
WO1994019741A2 (en) * | 1993-02-25 | 1994-09-01 | Reticular Systems, Inc. | Real-time rule based processing system |
US5519633A (en) * | 1993-03-08 | 1996-05-21 | International Business Machines Corporation | Method and apparatus for the cross-sectional design of multi-layer printed circuit boards |
JP3172617B2 (ja) * | 1993-03-10 | 2001-06-04 | 三菱電機株式会社 | 論理記述変換装置及び方法並びに論理合成方法 |
US7043407B2 (en) * | 1997-03-10 | 2006-05-09 | Trilogy Development Group, Inc. | Method and apparatus for configuring systems |
US5956257A (en) * | 1993-03-31 | 1999-09-21 | Vlsi Technology, Inc. | Automated optimization of hierarchical netlists |
FR2704663B1 (fr) * | 1993-04-29 | 1995-06-23 | Sgs Thomson Microelectronics | Procédé et dispositif de détermination de la composition d'un circuit intégré. |
US5751592A (en) * | 1993-05-06 | 1998-05-12 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of supporting functional design of logic circuit and apparatus and method of verifying functional design of logic circuit |
US5465216A (en) * | 1993-06-02 | 1995-11-07 | Intel Corporation | Automatic design verification |
US5487018A (en) * | 1993-08-13 | 1996-01-23 | Vlsi Technology, Inc. | Electronic design automation apparatus and method utilizing a physical information database |
JPH0765040A (ja) * | 1993-08-24 | 1995-03-10 | Matsushita Electric Ind Co Ltd | 機能データインターフェース方法および機能データインターフェース装置 |
CA2126265A1 (en) * | 1993-09-27 | 1995-03-28 | Michael Robert Cantone | System for synthesizing field programmable gate array implementations from high level circuit descriptions |
JPH07105253A (ja) * | 1993-10-07 | 1995-04-21 | Nec Corp | データパス回路レイアウト生成システム |
US5502645A (en) * | 1993-11-05 | 1996-03-26 | Nec Usa, Inc. | Behavioral synthesis for reconfigurable datapath structures |
US5613102A (en) * | 1993-11-30 | 1997-03-18 | Lucent Technologies Inc. | Method of compressing data for use in performing VLSI mask layout verification |
US5481475A (en) * | 1993-12-10 | 1996-01-02 | International Business Machines Corporation | Method of semiconductor device representation for fast and inexpensive simulations of semiconductor device manufacturing processes |
US5680583A (en) * | 1994-02-16 | 1997-10-21 | Arkos Design, Inc. | Method and apparatus for a trace buffer in an emulation system |
GB9404078D0 (en) * | 1994-03-03 | 1994-04-20 | Int Computers Ltd | Design automation method for digital electronic circuits |
JPH07249748A (ja) * | 1994-03-14 | 1995-09-26 | Fujitsu Ltd | マスタースライス型lsiの設計装置 |
US5629860A (en) * | 1994-05-16 | 1997-05-13 | Motorola, Inc. | Method for determining timing delays associated with placement and routing of an integrated circuit |
US5617328A (en) * | 1994-05-23 | 1997-04-01 | Winbond Electronics Corporation | Automatic code pattern generator for repetitious patterns in an integrated circuit layout |
DE69520706T2 (de) | 1994-06-03 | 2001-08-02 | Hyundai Electronics America | Herstellungsverfahren für einen elektrischen Vorrichtungs-Adapter |
US5535134A (en) * | 1994-06-03 | 1996-07-09 | International Business Machines Corporation | Object placement aid |
US5537330A (en) * | 1994-06-10 | 1996-07-16 | International Business Machines Corporation | Method for mapping in logic synthesis by logic classification |
US5586319A (en) * | 1994-07-27 | 1996-12-17 | Vlsi Technology, Inc. | Netlist editor allowing for direct, interactive low-level editing of netlists |
US5646862A (en) * | 1994-09-29 | 1997-07-08 | Ford Motor Company | Vendor-neutral integrated vehicle electrical design and analysis system and method |
US5515302A (en) * | 1994-11-07 | 1996-05-07 | Motorola, Inc. | Method for identifying excessive power consumption sites within a circuit |
US7068270B1 (en) * | 1994-12-02 | 2006-06-27 | Texas Instruments Incorporated | Design of integrated circuit package using parametric solids modeller |
US5748943A (en) * | 1995-10-04 | 1998-05-05 | Ford Global Technologies, Inc. | Intelligent CAD process |
US5870588A (en) * | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
JP2869379B2 (ja) * | 1996-03-15 | 1999-03-10 | 三菱電機株式会社 | プロセッサ合成システム及びプロセッサ合成方法 |
US5903886A (en) * | 1996-04-30 | 1999-05-11 | Smartlynx, Inc. | Hierarchical adaptive state machine for emulating and augmenting software |
US5812416A (en) * | 1996-07-18 | 1998-09-22 | Lsi Logic Corporation | Integrated circuit design decomposition |
US6178494B1 (en) * | 1996-09-23 | 2001-01-23 | Virtual Computer Corporation | Modular, hybrid processor and method for producing a modular, hybrid processor |
US5963454A (en) * | 1996-09-25 | 1999-10-05 | Vlsi Technology, Inc. | Method and apparatus for efficiently implementing complex function blocks in integrated circuit designs |
US5943485A (en) * | 1996-10-15 | 1999-08-24 | Motorola, Inc. | Method for testing and for generating a mapping for an electronic device |
US5841967A (en) * | 1996-10-17 | 1998-11-24 | Quickturn Design Systems, Inc. | Method and apparatus for design verification using emulation and simulation |
US5799293A (en) * | 1996-11-04 | 1998-08-25 | Ford Global Technologies, Inc. | Method for optimizing the design of a product using knowledge-based engineering techniques |
US6910200B1 (en) * | 1997-01-27 | 2005-06-21 | Unisys Corporation | Method and apparatus for associating selected circuit instances and for performing a group operation thereon |
US5883814A (en) * | 1997-03-13 | 1999-03-16 | International Business Machines Corporation | System-on-chip layout compilation |
US5867180A (en) * | 1997-03-13 | 1999-02-02 | International Business Machines Corporation | Intelligent media memory statically mapped in unified memory architecture |
US5901304A (en) * | 1997-03-13 | 1999-05-04 | International Business Machines Corporation | Emulating quasi-synchronous DRAM with asynchronous DRAM |
US6321366B1 (en) | 1997-05-02 | 2001-11-20 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
US6026230A (en) * | 1997-05-02 | 2000-02-15 | Axis Systems, Inc. | Memory simulation system and method |
US6389379B1 (en) | 1997-05-02 | 2002-05-14 | Axis Systems, Inc. | Converification system and method |
US6134516A (en) * | 1997-05-02 | 2000-10-17 | Axis Systems, Inc. | Simulation server system and method |
US6009256A (en) * | 1997-05-02 | 1999-12-28 | Axis Systems, Inc. | Simulation/emulation system and method |
US6421251B1 (en) | 1997-05-02 | 2002-07-16 | Axis Systems Inc | Array board interconnect system and method |
US5960191A (en) * | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
US6152612A (en) * | 1997-06-09 | 2000-11-28 | Synopsys, Inc. | System and method for system level and circuit level modeling and design simulation using C++ |
US5970240A (en) * | 1997-06-25 | 1999-10-19 | Quickturn Design Systems, Inc. | Method and apparatus for configurable memory emulation |
GB2354614B (en) * | 1998-05-06 | 2003-05-14 | Acuid Corp Ltd | A system for modelling memory business parameters |
US6272671B1 (en) | 1998-09-11 | 2001-08-07 | Lsi Logic Corporation | Extractor and schematic viewer for a design representation, and associated method |
AU2079699A (en) * | 1998-11-30 | 2000-06-19 | Actcon Control Ab | Method for inserting objects into a working area in a computer application |
US6654945B1 (en) | 1999-02-17 | 2003-11-25 | Hitachi, Ltd. | Storage medium in which data for designing an integrated circuit is stored and method of fabricating an integrated circuit |
US6832182B1 (en) | 1999-04-08 | 2004-12-14 | Transim Technology Corporation | Circuit simulator |
WO2002025596A2 (en) | 2000-09-19 | 2002-03-28 | Draftlogic System Inc, | System for client-driven automated computer-aided drafting |
US7043408B2 (en) | 2000-11-08 | 2006-05-09 | Virtual Supply Chain Engineering, Inc. | Computer-aided design neutral graphical data interface |
US6668360B1 (en) | 2001-01-08 | 2003-12-23 | Taiwan Semiconductor Manufacturing Company | Automatic integrated circuit design kit qualification service provided through the internet |
US6609238B1 (en) * | 2001-06-15 | 2003-08-19 | Lsi Logic Corporation | Method of control cell placement to minimize connection length and cell delay |
JP2003216670A (ja) * | 2002-01-25 | 2003-07-31 | Hitachi Ltd | コンピュータ読み取り可能な記録媒体および半導体集積回路装置 |
US7873223B2 (en) * | 2002-10-15 | 2011-01-18 | Definiens Ag | Cognition integrator and language |
US7801361B2 (en) * | 2002-10-15 | 2010-09-21 | Definiens Ag | Analyzing pixel data using image, thematic and object layers of a computer-implemented network structure |
US8594410B2 (en) | 2006-08-28 | 2013-11-26 | Definiens Ag | Context driven image mining to generate image-based biomarkers |
US7164355B2 (en) * | 2004-05-19 | 2007-01-16 | Rosemount Inc. | Process transmitter with a plurality of operating modes |
US7454550B2 (en) * | 2005-01-05 | 2008-11-18 | Xtremedata, Inc. | Systems and methods for providing co-processors to computing systems |
US7603573B2 (en) * | 2006-10-24 | 2009-10-13 | Silicon Graphics, Inc. | System and method for optimizing computational density |
US8989468B2 (en) | 2007-05-25 | 2015-03-24 | Definiens Ag | Generating an anatomical model using a rule-based segmentation and classification process |
US10541046B2 (en) * | 2009-09-02 | 2020-01-21 | Microsoft Technology Licensing, Llc | Creating genetic devices |
KR102201566B1 (ko) * | 2017-08-18 | 2021-01-11 | 주식회사 엘지화학 | 맞춤형 bms 모듈 및 그 설계 방법 |
US11556406B2 (en) | 2018-12-03 | 2023-01-17 | Synopsys, Inc. | Automatic root cause analysis of complex static violations by static information repository exploration |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4656603A (en) * | 1984-03-01 | 1987-04-07 | The Cadware Group, Ltd. | Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2245984B1 (de) * | 1973-09-27 | 1977-03-18 | Ibm | |
US4584653A (en) * | 1983-03-22 | 1986-04-22 | Fujitsu Limited | Method for manufacturing a gate array integrated circuit device |
GB8329888D0 (en) * | 1983-11-09 | 1983-12-14 | Philips Electronic Associated | Generating component interconection lists |
JPS60114968A (ja) * | 1983-11-28 | 1985-06-21 | Hitachi Ltd | 推論システム |
US4648044A (en) * | 1984-06-06 | 1987-03-03 | Teknowledge, Inc. | Basic expert system tool |
US4658370A (en) * | 1984-06-07 | 1987-04-14 | Teknowledge, Inc. | Knowledge engineering tool |
US4703435A (en) * | 1984-07-16 | 1987-10-27 | International Business Machines Corporation | Logic Synthesizer |
US4675829A (en) * | 1984-07-27 | 1987-06-23 | Intellicorp Corporation | Method and apparatus for building knowledge-based systems |
US4651284A (en) * | 1984-07-27 | 1987-03-17 | Hitachi, Ltd. | Method and system of circuit pattern understanding and layout |
US4635208A (en) * | 1985-01-18 | 1987-01-06 | Hewlett-Packard Company | Computer-aided design of systems |
US4700316A (en) * | 1985-03-01 | 1987-10-13 | International Business Machines Corporation | Automated book layout in static CMOS |
JPS6274158A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | 回路変換方式 |
AU7727987A (en) * | 1986-09-12 | 1988-03-17 | Digital Equipment Corporation | Cad of logic circuits: procedure and data structure |
-
1988
- 1988-01-13 US US07/143,821 patent/US4922432A/en not_active Expired - Lifetime
-
1989
- 1989-01-11 GB GB8900594A patent/GB2213967B/en not_active Expired - Lifetime
- 1989-01-12 JP JP1007550A patent/JP2862886B2/ja not_active Expired - Fee Related
- 1989-01-12 DE DE3900750A patent/DE3900750A1/de not_active Ceased
- 1989-01-13 NL NL8900084A patent/NL192892C/nl not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4656603A (en) * | 1984-03-01 | 1987-04-07 | The Cadware Group, Ltd. | Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons |
Non-Patent Citations (4)
Title |
---|
Aart J. de Geus, William Cohen: A rule-based Sys- tem for optimizing Combinational Logic, In: IEEE Design & Test of Computers, Vo. 2, No. 4, August 1985, S. 22-32 * |
HEROLD, UNGER. Das C-Buch, 2. Aufl., te-wi- Vorl., 1986, S. 6-7 bis 6-11, ISBN 3-921803-62-4 * |
Kim, Jin: Artificial intelligence helps at ASIC designtime in: Electronic Design, June 11, 1987, S.107-110 * |
Nakamura, Yukihiro: An Integrated Logic Disign Environment based on a Behavioral Description in: IEEE Transactions on Computer-Aided Design, Vol.CAD-6, No.3, May 1987, S.322-336 * |
Also Published As
Publication number | Publication date |
---|---|
JP2862886B2 (ja) | 1999-03-03 |
GB2213967A (en) | 1989-08-23 |
GB8900594D0 (en) | 1989-03-15 |
US4922432A (en) | 1990-05-01 |
NL192892B (nl) | 1997-12-01 |
JPH01309185A (ja) | 1989-12-13 |
NL192892C (nl) | 1998-04-02 |
GB2213967B (en) | 1992-06-17 |
NL8900084A (nl) | 1989-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3900750A1 (de) | Wissensbasis - verfahren - vorrichtung zum entwerfen integrierter schaltungen mittels funktionaler spezifikationen | |
EP0852759B1 (de) | Entwurfsverfahren für die anlagentechnik und rechnergestütztes projektierungssystem zur verwendung bei diesem verfahren | |
DE60116769T2 (de) | Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung | |
DE69826659T2 (de) | Billige, leicht anzuwendende software für ein automatisches testsystem | |
DE69628808T2 (de) | Datenverarbeitungssystem | |
DE10102205B4 (de) | Verfahren und Vorrichtung zum Konfigurieren und Verwalten eines Prozeßsteuerungsnetzes | |
DE69931004T2 (de) | Verfahren und Vorrichtung zur Datenverarbeitung | |
DE69909452T2 (de) | Eine datenbank, die nützlich ist, um ein system zu konfigurieren und/oder zu optimieren und ein verfahren, um diese datenbank zu generieren | |
DE60009122T2 (de) | Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen | |
DE10053207A1 (de) | Verfahren und Vorrichtung zur Gültigkeitsprüfung bei Systemchip-Entwürfen | |
DE102011001460A1 (de) | Verfahren und Gerät für eine datengesteuerte Schnittstelle basierend auf Relationen zwischen Prozesssteuerungsetiketten | |
DE19717716A1 (de) | Verfahren zur automatischen Diagnose technischer Systeme unter Berücksichtigung eines effizienten Wissenserwerbs und einer effizienten Bearbeitung zur Laufzeit | |
EP0346801A2 (de) | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem | |
DE69533467T2 (de) | System und verfahren zur erzeugung von modellen elektrischer bauelemente | |
DE69433907T2 (de) | Autonomes, evolutionsartiges Hardwareentwurfssystem | |
DE112015006570T5 (de) | Programmerzeugungseinrichtung, Programmerzeugungsverfahren und Programmerzeugungsprogramm | |
DE60221462T2 (de) | Vorrichtung und Verfahren zur High-Level-Synthese, Verfahren zur Produktion von logischen Schaltungen unter Verwendung des Verfahrens zur High-Level-Synthese,und Aufzeichnungsmedium | |
DE10197097B4 (de) | Programmierwerkzeug | |
EP0580663A1 (de) | Verfahren zur verifikation datenverarbeitender systeme. | |
DE4327660C2 (de) | Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung | |
DE10324594A1 (de) | Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung | |
EP1533674B1 (de) | Verfahren zur Entwicklung und Implementierung eines Modells zur formalen Beschreibung eines sich aus mehreren verteilten Komponenten zusammensetzenden kollaborativen Systems, insbesondere eines intelligenten flexiblen Produktions-und/oder Prozessautomatisierungssystems | |
DE102004003092A1 (de) | Verfahren zum Auflösen nicht richtig angepaßter Parameter bei einem rechnergestützten Entwurf für integrierte Schaltungen | |
Unger et al. | Feature-based process planning in the AMRF | |
EP1146393B1 (de) | Verfahren zur Herstellung von Masken für die Fertigung von Halbleiterstrukturen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |