www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Gratis 8/16-Bit Softcore Prozessor


Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits

Ich habe soeben meinen neusten Softcore Prozessor namens Proteus gratis 
zum Download zur Verfügung gestellt.

Der Prozessor ist über 23 Generics stark konfigurierbar (z.B. lassen 
sich Instruktionen ein-/ausschalten, die Wortbreite lässt sich ändern, 
die Anzahl der GP-Register ist einstellbar etc.). Er unterstützt auch 
Benutzerdefinierte Instruktionen und es gibt einen passenden Assembler 
sowie eine Builder Software (momentan nicht gratis).

Der Prozessor hat ein separates Instruktions und Dateninterface, beide 
sind Wishbone kompatibel.

Wer interesse hat kann sich den Proteus Prozessor hier herunterladen:

http://www.logicsolutions.ch/Download.htm

Für Fragen stehe ich gerne zur Verfügung, die e-mail findet Ihr auch auf 
meiner Homepage.

Gruss

Oli

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
p.s. Es gibt auch einen JTAG Debugger, der es sogar ermöglicht mehrere 
Prozessoren auf einem FPGA zu debuggen.

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,

das sieht alles sehr interessant aus - ich bin seit längeren auf der 
Suche nach einem 8-Bit Core für meinen Spartan 3E. Es gibt ja 
anscheinend doch schon ein paar ...
Das Problem mit allen bisher gefundenen ist die Einschränkung auf 1024 
Befehle. Warum ist das eigentlich so ? (Bin allerdings kein 
VHDL-Experte)

Gruss Uwe

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wohl weil ein Blockram 18kBit gross ist und eine Instruktion 
üblicherweise 18 oder 16 Bit breit. Das ergibt dann 1k Instruktionen.
Bei Proteus kannst du bis zu 64k Instruktionen ausführen. Hier gibt es 
diese Beschränkung also nicht.

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nutzt man nicht mehrere RAM-Blocks ?

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe N. schrieb:
> Warum nutzt man nicht mehrere RAM-Blocks ?

hängt davon ab wieviele ein entsprechend kleiner fpga davon hat

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die genaue Anzahl ist ja erstmal irrelevant, selbst auf einem Virtex hat 
z.B. der Xilinx'sche PicoBlaze nur für 1024 Befehle Platz.
Ist der Aufwand beim umschalten der "Bänke" (RAM-Blocks) so aufwendig ?

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist praktisch kein Aufwand mehrere Blöcke zu verwenden. Aber man muss 
dann auch die Instruktionen für entsprechend lange Programmsprünge zur 
Verfügung stellen. Hat man eine 18-Bit Instruktion wird es sehr schwer 
z.b. Sprünge über einen 14-Bit Adressraum in den Instruktionssatz 
einzufügen. Deshalb beschränken sich viele auf einen RAM Block (1k 
instruktionen).

Ich habe beim Design von Proteus selbst gsehen, dass es nicht einfach 
ist lange Programmsprünge in einen 16-Bit Instruktionssatz zu kriegen...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was sollen den die Schulungsunterlagen kosten ?

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für dein Feedback, Oliver.
Ist vielleicht ein naiver Gedanke von mir, aber könnte man den 
Adressdecoder nicht mit einer gewissen Eigenintelligenz ausstatten, so 
das der zusätzliche Adress-Verwaltungsaufwand sich nicht auf die 
Instruktionen auswirkt ? (wie gesagt, bin in Sachen 
Hardware-Programmierung ein Newbie)

Autor: Steuerbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe N. schrieb:
> Danke für dein Feedback, Oliver.
> Ist vielleicht ein naiver Gedanke von mir, aber könnte man den
> Adressdecoder nicht mit einer gewissen Eigenintelligenz ausstatten, so
> das der zusätzliche Adress-Verwaltungsaufwand sich nicht auf die
> Instruktionen auswirkt ? (wie gesagt, bin in Sachen
> Hardware-Programmierung ein Newbie)

Bei den größeren 8Bit PICs gabs da mal 1-2 Bank-Bits, die bei Sprüngen 
gesetzt/gelöscht wurden, je nachdem in welche Bank man springen wollte.

Sowas kann der Assembler normalerweise alleine erledigen und solang man 
innerhalb einer Bank bleibt, braucht man auch nichts setzen/löschen.

Vermutlich könnte man sowas sogar nachträglich recht einfach in einen 
solchen Softcore integrieren.

Grüße,
Steuerbert

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steuerbert schrieb:
> Bei den größeren 8Bit PICs gabs da mal 1-2 Bank-Bits
Jaja, das haben schon viele angefangen. Trotzdem ist dieses 
Bank-Switching einfach nur hingebastelter Murks.

> Vermutlich könnte man sowas sogar nachträglich recht einfach in einen
> solchen Softcore integrieren.
Da wäre dann aber die generelle Verbreiterung des Adressbusses weit 
sinnvoller. Ein relativer Sprung ist davon nicht betroffen, für einen 
absoluten Sprung könnte es 2 verschiedene Reichweiten geben (so gesehen 
beim AVR mit ajmp und ljmp)...

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ähnlich macht Proteus das auch. Es gibt relative Sprünge und für 
Absolute Sprünge über eine Sektorgrenze hinweg werden zwei Instruktionen 
benötigt (eine für das Setzen eines Hilfsregisters und eine für den 
Sprung, diese Aufteilung bleibt aber vor dem Programmierer Verborgen und 
wird vom ASsembler übernommen).

Gruss Oli

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens

Welche Schululngsunterlagen? Die Architekturbeschreibung, der Sourcecode 
und alle Tools (bis auf den Builder) sind frei erhältlich und du kannst 
sie von meiner Homepage herunterladen (Link im ersten Beitrag dieses 
Threads).

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Oliver,
ich meinte die Altera Quartus Unterlagen auf deiner Seite. Gruss,
Jens

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens

Das kommt auch auf den Verwendungszweck an. An Lehrbetriebe habe ich die 
gesamten Unterlagen jeweils für etwas über CHF4'000 verkauft.
Brauchst du die Unterlagen nur für dich oder für die Ausbildung von 
Azubis oder Schülern?

Falls du die Unterlagen nur privat für dich brauchst könnte ich dir 
etwas entgegenkommen. Ausserdem musst du ja nicht alle Module kaufen. 
Die Unterlagen sind folgendermassen unterteilt:

- Einführung ins Thema Programmierbare Logik
- Marktübersicht (Stand 2008)
- Quartus II Design Flow
- Time Quest Timing Analyzer
- Quartus II JTAG Tools

Zu jedem Kapitel gibt es eine Übung, eine Referenzlösung zur Übung und 
einen Kurztest.

Falls du interesse hast, schreibe mir doch eine e-mail:
info@logicsolutions.ch


Gruss Oli

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.