Info Praktikum

Aufgaben, Lösungen, Klausuren
Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 27.05.2007 16:40

Hab nun die zweite aufgabe gemacht und wollte halt mal bissel was eintippen für die zweite um zu schauen, ob meine lösung mit den timings funzt, da das flipflop ja wahrscheinlich nicht alles an fehlern die man machen kann berücksichtigt,

Jedenfalls hab ich das erste teil von der 3 aufgabe mal ausprobiert, funzt ganz gut aber, mein algorithmus bricht zu früh ab, die letzten beiden werte fehlen mir.

das sind meine events, die ausgewertet werden, oder auch nicht, wenn es ein Out event ist:

werte des event: memIn0 true 50
werte des event: Mux1min0 false 55
werte des event: Out true 60
werte des event: memIn2 true 100
werte des event: memIAddr0 true 150
werte des event: nmemIAddr0 false 152
werte des event: Mux1min0 true 157
werte des event: Out false 162
werte des event: memIAddr1 true 200
werte des event: nmemIAddr1 false 202
werte des event: memIn3 true 250
werte des event: Mux1min3 false 255
werte des event: Out true 260
werte des event: memIAddr0 false 300
werte des event: nmemIAddr0 true 302
werte des event: Mux1min3 true 305
werte des event: Mux1min2 false 307
werte des event: Out false 310 --> mein letztes Out, aber es fehlen 2, Wieso?
werte des event: memIn2 false 350
werte des event: Mux1min2 true 355

zu sagen wäre vielleicht noch, das ich meine events in die Liste mit einem Bubblesort alg. einfüge
und am einschwingen liegt es auch nicht.

wenn jemand eine Idee hat wo ich anfangen könnte zu suchen, oder jemand wenigstens die events geben könnte die mir fehlen, vielleicht kann ich dann drauf schließen, wo der fehler steckt, also freaks meldet euch.

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 28.05.2007 17:37

zum Glück bin ich das Teil mal schriftlich durchgegangen, und hab den fehler entdeckt.

den Fehler hättet ihr auch finden können, ich glaub nicht, dass ich der einzig bin der den fehler macht.

Viel spass den anderen beim suchen, hahaha

Tank
Beiträge: 238
Registriert: 24.10.2006 18:48
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006

Info Praktikum

Beitrag von Tank » 29.05.2007 10:53

