Forum: FPGA, VHDL & Co. HW SW Codesign - Sinnvolle Anwendung


von Thorsten F. (zync)


Lesenswert?

Hi,

ich bin gerade dabei, mich in Hardware Software Codesign (VHDL, C) 
einzuarbeiten. Kennt jemand von euch ein vielsagendes Beispiel bei dem 
die Performance der Realisierung einer Software Applikation in 
HWSW-Codesign merklich verbessert wird ?

Ich habe schon gelesen, eine Implementierung der Priority Queue, wäre 
sinnvoll. Allerdings ist dort die Performance mMn eine große Frage der 
richtigen Implementierung. Vielleicht kennt ihr bekannte Beispiele aus 
eigener Vergangenheit ?

Danke,

Tobi

von DietRichie (Gast)


Lesenswert?

Tobias Fulle schrieb:
> Hi,
>
> ich bin gerade dabei, mich in Hardware Software Codesign (VHDL, C)
> einzuarbeiten. Kennt jemand von euch ein vielsagendes Beispiel bei dem
> die Performance der Realisierung einer Software Applikation in
> HWSW-Codesign merklich verbessert wird ?

Software zu coden braucht in der Regel weniger als entsprechende 
Hardware. Ergo können die späteren Programmierer Wochen (Monate) vorher 
anfangen auf der Zielplattform zu entwickeln. Wenn man dann noch den 
Virtualizer einer bestimmten Firma benutzt, dann tauscht man nach und 
nach die C-Modelle mit VHDL aus. Der SW Entwickeler merkt davon 
bestenfalls nichtmal was!

von H. G. (Gast)


Lesenswert?

Tobias Fulle schrieb:
> Implementierung der Priority Queue

ja, weil man die Prios in einem Schlag checken kann, wie bei allen 
Vorrangschaltungen, während die Software linear mehr Schritt braucht.

Das Ganze geht soweit, wie die breite der Elemente noch in einem Takt 
abzuarbeiten ist, danach braucht man einen Baum und mehr Takte.

von Tobias Fulle (Gast)


Lesenswert?

Danke für die Antworten. Aber ich suche nach expliziten anderen 
Anwendungsbeispielen.

Mir fällt zum Beispiel kein anderer Fall ein, an dem man in der Software 
sequentiell und in der Hardware parallel verarbeiten kann, den Codesign 
Vorteil also voll ausnutzen zu können.

Vielleicht wisst ihr noch Anwendungen ?

Danke

von Wolfgang Vogelzug (Gast)


Lesenswert?

Tobias Fulle schrieb:
> Danke für die Antworten. Aber ich suche nach expliziten anderen
> Anwendungsbeispielen.


http://de.wikipedia.org/wiki/Deep_Blue

von Tobias Fulle (Gast)


Lesenswert?

Danke für die Antwort. Gutes Beispiel.
Allerdings Suche ich eine etwas kleinere Anwendung zum Nachbauen, bei 
der sich die Performance zwischen der reinen Softwarelösung zur HW SW 
Codesign Lösung verbessert. Any ideas ?

von Wolfgang Vogelzug (Gast)


Lesenswert?

Tobias Fulle schrieb:
> Danke für die Antwort. Gutes Beispiel.
> Allerdings Suche ich eine etwas kleinere Anwendung zum Nachbauen, bei
> der sich die Performance zwischen der reinen Softwarelösung zur HW SW
> Codesign Lösung verbessert. Any ideas ?

Im Dunstkreis des ATMEL FPSLIC suchen, bspw:
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=957349

von P. K. (pek)


Lesenswert?

Tobias Fulle schrieb:
> Allerdings Suche ich eine etwas kleinere Anwendung zum Nachbauen, bei
> der sich die Performance zwischen der reinen Softwarelösung zur HW SW
> Codesign Lösung verbessert. Any ideas ?

Wahrscheinlich eignet sich vieles aus dem Bereich Signal Processing. Ein 
Anwendung die klein genug ist, wäre vielleicht im Bereich Audio zu 
finden. Du könntest z.B. einen Equalizer mit N Bändern bauen.

Kriterium wäre dann, wieviele Bänder bringst du real-time (Audio wird 
gleich ausgespielt) nur mit dem Prozessor rein, wieviele mit 
zugeschalteter HW-Unterstützung.

Falls zu aufwändig, File-to-File machen und die Ausführungszeiten 
messen.

von Fritz J. (fritzjaeger)


Lesenswert?

Tobias Fulle schrieb:
> Danke für die Antwort. Gutes Beispiel.
> Allerdings Suche ich eine etwas kleinere Anwendung zum Nachbauen, bei
> der sich die Performance zwischen der reinen Softwarelösung zur HW SW
> Codesign Lösung verbessert. Any ideas ?

Hab mir aus dem Bücherregal gerade 0-13-154318-0 geangelt, Covertext: 
"High performance FPGA-accelerated software applications". Der 
Schwerpunkt liegt auf Impulse-C 
(http://en.wikipedia.org/wiki/Impulse_C). Beispiele sind: Fraktale 
(Mandelbrot), Triple-DES. Schau mal, ob es dem gesuchten HWSW-Codesign 
gleicht.

MfG,

von Tobias Fülle (Gast)


Lesenswert?

Passt soweit alles. Der Audio-Equalizer ist gar nicht schlecht. 
Allerdings würde ich gerne etwas mit einer visuellen Ansicht machen. 
Dies ist zwar durch ein GUI des Equalizers auch gegeben, ich würde aber 
ein Video hernehmen und anhand diesem dann erst die Software schreiben 
und danach die Performance mit HW SW Codesign verbessern. Habt ihr Ideen 
? Eine einfache visuelle Wiedergabe würde wahrscheinlich nicht den 
gewünschten Verbesserungseffekt vorbringen. Vielleicht ist es aber auch 
möglich, durch gewissen Auslagerungen doch eine Beschleunigung 
hervorzurufen.  Was denkt ihr ?

Grüße,
Tobi

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

> Passt soweit alles. Der Audio-Equalizer ist gar nicht schlecht.
> Allerdings würde ich gerne etwas mit einer visuellen Ansicht machen.
> Dies ist zwar durch ein GUI des Equalizers auch gegeben, ich würde aber
> ein Video hernehmen und anhand diesem dann erst die Software schreiben
> und danach die Performance mit HW SW Codesign verbessern.

In Videodaten ist sicher sehr viel performance zu holen. Der direkte 
Sprung in die Videobarebeitung ist zu groß.
Audio ist gut zum lernen. Es wäre gut ein paar Lerneffektbeispiele als 
Anwendungen für den FPGA zu haben. Man muss erst einmal Audiobearbeitung 
verstanden haben und hat auch genügend Stoff zum Austoben.


Als Tipp der GHDL kann VHDL Code mit C Code verbinden.

Es ist leider nicht sehr gut dokumentiert, aber eine richtungsweisende 
Idee kann dir der folgende Artikel geben.
http://www.fpgarelated.com/showarticle/20.php

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.