Gesprengte Ketten

Flexible Embedded-Prozessor-Cores für PLDs

In Form von Hardware- und Software-Cores stellt Altera Embedded-Prozessor-Cores für flexible und leistungsfähige SOPC-Designs vor, die dem Entwickler schier grenzenlose Freiheit erlauben.

Mit den sogenannten Excalibur-Produkten stehen effiziente Lösungen für die System-Integration in programmierbaren Logikbausteinen bereit. Nun können Entwickler die engen Time-to-Market-Anforderungen bei geringerem Risiko und gesenkten Kosten im Vergleich zu Lösungen mit ASICs, ASSPs und Standalone-Embedded-Prozessoren erfüllen. Excalibur kombiniert Programmierbarkeit mit Logik, Speicher und Embedded-Prozessoren. Das eröffnet Entwicklern in SOPC-(System-On-a-Programmable-Chip)-Applikationen neue Möglichkeiten an Design-Flexibilität und Integration. Bisher war man bei ASICs mit der festgelegten Funktionalität, den hohen NRE- und Redesign-Kosten sowie mit Mindeststückzahlen konfrontiert. Anwender von ASSPs und Standalone-Embedded-Prozessoren beklagten dagegen oft den Mangel an Flexibilität und Integration. Darüber hinaus waren führende Prozessor-Cores oft durch die traditionellen Lizenzierungsmodelle nur eingeschränkt verfügbar. Das offene Geschäftsmodell von Altera wird die SOPC-Adaptierung durch die Designer beschleunigen, indem wichtige IP-Elemente (Intellectual Property) zur Verfügung gestellt werden, ohne die Komplexitäten und Kosten, wie sie von ASICs oder prozessor-basierenden Lizenzierungen bekannt sind.

Komplett-Lösung für das System-Design
Es gibt vier grundlegende Faktoren für die erfolgreiche Implementierung eines kompletten Systems in einem programmierbaren Logikbaustein:

• Hochdichte Silizum-Produkte für die Integration der Hauptfunktionen,
• ausgefeilte Entwicklungs-Tools, die Hardware- und Software-Design-Methoden unterstützen,
• Unterstützung der Wiederverwendbarkeit im Design durch IPs mit DSP-, PCI- oder Embedded-Prozessor-Funktionalität und
• wichtige Partnerschaften für die Bereitstellung der Design-Infrastruktur.

Jetzt stehen alle erforderlichen Komponenten zur Verfügung: Die programmierbaren Logikbausteine der APEX-Familie mit bis zu 1,5 Millionen Gattern, leistungsfähige Tools von Altera und Third-Party-Anbietern, zahlreiche IPs im Rahmen des AMPP- und MegaCore-Programmes und Embedded-Prozessor-Cores in verschiedenen Leistungsbereichen.

Die Excalibur Embedded-Prozessor-Lösungen
Die jetzt angebotenen Lösungen umfassen Embedded-Prozessor-Architekturen, leistungsfähige Hardware- und Software-Code-Compiler, PLD-Entwicklungs-Tools sowie Entwicklungs-Hardware. Um leistungsfähige System-Designs auf Basis von existierenden Prozessor-Architekturen unterstützen zu können, hat Altera den Einsatz der Prozessor-Architekturen von ARM und MIPS lizenziert. Kürzlich wurde darüber hinaus bekanntgegeben, dass Altera mit Motorola entsprechende Verhandlungen über eine mögliche Lizenzierung der PowerPC-Architektur führt. Diese Lizenz-Vereinbarungen erlauben es, führende Prozessor-Cores auf Transistorebene zu implementieren und in PLD-Architekturen von Altera zu integrieren. Die Vereinbarungen umfassen auch alle notwendigen Peripherie-Cores für eine komplette SOPC-Lösung. Mit diesen Hardware-Prozessor-Cores lässt sich eine Performance von etwa 200 MIPS realisieren. Neben dem eigentlichen Prozessor-Core sind die PLDs auch für die Implementierung von On-Chip-RAM, Cache, externem Bus-Interface und UART optimiert. Sind diese On-Chip-Elemente einmal implementiert, dann ist dort die entsprechende Software ablauffähig und das Interface zu externen Komponenten vorhanden, noch bevor der PLD-Core konfiguriert wird. Dadurch wird der Design-Zyklus wesentlich verkürzt und vereinfacht, indem Software für die Bausteine noch vor der eigentlichen PLD-Entwicklung geschrieben werden kann.

