High-Level Digitallogik Synthese

High-Level Synthese von digitalen Schaltungen und Schaltkreisen führt die Transformation von einer imperativen oder funktionalen Programmiersprache, die die Datenverarbeitung auf algorithmischer Ebene beschreibt, auf eine Hardware-Ebene, die das Verhalten des Schaltkreises - der Schaltung - beschreibt, durch. Diese Verhaltensbeschreibung, z.B. mit VHDL oder Verilog modelliert, wird schließlich auf Gatterebene in einem weiteren Syntheseschritt abgebildet, um daraus eine Technologieabbildung zu gewinnen: Feld-programmierbare Gatter-Arrays (FPGA) und Applikationsspezifische Integrierte Schaltungen (ASIC-Technologien).

Die ConPro Progarmmiersprache ist eine neu entwickelte imperative Programmiersprache, die die Programmierebene auf Register-Transfer-Logik Systeme abbildet. Dies wird mit einem regelbasierten Syntheseansatz vergleichbar einem Software-Compiler erreicht, der von dem Synthesewerkzeug ConPro umgesetzt wird, wie in Abbildung Figure 1 gezeigt ist.

Im Gegensatz zu anderen Ansätzen in der Highlevel-Synthese die bestehende Progarmmiersprachen - wie z.B. C - für diesen Zweck erweiteren bzw. modifiziern - z.B. SystemC -, wurde die ConPro Programmierpsprache neu entwickelt, und von vornherein auf die Bedürfnisse der Highlevl-Synthese von Schaltkreisen ausgreichtet und optimiert, und soll die Lücke zwischen Software- und Hardware-Entwicklung schließen.

Das zu grunde liegende Programmiermodell stellt Parallelität explizit auf Kontrollpfadebened urch ein Multi-Prozeßmodell mit kommuinizerenden Prozessen und Interprozeßkommunikation zur Verfügung. Auf Datenpfadeben können Anweisungen nebenläufig in gebundenen Programmblöcken ausgeführt werden. Weiterhin erlaubt das Synthesewerkzeug, Parallelität auf Datenpfadebene automatische zu explorieren.

Jeder Prozeß wird auf einen endlichen Zustandsautomaten (FSM) abgebildet. Diese werden nebenläufig zueinander ausgeführt werden. Prozeß-Instruktionen werden seauf Zustände abgebildet und sequenziell in der spezifizierten Reihenfolge als Folge von Zuständen ausgeführt.

Programmblöcke - mit belibiger Schachtelungstiefe - können parametrisiert werden. Die Synthese basiert auf einem nicht-iterativen, mehr-schichtigen und regelbasierten Ansatz, im Gegensatz zu gängigen Highlevel-Synthese-Werkzeugen, die parametrisiertes ieratives Scheduling und Allokation als zentralen Ansatz verwenden.

Erforderliche Iinterproceß Kommunikation und Synchronisation wird durch eine Menge von primitiven Funiktionen zur Verfügung gestellt: Mutex, Semaphore, Queue usw. Diese werden direkt auf Hardware-Blöcke abgebildet. Diese primitiven Funktionen werden mit einem abstrakten Datentypobjekt Modell und methoden-basierten Zugriff abgebildet.

Mit ConPro können komplexe System-On-Chip (SoC) Systeme mit einer Größe weit über der 1 Million Gatter Grenze implementiert und synthetisiert werden. Im Gegensatz zu gängigen Entwurfsmethoden von SoCs, die auf Architektur-Ebene stattfinden und die Funktionalität als Komposition von einzelnen Schaltungskomponenten darstellen, wird hier die Funktionalität des SoC ganzheitlich auf Verahltens- und algorithmischer Ebene beschrieben.

Figure 1:

High-Level-Synthese von digitalen Schaltkreisen mit einer imperativen Programmiersprache und dem ConPro Compiler.