Forum: FPGA, VHDL & Co. Daten von (Xilinx Platform Studio) Daten von 3 Quellen über ein 16 bit Parallel-Interface übertragen


von std_87 (Gast)


Lesenswert?

Mahlzeit,

ich habe drei Datenquellen, die ich im Xilinx Platform Studio als GPIOs 
einlese:

2 ADCs mit jeweils 12 bit Daten
1 Custom Core mit 12 bit Daten

Das Einlesen der Daten wird bei allen Quellen vom gleichen Signal 
getriggert. Der Custom Core liefert einen Referenzwert für die 
ADC-Daten, somit sind die gelieferten Daten der 3 Quellen nach jedem 
Trigger-Event als eine "Einheit" zu sehen. Jede Einheit dieser 36 bit 
muss über ein paralleles Interface mit 16 bit Datenbreite in einen 
Puffer geschrieben werden. Der Puffer ist 100 byte (50 x 16 bit) groß.

Um die Daten-Einheiten im Puffer wieder auseinanderhalten zu können, ist 
es am sinnvollsten die Datenbreite jeder Quelle durch Padding auf 16 bit 
zu erhöhen, so dass jede Übertragung über das Parallel-Interface genau 
den Daten einer Quelle entspricht? Und ich damit weiß, dass drei Zeilen 
im Puffer einer Daten-Einheit entspricht?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

std_87 schrieb:
> Um die Daten-Einheiten im Puffer wieder auseinanderhalten zu können, ist
> es am sinnvollsten die Datenbreite jeder Quelle durch Padding auf 16 bit
> zu erhöhen, so dass jede Übertragung über das Parallel-Interface genau
> den Daten einer Quelle entspricht? Und ich damit weiß, dass drei Zeilen
> im Puffer einer Daten-Einheit entspricht?
Ich würde da jeweils die 12 Bit gleich auf 16 aufbohren und dann 3x 16 
Bit abspeichern. Dann wäre jeder ADC und der "Costum Core"

BTW: warum machst du den Puffer nicht 12 Bit breit?

von std_87 (Gast)


Lesenswert?

Lothar Miller schrieb:
> Ich würde da jeweils die 12 Bit gleich auf 16 aufbohren und dann 3x 16
> Bit abspeichern. Dann wäre jeder ADC und der "Costum Core"
>
> BTW: warum machst du den Puffer nicht 12 Bit breit?

Hallo Lothar,

danke für deinen Input. Ich denke dass ich mit dem Padding die gleiche 
Methode gemeint habe, den Datenvektor von jeder Quelle einfach mit 4 bit 
"Overhead" auf 16 bit zu vergrößern.
Das Design hinter dem parallelen Interface ist nicht von mir, ich 
benutze dieses Interface um meine Daten in einen fertigen IP-Core zu 
schieben. Der Aufbau der internen Puffer wird durch die Datenbreite des 
parallelen Interfaces bestimmt, und hier gibt es nur die Auswahl 
zwischen 8 und 16 bit.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

std_87 schrieb:
> Ich denke dass ich mit dem Padding die gleiche Methode gemeint habe, den
> Datenvektor von jeder Quelle einfach mit 4 bit "Overhead" auf 16 bit zu
> vergrößern.
Scheint so. Man hätte aber auch noch 12 Bits an die vorhergehenden 36 
Bits anhängen können, und so auf "Telegrammebene" auffüllen. Das wäre 
evtl. sinnvoll, wenn da noch mal z.B. ein 6 Bit "Paket" dazukäme.
Beim Auffüllen auf Wortebene müsste man dann nämlich dieses Paket in 4 
und 2  Bit zerlegen...

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.