Entwerfen von FPGA-Code in Blockdiagrammen

Ich habe kurz mit der FPGA-Entwicklung in Verilog geflirtet, und es ist zugegebenermaßen etwas langsamer, als das gleiche Programm auf einer MCU zu schreiben (Pins und ihr Verhalten definieren, keine Module verfügbar usw.). Ich war daher auf der Suche nach einer Software, die mir beim Entwerfen mit Blockdiagrammen oder etwas Visuellerem helfen kann. Ich habe von Mathworks Simulink und der FPGA/ASIC-Reihe von Tools von Synopsys, Cadence, Mentor Graphics usw. gehört, aber da ich nie die Gelegenheit hatte, diese in die Hände zu bekommen, weiß ich nicht wirklich, wie intelligent oder visuell sind sie. Haben Sie schon einmal von einer solchen Software mit einem solchen Funktionsumfang gehört? und hätten Blockdiagramme Vorteile gegenüber dem textuellen Entwerfen in Verilog?

Niemand scheint jemals nach einem Blockdiagramm-Tool zu fragen, wenn er Software schreibt. Warum ist es so für die Verwendung von HDLs?
@MartinThompson, die Leute fragen ständig nach grafischen Softwaretools und produzieren diese. LabVIEW und Simulink sind einige kommerzielle Beispiele, es gibt das Open Source Umbrello und Eclipse Modeling Framework und die allgemeine Kategorie der CASE- und Model-Driven-Architecture-Tools. Grafische Werkzeuge können nützlich sein; Das Problem entsteht, wenn die Leute sie als eine Möglichkeit sehen, die einschüchternde Syntax von Textsprachen zu vermeiden, wenn es wirklich die Semantik der Probleme ist, die die Entwicklung erschwert.
@Thernan - ja, das ist mir sehr wohl bewusst. Mir sind nur sehr wenige Fragen zu SO (und anderen Foren) im Sinne von "Ich fange gerade erst mit C/Python/Java an - was ist ein gutes Blockdiagramm-Tool für diese Sprachen" im Vergleich zu der ähnlichen Frage mit HDL drin. Vielleicht suche ich nicht genau genug :)

Antworten (3)

Altera hat eine kostenlose Version ihrer IDE ( Quartus II Web Edition ) Produkte/Software/

Ich meine, Sie müssen immer noch Code schreiben, aber sobald er geschrieben ist, können Sie die Symbole verwenden, um zu abstrahieren und wie eine Blockversion der Entität zu werden und eine grafische Schnittstelle zwischen Blöcken (über Busse usw.)

Würde ein Programm wie LogiSim besser funktionieren? Zumindest wenn es eine Art VHDL/Verilog-Erweiterung hätte!

Sie können Xilinux oder Altera verwenden. Beide verfügen über Schaltplaneingabewerkzeuge, mit denen Sie Logikblöcke zeichnen und mit Drähten verbinden können. Aber mit Verilog ist es in der Regel einfacher.

Hier ist mein Ratschlag zur grafischen Programmierung von FPGAs: Don't .

Es gibt zwei Möglichkeiten, die grafische Designeingabe zu verwenden: 1. Die gesamte Logik grafisch ausführen. Und 2. eine Mischung aus grafischer und textbasierter Designeingabe.

Es ist nicht praktikabel, das Ganze grafisch zu machen. Es gibt Logikdesigns, die einfach zu komplex sind, um sie grafisch umzusetzen, aber mit VHDL oder Verilog super einfach sind. Komplexe Zustandsmaschinen sind ein gutes Beispiel, aber in Wirklichkeit sind die meisten Dinge in VHDL oder Verilog einfacher zu erledigen, sobald Sie die Sprache beherrschen.

Eine gemischte Text-/Grafikeingabe ist zwar möglich, bietet aber nicht wirklich viele Vorteile. Sobald Sie VHDL/Verilog gut genug kennen, um die textbasierten Teile des Designs zu erstellen, bieten die grafischen Teile keinen Vorteil in Bezug auf Geschwindigkeit oder Verständlichkeit.

Es gibt auch andere Nachteile einer Mischung. Zunächst einmal lässt sich Ihr Design nicht einfach auf andere FPGA-Architekturen portieren. Sie müssen zwei verschiedene Werkzeuge (Texteditor und grafische Designeingabe) beherrschen. Menschen, die sich Ihr Design ansehen, müssen beides verstehen. Es ist schwieriger, normale textbasierte Entwicklungstools wie Versionskontrollsysteme, Diff, Make usw. zu verwenden.

Am Ende ist die Verwendung einer grafischen Eingabe nur ein zusätzlicher Schmerz, der Sie nicht davon abhält, VHDL und/oder Verilog zu beherrschen.