Hallo zusammen Auf meiner Webseite (http://www.logicsolutions.ch/Download.htm) steht ab sofort die Vollversion eines selbst geschriebenen 8-Bit Softcores namens Panda zum Download zur Verfügung. Zum Softcore gibt es auch eine Builder Software um ganze Mikroprzessorsysteme inklusive Peripherie zu generieren ohne VHDL Code schreiben zu müssen. Einige Peripherien sind bereits in der SW integriert aber auch eigene Peripherien können einfach integriert werden. Der Prozessor steht unter LGPL Lizenz und darf für kommerzielle wie auch nicht kommerzielle Projekte frei verwendet werden. Garantie gibt es keine, aber ich habe das Ding schon mehrfach erfolgreich verwendet. Oli
Oliver Bründler schrieb: > Hallo zusammen > > Auf meiner Webseite (http://www.logicsolutions.ch/Download.htm) steht ab > sofort die Vollversion eines selbst geschriebenen 8-Bit Softcores namens > Panda zum Download zur Verfügung. > > Zum Softcore gibt es auch eine Builder Software um ganze > Mikroprzessorsysteme inklusive Peripherie zu generieren ohne VHDL Code > schreiben zu müssen. Einige Peripherien sind bereits in der SW > integriert aber auch eigene Peripherien können einfach integriert > werden. > > Der Prozessor steht unter LGPL Lizenz und darf für kommerzielle wie auch > nicht kommerzielle Projekte frei verwendet werden. Garantie gibt es > keine, aber ich habe das Ding schon mehrfach erfolgreich verwendet. Feine sache, finde ich aber im Vergleich zum Xilinx-Picoblaze ((92 slices bei 31 adressen im Call/returnstack) ein bißchen groß mit 241 Slices. Sind da noch Optimierung zu erwarten? MfG,
ach, "size doesn't matter" ;-) ich finde die ganze Sache ganz cool, probiere es irgendwann mal aus. Aber ich habe auch einen gute gemeinten Rat an Oliver: lass man irgendeinen Beautifier drüber laufen, Formatierung ist sehr gewöhnungsbedürftig. Ansonsten, weiter so und halte uns auf dem Laufendem! Grüße, Kest
> Der Prozessor steht unter LGPL Lizenz und darf für kommerzielle wie auch > nicht kommerzielle Projekte frei verwendet werden. Garantie gibt es > keine, aber ich habe das Ding schon mehrfach erfolgreich verwendet. > > Oli Idee ist gut. Doch leider greift die LGPL bei FPGA nicht und verfehlt Ihre Sinn. Extern laufende Software kann eine andere Lizenz haben. Das sind z.B. Treiber oder Bibliotheken. Die Einsicht kam, weil die Opensource Gemeinde sich durch Ihre eigenen Restriktionen selber ausgesperrt hatte. In einen FPGA gibt es keinen Prozess oder Speicherbereich, den man abetrennt betrachten kann. Das wird alles durch den Fit Prozess durcheinandergewürfelt und läuft im selben Hardwarebereich ab. Die LPGL fordert einen abgegrenzten Bereich. Ein gutes Beispiel ist der Picoblaze, was einen gewissen allgemeinen Stand darstellt. So ist der Picoblaze in keinem GPL-Projekt einsetzbar, obwohl der Picobaze offengelegt ist.
Salü Bezüglich Ressourcenoptimierung: Dass er an einen Picoblaze nicht rankommt ist eignetlich logisch, da er nicht auf Xilinx bausteine optimiert ist sondern auch auf Bausteinen anderer Hersteller läuft (z.B. bei Altera gibts ja keinen "Pico Blaze"). Bezüglich Lizenz: Muss das nochmal anschauen. Wie auch immer: Die Meinung ist, dass jeder den Prozessor verwenden will für alles was er will. @Réne: Gibts da eine passende Lizenz für FPGA Designs? Und was ich noch vergessen hab: Auch einen simplen On-Chip Debugger gibts :-) Gruss Oli
@Kest Das mit der Formatierung stimmt... Inzwischen mache ich das auch anders und schreibe auch in der Zweiprozess Methode. Beim Panda ist es mir aber auch relativ egal, da ich das Ding über die Builder SW konfiguriere ond mit den VHDL Sourcen eigentlich nicht mehr zu tun habe. Ich finde wohl kaum Zeit das noch anzupassen. Gruss und Danke für den Tip
Hallo Oliver, klingt erstmal recht gut. Bin blutiger VHDL-Anfänger, deshalb eine möglicherweise unkluge Frage: Warum sind eigentlich alle mir bekannten 8-Bit Microprozessor Cores auf max. 1024 Befehle "beschränkt" ? Der interne Block RAM sollte doch mehr hergeben ?! Gruss Uwe
@Uwe Ich weiß zwar nicht genau ob die Erklärung stimmt bzw richtig ist, aber ich versuchs mal : Ich vermute mal das die 1024 Befehle daher rühren, da die BlockRAMs bei 16 (bzw. 18) Bit breite "nur" 1024 Datenworte zulassen. Wäre der Instruktionsbus 8 (bzw 9) Bit breit, hätte man auch die 2048 Datenworte. Natürlich lassen sich mehrere BlockRAMs zusammenschalten, aber das Umschalten beim Lesen zwischen den BlockRAMs braucht Zeit und das kann u.u. das interne Timing des jeweiligen Prozessors "versauen" durch den zusätzlich notwendigen Multiplexer. @Oliver Sehr schönes Projekt, selbst wenn ich den VHDL Code noch nicht verstanden hab (hab aber auch nur kurz reingeschaut). Ich bin gerad selbst dabei mir einen Prozessor zu designen, aber soviele Konfigurationsmöglichkeiten werde ich wohl nicht haben. Aber es ist schön zu sehen wie andere sowas realisieren. Dabei kann man nur lernen. Weiter so.
Oliver Bründler schrieb: > Salü > > Bezüglich Ressourcenoptimierung: Dass er an einen Picoblaze nicht > rankommt ist eignetlich logisch, da er nicht auf Xilinx bausteine > optimiert ist sondern auch auf Bausteinen anderer Hersteller läuft (z.B. > bei Altera gibts ja keinen "Pico Blaze"). > > Bezüglich Lizenz: > Muss das nochmal anschauen. Wie auch immer: Die Meinung ist, dass jeder > den Prozessor verwenden will für alles was er will. > @Réne: Gibts da eine passende Lizenz für FPGA Designs? > > Und was ich noch vergessen hab: Auch einen simplen On-Chip Debugger > gibts :-) > Wenn ich dich richtig verstanden habe willst du einen Opensource SoftCPU ohne Einschränkung für den Weiterverwender. Dann ist Boost Lizenz geeignet. http://www.boost.org/users/license.html#requirements
Mich wuerde mal interessieren wo denn eine sinnvolle Anwendung fuer soetwas liegt. Ich dachte wenn man schon einen Prozessor baut, dann waere es von entscheidender Bedeutung den zu einem bekannten Modell kompatible zu machen damit man bereits verfuegbare Entwicklungstools verwenden kann? Olaf
Olaf schrieb: > Mich wuerde mal interessieren wo denn eine sinnvolle Anwendung > fuer soetwas liegt. -ein einfache HW-debugmonitor der uber eine RS232 angesprochen wird und einfache Kommandos parst -Berechnung von Parametern, einfache Filterung. also sowas wie Wert an output ist 3*Potiinput1 + 3.5* Potiinput2 (f. switch1 =1) else 0.75* Potinput1 - Potiinput4 wird man ungern in einem reinen Rechenwerk + FSM bauen wollen. Zumal eine programmänderung für einen Softcore schneller compilert und geladen ist, als Synthese + P*R für geänderte Hardware. > Ich dachte wenn man schon einen Prozessor baut, dann waere es von > entscheidender Bedeutung den zu einem bekannten Modell kompatible > zu machen damit man bereits verfuegbare Entwicklungstools verwenden > kann? Kommt halt daraufan wo die die Prioritäten setzt. Standard-CPUs sind erfahrungsgemäß deutlich langsamer als exakt auf die FPGA'sarchitektur angepasste Soft-CPU. Das ist ärgerlich, wenn man extra für die langsame CPU ein extra Taktdomain einfuhren muss, weil der Rest des FPGA's auf einen Höheren taktrate klemmt. Und ich kann eigene Hardwareblöcke besser in die Architektur einbauen. BsPw. lasse ich das dritte Timerregister weg und bau dafür einen CRC-Register ein, das mir übertragungsfehler anzeigt. Und wenn ich eine kleine CPU habe, kann ich mir mehrere davon einbauen. Weniger komplex und da kleinteilig auch besser in anderen projekten verwendbar. Das Erhöht auch die Sicherheit, bleibt die einzige CPU stehen, geht nix mehr, bleibt eine von den kl. AmeisenCPUs hängen, wuselt der Rest fleissig weiter. MfG
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.