WO2006000495A2 - Verfahren zum hochfahren einer sopc-schaltungseinheit - Google Patents

Verfahren zum hochfahren einer sopc-schaltungseinheit Download PDF

Info

Publication number
WO2006000495A2
WO2006000495A2 PCT/EP2005/052052 EP2005052052W WO2006000495A2 WO 2006000495 A2 WO2006000495 A2 WO 2006000495A2 EP 2005052052 W EP2005052052 W EP 2005052052W WO 2006000495 A2 WO2006000495 A2 WO 2006000495A2
Authority
WO
WIPO (PCT)
Prior art keywords
memory
sopc
program code
circuit
circuit unit
Prior art date
Application number
PCT/EP2005/052052
Other languages
English (en)
French (fr)
Other versions
WO2006000495A3 (de
Inventor
Oliver Brasse
Oliver Lartz
Stephan SCHÜLER
Original Assignee
Siemens Aktiengesellschaft
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 Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2006000495A2 publication Critical patent/WO2006000495A2/de
Publication of WO2006000495A3 publication Critical patent/WO2006000495A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Definitions

  • the invention relates to a method and a circuit arrangement for starting up a SOPC ("system on a programmable chip") circuit unit formed from a programmable logic unit.
  • SOPC system on a programmable chip
  • Programmable logic units such as Field Programmable Gate Array (FPGA) make it possible for program functions to be integrated on a chip together with memory functions.
  • IP cores Intelligent Property Cores
  • the user is given the opportunity of matching the functionality of a microprocessor together with application-specific logic as hardware for his application, to design yourself.
  • the design of the hardware can be done by hardware description languages, such as Very High Speed Integrated Circuit Hardware Desing Language (VHDL), which generates a configuration data stream and loads it into the FPGA.
  • VHDL Very High Speed Integrated Circuit Hardware Desing Language
  • a RISC processor can be designed on a graphical user interface and its function can be inserted into the FPGA.
  • the hardware of the programmable chip is defined.
  • the actual program code is created, for example with the aid of a programming language such as C.
  • C Program program code of the application
  • the object code is loaded into a nonvolatile memory. This object code, hereinafter referred to as program code or also as a user or user program, is then executed by the microprocessor in the SOPC.
  • SOPC system on programmable chip
  • an SOPC circuit is usually part of a circuit realized on a conventional printed circuit board.
  • a read-write memory for example, a SRAM containing the object code of the user program.
  • SOPC and SRAM are connected as separate integrated devices via a system bus.
  • initialization modules In order to start up a circuit arrangement with an SOPC chip, so-called initialization modules are used, which are likewise arranged on the printed circuit board. They have a nonvolatile memory with configuration data for the FPGA.
  • An initialization device also referred to as a serial flash or boot memory, is matched to the FPGA device and connected to it, for example via an I2C interface.
  • the FPGA module In a configuration in a so-called active configuration mode, the FPGA module generates synchronization signals, which it transmits to the serial flash module. If both blocks are synchronized, sends the serial flash memory the configuration data stream into the FPGA device.
  • the FPGA thus configured as a microcontroller now executes the program code of the user program from the external nonvolatile program code flash memory.
  • an external nonvolatile flash memory for storing the program code represents an additional circuit complexity, which is a part of Nach ⁇ .
  • the present invention is based on the object of specifying a "system on a programmable chip" architecture, which contains an initialization circuit, such that an external, non-volatile flash memory is not required.
  • the method according to the invention for starting up a circuit arrangement with an SOPC chip therefore has the following steps:
  • a preferred embodiment of the method according to the invention is characterized in that, with the transmission of the configuration data into the SOPC circuit unit, a CPU boot code is transmitted and stored in a configured memory area of the SOPC circuit unit. As a result, this CPU boot code can be executed immediately after the configuration of the SOPC block has been completed. This CPU boot program is so small in terms of memory requirements that it fits into the configurable memory area of the SOPC block.
  • the CPU boot code is started automatically immediately after the end of the configuration of the SOPC circuit unit in order to access all instructions of the program code from the second memory area of the nonvolatile memory via the system bus into the read / write memory transfer.
  • the program code stored in the initialization block is copied to the external read-write memory (RAM).
  • the read-write memory which was previously used only for storing program data, also contains the complete code of the application. From there, this user program can then be executed.
  • serial transmission method When transmitting on the system bus, a serial transmission method is preferably used.
  • the SOPC circuit unit starts the sequential processing of the instructions of the program code from the read-write memory.
  • the program code is kept ready in the initialization module in a compressed form.
  • This can also be complex User programs are stored in the initialization block.
  • FIG. 1 shows in a block diagram a "system on a programmable chip" - circuit arrangement according to the prior art, wherein the external flash memory contains the program code of the application;
  • FIG. 2 shows in a block diagram an embodiment of a "system on a programmable chip" - Wegungs ⁇ arrangement according to the invention, wherein an external flash memory is not required.
  • FIG. 1 shows a block diagram of an SOPC architecture according to the prior art.
  • the reference numeral 1 designates an SOPC circuit unit formed from a programmable logic unit (FPGA).
  • the SOPC circuit unit 1 is realized on a chip. Separated from this chip, an initialization circuit is identified in the block on the left with the reference numeral 2.
  • This Initialmaschinesschalt ⁇ circle 2 is due to its function and its serial connection to the FPGA module 1 as "serial flash" ge indicates.
  • the serial flash 2 contains a nonvolatile memory having a memory area 3.
  • the nonvolatile memory may be e.g. be implemented in EPROM technology.
  • the memory area 3 contains the configuration data for the FPGA module 1 and the startup code for configuring a CPU on the FPGA 1.
  • a read-write memory 5 (RAM) can be seen on the right-hand side. which serves to store the program data.
  • a second, external, non-volatile memory 6 is distinguished, which is designed as a flash memory and contains the program code, that is to say the instructions of the user program.
  • the arrows 7, 11, and 12 indicate a system bus, not shown, which connects the individual blocks 1, 2, 5 and 6.
  • the module 2 may e.g. Altera ® EPCSl and building block 1 may be Altera ® Cyclon TM.
  • FIG. 2 shows a block diagram of an embodiment of the invention.
  • the hitherto required external flash memory in which the program code is stored according to the prior art
  • the program code is stored in the initialization module 2.
  • the initialization module 2 has a first memory area 3, in which (as in the prior art also), the configuration data for the FPGA module and the startup code for the CPU are kept ready.
  • the initialization block 2 has a further, second memory area 4 in which, according to the invention, the program code of one or more user programs is stored.
  • the booting up of the circuit arrangement according to the invention now takes place in such a way that, as soon as the supply voltage is stably applied to the FPGA module 1, the FPGA module 1 has the role of the master and the initialization module 2 the role of the slave. ve occupy. Subsequently, the configuration data for the FPGA module 1 including the startup code for the CPU from the initialization module 2 in the FPGA module 1 über ⁇ wear (in Figure 2, this is again represented by the arrow 7 with the label "FPGA boot” ). The data transfer also includes a small boot program, which is illustrated in Figure 2 with the arrow 8 ("CPU Boot").
  • this boot program "CPU boot code” is now stored in the SOPC block 1 and executed.
  • the "CPU boot code” is so small in terms of its memory requirements that it fits easily into the configurable memory area of the SOPC block.
  • this boot program starts a copying process, in which data from the memory area 4 of the serial flash ROM 4 into a memory area of the external RAM memory 5 are copied. In FIG. 2, this process is illustrated by the arrows 8 and 9 ("CPU boot").
  • the complete set of instructions of the program code now also stands in the RAM 5.
  • the RAM 8 now also contains the program code in addition to the program data.
  • the CPU in the SOPC module now begins to execute the program code from the random access memory (RAM) 5.
  • the program code is preferably kept in the serial flash memory in a compressed form. It is particularly advantageous if an algorithm for decompression is attached to the compressed user program.
  • the "CPU boot code” copies the program code file together with this decompression algorithm into the random access memory 5.
  • the decompression algorithm undoes the compression of the application again and the Program code started.
  • several versions together with associated program data are kept ready in a compressed form in the initialization module 2. You can assign several program data records to one program record. As a result, a sentence that is used in different countries can be matched to the respective national language (eg German, English, and French).
  • program sets which are assigned to several language data sets, further administrative or logistics advantages.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Read Only Memory (AREA)

Abstract

Verfahren zum Hochfahren einer Schaltungsanordnung, die -eine, aus einer programmierbaren Logikeinheitt gebildete SOPC ('System on a Programmable Chip')-Schaltungseinheit, einen lnitialisierungsschaltkreis, der einen nichtflüch­tigen Speicher enthält, -einen Schreib Lese Speicher; einen Systembus der, die SOPC-Schaltungseinheit, den Initialisierungsschaltkreis und den Schreib-Lese-Speicher verbindet, enthält, mit folgenden Verfahrensschritten: a) Bereithalten von Konfigurationsdaten in einem ersten Speicherbereich und Anweisungen eines Programm-Codes in einem zweiten Speicherbereich eines nichtflüchtigen Spei­chers im Initialisierungsschaltkreis; b) Übertragen der Konfigurationsdaten aus diesem ersten Speicherbereich des nichtflüchtigen Speichers in die SOPC-Schaltungseinheit, um diese zu konfigurieren; c) Übertragen der Anweisungen des Programmcodes aus dem zweiten Speicherbereich des nichtflüchtigen Speichers in einen Speicherbereich des Schreib-Lese-Speichers; d) Ausführen der Anweisungen im Schreib-Lese-Speicher durch die SOPC-Schaltungseinheit.

