Erstellt: 15. 2. 2006, 12:41
Geändert: 22. 8. 2007, 18:06
Geändert: 22. 8. 2007, 18:06
Sabotage
Nicht mehr anders kann man langsam die Bemühungen der Firma Xilinx nennen, Leute an der Arbeit zu hindern. Vorherige Erfahrungen über den binären Hirntot des Hardwaredesigns habe ich hier bereits veröffentlicht, also immer weiter im Text.
- Zunächst mal wäre da das Fenster mit den Zuordnungen von Dateien zu Bibliotheken in ISE 8.1. Dieses Fenster ist so ergonomisch wie eine Zahnbürste aus Spagetti, nämlich schlicht unbrauchbar. Jetzt kam der Tag, an dem ich mehrere Dateien in eine andere Bibliothek verschieben wollte. Zunächst mal klappt man die bisherige Bibliothek auf und markiert eine der zu verschiebenden Dateien. Dann geht man in das Kontextmenü und wählt verschieben. Dann wählt man im aufpoppenden Fenster die Zielbibliothek und bestätigt OK. Klingt noch harmlos? Na dann mal los.
- Das Fenster poppt grundsätzlich in der Mitte des primären Monitors auf. Ich habe die Dateiliste aber irgendwo auf dem zweiten Monitor.
- Drag&Drop? Fehlanzeige
- Man ist ja faul und will alles auf einmal markieren. Was macht man? Genau, wie in jedem anderen Programm erwartet man, dass Ctrl-A alles markiert. Vergesst es, damit crasht man reproduzierbar das gesamte Programm.
- Ok, nächster Versuch. Mehrer Dateien markieren mit Ctrl und Mausklick? Fehlanzeige, immer nur eine Datei zur gleichen Zeit.
- Nach dem Verschieben einer Datei werden übrigens alle bisher ausgeklappten Bibliotheken (eine Baumansicht) wieder kollabiert, so dass man sich die nächste Datei erst wieder suchen darf.
- Für einige Kernfunktionen stellt Xilinx mehr oder weniger fertige Module zur Verfügung, die man dann mit Hilfe eines Generator-Programms an seine Bedürfnisse (welche Hardware verwendet wird, einige Features) anpassen kann. In meinem Fall hätte ich gerne einen PCI-Express-Core für einen Virtex IIpro FPGA. Es gibt den Core definitiv für diese Architektur, Dokumentation und Beispiele existieren. Dummerweise unterstützt der Coregenerator diesen Core nur für den Virtex 4, den Nachfolger des IIpro. Wäre auch nicht so übermäßig schlimm, wenn der Virtex 4 irgendwo in relevanten Stückzahlen zu bekommen wäre. Selbst auf die engineering samples für unsere Arbeit warten wir seit Monaten vergebens, im Moment ist das Ding also irgendwie Vaporware.
- Für den Einsatz in eigenen Projekten stellt Xilinx Wrapper-Module bereit, die in den beiden großen Hardwarebeschreibungssprachen Verilog und VHDL zur Verfügung stehen. Der VHDL-Code ist ganz offensichtlich durch simples Suchen und Ersetzen aus dem Verilog-Code entstanden, denn er enthält an mehreren Stellen ungültige Codekonstrukte, die in Verilog zulässig wären. Ganz nebenbei fehlen natürlich auch noch ein paar für meine Arbeit wichtige Signale, die man dann selbst nachpflegen darf. Der Zusatzaufwand ist eher gering, da man ja sowieso den Code fixen muss, damit er überhaupt brauchbar ist.
- Habe ich schon erwähnt, dass das Programm beim Öffnen einiger Dateien semi-reproduzierbar hängen bleibt? Es frisst massig CPU-Zeit, aber zum Glück nicht Speicher, so dass es zwar nervt, aber die Systemstabilität nicht wie Modelsim und anderes beeinträchtigt.
- Irgenwann hat man sich bis zur Synthese durchgekämpft. Nur damit man diese praktische Meldung bekommt:
Analyzing Entity <RaceConfig> (Architecture <behaviour>). INTERNAL_ERROR:Xst:cmain.c:3068:1.158.10.1 - To resolve this error, please consult the Answers Database and other online resources at http://support.xilinx.com
Nach kurzem Suchen findet man dort tatsächlich diese in meinen Augen wenig Aufschlussreiche Problembeschreibung. Das ist in meinen Augen ein typischer Fall von "if it does not work, don't do it" als Problembehebung. Ach ja, bzgl. des Fixes in ISE 8.2, der dort versprochen wird: das Service Pack 2 für 8.1 kam etwa Anfang letzter Woche heraus, die Fehlermeldung dort ist vom 31. Oktober letzten Jahres. - Mein Kollege berichtete übrigens davon, dass mehrere Designs, die mit ISE 7.1 erfolgreich und korrekt übersetzt werden konnten, mit 8.1 nicht übersetzt werden konnten. Alternativ konnten sie übersetzt werden, funktionierten anschließend aber nicht.