Softcore Erweiterung

Gast #2829065
Lesenswert?

Guten Tag,

im Rahmen einer Projektarbeit an meiner Hochschule soll ich einen 
Softcore erweitern und testen. Die Erweiterung soll in VHDL stattfinden, 
also nach Möglichkeit keine weitere Hardware. Bei dem Softcore handelt 
es sich um den Leon3 (http://www.gaisler.com/), welcher  auf einem 
Altera DE2-Board implementiert wurde. Leider habe ich keine richtige 
Idee, wie ich den Softcore sinnvoll erweitern könnte. Das ganze sollte 
auch nicht zu umfangreich werden, aber halt schon die korrekte 
Funktionsweise des Cores zeigen. Also am besten wäre eine Erweiterung in 
VHDL die dann mit einem Programm in C gesteuert werden kann. Wenn jemand 
eine Idee hätte wäre ich sehr dankbar!
#2829072
Lesenswert?

Soll der Core selbst erweitert werden (zB. ein neuer Befehl) oder "nur" 
eine drangehängte Peripherie (zB. Spezial-UART, Timer, etc.)?

Für beides gibts eigentlich genügend Möglichkeiten. Als Befehl zB. 
irgendetwas aus einem Algorithmus, was sonst in C mehrere Takte braucht. 
Im Dunstkreis der FFT gibts so einiges (Bits spiegeln für die 
Adressierung, Butterfly/Radix2 in Integer)...
#2829284
Lesenswert?

Auch da ist genügend Spielwiese vorhanden. Maximal simpel (auch aus 
SW-Sicht) wären GPIOs, die könnte man auch mit Interrupts bei 
Pegelwechsel versehen. So eine I2C-Schnittstelle in HW ist auch 
praktisch, aber schon etwas komplexer, wenn sie die CPU tatsächlich 
entlasten soll. Hängt halt auch alles etwas davon ab, was man so ans 
Board anschliessen kann/darf...
Gast #2829725
Lesenswert?

Der Aufwand soll so gering wie möglich gehalten werden, daher nach 
Möglichkeit keine externe Hardware.

Habe vielleicht an eine A/D Wandler  gedacht der den Wert auf den 
vorhandenen LEDs ausgibt? So etwas müsste doch relativ "schnell" 
realisierbar sein oder nicht?
Gast #2829950
Lesenswert?

Bernd schrieb:
> Habe vielleicht an eine A/D Wandler  gedacht der den Wert auf den
> vorhandenen LEDs ausgibt? So etwas müsste doch relativ "schnell"
> realisierbar sein oder nicht?

Du meinst ein ADC Interface oder? Ein ganzen ADC synthetisieren geht 
meines wissen ohne weiteres nicht!
Moderator (Firma: Titel) Persönliche Seite #2830022
Lesenswert?

Bernd schrieb:
> Habe vielleicht an eine A/D Wandler  gedacht der den Wert auf den
> vorhandenen LEDs ausgibt?
Überleg nochmal...

Für einen AD-Wandler brauchst du 1. einen Wandler 2. ein Interface, das 
den Wandler einliest. Du kannst 2. machen, z.B. über ein SPI-Interface, 
das dann vom Leon angesprochen wird. Das wäre eine hübsche 
Projektarbeit...

> So etwas müsste doch relativ "schnell" realisierbar sein oder nicht?
Kannst du schon "relativ" gut mit VHDL umgehen? Ich wäre damit in einem 
Tag fertig. Du wirst länger brauchen...


Etwas anderes wäre z.B. ein Coprozessor, der Zufallszahlen in Hardware 
sortiert, das hat nicht jeder...  ;-)
http://www.lothar-miller.de/s9y/archives/78-Bubblesort.html
Gast #2830050
Lesenswert?

Lothar Miller schrieb:
> Kannst du schon "relativ" gut mit VHDL umgehen? Ich wäre damit in einem
> Tag fertig. Du wirst länger brauchen...
Hatte bisher nur eine Vorlesung mit VHDL und ein paar begleitende 
Übungsaufgaben dazu. Also quasi nur Grundlagen.

Das mit dem SPI-Interface klingt ganz gut. Werde mich in der Richtung 
mal weiter schlau machen, danke!
#2830357
Lesenswert?

Lothar Miller schrieb:
> Etwas anderes wäre z.B. ein Coprozessor, der Zufallszahlen in Hardware
> sortiert, das hat nicht jeder...  ;-)

Andere, ähnliche Idee von mir: eine Unit, die dir echten Zufall erzeugt, 
auf welchen du dann über ein Register zugreifen kannst. Quasi wie in 
neuen Intel Prozessoren. Das ist recht übersichtlich zu implementieren. 
Und guten Zufall braucht man eigentlich immer :)
(Firma: www.dossmatik.de) #2831038
Lesenswert?

> Hatte bisher nur eine Vorlesung mit VHDL und ein paar begleitende
> Übungsaufgaben dazu. Also quasi nur Grundlagen.

Nur mal zu freidrehen und mitschreiben. Ein Vorlesung in VHDL und dann 
am LEON3 fummeln.





Der LEON ist kein Softcore mit einfachem Einstieg.
Dort was in VHDL Fummeln ist nicht so ohne. Du musst die Bussignale und 
das dazugehörige Timing kennen. Dort läuft der AHB-Bus die Spezifikation 
solltest du dir dann reinziehen. Das ist auch mindestens eine weitere 
Vorlesung.

Im Leon sind bereits einfach Peripherie-Bussysteme realisiert. Nutze 
einfach SPI und reduziere das Problem auf eine Softwareintegration.
#2831167
Lesenswert?

Lothar Miller schrieb:
> Wie "echt" ist denn dieser Zufall bei Intel?

Soweit ich weiß, wird der Ausgang einer Zufallsquelle genutzt, um an 
einem FF durch Setup/Hold Verletzungen metastabile Zustände zu erzeugen. 
Der Ausgang des FF wird glaube IMHO mit 3GHz abgetaktet. Danach 
schließen sich diverse Nachbearbeitungen an. Die ursprüngliche 
Zufallsquelle wird wohl sowas wie ein  Ringoszillator sein.

Siehe: 
http://www.hotchips.org/wp-content/uploads/hc_archives/hc23/HC23.18.2-security/HC23.18.210-Random-Numbers-Cox-Intel-e.pdf

Mit solchen Teilen haben wir hier auch schon diverse Tests gemacht, 
damit lässt sich auch auf FPGAs relativ zuverlässig recht hochratig 
Zufall erzeugen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren