VHDL-Editor

Inhalt

VHDL-Editor

Prinzipiell wäre ein einfacher Texteditor zur Entwicklung von VHDL-Code ausreichend. Hat man jedoch vor, längere Zeit mit VHDL zu arbeiten, lohnt sich definitiv auch die Suche nach effizienten Werkzeugen. So kann ein guter Editor durch Code-Vervollständigung und frühzeitige Fehlersignalisierung die Entwicklungszeit wesentlich reduzieren. Außerdem kann er unsere Nerven schonen, wenn beispielsweise eintönige Aufgaben, wie das Umbenennen von Signalen, völlig automatisiert und im gesamten Projekt konsistent erfolgen. Kurzum: wünschenswerte Eigenschaften eines VHDL-Editors sind meines Erachtens:
  • gute Syntax-Hervorhebung (nicht nur Schlagwort-Hervorhebung)
  • Syntax-Fehler-Hervorhebung während des Schreibens
  • intelligente Code-Vervollständigung
  • Refactoring: Unterstützung beim Umbenennen von Signalen, Variablen, ... und beim Verschieben oder Vereinfachen von Quellcode, wobei alle Abhängigkeiten automatisch mit angepasst werden
  • Ein- und Ausklappen von Blöcken
  • alles konfigurierbar: Tastenkürzel, Stil, Tabsize, ...
  • optional: LiveTemplates (auch Insertion Templates genannt)
Da der in Xilinx ISE integrierte VHDL-Editor kaum eine dieser Eigenschaften erfüllt, habe ich (vor ein paar Jahren, als ich meine Diplomarbeit schrieb) lange nach dem perfekten Editor für VHDL gesucht. Damals gab es ihn einfach nicht! Ich konnte keinen einzigen VHDL-Editor finden, der die wesentlichste Eigenschaft, die Syntax-Fehler-Hervorhebung, beherrschte. Mittlerweile hat sich die Situation aber deutlich verbessert. Aktuell gibt es sogar zwei wirklich vielversprechende, wenn auch kommerzielle VHDL-Editoren: Beide erfüllen die von mir aufgezählten wünschenswerten Eigenschaften und werden stetig weiterentwickelt. Leider habe ich die Möglichkeit verpasst, beide Editoren während der kostenlosen Beta-Test-Phase einmal richtig zu testen und zu vergleichen. Schade, aber vielleicht findet sich irgendwann noch jemand, der die Muße dazu hat. Die Seite würde ich sofort verlinken.

Selbstverständlich gibt es auch Open-Source-Alternativen, von denen meines Wissens jedoch keine die Syntax-Fehler-Hervorhebung unterstützt. Zu den besten freien VHDL-Editoren gehört auf jeden Fall Emacs bzw. XEmacs. Neben der Plattformunabhängigkeit überzeugt er vor allem durch eine relativ lange Liste an Features. Der VHDL-Mode ist in den neueren Versionen von Emacs (>= 20.4) bereits integriert, so dass man lediglich folgendes Kommando in Emacs absetzen muss, um das Modul zu laden:
M-x vhdl-mode
Ein großes Dankeschön geht dabei an Marc Franzmeier, der mir den Tipp zu XEmacs gab. Eine nützliche Übersicht über weitere VHDL-Tools und -Editoren stellt unter anderem das TAMS-Team der Uni Hamburg bereit.

Als ich mich damals für einen Editor entscheiden musste, fiel die Entscheidung auf kate. Das hat mehrere Gründe. Zum einen gab es die kommerziellen Editoren SimplifIDE und Sigasi HDT damals noch nicht, und auch Emacs war damals für meine Zwecke noch nicht überzeugend. Bestimmte Features, wie z.B. die Baumstruktur für Entities und Komponenten waren für meine winzigen Projekte einfach nicht entscheidend. Und da ich bei kate bzgl. Syntax-Highlighting erst einmal keinen Nachteil zum ISE-Editor sah, und man hier wenigstens eine einfache Code-Vervollständigung hat, wählte ich schließlich kate. Allerdings fehlten hier zum effizienteren Arbeiten noch einige Features, wie z.B. das Ein- und Ausklappen von Blöcken (Schleifen usw.). Doch solch eine Funktionalität lässt sich in kate "relativ" einfach nachrüsten. Man muss lediglich die Syntax-Highlighting-Dateien von katepart anzupassen. Gesagt, getan. Im nächsten Abschnitt finden Sie meine angepasste Version der vhdl.xml.

Verbessertes Syntax-Highlighting für VHDL in kate, kwrite, ... (KTextEditor)

Features:
  • Aus- und Einklappen von Blöcken:
    • entity
    • architecture
    • component
    • component-Instanzen
    • process
    • for
    • while
    • if
    • case
  • schnelles Auskommentieren / Kommentare entfernen einer ganzen Selection oder in der aktuellen Zeile (per control+d)
  • Highlighting von Keywords, Kommentaren, Operatoren, numerischen Werten, usw.
Allgemeine Features des KTextEditors:
  • zu einer Klammer wird die gegenüberliegende passende Klammer hervorgehoben ("[]", "{}", "()")
Installation: vhdl.xml herunterladen und unter ~/.kde/share/apps/katepart/syntax/ speichern.

Screenshots:



Bemerkung: Damit ist das Editieren von VHDL noch lange nicht optimal, da das extrem wichtige Error-Highlighting fehlt. Dennoch können mit diesem Syntax-Highlighting bereits einige strukturelle Fehler während des Editierens erkannt werden:
  • Falschschreibungen von Keywords
  • fehlende schließende Blockelemente
  • die beliebten Syntax-Fehler beim Öffnen und Schließen einer entity, architecture oder process

Syntax-Highlighting für UCF-Dateien in kate, kwrite, ... (KTextEditor)

Installation: xilinx-ucf.xml herunterladen und unter ~/.kde/share/apps/katepart/syntax/ speichern.

Screenshots: