Forum: FPGA, VHDL & Co. embedded AVR in FPGA - Performance


von Jürgen Schuhmacher (Gast)


Lesenswert?

Hallo, hat jemand hier schonmal  einen AVR-Core in einem FPGA
realisiert? Ich hätte gerne mal vorab so ein paar Aussagen zur
Performance, also ob man mit einem, sagen wir mal, 60MHz FPGA einen
8MHz Core emulieren kann.

So in etwa bräuchte ich es: Habe eine AVR-Software auf einem Board, das
etwas High-Speed-Anbindung kriegen soll. Die Idee ist, einen Core zu
nehmen, die benötigte digitale Hardware einzuprogrammieren und so die
vorhandene Software direkt nutzen zu können. (Altes System soll
weiterleben, Software wird für beide in einem Rutsch gepflegt)

von Jörn (Gast)


Lesenswert?

Schau mal bei Opencores vorbei, dort gibt es eine AVR core:
http://www.opencores.com/projects.cgi/web/avr_core/overview

Gruß Jörn

von Jürgen Schuhmacher (Gast)


Lesenswert?

Ist das der pCore aus dem anderen Thread? Da hatte ich ja schon was
geschrieben....

von Jörn (Gast)


Lesenswert?

So weit ich das verstehe, sind das zwei verschiedene Core. pAVR:
http://www.opencores.org/projects.cgi/web/pavr/overview

von Jürgen Schuhmacher (Gast)


Lesenswert?

Ok. zum pAVR findet man 'Autumn 2005: bugs discovered. Changed status
from "Stable" to "Alpha".' Ich denke, da müssen ein paar
Betatester dahinter um das stabil zu kriegen.

Der andere scheint mir ausgebauter. Mal sehen ...

von Kest (Gast)


Lesenswert?

Hab' jetzt nicht ganz kapiert, wieso jetzt FPGA eingesetzt werden soll
:-o Altes System soll doch ersetzt werden, die Software willst Du aber
weiterverwenden?

Ich denke, das ist kontraproduktiv - die Zeit, die Du mit einem
FPGA-AVR Core verbringen wirst, um es stabil zu bekommen, kannst Du
entweder in neue Software (Pico/Paco/Micro-Blaze, NIOS oder sonstiges)
investieren. Oder Du nimmst halt doch den AVR Chip als solches... Und
wenn Du High-Speed brauchst, dann nimmst Du eben ARM7/9 oder wie auch
immer.

Will damit sagen, dass es meistens nicht lohnt, altes System
"aufzurüsten", "aufzubohren"

Kest

von Tom (Gast)


Lesenswert?

Zudem es den AVR mittlerweile deutlich schneller als 8 MHz gibt. Laut
Datenblatt kann der AT76C713 48MHz. Oder wenn es um spezielle
programmierbare Logic geht gibts den fpsclic mit AVR-Core und FPGA in
einem Chip (immerhin noch 25 Mhz).

von Oiver (Gast)


Lesenswert?

Es gibt auch AVR's mit FPGA in einem Gehäuse. Typenbezeichnung habe ich
jetzt nicht extra für Dich rausgesucht!
Da mit kannst Du den AVR um viele neue Hardware /Software spielerein
erweitern.

von avrox (Gast)


Lesenswert?

Mein avr im FPGA schafft auf Virtex4-10 etwa 75 Mhz und auf Virtex2
ebenso 75 Mhz (welcher speed Grade weiß ich im Moment nicht).
Startan3-4 kommt aus Place&Route mit etwa 45-50 Mhz.
Es handelt sich um eine "in etwa Atmega128" kompatible version.
Also inkl aller mul-Befehle aber ohne break, spm,sleep,wdr.

Die Frequenzen beziehen sich auf Versionen mit einigen Timern und 2
seriellen Schnittstellen sowie Wrapper für FTDI 245. Wobei zusätzliche
Peripherie bis jetzt kaum Einfluß auf den kritischen Pfad hatte.

Alle Befehle brauchen gleich oder weniger Zyklen (andi, sbiw,call) als
beim Original. Keine weiteren Pipelinestufen. Program und Daten in
BlockRAM

von Thomas B. (paraglider)


Lesenswert?

So in etwa wie avrox schreibt, hätte ich das auch erwartet. Deckt sich
mit meinem 16-bit Prozessor, den es am Wochenende voraussichtlich hier
geben wird.

Aber mal 'ne andere Frage, avrox: Wie viel Slices braucht denn dein
AVR im Spartan3?

Gruß,
Thomas

von avrox (Gast)


Lesenswert?

Da ich ziemlich rücksichtlos auf Speed optimiert habe, kann ich mit dem
Logikverbrauch nicht sonderlich glänzen.
Exakte Werte für Spartan3 hab ich nicht greifbar, da ich nur für
Virtex2 und Virtex4 ein Board besitzte und Spartan3 nur mal vor einiger
Zeit aus Neugier synthetisiert habe. Der größte Unterschied war
allerdings der Geschwindigkeitsabfall.

- der reine Kern mit SPI und FTDI-Wrapper liegt bei ~ 800 Slices
(1450Luts)
- mit zusätzlich Timer0/Timer1  ~ 1200 Slices (2100Luts)
- mit zusätzlich USART0/USART1  ~ 1600 Slices (2600Luts)

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.