DE60221462T2 - Vorrichtung und Verfahren zur High-Level-Synthese, Verfahren zur Produktion von logischen Schaltungen unter Verwendung des Verfahrens zur High-Level-Synthese,und Aufzeichnungsmedium - Google Patents

Vorrichtung und Verfahren zur High-Level-Synthese, Verfahren zur Produktion von logischen Schaltungen unter Verwendung des Verfahrens zur High-Level-Synthese,und Aufzeichnungsmedium Download PDF

Info

Publication number
DE60221462T2
DE60221462T2 DE60221462T DE60221462T DE60221462T2 DE 60221462 T2 DE60221462 T2 DE 60221462T2 DE 60221462 T DE60221462 T DE 60221462T DE 60221462 T DE60221462 T DE 60221462T DE 60221462 T2 DE60221462 T2 DE 60221462T2
Authority
DE
Germany
Prior art keywords
circuit
data
line port
control line
request control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60221462T
Other languages
English (en)
Other versions
DE60221462D1 (de
Inventor
Mitsuhisa Tenri-shi Ohnishi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Application granted granted Critical
Publication of DE60221462D1 publication Critical patent/DE60221462D1/de
Publication of DE60221462T2 publication Critical patent/DE60221462T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. GEBIET DER ERFINDUNG
  • Die Erfindung betrifft eine High-Level-Synthesevorrichtung zum automatischen Erzeugen einer Logikschaltung für eine integrierte Halbleiterschaltung (LSI), die durch eine Verhaltensbeschreibung (Designdaten) repräsentiert ist, in der Verarbeitungsverhaltensweisen der Logikschaltung beschrieben sind. Die Erfindung betrifft auch ein High-Level-Syntheseverfahren unter Verwendung der High-Level-Synthesevorrichtung, ein Verfahren zum Herstellen einer Logikschaltung unter Verwendung des High-Level-Syntheseverfahrens sowie einen Computer-lesbaren Aufzeichnungsträger, der ein Steuerungsprogramm zum Ausführen des High-Level-Syntheseverfahrens speichert.
  • 2. BESCHREIBUNG DER EINSCHLÄGIGEN TECHNIK
  • Jüngere Mikrobearbeitungstechnologien haben größere System-LSIs ermöglicht. Es wird nach einer Entwicklungsumgebung gesucht, in der derartige System-LSIs effizient konzipiert und getestet werden können.
  • In den 1990-ern wurde ein Logiksynthesewerkzeug bis zur praktischen Verwendung entwickelt. Darauffolgend wurde ein Verhaltenssynthesewerkzeug zum Synthetisieren einer Beschreibung auf Registertransferlevel (nachfolgend als RT-Level bezeichnet) auf Grundlage einer Verhaltensbeschreibung, gemäß der nur Verhaltensweisen ausschließlich Information zu einer Hardwarestruktur beschrieben sind, in Gebrauch gebracht. Das Verhaltenssynthesewerkzeug erzeugt LSI-Designs, die manuell erzeugten vergleichbar sind, innerhalb einer kürzeren Zeitspanne.
  • Wenn ein derartiges Verhaltenssynthesewerkzeug verwendet wird, kann ein Designer seine Anstrengungen auf das Konzipieren eines Algorithmus, der eine wesentliche Verhaltensweise eines LSI bestimmt, konzentrieren. Ein derartiges Konzipieren eines Algorithmus stützt sich stark auf manuelle Arbeit. Im Ergebnis kann die Qualität einer Schaltung verbessert werden.
  • In frühen Stadien des Konzipierens eines großen digitalen LSI, wie eines System-LSI, wird als erstes ein Algorithmus eines Gesamtsystems untersucht und getestet (dieser Prozess wird als "Algorithmusdesign" bezeichnet). Hierbei wird eine Softwarebeschreibungssprache, wie eine Programmiersprache (beispielsweise die "Sprache C") dazu verwendet, einen Algorithmus auf einer Workstation oder einem Personal Computer zu konzipieren und zu testen.
  • Anschließend werden individuelle Prozesse, wie sie innerhalb eines Systems benötigt werden, durch eine Hardwarebeschreibungssprache mit Verhaltensbeschreibungen, die zu testen sind, angegeben. Daher wird ein zuvor durch eine Softwarebeschreibungssprache angegebener Algorithmus erneut durch eine Hardwarebeschreibungssprache mit einer Verhaltensbeschreibung angegeben.
  • Demgemäß ist herkömmlicherweise ein Verfahren (High-Level-Syntheseverfahren) zum Synthetisieren einer Schaltung auf Grundlage eines Algorithmus eines Gesamtsystems oder einer Verhaltensbeschreibung unter Verwendung der Sprache C vorgeschlagen. Eine derartige herkömmliche Technik ist beispielsweise in der japanischen Patentoffenlegungsveröffentlichung Nr. 10-116802 mit dem Titel "Verfahren zum Konzipieren eines integrierten Schaltkreises sowie durch das Verfahren konzipierter integrierter Schaltkreis" offenbart.
  • Derzeit wird eine Sprache mit hohem Abstraktionsgrad, wie die "Sprache C" dazu verwendet, das Verhalten von Hardware, die eine Anwendung, wie eine Audio- oder Videoverarbeitung, realisiert, zu beschreiben und eine Hardwareschaltung zu synthetisieren (High-Level-Synthese).
  • Als erstes wird eine Verhaltensbeschreibungssprache beschrieben. Danach wird die Sprache C in der folgenden Beschreibung für den Zweck einer Verhaltensbeschreibung erweitert. Genauer gesagt, beinhaltet die erweiterte Sprache C Parallelsätze zum expliziten Beschreiben paralleler Operationen, Befehle für Datenkommunikation zwischen den parallelen Operationen sowie Kommunikationskanäle.
  • Ein Beispiel einer derartigen Sprache ist die in "Bach: Environment for SLI Design with C Language", The 11th Workshop an Circuits and Systems in Karuisawa, April 20-21, 1998, and "Hardware Complier Bach", TECHNICAL REPORT OF IEICE CRSY97-87(1997-10) offenbarte Sprache Bach C. Die 15 zeigt ein Beispiel der Sprache C zur Hardwarebeschreibung. Bei diesem Beispiel ist das folgende Verhalten beschrieben.
  • Wie es in der 15 dargestellt ist, ist die dritte Zeile der Verhaltensbeschreibung die Deklaration eines synchronen Kommunikationskanals ch vom Typ int.
  • "Par" in der sechsten Zeile ist ein Parallelsatz, der explizit Paralleloperationen angibt. Hierbei gibt der Satz an, dass dabei zwei Blöcke parallel einer Operation unterzogen werden.
  • Die siebte Zeile beschreibt eine erste Threadoperation, die angibt, dass ein Kommunikationsdatenbefehl "send" dazu verwendet wird, den Wert 10 an den Kommunikationskanal ch zu senden.
  • Die achte Zeile gibt die nächste Threadoperation an, die anzeigt, dass ein Kommunikationsdatenbefehl "receive" dazu verwendet wird, Daten vom Kommunikationskanal ch zu empfangen, wobei die empfangenen Daten in eine Variable x eingesetzt werden.
  • Die zehnte Zeile zeigt an, dass nach dem Ausführen des Parallelsatzes in den Zeilen 6 bis 9 der Inhalt der Variablen x als Dezimalzahl im Integertyp an "stdout" ausgegeben wird.
  • Als nächstes werden die Prozesse einer High-Level-Synthese auf Grundlage einer beispielhaften High-Level-Synthese erläutert, wie sie durch die japanische Patentoffenlegungsveröffentlichung Nr. 10-116302 mit dem Titel "Verfahren zum Konzipieren eines integrierten Schaltkreises sowie durch das Verfahren konzipierter integrierter Schaltkreis" vorgeschlagen ist. Der Ablauf der High-Level-Synthese ist grob in vier Stadien, nämlich (N1) bis (N4) unterteilt. Die Erläuterung erfolgt unter Bezugnahme auf die Funktionsblöcke in der 16.
    • (N1) Es wird eine Verhaltensbeschreibung analysiert, die einen Algorithmus des Verarbeitungsverhaltens einer Schaltung beschreibt.
    • (N2) Das Verarbeitungsverhalten wird in Threads unterteilt, die parallel asynchron abgearbeitet werden.
    • (N3) Für jeden Thread werden die folgenden Prozesse (N3a) bis (N3f) ausgeführt.
    • (N3a) CDFG-Synthese ein CDFG (control data flow graph) ist ein Diagramm, das Abhängigkeitsbeziehungen zwischen Rechenvorgängen hinsichtlich der Ausführungsreihenfolge repräsentiert. In einem CDFG sind Rechenvorgänge, Eingaben und Ausgaben durch Knoten repräsentiert, und Datenabhängigkeitsbeziehungen sind durch direkte Zweige repräsentiert.
    • (N3b) Zeitplanung Eine einem als Schritt bezeichneten Takt entsprechende Zeit wird sukzessive jedem der Rechenvorgänge, der Eingaben und Ausgaben im CDFG zugeordnet.
    • (N3c) Zuordnung Es werden Berechnungseinheiten, Register sowie Eingabe- und Ausgabepins, wie sie zur Ausführung des zeitlich geplanten CDFG erforderlich sind, erzeugt. Die Berechnungseinheiten werden den Rechenvorgängen im CDFG zugeordnet. Die Register werden Datenabhängigkeitszweigen über Taktgrenzen hinweg zugeordnet. Die Eingabe- und Ausgabepins werden den Eingaben und Ausgaben zugeordnet.
    • (N3d) Erzeugung eines Datenpfads Es werden Datenpfade erzeugt, die jeweiligen Datenabhängigkeitsbeziehungszweigen im CDFG entsprechen.
    • (N3e) Erzeugung eines Steuerungsmechanismus Es wird ein Steuerungsmechanismus zum Steuern der Berechnungseinheiten, Register und Multiplexer, wie sie während der Zuordnung und der Erzeugung der Datenpfade erzeugt werden, erzeugt.
    • (N3f) Erzeugung einer Schaltung auf RT-Level Es wird eine Schaltungsbeschreibung der durch die oben beschriebenen Prozesse erzeugten Schaltung unter Verwendung einer Hardwarebeschreibungssprache, wie VHDL [VHSIC (Very High Speed Integrated Circuit) Hardware Description Language], und dergleichen, erzeugt.
    • (N4) Es werden Schaltungen auf RT-Level, eine jeweilige für die jeweiligen Threads (Teilschaltkreise) zu einer einzelnen Schaltung auf RT-Level integriert.
  • Als nächstes werden die Paralleloperationen und die Kommunikation bei der High-Level-Synthese erläutert.
  • Nachfolgend wird davon ausgegangen, dass bei Kommunikationsvorgängen unter Verwendung synchroner Kanäle (nachfolgend als Kommunikation über synchrone Kanäle bezeichnet) Daten übertragen werden, nachdem sowohl ein senderseitiger Thread (nachfolgend als Sendethread bezeichnet) als auch ein empfängerseitiger Thread (nachfolgend als Empfangsthread bezeichnet) im Zustand einer Kommunikationsbereitschaft vorliegen.
  • Als ein Verfahren zum Realisieren einer Kommunikation über synchrone Kanäle kann eine Schaltungskonfiguration verwendet werden, wie sie in der 17 dargestellt ist, die ein Quittierungssteuerungssignal verwendet. Bei einer derartigen Schaltungskonfiguration verfügt eine Sendethreadschaltung über die folgenden Ports. Ein (I) im Namen jedes Ports der Schaltung zeigt an, dass der Port ein Eingangsport ist, wohingegen (O) anzeigt, dass der Port ein Ausgangsport ist. "wtx" kennzeichnet einen Steuerungsleitungsport für ein Sendeanforderungssignal (oder ein Sendeabschlusssignal) an ein Empfängerende. "wrx" repräsentiert einen Steuerleitungspfad für ein Empfangsanforderungssignal (oder ein Empfangsabschlusssignal) von einem Empfängerende. "wdata" repräsentiert einen Datenleitungsport auf einem Senderende.
  • Andererseits verfügt die Empfangsthreadschaltung über die folgenden Ports. Ein (I) im Namen jedes Ports der Schaltung zeigt an, dass der Port ein Eingangsport ist, während (O) anzeigt, dass der Port ein Ausgangsport ist. "rrx" repräsentiert einen Steuerleitungsport für ein Empfangsanforderungssignal (oder ein Empfangsabschlusssignal) an einem Empfängerende. "rtx" repräsentiert einen Steuerleitungsport für ein Sendeanforderungssignal (oder ein Sendeabschlusssignal) von einem Empfängerende. "rdata" repräsentiert einen Datenleitungsport auf einem Empfängerende.
  • Die 18 zeigt ein beispielhaftes Timingdiagramm für die Datenübertragung innerhalb dieser Schaltungskonfiguration. Es sei darauf hingewiesen, dass die Spannung jeder Steuerungsleitung im Ausgangszustand als Pegel "NIEDRIG" angenommen ist.
  • Es wird davon ausgegangen, dass als erstes ein "Sendebefehl" ausgeführt wird und danach ein "Empfangsbefehl" ausgeführt wird. Wie es in der 18 dargestellt ist, führt beispielsweise ein Sendethread (thread 1) einen "Sendebefehl" innerhalb eines Taktzyklus c1 aus, und ein Empfangsthread (thread 2) führt einen "Empfangsbefehl" innerhalb eines Taktzyklus c3 aus.
  • Der Sendethread gibt Daten d1 im Taktzyklus c1 an den Datenleitungsport "wdata" aus, und er sorgt dafür, dass die Spannung am Steuerleitungsport "wtx(O)" der Pegel "HOCH" ist. Ferner wartet der Sendethread, bis die Spannung am Steuerleitungsport "wrx(I)" auf "HOCH" geht. Wenn die Spannung am Steuerleitungsport "wrx(I)" auf "HOCH" geht, sorgt der Sendethread dafür, dass die Spannung am Steuerleitungsport "wtx(O)" auf "NIEDRIG" geht, und er beendet im nächsten Taktzyklus (c4) die Datenausgabe an den Datenleitungsport "wdata".
  • Andererseits sorgt der Empfangsthread dafür, dass die Spannung am Steuerleitungsport "rrx(O)" im Taktzyklus c3 den Pegel "HOCH" einnimmt. Hierbei nimmt der Empfangsthread, da die Spannung am Steuerleitungsport "rtx(I)" dem Pegel "HOCH" entspricht, auf die Daten d1 am Datenleitungsport "rdata" Bezug, und er sorgt dafür, dass die Spannung am Steuerleitungsport "rrx(O)" im nächsten Taktzyklus c4 auf "NIEDRIG" geht. So wird die Datenkommunikation beendet.
  • Als nächstes sei davon ausgegangen, dass als erstes ein "Empfangsbefehl" ausgeführt wird und danach ein "Sendebefehl" ausgeführt wird.
  • Wie es in der 18 dargestellt ist, führt beispielsweise der Empfangsthread den "Empfangsbefehl" in einem Taktzyklus c7 aus, während der Sendethread den Steuerleitungsport in einem Taktzyklus c9 ausführt.
  • Der Empfangsthread sorgt dafür, dass die Spannung am Steuerleitungsport "rrx(O)" im Taktzyklus c7 dem Pegel "HOCH" entspricht. Ferner wartet der Empfangsthread, bis die Spannung am Steuerleitungsport "rtx(I)" auf "HOCH" geht. Wenn die Spannung am Steuerleitungsport "rtx(I)" auf "HOCH" geht, nimmt der Empfangsthread auf die Daten d2 am Datenleitungsport "rdata" Bezug, und er sorgt in einem Taktzyklus c10 dafür, dass die Spannung am Steuerleitungsport "rrx(O)" auf "NIEDRIG" geht.
  • Von Chin-tung Chen et al. ist in 'An architectural power optimization case study using high-level synthesis COMPUTER DESIGN: VLSI IN COMPUTERS AND PROCESSORS; 1997; ICCD '97: PROCEEDINGS:; 1997 IEEE INTERNATIONAL CONFERENCE ON AUSTIN, TX, USA, 12-15. OKT. 1997, LOS ALAMITOS, CA, USA, IEEE COMPUT. SOC, US, 12. Oktober 1997 (1997-10-12), Seiten 562-570, XP010251787 ISBN: 0-8186-8206-X eine High-Level-Synthese von Architekturen mit niedrigem Energieverbrauch mit einem Chipdesign offenbart. Zu einem offenbarten Verfahren zur Leistungsoptimierung gehört eine Torschaltung für ein Taktsignal zum Sperren des Taktsignals einer sequenziellen Komponente, wenn diese im Leerlauf arbeitet.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einer Erscheinungsform der Erfindung eine High-Level-Synthesevorrichtung zum Synthetisieren einer Logikschaltung auf Registertransferlevel aus einer eine Verarbeitungsoperation der Schaltung beschreibenden Verhaltensbeschreibung gemäß dem Anspruch 1.
  • Gemäß einer Ausführungsform dieser Erfindung erzeugt der Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt die Niederer-Energieverbrauch-Schaltung, die die Taktsignalzufuhr zu den Teilschaltungen stoppt oder sperrt, wenn sich diese in einem Wartezustand befinden, auf Grundlage von Information zu synchronen Verarbeitungsvorgängen, die aus Verhaltensbeschreibungsinformation entnommen wird, die Information zu synchroner Kommunikation enthält.
  • Gemäß einer anderen Erscheinungsform der Erfindung ist ein High-Level-Syntheseverfahren zum Synthetisieren einer Logikschaltung auf Registertransferlevel aus einer Verhaltensbeschreibung, die eine Verarbeitungsoperation durch die Logikschaltung beschreibt, um eine gewünschte Logikschaltung aufzubauen, und zum Erzeugen der synthetisierten Logikschaltung gemäß dem Anspruch 3 geschaffen. Bei einer Ausführungsform dieser Erfindung stoppt oder sperrt die synthetisierte Niederer-Energieverbrauch-Schaltung die Operationen von Teilschaltungen durch Stoppen oder Herabsetzen der Taktsignallieferung an die Teilschaltungen.
  • Bei einer Ausführungsform dieser Erfindung steuert die synthetisierte Niederer-Energieverbrauch-Schaltung die Taktsignalversorgung unter Verwendung eines Signals, das den Wartezustand anzeigt.
  • Bei einer Ausführungsform dieser Erfindung erzeugt die synthetisierte Niederer-Energieverbrauch-Schaltung ein den Wartezustand der Teilschaltungen anzeigendes Signal unter Verwendung des Sendeanforderungssignals und des Empfangsanforderungssignals, und sie betreibt die Teilschaltungen unter Verwendung eines geschalteten Taktsignals, wie es unter Verwendung des den Wartezustand der Teilschaltungen anzeigenden Signals erzeugt wird, um einen niedrigen Energieverbrauch zu erzielen.
  • Bei einer Ausführungsform wird der Synthetisierschritt auf Grundlage von Information zu synchroner Verarbeitung ausgeführt, die aus Information zu synchroner Kommunikation enthaltender Verhaltensbeschreibungsinformation entnommen wird, und die synthetisierte Niederer-Energieverbrauch-Schaltung stoppt oder sperrt die Operationen von Teilschaltungen durch Stoppen oder Sperren der Taktsignalversorgung an die Teilschaltungen.
  • Bei dieser Ausführungsform dieser Erfindung verfügt das High-Level-Syntheseverfahren ferner über die Schritte des Erzeugens eines Signals für jede Teilschaltung, das anzeigt, dass sich diese in einem Wartezustand befindet, auf Grundlage von Information zu synchroner Verarbeitung, die aus die Information zu synchroner Kommunikation enthaltender Verhaltensbeschreibungsinformation entnommen wird, und des Erzeugens eines geschalteten Taktsignals für jede Teilschaltung unter Verwendung dieses Signals. Die synthetisierte Niederer-Energieverbrauch-Schaltung betreibt die Teilschaltung unter Verwendung des erzeugten geschalteten Taktsignals, und sie stoppt die Ausgabe des an die Teilschaltung gelieferten geschalteten Taktsignals, wenn sich die Teilschaltung in einem Wartezustand befindet.
  • Gemäß einer anderen Erscheinungsform der Erfindung ist ein Verfahren zum Herstellen einer Logikschaltung geschaffen, bei dem das oben beschriebene High-Level-Syntheseverfahren zum Konzipieren der Logikschaltung verwendet wird.
  • Gemäß einer anderen Erscheinungsform der Erfindung verfügt ein Computerlesbarer Aufzeichnungsträger über ein Steuerungsprogramm zum Ausführen des oben beschriebenen High-Level-Syntheseverfahrens.
  • So ermöglicht es die hier beschriebene Erfindung, die folgenden Vorteile zu erzielen: Bereitstellen einer High-Level-Synthesevorrichtung, die eine Niederer-Energieverbrauch-Schaltungskonfiguration schaffen kann, bei der der vergeudete Energieverbrauch, wenn sich ein Thread in einem Wartezustand befindet, verringert werden kann, eines High-Level-Syntheseverfahrens unter Verwendung der High-Level-Synthesevorrichtung, eines Verfahrens zum Herstellen einer Logikschaltung unter Verwendung des High-Level-Syntheseverfahrens, und eines Computer-lesbaren Aufzeichnungsträgers, auf dem ein Steuerungsprogramm zum Ausführen des High-Level-Syntheseverfahrens aufgezeichnet ist.
  • Diese und andere Vorteile der Erfindung werden dem Fachmann beim Lesen und Verstehen der folgenden detaillierten Beschreibung unter Bezugnahme auf die beigefügten Figuren ersichtlich werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm einer Konfiguration einer High-Level-Synthesevorrichtung gemäß einem Beispiel der Erfindung, wobei Hauptfunktionsabschnitte derselben dargestellt sind.
  • 2A ist ein Diagramm, das eine beispielhafte Verhaltensbeschreibung zeigt.
  • 2B ist ein Diagramm, das Information zu synchroner Verarbeitung in synchronen Kanälen zeigt.
  • 3 ist ein schematisches Diagramm, das ein Ergebnis einer CDFG-Erzeugung durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 4 ist ein schematisches Diagramm, das das Ergebnis einer Zeitplanung durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 5 ist ein schematisches Diagramm, das ein Ergebnis einer Zuordnung (Berechnungseinheit) durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 6 ist ein schematisches Diagramm, das ein Ergebnis einer Zuordnung (Register) durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 7 ist ein schematisches Diagramm, das ein Ergebnis bei der Erzeugung von Datenpfaden durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 8 ist ein schematisches Diagramm, das ein Ergebnis bei der Erzeugung eines Steuerungsmechanismus durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 9A ist ein schematisches Diagramm, das ein Ergebnis beim Erzeugen einer einem Thread 1 entsprechenden Niederer-Energieverbrauch-Schaltung durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 9B ist ein schematisches Diagramm, das ein Ergebnis beim Erzeugen einer einem Thread 2 entsprechenden Niederer-Energieverbrauch-Schaltung durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 10 ist ein schematisches Diagramm, das ein Ergebnis beim Erzeugen einer Schaltung auf RT-Level durch die High-Level-Synthesevorrichtung der 1 zeigt.
  • 11 ist ein Diagramm, das ein beispielhaftes Verfahren mit geschaltetem Taktsignal zeigt.
  • 12 ist ein Schaltbild für den Fall, dass die Niederer-Energieverbrauch-Schaltung gemäß der Erfindung bei beispielhafter synchroner Kommunikation, wie sie durch die 17 veranschaulicht ist, angewandt wird.
  • 13 ist ein Timingdiagramm, das ein Beispiel mit der Niederer-Energieverbrauch-Schaltung der 12 zeigt.
  • 14 ist ein Timingdiagramm, das eine beispielhafte Operation der Schaltung auf RT-Level gemäß der 10 zeigt.
  • 15 ist ein Diagramm, das eine beispielhafte Verhaltensbeschreibung einschließlich synchroner Kommunikation zeigt.
  • 16 ist ein Blockdiagramm einer Konfiguration einer herkömmlichen High-Level-Synthesevorrichtung, wobei Hauptfunktionsabschnitte derselben dargestellt sind.
  • 17 ist ein schematisches Schaltbild, das ein beispielhaftes Verfahren zum Realisieren synchroner Kommunikation zeigt.
  • 18 ist ein Timingdiagramm, das eine beispielhafte Operation der synchronen Kommunikation gemäß der 17 zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Nachfolgend werden eine High-Level-Synthesevorrichtung und ein High-Level-Syntheseverfahren gemäß der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Die 1 ist ein Blockdiagramm einer Konfiguration einer High-Level-Synthesevorrichtung gemäß einem Beispiel der Erfindung, wobei Hauptfunktionsabschnitte derselben dargestellt sind. In der 1 verfügt eine High-Level-Synthesevorrichtung 100 über einen Verhaltensbeschreibungs-Speicherabschnitt 20, einen Verhaltensbeschreibungs-Analysierabschnitt 3, einen Threadunterteilungsabschnitt 4, einen Speicherabschnitt 5 für Information für synchrone Verarbeitung, einen CDFG(control data flow graph)-Erzeugungsabschnitt 6, einen Zeitplanungsabschnitt 7, einen Zuordnungsabschnitt 8, einen Datenpfaderzeugungsabschnitt 9, einen Steuerungsmechanismus-Erzeugungsabschnitt 10, einen Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt 11, einen Beschreibungserzeugungsabschnitt 12 für eine Schaltung auf RT-Level sowie einen Speicherabschnitt 13 für eine Schaltung auf RT-Level.
  • Der Verhaltensbeschreibungs-Speicherabschnitt 20 speichert eine Verhaltensbeschreibung (beispielsweise die 2A) einer Logikschaltung (digitaler LSI-Schaltkreis), durch die ein Algorithmus für ein Verarbeitungsverfahren entsprechend einer High-Level-Synthese angegeben ist.
  • Der Verhaltensbeschreibungs-Analysierabschnitt 3 entnimmt und analysiert eine Verhaltensbeschreibung, wie in der 2A dargestellt, die einen Algorithmus für die Verarbeitungsoperation einer Schaltung beschreibt, um in der Verhaltensbeschreibung enthaltene Information zu synchroner Verarbeitung zu entnehmen. Die Information zu synchroner Verarbeitung ist Information zu einem Prozess, der Synchronisation zwischen Threads erfordert. Beispielsweise betrifft derartige Information einen Kommunikationsvorgang unter Verwendung eines synchronen Kanals. Genauer gesagt, enthält die Information zu synchroner Verarbeitung nicht nur Information zu synchroner Verarbeitung für einen synchronen Kanal, sondern auch Information zu anderen Prozessen. Zur Information zu anderen Prozessen gehört beispielsweise Information zu einem Synchronisationsprozess, gemäß dem mehrere Blöcke in einem Parallelsatz, der parallel arbeitet, die Verarbeitung gleichzeitig starten, oder wobei ein nächster Prozess im Parallelsatz gestartet wird, nachdem alle Blöcke beendet sind.
  • Der Threadunterteilungsabschnitt 4 folgt einem Syntaxbaum, und er unterteilt diesen in mehrere Threads, die asynchron und parallel abgearbeitet werden, und er erzeugt eine Liste von Einzelinformationen zu synchronen Kanälen, über die die Threads eine Operation "Senden" ausführen, und eine Liste von Einzelinformationen zu synchronen Kanälen, über die die Threads eine Operation "Empfangen" ausführen. Es sei darauf hingewiesen, dass bei der Verhaltensbeschreibung in der 2A die Zeilen 7-14 einem Thread 1 entsprechen und die Zeilen 15-19 einem Thread 2 entsprechen.
  • Der Speicherabschnitt 5 für Information zu synchroner Verarbeitung speichert Information zu einem synchronen Prozess betreffend einen synchronen Kanal, wie es in der 2B dargestellt ist, wie für jeden Thread durch den Threadunterteilungsabschnitt 4 erzeugt, oder andere Information zu synchroner Verarbeitung.
  • Der CDFG-Erzeugungsabschnitt 6 erzeugt ein CDFG (control data flow graph), wie es beispielsweise in der 3 dargestellt ist, auf Grundlage der Ver haltensbeschreibung in der 2A. Zugehörige Einzelheiten werden unten beschrieben.
  • Der Zeitplanungsabschnitt 7 erzeugt einen Zeitplan, gemäß dem ein CDFG in mehrere Schritte unterteilt wird, wie es beispielhaft in der 4 dargestellt ist.
  • Der Zuordnungsabschnitt 8 ordnet Berechnungseinheiten, wie es in der 5 dargestellt ist, und Register, wie es in der 6 dargestellt ist, zu einem CDFG zu, wie es unten beschrieben ist.
  • Der Datenpfaderzeugungsabschnitt 9 erzeugt (verbindet) Datenbusse (Datenpfade) zwischen Schaltungselementen, die den Berechnungseinheiten oder Registern zugeordnet sind, wie es durch dicke Linien in der 7 dargestellt ist.
  • Der Steuerungsmechanismus-Erzeugungsabschnitt 10 fügt zu einer Schaltung mit Datenbusverbindungen einen Steuerungsmechanismus hinzu, wie es in der 8 mit dicken Linien dargestellt ist. Der Steuerungsmechanismus ist mit Steuerungsleitungen verbunden.
  • Der Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt 11 erzeugt beispielsweise Niederer-Energieverbrauch-Schaltungen 11A und 11B, wie sie in den 9A und 9B dargestellt sind, auf Grundlage der Information zu synchroner Verarbeitung betreffend die synchronen Kanäle, wie sie im in der 2B dargestellten Speicherabschnitt 5 für Information zu synchroner Verarbeitung abgespeichert ist. Die Niederer-Energieverbrauch-Schaltungen 11A und 11B stoppen die Zufuhr eines Taktsignals zu einer Teilschaltung für jeden Thread, wenn sich dieser in einem Wartezustand befindet.
  • Der Beschreibungserzeugungsabschnitt 12 für einer Schaltung auf RT-Level (Erzeugungsabschnitt für eine Schaltung auf RT-Level) verbindet Teilschaltungen (Threads 1 und 2) und die Niederer-Energieverbrauch-Schaltungen 11A und 11B, beispielsweise gemäß der 10, um eine Schaltung auf RT-Level zu erzeugen.
  • Der Speicherabschnitt 13 für eine Schaltung auf RT-Level speichert erzeugte Information zu einer Schaltung auf RT-Level.
  • Nun wird als beispielhaftes Verfahren zum Steuern der an eine Schaltung zu liefernden Taktsignale ein Verfahren mit geschaltetem Taktsignal unter Verwendung von UND-Logikelementen oder ODER-Logikelementen beschrieben. Bei diesem Verfahren werden, wie es in der 11 dargestellt ist, durch Ändern eines Steuerungssignals (Aktivierungssignals) Taktsignalimpulse mit einem gewünschten Timing ausgegeben. Das Verfahren mit geschaltetem Taktsignal kann als beispielhaftes Verfahren zum Stoppen des Betriebs einer Teilschaltung verwendet werden. Es können andere Verfahren zum Stoppen des Betriebs einer Teilschaltung verwendet werden.
  • Wenn beispielsweise das Verbindung mit geschaltetem Taktsignal bei der in der 17 dargestellten Schaltung angewandt wird, ist diese so konfiguriert, wie es in der 12 dargestellt ist. Ein Timingdiagramm dieser Schaltung ist dergestalt, wie es in der 13 dargestellt ist. Wie es im Timingdiagramm der 13 dargestellt ist, wird das Taktsignal für den Thread 1 (Senden) in den Taktzyklen c2 und c3 gestoppt, während ein Taktsignal für den Thread 2 (Empfangen) in den Taktzyklen c8 und c9 gestoppt wird. Daher kann der durch Taktsignale verursachte Energieverbrauch auf 9/11 gesenkt werden.
  • Demgemäß wird, bei der Erfindung, die erzeugte Niederer-Energieverbrauch-Schaltung dazu verwendet, die Taktsignallieferung an eine Teilschaltung zu stoppen, wenn sich ein Thread in einem Wartezustand befindet (auf hohem oder niedrigem Pegel gehalten wird). Im Ergebnis ist die Schaltrate der Teilschaltung verringert, wodurch ein niedriger Energieverbrauch erzielt wird.
  • Nun wird eine Betriebsweise der oben beschriebenen Konfiguration detailliert beschrieben.
  • Als erstes sei angenommen, dass eine Verhaltensbeschreibung vorliegt, bei der ein Algorithmus für einen Prozess zur High-Level-Synthese so angegeben ist, wie es in der 2A dargestellt ist. In diesem Fall analysiert der Verhaltensbeschreibungs-Analyseabschnitt 3 eine vom Verhaltensbeschreibungs-Speicherabschnitt 20 erhaltene Verhaltensbeschreibung. Der Threadunterteilungsabschnitt 4 ordnet dem Thread 1 einen ersten Block im Parallelsatz der Verhaltensbeschreibung in der 2A zu, und er ordnet dem Thread 2 einen zweiten Block zu. Synchrone Kanäle, auf die die Threads 1 und 2 zugreifen, sind dergestalt, wie es beispielhaft in der 2B (Tabelle 1) dargestellt ist. Information zu den synchronen Kanälen ist im Speicherabschnitt 5 für Information zu synchroner Verarbeitung abgespeichert.
  • Als nächstes erzeugt der CDFG-Erzeugungsabschnitt 6 ein CDFG (control data flow graph). Beispielsweise wird auf Grundlage der Verhaltensbeschreibung der 2A ein CDFG (control data flow graph), wie es in der 3 dargestellt ist, erzeugt, bei dem Eingaben aus einem Kommunikationskanal oder Ausgaben an diesen, wie "Senden" oder "Empfangen (rcv)" oder dergleichen, verschiedene Rechenvorgänge, wie Addition "+", Subtraktion "–", Multiplikation "x" und dergleichen durch Knoten repräsentiert sind und Datenabhängigkeitsbeziehungen zwischen jeweiligen Knoten durch direkte Zweige repräsentiert sind.
  • Ferner führt der Zeitplanungsabschnitt 7 einen Zeitplanungsprozess aus. Beispielsweise werden die Knoten im Thread 1 in der 3 Schritten 1 bis 4 zugeordnet, und die Knoten im Thread 2 werden den Schritten 1 und 2 zugeordnet, wodurch ein Zeitplan erhalten wird, wie er in der 4 dargestellt ist.
  • Ferner ordnet der Zuordnungsabschnitt 8 Schaltungselemente, wie Berechnungseinheiten und Register, den Knoten zu. Zur Zuordnung der Berechnungseinheiten wird, wie es in der 5 dargestellt ist, "Senden" oder "Empfangen (rcv)" den "Kommunikationssteuerleitungsports" oder den Datenleitungsports "rtx", "rrx", "wtx" und "wrx" zugeordnet, während Addition "+", Subtraktion "–" und Multiplikation "x" einem Addierer "ADD", einem Subtrahierer "SUB" und einem Multiplizierer "MULT" zugeordnet werden.
  • Zur Zuordnung der Register werden Zweige über die jeweiligen Schritte hinweg Registern "regx" bis "regz" und "ragA" zugeordnet, was zu Zuordnungen führt, wie sie in der 6 dargestellt sind.
  • Ferner erzeugt der Datenpfaderzeugungsabschnitt 9 Datenbusse (Datenpfade). Auf Grundlage der in den 5 und 6 dargestellten Prozesse werden Datenbusse erzeugt, wie sie in der 7 mit dicken Linien dargestellt sind.
  • Ferner erzeugt der Steuerungsmechanismus-Erzeugungsabschnitt 10 Steuerungsleitungen zum Steuern eines Steuerungsmechanismus "CTRL1", eines Steuerungsmechanismus "CTRL2", Kommunikation sowie Registern "regx" bis "regz" und "rage".
  • Fernre erzeugt der Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt 11, der ein charakteristischer Teil der Erfindung ist, die Niederer-Energieverbrauch-Schaltung 11A und 11B, wie sie in den 9A und 9B dargestellt sind. Hierbei ist angenommen, dass an die Threads 1 und 2 gelieferte Taktsignale durch ein Verfahren mit geschaltetem Taktsignal gesteuert werden, bei dem ein einer ODER-Logik entsprechendes Gatter als Torschaltungselement für ein Taktsignal verwendet wird. Auf Grundlage von Kanalinformation, wie sie durch den Threadunterteilungsabschnitt entnommen wird, auf den jeder Thread 1 und 2 zugreift, werden die folgenden Prozesse (1) bis (3) ausgeführt:
    • (1) für einen Lesekanal "rch" wird unter Verwendung einer Kommunikationssteuerungsleitung "rrx_rch" und einer Steuerungsleitung n"rtx_rch" die folgende Logik wait_rch ≤ rrx_rch AND(not rtx_rch)erzeugt;
    • (2) für einen Schreibkanal "wch" wird unter Verwendung einer Kommunikationssteuerungsleitung "wtx_rch" und einer Steuerungsleitung "wrx_rch" die folgende Logik wait_wch ≤ wtx_rch AND(not wrx_wch)erzeugt;
    • (3) aus den erzeugten Logikwerten und dem Taktsignal "clk" wird das geschaltete Taktsignal "gclk" erzeugt. Hierbei wird, wenn ein Thread mehrere Lesekanäle und/oder Schreibkanäle enthält, die logische ODER-Verknüpfung von "wait_rch" und/oder "wait_wch", entsprechend jedem Kanal, berechnet. glck ≤ clk OR (wait_rch oder wait_wch);gemäß der 2B (Tabelle 1) werden die in der 9 dargestellten Schaltungen 11A und 11B zum Erzeugen geschalteter Taktsignale erzeugt.
  • Abschließend verbindet der Beschreibungserzeugungsabschnitt 12 für eine Schaltung auf RT-Level Teilschaltungen in den Threads 1 und 2 sowie die Niederer-Energieverbrauch-Schaltungen 11A und 11B miteinander, was zu einer Schaltung auf RT-Level führt, wie sie in der 10 dargestellt ist.
  • Die 14 zeigt ein beispielhaftes Timingdiagramm für die Schaltung auf RT-Level gemäß der 10.
  • In diesem Fall ist eine Operation des Threads 1 die folgende.
  • Wie es in der 14 dargestellt ist, versucht der Thread 1 als erstes, Daten von einem synchronen Kanal I in einem Taktzyklus c1 zu empfangen (rrx_i ist auf "HOCH" gesetzt), da jedoch keine Daten nach außen gesendet werden, wartet der Thread 1 bis zu einem Taktzyklus c6.
  • Als nächstes empfängt der Thread 1 im Taktzyklus c6 Daten x1 vom synchronen Kanal i.
  • In einem Taktzyklus c7 empfängt der Thread 1 Daten y1 vom synchronen Kanal i, um eine Berechnung auszuführen.
  • In einem Taktzyklus c8 wird das Ergebnis x1 der Berechnung an einen synchronen Kanal ch geliefert. Diese Daten werden vom Thread 2 empfangen, und unmittelbar danach wird die Kommunikation beendet.
  • Im Taktzyklus c9 wird erneut eine Empfangsanforderung an den synchronen Kanal i gesendet.
  • In einem Taktzyklus c11 empfängt der Thread 1 Daten x2 vom synchronen Kanal i.
  • In einem Taktzyklus c12 empfängt der Thread 1 Daten y2 vom synchronen Kanal i, um eine Berechnung auszuführen.
  • In einem Taktzyklus c13 wird das Ergebnis z2 der Berechnung an den synchronen Kanal ch geliefert und durch den Thread 2 empfangen.
  • In einem Taktzyklus c14 wird eine Empfangsanforderung zur Außenseite der Schaltung geliefert.
  • Eine Operation des Threads 2 ist die folgende.
  • Als erstes gibt der Thread 2, im Taktzyklus c1, eine Empfangsanforderung an einen synchronen Kanal ch aus, und er wartet, bis der Thread 1 im Taktzyklus c9 Daten sendet.
  • Als nächstes empfängt der Thread 2 im Taktzyklus c9 Daten z1 vom synchronen Kanal ch, und er liefert die Daten an einen synchronen Kanal 0.
  • Im Taktzyklus c12 wird der Sendevorgang im synchronen Kanal 0 beendet, und der Thread 2 gibt erneut eine Empfangsanforderung an den synchronen Kanal ch aus.
  • Im Taktzyklus C14 empfängt der Thread Daten z1 vom synchronen Kanal ch, und er sendet sie an den synchronen Kanal 0.
  • Wie es in der 14 dargestellt ist, treten bei einem Taktsignalverfahren, bei dem dauernd ein Taktsignal geliefert wird, in jedem der Threads 1 und 2 14 Taktsignaloperationen auf, so dass die Lastkapazität innerhalb eines durch ein Taktsignal betriebenen Schaltkreises geladen oder entladen wird und Energie verbraucht wird.
  • Jedoch sei angenommen, dass dann, wenn sich die Threads 1 und 2 bei synchroner Kommunikation in einem Wartezustand befinden, die Taktsignalversorgung gesteuert wird. Gemäß dem Beispiel sind, wenn das Verfahren mit geschaltetem Taktsignal verwendet wird, die Anzahlen von Taktsignalen (die Anzahlen der Anstiege der Taktsignale), wie sie an den Thread 1 und den Thread 2 geliefert werden, acht bzw. drei.
  • Daher sind die durch die Taktsignale für die Threads 1 und 2 verursachten Energieverbräuche entsprechend den Faktoren 8/14 bzw. 3/14 im Vergleich zu einem Verfahren verringert, bei dem dauernd ein Taktsignal geliefert wird. So wird durch das High-Level-Syntheseverfahren gemäß der Erfindung die durch Taktsignale verursachte Schaltrate um den Faktor N/T verringert, wobei T die Anzahl der Taktzyklen beim Betrieb einer Teilschaltung ist und N die Anzahl der Taktzyklen in einem Wartezustand ist.
  • Ein herkömmliches Schaltungsdesign auf RT-Level und Gatterpegel benötigt Änderungen der Designdaten, wie einer HDL-Beschreibung, einer Netzliste oder dergleichen, um das Verfahren mit geschaltetem Taktsignal zu verwenden. Demgegenüber ermöglicht es das Verfahren mit niedrigem Energieverbrauch gemäß der Erfindung, ursprüngliche Designdaten (eine Verhaltensbeschreibung) ohne jede Änderung zu verwenden, wodurch eine Periode zum Entwerfen eines niedrigen Energieverbrauchs beseitigt wird.
  • Es sei darauf hingewiesen, dass es zwar beim oben beschriebenen Beispiel nicht speziell angegeben ist, dass jedoch anschließend eine Logikschaltungskonfiguration automatisch als Designdaten durch das High-Level-Syntheseverfahren unter Verwendung der High-Level-Synthesevorrichtung gemäß der Erfindung aus einer Verhaltensbeschreibung konstruiert wird. Der Energieverbrauch der erzeugten Logikschaltung selbst kann durch eine Niederer-Energieverbrauch-Schaltung gesenkt werden. Dies ist der Effekt der vorliegenden Erfindung.
  • Ferner ist es zwar beim oben beschriebenen Beispiel nicht speziell angegeben, jedoch verfügt die Hardwarekonfiguration der High-Level-Synthesevorrichtung 100 mit dem Verhaltensbeschreibungs-Analysierabschnitt 3, dem Threadunterteilungsabschnitt 4, dem CDFG-Erzeugungsabschnitt 6, dem Zeitplanungsabschnitt 7, dem Zuordnungsabschnitt 8, dem Datenpfaderzeugungsabschnitt 9, dem Steuerungsmechanismus-Erzeugungsabschnitt 10, dem Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt 11, dem Beschreibungserzeugungsabschnitt 12 für eine Schaltung auf RT-Level und dem Speicherabschnitt 13 für eine Schaltung auf RT-Level ferner über folgendes: einen Eingabeabschnitt, der von einem Benutzer dazu verwendet wird, Bedienungsinhalte einzugeben (eine Tastatur, eine Maus und dergleichen), einen Speicherabschnitt, der ein Steuerungsprogramm zum Steuern des High-Level-Syntheseverfahrens gemäß der Erfindung und die zugehörigen Daten speichert (einen RAM als Arbeitsspeicher und einen ROM als lesbares Aufzeichnungsmedium), eine Datenbank (den Verhaltensbeschreibungs-Speicherabschnitt 20 und den Speicherabschnitt 5 für Information zu synchroner Verarbeitung oder dergleichen), und einen Steuerungsabschnitt, der durch eingegebene Operationsbefehle vom Eingabeabschnitt gesteuert wird und das High-Level-Syntheseverfahren auf Grundlage des Steuerungsprogramms im ROM ausführt (CPU; zentrale Verarbeitungseinheit). Ferner verfügt die Hardwarekonfiguration der High-Level-Synthesevorrichtung 100 über einen Anzeigeabschnitt, wie ein Flüssigkristalldisplay und dergleichen, zum Anzeigen eines Anfangsschirms, eines Anleitungsschirms, eines Ausführungsergebnisses und dergleichen.
  • Ferner wird, beim oben angegebenen Beispiel, eine Niederer-Energieverbrauch-Schaltung so synthetisiert und konfiguriert, dass dann, wenn sich eine Teilschaltung (ein Thread) in einem Wartezustand befindet, der Betrieb der Teilschaltung gestoppt wird, wodurch im Ergebnis die Schaltrate α abgesenkt wird, um den Energieverbrauch zu verringern. Die Erfindung ist nicht hierauf eingeschränkt. Der Energieverbrauch P einer CMOS-Logikschaltung ist proportional zu ihrer Schaltrate α, ihrer Lastkapazität C, ihrer Betriebsspannung V2 und ihrer Betriebsfrequenz f. Daher kann alternativ, wenn sich eine Teilschaltung (Thread) in einem Wartezustand befindet, eine Niederer-Energieverbrauch-Schaltung synthetisiert werden, die die Betriebsspannung der Teilschaltung sperrt. In diesem Fall kann der Energieverbrauch gesenkt werden. Insbesondere kann eine Niederer-Energieverbrauch-Schaltung so synthetisiert und konfiguriert werden, dass dann, wenn sich eine Teilschaltung in einem Wartezustand befindet, der Spannungspegel eines an die Teilschaltung gelieferten Taktsignals gesperrt wird. In diesem Fall kann eine Niederer-Energieverbrauch-Schaltung synthetisiert werden, bei der der durch ein Taktsignal verursachte Energieverbrauch verringert werden kann.
  • Wie oben beschrieben, wird, gemäß der Erfindung, wenn sich eine Teilschaltung in einem Wartezustand befindet, der Betrieb der Teilschaltung gestoppt oder gesperrt. Daher kann die Schaltrate oder der Betriebsspannungspegel der Teilschaltung verringert werden. Ferner kann, da der Energieverbrauch einer Logikschaltung proportional zu ihrer Schaltrate oder ihrem Betriebsspannungspegel ist, eine Niederer-Energieverbrauch-Schaltung mit verringertem Energieverbrauch synthetisiert werden.
  • Ferner wird dann, wenn sich eine Teilschaltung in einem Wartezustand befindet, die Taktsignalzufuhr zur Teilschaltung gestoppt oder gesperrt. Daher kann eine Niederer-Energieverbrauch-Schaltung synthetisiert werden, bei der der durch ein Taktsignal verursachte Energieverbrauch, wie er anfällt, wenn sich die Teilschaltung in einem Wartezustand befindet, gesenkt werden kann.
  • Ferner wird dann, wenn sich eine Teilschaltung während eines Datenübertragungsvorgangs in einem Wartezustand befindet, der Betrieb der Teilschaltung gestoppt oder gesperrt. Daher kann eine Niederer-Energieverbrauch-Schaltung synthetisiert werden, bei der ihre Schaltrate oder ihr Betriebsspannungspegel verringert ist, um den Energieverbrauch zu senken.
  • Ferner kann eine Niederer-Energieverbrauch-Schaltung synthetisiert werden, bei der dann, wenn sich eine Teilschaltung in einem Wartezustand befindet, ein geschaltetes Taktsignal, gemäß dem kein Impuls erzeugt wird, dazu verwendet wird, die Teilschaltung zu betreiben, so dass der durch das Taktsignal verursachte Energieverbrauch gesenkt werden kann.
  • Ferner kann die Taktsignalzufuhr gestoppt oder gesperrt werden, wenn sich eine Teilschaltung in einem Wartezustand befindet. Daher kann eine Niederer-Energieverbrauch-Schaltung konzipiert werden, bei der der Energieverbrauch, wie er auf Grund eines Taktsignals im Wartezustand anfällt, gesenkt werden kann.
  • Ferner kann die Taktsignalzufuhr für jede Teilschaltung gestoppt oder gesperrt werden, wenn sich die Teilschaltung in einem Wartezustand befindet. Daher kann eine Niederer-Energieverbrauch-Schaltung synthetisiert werden, bei der der durch ein Taktsignal verursachte Energieverbrauch, wie er anfällt, wenn sich jede Teilschaltung in einem Wartezustand befindet.
  • Ferner kann eine Logikschaltung mit einer Niederer-Energieverbrauch-Schaltung erhalten werden, wenn ein High-Level-Syntheseverfahren zum Erzeugen einer Niederer-Energieverbrauch-Schaltung, bei der die Energie verringert ist, wie sie nutzlos verbraucht wird, wenn sich eine Teilschaltung in einem Wartezustand befindet, zum Konzipieren einer Logikschaltung verwendet wird und die konzipierte Logikschaltung hergestellt wird.
  • Ferner kann ein auf einem Aufzeichnungsträger gespeichertes Steuerungsprogramm dazu verwendet werden, das High-Level-Syntheseverfahren für eine Niederer-Energieverbrauch-Schaltung, bei der nutzlos verbrauchte Energie gesenkt werden kann, zu realisieren.

Claims (11)

  1. High-Level-Synthesevorrichtung zum Synthetisieren einer Registertransferlevel-Logikschaltung mit einer ersten Teilschaltung (Thread 1) und einer zweiten Teilschaltung (Thread 2) aus einer Verhaltensbeschreibung, die eine Verarbeitungsoperation der Schaltung beschreibt, wobei diese Vorrichtung mit Folgendem versehen ist: einem Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt zum Erzeugen einer Niederer-Energieverbrauch-Schaltung, die die Schaltungsoperationen der die Logikschaltung bildenden ersten und/oder zweiten Teilschaltung nur dann stoppt oder sperrt, wenn sich die erste und/oder zweite Teilschaltung in einem Wartezustand befindet, um niedrigen Energieverbrauch zu erzielen; wobei der Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt gemeinsam mit der Logikschaltung synthetisiert wird; wobei die erste Teilschaltung eine Datensenderendeschaltung aufweist und die zweite Teilschaltung eine Datenempfängerendeschaltung aufweist; die Datensenderendeschaltung und die Datenempfängerendeschaltung jeweils über einen Sendeanforderungs-Kontrollleitungsport (wtx, rtx), einen Empfangsanforderungs-Kontrollleitungsport (wrx, rrx) und einen Datenleitungsport (wdata, rdata) verfügen; wobei der Sendeanforderungs-Kontrollleitungsport und der Datenleitungsport der Datenempfängerendeschaltung mit dem Sendeanforderungs-Kontrollleitungsport bzw. dem Datenleitungsport der Datensenderendeschaltung verbunden sind, um ein Sendeanforderungssignal bzw. Daten zu empfangen, wie sie am Sendeanforderungs-Kontrollleitungsport bzw. am Datenleitungsport der Datensenderendeschaltung bereitgestellt werden; und der Empfangsanforderungs-Kontrollleitungsport der Datensenderendeschaltung mit dem Empfangsanforderungs-Kontrollleitungsport der Datenempfängerendeschaltung verbunden ist, um ein Empfangsanforderungssignal zu empfangen, wie es am Empfangsanforderungs-Kontrollleitungsport der Datenempfängerendeschaltung bereitgestellt wird; wobei die Datensenderendeschaltung so konfiguriert ist, dass sie das Sendeanforderungssignal erzeugt, das anzeigt, dass sie an ihrem Datenleitungsport Daten bereitgestellt hat, und um dieses Sendeanforderungssignal als hohe Spannung an ihrem Sendeanforderungs-Kontrollleitungsport bereit zu stellen; und wobei die Datenempfängerendeschaltung so konfiguriert ist, dass sie das Empfangsanforderungssignal erzeugt, das anzeigt, dass sie dazu bereit ist, die Daten von der Datensenderendeschaltung über ihren Datenleitungsport zu empfangen, und um das Empfangsanforderungssignal als hohe Spannung an ihrem Empfangsanforderungs-Kontrollleitungsport bereit zu stellen; dadurch gekennzeichnet, dass die synthetisierte Niederer-Energieverbrauch-Schaltung so konfiguriert ist, dass sie ein Eingangssignal von den Sendeanforderungs-Kontrollleitungsports und den Empfangsanforderungs-Kontrollleitungsports der Datensenderendeschaltung und der Datenempfängerendeschaltung empfängt; dass die synthetisierte Niederer-Energieverbrauch-Schaltung so konfiguriert ist, dass sie bestimmt, dass sich die Datensenderendeschaltung in einem Wartezustand befindet, wenn eine Spannung an ihrem Sendeanforderungs-Kontrollleitungsport hoch ist und eine Spannung an ihrem Empfangsanforderungs-Kontrollleitungsport niedrig ist; dass die synthetisierte Niederer-Energieverbrauch-Schaltung so konfiguriert ist, dass sie bestimmt, dass sich die Datenempfängerendeschaltung in einem Wartezustand befindet, wenn eine Spannung an ihrem Empfangsanforderungs-Kontrollleitungsport hoch ist und eine Spannung an ihrem Sendeanforderungs-Kontrollleitungsport niedrig ist; und dass die synthetisierte Niederer-Energieverbrauch-Schaltung die Operationen der ersten Teilschaltung stoppt oder sperrt, wenn sich die Datensenderendeschaltung in einem Wartezustand befindet, und sie die Operationen der zweiten Teilschaltung stoppt oder sperrt, wenn sich die Datenempfängerendeschaltung in einem Wartezustand befindet, während eine Übertragung der Daten zwischen den Teilschaltungen erfolgt.
  2. High-Level-Synthesevorrichtung nach Anspruch 1, bei der der Niederer-Energieverbrauch-Schaltung-Erzeugungsabschnitt die Niederer-Energieverbrauch-Schaltung erzeugt, die die Taktsignallieferung an die Teilschaltungen stoppt oder sperrt, wenn sich diese im genannten Wartezustand befinden, was auf Grundlage von Synchronverarbeitungsinformation erfolgt, die aus Verhaltensbeschreibungsinformation entnommen wird, die Synchronkommunikationsinformation enthält.
  3. High-Level-Syntheseverfahren zum Synthetisieren einer Registertransferlevel-Logikschaltung mit einer ersten Teilschaltung (Thread 1) und einer zweiten Teilschaltung (Thread 2) aus einer Verhaltensbeschreibung, die eine Verarbeitungsoperation der Schaltung beschreibt, wobei dieses Verfahren den folgenden Schritt aufweist: Synthetisieren gemeinsam mit der Logikschaltung, einer Niederer-Energieverbrauch-Schaltung, die die Schaltungsoperationen der die Logikschaltung bildenden ersten und/oder zweiten Teilschaltung nur dann stoppt oder sperrt, wenn sich die erste und/oder zweite Teilschaltung in einem Wartezustand befindet, um niedrigen Energieverbrauch zu erzielen; wobei die erste Teilschaltung eine Datensenderendeschaltung aufweist und die zweite Teilschaltung eine Datenempfängerendeschaltung aufweist; die Datensenderendeschaltung und die Datenempfängerendeschaltung jeweils über einen Sendeanforderungs-Kontrollleitungsport (wtx, rtx), einen Empfangsanforderungs-Kontrollleitungsport (wrx, rrx) und einen Datenleitungsport (wdata, rdata) verfügen; wobei der Sendeanforderungs-Kontrollleitungsport und der Datenleitungsport der Datenempfängerendeschaltung mit dem Sendeanforderungs-Kontrollleitungsport bzw. dem Datenleitungsport der Datensenderendeschaltung verbunden sind, um ein Sendeanforderungssignal bzw. Daten zu empfangen, wie sie am Sendeanforderungs-Kontrollleitungsport bzw. am Datenleitungsport der Datensenderendeschaltung bereitgestellt werden; und der Empfangsanforderungs-Kontrollleitungsport der Datensenderendeschaltung mit dem Empfangsanforderungs-Kontrollleitungsport der Datenempfängerendeschaltung verbunden ist, um ein Empfangsanforderungssignal zu empfangen, wie es am Empfangsanforderungs-Kontrollleitungsport der Datenempfängerendeschaltung bereitgestellt wird; wobei die Datensenderendeschaltung so konfiguriert ist, dass sie das Sendeanforderungssignal erzeugt, das anzeigt, dass sie an ihrem Datenleitungsport Daten bereitgestellt hat, und um dieses Sendeanforderungssignal als hohe Spannung an ihrem Sendeanforderungs-Kontrollleitungsport bereit zu stellen; und wobei die Datenempfängerendeschaltung so konfiguriert ist, dass sie das Empfangsanforderungssignal erzeugt, das anzeigt, dass sie dazu bereit ist, die Daten von der Datensenderendeschaltung über ihren Datenleitungsport zu empfangen, und um das Empfangsanforderungssignal als hohe Spannung an ihrem Empfangsanforderungs-Kontrollleitungsport bereit zu stellen; dadurch gekennzeichnet, dass die synthetisierte Niederer-Energieverbrauch-Schaltung so konfiguriert ist, dass sie ein Eingangssignal von den Sendeanforderungs-Kontrollleitungsports und den Empfangsanforderungs-Kontrollleitungsports der Datensenderendeschaltung und der Datenempfängerendeschaltung empfängt; dass die synthetisierte Niederer-Energieverbrauch-Schaltung so konfiguriert ist, dass sie bestimmt, dass sich die Datensenderendeschaltung in einem Wartezustand befindet, wenn eine Spannung an ihrem Sendeanforderungs-Kontrollleitungsport hoch ist und eine Spannung an ihrem Empfangsanforderungs-Kontrollleitungsport niedrig ist; dass die synthetisierte Niederer-Energieverbrauch-Schaltung so konfiguriert ist, dass sie bestimmt, dass sich die Datenempfängerendeschaltung in einem Wartezustand befindet, wenn eine Spannung an ihrem Empfangsanforderungs-Kontrollleitungsport hoch ist und eine Spannung an ihrem Sendeanforderungs-Kontrollleitungsport niedrig ist; und dass die synthetisierte Niederer-Energieverbrauch-Schaltung die Operationen der ersten Teilschaltung stoppt oder sperrt, wenn sich die Datensenderendeschaltung in einem Wartezustand befindet, und sie die Operationen der zweiten Teilschaltung stoppt oder sperrt, wenn sich die Datenempfängerendeschaltung in einem Wartezustand befindet, während eine Übertragung der Daten zwischen den Teilschaltungen erfolgt.
  4. High-Level-Syntheseverfahren nach Anspruch 3, bei dem die synthetisierte Niederer-Energieverbrauch-Schaltung die Operationen der Teilschaltungen dadurch stoppt oder sperrt, dass sie die Taktsignallieferung (clk) an die Teilschaltungen stoppt oder verringert.
  5. High-Level-Syntheseverfahren nach Anspruch 3 oder Anspruch 4, bei dem die synthetisierte Niederer-Energieverbrauch-Schaltung die Taktsignallieferung unter Verwendung eines den Wartezustand anzeigenden Signals (g1, g2) steuert.
  6. High-Level-Syntheseverfahren nach Anspruch 3 oder Anspruch 4, bei dem die synthetisierte Niederer-Energieverbrauch-Schaltung unter Verwendung des Sendeanforderungssignals und des Empfangsanforderungssignals ein Signal (g1, g2) erzeugt, das den Wartezustand der Teilschaltungen anzeigt, und sie die Teilschaltungen unter Verwendung eines geschalteten Taktsignals (gclk1, gclk2) ansteuert, die unter Verwendung des den Wartezustand der Teilschaltungen anzeigenden Signals erzeugt wird, um niedrigen Energieverbrauch zu erzielen.
  7. High-Level-Syntheseverfahren nach Anspruch 3 oder Anspruch 4, bei dem der Synthetisierschritt auf Grundlage von Synchronverarbeitungsinformation ausgeführt wird, die aus Synchronkommunikationsinformation enthaltender Verhaltensbeschreibungsinformation entnommen wird, und die synthetisierte Niede rer-Energieverbrauch-Schaltung die Operationen der Teilschaltungen durch Stoppen oder Sperren der Taktsignallieferung (clk) an die Teilschaltungen stoppt oder sperrt.
  8. High-Level-Syntheseverfahren nach Anspruch 7, ferner mit den folgenden Schritten: Erzeugen eines Signals (g1, g2) auf Grundlage von Synchronverarbeitungsinformation, die aus die Synchronkommunikationsinformation enthaltender Verhaltensbeschreibungsinformation entnommen wird, eines Signals (g1, g2) für jede Teilschaltung, das anzeigt, dass sich diese Teilschaltung in einem Wartezustand befindet; und Erzeugen eines geschalteten Taktsignals (gclk1, gclk2) für jede Teilschaltung unter Verwendung des Signals; wobei die synthetisierte Niederer-Energieverbrauch-Schaltung die Teilschaltungen unter Verwendung des erzeugten geschalteten Taktsignals ansteuert und die Ausgabe des an die Teilschaltungen gelieferten geschalteten Taktsignals stoppt, wenn sich die Teilschaltungen in einem Wartezustand befinden.
  9. Verfahren zum Herstellen einer Logikschaltung, bei dem ein High-Level-Syntheseverfahren gemäß dem Anspruch 3 zum Entwerfen der Logikschaltung verwendet wird.
  10. Computer lesbarer Aufzeichnungsträger mit einem Steuerungsprogramm zum Ausführen eines High-Level-Syntheseverfahrens gemäß dem Anspruch 3.
  11. Computerprogramm mit einer Programmcodeeinrichtung zum Ausführen aller Schritte des High-Level-Syntheseverfahrens gemäß einem der Ansprüche 3 bis 8, wenn das Programm auf einem Computer abgearbeitet wird.
DE60221462T 2001-06-11 2002-06-06 Vorrichtung und Verfahren zur High-Level-Synthese, Verfahren zur Produktion von logischen Schaltungen unter Verwendung des Verfahrens zur High-Level-Synthese,und Aufzeichnungsmedium Expired - Lifetime DE60221462T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001176375A JP2002366596A (ja) 2001-06-11 2001-06-11 高位合成装置および高位合成方法、高位合成方法による論理回路の製造方法、記録媒体
JP2001176375 2001-06-11

Publications (2)

Publication Number Publication Date
DE60221462D1 DE60221462D1 (de) 2007-09-13
DE60221462T2 true DE60221462T2 (de) 2008-04-17

Family

ID=19017371

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60221462T Expired - Lifetime DE60221462T2 (de) 2001-06-11 2002-06-06 Vorrichtung und Verfahren zur High-Level-Synthese, Verfahren zur Produktion von logischen Schaltungen unter Verwendung des Verfahrens zur High-Level-Synthese,und Aufzeichnungsmedium

Country Status (4)

Country Link
US (1) US6832363B2 (de)
EP (1) EP1267287B1 (de)
JP (1) JP2002366596A (de)
DE (1) DE60221462T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0215034D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Architecture generation method
US7107568B2 (en) * 2002-10-07 2006-09-12 Hewlett-Packard Development Company, Lp. System and method for reducing wire delay or congestion during synthesis of hardware solvers
US7770179B1 (en) 2004-01-30 2010-08-03 Xilinx, Inc. Method and apparatus for multithreading on a programmable logic device
US7823162B1 (en) * 2004-01-30 2010-10-26 Xilinx, Inc. Thread circuits and a broadcast channel in programmable logic
US7552042B1 (en) 2004-01-30 2009-06-23 Xilinx, Inc. Method for message processing on a programmable logic device
JP2006155533A (ja) * 2004-12-01 2006-06-15 Matsushita Electric Ind Co Ltd 回路情報生成装置および回路情報生成方法
US7310785B2 (en) * 2004-12-10 2007-12-18 Micronas Usa, Inc. Video processing architecture definition by function graph methodology
US20060236278A1 (en) * 2005-04-19 2006-10-19 International Business Machines Corporation Method of automatic generation of micro clock gating for reducing power consumption
JP4396987B2 (ja) 2006-02-08 2010-01-13 シャープ株式会社 動作合成装置および動作合成方法、ディジタル回路の製造方法、動作合成制御プログラム、可読記録媒体
JP5023652B2 (ja) 2006-10-17 2012-09-12 日本電気株式会社 回路生成システム、回路生成方法及び回路生成プログラム
JP4891807B2 (ja) * 2007-02-28 2012-03-07 パナソニック株式会社 高位合成装置および高位合成方法
US7669166B1 (en) * 2007-06-14 2010-02-23 Xilinx, Inc. Generation of a specification of a processor of network packets
JP2009157440A (ja) * 2007-12-25 2009-07-16 Toshiba Corp 高位合成装置、高位合成システム、及び高位合成方法
JP5056573B2 (ja) * 2008-05-09 2012-10-24 富士通株式会社 設計支援プログラム、設計支援装置、および設計支援方法
WO2012120760A1 (ja) * 2011-03-09 2012-09-13 ルネサスエレクトロニクス株式会社 半導体装置
US9619601B1 (en) * 2015-01-22 2017-04-11 Xilinx, Inc. Control and data flow graph generation for hardware description languages
WO2017119123A1 (ja) 2016-01-08 2017-07-13 三菱電機株式会社 プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム
US10628284B2 (en) * 2017-04-24 2020-04-21 Tektronix, Inc. System and method for bitstream decoding with compiler-generated syntax trees
US11668750B2 (en) * 2021-09-17 2023-06-06 Nvidia Corporation Performing testing utilizing staggered clocks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL78542A0 (en) * 1986-04-18 1986-08-31 Yeda Res & Dev Electronic controller based on the use of statecharts as an abstract model
US5935253A (en) * 1991-10-17 1999-08-10 Intel Corporation Method and apparatus for powering down an integrated circuit having a core that operates at a speed greater than the bus frequency
DE4213504C1 (de) * 1992-04-24 1993-06-24 Micronas Intermetall Gmbh
US5686767A (en) * 1994-12-29 1997-11-11 Thomson Consumer Electronics, Inc. Apportioning minimal standby power
GB2317245A (en) 1996-09-12 1998-03-18 Sharp Kk Re-timing compiler integrated circuit design
JPH10187786A (ja) * 1996-12-26 1998-07-21 Ricoh Co Ltd Lsi設計支援装置
US6195786B1 (en) * 1997-12-23 2001-02-27 Nec Usa, Inc. Constrained register sharing technique for low power VLSI design

Also Published As

Publication number Publication date
EP1267287A3 (de) 2003-12-17
JP2002366596A (ja) 2002-12-20
DE60221462D1 (de) 2007-09-13
US20020188923A1 (en) 2002-12-12
EP1267287A2 (de) 2002-12-18
EP1267287B1 (de) 2007-08-01
US6832363B2 (en) 2004-12-14

Similar Documents

Publication Publication Date Title
DE60221462T2 (de) Vorrichtung und Verfahren zur High-Level-Synthese, Verfahren zur Produktion von logischen Schaltungen unter Verwendung des Verfahrens zur High-Level-Synthese,und Aufzeichnungsmedium
DE69817581T2 (de) System und verfahren zum umwandeln von graphischen programmen in hardware-implementierungen
DE60220471T2 (de) Einrichtung und Verfahren zum Entwurf von logischen Schaltungen mit reduziertem Leckstrom
DE19824796B4 (de) Verfahren und Vorrichtung zur Leistungsoptimierung der Registerübertragungsebene, insbesondere mit einer Störimpuls-Analyse und -Reduktion
DE3900750A1 (de) Wissensbasis - verfahren - vorrichtung zum entwerfen integrierter schaltungen mittels funktionaler spezifikationen
DE19860062A1 (de) Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI
EP2765528B1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE102005044533A1 (de) Aufgabenplanungsverfahren für geringe Leistungsableitung in einem Systemchip
DE69634227T2 (de) Emulationssystem mit emulierten Mehrtaktzyklen pro Emulation-Taktzyklus und Signalweglenkung
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
DE19815534A1 (de) Verfahren und System zum Entwurf und zur Simulation digitaler Rechner-Hardware
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
WO1992018944A1 (de) Verfahren zur verifikation datenverarbeitender systeme
DE102022106423A1 (de) Verfahren zur Aufteilung von Simulationsmodellen zwischen einem Prozessor und einem FPGA
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
DE19530669A1 (de) Verfahren zum automatischen Auswählen eines taktsteuernden Signalpfads in umprogrammierbaren Systemen zur Hardware-Emulation
DE102011103861A1 (de) Funktionseinheit, Simulationssystem und Verfahren zur Simulation
DE60005830T2 (de) Verfahren und vorrichtung zum steuern eines sprungverzögerungsschlitzes in einem pipelineprozessor
DE69910172T2 (de) Schaltkreis mit pseudo-mehrport-speicher
Hashmi et al. Design and use of a system-level specification and verification methodology
AT501880B1 (de) Speicherprogrammierbare steuerung
DE4410731A1 (de) Logiksimulator
DE102020111259A1 (de) On-chip-ausführung eines in-system-tests unter verwendung eines verallgemeinerten testbildes
DE60003847T2 (de) Universelle vorrichtung sowie verfahren und werkzeuge zu ihrer verwendung
EP3142032B1 (de) Verfahren zum ändern der konfiguration eines programmierbaren logikbausteins

Legal Events

Date Code Title Description
8364 No opposition during term of opposition