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.
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?
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.
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
Duke Scarring schrieb: > Gibt es denn Slaves, die LVDS-SPI-Inputs haben oder ist da noch ein > Buffer dazwischen? Da habe ich externe DS90LT012AH (oder so ähnliche) LVDS Reciever eingebaut.
Duke Scarring schrieb: > Was ich gelegentlich in der Testbench in einem SPI-Slave-Modell prüfe, > sind setup-/hold-Zeiten die des (langsamen) slaves nehme ich an ... weil im FPGA braucht es eigentlich nur korrekte IO Constraints
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.
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.