Hallo zusammen Ich habe einige asynchrone Input Signale welche ich gerne bez. des delays constrainen möchte. Alternativ ein default constraint für alle Inputs. Also anders gesagt einen min/max delay von Pin zum ersten Sync register. Nun ist es so, dass dies bei Quartus mit "set_input_delay -clock" in referenz zu einem Clk erfolgen muss. Das Problem dabei ist, dass ich einige Signale (z.B. SPI) mit 400MHz oversample. Eine referenzierung der langsamen CMOS I/O zu diesem CLK zerstört erwartungsgemäss das Timing. (Ist auch nicht so gewollt). Einen Delay Pin->Register von 0- ca. 10ns sollte ausreichend sein (sind aber bereits 4 clk Perioden des Registerclk). Folgende Frage: 1. Wie constraint Ihr die Signale Pin -> 1. Sync FF? 2. Wie das gleiche mit dem Output wenn Sysclk > Geschwindigkeit I/O standart
Hm, kein vollständiges Wissen über SDF/SDC syntax vorhanden? man muß lediglich anfang und endpunkt des Pfades passend definieren https://www.intel.com/content/www/us/en/docs/programmable/683068/18-1/using-timing-constraints.html Beispiel:
1 | set_net_delay -from reg_a -to reg_c -max 20 |
> Alternativ ein default constraint für alle Inputs. Also falls man den kleinsten/optimalen Pfad von Pad zum ersten FF vorgeben will, verlangt das i.d.R. das man das FF in der IO-Padzelle nutzt. Das erreicht man eher über map(placer)-constraints und checkt dann im io-report ob in der Spalte Pad-FF? yes steht (o.ä.) . Eventuell muss man doch einen IP-Block für das IO nehmen: https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://cdrdv2-public.intel.com/705299/ug-altera-gpio-16.1-683136-705299.pdf Ansonsten tatsächlich mal ne Schulung bzgl timing und constraints durcharbeiten. * https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://cdrdv2-public.intel.com/669829/an584-683145-669829.pdf * https://www.intel.com/content/www/us/en/docs/programmable/813669/24-2-5-0-0/timing-constraints.html
:
Bearbeitet durch User
Bradward B. schrieb: > Hm, kein vollständiges Wissen über SDF/SDC syntax vorhanden? Nein, leider nicht, naja Async. Inputs hatte ich bisher immer angenommen, dass wenn er die Sync chain als solche entdeckt er automatisch immer das erste FF in der I/O Zelle nutzt. Habe ich erst kürzlich im Chiplan entdeckt dass dem nicht so ist (!?!). Noch schlimmer er scheint random im ganzen chip verteilt das erste FF zu platzieren - daher meine Erkentnis der Notwendigkeit dies zu constrainen. Bradward B. schrieb: > man muß lediglich anfang und endpunkt des Pfades passend definieren Ok, naja geht dies irgendwie automatisch mit TCL? Oder muss Manuell für jedes I/O aus dem RTL Viewever der Name des PIN sowie destination das erste dazugehörige FF entnommen werden? Oder noch besser generell automatisch, Quartus erkennt ja dass es sync chains sind- daher besteht evtl die möglichkeit auf diese zu constrainen? Bradward B. schrieb: > Also falls man den kleinsten/optimalen Pfad von Pad zum ersten FF > vorgeben will, verlangt das i.d.R. das man das FF in der IO-Padzelle > nutzt. Das erreicht man eher über map(placer)-constraints und checkt > dann im io-report ob in der Spalte Pad-FF? yes steht (o.ä.) . Genau. Ja das ist eigentlich die offensichtlich ideale Wahl der FF Platzierung. Oder zumindest in dessen Nähe- nicht random über den ganzen Chip verteilt. Ist wie gesagt aktuell nicht der Fall. Bradward B. schrieb: > Eventuell muss man doch einen IP-Block für das IO nehmen: Ok ja, shade, naja das ist evtl etwas overkill. Dann besser noch mit manuell aus RTL Viewer Netznamen raussuchen und ins SDC schreiben.
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.