Forum: FPGA, VHDL & Co. Lattice PLD Seminararbeitthema gesucht - ispLSI1016e


von Patrick (Gast)


Lesenswert?

Schönen guten Tag,

ich muss in den nächsten Monaten "etwas" mit dem Lattice ispLSI1016e 
bauen. Dabei handelt es sich um einen "Programmable Logic Device" (PLD). 
Datenblatt liegt ist im Anhang.

Dieses "etwas" ist nicht genau definiert, was heißen soll das mir 
theoretisch gesehen die Welt offen steht. Das Projekt sollte lediglich 
im Bereich des machbaren sein. Also sollte es die Fähigkeiten eines 18 
Jährigen Schüler eines Technischen Gymnasiums nicht übertreffen und auch 
mehr als 3 Lattices sollten nicht im Spiel sein.

Hier mal einige Beispiele von Projekten meiner Freunde:
- Einen einarmigen Bandit der zufällig 4 Zahlen generiert
- Ein Codeschloss
- Eine Ampelschaltung einer Kreuzung
- Ein vier-gewinnt Spiel

Nun, da ich die qual der Wahl habe, fällt mir leider überhaupt nichts 
ein. Mein Vorschlag, einen Taschenrechner zu bauen, wurde "leider" (eher 
zum glück musste ich feststellen) abgelehnt. Und aus diesem Grund wende 
ich mich an euch. Wie gesagt wurde mir nichts von meinen Lehrern 
vorgegeben. Aber eventuell finden sich hier ein oder mehr Leute die 
schon eine ähnlich Aufgabe bewerkstelligen mussten. :) Inspirationen 
werden auch gerne gesehen...

Mit freundlich grüßen,

Patrick

von Patrick (Gast)


Lesenswert?


von Schlumpf (Gast)


Lesenswert?

Wenn es ganz simpel sein soll, einen elektronischen Würfel.
Ein wenig anspruchsvoller wäre vielleicht ein Wecker
Oder noch anspruchsvoller, vorausgesetzt, du hast noch ein bisschen 
Muse, auch Peripherie drumrumzubasteln, wäre vielleicht ein 
chromatisches Stimmgerät, wobei ich denke, dass das den Rahmen einer 
TG-Arbeit eventuell sprengen könnte.

Also ich fänd nen Wecker ganz nett..

von MaWin (Gast)


Lesenswert?

In ein 1016 passt nicht viel rein. Kein Taschenrechner, keine Uhr. Ich 
hab mal eine BIOS Fehlercodeanzeige mit 7 Segment decoder damit gebaut, 
aber heute haben PCs keine ISA slots mehr. Ein Codeschloss geht, eine 
Ampel auch.Aber die Dinger sind schnell, die können einen Datenstrom on 
the fly umcodieren, wurde für PlayStation MODchips verwendet, 
Macrovision decoder, SPDI/F Bitänderung.

von Schlumpf (Gast)


Lesenswert?

MaWin schrieb:
> In ein 1016 passt nicht viel rein

16 GLBs a 18 Inputs und 4 Outputs und maximal 96 Register und er darf 
bis zu drei solcher Bausteine verwenden...

soooo wenig ist das auch nicht, finde ich
Mal die Register für ne Uhr betrachtet:

Teiler für Uhrenquarz: 15 Register
Sekundenzähler 0..59 (unsichtbar) : 6 Register
Minutenzähler 0..59 (sichtbar): 6 Register
Stundenzähler 0..23 (sichtbar): 5 Register

Summe Register: 32

von Patrick (Gast)


Lesenswert?

Schlumpf schrieb:
> Ein wenig anspruchsvoller wäre vielleicht ein Wecker

Schlumpf schrieb:
> Teiler für Uhrenquarz: 15 Register
> Sekundenzähler 0..59 (unsichtbar) : 6 Register
> Minutenzähler 0..59 (sichtbar): 6 Register
> Stundenzähler 0..23 (sichtbar): 5 Register
>
> Summe Register: 32

Also wenn ich ehrlich bin, haben wir, soweit ich weiß, noch nicht mit 
Register gearbeitet. Vielleicht hätte ich dazu sagen sollen, das wir mit 
der Programmiersprache ABEL arbeiten. Sie ist meiner Erachtens sehr 
einfach. Wahrheitstabellen, Folge-Zustandsdiagramme, 
When...then...else-Bedingungen, Zuweisungen... Hauptsächlich haben wir 
mit den Logikgattern (and, or, xor...) und D-FlipFlops gearbeitet.

Aber das mit dem Wecker halte ich persönlich trotzdem für keine 
schlechte Idee. Einen Lattice verwende ich als Zähler (oder 
Frequenzteiler) der 1Hz zuerst auf 1/60 Hz umwandelt (Also 1 Takt pro 
Minute) und dann bis 1.440 zählt (24h*60min). Mit dem anderen kann ich 
manuell bis 1.440 Zählen und ein dritter Lattice vergleicht die dann die 
Zahlen (bzw. Eingänge) miteinander.

Also, für mich persönlich klingt das nicht schlecht. Aber ich versuch 
das erstmal mit einem Logic Simulator (Logisim) zu simulieren.

von Franke (Gast)


Lesenswert?

dein Freund der das vier-gewinnt in ABEL programmieren will ... holla..
viel Spaß.

Ein Zufallsgenerator ist übrigens ohne externe Bauteile auch "quatsch", 
genau zufällig passiert hier nix.

Vorschlag:
Kennst du noch Modeleisenbahnen?
Implemenitier ne Blockstellensteuerung, das lässt sich dann auch noch 
aufbohren, ist nicht so langweilig wie ne Ampel und lässt sich im 
Zweifel gut simulieren

Cheers

von Schlumpf (Gast)


Lesenswert?

Patrick schrieb:
> Also wenn ich ehrlich bin, haben wir, soweit ich weiß, noch nicht mit
>
> Register gearbeitet

Register ist keine "Programmiersprache", sondern Flip-Flops, die im 
"Lattice" zur Verfügung stehen.
Hat euch euer Lehrer im Unterricht nicht erklärt, was so ein PLD macht 
und wie es aufgebaut ist? Denn das gehört zum Verständnis BEVOR du 
anfängst, mit ABEL irgendwas zu beschreiben..

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Uiuiui, die alte Kiste gibt es noch?
Mit dem Viech habe ich vor 15 Jahren meine Diplomarbeit gemacht :-)

Franke schrieb:
> Ein Zufallsgenerator ist übrigens ohne externe Bauteile auch "quatsch",
> genau zufällig passiert hier nix.

Mit einem rückgekoppelten Inverter müsste man auch bei diesem Chip 
Erfolg haben, denke ich. Einfach mit dessen Takt bis einige hundert 
zählen und dann das unterste Bit mit dem externen Takt abtasten.

Digitaler Rauschgenerator im FPGA

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ich habe im ispLSI1016 (ohne E) einen vierstelligen Frequenzzähler 
untergebracht, mit LCD-Anzeige. Ein 1MHz Quarzoszillator war noch dran, 
die Wechselspannung mit EXOR für das Display war natürlich auch drin. 
Die Anschlüsse waren so verteilt, dass eine einseitige Leiterplatte 
ausreichte. Das ganze mit Lattice Synario/Abel als Schematic gemalt.

Durch die Kapazität des Displays gab es eine Spannungsverdopplung nach 
Art der ICL7660 Spannungswandler, das führte zu  verschmierter 
Darstellung. Ein Belastungswiderstand an jedem Anschluß hat das kuriert. 
Bei der gewaltigen Stromaufnahme dieser alten CPLDs spielte es auch 
keine Rolle mehr.

Die Zählfrequenz ging etwas über 100 MHz mit dem 80 MHz-Typ.

Wenn ich die Unterlagen noch finde, werde ich sie hier reinstellen.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

das "schematic" zum Frequenzzähler

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

hier noch die ABEL-Files dazu

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das ganze sollte in einem Wobbelsender als "Quarzmarke" verwendet werde. 
Daher ein "Start"-Eingang, der auf der X-Achse verschiebbar getriggert 
wird und ein "Gate out"-Ausgang, der zum Zählen den Wobbelvorgang 
anhalten kann.

von Christian (Gast)


Lesenswert?

Ich denk der Wecker war ne gute wahl ;)

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


Lesenswert?

Schlumpf schrieb:
> Teiler für Uhrenquarz: 15 Register
> Sekundenzähler 0..59 (unsichtbar) : 6 Register
> Minutenzähler 0..59 (sichtbar): 6 Register
> Stundenzähler 0..23 (sichtbar): 5 Register
Ich würde dann aber zur einfacheren Darstellung die einzelnen Stellen 
der Stunden und Minuten im BCD-Code zählen. Denn um von einer Zahl wie 
23 auf die beiden Dezimalstellen für die Anzeige zu kommen, da ist doch 
einiges an Aufwand nötig. Damit ergibt sich:
 Minutenzähler 0..59 (sichtbar): 8 Register
 Stundenzähler 0..23 (sichtbar): 8 Register
 Summe Register: 37

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.