ich such noch fehler bei teil 1 ;), glaube da bin ich nicht der einzigste:(

SPO
Beiträge: 86
Registriert: 09.02.2007 13:52

Info Praktikum

Beitrag von SPO » 30.05.2007 01:26

ne biste auch nich, wenns dich beruhigt, für manche mag es einfach sein, aber ich hab mit dem kram echt zu kämpfen und bin grad dabei, dass die wertänderung der signale s0 und s1 ausgegeben werden, aber irgendwie macht es noch nich klick

andi
Beiträge: 508
Registriert: 10.09.2006 18:17
Contact:

Info Praktikum

Beitrag von andi » 30.05.2007 10:54

In deiner Signalklasse muss es ja eine Methode geben, die angeschlossene Senken wegen einer Änderung des Signals \"benachrichtigt\". Dort musst du einfach gucken, ob es überhaupt angeschlossene Senken gibt. Wenn nicht, dann gibst du einfach den Wert dieses Signals aus.

Tank
Beiträge: 238
Registriert: 24.10.2006 18:48
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006

Info Praktikum

Beitrag von Tank » 30.05.2007 11:23

ok funktioniert jetzt
aber der terminal druckt nur begrenzt aus, weiß jemand wie man den bereich vergrößern kann, damit ich alles sehen kann wie in der beispielausgabe?

[quote]In deiner Signalklasse muss es ja eine Methode geben, die angeschlossene Senken wegen einer Änderung des Signals \"benachrichtigt\"[/quote]
so hatte ich mir das dann auch gedacht, aber wenn ein internes signal false war und wieder false bekommt, dann ist dieser ganze strang abgestorben, weil sich nichts geändert hat

sprich: alle betroffenen signal und gatter(und auch wenn diese sich nicht ändern) durchlaufen lassen, dann kommt man auf den ausgabetext

tharon
Beiträge: 23
Registriert: 05.12.2006 20:28

Info Praktikum

Beitrag von tharon » 30.05.2007 12:58

bei einstellung vom termin gibt es einen knopf *unbegrenzter speicher* oder so ähnlich... dann zeigt er dir den kompletten text an

andi
Beiträge: 508
Registriert: 10.09.2006 18:17
Contact:

Info Praktikum

Beitrag von andi » 30.05.2007 13:52

[quote=Tank]ok funktioniert jetzt
aber der terminal druckt nur begrenzt aus, weiß jemand wie man den bereich vergrößern kann, damit ich alles sehen kann wie in der beispielausgabe?[/quote]
Wenn du mit BlueJ arbeitest, müsste die Konsole ein Menü haben, in dem man direkt den Puffer vergrößern kann.

[quote]so hatte ich mir das dann auch gedacht, aber wenn ein internes signal false war und wieder false bekommt, dann ist dieser ganze strang abgestorben, weil sich nichts geändert hat

sprich: alle betroffenen signal und gatter(und auch wenn diese sich nicht ändern) durchlaufen lassen, dann kommt man auf den ausgabetext[/quote]
Ich versteh nicht so richtig was du meinst. Wie abgestorben?
Ich prüfe jedenfalls bei setValue nicht, ob sich das Signal wirklich geändert hat. Das würde sonst auch zu Fehlern führen: alle Objekte Signal haben nach der Initialisierung den Wert \'false\', obwohl es diesen Zustand insgesamt gar nicht gibt (wenn man nicht mit Schaltzeiten arbeitet). An einem Inverter können natürlich nicht gleichzeitig Ein- und Ausgang \'false\' sein, aber im Simulator ist das vor dem Simulieren der Fall. Deswegen werden auch am Anfang der Simulation zunächst die Eingänge auf \'false\' gesetzt. Dabei ändern sich zwar die Eingangssignale faktisch nicht, bewirken aber durch das Setzen an sich, dass die Schaltung erstmal in einen logischen Zustand gelangt.
Vor dem Schleifendurchlauf, in dem das Signal bei setValue seinen Senken eine Neuberechnung aufzwingt prüfe ich einfach, ob [iterator].hasNext() von Anfang an schon false ist, es also keine Senken besitzt. In dem Fall wird einfach der Wert ausgegeben.

Inchiquin
Beiträge: 8
Registriert: 09.01.2007 22:31

Info Praktikum

Beitrag von Inchiquin » 30.05.2007 16:55

Hallo,
ich komme bei der Berechnung des eingeschwungen Zustands nicht weiter (2. Aufgabe). Leider weiß ich noch nicht wirklich, wie ich diesen Teil der Aufgabe umsetzen soll.
Verstanden habe ich das bis jetzt so: Man lässt die Berechnung wie in der ersten Aufgabe ausführen. Da es eine Rückkopplung gibt, käme eine Endlosschleife dabei herraus. Um das zu verhindern, lässt man die Berechnung nur n-mal durchführen. Ist das soweit korrekt?
Mein Problem ist, dass ich nicht weiß, woher ich meine Anzahl n bekomme. Reicht es ,wenn ich es einmal für dieses FlipFlop durchprobiere (also auf Papier) und somit einen festen Wert haeb. Oder muss ich dass irgendwie allgemein berechnen (da es ja auch andere Schaltungen geben kann)? Und wenn ja, wie geht das?

Wäre nett, wenn mir jemand helfen könnte.
Allradantrieb bedeutet, dass Dein Auto dort stecken bleibt, wo der Abschleppwagen nicht hinkommt.

Tank
Beiträge: 238
Registriert: 24.10.2006 18:48
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006

Info Praktikum

Beitrag von Tank » 01.06.2007 18:43

würde man im funcsimulator
2mal il1 auf false setzen
würden s0 werte herauskommen, die es eigentlich nicht geben würde

nja wurst
teil 2 ;)

thx für den puffer tipp

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 02.06.2007 09:16

Inchiquin: zu deiner Frage, das mit den n mal durchlaufen sollte nur ne abbruchbedingung sein, wenn sich das Ding nicht einschwingen kann, programmier es so, das du einfach schaust, ob sich der werd am ausgang ändert, wenn er sich nicht ändert brauchst du kein neues Event zu erstellen, ändert sich ja eh nix, funzt wunderbar, es gibt aber da noch ein problem, das bekommst du dann in der dritten aufgabe, bei der ersten schaltung, das ist das oben beschriebene Problem, aber mach erst mal das.

