C-to-RTL-Compiler

Das ESL-Tool »C2R« von CebaTech ist ein Compiler, der aus einem ANSI C-Code automatisch Verilog RTL-Code erzeugt. Aufgrund der höheren Abstraktionsebene können komplexe Designs effizient erstellt und dann automatisch in RTL umgesetzt werden.

Mit dem C2R-Compiler kann der Chip in ANSI C als Design-Sprache entwickelt, verifiziert und implementiert werden. Es handelt sich um ein robustes Design-Tool zur Beschreibung eines Chips auf der Verhaltens- und Systemebene. Zur Beschreibung der Hardware kommt ANSI C zum Einsatz.

Der C2R Compiler automatisiert den Entwicklungspfad vom C-Code zu synthetisierbaren Verilog-Code. Chad Spackman, Co-Founder und CTO von CebaTech, erklärt: »Damit sind deutliche Laufzeitverbesserungen bei der Simulation möglich.« Und weiter: »Mit dem C2R-Compiler können die Entwicklungs-Teams die Produktivität zurückgewinnen, die sie mit traditionellen RTL-Design-Methoden verloren haben.«

Der C2R-Compiler erzeugt korrekten und qualitativ hochwertigen RTL-Code für Algorithmen, Steuerungslogik und komplexe Datenpfade, und das in einer Vielzahl von Anwendungen. Der Compiler kann beliebig großen C-Code verarbeiten und unterstützt FPGAs, ASICs und Structured ASICs.

Warum setzt CebaTech auf ANSI C? Laut Spackman erfordern viele ESL-Tools (Electronic System Level), dass das Design mit einer Sprache erfolgt, die proprietäre Erweiterungen für ein Hardware-spezifisches Design aufweisen. Damit können keine Standard-Compiler genutzt werden. Der Design-Flow von Ceba-Tech dagegen nutzt Standard-ANSI-C mit bedingten Anweisungen, die vom C2R-Compiler interpretiert werden, wobei jeder andere Standard-C-Compiler den Code immer noch versteht.

Ceba- Tech hat ANSI C als Eingabesprache gewählt, weil die C-Sprache in einer nicht unterbrechenden Umgebung mit Threads eine sehr leistungsstarke Hardware-Beschreibungssprache darstellt, die laut Spackman hervorragend für das Design von SoCs jedweder Größe und Komplexität passt. Spackman: »Datentypen in C wie Strukturen, komplexe Arrays, Unions, haben ein direktes und intuitives Abbild in der Hardware und stellen somit geeignete Abstraktionen für Elemente in einem Hardware-System dar.«

Der C2R-Compiler unterstützt den kompletten ANSI C Sprachschatz sowie eine Multi-Threaded-Entwicklungsumgebung, einschließlich:

  • Pointer,
  • Fest- und Gleitkomma-Mathematik,
  • Funktionsaufrufe mit Parameterübergabe, einschließlich Pointern,
  • globale Variablen,
  • globale und lokale Arrays, Strukturen, Unions, etc.
  • Schleifen,
  • Threads, PThreads etc.

Bislang unterstützt der Compiler keine Rekursionen, aber Spackman erklärt, dass an diesem Punkt derzeit gearbeitet wird, so dass auch in diesem Fall künftig keinerlei Einschränkungen mehr bestehen werden.