Frage zur Angabe von Hausaufgaben 2.1

AlexanderF
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 140
Registriert: 2. Mai 2010 17:55

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von AlexanderF »

hallo,

ich habe auch eine Frage zu dieser Hausübung.

ich verstehe nicht ganz, wie das request Signal funktionieren soll.

Wenn ich die Schnittstellen und die Skizze richtig verstehe,
soll das request Signal (genau so wie data und id)
von allen Devices benutzt werden können,

aber, so wie ich es verstanden habe,
kann dann zu jedem Zeitpunkt immer nur ein device das request Signal belegen,
und alle anderen müssen auf hochohmig schalten.
Aber das würde bedeuten, dass immer nur ein Device ein request anfordern kann?
Normalerweise müsste es aber so sein, dass auch mehrere devices gleichzeitig ein request senden dürfen, oder?

also irgendwas muss ich wohl noch nicht richtig verstanden haben?
kann mir da jemand weiterhelfen?

mit freundlichen Grüßen,
Alexander

rey_
Neuling
Neuling
Beiträge: 6
Registriert: 18. Apr 2011 14:21

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von rey_ »

Du hast die Skizze schon richtig verstanden
jedes Device benutzt das gleiche request "Kabel"

aber es können auch ruhigen Gewissens mehrere Devices zur gleichen Zeit ein request senden
Probleme würden nur entstehen wenn einige eine 1 und andere eine 0 senden würden
dann wäre es unmöglich vorherzusagen was denn nun beim busmaster ankommt

lange rede kurzer Sinn
solange jeder der anfragt eine 1 schickt und der Rest auf hochohmig schaltet ist alles in Butter

Ater
Windoof-User
Windoof-User
Beiträge: 41
Registriert: 16. Aug 2009 02:31

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von Ater »

Leider nein, da der Busmaster nicht auf Hochohmig prüfen kann und es damit ein Problem gibt falls kein Device ein Request einfordert. (In Hardware nicht im Simulator)

rey_
Neuling
Neuling
Beiträge: 6
Registriert: 18. Apr 2011 14:21

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von rey_ »

kurze Frage

wieso sollte der Busmaster auf Hochohmig prüfen?
er prüft lediglich ob an request etwas anliegt oder nicht

nach Definition sollte ein solches if ohne Probleme auch Umsetzbar sein

Ater
Windoof-User
Windoof-User
Beiträge: 41
Registriert: 16. Aug 2009 02:31

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von Ater »

Da habe ich mich etwas unklar ausgedrückt.
Wenn eine 1 kommt gibt es kein Problem, wenn allerdings kein Device einen Request stellt und somit z anliegt garantiert dir keiner das der Busmaster das z nicht auch zu 1 auswertet und du somit dauer request hast.
(Kann allerdings auch sein das da meine Hardware Kentnisse nicht ausreichend sind, ich bin der Meinung man könne Gatter bauen die bei Z zu 1 auswerten wie man auch welche bauen kann die zu 0 auswerten.)

rey_
Neuling
Neuling
Beiträge: 6
Registriert: 18. Apr 2011 14:21

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von rey_ »

machbar ist alles, die Regel, irgendwie, ist allerdings nicht immer sinnvoll...
kurz um, nein z wird nicht zu 1 evaluiert, weder im Simulator noch in Hardware
denn anders als X ist z ein tatsächlich definierter zustand den man nicht irgendwie bekommst sondern absichtlich herbeiführt, Stichwort Tri-State Buffer
bitte korrigieren falls ich mich irre

Ater
Windoof-User
Windoof-User
Beiträge: 41
Registriert: 16. Aug 2009 02:31

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von Ater »

Z ist einfach ein nicht verbundenes Kabel. Absichtlich herbeiführen kannst du auch einen undefinierten Zustand das ist kein Kriterium.
Was passiert jetzt in Hardware wenn du z.B. 1&z hast wird das (nicht im simulator!) zu 0 oder 1 oder ist undefiniert?
Soweit ich weiß hängt das von der Bauart der Transistoren und Gatter ab.

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von Thorti »

Ater hat geschrieben:Z ist einfach ein nicht verbundenes Kabel.
So kann man es beschreiben.
Absichtlich herbeiführen kannst du auch einen undefinierten Zustand das ist kein Kriterium.
Das gibt dann aber einen Kurzschluss :cry: Das wird zum Glück von den Tools abgefangen.
Was passiert jetzt in Hardware wenn du z.B. 1&z hast wird das (nicht im simulator!) zu 0 oder 1 oder ist undefiniert?
Soweit ich weiß hängt das von der Bauart der Transistoren und Gatter ab.
Wenn man das Z auf den Bus legt, wirkt sich das nicht auf den Wert aus, der schon auf dem Bus liegt ( 0 oder 1).

