www.mikrocontroller.net

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


Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jürgen Schuhmacher (Gast)
Datum:

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

Autor: Jörn (Gast)
Datum:

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

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Oiver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: avrox (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas B. (paraglider)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: avrox (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.