Hab da mal ne andere frage kann das sein, das die werte für die 2. schaltung bei dritens nicht stimmen, ich hab es mal per hand gemacht, weil ich eben falsche werde bekommen habe, komm aber auf das gleiche was mein Prog. sagt. weil bei mir kommen alle werde noch durch, bevor man das clk auf 0 setzt, kann mir einer sagen, was ich falsch mache.

am buffer kann es ja nicht liegen, der verzögert die ausgabe von den Outs ja nur um 3 zeiteinheiten, und ff hab ich so prog. das, wenn clk 1 ist wird das ergebnis, der wert vom 2 eingang, bei clk null passiert halt nix, also ausgang bleibt so.

Inchiquin
Beiträge: 8
Registriert: 09.01.2007 22:31

Info Praktikum

Beitrag von Inchiquin » 02.06.2007 17:29

Danke Dogmi, werde das mal so probieren.
Allradantrieb bedeutet, dass Dein Auto dort stecken bleibt, wo der Abschleppwagen nicht hinkommt.

Benutzeravatar
Handballfreak
Beiträge: 69
Registriert: 09.01.2007 17:22

Info Praktikum

Beitrag von Handballfreak » 02.06.2007 21:31

mal ne generelle frage :
bei mir speichert es die werte bei der ersten teilaufgabe nicht. immer wenn ein wert geändert wird - z.bsp. i3.setValue(true); - dann sind die eingänge i1 und i2 wieder auf false, obwohl sie ja eigentlich noch auf true sein sollten. woran kann das liegen ? bzw. wieso werden die variablen wieder zurück gesetzt (wenn nach einem befehl ein weiterer auf die klasse zugreift) ?

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 03.06.2007 09:21

in der methode setValue gibt es bei dir die zeile \"this.wert=wert;\" , wenn ja dann sollte es eigentlich funzen, such dann einfach mit System.out.println(); wo sich der wert wieder ändert und beheb es.

Benutzeravatar
Handballfreak
Beiträge: 69
Registriert: 09.01.2007 17:22

Info Praktikum

Beitrag von Handballfreak » 03.06.2007 10:53

beim Durchlaufen von setValue funzt es ja. nur wenn der nächste setValue Befehl aus dem FunctionalSimulator bearbeitet wird, hat er die Wertänderungen aus dem vorherigen Durchlauf bereits wieder vergessen. ( Er bearbeitet i1.setValue(true); ... setzt i1 auf true ... startet die bearbeitung von i2.setValue(true); ... und ab da ist i1 wieder auf false ... als ob die wertänderungen nur bestand haben, so lange wie er sich in der Signalklasse aufhält, und wenn er sie nach dem Verlassen wieder darauf zurückgreift, sind die werte wieder ihre Standartdeklarationen - also 0 oder false )

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 03.06.2007 17:57

ja, ich glaub, du darfst die events nicht mit setValue setzen. schreib eine neu methode à la

public void setValueNeu(Boolean wert){
this.wert=wert;
}

so vielleicht, und setze die events so. du brechnest ja den output, und fügst ihn als neues event ein, also sollte nix, in setvalue noch stehen. keine ahnung wie bei dir setvalue aussieht. jedenfalls berechnest du den einschwing zustand neu, würd ich sagen.

daruffneck
Beiträge: 105
Registriert: 19.10.2004 16:49

Info Praktikum

Beitrag von daruffneck » 05.06.2007 09:27

Hi Leutz,

ich hab da ma ne andre Frage. Kann mir bitte jemand sagen, wer dieses Jahr für das Praktikum verantwortlich ist?! Sprich bei wem ist die Verteidigung und bei wem schreibt ihr euch dafür ein. Ich müsste mir da nämlich auch noch nen Termin holen.

Am hilfreichsten wäre eine Internet- oder noch besser eine E-Mail-Adresse!

SChonma danke im Voraus

Benutzeravatar
rayman
Beiträge: 76
Registriert: 16.01.2006 20:06
Name: Robert Rasche
Geschlecht: männlich
Studienrichtung: Informationssystemtechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Info Praktikum

Beitrag von rayman » 05.06.2007 22:26

Herr Schöne und Frau Pöckel sind da die Ansprechpartner. Die eMail-Addressen sind auf der Seite von Prf. Hochberger zu finden. Komm einfach vorbei, wenn du schon fertig bist. Zurzeit ist noch viel Zeit und Platz für eine Verteidigung.

Info-Haus - Fakultätsrechenzentrum - E40
Mi 15:00 bis 21:00 und
Fr 15:00 bis 20:00
Es spielt keine Rolle, ob etwas egal, belanglos oder unerheblich ist.