Description

Beschreibung
Verfahren zum Hochfahren einer SOPC-Schaltungseinheit
Technisches Gebiet
Die Erfindung betrifft ein Verfahren und eine Schaltungsan¬ ordnung zum Hochfahren einer, aus einer programmierbaren Lo- gikeinheit gebildeten SOPC ("System on a Programmable Chip") - Schaltungseinheit.
Stand der Technik
Die Leistungsfähigkeit elektronischer Schaltungen steigt mit zunehmender Integrationsdichte. Programmierbare Logikeinhei— ten, wie z.B. Field Programmable Gate Array (FPGA), ermögli¬ chen es, dass Programmfunktionen zusammen mit Speicherfunkti— onen auf einem Chip integriert werden können. Dadurch wird dem Anwender, unter Zuhilfenahme von geeigneten Software- Werkzeugen und unter Verwendung vorgefertigter Algorithmen, sog. IP-Cores (Intellectual Property Cores) , die Möglichkeit gegeben, die Funktionalität eines Mikroprozessors samt einer anwendungsspezifischen Logik als Hardware auf seinen Anwen¬ dungsfall abgestimmt, selbst zu entwerfen. Der Entwurf der Hardware kann durch Hardwarebeschreibungssprachen, wie z.B. VHDL ( Very High Speed Integrated Circuit Hardware Descripti- on Language) erfolgen, durch welche ein Konfigurationsdaten— ström erzeugt und in das FPGA geladen wird. Auf diese Weise kann z.B. ein RISC—Prozessor auf einer grafischen Oberfläche entworfen und dessen Funktion in das FPGA eingefügt werden. Gleiches gilt für die anwendungsspezifische Logik. Am Ende des Konfigurierens ist die Hardware des programmierbaren Chips definiert. In einem zweiten Schritt erfolgt dann das Erstellen des eigentlichen Programm-Codes, zum Beispiel unter Zuhilfenahme einer Programmiersprache wie C. Nachdem das C- Programm (Programmcodes der Anwendung) geschrieben ist, wird dieses mit einem speziellen Compiler übersetzt. Der Objektco¬ de wird in einen nichtflüchtigen Speicher geladen. Dieser Ob¬ jektcode, im folgenden als Programm—Code oder auch als Anwen- der- oder Benutzerprogramm bezeichnet, wird dann vom Mikro¬ prozessor im SOPC ausgeführt.
Im Gegensatz zu herkömmlichen Mikroprozessoren, die aus fest definierten Verarbeitungseinheiten bestehen und durch ein Programm gesteuert werden, das in der CPU sequenziell abgear¬ beitet wird, ermöglicht ein "System on Programmable Chip" (SOPC) in einem weitaus größeren Maße die Parallelverarbei¬ tung, sowie eine bessere Verteilung der Rechnerressourcen ü— ber die Chipfläche. SOPC-Systeme werden in der Kommunikati— onstechnik bei Nebenstellenanlagen (PBX) und im Embedded— Bereich, wie beispielsweise in Handys oder Handhelds, einge¬ setzt.
Bei Anwendungen in der Kommunikationstechnik ist eine SOPC- Schaltung in der Regel Bestandteil einer, auf einer herkömm¬ lichen Leiterplatte realisierten Schaltung. Auf der Leiter¬ platte befindet sich neben dem SOPC-Chip auch ein Schreib- Lese-Speicher, zum Beispiel ein SRAM, der den Objektcode des Anwenderprogramms enthält. SOPC und SRAM sind als getrennte integrierte Bausteine über einen Systembus verbunden.
Um eine Schaltungsanordnung mit einem SOPC-Chip hochzufahren werden sogenannte Initialisierungsbausteine verwendet, die ebenfalls auf der Leiterplatte angeordnet sind. Sie besitzen einen nichtflüchtigen Speicher mit Konfigurationsdaten für das FPGA. Ein Initialisierungsbaustein, auch als serielles Flash oder Boot-Memory bezeichnet, ist auf den FPGA-Baustein abgestimmt und mit diesem zum Beispiel über ein I2C-Interface verbunden. Bei einer Konfiguration in einem sogenannten akti- ven Konfigurationsmodus erzeugt der FPGA-Baustein Synchroni¬ sationssignale, die er an den seriellen Flash—Baustein über¬ mittelt. Wenn beide Bausteine synchronisiert sind, sendet der serielle Flash-Speicher den Konfigurationsdatenstrom in den FPGA-Baustein. Das so als MikroController konfigurierte FPGA führt nun den Programm-Code des Anwenderprogramms aus dem ex¬ ternen, nichtflüchtigen Programm-Code-Flash-Speicher aus..
Die Notwendigkeit eines externen Flash-Speichers für den Pro¬ gramm—Code ergibt sich daraus, dass die Anzahl der zur Verfü¬ gung stehenden Logikzellen auf dem FPGA-Chip eng begrenzt ist, da ein großer Teil dieser Logikzellen für die CPU- Bildung und für die Bildung der peripheren Funktions- bzw. Logikeinheiten benötigt wird. Gleiches gilt für die Bildung eines externen SRAM—Bausteins auf dem Chip, der zur Speiche¬ rung der Programmdaten des Anwenderprogramms erforderlich ist.
Im Bestreben, die Integrationsdichte elektronischer Schalt¬ kreise ständig zu erhöhen, stellt ein externer nichtflüchti¬ ger Flash—Speicher zur Speicherung des Programm-Codes einen zusätzlichen schaltungstechnischen Aufwand dar, der von Nach¬ teil ist.
Darstellung der Erfindung
Der vorliegenden Erfindung liegt die Aufgabe zu Grunde, eine "System on a Programmable Chip" — Architektur, die einen Ini¬ tialisierungsschaltkreis enthält, so anzugeben, dass ein ex¬ terner, nichtflüchtiger Flash-Speicher nicht erforderlich ist.
Diese Aufgabe wird bei einem Verfahren durch die Merkmale des Patentanspruchs 1 und bei einer Schaltungsanordnung durch die Merkmale des Patentanspruchs 8 gelöst. In den abhängigen An- Sprüchen sind jeweils vorteilhafte Weiterbildungen der Erfin¬ dung angegeben. Die Erfindung geht davon aus, der Speicherbereich des Initia¬ lisierungsbausteins neben der Speicherung der Konfigurations¬ daten auch für die Speicherung des Programm-Codes genutzt werden kann. Dadurch kann ein externer Flash-Speicher einge- spart werden, da der Programm-Code direkt im Initialisie¬ rungsbaustein bereit gehalten wird. Auf der Leiterplatte ent¬ fällt damit der erforderliche Platz für den Flash- Speicherbaustein. Mit dem Wegfall des Flash—Speicherbausteins fallen auch Adress- und Datenleitungen weg. Dies vereinfacht nicht nur das Schaltungslayout, sondern verbessert auch die Systemzuverlässigkeit. Das System ist weniger anfällig gegen elektromagnetische Störungen. Ferner ergibt sich ein ferti- gungs- und verwaltungstechnischer Vorteil, da nur ein Bau¬ stein, der Initialisierungsbaustein, programmiert werden muss und nur eine Sachnummer der Software zu verwalten ist. Da¬ durch verringern sich die Kosten bei der Realisierung einer SOPC-Applikation.
Das erfindungsgemäße Verfahren zum Hochfahren einer Schal- tungsanordnung mit einem SOPC-Chip weist daher folgende Schritte auf:
a) Bereithalten von Konfigurationsdaten in einem ersten Speicherbereich und Anweisungen eines Programm—Codes in einem zweiten Speicherbereich eines nichtflüchtigen Speichers in einem Initia¬ lisierungsschaltkreis; b) Übertragen der Konfigurationsdaten aus diesem ersten Speicherbereich des nichtflüchtigen Spei- chers in die SOPC-Schaltungseinheit, um diese zu konfigurieren; c) Übertragen der Anweisungen des Programmcodes aus dem zweiten Speicherbereich des nichtflüchtigen Speichers in einen Speicherbereich des Schreib- Lese-Speichers; d) Ausführen der Anweisungen im Schreib—Lese- Speicher durch die SOPC-Schaltungseinheit. Eine bevorzugte Ausführung des erfindungsgemäßen Verfahrens ist dadurch gekennzeichnet, dass mit der Übertragung der Kon¬ figurationsdaten in die SOPC-Schaltungseinheit ein CPU- Bootcode übertragen und in einen konfigurierten Speicherbe¬ reich der SOPC-Schaltungseinheit gespeichert wird. Dadurch kann dieser CPU-Bootcode unmittelbar nach dem die Konfigura¬ tion des SOPC-Bausteins abgeschlossen ist, ausgeführt werden. Dieses CPU-Bootprogramm ist vom Speicherbedarf her so klein bemessen, dass es in den konfigurierbaren Speicherbereich des SOPC-Bausteins passt.
Hierbei ist bevorzugt, dass unmittelbar nach Abschluss der Konfiguration der SOPC-Schaltungseinheit der CPU-Bootcode au— tomatisch gestartet wird, um sämtliche Anweisungen des Pro¬ gramm-Codes vom zweiten Speicherbereich des nichtflüchtigen Speichers über den Systembus in den Schreib-Lese— Speicher zu übertragen. Dadurch wird der im Initialisierungsbaustein ge¬ speicherte Programm-Code in den externen Schreib-Lese- Speicher (RAM-Speicher) kopiert. Nach Abschluss des Kopier¬ vorgangs enthält der Schreib-Lese—Speicher, der bislang nur zur Speicherung von Programm-Daten verwendet wurde, auch den vollständigen Code der Applikation. Von dort kann dieses An¬ wenderprogramm dann ausgeführt werden.
Bei der Übertragung auf dem Systembus wird bevorzugt ein se¬ rielles Übertragungsverfahren verwendet.
Um die Zeitdauer für das Hochfahrens möglichst gering zu halten, ist es günstig, wenn unmittelbar nach der Übertra¬ gung des Programm-Codes die SOPC-Schaltungseinheit mit der sequenziellen Abarbeitung der Anweisungen des Programm-Codes aus dem Schreib-Lese-Speicher beginnt.
In einer besonders bevorzugten Variante der Erfindung wird der Programm—Code im Initialisierungsbaustein in einer komp¬ rimierten Form bereitgehalten. Dadurch können auch komplexe Anwenderprogramme im Initialisierungsbaustein gespeichert werden.
Von ganz besonderem vorteil ist, wenn der Programm-Code in Programmsätze gegliedert ist, und jedem Programmsatz jeweils ein Algorithmus zur Dekompression zugeordnet ist. Dadurch braucht das Boot-Programm, dessen Speicherumfang am SOPC-Chip eng begrenzt ist, keinen Dekompressionsalgorithmus enthalten.
Kurzbeschreibung der Zeichnungen
Die Erfindung wird nachstehend an Hand eines Ausführungsbei¬ spiels näher erläutert. Es zeigt:
Figur 1 in einer Blockdarstellung eine "System on a Pro- grammable Chip "— Schaltungsanordnung gemäß dem Stand der Technik, wobei der externe Flash—Speicher den Programm-Code der Applikation enthält;
Figur 2 in einer Blockdarstellung ein Ausführungsbeispiel einer "System on a Programmable Chip" - Schaltungs¬ anordnung gemäß der Erfindung, wobei ein externer Flash—Speicher nicht erforderlich ist. Ausführung der Erfindung
Die Figur 1 zeigt in einer Blockdarstellung eine SOPC- Architektur gemäß dem Stand der Technik. In der Zeichnung der Figur 1 ist mit dem Bezugszeichen 1 eine, aus einer pro¬ grammierbaren Logikeinheit (FPGA) gebildete SOPC- Schaltungseinheit bezeichnet. Die SOPC-Schaltungseinheit 1 ist auf einem Chip realisiert. Von diesem Chip getrennt ist im Block links mit dem Bezugszeichen 2 ein Initialisierungs¬ schaltkreis gekennzeichnet. Dieser Initialisierungsschalt¬ kreis 2 ist auf Grund seiner Funktion und seiner seriellen Anbindung an den FPGA-Baustein 1 als "Serielles Flash" ge¬ kennzeichnet. Das serielle Flash 2 enthält einen nichtflüch- tigen Speicher mit einem Speicherbereich 3. Der nichtflüchti— ge Speicher kann z.B. in EPROM-Technologie ausgeführt sein. Der Speicherbereich 3 enthält die Konfigurationsdaten für den FPGA-Baustein 1 und den Startup-Code zur Konfiguration einer CPU auf dem FPGA 1. In der Zeichnung der Figur 1 ist auf der rechten Seite ein Schreib-Lese-Speicher 5 (RAM) zu sehen, der zur Speicherung der Programm—Daten dient. Im Block darunter ist ein zweiter, externer, nichtflüchtiger Speicher 6 ge¬ zeichnet, der als Flash—Speicher ausgebildet ist und den Pro¬ gramm-Code, das heißt die Anweisungen des Anwenderprogramms enthält. Die Pfeile 7, 11, und 12 deuten einen nicht näher dargestellten Systembus an, der die einzelnen Blöcke 1, 2, 5 und 6 verbindet. Der Baustein 2 kann z.B. ein Altera ® EPCSl sein, und Baustein 1 kann ein Altera ® Cyclon ™ sein.
Das Hochfahren eines derartigen Systems aus dem Stand der Technik funktioniert nun so, dass beim Einschalten der Ver¬ sorgungsspannung, gemäß einer inhärenten funktionellen Zuord¬ nung der Bausteine 1 und 2, Baustein 1 die Rolle eines Mas¬ ters, und Baustein 2 die Rolle eines Slaves einnimmt. Beim Power-Up wird vom seriellen Flash 2 der Konfigurationsdaten¬ strom (in Figur 1: Pfeil 7 mit der Kennzeichnung " FPGA-Boot ") in den programmierbaren Logikbausteinen FPGA 1 übertragen. Diese Übertragung erfolgt bei den oben erwähnten Bausteinen Altera ® EPCSl und Cyclon ™ mit einem Bit pro Taktzyklus. Ergebnis dieser Konfiguration ist, dass, entsprechend der ü- bertragenen Konfigurationsdaten, auf dem FPGA 1 ein Mikropro- zessor, dessen Register sowie Ein- und Ausgabeeinheiten defi¬ niert und initialisiert sind. Nach der Initialisierung geht das System in den Benutzermodus über. Es folgt die Ausführung des eigentlichen Anwender/Benutzerprogramms, dessen Programm- Code im externen Flash-Speicher 6 gespeichert ist. (Der ex- terne Flash-Speicher 6 ist über parallele Leitungen des Sys¬ tembus mit dem SOPC-Baustein 1 verbunden (Pfeil 12) und in Figur 1 der Block der besseren Unterscheidbarkeit wegen mit "Paralleles Flash" beschriftet) . Während der Bearbeitung des Anwenderprogramms werden Programm-Daten zwischen dem SOPC- Baustein 1 und dem Schreib-Lese-Speicher (RAM-Speieher) 5 ausgetauscht (Pfeil 11).
Die Figur 2 zeigt in einer Blockdarstellung ein Ausführungs¬ beispiel der Erfindung. Wie ein Vergleich mit Figur 1 zeigt, ist der bislang erforderliche externe Flash-Speicher (in wel¬ chem gemäß dem Stand der Technik der Programm-Code abgelegt ist) , durch die Erfindung nicht mehr erforderlich. Erfin¬ dungsgemäß wird der Programm-Code im Initialisierungsbaustein 2 gespeichert. Hierzu weist der Initialisierungsbaustein 2 einen ersten Speicherbereich 3 auf, in welchem (wie bislang im Stand der Technik auch) , die Konfigurationsdaten für den FPGA-Baustein sowie der Startup-Code für die CPU bereit gehalten werden. Zusätzlich zu diesem ersten Speicherbereich 3 weist der Initialisierungsbaustein 2 einen weiteren, zwei— ten Speicherbereich 4 auf, in welchem gemäß der Erfindung der Programm-Code eines oder mehrerer Anwenderprogramme gespei¬ chert ist.
Das Hochfahren der erfindungsgemäßen Schaltungsanordnung er- folgt nun so, dass, sobald die Versorgungsspannung stabil am FPGA-Baustein 1 anliegt, der FPGA-Baustein 1 die Rolle des Masters und der Initialisierungsbaustein 2 die Rolle des Sla— ve einnimmt. Anschließend werden die Konfigurationsdaten für den FPGA-Baustein 1 inklusive des Startup-Codes für die CPU vom Initialisierungsbaustein 2 in den FPGA-Baustein 1 über¬ tragen (in Figur 2 ist dies wieder durch den Pfeil 7 mit der Beschriftung "FPGA-Boot" dargestellt) . Die Datenübertragung beinhaltet auch ein kleines Boot-Programm, was in Figur 2 mit dem Pfeil 8 ("CPU-Boot") veranschaulicht ist. Unmittelbar nach der Konfiguration des FPGA-Bausteins 1, bei dem dieser die SOPC-Funktionalität erhält, wird nun dieses Boot-Programm "CPU-Bootcode" im SOPC-Baustein 1 gespeichert und ausgeführt. Der "CPU-Bootcode" ist hinsichtlich seines Speicherbedarfs so klein bemessen, dass er ohne weiteres in den konfigurierbaren Speicherbereich des SOPC-Bausteins passt. Sobald dieser "CPU- Bootcode" vollständig in den SOPC-Baustein 1 übertragen und dort ablauffähig ist, beginnt dieses Boot—Programm mit einem Kopiervorgang, bei dem Daten aus dem Speicherbereich 4 des seriellen Flash-Festwertspeichers 4 in einen Speicherbereich des externen RAM—Speichers 5 kopiert werden. In Figur 2 ist dieser Vorgang durch die Pfeile 8 und 9 ("CPU-Boot") veran- schaulicht. Am Ende dieses Kopiervorgangs steht nun der voll¬ ständigen Satz der Anweisungen des Programm-Codes auch im RAM 5. Im Gegensatz zum Stand der Technik enthält nun das RAM 8 zusätzlich zu den Programm—Daten auch den Programm-Code. Die CPU im SOPC-Baustein beginnt nun mit der Ausführung des Pro- gramm-Codes aus dem Schreib-Lese-Speicher (RAM) 5.
Der Programm-Code wird im seriellen Flash—Speicher bevorzugt in einer komprimierten Form bereit gehalten. Von besonderem Vorteil ist, wenn an das komprimierte Anwenderprogramm ein Algorithmus zur Dekompression angehängt ist. Beim Hochfahren kopiert der "CPU-Bootcode" das Programm—Code-File samt diesem Dekomprimieralgorithmus in den Schreib-Lese-Speicher 5. So¬ bald dieser Kopiervorgang abgeschlossen ist, wird durch den Dekomprimieralgorithmus die Kompression der Applikation wie— der rückgängig gemacht und der Programm—Code gestartet. In einer besonders bevorzugten Ausführungsform werden mehrere Versionen samt zugehöriger Programm-Daten in komprimierter Form im Initialisierungsbaustein 2 bereit gehalten. Einem Programmsatz können mehrere Programm-Datensätze zugeordnet werden. Dadurch kann ein Programmsatz der in verschiedenen Ländern zum Einsatz kommt, auf die jeweilige Landessprache (z.B. in deutsch, englisch, und französisch) abgestimmt wer¬ den. Neben der oben dargestellten Hardware-Einsparung, die durch Wegfall des externen Speichers zustande kommt, ergibt sich durch Programmsätze, denen mehrere Sprach-Datensätze zu¬ geordnet sind, weiter Verwaltungs- bzw. Logistik-Vorteile.

