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


von Oliver Bründler (Gast)


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

von Oliver Bründler (Gast)


Lesenswert?

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

von Uwe N. (ex-aetzer)


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

von Oliver Bründler (Gast)


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.

von Uwe N. (ex-aetzer)


Lesenswert?

Warum nutzt man nicht mehrere RAM-Blocks ?

von D. I. (Gast)


Lesenswert?

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

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

von Uwe N. (ex-aetzer)


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 ?

von Oliver Bründler (Gast)


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...

von Jens (Gast)


Lesenswert?

was sollen den die Schulungsunterlagen kosten ?

von Uwe N. (ex-aetzer)


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)

von Steuerbert (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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)...

von Oliver Bründler (Gast)


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

von Oliver Bründler (Gast)


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).

von Jens (Gast)


Lesenswert?

Hi Oliver,
ich meinte die Altera Quartus Unterlagen auf deiner Seite. Gruss,
Jens

von Oliver Bründler (Gast)


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

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.