Hallo, ich bin leider noch ein ziemlicher Anfänger im VHDL-Bereich. Ich hab ein paar Fragen und hoffe, dass ihr mir vielleicht helfen könntet. Nun zu meinen Fragen: Könnte mir jemand die Aufgabe in simplen Worten erklären und eventuell auch noch sagen, ob ich paar Punkte von der Aufgabenstellung mit meinem Code schon gelöst habe. Außerdem wäre ich noch dankbar, wenn ich eine Erklärung kriegen könnte, wie ich bei dem Code vorankommen kann. Sie können die Aufgabenstellung und meinen derzeitigen VHDL-Code vom Anhang entnehmen. Die Aufgabe muss ich bis zum 27.04. abgeben, d.h., dass ich noch eine knappe Woche dafür Zeit habe. Ich bedanke mich schon im Voraus bei jeglicher Art von Hilfe. MfG
Rückfrage: Was geht im Code, wenn dieser im Simulator läuft? a) kann per Tastendruck, eine LED aktiviert werden? b) wie a) und wird ein Timer auf einen Wert gesetzt? c) wie b) und dieser "immer" beim Sekundentakt dekrementiert, sofern >0? d) ... bei erreichen von 0 wird der LED Ausgang inaktiv gesetzt Re triggern ... ist einfach den Tiger vor Ablauf bewahren und erneut ab Startseite sekündlich dekrementieren. https://www.tu-chemnitz.de/etit/sse/Sonstiges/vhdl_buch.html https://www.vhdl-online.de/vhdl_workshop/lab_8
Beitrag #6664348 wurde vom Autor gelöscht.
Beitrag #6664357 wurde vom Autor gelöscht.
Ümeyir G. schrieb: > Sie können die Aufgabenstellung und meinen derzeitigen VHDL-Code vom > Anhang entnehmen. Code kannst und solltest du direkt als .vhd Datei anhängen. Zur Aufgabe: Aufgaben in diesem Stil, vermutlich von der gleichen Vorlesung, kamen in den letzten Wochen öfter. Die Aufgabe ist wie die anderen Aufgaben die hier gestellt wurden recht einfach. Du brauchst quasi eine Uhr, also etwas das eine Zeitdauer lang zählt. Und dann soll das Licht an sein, solange der Zähler kleiner als sein Maximalwert (das ist der Wert der Schalter) ist. Durch Tastendruck kann der Zähler wieder auf Null zurückgesetzt werden. Was ist der Defaultzustand und auch der Zustand der durch Reset ausgelöst werden soll? Licht ist aus, der Zähler steht auf seinem Maximalstand. Aber: Du kannst auch einen Zähler nehmen der runterzählt. Der Defaultzustand ist dann Zählerstand Null und licht aus. Bei Tastendruck wird der Zähler auf den Wert gesetzt der über die Schalter eingestellt wird. Zu deinem Code: - Was sollen Q und D? Die werden nicht benötigt. - Sonst macht der Code noch nichts von dem was in der Aufgabe gefordert wird. - ieee.std_logic_arith.all und use ieee.std_logic_unsigned.all sind obsolet. Verwende die ieee.numeric_std.all . - Du kannst dir einige Klammern sparen. - Verwende einen ordentlichen Editor der dir auch die Syntak schön hervorhebt wie https://notepad-plus-plus.org/ und lass deine Datei mit der Endung .vhd, es gibt keinen Grund da .txt ranzuhängen. Im Anhang habe ich dir eine Testbench geschrieben die die Schalter auf den Wert 13 setzt. Dann wird der Button gedrückt und so lange gewartet bis das Licht wieder ausgeht. Das sind 13 Takte also bei den eingestellten 100 MHz 130 ns. Die Testbench wartet 200 ns. Danach wird der Button erneut gedrückt, allerdings nicht lange genug gewartet sondern erneut gedrückt. Danach wird erneut lange genug gewartet, dass das Licht wieder aus geht. Button wird erneut gedrückt und dann kommt schon recht früh der Reset. Die Testbench reicht um das alles zu testen, die brauchst du also gar nicht anfassen oder umzuschreiben. Ausserdem im Anhang ein Konstrukt für deine Komponente mit Kommentaren. Die hat alle benötigten Eingänge. Was du machen sollst ist unterhalb der Zeile architecture Behavior of lightLED is die Funktionalität zu beschreiben. Edit: Und schon einen Fehler gemacht, der Button ist active low, also der ist gedrückt wenn der eine logische '0' liefert. Ist aber erstmal egal für dich. Ich habe das jetzt jedenfalls mit active low Button in der Testbench beschrieben (und meine erste Antwort gelöscht). Lexa81 schrieb: > Was geht im Code, wenn dieser im Simulator läuft? Exakt, simuliere deine Beschreibung. Dadurch lernst du am meisten. Lies die Fehlermeldungen und versuche sie zu verstehen. Gerade Modelsim hat recht aussagekräftige Fehlermeldungen die sich auch gut googeln lassen. Edit2: Der Reset ist ebenfalls active low, also jetzt mit korrekter Testbench. Was unklar ist aus der Zeichnung: Da geht das Licht sofort an wenn der Button gedrückt wird. Das sieht nach Kombinatorik aus, aber ist nicht genauer spezifiziert. Ich würde sagen eine getaktete Beschreibung ist ebenfalls korrekt.
Ümeyir G. schrieb: > Die Aufgabe muss ich bis zum 27.04. abgeben, d.h., > dass ich noch eine knappe Woche dafür Zeit habe. Der Toni im Beitrag "VHDL Code Aufgabe, HILFE! :/" hat sich da schon früher Gedanken zum Thema gemacht... > Außerdem wäre ich noch dankbar, wenn ich eine > Erklärung kriegen könnte, wie ich bei dem Code vorankommen kann. Du musst dir eine Hardware z.B. in Form eines rücksetzbaren Zählers mit nachgeschaltetem Vergleicher auf ein Blatt Papier malen. Und dann beschreibst du diese Hardware mit der HardwareBESCHREIBUNGssprache VHDL. Mach am Anfang ein einfaches Blinklicht: http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html Wenn du das kannst, musst du noch einen Taster und die Schalter für die Leuchtdauer einlesen und hast dann alle Komponenten, die man für die Lösung der Hausaufgabe braucht. Auch hier gilt: das ist eine hübsche kleine Fingerübung. Ein Zähler, der hoch zählt und per Tastendruck zurückgesetzt wird. Der Dozent gefällt mir, wenigstens nicht gleich einen Arbiter für einen Speichercontroller eines Quadcores zu Beginn. Kurz: wenn der fertige VHDL-Code mehr als 1 Bildschirmseite braucht, dann ist er zu umständlich.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Wenn du das kannst, musst du noch einen Taster und die Schalter für die > Leuchtdauer einlesen und hast dann alle Komponenten, die man für die > Lösung der Hausaufgabe braucht. Wollen wir mal hoffen, dass dem Herrn nun "ein Licht aufgegangen ist" :-) Lothar M. schrieb: > Der Dozent gefällt > mir, wenigstens nicht gleich einen Arbiter für einen Speichercontroller > eines Quadcores zu Beginn. Und wenn die Dozenten den Studenten auch noch beibringen würden, ERST die Schaltung hinzumalen und DANN die Beschreibung der Funktion der Bausteine zu formulieren, wäre es ganz perfekt. Die VHDL ergibt sich dann eigentlich von Alleine. So ist leider davon auszugehen, dass sich der Student bei der nächsten Aufgabe wieder irgendwo registriert und eine one-time-posting absetzt.
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.