Beispiel für Nios® II Multiprozessordesign

Empfohlen für:

  • Gerät: Cyclone® III

  • Quartus®: Unbekannt

author-image

Von

Das Nios II-Multiprozessor-Designbeispiel zeigt die Verwendung mehrerer Nios II Prozessoren in einem Intel® FPGA. Dieses Beispiel zielt zwar primär auf die Demonstration eines korrekt aufgebauten Hardwaresystems ab, enthält aber auch die Software zur Ausübung der prozessorübergreifenden Fähigkeiten des Systems.

Dieses Beispiel implementiert das klassische Synchronisierungsproblem der "Ess-Philosophen". Stellen Sie sich fünf Philosophen vor, die an einem runder Tisch sitzen. Zwischen jedem Philosophen befindet sich ein einziger Einzelstick. Jeder Philosoph versucht zuerst, den Stick nach links zu greifen, und dann den Stick auf der rechten Seite. Wenn beide SSDs erworben werden, kann der Philosoph essen. Nach einer kleinen Verzögerung, die die Esszeit darstellt, lässt jeder Philosoph beide Töne fallen und stellt sie seinen benachbarten Philosophen zur Verfügung. Nach einer weiteren kleinen Verzögerung, die die Denkzeit darstellt, wiederholt sich der Zyklus. Um Einen Stillstand zu verhindern, muss jeder Philosoph, wenn er sich nicht sofort nach dem Entfernen des linken Handsticks den rechten Stick schnappen kann, den linken Stick fallen lassen und es später noch einmal versuchen.

Das mit Qsys erstellte Hardware-Design widmet sich fünf Prozessoren, um jeden von fünf Dining-Philosophen und fünf Hardware-Beauftragten zu implementieren, um jeden von fünf Hardware-Komponenten zu implementieren. In der obersten Ebene befinden sich ein Nios II Prozessor und ein On-Chip-RAM sowie ein JTAG UART und Timer. Jedes der fünf Subsysteme teilt sich den On-Chip-RAM der obersten Stufe und enthält einen Nios II Prozessor, JTAG UART, Timerund und "nachgeformt", ein Hardware-Peripheriegerät, das die Prozessoren mit sich gegenseitig exklusivem Speicher versorgt. Die Avalon® Memory-Mapped (Avalon-MM) Pipeline-Bridges ermöglichen die Kommunikation zwischen den Subsystemen und Komponenten der obersten Ebene und zwischen Prozessoren und Bindegliedern, die sich in logisch an einem Ring angeschlossenen Subsystemen befinden.

Die dining_philosophers.c Software läuft auf jedem von fünf Subsystem-Prozessoren und implementiert die Erfassungs- und Freigabeprozesse des Denkens, Essens und Chips. Der Prozessor der obersten Ebene führt philosophers_monitor.caus und akzeptiert numerische Befehle, um alle Aussteuerungen zu erhalten. Dies hindert beide logisch anliegenden "Philosophen"-Prozessoren daran, so lange zu essen, bis dieser "Stick" aus der Reihe läuft.

Hardware-Designspezifikationen

  • Mainboard-Support
    • Cyclone® III 3C120 FPGA Entwicklungsplatine
  • debug-aktivierte Nios II/f Prozessorkerne mit 4 KB Befehls-Cache und 2 KB Daten-Cache: 6
  • System-Timer: 6
  • On-Chip-RAM: 64 KB
  • JTAG UART Peripheriegeräte: 6
  • Peripheriegeräte aus Demex: 5
  • System-ID-Peripheriegerät: 1

Dieses Designbeispiel basiert auf dem System, das im Tutorial zum Erstellen eines Multiprozessors Nios II Systemen (PDF)aufgebaut ist. Ausführliche Informationen zur Implementierung Nios II Multiprozessorsystemen finden Sie im oben genannten Tutorial.

Blockdiagramm

Abbildung 1. Nios II-Multiprozessorsystem-Blockdiagramm

Laden Sie die in diesem Beispiel verwendete Datei herunter:

Die .zip-Datei enthält alle notwendigen Hardware- und Software-Dateien, um dieses Beispiel zu reproduzieren, sowie eine readme.txt-Datei.

Die Verwendung dieses Designs unterliegt den Bedingungen der Intel Design Example Lizenzvereinbarung.

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.