Hallo, im rahmen meiner Diplomarbeit designe ich einen Mixed Signal chip. Da der Digitalteil relativ überschaubar ist, habe ich mit diesem begonnen. Leider ist auf dem Institut defakto kein know-how über digitales desig vorhanden. Ich stehe nun ein wenig an bei der Erstellung von sdc files für die statische timing analyse (=funktioniert die syntetisierte Schaltung bei dem vorgegeben Takt). Vorallem will ich Kontrolle über die Synthese erlangen, wenn ich nur einen Takt als constraint vorgebe gibt mir das Tool eine Schaltung mit einem Slack von 7ps (bei 1Ghz) aus. Dies ist natürlich vor Place and route und ich denke da würde es zu Timing verletzungen kommen! Die Fragen sind nun: Für welche Pfade muss ich Timing vorgeben? Ist ein vorgegebener Takt ausreichend und es werden alle Register - Kombinatorik - Register Pfade überprüft? Konkret bin ich auf der Suche nach einer Quelle um es mir selbst beizubringen! Tools die ich verwende sind von Cadence (Genus für Synthese, akzeptiert aber Synopsis DC Syntax für constraint commands). Vielen Dank und liebe Grüße Alex
Das Buch "Constraining Designs for Synthesis and Timing Analysis: A Practical Guide to Synopsys Design Constraints (SDC)" finde ich nicht schlecht.
7ps müssen nicht schlecht sein. Kommt ja noch Clock Tree Synthese mit mgl useful skew. Welche Strukturgrösse ist es denn? Richtiges Constraining ist ja nur ein Bruchteil davon.
150nm LFoundry. Ok, ich verstehe was du meinst, wenn der clock auch etwas verschoben ist wegen laufzeiten wird das relativ. Wichtig sind in diesem Fall vorallem die Hold times, da der Clock eigentlich (digitale) Impulse aus dem Analogteil sind, die ich Zählen muss. Und wenn die eben seltener kommen darf ich keine Violations haben. Für setup Zeiten ist ein niedrigerer Takt ja kein Problem. Ich werd mal das Buch besorgen und mich einlesen!
Langsame Clocks sind iA kein Problem hinsichtlich setup/hold. Klingt für mich eher so, als wäre dein Konzept nochmal überdenkenswert, wenn du mit "irgendwann" kommenden Clocks "einfach so" in eine andere willst. Dafür gibt es Clock Domain Crossing Rezepte, die iA auch Umsynchronisierung beinhalten.
Einsynchronisiert muss nichts werden. Ein Synchroner Zähler zählt analoge pulse. Nach dem Zählen (clock disabled) wird der Zählerstand ausgelesen und dannach in einem anderen clockdomain weiterbearbeitet. Ich wollte damit nur sagen, das der clock kein typischer, konstanter clock ist, sonder dass er eben recht variabel ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.