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
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..
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.
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
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.
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
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..
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.