bluebit
Beiträge: 3
Registriert: 15.04.2007 14:46

Info Praktikum

Beitrag von bluebit » 06.06.2007 14:28

Hi Jungs, ich hab mal ne Frage: hat Herr Hochberger schon was gesagt, ob wir die 2. Teilaufgabe schon anfangen sollen ?
danke

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 06.06.2007 14:49

also an dem tag nach himmelfahrt war glaub ich was zur eventqueue dran, da hatte man dann \"alles\" wissen, was man für den zweiten teil braucht. ich glaub diese woche fangen wir mit vererbung an, was für den dritten teil ganz praktisch ist.
also ich glaube nicht, dass er explizit sagt, dass man anfangen soll, denn wir sollen es ja nebenbei machen, er wird also stillschweigend vorraussetzen, dass man weiter dran arbeitet.
The honor is still mine.

switch
Beiträge: 134
Registriert: 26.10.2005 17:51

Info Praktikum

Beitrag von switch » 07.06.2007 11:26

hallo, ich habe noch ein grundlegendes problem beim programmieren mit BlueJ..

ich habe mir das buch \"java lernen mit blueJ\" von Barnes/Kölling besorgt.

nach dem öffnen der beispieldateien kann ich - wie im buch einfach beschrieben - keine instanzen der vorgegebenen klassen bilden: rechts-klick mit der maus auf eine klasse -> \"new object..\"

in der praxis werden mir im kontextmenü nur die befehle OpenEditor/Compile/Inspect/Remove angezeigt, das erstellen von neuen instanzen fehlt vollkommen.


kann wer helfen?

andi
Beiträge: 508
Registriert: 10.09.2006 18:17
Contact:

Info Praktikum

Beitrag von andi » 07.06.2007 11:40

Soweit ich weiß, musst du eine Klasse erst Übersetzen bevor du ein neues Objekt erstellen kannst.

Benutzeravatar
rayman
Beiträge: 76
Registriert: 16.01.2006 20:06
Name: Robert Rasche
Geschlecht: männlich
Studienrichtung: Informationssystemtechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Info Praktikum

Beitrag von rayman » 07.06.2007 11:42

Hast du die datein schon mal kompiliert? Das muss logischerweise vorher gemacht werden...
Es spielt keine Rolle, ob etwas egal, belanglos oder unerheblich ist.

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 07.06.2007 15:16

So leute ich, frag euch noch ne letzte frage, dann geb ich es auf euch in sachen java überhaupt zu fragen.

also dritte aufgabe funzt bei mir richtig geil, ich hab nur ein so kleines problem, die ersten beiden gatter bei drittens laufen super durch, ohne probleme nur im letzten was ja nun doch bissel kompliziert ist und ich eh keine ahnung hab was das macht (zum glück muss ich nur die einzelteile programmieren), hab ich einen kleinen schönheitsfehler, ich hab einen wert zu viel und zwar den hier

1580 memOut3 0

der Rest ist 1 zu 1 das selbe. habt ihr ne ahnung, wie ich den fehler finden soll, weil alles andere funzt ja. Und der Debugger, ist auch keine grosse hilfe.

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 07.06.2007 15:35

so für dogmi ein hoffentlich motivierender ratschlag 8-)
erste frage, hast du dir mal die hinweise angschaut,die man beachten soll, z.b. wenn man an einem gatter zur gleichen zeit zwei änderungen hat, dass man nur das \"neuste\" quasi das letze der berechneten events verwendet ?

wenn der rest geht, müssten deine klassen völlig korrekt sein, sonst würde nur müll entstehen, kann ich aus erfahrung berichten :) das wurde nämlich nicht fertig mit simulieren ;-)

also irgendwie kommt in die eventqueue ein event rein, dass dort nicht sein dürfte.

wenn du schauen willst, ob deine klassen gehen, dann programmier dir doch ne testklasse, wo du auch ne schaltung aufbaust und dann nen paar events reinschickst. braucht nich mal rückgekoppelt zu sein, weil das ist im endeffekt egal wohin das event überall geht, wichtig ist, dass es entweder da ist oder in deinem fall, dass es eben nicht entsteht.
ist n bissl aufwand, aber mir hats geholfen auch alle sonderfälle mal durchzuspielen.
The honor is still mine.

Gesperrt

Zurück zu „1. und 2. Semester“