Forum: FPGA, VHDL & Co. Reaktionstester in ABEL


von Dennis W. (Firma: sda) (snackit)


Lesenswert?

Hallo,
wir haben in der Schule die Aufgabe bekommen einen Reaktionstetser in 
ABEL zu programmieren. Der Baustein ist ein ispLSI1016EA . Es wäre mir 
sehr hilfreich, wenn sich jemand so gut mit ABEL auskennt,
dass er diesen programmieren könnte und mir die ABEL Datei per E-Mail 
schicken könnte.

Aufgabe:
1.Stufe: Zwei Mitspieler jeweils eine Taste bei dem der schneller 
gedrückt hat soll eine LED leuchten.

2.Stufe: Ein Helfer betätigt einen Start-Schalter und das Gerät zeigt 
nun zusätzlich zur Sieger LED die Zeit an die der schnellere für seine 
Reaktion benötigt.

3.Stufe: Der Helfer wird durch ein Zufallsgenerator ersetzt. Nach 
betätigen des Start-Schalters leuchtet verzögert eine LED, worauf die 
Mitspieler ihre Taste drücken müssen, die Zeit des schnelleren 
Mitspielers wird angezeigt(7-Segment Anzeige).

Mit freundlichen Grüßen
Snackit

von Azrael (Gast)


Lesenswert?

Und warum sollten wir deine Aufgaben lösen?
Schule ist da um was zu lernen, nicht um abzuschreiben. Wenn du jetzt 
nix lernen magst, wirst du die prüfung die kommen wird auch nicht 
schaffen.

Sowas hast du in 10-20h mit doku fix und fertig. Und wenn du in deine 
Abel-unterlagen schaust ev. sogar schon in 6h.

lg Azrael

von Schlumpf (Gast)


Lesenswert?

> Es wäre mir sehr hilfreich, wenn sich jemand so gut mit ABEL auskennt,
> dass er diesen programmieren könnte und mir die ABEL Datei per E-Mail
> schicken könnte.

Mir wäre es sehr hilfreich, wenn hier jemand meinen Job machen würde, 
während ich solange in der Karibik mit nem kühlen Drink am Strand liege 
und wenn derjenige dann fertig ist, kann er mir das Gehalt auf mein 
Konto überweisen.. Danke!

Ich glaub, der Sinn und Zweck dieser Übung ist, dass du lernst, wie 
sowas funktioniert, dich mit nem Problem auseinandersetzt und dich in 
neue Dinge "eindenkst"
Falls du dann an einer bestimmten Stelle ein Detailproblem hast, kannst 
du hier gern sinnvolle Fragen stellen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Erst mal das dicke Handbuch zu ABEL:
http://www.latticesemi.com/dynamic/view_document.cfm?document_id=589
ABEL-HDL Reference Manual

für die Aufgaben fehlen noch einige Angaben:
zu 1.:
ich vermute mal, da soll eine Lampe zufällig aufleuchten, und dann erst 
dürfen die beiden ihre Taste drücken. Die muß irgendwann wieder angehen, 
oder startet sie auch von Hand neu?

zu 2.:
wie sieht die Zeitanzeige aus, ist das dieselbe 7-Segmentanzeige wie in 
3.?

zu 3.
Zufallsgenerator baut man in dem Fall vermutlich aus einem 
EXOR-rückgekoppeltem Schieberegister, das ergibt genügend 
pseudozufällige Werte.

Wie sieht die "Zielhardware" aus, ist das ein Evaluationsboard zum guten 
alten ispLSI1016? Der wird schon seit Jahren nicht mehr produziert, ich 
nehme an dass das Board in der Schule schon ein paar Jahre rumliegt.
Wie wird es programmiert? Es gibt von Lattice eine Software für den 
Druckerport, ich vermute mal, die ist in der Schule vorhanden. Ich hatte 
eine Demo-CD von Lattice, auf der Abel/Synario für den ispLSI1016 
kostenlos enthalten war, sowie diese "Download"-Software zur 
Programmierung.

von Mark (Gast)


Lesenswert?

Hallo Dennis,

sag Deinem Lehrer bitte, dass Du VHDL schreiben möchtest (oder Verilog),
dann kannst Du das erworbene Wissen später auch noch verwenden ;-)
Oder wer programmiert noch gegen Bezahlung in ABEL???

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Wenn die vorhandene Software das erlaubt - Abel ist immer noch ein 
einfacher Einstieg in CPLDs

Mal eine Abschätzung, was wir brauchen:

Ein Taktoszillator müßte schon auf der Platine sitzen, CPLDs haben 
keinen integrierten Oszillator wie die Mikrocontroller. Vielleicht 1 
MHz, das wäre die niedrigste übliche Frequenz. Um Reaktionszeiten im 
Zehntelsekundenbereich zu messen muß diese Frequenz durch etwa 1 Million 
oder 2 hoch 20 geteilt werden. Das sind immerhin schon 20 der 64 
Register des ispLSI1016.

Die Siebensegmentanzeige verschlingt schon für eine Ziffer weitere 7 
Register, wenn es zwei Ziffern oder mehr sein sollen erhöht sich das 
entsprechend.

Der Pseudozufallsgenerator würde irgendeinen Bruchteil der Taktfrequenz 
als Schiebetakt verwenden, der ispLSI1016 hat drei Taktverteilnetze, 
eines für 1 MHz, einer für den Schiebetakt, dann bleibt noch eines 
übrig.

Die Ablaufsteuerung könnte man als state-machine ( Zustandsdiagramm) 
formulieren, beim Einschalten sind alle Register auf Null das wäre der 
Ruhezustand. Mit der Starttaste wird das Zufalls-Schieberegister mit 
einem Ausschnitt aus dem momentanen Taktteiler-Stand geladen und läuft 
los. Ein Vergleicher stoppt bei Erreichen eines bestimmten 
Schieberegisterwertes und läßt die LED aufleuchten, dann wird ein 
Reaktionszeit-Zähler gestartet, der nochmal so groß sein muß wie die 
Siebensegmentanzeige zählen kann, dazu ein Siebensegment-Decoder, das 
kostet alles nochmal Register.

Die 64 Register sind also nicht übertrieben viel für die gewünschte 
Schaltung, aber mit etwas Vorüberlegung sollte es reinpassen.

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.