SPI Constraints

OP #7024290
Lesenswert?

Hallo zusammen!

Aktuell versuche ich einen SPI-Master über LVDS (lange Leitung am 
Ausgang) mit mehreren Slaves zum laufen zu bekommen. Meine Frage hierbei 
wäre: Wie muss ich das SCLK, MOSI, MISO, CS Constrainen? In meinen Augen 
ist das SCLK ja nur ein "Ausgangssignal" und bedarf daher keiner 
Speziellen Routing Ressourcen. Auf der Anderen Seite ist es ja im 
Prinzip dennoch ein Takt, da ja bei SPI mit "dem gleichem" Takt 
eingelesen bzw. rausgeschrieben wird. Das Design Funktioniert soweit auf 
der Hardware nur gibt es eben Warnings für Input/Output Delay und eine 
Warning, dass man noch "generated clocks" Constrainen muss. Wie würde 
ich denn die Delays wählen? Im Datenblatt meiner Chips wird das Timing 
für SPI dargestellt, der Constraint Wizzard von Vivado nimmt jedoch den 
Systemtakt und nicht den SCLK als Referenz an.
Moderator (Firma: Titel) Persönliche Seite #7024307
Lesenswert?

Ole W. schrieb:
> dass man noch "generated clocks" Constrainen muss.
Das muss man nur, wenn man

Ole W. schrieb:
> Aktuell versuche ich einen SPI-Master über LVDS (lange Leitung am
> Ausgang) mit mehreren Slaves zum laufen zu bekommen.
Welche SCLK Frequenz hast du geplant?

> LVDS (lange Leitung am Ausgang)
Wie lang ist die Leitung? Wie sind die Slaves angeschlossen? Wie sieht 
die Terminierung aus?
OP #7024316
Lesenswert?

Lothar M. schrieb:
> Welche SCLK Frequenz hast du geplant?

10 MHz.

Lothar M. schrieb:
> Wie lang ist die Leitung? Wie sind die Slaves angeschlossen? Wie sieht
> die Terminierung aus?

Aktuell N- Slaves. Leitungslänge incl. PCB-Trace 20-30cm. (Multiboard 
Projekt). Nach der Theorie für Wellenausbreitung/Leitungstheorie ist das 
wohl alles noch in Ordnung aber durch die Steilen Flanken hatte ich da 
bedenken. Und durch die Verwendung von LVDS minimiere ich gleichzeitig 
die Störungen von außen. LVDS wird durch einen Buffer vom FPGA(Artix 7) 
auf der einen Seite und dedizierten LVDS Empfängern auf der anderen 
Seite realisiert. Terminiert ist meine ich mit 100 Ohm, Nagel mich aber 
nicht drauf fest hab das Design nicht zur Hand grade.
Gast #7024731
Lesenswert?

Gibt es denn Slaves, die LVDS-SPI-Inputs haben oder ist da noch ein 
Buffer dazwischen?

Da bei mir das FPGA (fast) immer der SPI-Master ist und alle SPI-Signale 
taktsynchron erzeugt werden, konnte ich bisher auf Constraints 
verzichten.
Was ich gelegentlich in der Testbench in einem SPI-Slave-Modell prüfe, 
sind setup-/hold-Zeiten und die SPI-Taktfrequenzen.

Duke
Gast #7054902
Lesenswert?

Zum Constrainen gibt's quasi immer dasselbe:
Clock to output delay, min und max
Setup und hold time am Input.
Klar kann man noch IO loads, clock jitter, high/low Time, CS to First 
click Edge usw. machen, aber eines nach dem anderen.

Vom Master geht's source-synchron zum Slave und danach zurück. Je nach 
Board kommen die Lesedaten von Slave ziemlich spät wieder zurück zum 
Master. Man muss also das Timing am Board rechnen und dann sieht man 
auch, was die Maximalfrequenz ist. Dazu kommt auch, dass SPI oftmals nur 
einen Halbtakt für die Lesedaten hat, z.B. rise to fall, was natürlich 
bedeutet, dass die Lesedaten in einem Halbtakt gelatcht werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren