Forum: FPGA, VHDL & Co. Resourcenschonender Parameter Upload


von Michael S. (msb)


Lesenswert?

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
von Christoph Z. (christophz)


Lesenswert?

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?

von Michael S. (msb)


Lesenswert?

Sorry für die Verwirrung, ich meinte Flipflops (nicht Fifos)

von Michael S. (msb)


Lesenswert?

Konkret gefragt: Was würdet Ihr benutzen?
- am Bus betriebene rücklesbare parallele Register
- Schieberegister
- andere Lösung, welche?

von Christoph Z. (christophz)


Lesenswert?

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