Claims

Patentansprüche
1. Verfahren zum Hochfahren einer Schaltungsanordnung, die eine, aus einer programmierbaren Xiogikeinheit gebildete SOPC ("System on a Programmable Chip")- Schaltungseinheit, einen Initialisierungsschaltkreis, der einen nicht¬ flüchtigen Speicher enthält, einen Schreib-Lese-Speicher; - einen Systembus der, die SOPC-Schaltungseinheit, den Initialisierungsschaltkreis und den Schxeib-Lese- Speicher verbindet, enthält,
mit folgenden Verfahrensschritten:
a) Bereithalten von Konfigurationsdaten in einem ersten Speicherbereich (3) und Anweisungen eines Programm-Codes in einem zweiten Speicherbereich (4) eines nichtflüchti¬ gen Speichers im Initialisierungsschaltkreis (2) ; b) Übertragen der Konfigurationsdaten aus diesem ersten Speicherbereich (3) des nichtflüchtigen Speichers in die SOPC-Schaltungseinheit (1), um diese zu konfigurieren; c) Übertragen der Anweisungen des Programmcodes aus dem zweiten Speicherbereich (4) des nichtflüchtigen Speichers in einen Speicherbereich des Schreib—Lese-Speichers (5) ; d) Ausführen der Anweisungen im Schreib-Lese-Speicher durch die SOPC-Schaltungseinheit (1) .
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass mit der Übertragung der Konfigurationsdaten in die SOPC- Schaltungseinheit ein CPU-Bootcode übertragen und in einen konfigurierten Speicherbereich der SOPC-Schaltungseinheit gespeichert wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass unmittelbar nach Abschluss der Konfiguration der SOPC- Schaltungseinheit der CPU-Bootcode automatisch gestartet wird, um sämtliche Anweisungen des Programm-Codes vom zweiten Speicherbereich des nichtflüchtigen Speichers über den Systembus in den Schreib—Lese-Speicher zu übertragen.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass bei der Übertragung auf den Systembus ein serielles Über¬ tragungsverfahren verwendet wird.
5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet dass nach Abschluss der Übertragung des Programm-Codes die SOPC-Schaltungseinheit auf Anweisungen des Programm-Codes im Schreib-Lese-Speicher zugreift und diese ausführt.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch ge- kennzeichnet, dass der Programm-Code im zweiten Speicher¬ bereich des Initialisierungsschaltkreises Anweisungen ent¬ hält, die in komprimierter Form bereit gehalten werden.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Programm—Code aus Programmsätzen gebildet wird, denen jeweils ein Algorithmus zur Dekompression zugeordnet wird.
8. Schaltungsanordnung mit einer, aus einer programmierbaren Logikeinheit gebildeten SOPC-Schaltungseinheit (1) , welche durch einen Systembus mit einem Initialisierungsbaustein (2) und mit einem Schreib-Lese-Speicher (5) verbunden ist, dadurch gekennzeichnet, dass der Initialisierungsbaustein (2) einen ersten Speicherbereich (3) aufweist, in welchem Konfigurationsdaten zur Konfiguration der programmierbaren Logikeinheit gespeichert sind, und einen zweiten Speicher¬ bereich (4) aufweist, in welchem Anweisungen eines Pro¬ gramm-Codes enthalten sind.
9. Schaltungsanordnung nach Anspruch 8, dadurch gekennzeich- net, dass die Konfigurationsdaten einen CPU—Bootcode ent¬ halten, der nach Konfiguration der programmierbaren Logik- einheit in einem Speicher der SOPC-Schaltungseinheit (1) gespeichert ist.
10. Schaltungsanordnung nach Anspruch 9, dadurch gekenn- zeichnet, dass der CPU-Bootcode nach der Konfiguration au¬ tomatisch gestartet wird, um sämtliche Anweisungen des Programm-Codes vom zweiten Speicherbereich (4) des Initia— lisierungsbausteins (2) seriell über den Systembus in den Schreib-Lese-Speicher (5) zu übertragen.
11. Schaltungsanordnung nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, dass der Programm-Code im Initia— lisierungsbaustein (2) in komprimierter Form gespeichert ist.
12. Schaltungsanordnung nach Anspruch 11, dadurch gekenn¬ zeichnet, dass der Programm—Code zumindest einen Programm¬ satz enthält, dem ein Algorithmus zur Dekompression zuge¬ ordnet ist.
PCT/EP2005/052052 2004-06-23 2005-05-04 Verfahren zum hochfahren einer sopc-schaltungseinheit WO2006000495A2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200410030297 DE102004030297A1 (de) 2004-06-23 2004-06-23 Verfahren zum Hochfahren einer SOPC-Schaltungseinheit
DE102004030297.9 2004-06-23

