Ich möchte 1024 Parameter bits von einem Prozessor in ein FPGA senden, die dann verstreut über das FPGA design benutzt werden. Während des Parameter Uploads sind die Parameter Nutzer inaktiv und werden erst gestartet wenn alles stabil ist. Die Upload Geschwindigkeit selbst spielt keine Rolle. Ich möchte eine Möglichkeit haben die Konsistenz des Upload-Mechanismusses zu prüfen. Der Prozessor ist ein Sitara 35XX der das FPGA mit einem 16 Bit Memory Interface anbindet. Momentan sind die Parameter mit 64 rücklesbaren 16 bit Registern realisiert, was aber recht viele Resourcen benötigt. Ich frage mich ob dies mit einem SIPO (mit zusätzlichem seriellem Ausgang für Konsistenstest) nicht viel resourcenschonender geht. Takt und Daten z.B. per Bitbang vom Sitara. Meine Befürchtung ist allerdings, dass der slow Shift Clock nicht gleichzeitig genug an den Fifos des Shiftregisters ankommt. BUFG sind bereits anderweitig belegt. Habt Ihr Anregungen wie man das am Resoucenschonendsten macht?
:
Bearbeitet durch User
Michael S1. schrieb: > dass der slow Shift Clock nicht gleichzeitig genug an den Fifos des > Shiftregisters ankommt. Genau dafür gibt es passende constraints für den Place&Route, nennt sich maxskew. Michael S1. schrieb: > an den Fifos des Shiftregisters ankommt Aber eigentich hast du mich verwirrt: Was willst du jetzt bauen, ein Schieberegister oder in FIFO?
Sorry für die Verwirrung, ich meinte Flipflops (nicht Fifos)
Konkret gefragt: Was würdet Ihr benutzen? - am Bus betriebene rücklesbare parallele Register - Schieberegister - andere Lösung, welche?
Michael S1. schrieb: > Konkret gefragt: Was würdet Ihr benutzen? Sagt der Ingenieur: "Kommt drauf an..." > - am Bus betriebene rücklesbare parallele Register Wir verwenden hier am Bus betriebene parallele Register, zum schreiben oder lesen. Kein Rücklesen. Es existiert eh ein paralleler Bus auf dem Board (Flash, ADCs etc.) und neu macht der PLD auch ein Dual-Port RAM zu einem anderen Prozessor, dann ist es klar, dass man die Register auch gleich so einbindet. Für den Firmwareentwickler ist es auch super, weil alles so einfach ist mit den Memory-mapped Registern. Um Aufwand zu sparen, kannst du dein Interface auch auf 8 Bit reduzieren und weniger Adressleitungen nutzen. > - Schieberegister Geht, ist für den Firmwareentwickler am Anfang ein bisschen mühsam, weil er für alles selber zuerst mal Code schreiben muss. Dass man mit einem Schieberegister Ansatz weit kommt, zeigt ja z. B. die JTAG Schnittstelle. > - andere Lösung, welche? z. B. SPI, das können die Mikrocontroller gut und schnell, bei deinem Sitara wohl auch mit DMA. (Basiert ja auch auf einem ein Schieberegister).
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.