Gruß
Thorsten
Assistent zur Vorlesung TGDI im WS 11/12

franzose
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 146
Registriert: 9. Okt 2009 00:08

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von franzose »

Thorti hat geschrieben:
Was passiert jetzt in Hardware wenn du z.B. 1&z hast wird das (nicht im simulator!) zu 0 oder 1 oder ist undefiniert?
Soweit ich weiß hängt das von der Bauart der Transistoren und Gatter ab.
Wenn man das Z auf den Bus legt, wirkt sich das nicht auf den Wert aus, der schon auf dem Bus liegt ( 0 oder 1).
wenn man Z an einen Bus anschliesst, ist mir klar dass der andere Wert stehen bleibt.

was passiert aber bei einem solchen Konstrukt in REALER Hardware:

Code: Alles auswählen

wire c = 1'bz;

if (c == 0) begin
    // c ist gleich 0
end

if (c == 1) begin
    // c ist gleich 1
end

if ((c == 0) | (c == 1)) begin
    // c ist gleich 1 oder gleich 0
end

if (1 & c) begin
    // c mit 1 verunden
end

if (0 | c) begin
    // c mit 0 verodern
end
wo springt er jetzt überall rein? Soweit ich das verstanden hatte, kann man in realer Hardware ja nicht direkt auf Z testen (z.B. mit ===)

Benutzeravatar
JanM
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 157
Registriert: 24. Aug 2010 10:58

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von JanM »

Ich würde sagen du springst nirgends rein, da alle tests false ergeben.

franzose
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 146
Registriert: 9. Okt 2009 00:08

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von franzose »

wenn das stimmt, dann könnte man aber doch auf Z in realer Hardware prüfen:

Code: Alles auswählen

if ((c == 0) | (c == 1)) begin
    // c ist gleich 1 oder gleich 0
end
else begin
    // c ist Z
end

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von dschneid »

Auf realer Hardware würde die Sache einfach zufällig sein, denn z ist eben nicht wirklich ein Wert, sondern bedeutet, dass die Leitung nicht auf ein definiertes Niveau getrieben wird. Ihr Status hängt also von Umgebungseffekten ab (Strahlung und Magnetfelder, die eine Spannung induzieren), und dann kommt es darauf an, ob im relevanten Moment die Hardware, auf der die Schaltung realisiert wurde, das zufällig gerade anliegende Niveau als 0 oder 1 interpretiert. Das kann man aber zur Synthesezeit schlichtweg nicht sagen. Also ist es eine schlechte Idee, z irgendwie als dritten möglichen Wert missbrauchen zu wollen.

Ater
Windoof-User
Windoof-User
Beiträge: 41
Registriert: 16. Aug 2009 02:31

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von Ater »

Genau das ist ja mein Problem.
Der Bus ist wenn kein Device einen Request stellt ungetrieben.

Wie sollte ich nun im Devicemaster erkennen ob auf dem Bus eine 1 vom Request liegt oder zufällig gerade ein passendes Niveau erreicht wurde (bzw. in diesem Fall wahrscheinlich noch vom letzten mal bestehen würde).
Dies muss ich ja tun da ich auf den Request mit einem Grant reagieren kann/will.

Ich sehe immer noch nicht wie der Bus, so wie er gezeichnet und beschrieben ist, elegant realisiert werden kann außer mit "oder-Konstruktionen" im Bus oder ähnlichen Handständen.

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von Thorti »

Ater hat geschrieben:außer mit "oder-Konstruktionen" im Bus oder ähnlichen Handständen.
Das ist keine schlechte Idee.

Gruß
Thorsten
Assistent zur Vorlesung TGDI im WS 11/12

Benutzeravatar
hymGo
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 209
Registriert: 4. Okt 2009 23:17

Re: Frage zur Angabe von Hausaufgaben 2.1

Beitrag von hymGo »

Sollen die Devices mehre Takte Daten senden bzw dazu in der Lage sein? Und wenn ja, wird das Datensenden unterbrochen falls ein Device mit höherer Priorität requestet?

Eine weite Frage wäre, wozu benötigte ich überhaupt die Clock? Könnte man nicht einfach alles über assign regeln und die clock und den reset weglassen?

Antworten

Zurück zu „Archiv“