Forum: FPGA, VHDL & Co. Softcore Erweiterung


von Bernd (Gast)


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!

von Georg A. (georga)


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

von Bernd (Gast)


Lesenswert?

"Nur" eine drangehängte Peripherie.

von Georg A. (georga)


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

von Bernd (Gast)


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?

von ACDC (Gast)


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!

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


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

von Bernd (Gast)


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!

von T. M. (xgcfx)


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

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


Lesenswert?

Wie "echt" ist denn dieser Zufall bei Intel?

von René D. (Firma: www.dossmatik.de) (dose)


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.

von T. M. (xgcfx)


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.

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


Lesenswert?

Meine Untersuchungen mit Metastabilität als Zufallsquelle waren eher 
enttäuschend und/weil von aussen beeinflussbar (Spannung, Temperatur, 
EMV...)

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.