Flexibler Soft-Core
Für eine breite Marktabdeckung, wo die Kunden nach einer programmierbaren Lösung für die effiziente und kosten-effektive Integration eines flexiblen Embedded-Prozessors suchen, wurde mit Nios die erste Embedded-Prozessor-Architektur für programmierbare Logik entwickelt. Nios ist ein RISC-basierender, konfigurierbarer und skalierbarer Soft-Core-Prozessor mit 16-Bit-Befehlssatz und 16-/32-Bit-Datenpfaden. Implementiert in die APEX 20KE-Architektur kann der Nios mit 50 MIPS arbeiten und benötigt etwa 1.000 Logikzellen – das sind etwa zwölf Prozent eines APEX EP20K200E oder nur zwei Prozent eines APEX EP20K1500E. Damit lässt sich die Embedded-Prozessor-Funktionalität für einen Volumen-Preis von nur fünf US-Dollar realisieren, was konkurrenzfähige Kosten zu Standalone-Prozessor-Alternativen mit den Vorteilen der besseren Flexibiliät und Integration bedeutet.

Der Nios Embedded-Prozessor wird durch ein komplettes Entwicklungskit unterstützt, das alle erforderlichen Cores, einen C/C++-Compiler und Source-Level- Debugger (beides lizenziert von Cygnus), die Quartus-Compilierungs-Software, Verifizierungs-Tools und ein Hardware-Entwicklungsboard beinhaltet. Die wesentlichen Eigenschaften des Nios-Soft-Core kurz zusammengefasst:

• Konfigurierbare RISC-Architektur (eine Instruktion per Taktzyklus),
• kundenspezifische On-Chip-Peripherie,
• optimiert für die APEX-Architektur,
• über das MegaWizard-Interface sind Prozessor-Core, Bus-Verbindungen und Peripherie konfigurierbar.

Der Nios-Embedded-Prozessor kann für eine Vielzahl von Applikationen konfiguriert werden. So kann ein 16-Bit-Nios-Embedded-Prozessor-Core z. B. ein kleines Programm aus dem On-Chip-ROM (ESB, Embedded System Block) ausführen und so einen leistungsfähigen Sequenzer/Controller realisieren, der eine in Hardware realisierte State-Machine ersetzen kann. Ein Nios-Core mit 32 Bit und entsprechendem externen Flash- und Hauptspeicher erreicht dagegen eine vergleichbare Leistung zu einem Standalone-Embedded-Prozessor, bei wesentlich größerer Flexibilität.

Entwicklungs-Umgebung für den Nios Embedded-Prozessor
Über das Altera MegaWizard-Interface kann ein Entwickler ein System bezüglich Speicher und Peripheriefunktionen einfach konfigurieren. So können beispielsweise unterschiedliche Speicherbreiten und -tiefen sowie Peripherie-Typen (UART, Timer, PIO, SRAM- oder Flash-Interface) ausgewählt werden. Darüber hinaus kann der Nios Prozessor-Core auf drei Wegen erweitert werden:

• Konventionelle „memory-mapped“ Peripheriefunktionen können auf dem Chip hinzugefügt werden,
• beschreib- und lesbare Bauelemente können in das CPU-Register-File abgebildet werden und
• anwenderspezifische Funktionsblöcke können direkt in die CPU-ALU hinzugefügt werden.

Der Befehlssatz des Nios Embedded-Prozessor-Cores zielt auf compilierte Embedded-Applikationen und umfasst spezielle Befehle (z. B. Bit-Test-and-Skip-Befehle als Single-Instructions), die für Embedded-Systeme ausgelegt sind. Der Core unterstützt auch das Setzen von Hardware-Breakpoints und die Ablauf-Steuerung mit dem GNU-Debugger von Cygnus über die JTAG-Pins. Der Debugger kommuniziert mit der CPU-Hardware über die MasterBlaster- oder ByteBlaster-Kabel von Altera. Der Nios Embedded-Prozessor wird von den Cygnus GNUPro Embedded-Systementwicklungs-Tools unterstützt. Die GNUPro-Tools bieten eine stabile und offene Entwicklungs-Plattform für Embedded-System-Designs mit C/C++-Compiler, Assembler und Debugger. Künftig ist auch die Unterstützung durch das Echtzeit-Betriebssystem EcoS von Cygnus geplant.
Anfänglich wird der Nios Embedded-Prozessor-Core mit Peripherieblöcken wie UART, PIO, SPI, Zähler/Timer und PWM verfügbar sein. Weitere Peripheriefunktionen wie IDE-Festplatten-Controller, 10/100-Ethernet-Controller MAC und SRAM-Controller werden hinzukommen.
Im Rahmen des Excalibur-Entwicklungskits steht auch ein komplettes Entwicklungs-Board für das System-Level-Design auf PLD-Basis zur Verfügung. Das Board beinhaltet einen APEX EP20K200E, Speicher (8 MBit Flash, 256 KByte SRAM und SDRAM-Steckverbindung), Schnittstellen (RS232, JTAG, Prozessor-Trace), Erweiterungs-Ports (32-Bit-PMC-Host, 5,5-V-Prototype- und 3,3-V-Prototype-Steckverbindung), konfigurierbare LEDs und anwenderkonfigurierbare Kontakte/Schalter.

Der Nios-Prozessor und der serielle Port-Monitor sind in dem Flash-Speicher vorgeladen und „booten“ beim Einschalten. Die Monitor-Software bietet das Interface zum GNUPro-Debugger und unterstützt das Herunterladen von Anwender-Code vom SRAM- oder Flash-Speicher. Der Nios-Core wird durch das 256-K-SRAM unterstützt, womit eine komplette Software-Entwicklungsumgebung zur Verfügung steht. Über das JTAG-Port können kundenspezifische SOPC-Lösungen ebenfalls in den Flash-Speicher geladen werden, um eine kundenspezifische Standalone-Applikation zu realisieren. Das Entwicklungsboard verfügt über eine interne Spannungsversorgung. Software-Debugging wird über das Prozessor-Trace-Port unterstützt.

Für den Anschluss des Entwicklungs-Boards an den PC wird das ByteBlasterMV-Kabel mitgeliefert. Über dieses Download-Kabel kann dann der APEX-Baustein konfiguriert werden. Da eventuelle Änderungen direkt auf den APEX-Chip heruntergeladen werden können, werden Prototyping und Design-Iterationen wesentlich vereinfacht. Die Hauptmerkmale des ByteBlasterMV-Kabels sind:

• Konfiguration der APEX-Bausteine,
• Unterstützung von 3,3- und 5,0-V-Betrieb,
• schnelle und einfache In-System-Programmierung,
• Interface zum 25-poligen Standard-Parallel-PC-Port und
• 10-polige Steckverbindung mit Entwicklungsboard.

APEX – die Silizium-Plattform für die SOPC-Integration
Wie bereits erwähnt, benötigt der Nios Embedded-Prozessor-Kern in der 16-Bit-Konfiguration etwa 1.000 Logikzellen. Damit bleibt noch viel Platz für die Implementierung von Peripherie und kundenspezifischen Funktionen auf dem Chip. Die APEX-Architektur von Altera erfüllt nicht nur die Komplexitätsanforderung für System-Level-Designs, sondern bietet auch andere Features wie z. B. inhaltsadressierbare Speicher (CAM) oder LVDS für eine I/O-Bandbreite von 840 MBit/s.

Der APEX EP20K1500E z. B. enthält 51.840 Logikelemente (LEs) als Basisblöcke für die Logikimplementierung und 432 KBit Embedded RAM, welches zu 216 Blöcken à 2.048 Bit implementiert ist. Zusammen mit dem EP20K1000E (1,0 Millionen Gatter bzw. 1,8 Millionen Systemgatter) gehört der neue Baustein zu den beiden komplexesten derzeit verfügbaren PLDs. Neben der hohen Komplexität bietet der APEX EP20K1500E weitere besondere Merkmale wie z. B eine True-LVDS-Lösung für eine LVDS-Performance von bis zu jeweils 840 MBit/s über 16 Kanäle. Weitere unterstützte I/Os sind SSTL 3/2, GTL+, AGP, LVTTL, LVCMOS, HSTL, PCI 66/PCI-X und T1/E1-Interfaces.

Die APEX 20KE-Familie besteht aus zehn Bausteinen mit Dichten von 30.000 bis 1,5 Milllionen Gattern (113.000 bis 2,5 Millionen Systemgatter). Alle APEX 20KE-PLDs basieren auf der MultiCore-Architektur, die LUT-basierende Logik und Produktterm-Logik mit flexiblen Embedded-Speichern kombiniert. Die APEX 20KE-Familie unterstützt bis zu vier PLLs, wobei zwei für den LVDS-Support genutzt werden können. Mit Clock Multiply/Divide, Phase-Shift und Clock-Skew lassen sich effizient komplette Kommunikationslösungen realisieren. Die MultiCore-Architektur besteht aus großen Logikblöcken (MegaLAB), die über das FastTrack-Routing-Schema miteinander verbunden sind. Jeder Embedded-System-Block innerhalb eines MegaLAB enthält 2.048 Bit, die als Dual-port-RAM, CAM, ROM oder Produktterm-Logik konfiguriert werden können.

Fazit
Mit der Kombination von programmierbarer Logik und Embedded-Prozessoren erhält der Entwickler ein Höchstmaß an Design-Flexibilität für die System-Intergration. Je nach Applikation und Performance- bzw. Platz-Anforderungen bietet die Soft-Core- oder Hard-Core-Implementierung der Embedded-Prozessor-Cores Vorteile. Komplexe programmierbare Logikbausteine und die entsprechenden effizienten Design-Tools schaffen die Voraussetzung für neue, effiziente SOPC-Designs.

Altera
Tel. (0049-89) 32 18 25-0
lit_req@altera.com
http://www.altera.com