Fehler in Musterlösung 10 A1 b)

Moderator: Eingebettete Systeme 1

vkrastev
Neuling
Neuling
Beiträge: 2
Registriert: 3. Jan 2005 11:18

Fehler in Musterlösung 10 A1 b)

Beitrag von vkrastev »

Ich denke, dass es ein Fehler in das Abbildung 1) gibt. Signal C kommt nach unten erst nach 20 NS beim clock down. Es ist falsch angegeben dass C beim INPUT down sich ändert.

Grüsse

db
DON'T PANIC
Beiträge: 42
Registriert: 18. Apr 2007 00:37

Re: Fehler in Musterlösung 10 A1 b)

Beitrag von db »

Hi!

Vielleicht kannst du nochmal erklären, was du genau meinst.
Bei Signal C ist das Input-Signal zu sehen (c = input.read()), genau wie bei Signal B. Es wird lediglich der kurze Wertwechsel von Input "verschluckt", obwohl der Thread von TestC auf input und clk sensitiv ist. Nach dem ersten Flankenwechsel (clk wird positiv) wird doit() ausgeführt und input ausgegeben. Dann muss der Thread aber erst 5ns warten, bis er wieder reagieren kann (die dynamische sensitivity list "überschreibt" die oben angegebene). Deshalb gibt es keine Reaktion auf die kurze Wertänderung von Input.
5ms vor dem nächsten Wechsel von Input passiert nix, also reagiert der Thread auf den Input-Wertwechsel.

momoto
Nichts ist wie es scheint
Beiträge: 23
Registriert: 14. Feb 2008 21:43

Re: Fehler in Musterlösung 10 A1 b)

Beitrag von momoto »

Hallo,

C sieht die kleine Änderung von Input nicht und verschläft auch die zweite Wertänderung, kurz vor dem Flankenwechsel (clk wird negativ).

Ins Musterlösung ist falsch angegeben, dass C auf dem zweiten Wertänderung aufmerksam ist. Bitte das Bild anschauen.
Fehler in Musterlösung 10Ab
Fehler in Musterlösung 10Ab
Fehler Musterlösung 10A1b.png (22.17 KiB) 383 mal betrachtet

Felix Madlener
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 114
Registriert: 14. Okt 2005 10:01
Kontaktdaten:

Re: Fehler in Musterlösung 10 A1 b)

Beitrag von Felix Madlener »

Die Musterlösung ist, soweit ich das erkennen kann, an dieser Stelle korrekt.

Der Thread doit() im Modul TestC ist sensitiv auf input _und_ clk. Er wird deshalb durch die fallende Flanke auf input aktiviert und setzt C auf 0. Der von Dir markierte Flankenwechsel auf clk fällt hingegen in das wait(5 ns) und aktiviert noch nicht einmal den Prozess.

momoto
Nichts ist wie es scheint
Beiträge: 23
Registriert: 14. Feb 2008 21:43

Re: Fehler in Musterlösung 10 A1 b)

Beitrag von momoto »

Hallo,

komischerweise ist nach Ausprobieren mit SystemC ganz andere Abbildung zu sehen.

Kann mir jemand erklären, wo das Fehler liegt?

Anbei die SystemC Sourcecode und log.vcd.

Danke!!!
uebung.cpp
SystemC Source als CPP
(1.79 KiB) 14-mal heruntergeladen
VCD Vorschau
VCD Vorschau
10A1b.png (1.92 KiB) 343 mal betrachtet

db
DON'T PANIC
Beiträge: 42
Registriert: 18. Apr 2007 00:37

Re: Fehler in Musterlösung 10 A1 b)

Beitrag von db »

Auf den ersten Blick würde ich sagen, deine Clock stimmt nicht (zu schnell). In der Aufgabe vergehen zwischen zwei positiven Flanken der Clock 20ns.
Beachte bitte die Länge des 5ns Pfeils auf dem Bild! Dann wird auch klar, dass der zweite clk.pos event den darauf folgenden Input event nicht beeinflusst und deshalb die Mulö korrekt ist.

momoto
Nichts ist wie es scheint
Beiträge: 23
Registriert: 14. Feb 2008 21:43

Re: Fehler in Musterlösung 10 A1 b)

Beitrag von momoto »

Alles klar. Danke.

Wenn den Takt 20ns ist, dann ist die Musterlösung korrekt.

Mir war nicht klar wie lang der Takt eigentlich ist.

Antworten

Zurück zu „Eingebettete Systeme 1“