FAQ
In diesem Bereich der Seite versuche ich Fragen, die häufiger
gestellt werden, zu beantworten. Das tue ich nach meinem besten Wissen und
Gewissen. Sollten mir trotzdem Fehler unterlaufen, bitte ich um eine kurze Mail
an: fpga-dev@web.de.
Warum funktioniert mein NIOS II-System nicht nach dem Download der
RBF-Datei über USB?
Diese Frage betrifft vor allem die User meines Cyclone II-Boards. Wenn
ein NIOS II-System und dessen Software erfolgreich mit Hilfe eines
JTAG-Adapters getestet wurde, wird man in der Regel feststellen, daß nach
der Konfiguration des FPGAs mit der RBF-Datei über USB das NIOS-II System
nicht zu laufen scheint. Der Grund dafür liegt in der Verwendung der
printf-Textausgaben über die JTAG-Debug Schnittstelle. Sobald eine
printf-Anweisung versucht Text über die nicht mit einem JTAG-Adapter
verbundene JTAG-Debug Schnittstelle auszugeben, hängt das System. Ein
Ausweg aus dieser Situation ist es, entweder alle printf-Anweisungen
auszukommentieren oder die STDIO-Ein-/Ausgabe von "jtag_uart" auf "null"
umzubiegen. Das geschieht unter System Library Properties der NIOS II-IDE. Nach
der erneuten Erstellung des Projekts müssen noch unter Quartus II-Umgebung
die RAM-Blockinhalte aktualisiert werden und der Assembler gestartet werden.
Welche SODIMMs können mit dem Cyclone-Board benutzt werden und was kosten diese?
Es wurden diverse 4/8-Chip 128 und 256 MByte SODIMMs mit dem Cyclone-Board erfolgreich getestet.
Bei dem Einsatz von 128 MByte SODIMMs muss das gegebene NIOS II-Design an die geringere
Adressbreite angepasst werden. Preise dieser Module liegen im Bereich zwischen 20-30 Euro.
Wie hoch ist der Ethernet-Datendurchsatz von DM9000A?
Die über Ethernet effektiv übertragbare Datenmenge hängt in hohem Maße von der Leistung des Prozessors,
dem benutzten Protokoll (und damit verbundenem Softwareoverhead) und einer effizienter Anbindung
(Stichwort DMA) des LAN-Kontrollers ab. Unter idealen Voraussetzungen ist es möglich, etwa 70 MBit
dauerhaft mit dem DM9000A zu übertragen.
Schafft der USB-Controller CY68013 wirklich 480MBit/s?
Ja. Das ist die Brutto-Bitrate eines jeden USB 2.0 high-speed Kontrollers.
Erfahrungsgemäß schafft der eingesetzte Kontroller effektiv (Netto) ca. 44 MByte/sec
zum oder vom Host (PC). Das ist wiederum nur unter bestimmten Voraussetzungen zu erreichen.
Das SDRAM ist ja mit 64-bit angebunden, die NIOS II-CPU hat aber lediglich 32 bit Busbreite.
Entstehen aus der Anpassung der Busbreiten (im Avalon-System) irgendwelche Performance-Einbußen
- z.B. werden keine Burst-Transfers mehr duchgeführt?
Nein, ganz sicher nicht. Falls nötig, kann SDRAM aber jederzeit auch 32-bittig ins System eingebunden
werden. Die Hälfte des Speichers und der Datenleitungen bleibt dabei unbenutzt. So wurde es beispielsweise
bei dem Board von www.ge-research.at hardwareseitig gemacht.
Gibt es irgendeine Form von Support für das Cyclone-Board?
Bei technischen Fragen können Sie sich direkt an mich wenden, ich beantworte diese in der Regel kurzfristig.
Sind die Sourcen zu dem CPLD des Cyclone-Boards frei verfügbar?
Nein, nur die JEDEC-Programmierdatei für den CPLD wird auf der beigelegten CD mitgeliefert.
Sind die Gerberdateien / Boardlayout frei verfügbar?
Nein. Diese stehen nur gegen Entgelt zur Verfügung.
Kann ich ein Altera / terasIC USB Blaster zur Programmierung benutzen?
Ja. Das ist auf jeden Fall die bequemste Art und Weise den FPGA zu Konfigurieren und Debuggen.
Was sind das für SMD-Verbinder (Hersteller/Typ) auf dem Cyclone-Board?
Ich kenne zwei Hersteller dieser standardisierter Steckverbinder: Hirose und Harwin;
Typ: DF9 bzw. M40. Datenblätter sind auf der CD vorhanden bzw. kann ich zumailen.
Distributoren sind u.a. Farnell und Digikey.
Ist es möglich, das Cyclone-Board ohne die 2,54mm-Buchsenleisten am Rand zu bekommen?
Ja, das ist möglich. Bis zu zwei Wochen Lieferzeit.
Sind die Boards auf Funktion getestet worden?
Ja, natürlich. Folgende Test werden durchgeführt, bevor ein Board für funktionstüchtig befunden wird:
- SDRAM-Test mit einem 256 MByte Speicherriegel,
- Flash-Test,
- übertragen und Verifizieren einer großen Datenmenge über USB mit CyBulk von Cypress,
- Konfiguration des FPGAs über den Cypress USB-Kontroller,
- Konfiguration des FPGAs über JTAG,
- Programmierung einer Konfigurationsdatei in den Flash und anschließende Konfiguration aus dem Flash,
- Lauflicht für alle I/Os (dazu wurden extra zwei Test-Boards für obere und untere I/Os gebaut),
- Senden und Empfangen der Daten über Ethernet.
Gibt es eine Garantie?
Nein. Es gilt die gesetzlich geregelte Gewährleistungspflicht, siehe AGB.
Wie wird der Speedgrade der FPGAs bestimmt?
Die Bestimmung des Speedgrades und die Überprüfung der
Funktionstüchtigkeit eines FPGAs erfolgt in einem Arbeitsschritt. Der zu
testende FPGA wird mit verschiedenen, großen Schaltungen konfiguriert,
die möglichst viele FPGA-Ressourcen belegen. Die Schaltungen sind so
ausgelegt, dass jede Hardwareressource mindestens einmal getestet wird. Es wird
die maximale Taktfrequenz bestimmt, mit der die jeweiligen Schaltungen getaktet
werden können. Je nach Ergebnissen wird dem FPGA ein Speedgrade zugeteilt,
dieser Vorgang wird "speed binning" genannt.
Welches Speedgrade dann tatsächlich auf dem Gehäuse gedruckt
wird, hängt von der Nachfrage nach langsamen FPGAs ab. Ist diese
höher als das Angebot, dann werden schnelle FPGAs mit einem Speedgrade
versehen, der eigentlich für einen langsameren FPGA vorgesehen ist. Das
nennt man auch "down binning". Die Chance einen schnelleren FPGA mit einem
langsamen Speedgrade zu erhalten, ist höher, je besser ein Hersteller den
Fertigungsprozess im Griff hat.
Können FPGAs übertaktet werden?
Nach der Platzierung und Verdrahtung wird von einem Timing-Analyzer die
maximale Taktfrequenz (Fmax) bestimmt, mit der eine Schaltung betrieben werden
kann. Die FPGA-Hersteller garantieren, dass die Schaltung unter allen
(zulässigen) Betriebsbedingungen mit Fmax funktioniert. In der Regel ist
Fmax eine sehr konservative Abschätzung, die von der niedrigsten
zulässigen Versorgungsspannung und der höchsten zulässigen
Die-Temperatur ausgeht. Weiterhin wird noch eine Sicherheitsreserve
beaufschlagt.
Sind die Betriebsbedingungen günstig, kann eine Schaltung mit einer
höheren Fmax betrieben werden. Günstige Bedingungen bedeuten in
diesem Fall: niedrige Die-Temperatur, Versorgung mit einer höheren
Spannung, große Anzahl an richtig dimensionierten
Stützkondensatoren, gutes Layout. Ein weiter Faktor ist auch die
Größe der Schaltung. Weil eine kleine Schaltung auch ein kleiner
Stromverbraucher ist, somit sind auch die Stromspitzen geringer, die von
Stützkondensatoren geglättet werden müssen.
Von einer Übertaktung zu sprechen, wenn eine Schaltung mit
höherer Taktfrequenz als mit Fmax betrieben wird, ist meiner Meinung nach,
nicht korrekt. Denn Fmax ist für den ungünstigsten Fall bestimmt
worden. Und dieser liegt nicht immer vor. Es ist zwar sowohl bei Xilinx ISE und
Altera Quartus Software möglich, die Betriebsbedingungen mittels user
constraints einzustellen, doch diese werden meines Wissens nach, nicht in die
Berechnung von Fmax einbezogen. Andererseits weiß man auch nicht, welches
Speedgrade der vorliegende FPGA tatsächlich hat.
Sind die FPGAs von Xilinx oder Altera besser?
Diese Frage kann man nicht eindeutig beantworten. Mir ist im Laufe der
Zeit einiges aufgefallen, was ich dem einen oder anderen Lager als großes
Plus oder Minus anrechnen möchte. Dabei ist für den Entwurf für
die FPGAs das eine oder andere Hardware-Feature nicht so wichtig, wie die
Kleinigkeiten außerhalb der FPGAs, die den Gesamteindruck trüben und
die Arbeit unnötig erschweren. Im folgendem liste ich die Pros(+) und
Kontras(-), die den jeweiligen Hersteller besonders hervorheben oder auch
nicht.
Altera:
- (+) Bei den Cyclone-FPGAs nur zwei Versorgungsspannungen (VccIO und
VccCore) notwendig. Das ermöglicht und erleichtert Layout mit weniger
Lagen,
- (+) Kein Einschaltstromimpuls nach dem Anlegen der Spannungsversorgung,
- (+) Software macht einen sehr ausgereiften Eindruck. Sehr logisches
und gut strukturiertes Gesamtkonzept.
- (+) Ein in Quartus eingebauter Logik Analyzer "Signal Tap II",
- (+) Kleine Blockspeicher erzeugen wenig Verschnitt bei großer
Anzahl von kleinen Speicherblöcken,
- (+) Die einzelnen Cores des SOPC-Builders, wie SDRAM-Kontroller,
können auch ohne NIOS II-Prozessor in Verbindung mit einem eigenem
Avalon-Master benutzt werden.
- (+) Das Wissen um den Avalon-Bus ist sehr schnell zu erlernen und
eigene Komponenten können innerhalb kürzester Zeit implementiert
werden,
- (+) Ein preiswerter Nachbau des USB-Blasters für 50$
verfügbar,
- (-) Kaum Bezugsquellen für die FPGAs in Einzelstückzahlen
in Deutschland,
- (-) Ein internes Signal kann die Taktbäume nur über den
Umweg einer PLL treiben.
Xilinx:
- (+) Sehr gute Verfügbarkeit der FPGAs und der
Entwicklungskits,
- (-) Einschaltstromimpuls (mehrere Ampere) nach dem Anlegen der Spannungsversorgung,
- (+) Mit PowerPC ein leistungsfähiger Hard IP-Prozessor im
Programm,
- (+) In die I/Os eingebaute LVDS-Terminierungswiderstände,
- (+) Mit PlanAhead ein leistungsfähiger Flächenplaner
verfügbar,
- (-) Bei Xilinx muss der Logik Analyzer (ChipScope) extra gekauft
werden,
- (-) Bei den Spartan3(E)-Bausteinen sehr viele Pins nur als reine
Eingänge nutzbar,
- (-) In Vergangenheit waren FPGAs (Spartan3) teilweise bis zu einem
Jahr nach der Markteinführung kaum lieferbar.
|