Hallo,
Ist die Signalgeschwindigkeit nur durch die Logik begrenzt oder sind
auch die geometrische Längen der Verbindungen im Chip relevant?
Sind Kreuzungen von Signalen teuer?
Muss man also, wenn man ein effizientes Ergebnis möchte, bei der
Architektur der Hardware berücksichtigen, dass ein Chip 2 Dimensional
ist oder kann man alles den Synthesetools überlassen?
Danke schonmal
FPGA, VHDL und Co. umfasst auch ASICs, deine Frage ist also relativ
allgemein. ;)
Aber auch im FPGA spielt die Leitungslänge eine Rolle. Dafür haben die
Entwicklungswerkzeuge Platzierungsmöglichkeiten (Area Constraints), die
großen Einfluss auf die erreichbare Maximalfrequenz haben können.
Ich denke aber, dass das weniger an der Laufzeit des Signals über die
Leitung liegt, sondern an den umzuladenden Kapazitäten bei längerer
Leitung.
derjenige schrieb:> oder sind> auch die geometrische Längen der Verbindungen im Chip relevant?
Klare Antwort: Ja. Die Schaltgeschwindigkeit eines Gatters setzt sich
zusammen aus dem Ausgangswiderstand eines Gatters (R) und der
Eingangskapazität der Transistoren im (in den) Folgegatter(n). Zu dem
RC-Delay kommt das RC-Delay durch die Verdrahtung dazu. Der größere
Anteil ist aber das Delay durch die Gatter selbst.
Das Problem kann mit Gattern mit stärkeren Ausgangstreibern (kleinerer
Ausgangswiderstand) vermindert werden.
derjenige schrieb:> Sind Kreuzungen von Signalen teuer?
Nein. Verhält sich wie im Leiterplatten-Design. Es gibt X Metalllagen.
Die dürfen voll genutzt werden. Digitale Signale werden idR vom
Autorouter verlegt. Power-Netze müssen speziell behandelt werden,
verlegen die meisten Autorouter aber auch gleich mit.
Auf Chip läuft alles mit CMOS-Digital-Signalen. Da ist alles ein
Standard und dadurch für die Tools entsprechend einfach zu verarbeiten.
Für Signale, die aus dem Chip raus getrieben werden müssen, gibt es dann
passende Pad-Zellen mit starken Ausgangstreibern oder zum Beispiel
Eingangs-Pad-Zellen mit Schmitt-Trigger, oder LVDS-Pad-Zellen, oder ...
Auch im Analogen sind Kreuzungen selten ein Problem, eher parallel oder
übereinander liegende Leitbahnen.
Bei HF wird Impedanz-Matching auch auf Chip-Ebene nötig.
derjenige schrieb:> Muss man also, wenn man ein effizientes Ergebnis möchte, bei der> Architektur der Hardware berücksichtigen, dass ein Chip 2 Dimensional> ist oder kann man alles den Synthesetools überlassen?
Über die 2-Dimensionalität braucht sich der Designer keine Gedanken
machen. Darum kümmert sich das Synthesetool. Gute Synthesetools sind
auch in der Lage, bei Bedarf Gatter mit stärkeren Treibern einzusetzen,
Clock-Trees zu bauen, usw. Dazu muss der Designer aber auch die
passenden Vorgaben machen und die Tools richtig nutzen. In der Theorie
läuft das automatisch, in der Praxis manchmal nicht ganz so reibungslos.
Die Synthesetools beachten nicht die Verdrahtung. Nach dem Routing
können deswegen alle nennenswerten Tools eine PEX (Parasitics
Extraction) machen. Daraus können verfeinerte Timing-Informationen
generiert werden, die wiederum in ein SDF-File (Standard-Delay-Format)
münden. Mit dem kann z.B. mit modelsim eine sehr realitätsnahe
Simulation durchgeführt werden.
Ein schnelles Design ist oft weniger eine Frage der Synthese, sondern
des Designs. Die max. Taktfrequenz ist durch den längsten
kombinatorischen Pfad zwischen zwei FlipFlops vorgegeben. Der Designer
kann bei Bedarf die Pfade verkürzen durch zusätzliche FlipFlops oder
optimierte Logik.
derjenige schrieb:> Muss man also, wenn man ein effizientes Ergebnis möchte, bei der> Architektur der Hardware berücksichtigen, dass ein Chip 2 Dimensional> ist oder kann man alles den Synthesetools überlassen?
Ja, ein Designer sollte schon wissen, wieviel Logic er in einem logic
level/LUT unterbringt und ab wann das nächste CLB in den kritischen Pfad
kommt.
Dann kommt er vielleicht selbst dahinter warum seine FSM mit 16 states
soviel schneller taktet als eine mit 17 states. Oder ein 32bit
PRN-counter schneller countet als ein 0-8-15 binary counter.
Und nein, die Entscheidung, wieviel states für eine FSM optimal sind und
ob Arithmetics besser als PRN, gray, binary oder SRL implementiert ist,
nimmt kein Synthesetool dem Designer ab.
Vielen Dank für die Antworten, sehr interessant.
Es ist also ähnlich wie bei normalen sequenziellen Programmen; der
Compiler nimmt einem zwar viel Arbeit ab, aber man muss verstehen, was
der Compiler macht und wie sich Caches, Syscalls usw verhalten und bei
Bedarf auch einzelne Register in der Implementation zuordnen können um
zu sehen, wie die Hardware genau aussieht,die die Tools ausspucken.
Noch ein paar Sachen als Nachtrag: Die Synthese und Place&Route
unterscheiden sich geringfügig, ob die Zielhardware ein FPGA oder ein
FullCustom ASIC im Standardzellenentwurf ist. Ich sprach von ASIC, die
anderen eher von FPGA.
Das erste Problem der Synthese ist, aus der Beschreibung herauszulesen,
was der Designer erreichen möchte. Damit das reibungslos funktioniert,
schreibt das Synthesetool mitunter enge Regeln vor, wie die Beschreibung
aussehen muss.
Als Beispiel die Dokumentation zu Quartus:
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/qts/qts_qii5v1.pdf
In Kapitel 12 findest du Empfehlungen, wie die Beschreibung aussehen
soll, um zum Beispiel den Block-RAM aus dem FPGA zu nutzen, und nicht
RAM aus den Logikblöcken zu bauen. Oder den Mutiplier-Block zu nutzen,
und keinen Multiplizierer aus Gattern aufzubauen.
Häufig läuft es darauf hinaus, dass der Digital-Designer sich überlegt,
wie die Logik prinzipiell aussehen soll. (State-Machines,
kombinatorische Logik, Register, Multiplier, Speicher, ...) und diese
dann mit der entsprechenden Syntax beschreibt. Damit ist in gewissen
Grenzen schon vorher klar, was das Synthesetool daraus generieren wird.
Der Vergleich mit dem nötigen Wissen über Compiler und deren Umsetzung
von Interrupts, Timer-Nutzung, Schleifen usw. ist daher gar nicht so
schlecht.
Edit: Hier sind noch ein paar Beispiele:
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/qts/qts_qii51007.pdf
(zum Beispiel Kapitel 13 für einfache FlipFlops)
derjenige schrieb:> Ist die Signalgeschwindigkeit nur durch die Logik begrenzt oder sind> auch die geometrische Längen der Verbindungen im Chip relevant?
Die Geometrien SIND die Logik und Längen sind ausschlaggebend für die
Schaltzeit / Laufzeit.