Forum: FPGA, VHDL & Co. I/O Constraints Intel


von Max M. (fpga_eth)


Lesenswert?

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

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

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
von Max M. (fpga_eth)


Lesenswert?

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
Noch kein Account? Hier anmelden.