DE69632171T2 - Verfahren zur gleichzeitigen Programmierung von programmierbaren integrierten Schaltungen innerhalb eines Systems - Google Patents

Verfahren zur gleichzeitigen Programmierung von programmierbaren integrierten Schaltungen innerhalb eines Systems Download PDF

Info

Publication number
DE69632171T2
DE69632171T2 DE69632171T DE69632171T DE69632171T2 DE 69632171 T2 DE69632171 T2 DE 69632171T2 DE 69632171 T DE69632171 T DE 69632171T DE 69632171 T DE69632171 T DE 69632171T DE 69632171 T2 DE69632171 T2 DE 69632171T2
Authority
DE
Germany
Prior art keywords
programming
data
programmable devices
isp
field programmable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69632171T
Other languages
English (en)
Other versions
DE69632171D1 (de
Inventor
Howard Y.M. Tang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lattice Semiconductor Corp
Original Assignee
Lattice Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lattice Semiconductor Corp filed Critical Lattice Semiconductor Corp
Publication of DE69632171D1 publication Critical patent/DE69632171D1/de
Application granted granted Critical
Publication of DE69632171T2 publication Critical patent/DE69632171T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf programmierbare, integrierte Schaltungen und insbesondere bezieht sich die vorliegende Erfindung auf Techniken zur gleichzeitigen Programmierung mehrerer programmierbarer Einrichtungen.
  • 2. Diskussion der verwandten Technik
  • Electronique Radioplan, Nr. 569, April 1995, Seiten 23 bis 27, „La programmation 'Daisy Chain' des composants isp Lattice" offenbart eine Vielzahl von In-System programmierbaren, integrierten Schaltungen (isp Einrichtungen, isp Devices), die unter Verwendung einer Prioritäts- bzw. Rangkettenkonfiguration (Daisy Chain Configuration) mit einem Computer verbunden sind. Dieses Dokument liefert eine bloße Beschreibung der Anordnung und der Voraussetzungen, die nötig sind um die Programmierung aller Einrichtungen zur gleichen Zeit durchzuführen.
  • Programmierbare Einrichtungen, die programmiert und umprogrammiert werden können, ohne von ihrer Anwendungsumgebung entfernt zu werden, werden weitgehend bevorzugt, weil die Programmierung und Umprogrammierung solcher Einrichtungen mit Leichtigkeit durchgeführt werden kann. Eine Bauart solcher Einrichtungen sind die „In-System programmierbaren logischen Einrichtungen (in-system programmable logic devices)" oder „ISP PLDs", die von Lattice Semicondutor Corporation erhältlich sind. (Um die Bezugnahme zu vereinfachen, werden in der folgenden Beschreibung solche und ähnliche Einrichtungen alle als „ISP PLDs" bezeichnet. Es ist klar, dass die Lehren in der folgenden Beschreibung auf alle Arten von feldprogrammierbaren Einrichtungen anwendbar sind, einschließlich programmierbarer Logikeinrichtungen, programmierbarer Speicher und programmierbarer Analogschaltungen.) Die Ausgestaltung und Verwendung von ISP PLDs sind im Stand der Technik offenbart, beispielsweise (i) U.S. Patent 5,329,179 mit dem Titel „Arrangement For Parallel Programming Of In-system Programmable IC Logical Devices" von Tang et al. eingereicht am 5. Oktober 1992 und erteilt am 12. Juli 1994. (ii) U.S. Patent 5,237,218 mit dem Titel „Structure and Method for Multiplexing Pins for In-system Programming" von G. Josephson et al. eingereicht am 3. Mai 1991 und erteilt am 13. August 1993. (iii) U.S. Patent 4,879,688 mit dem Titel „In-system Programmable Logical Devices" von Turner et al. eingereicht am 13. Mai 1986 erteilt am 7. November 1989 und (iv) U.S. Patent 4,855,954 mit dem Titel „In-System Programmable Logic Device with Four Dedicated Terminals" von Turner et al. eingereicht am 25. Oktober 1988 und erteilt am 8. August 1989.
  • Im Stand der Technik wird jede ISP PLD in einer Systembaugruppe, die mehrere ISP PLDs enthält, individuell und sequentiell programmiert. Um mehrere ISP PLDs gleichzeitig zu programmieren, werden sowohl zusätzliche Hardware als auch spezielle Konfigurationen der ISP PLDs benötigt. Beispielsweise werden, wo gleichzeitige Programmierung von mehreren ISP PLDs möglich ist, typischerweise zusätzliche Schaltkreise zum Signalmultiplexen bzw. zur Signalbündelung benötigt. Wenn Einrichtungen in einer Anwendung individuell und sequentiell programmiert werden, werden die zu programmierenden Einrichtungen seriell verkettet und deshalb ist die gesamte Programmierzeit der seriellen Verkettung der Einrichtungen die Summe der Zeiten, die benötigt werden, um jede Einrichtung individuell zu programmieren.
  • Ein ISP PLD enthält eine große Anzahl programmierbarer Logikkomponenten, beispielsweise die „min-Ausdrücke (min-terms)" einer programmierbaren Gatteranordnung (gate array). Bei einigen ISP PLDs ist ein linearer Adressraum vorgesehen und die programmierbaren Logikkomponenten einer ISP PLD werden in aufsteigender Adressreihenfolge programmiert, bis alle der programmierbaren Logikkomponenten der gesamten ISP PLD programmiert sind. Also selbst wenn gleichzeitige Programmierung vorgesehen ist, ist somit die gesamte Programmierzeit einer Systembaugruppe oft bestimmt durch die Summe der benötigten Zeiten, um diejenige ISP PLD auf der Systembaugruppe zu programmieren, die die größte Anzahl von programmierbaren Kompo nenten besitzt, und der benötigten Zeit, um Daten zu allen der ISP PLDs der seriellen Verkettung zu senden.
  • Im Stand der Technik wird einem „Programmierkommandogenerator" eine Datendatei übergeben, die nur die zur Programmierung der ISP PLDs auf einer vorgegebenen Systembaugruppe benötigten Muster enthält. Der Programmierkommandogenerator erlangt von der Datendatei alle der einrichtungsabhängigen Parameter und liefert die Kommandos für die eintretende Programmierung.
  • Zusammenfassung der Erfindung
  • Gemäß der vorliegenden Erfindung wird ein Verfahren gemäß Anspruch 1 vorgesehen.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist solch ein Verfahren die folgenden Schritte auf: (i) Serielles Verbinden feldprogrammierbarer Einrichtungen in einer Kettenkonfiguration; (ii) Konstruieren einer Datenstromdatei, die einen zusammengesetzten Datenstrom zum gleichzeitigen bzw. simultanen Programmieren der feldprogrammierbaren Einrichtungen beinhaltet, so dass die programmierbaren Einrichtungen gleichzeitig unter dem Datenstrom eingeplant werden, um (a) Instruktionen zu empfangen, (b) Programmierungsdaten in die feldprogrammierbaren Einrichtungen zu schieben, (c) Instruktionen auszuführen und (d) Daten aus den feldprogrammierbaren Einrichtungen zu schieben; (iii) Abrufen eines individuellen Programmierdatenstroms für jede der feldprogrammierbaren Einrichtungen aus jeder von einer Anzahl von Programmdatendateien; (iv) Füllen der Datenstromdatei mit Programmierdaten aus jedem der auf diese Weise abgerufenen individuellen Programmierdatenströmen; und (v) gleichzeitiges Programmieren der feldprogrammierbaren Einrichtungen unter Verwendung der auf diese Weise zusammengesetzten Datenstromdatei.
  • Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung beinhaltet der individuelle Programmierdatenstrom Programmierinstruktionen bzw. Programmieranweisungen und Programmierdaten. Bei diesem weiteren Ausführungsbeispiel werden Programmierdaten so sortiert, dass Zeilen, die ein vorbestimmtes Datenmuster (beispielsweise alle „1") hinter Zeilen angeordnet sind, die das vorbestimmte Datenmuster nicht besitzen. In einem Ausführungsbeispiel entspricht das vorbestimmte Datenmuster einem Grund- bzw. Standarddatenmuster der feldprogrammierbaren Einrichtung, und zwar wenn diese nicht programmiert ist. Gemäß der vorliegenden Erfindung kann die Programmierung für solche Zeilen weggelassen werden.
  • Die vorliegende Erfindung erreicht den Vorteil der gleichzeitigen Programmierung der Einrichtungen in einer seriell verbundenen Verkettung von feldprogrammierbaren Einrichtungen und minimiert dadurch die gesamte Programmierzeit. Die vorliegende Erfindung erreicht einen derartigen Vorteil durch die Verwendung konventioneller Programmierhardware ohne zusätzliche Schaltkreise zu benötigen.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung werden die mit dem Verfahren der vorliegenden Erfindung programmierten Einrichtungen nicht notwendigerweise in aufsteigender oder absteigender Adressreihenfolge programmiert. Durch Gruppierung von Programmierdateneinheiten (beispielsweise Zeilen) dementsprechend ob ein vorbestimmtes Muster in den Programmierdaten in einer vorgegebenen Programmiereinheit existiert, um es zu erlauben so eine Programmiereinheit wegzulassen, kann eine minimale Programmierzeit realisiert werden. Bei der vorliegenden Erfindung können erhebliche Einsparungen bezüglich der Programmierzeit erreicht werden, und zwar durch das Weglassen der Programmierung bei einer Programmiereinheit, die so ein vorbestimmtes Datenmuster besitzt.
  • Die vorliegende Erfindung reduziert ferner die Programmierzeit durch das Aufreihen der Adressen von Zeilen, die keine Programmierung benötigen.
  • Diese Erfindung vereinfacht den Softwareprogrammteil eines Programmierkommandogenerators durch die Verwendung einer zusammengesetzten Datei (ispSTREAM Datei), die den ID Datenstrom, den Adressdatenstrom, den Befehlsdatenstrom und den Programmierdatenstrom beinhaltet. Wenn diese Datenströme auf mehrere ISP PLDs gleichzeitig angewendet werden sind die Setupzeiten der seriell verbundenen ISP PLDs gemeinsam, dadurch wird eine beträchtliche Einsparung bezüglich der Programmierzeit erreicht.
  • Gemäß noch einem weiteren Ausführungsbeispiel der vorliegenden Erfindung wird eine Datendatei vorbereitet, die einen Datenstrom einschließlich Programmierdatenbitmustern, Programmieradressen und Programmieranweisungen repräsentiert. Die Vorbereitung solch einer Datendatei vereinfacht die Aufgabe für den Programmierkommandogenerator bzw. Programmierbefehlsgenerator.
  • Die vorliegende Erfindung wird besser verstanden nach der Betrachtung der nachstehenden detaillierten Beschreibung und der begleitenden Zeichnungen.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt eine Feldabbildung bzw. Matrixanordnung einer ispGAL22V10 Einrichtung bzw. Baugruppe.
  • 2 zeigt eine Feldabbildung einer ispLSI 1016 Baugruppe.
  • 3 zeigt eine Feldabbildung einer ispLSI 1032 Baugruppe.
  • 4 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung in dem drei ISP PLDs 401, 402 und 403 mit einem Programmierkommandogenerator 404 verbunden sind.
  • 5 zeigt eine Konfigurationsbeschreibungsdatei 500 zur Festlegung bzw. Spezifizierung der Programmierung der ISP PLDs 401, 402 und 403 der 4.
  • 6 ist eine JEDEC Datei, die die „22V10.jed" Datei auf die in 5 für ISP PLD 401 verwiesen wurde veranschaulicht.
  • 7 ist eine JEDEC Datei, die die „1016.jed" Datei auf die in 5 für ISP PLD 402 verwiesen wurde veranschaulicht.
  • 8 ist eine JEDEC Datei, die die „1032.jed" Datei auf die in 5 für ISP PLD 403 verwiesen wurde veranschaulicht.
  • 9 veranschaulicht die zusammengesetzte Feldabbildung für die seriell verbundene Verkettung bzw. Kette 400 der 4.
  • 10a zeigt tatsächliche Instruktionen und Programmdatenbits, die aus den JEDEC Dateien der 6 bis 8 erhalten wurden, geliefert an ispSTREAM Datei 1000 der untenfolgenden 10b.
  • 10b zeigt das Format einer ispSTREAM Datei 1000 für die seriell verbundene Verkettung 400 der 4; die seriell verbundene Verkettung 400 umfasst die PLD ISPs 401, 402 und 403.
  • 10c zeigt den ausführbaren Befehlssatz der Programmierzustandsmaschine einer Baugruppe des Typs ispGAL22V10.
  • 10d zeigt den ausführbaren Befehlssatz der Programmierzustandsmaschine einer Baugruppe des Typs ispLSI.
  • 11 ist eine Signalprotokolldarstellung, die die Übergänge der Signale ispEN, MODE, SCLK und SDI zeigt, wenn eine ISP PLD in einen „Schiebe"-Zustand oder einen „Ausführ"-Zustand platziert wird.
  • 12 ist eine schematische Darstellung, die Adressbits zeigt, die in Schiebeadressregister 202 und 302 geschoben werden.
  • 13 zeigt die Inhalte, der Datenregister 103, 203a und 303 nach dem Ausführen des in 15c dargestellten Schritts 1516.
  • 14 ist ein Flussdiagramm 1400, das die Kreation bzw. Erzeugung einer ispSTREAM Datei gemäß der vorliegenden Erfindung veranschaulicht.
  • 15a zeigt einen Teil 1500a eines Flussdiagramms 1500, welches ein Verfahren zur Verarbeitung und zum Herunterladen von Daten der ispSTREAM Datei 1000 zu Zieleinrichtungen bzw. Zielbaugruppen seriell verbundener Verkettungen 400 der 4 zeigt.
  • 15b zeigt einen Teil 1500b eines Flussdiagramms 1500, der ein Verfahren zur Verarbeitung und zum Herunterladen von Daten der ispSTREAM Datei 1000 zu Zieleinrichtungen der seriell verbundenen Verkettung der 4 zeigt.
  • 15c zeigt einen Teil 1500c eines Flussdiagramms 1500, der ein Verfahren zur Verarbeitung und zum Herunterladen von Daten der ispSTREAM Datei 1000 zu Zieleinrichtungen der seriell verbundenen Verkettung 400 der 4 zeigt.
  • 15d zeigt einen Teil 1500d eines Flussdiagramms 1500, der ein Verfahren zur Verarbeitung und zum Herunterladen von Daten der ispSTREAM Datei 1000 zu Zieleinrichtungen der seriell verbundenen Verkettung 400 der 4 zeigt.
  • 15e zeigt einen Teil 1500e eines Flussdiagramms 1500, der ein Verfahren zur Verarbeitung und zum Herunterladen von Daten der ispSTREAM Datei 1000 zu Zieleinrichtungen der seriell verbundenen Verkettung der 4 zeigt.
  • 16a ist ein Teil 1600a eines Flussdiagramms 1600, der die Zuweisung der in 10a und 10b gezeigten ispSTREAM Datei 1000 veranschaulicht.
  • 16b ist ein Teil 1600b eines Flussdiagramms 1600, der die Zuweisung der in 10a und 10b gezeigten ispSTREAM Datei 1000 veranschaulicht.
  • 17a zeigt als ein Teil 1700a eines Flussdiagramms 1700 auf der linken Seite unternommene Schritte 1701 bis 1714 zum Füllen von Programmdaten in die ispSTREAM Datei 1000 und auf der rechten Seite tatsächliche Programmdaten, die in die Datenstrukturen 1001 bis 1014 der in 10b gezeigten ispSTREAM Datei 1000 gefüllt werden.
  • 17b zeigt als ein Teil 1700b eines Flussdiagramms 1700 auf der linken Seite unternommene Schritte 1701 bis 1714 zum Füllen von Programmdaten in die ispSTREAM Datei 1000 und auf der rechten Seite tatsächliche Programmdaten, die in Datenstrukturen 1001 bis 1014 der in 10b gezeigten ispSTREAM Datei 1000 gefüllt werden.
  • 18a zeigt die Zustände der drei ID Register 104, 204 und 304 in den ISP PLDs 401, 402 und 403 der seriell verbundenen Verkettung 400.
  • 18b zeigt die Inhalte der 5-Bit Befehlsregister 105, 205 bzw. 305 der ISP PLDs 401 bis 403 nachdem die Schiebeadressbefehle im Schritt 1510 heruntergeladen wurden.
  • 18c zeigt die Inhalte der 5-Bit Befehlsregister 105, 205 bzw. 305 der ISP PLDs 401 bis 403 nachdem die Programmierbefehle im Schritt 1519 heruntergeladen wurden.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeisgiele
  • Ein Ausführungsbeispiel der vorliegenden Erfindung, welches unten im Detail beschrieben ist, ist durch ein in der bekannten „C" Programmiersprache geschriebenes Softwareprogramm bereitgestellt. Dieses Softwareprogramm, dass einem Copyright unterliegt, ist als Quellcode in dem begleitenden Anhang A geliefert. Während der Copyright-Inhaber jedem erlaubt Facsimile Kopien dieses Quellcodes anzufertigen, wie dieser in den Akten des U.S. Patent- und Markenamtes in Verbindung mit diesem Patentdokument oder Patentoffenbarung auftaucht, behält sich der Copyright-Inhaber explizit alle anderen Rechte bezüglich dieses Softwareprogramms vor.
  • Die vorliegende Erfindung ist hierin beschrieben mit Bezug auf zwei Arten von ISP PLDs, die beide von Lattice Semiconductor Corporation dem Rechtsnachfolger dieser Patentanmeldung erhältlich sind. Der erste ISP PLD Typ ist dargestellt durch das ispGAL22V10, welches vier Programmieranschlüsse bzw. -pins aufweist: Mode, SCLK (serieller Takt, Serial Clock), SDI (serieller Dateneingang, Serial Data In) und SDO (serieller Datenausgang, Serial Data Out). Der Betrieb der dieser Programmieranschlüsse ist in dem „ISP Manual 1994" beschrieben, welches von Lattice Semiconductor Corporation erhältlich ist. Die ispGAL22V10 Baugruppe bzw. Einrichtung wird in den Programmiermodus versetzt, wenn das Mode Signal angesteuert wird, während das Signal auf dem SCLK Anschluss gepulst bzw. getaktet ist. Einmal in dem Programmiermode werden die Programmierarbeiten durch den Programmierer über Signale auf den Mode und SDI Anschlüssen gesteuert.
  • Der zweite ISP PLD Typ ist die Lattice ispLSI Baugruppe. In den ispLSI Baugruppen ist eine ISP PLD unter Verwendung von fünf Anschlüssen programmiert, die wie folgt bezeichnet sind: ispEN („in-system programming Enable", In-System Programmierfreigabe), Mode, SCLK, SDI und SDO. Im Gegensatz zu einer ispGAL22V10 Typ Baugruppe, wird eine ispLSI Baugruppe in den Programmiermodus versetzt, wenn der ispEN Anschluss angesteuert wird.
  • Einmal im Programmiermodus wird die Programmierung durch die Mode, SDI und SCLK Anschlüsse gesteuert. Die Strukturen und Operationen der ispLSI Einrichtungen sind auch vollständig beschrieben in dem oben erwähnten ISP Handbuch 1994.
  • 4 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung in dem drei ISP PLDs 401, 402 und 403 mit einem Programmierkommandogenerator bzw. Programmierbefehlsgenerator 404 verbunden sind. Wie in 4 gezeigt haben die ISP PLD 401, 402 und 403 Ihre SDI und SDO Anschlüsse in einer seriellen Art und Weise (serielle Verkettung, „Serial Chain" 400) verbunden, so dass serielle Programmierdaten vom Programmierkommandogenerator 404 an die ISP PLD 403 über die SDI und SDO Anschlüsse der ISP PLDs 401 und 402 geliefert werden können. Ebenso können serielle Programmierdaten in ISP PLD 402 durch die SDI und SDO Anschlüsse der ISP PLD 401 geschoben werden. Diese serielle Verbindung ist als eine „serielle Verkettung" bekannt. In diesem Ausführungsbeispiel ist die ISP PLD 401 eine ispGAL22V10 Einrichtung bzw. Gerät bzw. Baugruppe, ISP PLD 402 ist eine ispLSI Typ Einrichtung (speziell eine ispLSI 1016) und eine ISP PLD 403 ist auch eine ispLSI Typ Einrichtung (eine ispLSI 1032). Die Mode und SCLK Anschlüsse der ISP PLDs 401, 402 und 403 sind gemeinsam verbunden. Zusätzlich sind die ispEn Anschlüsse der ISP PLDs 402 und 403 gemeinsam verbunden.
  • 1 zeigt eine Feldabbildung bzw. Matrixanordnung der ispGAL22V10 Einrichtung. Wie in 1 gezeigt, wird eine ispGAL22V10 Einrichtung programmiert durch Festlegen programmierbarer Sicherungen für eine 44 × 132-bit UND Anordung bzw. Matrix und eine 64-bit „elektronische Nutzersignatur" (User electronic signature, UES). Die Programmierung wird zeilenweise durchgeführt durch serielles Schieben einer 6-Bit Zeilenadresse und 132 Bits der Programmdatenbits in das Adress/Datenschieberegister 102 durch den SDI Anschluss. Die 6-Bit Zeilenadresse spezifiziert welche der 44 Zeilen der UND Matrix oder der 64-Bit UES zu programmieren ist. Die 132 Bits der Programmierbits werden dann geliefert zum Implementieren der gewünschten Konfiguration der UND Matrix in der spezifizierten Zeile oder der UES. Ein 8-Bit ID- Schieberegister bzw. ein 20-Bit architektonisches Schieberegister 104 sind vorgesehen zum Speichern eines Identifikationsmusters und zur Spezifizierung von Konfigurationsinformation der ispGAL22V10 Baugruppe.
  • 2 zeigt die Feldabbildung einer ispLSI 1016 Baugruppe. Wie in 2 gezeigt, beinhaltet eine ispLSI 1016 Baugruppe eine 96 × 160-Bit E2CMOS (Electrically erasable Complementary Metal-Oxide Semicoductor) Zellenmatrix 201. Wie in der ispGAL22V10 Baugruppe wird die Zellmatrix der ispLSI 1016 Baugruppe zeilenweise programmiert. Jedoch ist anstelle der Spezifizierung einer Mehrbitadresse ein 96-Bit Adressschieberegister 202 vorgesehen. Jedes Bit im Adressschieberegister 202 entspricht einer 160-Bit Zeile in der Zellenmatrix 201. Ein 160-Bit Datenregister 203, das in ein 80-Bit (halbzeiliges) höherwertiges Register 203a und ein 80-Bit niederwertiges Schieberegister 203b unterteilt ist, ist vorgesehen zum Halten bzw. Speichern der Programmdatenbits. Da getrennte Befehle zum Laden oder Lesen jeder Halbzeile im Datenregister 203 (d. h. ein getrenntes Kommando wird benötigt zum Laden jedes der Datenregister 203a und 203b) benötigt werden, kann für den Zweck der verbleibenden Diskussion die Dateneingabe- und -ausgabeeinheit der ispLSI 1016 Baugruppe betrachtet werden als sei es die 80-Bit Halbzeile. Zum Programmieren der ispLSI 1016 Baugruppe wird ein einzelnes '1' Bit in das Adressschieberegister 202 geschoben. Die Position des einzelnen '1' Bits im Adressschieberegister 202 zeigt die zu programmierende Zeile an. Die Programmierung wird mittels zwei Programmierbefehlen, „PRGMH" (program high half-row, programmiere höhere Halbzeile) oder „PRGML" (program low halfrow, programmiere untere bzw. niedere Halbzeile) durchgeführt, wobei jeder Befehl eine Halbzeile von Programmdatenbits in das entsprechende eine der Datenregister 203a und 203b schreibt, und zwar in die entsprechende Halbzeile bei der Adresse, die durch das einzelne '1' Bit im Adressregister 202 angezeigt bzw. angegeben wird. Ein 8-Bit ID Schieberegister 204 ist vorgesehen zum Halten bzw. Speichern eines 8-Bit Identifikationscodes.
  • Die Programmierung einer ispLSI 1032 Baugruppe ist ähnlich der oben mit Bezug zu 2 beschriebenen Programmierung der ispLSI 1016. 3 zeigt die Feldabbildung einer ispLSI 1032. Eine ispLSI 1032 Baugruppe beinhaltet eine 108 mal 320-Bit E2CMOS Matrix 301. Somit beinhaltet die ispLSI 1032 Baugruppe ein 108-Bit Adressschieberegister 302 und ein 320-Bit Datenregister 303, das in höherwertige halbzeilige Datenregister 303a und niederwertige halbzeilige Datenregister 303b unterteilt ist. Wiederum, da getrennt Befehle zum Laden oder Lesen jedes der halbzeiligen Datenregister 303a und 303b benötigt werden, ist die Eingabe- und Ausgabeeinheit zum Datentransfer in eine solche ispLSI 1032 Baugruppe 160 Bits.
  • Das Verfahren der vorliegenden Erfindung erzeugt zuerst im Speicher eine „ispSTREAM" Datei, die eine Datei ist, die sowohl Programmieranweisungen als auch Daten beinhaltet, in der Reihenfolge werden die Programmieranweisungen und die Daten anschließend zur gleichzeitigen Programmierung der ISP PLDs verwendet. Die Schritte zur Erzeugung einer solchen Datei sind durch die 14 veranschaulicht. Schritt 1401, der eine Unterroutine „pack_jedec_file" in dem in Anhang A gelieferten Quellcode darstellt, beginnt die Erstellung der ispSTREAM Datei durch Aufrufen einer Unterroutine „dl_read_dldfile". In 14 ist die Ausführung der Unterroutine „dl_read_dldfile" dargestellt durch Schritt 1402. Beim Schritt 1402 wird eine Konfigurationsbeschreibungsdatei (gekennzeichnet durch die „.dld" Dateiendung) gelesen. Ein Beispiel so einer Konfigurationsbeschreibungsdatei ist in 5 gezeigt. Wie in 5 gezeigt beinhaltet die Konfigurationsbeschreibungsdatei 500 drei Textzeilen, wobei jede Zeile entsprechend einem Baustein bzw. einer Einrichtung in der seriellen Verkettung 400 der 4 zu programmieren ist. Auf jeder Zeile der Konfigurationsbeschreibungsdatei 500 sind drei Felder vorgesehen, die einem (i) Einrichtungsfeld, (ii) einem Programmieranweisungsfeld und (iii) einem Programmierbitmusterfeld (d. h. der Name einer „JEDEC Datei") entsprechen. JEDEC ist ein dem Fachmann bekanntes Industriestandardformat zur Spezifizierung von Testvektoren. Das Einrichtungsfeld kennzeichnet den Typ bzw. die Art der zu programmierenden Einrichtung, so dass einrichtungsspezifische Befehle und Parameter durch den Programmierkommandogenerator 404 richtig gehandhabt werden können. In 5 spezifiziert die Konfigurationsbeschreibungsdatei 500 22V10 (d. h. die ispGAL22v10 Einrichtung), 1016 (eine ispLSI Einrichtung mit 16 generischen Logikblöcken) und 1032 (eine ispLSI Einrichtung mit 32 generischen Logikblöcken). Zur Zeit werden vier Arten von Programmieranweisungen verwendet: (i) „PV", die anzeigt, dass sowohl Programmierung als auch Verifizierung durchzuführen sind; (ii) „NOP", die die Nulloperation bzw. keine Operation anzeigt; (iii) „V", die anzeigt, dass nur die Verifizierung durchzuführen ist und (iv) „E", die anzeigt, dass nur die Funktion „Löschen" (erase) durchzuführen ist. Die Verifikation umfasst das Lesen der Programmierdaten aus einer programmierten Logikeinrichtung und Vergleichen der so ausgelesenen Daten mit den erwarteten Bitmustern. Die Funktion „Lösche" („erase") löscht alle Programmierung von einem ISP PLD.
  • Das „JEDEC Datei" Feld der Konfigurationsbeschreibungsdatei 500 liefert den Namen der JEDEC Datei, die ein Programmierbitmuster enthält zur Verwendung durch den Programmierkommandogenerator 404 bei der Durchführung der spezifizierten Programmieranweisung. Zusätzlich zeigt Schritt 1402 14) für jede in der Konfigurationsbeschreibungsdatei 500 aufgelistete Einrichtung die Anzahl der Zeilen und die Größe in Bitanzahlen jeder Zeile an. Schritt 1402 legt auch fest, welche der Einrichtungen in der seriell verbundenen Verkettung 400 die größte Anzahl von Programmiereinheiten besitzt und zwar definiert als die größte Anzahl von Zeilen in den ispGAL22V10 Typeinrichtungen oder als die größte Anzahl von Halbzeilen in den ispLSI Typ Einrichtungen, welche auch immer größer ist.
  • Bis zur Vollendung des oben beschriebenen Schritts 1402, wird Schritt 1403 aufgerufen zur Berechnung einer „zusammengesetzten Feldabbildung". Die vorliegende Erfindung betrachtet die seriell verbundene Verkettung 400 als ob es eine Einrichtung wäre, die eine Anzahl von Zeilen besitzt, die gleich der größten Anzahl von Programmiereinheiten ist, wie im Schritt 1402 oben festgelegt ist.
  • Beispielsweise wird die seriell verbundene Verkettung der 4 als eine Einrichtung betrachtet, die Folgendes besitzt (i) 45 Zeilen (Zeilen 0 bis 44) mit 378 Bits; (ii) eine Zeile (Zeile 45) mit 260 Bits; (iii) 146 (Zeilen 46 bis 191) mit 240 Bits und (iv) 24 Zeilen (Zeilen 192 bis 215) mit 160 Bits. 9 veranschaulicht diese zusammengesetzte Feldabbildung für die seriell verbundene Verkettung 400 der 4. Wie in 9 gezeigt ist, können in den Zeilen 0 bis 44 eine Zeile vom ISP PLD 401 und zwei Halbzeilen von jedem der ISP PLDs 402 und 403 gleichzeitig programmiert werden. Somit wäre die Gesamtzahl der programmierten Bits in jeder der Zeilen 0 bis 44 die Summe von 138 Bits, 80 Bits und 160 Bits, d. h. 378 Bits. Zeile 45 repräsentiert die Programmierung der 20 Architekturbits und eine Halbzeile jeder ISP PLDs 402 und 403. Somit ist die Anzahl der zu programmierenden Bits in Zeile 45 die Summe von 20, 80 und 160, d. h. 260 Bits. Für die Zeilen 46 bis 191 ist die Anzahl der zu programmierenden Bits die Summe der zwei Halbzeilen der ISP PLDs 402 und 403, da die ISP PLD 401 diese Zeilen nicht besitzt. Somit ist die Anzahl der zu programmierenden Bits in den Zeilen 46 bis 191 die Summe von 80 und 160, d. h. 240 Bits. Schlussendlich muss in den Zeilen 192 bis 215 nur ISP PLD 403 programmiert werden. Also ist die zu programmierende Anzahl von Bits in den Zeilen 192 bis 215 eine Halbzeile der ISP PLD 403, d. h. 160 Bits.
  • Gemäß dieser zusammengesetzten Feldabbildung wird eine Bitstromdatei („ispSTREAM Datei") im Speicher erzeugt. Die ispSTREAM Datei beinhaltet die Bitstromdaten, die nötig sind zum Schieben von Daten und Instruktionen in die seriell verbundene Verkettung der zu programmierenden ISP PLDs (beispielsweise seriell verbundene Verkettung 400 der 4). 10b zeigt das Format einer ispSTREAM Datei 1000 für die seriell verbundene Verkettung 400 der ISP PLDs 401 bis 403 der 4.
  • Zum Aufbau der ispSTREAM Datei 1000 werden die für die ispSTREAM Datei benötigten Speicherzellen zugewiesen (allocate). Um diese Zuweisung durchzuführen, wird die im Flussdiagramm 1600 skizzierte Prozedur, die in zwei Teilen 1600a und 1600b in 16a und 16b gezeigt ist, verwendet. In 16a weist Schritt 1602 24 Bits zu. Diese 24 Bits sind vorgesehen die drei 8-Bit ID Codes für jede der ISP PLDs 401, 402 und 403 zu beinhalten. Im Schritt 1603 werden 15 Bits zugewiesen zum Bereithalten einer 5-Bit Anweisung je der der ISP PLDs 401, 402 und 403 für eine Massenlöschanweisung (bulk erase instruction). Die Befehlssätze, die ausführbar sind von den Zustandsmaschinen der ispGAL22V10 Typ Einrichtungen (beispielsweise ISP PLD 401) und der ispLSI Typ Einrichtungen (beispielsweise ISP PLDs 402 und 403) sind in den 10c bzw. 10d gezeigt. 10c und 10d liefern für jede Anweisung bzw. Befehl den Befehlscode für den Befehl, ein Kürzel (mnemonic) des Befehls und eine kurze Beschreibung der Funktion des Befehls bzw. der Instruktion. Wie in 10b gezeigt ist, besitzt beispielsweise der Massenlöschbefehl in einer ispLSI Typ Einrichtung einen Befehlscode '00091' (binär) und ein Kürzel „UBE". Der UBE Befehl löscht die Programmierung in der gesamten Einrichtung durch Setzen aller programmierbaren Bits auf eine binäre '1'.
  • Im Schritt 1604 werden dann 15 Bits (Bits 1003) zugewiesen zum Schieben des 5-Bit „ADDSHIFT" Befehls (10c) in die ISP PLDs 402 und 403 und zum Schieben des 5-Bit „FLOWTHRU" (oder „PASS") Befehls in die ISP PLD 401. Der FLOWTHRU Befehl wird an die ISP PLD 401 geliefert, da eine Einrichtung des ispGAL22V10 Typs kein Adressregister besitzt, wird die Adresse als die ersten sechs Bits des Datenregisters 103 spezifiziert. Im Schritt 1605 werden dann 204 Bits (Bits 1004) zugewiesen für die tatsächlichen Adressbits, um in die Adressregister 202 und 302 der ISP PLDs 402 bzw. 403 geschoben zu werden. Da die ISP PLDs 402 und 403 96 bzw. 108 Zeilen besitzen, ist die gesamte Anzahl von Bits, die in Bits 1004 für die tatsächlichen Adressbits der ISP PLDs 402 und 403 zugewiesenen werden 204. Im Schritt 1606 werden 15 Bits (Bits 1005) für die Datenschiebebefehle zugewiesen („DATASHIFT" oder „SHIFT_DATA" in den 10c und 10d) zum Schieben von Datenbits in Datenregister 102a, 203a und 303a. Im Schritt 1607 wird dann eine Anzahl von Bits (Bits 1006) für Daten zugewiesen, die in die erste Zeile (d. h. Zeile 0) der oben erzeugten bzw. konstruierten zusammengesetzten Matrix 900 (9) geschoben zu werden. Wie oben beschrieben, umfasst die Zeile 0 im Ausführungsbeispiel der 4 378 Datenbits einschließlich 6 Adressbits und 132 Datenbits für ISP PLD 401, 80 Datenbits für ISP PLD 402 und 160 Datenbits für ISP PLD 403. In den nächsten 2 Schritten, d. h. Schritten 1608 und 1609 werden 30 Bits (Bits 1007 und 1008) zugewiesen für die Programmbefehle („PROGRAM" und „PRGMH") und die Verifizierbefehle („VER/LDH" oder „VERIFY"), die beim Programmieren der ISP PLDs 401 bis 403 verwendet werden. PRGMH und VER/LDH sind Befehle, die Programmieren bzw. Verifizieren unter Verwendung von Daten in dem höherwertigen halbzeiligen Teil des Datenregisters der ispLSI Einrichtungen (beispielsweise halbzeilige Datenregister 203a und 303a). Schritt 1610 weist 15 Bits (Bits 1010) zu zum Halten der „DATASHIFT" und „SHIFT_DATA" Befehle zum Herausschieben von Daten aus Datenregistern der PLD ISPs 402 und 403 bzw. ISP PLD 401. Schritte 1611 bis 1615 (Schritte 1612 bis 1615 wie in 16b gezeigt) sind Schritte, die den oben beschriebenen Schritten 1606 bis 1610 entsprechen. Schritte 1611 bis 1615 sind vorgesehen zur Verarbeitung der nächsten Zeile der ISP PLD 401 und der niederwertigen 160 Bit und 360 Bit Halbzeilen der ISP PLDs 402 und 403, bei der durch die Adressregister 202 bzw. 302 spezifizierten bzw. angegebenen Adresse. Schritte 1611 bis 1615 weisen in der ispSTREAM Datei Strukturen 1010 bis 1014 zu. Schritte 1604 bis 1615 werden für die Zeilen 2 bis 215 der zusammengesetzten Feldabbildung (composite arry map) 900 wiederholt, bis Zeile 215 (siehe 9) abgearbeitet ist. Diese wiederholbare Schleife und der End- bzw. Abbruchentscheidungspunkt werden durch Entscheidungspunkt 1616 repräsentiert. Für Zeile 45 sind die für Schritt 1612 zugewiesenen Datenbits 260, wie oben erläutert. In gleicher Weise sind für die Zeilen 46 bis 191 die für Schritte 1607 und 1612 zugewiesenen Datenbits 240 Bits. Für Zeilen 92 bis 215 sind die für Schritte 1607 und 1612 zugewiesenen Datenbits 160 Bits. Für Zeilen 192 bis 195 ist, da alle Zeilen in ISP PLD 402 programmiert sind, die Anzahl der Bits, die für die Adressbits des Schritts 1605 zugewiesen werden 108, was die Anzahl der Zeilen für ISP PLD 403 ist.
  • Bezugnehmend zurück auf 14, ist nach der Zuweisung der ispSTREAM Datei 1000 Schritt 1403 vollendet. Der nächste Schritt, d. h. Schritt 1404 (Ausführung der Unterroutine „pack_jedec_files" geht weiter) ruft dann eine Unterroutine „read_jedec_files" auf. Schritt 1404 liest die JEDEC Dateien auf die in der Konfigurationsbeschreibungsdatei 500 einzeln verwiesen wird und konvertiert die Information in jeder JEDEC Datei (in ASCII Zeichen geliefert) in eine gepackte binäre Abbildung im Speicher, die zeilenweise organisiert ist. Während jede JEDEC Datei gelesen wird, wird jede Zeile (für eine Einrichtung des ispGAL22V10 Typs) oder Halbzeile (für eine Einrichtung des ispLSI Typs) die nur '1'en hat (d. h. alle Programmbits in der Zeile sind binäre '1'en) markiert. In einem bevorzugten Ausführungsbeispiel werden nachdem alle Programmbits in der JEDEC Datei in die gepackte binäre Abbildung im Speicher eingelesen sind, die Zeilen oder Halbzeilen in der gepackten binären Abbildung sortiert. Bei ispGAL22V10 Einrichtungen werden die Zeilen so sortiert, dass die Zeilen, bei denen nicht alle binären '1'en sind in ansteigender bzw. aufsteigender Adressreihenfolge angeordnet werden, gefolgt von den alle '1'en in ansteigender bzw. aufsteigender Adressreihenfolge. Bei ispLSI Einrichtungen werden die Zeilen in der Datenstruktur in der folgenden Reihenfolge sortiert: 1) in aufsteigender Adressreihenfolge, alle Zeilen, bei denen nicht alle '1'en sowohl in den höherwertigen als auch niederwertigen Halbzeilen einer Adresse sind; (ii) in aufsteigender Adressreihenfolge, alle Zeilen, die alle '1'en in einer der Halbzeilen und nicht alle '1'en in der anderen Halbzeile besitzen; und (iii) in aufsteigender Adressreihenfolge, alle Zeilen, die nur '1'en in beiden Halbwörtern haben.
  • 6, 7 und 8 sind JEDEC Dateien, die die JEDEC Dateien veranschaulichen auf die in 5 für IPS PLDs 401, 402 bzw. 403 verwiesen wurde. Wie in 6 gezeigt ist, liest eine JEDEC Datei für eine ispGAL22V10 Einrichtung Programmbits aus einer 44 × 132-Bit Matrix 601. Jede Spalte der Bitmatrix 601 entspricht den 132 Programmierbits für eine Zeile in der UND Matrix (AND array) 101 der 1. In Kombination mit einer vom Programmierkommandogeneraton 404 (4) erzeugten 6-Bit Adresse werden diese 132 Bits Programmierbits in das Adress/Datenschieberegister 102 geschoben, um eine Zeile der UND Matrix 101 zu programmieren. Die verbleibenden Teile der JEDEC Datei liefern Information, wie beispielsweise die 20 Architekturbits und die 64-Bit UES. Das Format für eine JEDEC Datei, die mit einer ispGAL22V10 Einrichtung verwendet wird, ist dem Fachmann bekannt.
  • 7 zeigt eine JEDEC Datei für eine ispLSI 1016 Einrichtung, die die „1016.jed" Datei veranschaulicht, auf die in 5 für die ISP PLD 402 der 4 verwiesen wurde. Wie in 7 gezeigt, werden Programmierbits vom Programmierkommandogenerator 404 aus einer 192 × 80-Bit Matrix 701 gelesen. Im Gegensatz zur Matrix 601, d. h. die Programmierbitmatrix einer JEDEC Datei für einen ispGAL22V10 Einrichtung, in dem jede Spalte einen Zeile programmierbarer Komponenten in der Einrichtung repräsentiert, repräsentieren jeweils zwei Zeilen der Matrix 701 die Programmierbits für entweder die höherwertige Halbzeile oder die niederwertige Halbzeile einer entsprechende Zeile, in der E2CMOS Matrix der ispLSI Einrichtung. Die Programmierung ist erreicht, wenn die Programmbits durch Ausführen des entsprechenden Programmierkommandos auf die Ziel ispPLD von den Datenregistern 203a und 203b herunter geladen sind. 8, die eine JEDEC Datei zeigt, die die JEDEC Datei „1016.jed" veranschaulicht, auf die in 5 für ISP PLD 402 verwiesen wurde, enthält eine 108 × 160-Bit Matrix 801, die in der gleichen Weise wie die Matrix 701 der 7 interpretiert wird. Natürlich besitzen jeweils zwei Zeilen in der Matrix 801 160 Bits, die entweder der 160-Bit höherwertigen Halbzeile oder der 160-Bit niederwertigen Halbzeile entsprechen, und zwar für eine 320-Bit Zeile der E2CMOS Matrix 201 einer ispLSI 1032 Einrichtung. Als ein Beispiel zeigt 7, dass die höherwertige Halbzeile der Programmierbits bei Adresse 7 alle '1'en sind. Genauso zeigt 8, dass beide Halbzeilen der Programmierbits bei der Adresse 64 alle '1'en sind. Der nächste Schritt in Schritt 1404 ist die tatsächlichen Programm- und Befehlsdaten in die ispSTREAM Datei 1000 zu füllen. Die Prozedur zum Füllen der ispSTREAM Datei 1000 ist vorgesehen als Prozedur 1700 in den 17a und 17b.
  • 17a und 17b sind Teile 1700a bzw. 1700b der Prozedur 1700. 17a zeigt auf der linken Seite Schritte 1701 bis 1710, die unternommen werden um Programmdaten in die ispSTREAM Datei 1000 zu füllen und auf der rechten Seite die tatsächlichen Programmbits, die in die Datenstrukturen 1011 (10011) bis 1019 der in 10b gezeigten ispSTREAM Datei 1000 gefüllt werden. 17b zeigt auf der linken Seite Schritte 1711 bis 1717, die unter nommen werden, um Programmdaten in die ispSTREAM Datei 1000 zu füllen, und auf der rechten Seite die tatsächlichen Programmbits, die in die Datenstrukturen 1011 bis 1014 der in 10b gezeigten ispSTREAM Datei 1000 gefüllt werden. Anfangs werden, wie in 17a gezeigt, Programmbits, die mit der letzten Einrichtung der seriell verbundenen Verkettung 400 in Bezug stehen als erste verarbeitet. Somit füllt im Schritt 1701 der 8-Bit ID Code die letzten 8 Bits der Datenstruktur 1001 der ispSTREAM Datei 1000. Dann wird im Schritt 1702 der „UBE" Befehl (user bulk erase, Nutzerkomplettlöschung bzw. Nutzergesamtlöschung) in die entsprechenden 5 Bits (d. h. die letzten 5 Bits) der Datenstruktur 1002 eingegeben. Der Befehlscode, der dem „ADDSHIFT" (Adresseschieben) Befehl entspricht, wird dann im Schritt 1703 in die letzten 5 Bits der Datenstruktur 1003 eingegeben. Die Adressbits, die in das Adressregister 302 zu schieben sind, werden in den letzten 108 Bits der Datenstruktur 1004 geliefert. Der Befehlscode der dem „DATASHIFT" (Datenschieben) Befehl entspricht, wird dann im Schritt 1705 an die letzten 5 Bits der Datenstruktur 1005 geliefert. Dann werden im Schritt 1706 160 Programmdatenbits, die der höherwertigen Halbzeile der ersten Zeile in der gepackten binären Abbildung für die ISP PLD 403 entsprechen an die letzten 160 Bits der Datenstruktur 1006 geliefert. In den Schritten 1707 und 1708 werden die Befehlscodes für „PRGMH" (Programmiere höherwertige Halbzeile) und „VER/LDH" (Verifiziere oder Lade höherwertige Halbzeile) in die entsprechenden Bits der Datenstrukturen 1007 und 1008 geliefert. Im Schritt 1709 wird der Befehlscode für den „DATASHIFT" Befehl in die entsprechenden Bits der Datenstruktur 1009 geliefert. Dieser „DATASHIFT" Befehl wird verwendet, um das höherwertige Halbwort der ISP PLD 403 herauszuschieben, und zwar an der im Adressregister 303 spezifizierten Adresse zur Verifikation. Die Schritte 1710 bis 1714 liefern für die niederwertige Halbzeile einer ispLSI Einrichtung Schritte zum Füllen der Instruktionsbefehlscodes und Programmdatenbits in Datenstrukturen 1010 bis 1014. Schritt 1715 testet ob die Befehls- und Programmdatenbits für alle Zeilen der ISP PLD 403 an die ispSTREAM Datei 1000 geliefert wurden. Falls nicht alle Befehle und Programmdatenbits der ISP PLD 403 an die ispSTREAM Datei 1000 geliefert wurden, wiederholt der Prozess 1700 die Schritte 1703 bis 1714 bis er fertig ist. Wenn alle Befehle und Programmdatenbits dieser letzten Einrichtung der seriell verbundenen Verkettung 400 an die ispSTREAM Datei 1000 geliefert wurden, wird die nächste JEDEC Datei der Konfigurationsbeschreibung 500 gelesen. Schritt 1701 bis 1715 werden dann wiederholt zum Füllen der tatsächlichen Befehls- und Programmdatenbits der ispSTREAM Datei 1000, die der nächsten Einrichtung in der seriell verbundenen Verkettung 400 der 4 entsprechen. Prozess 1700 geht weiter bis Befehl- und Programmdatenbits für alle Einrichtungen der seriell verbundenen Verkettung 400 in die ispSTREAM Datei 1000 geliefert werden. Das Ergebnis des Prozesses 1700 auf der seriell verbundenen Verkettung 400 unter Verwendung der Programmdatenbits der 6 bis 8 ist in 10b gezeigt. An diesem Punkt ist die Unterroutine „pack_jedec_files" vollendet.
  • Gleichzeitiges Programmieren der seriell verbundenen Verkettung 400 kann dann von der so aufgefüllten ispSTREAM Datei 1000 (100) weitergehen. In diesem Ausführungsbeispiel ist eine „ispstream_pump" Prozedur vorgesehen zum Ausführen der Programmierung und Verifizierung der ispSTREAM Datei. Die ispstream_pump Prozedur ist in Quellcodeform im Anhang A geliefert. Ein Hardware- und Softwaresystem, das fähig ist die Ausgangsdaten der ispstream_pump Prozedur herunterzuladen zum Programmieren und zur Verifizierung in den Einrichtungen der seriell verbundenen Verkettung ist in dem oben referenzierten ISP Handbuch 1994 beschrieben. Im besonderen sind das Hardware- und Softwaresystem und die operativen Prozeduren zum Betreiben eines solchen Systems beschrieben im Kapitel 3 des ISP Handbuchs 1994, mit dem Titel „In-System Programming on a PC or Sun Workstation". Die Lehren des ISP Handbuchs 1994 werden hiermit durch Verweis in Ihrer Gesamtheit einbezogen.
  • Speziell ist eine Prozedur bzw. Verfahren zum Verarbeiten und Herunterladen der Daten der ispSTREAM Datei 1000 zu Zieleinrichtungen in der seriell verbundenen Verkettung 400 der 4 in dem Flussdiagramm 1500, illustriert, dass in fünf Teilen 1500a1500e in den 15ae gezeigt ist. 15a zeigt einen Teil 1500a die Schritte 15011507 des Prozesses 1500 umfas send. Wie in 15a, im Schritt 1501 gezeigt, wird die Unterroutine „ispstream_pump" aufgerufen um den Prozess des Verarbeitens und Herunterladens der Daten der ispSTREAM Datei 1000 zu den Zieleinrichtungen der seriell verbundenen Verkettung 400 der 4 zu beginnen. Die Unterroutine "ispstream_pump" ruft im Schritt 1502 eine Unterroutine „move_to_id_state" auf, die alle Einrichtungen der seriell verbundenen Verkettung 400 veranlasst in den Ruhezustand (idle state) zu gehen. Der Ruhezustand wird eingenommen, wenn der Programmierkommandogenerator 404 (4) das folgende Signalprotokoll liefert: (i) Festlegen der ispEN, SDI, SCLK und MODE Signale jeweils auf logisch niedrig (logic low); (ii) folgend auf (i), Festlegen des MODE Signals auf logisch hoch (logic high); (iii) folgend auf (ii), pulsieren bzw. takten des Signals SCLK; und (iv) folgend auf (iii), zurücksetzen des MODE Signals auf logisch niedrig.
  • 18a zeigt die Zustände der drei ID Register 104, 204 und 304 in den ISP PLDs 401, 402 und 403 der seriell verbundenen Verkettung 400. Im Schritt 1503 wird der Befehlsprogrammgenerator bzw. Kommandoprogrammgenerator 404 veranlasst, das SCLK Signal 24 mal zu pulsieren bzw. takten, um die Signalwerte SDO entsprechend den ID Codes der ISP PLDs 401, 402 und 403 auszugeben. Diese ID Codes werden dann mit den ID Codewerten in der Datenstruktur 1001 der ispSTREAM Datei 1000 verglichen. Im Schritt 1504, rufen die ispstream_pump Unterroutinen die Unterroutine „execute()" zum Setzen der Einrichtungen der seriell verbunden Verkettung 400 in den „Schiebe" („shift") Zustand. Der Schiebezustand wird eingenommen durch Veranlassen des Befehlsprogrammgenerators 404 das folgende Protokoll auszuführen: (i) festlegen bzw. setzen der ispEN, SDI, SCLK, MODE Signale auf logisch niedrig; (ii) danach festlegen der MODE und der SDI Signale auf logisch hoch; (iii) einmaliges pulsieren des SCLK Signals und (iv) führen der MODE und der SDI Signale auf logisch niedrig. In dem „Schiebe" Zustand ist eine In-System programmierbare Einrichtung bereit Instruktionen zum Ausführen eines Befehls in einem Befehlsregister der In-System programmierbaren Einrichtung zu empfangen.
  • Im Schritt 1505 werden die Instruktionen für Gesamtlöschung (BULK_ERASE), d. h. „BULK_ERASE" für eine ispGAL22V10 Typeinrichtung und „UBE" für eine ispLSI Typeinrichtung aus der Datenstruktur 1002 der ispSTREAM Datei 1000 genommen und durch das Signal SDI in ISP PLDs 401, 402 und 403 hinuntergeladen und zwar durch 15maliges pulsieren des SCLK Signals. Als nächstes werden im Schritt 1506 die Einrichtungen der seriell verbundenen Verkettung 400 in den „execute" Zustand versetzt und zwar durch programmieren des Befehlsgenerators 404, der das in 11 illustrierte Signalprotokoll ausführt. Die Gesamtlöschfunktion wird dann im Schritt 1507 ausgeführt durch das Festlegen der ispEN, SDI, SCLK und MODE Signale auf logisch niedrig und dann pulsieren des Signals SCLK.
  • 5b zeigt Teil 1500b des Flussdiagramms 1500, der die Schritte 15081515 abdeckt. Schritt 1508 ist ein Warteschritt um auf die Vollendung der Gesamtlöschinstruktion zu warten. Da die ISP PLDs Einrichtungen 401, 402 und 403 gleichzeitig gesamtgelöscht werden, ist der Warteschritt 1508 vollendet, wenn die Gesamtlöschung in der Einrichtung, die die meiste Zeit benötigt, vollendet ist. Im Schritt 1509 werden die ISP PLDs 401, 402 und 403 wieder in der oben beschriebenen Art und Weise in den „Schiebe" Zustand platziert zum Empfang weiterer Instruktionen. Im Schritt 1510 werden dann die Schiebeadressinstruktionen, d. h. (die „ADDSHFT" Instruktion für jede ISP PLD 402 und 403 und für die „FLOWTHRU" Instruktion für die ISP PLD 401, wie oben diskutiert) aus der Datenstruktur 1003 der ispSTREAM Datei 1000 abgerufen und in die ISP PLDs 401, 402 und 403 hinuntergeladen. 18b zeigt die Inhalte der 5-Bit Instruktionsregister 105, 205 bzw. 305 der ISP PLDs 401403, nachdem die Schiebeadressinstruktionen heruntergeladen sind. Im Schritt 1511 werden die ISP PLDs 401, 402 und 403 in den „execute" Zustand in der oben beschriebenen Art und Weise platziert. Die Adressbits (204) werden dann in Schritt 1512 aus der Datenstruktur 1004 der ispSTREAM Datei 1000 abgerufen und in die ISP PLDs 402 und 403 geschoben und zwar durch 204maliges pulsieren des SCLK Signals. 12 ist ein schematisches Diagramm, dass das Schieben von Adressbits ins Schiebeadressregister 202 und 302 zeigt.
  • In Schritten 15141516 (15c) werden die Schiebedateninstruktionen und Programmierdatenbits aus Datenstrukturen 1005 und 1006 abgerufen und in Datenregister 103, 203a und 303a der ISP PLDs 401, 402 und 403 geschoben. Schritte 15141516 führen jeweils die folgenden Funktionen aus: (i) platzieren der ISP PLDs 401403 in den „Schiebe" Zustand, (ii) einschieben der Datenschiebeinstruktionen der Datenstruktur 1005, (iii) platzieren der ISP PLDs 401403 in den „execute" Zustand, (iv) schieben der Programmdatenbits der Datenstruktur 1006 in Datenregister 103, 203a und 203b. 13 zeigt die Inhalte der Datenregister 103, 203a und 303a nach dem Schritt 1516. ISP PLDs 401403 werden dann wieder in den „Schiebe" Modus platziert um die Programminstruktionen zu empfangen. Falls die in die Datenregister 103, 203a und 303a geschobenen Daten, alle „1"en sind, kann die Programmierung übersprungen werden. Somit ist im Schritt 1518, falls die Daten in den Datenregistern 103, 203a und 303a alle „1"en sind, der nächste Schritt 1524 (15c); andernfalls ruft Schritt 1519 aus der Datenstruktur 1007 der ispSTREAM Datei 1000 die Programminstruktionen für die ISP PLDs 401403 ab. Im Schritt 1520 werden dann die ISP PLDs 401403 in den „execute" Zustand platziert und zwar in der oben erläuterten Art und Weise. Die Programmierung wird im Schritt 1521 initiiert bzw. begonnen und zwar durch das Festlegen der ispEN, MODE, SDI und SCLK Signale auf logisch niedrig und dann pulsieren des SCLK Signals. Zustand 1522 ist ein Zeitsteuerungszustand in dem der Kommandogenerator 404 eine vorbestimmte, benötigte Zeitdauer bzw. Zeitabschnitt wartet um erfolgreiche Programmierung sicherzustellen. Somit wird eine gleichzeitige Programmierung erreicht. ISP PLDs 401403 werden dann in den Schiebezustand zurückgeführt zum Empfangen weiterer Instruktionen. 18c zeigt die Inhalte der 5-Bit Instruktionsregister 105, 205 bzw. 305 der ISP PLDs 401403, nachdem die Schiebeadressinstruktionen im Schritt 1519 hinuntergeladen sind. 18c zeigt auch, dass wenn die Programmbits im Datenregister 203a alle „1"en sind, aber weder Datenregister 103 noch Datenregister 303a alle „1"en sind, die Programmierung fortfährt mit dem ISP PLD 402 Instruktionsregister 205 auf eine NOP (no operation, kein Befehl) Instruktion gesetzt. Man stellt fest, dass mit der Sortierung im Schritt 1404 der Programmdatenbits in die zwei Gruppen für eine ispGAL22V10 Typ einrichtung und drei Gruppen für eine ispLSI Einrichtung erhebliche Programmierzeit gespart werden kann, weil die Programmierschritte 15191523 dann übersprungen werden können.
  • Verifizier- bzw. Überprüfungsbefehle werden dann aus der Datenstruktur 1008 der ispSTREAM Datei 1000 (100) abgerufen und an ISP PLDs 401403 im Schritt 1524 geliefert. Im Schritt 1525 werden die ISP PLDs 401403 in den „ausführen" (execute) Zustand gesetzt. Im Schritt 1526 werden Datenüberprüfungsarbeiten (data verify operations) durch das Protokoll initiiert: (i) Setzen der ispEN, SDI, SCK und MODE Signale auf logisch niedrig und (ii) danach wird das SCLK Taktsignal gepulst. Schritt 1527 wartet dann für eine ausreichende Dauer auf jede ISP PLD Einrichtung zum Lesen des Speichers für programmierte Datenbits, die in den Schritten 15191523, gespeichert wurden. Die zu überprüfenden Daten werden dann aus den Datenregistern 103, 203a und 203b geschoben durch (i) setzen der ISP PLDs 401403 im Schritt 1528 in den „Schiebe" Zustand; (ii) im Schritt 1529 Abrufen der Datenschiebebefehle aus der Datenstruktur 1014 der ispSTREAM Datei 1000 und schieben solcher Befehle in ISP PLDS 401403; (iii) im Schritt 1530 setzen der ISP PLDs 401403 in den „ausführen" Zustand und (iv) im Schritt 1531 pulsieren des Signals SCLK 378mal zur Ausgabe am Signal SDO der Datenbits der Datenregister 103, 203a und 303a. Falls die aus den ISP PLDs 401403 herausgeschobenen Daten identisch mit den Daten in der Datenstruktur 1006 der ispSTREAM Datei 1000 sind, sind ISP PLDs 401403 richtig programmiert.
  • Im Schritt 1532 (15e) werden die ISP PLDs 401403 in den „Schiebe" Zustand gesetzt und zwar zum Fortsetzen der Programmierung der ISP PLDs 401403. Schritte 15141532 werden wiederholt zum Programmieren der nächsten Zeile im ISP PLD 401 und der nächsten Halbzeile bei jeder der ISP PLDs 402403. Danach wird beim Entscheidungspunkt 1534 die ispSTREAM Datei 1000 überprüft zum Bestimmen, ob alle Daten in der ispSTREAM Datei 1000 in die Einrichtungen in der seriell verbundenen Verkettung 400 heruntergeladen wurden. Falls noch weitere Daten zum Herunterladen in die ISP PLDs 401403 vorhanden sind, kehrt die Prozedur 1500 zum Schritt 1514 zurück; andernfalls ist die Prozedur 1500 vollendet.
  • Die obige detaillierte Beschreibung ist vorgesehen zum Beschreiben spezieller Ausführungsbeispiele der vorliegenden Erfindung und ist nicht als beschränkend gedacht. Zahlreiche Variationen und Modifikationen sind innerhalb des Rahmens der vorliegenden Erfindung möglich. Beispielsweise wie oben erwähnt, ist die vorliegende Erfindung anwendbar auf alle Arten feldprogrammierbarer Einrichtungen, einschließlich programmierbarer Logikeinrichtungen, programmierbarer Speicher und programmierbarer Analogschaltungen 21263. Die vorliegende Erfindung ist in den unten angefügten Ansprüchen dargelegt.

Claims (10)

  1. Verfahren zum Programmieren mehrerer feldprogrammierbarer Einrichtungen (401, 402, 403) gleichzeitig, wobei das Verfahren das serielle Verbinden der feldprogrammierbaren Einrichtungen (401, 402, 403) in einer Kettenkonfiguration aufweist, wobei das Verfahren gekennzeichnet ist durch: Konstruieren einer Datenstromdatei, die einen zusammengesetzten Datenstrom (1000) repräsentiert zum simultanen Programmieren der feldprogrammierbaren Einrichtungen (401, 402, 403); Abrufen eines individuellen Programmierdatenstroms aus einer Vielzahl von Programmdatendateien, und zwar für jede der feldprogrammierbaren Einrichtungen (401, 402, 403); Füllen der Datenstromdatei mit den individuellen Programmierdatenströmen, um den zusammengesetzten Datenstrom (1000) zu bilden; Abrufen des zusammengesetzten Datenstroms aus der Datenstromdatei; serielles Schieben des zusammengesetzten Datenstroms (1000) in die feldprogrammierbaren Einrichtungen (401, 402, 403); und gleichzeitiges Programmieren der feldprogrammierbaren Einrichtungen (401, 402, 403) unter Verwendung des zusammengesetzten Datenstroms (1000).
  2. Verfahren gemäß Anspruch 1, wobei der zusammengesetzte Datenstrom (1000) Anweisungen sequentiell in die feldprogrammierbaren Einrichtungen (401, 402, 403) schiebt, Programmierdaten sequentiell in die feldprogrammierbaren Einrichtungen (401, 402, 403) schiebt, bewirkt, dass die Anweisungen gleichzeitig ausgeführt werden, und bewirkt, dass Daten sequentiell aus den feldprogrammierbaren Einrichtungen (401, 402, 403) verschoben werden.
  3. Verfahren gemäß Anspruch 1, wobei der individuelle Programmierdatenstrom Programmieranweisungen und Programmierdaten aufweist, und wobei der Schritt des Abrufens eines individuellen Programmierdaten stroms die folgenden Schritte aufweist: Organisieren der abgerufenen Programmierdaten als Zeilen, wobei jede Zeile Daten entspricht, die mit einer Adresseinheit der feldprogrammierbaren Einheiten (401, 402, 403) entsprechend dem individuellen Datenstrom assoziiert sind; und Neuordnen der Programmierdaten, so dass die Zeilen mit einem vorbestimmten Datenmuster hinter Zeilen angeordnet sind, die das vorbestimmte Datenmuster nicht besitzen.
  4. Verfahren gemäß Anspruch 3, wobei das vorbestimmte Datenmuster einem Grunddatenmuster der feldprogrammierbaren Einrichtung entspricht, wenn diese nicht programmiert ist.
  5. Verfahren gemäß Anspruch 1, wobei eine der feldprogrammierbaren Einrichtungen (401, 402, 403) einen seriellen Eingangsanschluß (SDI), einen seriellen Ausgangsanschluß (SDO), einen Taktanschluß (SLCK) und einen Betriebsartanschluß (MODE) aufweist.
  6. Verfahren gemäß Anspruch 1, wobei eine der feldprogrammierbaren Einrichtungen (401, 402, 403) eine programmierbare Einrichtung ist, die einen Programmierfreigabeanschluß (ispEN), einen seriellen Eingangsanschluß (SDI), einen seriellen Ausgangsanschluß (SDO), einen Taktanschluß (SLCK) und einen Betriebsartanschluß (MODE) aufweist.
  7. Verfahren gemäß Anspruch 1, wobei die feldprogrammierbaren Einrichtungen (401, 402, 403) erste und zweite feldprogrammierbare Einrichtungen aufweisen, die jeweils erste und zweite Gate- bzw. Gatteranordnungen mit ungleicher Größe besitzen.
  8. Verfahren gemäß Anspruch 1, wobei die feldprogrammierbaren Einrichtungen (401, 402, 403) erste und zweite feldprogrammierbare Einrichtungen aufweisen, die jeweils erste und zweite Gate- bzw. Gatteranordnungen mit gleicher Größe besitzen.
  9. Verfahren gemäß Anspruch 1, wobei die feldprogrammierbaren Einrichtungen (401, 402, 403) erste und zweite feldprogrammierbare Einrichtungen aufweisen, die ungleiche Adressierschemata besitzen.
  10. Verfahren gemäß Anspruch 1, wobei die feldprogrammierbaren Einrichtungen (401, 402, 403) erste und zweite feldprogrammierbare Einrichtungen aufweisen, die das gleiche Adressierschema besitzen.
DE69632171T 1995-07-21 1996-07-05 Verfahren zur gleichzeitigen Programmierung von programmierbaren integrierten Schaltungen innerhalb eines Systems Expired - Fee Related DE69632171T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/505,837 US5635855A (en) 1995-07-21 1995-07-21 Method for simultaneous programming of in-system programmable integrated circuits
US505837 2000-02-17

Publications (2)

Publication Number Publication Date
DE69632171D1 DE69632171D1 (de) 2004-05-19
DE69632171T2 true DE69632171T2 (de) 2004-12-30

Family

ID=24012071

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69632171T Expired - Fee Related DE69632171T2 (de) 1995-07-21 1996-07-05 Verfahren zur gleichzeitigen Programmierung von programmierbaren integrierten Schaltungen innerhalb eines Systems

Country Status (4)

Country Link
US (1) US5635855A (de)
EP (1) EP0755017B1 (de)
JP (1) JP3091694B2 (de)
DE (1) DE69632171T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0634126A (ja) * 1992-07-15 1994-02-08 Nec Corp 温風機の警報装置
US5734868A (en) * 1995-08-09 1998-03-31 Curd; Derek R. Efficient in-system programming structure and method for non-volatile programmable logic devices
US5741720A (en) 1995-10-04 1998-04-21 Actel Corporation Method of programming an improved metal-to-metal via-type antifuse
US5926035A (en) * 1996-06-26 1999-07-20 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US5943488A (en) * 1996-06-26 1999-08-24 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US5946478A (en) * 1997-05-16 1999-08-31 Xilinx, Inc. Method for generating a secure macro element of a design for a programmable IC
US5999014A (en) * 1997-09-17 1999-12-07 Xilinx, Inc. Method for concurrently programming or accessing a plurality of in-system-programmable logic devices
US6389321B2 (en) 1997-11-04 2002-05-14 Lattice Semiconductor Corporation Simultaneous wired and wireless remote in-system programming of multiple remote systems
US6032279A (en) * 1997-11-07 2000-02-29 Atmel Corporation Boundary scan system with address dependent instructions
US6134703A (en) * 1997-12-23 2000-10-17 Lattice Semiconductor Corporation Process for programming PLDs and embedded non-volatile memories
US6023570A (en) * 1998-02-13 2000-02-08 Lattice Semiconductor Corp. Sequential and simultaneous manufacturing programming of multiple in-system programmable systems through a data network
US6304099B1 (en) * 1998-05-21 2001-10-16 Lattice Semiconductor Corporation Method and structure for dynamic in-system programming
FR2787597B1 (fr) * 1998-12-22 2001-01-26 St Microelectronics Sa Procede de conception d'un coeur de microprocesseur
US7155711B2 (en) * 1999-12-10 2006-12-26 Sedna Patent Services, Llc Method and apparatus providing remote reprogramming of programmable logic devices using embedded JTAG physical layer and protocol
US6493862B1 (en) * 2000-07-25 2002-12-10 Xilinx Inc. Method for compressing an FPGA bitsream
US6538468B1 (en) 2000-07-31 2003-03-25 Cypress Semiconductor Corporation Method and apparatus for multiple boot-up functionalities for a programmable logic device (PLD)
US7043495B1 (en) 2001-07-27 2006-05-09 Cypress Semiconductor Corp. Techniques for JEDEC file information integrity and preservation of device programming specifications
US7363545B1 (en) 2002-06-03 2008-04-22 Xilinx, Inc. System and method for overcoming download cable bottlenecks during programming of integrated circuit devices
US6714040B1 (en) 2002-06-03 2004-03-30 Xilinx, Inc. Automated boundary-scan chain composition method using a device database and access mechanism for storing and retrieving situation-dependent operation options
US6898776B1 (en) 2002-06-03 2005-05-24 Xilinx, Inc. Method for concurrently programming a plurality of in-system-programmable logic devices by grouping devices to achieve minimum configuration time
US7269771B1 (en) 2003-09-30 2007-09-11 Lattice Semiconductor Corporation Semiconductor device adapted for forming multiple scan chains
US7685327B1 (en) * 2004-03-19 2010-03-23 Xilinx, Inc. Identification of multi-device systems
US7546394B1 (en) 2004-03-19 2009-06-09 Xilinx, Inc. Management of configuration data by generating a chain description data set that specifies an order of configuration chain for multi-device systems
US7454556B1 (en) 2005-02-02 2008-11-18 Xilinx, Inc. Method to program non-JTAG attached devices or memories using a PLD and its associated JTAG interface
US20060212838A1 (en) 2005-02-09 2006-09-21 Checksum, Llc System and apparatus for in-system programming
JP2008060653A (ja) * 2006-08-29 2008-03-13 Matsushita Electric Ind Co Ltd 制御装置
CN101529426A (zh) * 2006-10-16 2009-09-09 汤姆逊许可公司 现场可编程门阵列(fpga)的容错系统内编程
US8384427B1 (en) 2010-04-01 2013-02-26 Lattice Semiconductor Corporation Configuring multiple programmable logic devices with serial peripheral interfaces

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2493641A1 (fr) * 1980-11-03 1982-05-07 Efcis Reseau logique integre a programmation electrique simplifiee
US4879688A (en) * 1985-03-04 1989-11-07 Lattice Semiconductor Corporation In-system programmable logic device
US4849928A (en) * 1987-01-28 1989-07-18 Hauck Lane T Logic array programmer
US4940909A (en) * 1989-05-12 1990-07-10 Plus Logic, Inc. Configuration control circuit for programmable logic devices
JP2564044B2 (ja) * 1991-02-27 1996-12-18 株式会社東芝 プログラマブル論理回路
US5237218A (en) * 1991-05-03 1993-08-17 Lattice Semiconductor Corporation Structure and method for multiplexing pins for in-system programming
US5329179A (en) * 1992-10-05 1994-07-12 Lattice Semiconductor Corporation Arrangement for parallel programming of in-system programmable IC logical devices
US5495181A (en) * 1994-12-01 1996-02-27 Quicklogic Corporation Integrated circuit facilitating simultaneous programming of multiple antifuses
US5493239A (en) * 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array

Also Published As

Publication number Publication date
EP0755017B1 (de) 2004-04-14
DE69632171D1 (de) 2004-05-19
EP0755017A3 (de) 1999-05-12
JPH09218782A (ja) 1997-08-19
EP0755017A2 (de) 1997-01-22
JP3091694B2 (ja) 2000-09-25
US5635855A (en) 1997-06-03

Similar Documents

Publication Publication Date Title
DE69632171T2 (de) Verfahren zur gleichzeitigen Programmierung von programmierbaren integrierten Schaltungen innerhalb eines Systems
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
EP0499695B1 (de) Speicherprogrammierbare Steuerung
EP0947049B1 (de) Umkonfigurierungs-verfahren für programmierbare bausteine zur laufzeit
DE60100476T2 (de) Unterstützung mehrerer konfigurationszustände eines fpga mittels eines auf dem integrierten schaltkreis dafür vorgesehenen prozessors
DE2819571C2 (de)
DE2846117C2 (de) Datenprozessor
DE2424820C3 (de) Einrichtung zur Durchsuchung eines Datenspeichers
DE4206286C2 (de) Speicherzugriffssystem und Verfahren zum Ausgeben eines digitalen Datenstromes
DE3503119A1 (de) Verfahren zum automatischen erzeugen eines quellenprogramms
DE3237224A1 (de) Vorrichtung zum erzeugen einer folge von pruefdaten fuer lsi-schaltungen
DE2926322C2 (de) Speicher-Subsystem
DE3148099C2 (de) Anordnung zum Erkennen einer Digitalfolge
DE1965364A1 (de) Datenverarbeitungseinrichtung
DE19964003A1 (de) Schaltungsanordnung und Verfahren zur Erzeugung und zum Auslesen von Ersatzdaten
DE3811145A1 (de) Vorrichtung zum verarbeiten von bildern mit gewuenschten grauwerten
DE2618053A1 (de) Elektronische steuerschaltungen fuer eine naehmaschine
DE4018438C2 (de) Verfahren zum Testen einer RAM-Speichervorrichtung mit internen seriellen Datenwegen
DE3217024A1 (de) Wortgenerator
DE112019007474T5 (de) Mikrocontroller mit konfigurierbarer logikperipherie
DE1524211A1 (de) Datenverarbeitungsanlage
DE1424756A1 (de) Rechenanlagen-Speicherschaltung
DE1276938C2 (de) Anordnung zum feststellen einer umdrehung des typenrades eines schnelldruckers
DE2234192C2 (de) Datenverarbeitungsanlage
DE4223398A1 (de) Verfahren und Vorrichtung zur Programmierung von nichtflüchtigen Speichern

Legal Events

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