Publications (2)

Publication Number Publication Date
WO2006000495A2 true WO2006000495A2 (de) 2006-01-05
WO2006000495A3 WO2006000495A3 (de) 2006-07-20

Family

ID=35507901

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/052052 WO2006000495A2 (de) 2004-06-23 2005-05-04 Verfahren zum hochfahren einer sopc-schaltungseinheit

Country Status (2)

Country Link
DE (1) DE102004030297A1 (de)
WO (1) WO2006000495A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007007745B3 (de) * 2007-02-16 2008-07-17 Jerichow, Ulrich, Dr. Vorrichtung und Verfahren zur Abgabe von Düften

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106022240B (zh) * 2016-05-12 2019-05-03 北京理工大学 基于SoPC的遥感CCD原始数据指定目标区域自动提取实现方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560665B1 (en) * 1999-05-14 2003-05-06 Xilinx Inc. Embedding firmware for a microprocessor with configuration data for a field programmable gate array

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560665B1 (en) * 1999-05-14 2003-05-06 Xilinx Inc. Embedding firmware for a microprocessor with configuration data for a field programmable gate array

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ALTERA CORPORATION: "Active Serial Memory Interface" DATA SHEET VERSION 1.2, [Online] Mai 2003 (2003-05), Seiten 1-10, XP002378089 Gefunden im Internet: URL:http://www.altera.com/literature/ds/ds _nios_asmi.pdf> [gefunden am 2006-04-20] *
ALTERA CORPORATION: "Chapter 12 - EPCS Device Controller Core with Avalon Interface"[Online] Mai 2004 (2004-05), Seiten 1-5, XP002376680 Gefunden im Internet: URL:http://www.fulcrum.ru/Read/CDROMs/Alte ra-DL-2004.June/literature/hb/nios2/n2cpu_ nii51012.pdf> [gefunden am 2006-04-11] *
MICROTRONIX: "Microtronix Cyclone Development Board Version 1.0" PRODUCT DATA SHEET H6010, [Online] 20. Mai 2003 (2003-05-20), Seiten 1-32, XP002378090 Gefunden im Internet: URL:http://www.microtronix.com/pdf/cyclone _ds.pdf> [gefunden am 2006-04-20] *
TILSNER, H. ET AL: "Hardware for the Detector Control System of the ALICE TRD" LHC ELECTRONICS WORKSHOP, CERN, [Online] 2003, Seiten 1-5, XP002377604 Gefunden im Internet: URL:http://lhc-electronics-workshop.web.ce rn.ch/LHC-electronics-workshop/2003/sessio nsPDF/Quality/TILSNER.PDF> [gefunden am 2006-04-20] *
TYRONE TAI-ON KWOK ET AL: "On the design of a self-reconfigurable SoPC based cryptographic engine" DISTRIBUTED COMPUTING SYSTEMS WORKSHOPS, 2004. PROCEEDINGS. 24TH INTERNATIONAL CONFERENCE ON HACHIOJI, TOKYO, JAPAN 23-24 MAR. 2004, PISCATAWAY, NJ, USA,IEEE, 23. M{rz 2004 (2004-03-23), Seiten 876-881, XP010695777 ISBN: 0-7695-2087-1 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007007745B3 (de) * 2007-02-16 2008-07-17 Jerichow, Ulrich, Dr. Vorrichtung und Verfahren zur Abgabe von Düften

Also Published As

Publication number Publication date
DE102004030297A1 (de) 2006-01-19
WO2006000495A3 (de) 2006-07-20

Similar Documents

Publication Publication Date Title
DE69834401T2 (de) Businterfacesystem und verfahren
EP1402382B1 (de) Verfahren zur bearbeitung von daten
DE3808168C2 (de) Digitalrechner mit steckbarer erweiterungskarte
DE102017127731A1 (de) Buseinrichtung mit programmierbarer Adresse
EP1543391B1 (de) Verfahren zur simulation eines feldgerätes in einem netzwerk der prozessautomatisierungstechnik
WO1998031102A1 (de) Umkonfigurierungs-verfahren für programmierbare bausteine zur laufzeit
DE102015217933B4 (de) Vorrichtung zum Verarbeiten von Daten und Verfahren zum Betreiben einer solchen Vorrichtung
DE10315490A1 (de) Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung
DE19860062A1 (de) Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI
DE60224438T2 (de) Aggregation von hardwareereignissen in mehrfach knotensystemen
WO2004079564A2 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
WO2006000495A2 (de) Verfahren zum hochfahren einer sopc-schaltungseinheit
DE102008048877B4 (de) Verfahren zum Laden eines Programmmoduls in eine Netzwerkeinrichtung
EP1593828B1 (de) Erweiterbares Steuergerät
DE102004013493B4 (de) Zugriffs-Verfahren für einen NAND-Flash-Speicherbaustein und ein entsprechender NAND-Flash-Speicherbaustein
EP1197854B1 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
DE102017208522A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE60003847T2 (de) Universelle vorrichtung sowie verfahren und werkzeuge zu ihrer verwendung
WO2004023299A2 (de) Verfahren zur initialisierung von programmierbaren systemen
DE102021002937A1 (de) Verfahren zum Konfigurieren einer integrierten Schaltung, Verfahren zur Bereitstellung von Lade-Software für eine integrierte Schaltung, und integrierte Schaltung
DE19625627C2 (de) Mikroprozessorvorrichtung
DE10163206A1 (de) Verfahren zum Betrieb eines Datenverarbeitungsgerätes sowie Aufbau eines Datenverarbeitungsgerätes wie speicherprogrammierbare Steuerung
DE2848621A1 (de) Verfahren zur rechnergesteuerten simulation der funktion einer mit logikschaltkreisen aufzubauenden schaltungsanordnung
DE10324565A1 (de) Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05738157

Country of ref document: EP

Kind code of ref document: A2