Bilddaten umsortieren - FIFO Problem

OP #1691221
Hallo zusammen,

ich habe folgendes Problem.

Ich Lese mit meinem FPGA (Spartan 3A DSP) zwei Datenkanäle (linke/rechte 
Bildhälfte) mit Bilddaten ein.
Diese Daten landen in zwei Fifos und werden von dort von einem PowerPC 
ausgelesen.

Nun habe ich das Problem, dass ich die Bilddaten intern umsortieren 
muss.
Hier ein Bsp:
Eine Zeile mit 10 Pixeln.

1--------5,6-------10

Ich lese die Daten so ein, dass ich zuerst Pixel 1 und Pixel 10 bekomme. 
Beide Pixel stehen also zuerst im jeweiligen FIFO. Zuletzt erhalte ich 
Pixel 5 und 6. Die FIFOS sind also wie folgt gefüllt:

5     6
-     -
-     -
1     10

Nun müßte der PPC die Daten auslesen und anschließend noch umsortieren, 
um das Bild richtig im Speicher liegen zu haben. Das kostet natürlich 
zeit.

Nun suche ich eine Möglichkeit, dass der rechte FIFO nach Einlauf der 
ersten Zeile die Daten umsortiert, also quasi Pixel 6 zuerst ausgelesen 
werden kann und zuletzt Pixel 10.

Das Problem ist, dass natürlich nach dieser Zeile direkt die nächsten 
Daten reinkommen und in den Fifo gelegt werden wollen.
In wievielen Takten wäre denn eine derartige Umsortierung möglich?
Könnte ich den Fifo komplett als eine Art Matrix auffassen und die Daten 
mit einem Takt umschieben? Denn sonst müßte ich ja den kompletten FiFo 
auslesen und in einen neuen schreiben.

Es wäre also in dem Sinne keine FiFo mehr sondern eher ein LastIFO oder 
sowas :)

Gibt es da eine geschickte Lösung für dieses Problem?

MfG Andi
Gast #1691771
Nimm halt statt einem Fifo einen normalen (block)Ram bei dem du die 
Addresse selbst festlegst.

Dazu eine kleine Statemachine welche die Reihenfolge berechnet und gut 
ist.

Alternativ wenns nur 5 Werte sind : Schieberegister und immer das 
"falsche Ende" an den Eingang der Fifo hängen.
(Firma: www.dossmatik.de) #1693072
Der interne FiFo wird aus RAM Zellen gebildet. Der Addressdecoder muss 
entspechend der "Verwürfelung" erweitert werden. Eigentlich nicht das 
große Problem.
Problem ist eher ein FiFo für die Synchronisation mit hohen Taktraten 
richtig zu bauen. Das ist sicher bei Bilddaten notwendig.
In der Simulation funktioniert alles doch dann verschiebt sich das 
Timing der Takte im FPGA etwas und es gibt ungewollte Effekte.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.