Ich kenne mich gut mit der Programmierung von Prozessoren und Mikrocontrollern in C aus. Aber kann C-Code (nicht SystemC) für das Logikdesign für FPGAs verwendet werden? Gibt es spezielle Software-Tools für diesen Zweck?
Ja , es ist möglich, High Level Logic (HLL) mit C oder C-ähnlichen Sprachen zu entwerfen. Hier ist eine Liste der beliebtesten Software-Tools:
Den Überblick zu behalten wird dadurch erschwert, dass sich diese Unternehmen regelmäßig gegenseitig komplett verschlucken, Namen ändern oder Produkte ganz einstellen.
Es sieht so aus, als ob der C-Code für alle Tools eine HDL-Zwischenstufe durchlaufen muss. Das Design wird also in Verilog oder VHDL übersetzt, und diese Tools erleichtern den Übergang, bevor es schließlich in Hardware umgesetzt wird. Denken Sie jedoch daran, dass Verilog und VHDL selbst Zwischenstufen sind. Sogar die Netzliste ist zwischengeschaltet. Die letzte Stufe wird eine proprietäre Binärdatei sein, die das FPGA neu konfiguriert. Das Entwerfen in C wird seine eigenen Herausforderungen und Kompromisse haben . Aber die Antwort auf die Frage ist ein klares Ja, Logikdesign in C ist möglich.
Eine schöne Einführung in C-to-FPGA wurde bereits 2005 geschrieben. Wikipedia hat eine schöne Liste von HDLs und Tools. Derzeit gibt es auch Tools für ähnliche Sprachen wie C, C++, Java, Python und Ruby. Bitte kommentieren Sie, wenn ich ein Tool verpasst habe, und ich werde es der Antwort hinzufügen.
Nein, FPGAs können nicht in C programmiert werden. Im Laufe der Jahre gab es verschiedene Versuche, eine C-ähnliche Sprache zu entwickeln, aber diese haben sich entweder nicht durchgesetzt und sind nicht vollständig gescheitert. Selbst diejenigen, die "erfolgreich" waren, würde ich nicht als echtes C bezeichnen. Sie könnten beispielsweise keinen bereits vorhandenen Code nehmen, der für einen Prozessor kompiliert werden soll, und ihn für ein FPGA neu kompilieren und erwarten, dass er funktioniert.
Verwenden Sie VHDL oder Verilog, Sie werden viel glücklicher sein.
Wenn Sie ein System auf dem FPGA ausführen möchten, auf dem C ausgeführt wird, können Sie versuchen, einen CPU-Kern zu installieren. Dies macht jedoch den Zweck des FPGA zunichte.
Die Verwendung von C zum Programmieren von FPGAs wäre eine eher schlechte Designwahl, da C für iterative Programme und nicht für logische Arrays entwickelt wurde. Verilog und VHDL sind so konzipiert, dass Sie eine Struktur und keine Liste von Anweisungen erstellen.
efox29