Gatterlösung zur Emittlung des Wertes des niedrigsten gesetzten Bits

OP #3521583
Lesenswert?
• ▲
▼
Ich grüble schon eine ganze Weile, und ein gefühlter halber Wald an 
Papier ist bereits vernichtet :(

Gegeben sei ein 4-bit DIP-Schalter mit den Schaltern D3 D2 D1 D0, von 
denen jeder physikalisch ein- oder ausgeschaltet sein kann.

Durch jeden der geschlossenen Schalter D3...D0 kann ein Signal Sn laufen 
(1) oder auch nicht (0); durch die geöffneten natürlich nie, also immer 
(0).

Ich bin nun am Signal (0) oder (1) interessiert, das durch das 
niedrigste gesetze Bit in D3...D0 läuft.

Es muss dafür ja eine Gatterlösung geben, aber ich denke irgendwo falsch 
rum...

D3...D0  R
0 0 0 0  0  (kein Bit gesetzt, immer 0)
0 0 0 1  S0 (S0 kann 0 oder 1 liefern)
0 0 1 0  S1
0 0 1 1  S0
0 1 0 0  S2
...
1 0 0 0  S3
1 0 0 1  S0
...
1 1 1 1  S0

Wenn mir jemand mit einem Ansatz auf die Sprünge helfen könnte, dann 
würde mich das freuen!

Gruss,
Herb
OP #3521759
Lesenswert?
• ▲
▼
Bitflüsterer schrieb:
> Wobei Peters Lösung voraussetzt, dass die Signale d3 bis d0 (resp. X3
> bis X0) nicht durch die Schalter laufen, sondern gesonderte Eingänge
> in die Logik darstellen.

Ich kann die gesondert machen, das ist kein Problem. Aber danke für den 
Hinweis.

----

Stefan P. schrieb:
> Prioritätsdekoder + Oder

Das verstehe ich jetzt leider nicht. Wie ich das verstehe, würde ein 
Prioritätsdekoder doch so arbeiten:

D3...D0
0 0 0 0 -> 0 0 0
0 0 0 1 -> 0 0 1
0 0 1 x -> 0 1 0
0 1 x x -> 0 1 1
1 x x x -> 1 0 0

Und wie geht's jetzt weiter?

----

Uwe schrieb:
> Dazu müßte die Logik ja wissen welche Schalter geschlossen sind und
> welche nicht. Die Logik kann ja nicht wissen ob das jetzt ne Signal '0'
> ist oder nen Offener Schalter.

Passt aber schon.

Sei S3...S0 = 1110
und D3...D0 = 1100

Mit

y =  D0 &  S0
  | !D0 &  D1 &  S1
  | !D0 & !D1 &  D2 & S2
  | !D0 & !D1 & !D2 & D3 & S3

dann also

y = 0 & 0
  | 1 & 0 & 1
  | 1 & 1 & 1 & 1
  | 1 & 1 & 0 & 1 & 1

Der 3. Term produziert y = 1, wie gefordert.


Sei S3...S0 = 1010 (S2 ist nun offen)
und D3...D0 = 1100 (wie gehabt)

dann

y = 0 & 0
  | 1 & 0 & 1
  | 1 & 1 & 1 & 0
  | 1 & 1 & 0 & 1 & 1

Kein Term produziert y = 1, passt.
Gast #3521989
Lesenswert?
• ▲
▼
> Wobei Peters Lösung voraussetzt, dass die Signale d3 bis d0 (resp. X3
> bis X0) nicht durch die Schalter laufen, sondern gesonderte Eingänge
> in die Logik darstellen.
Klar damit kann man ja herleiten ob es nun ein offener Schalter war oder 
'0' Signal.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.