Hi, wollte mal fragen, ob jmd weis, ob es ein XOR-Gate mit 8 Eingängen gibt. Also nicht ein Bauteil mit 4 XOR-Gates mit je 2 Eingängen sondern eben ein Gate (/Bauteil) mit 8, damit man die Zustandsänderung von 8 Bits erkennen kann. Grüße, Chris
:
Was soll den dessen funktion sein ? Kannst mal die Gleichung hinschreiben ? So in der Art : out = in1 x in2 x in3 x in4 x in5 x in6 x in6 x in7 x in8
Christian Illy wrote: > wollte mal fragen, ob jmd weis, ob es ein XOR-Gate mit 8 Eingängen gibt. > Also nicht ein Bauteil mit 4 XOR-Gates mit je 2 Eingängen sondern eben > ein Gate (/Bauteil) mit 8, damit man die Zustandsänderung von 8 Bits > erkennen kann. Das wäre dann eine Parity-Erkennung, d.h. Du kannst damit nur erkennen, ob sich eine ungerade Anzahl an Bits ändert. Alle anderen Zustandsänderungen bewirken keine Änderung des Ausgangs. Peter
Christian Illy wrote: > Hi, > > wollte mal fragen, ob jmd weis, ob es ein XOR-Gate mit 8 Eingängen gibt. Exor geht eigentlich nur mit 2 Eingängen. > Also nicht ein Bauteil mit 4 XOR-Gates mit je 2 Eingängen sondern eben > ein Gate (/Bauteil) mit 8, damit man die Zustandsänderung von 8 Bits > erkennen kann. Ich nehme mal an, dass Du keinen Komparator meinst (z.B. HC688). Da fällt mir nur ein Paritätsgenerator ein, z.B. HC280, 4531 oder 40101. Aber die erkennen auch nicht jede Änderung. Vielleicht kannst Du ja mit einem Komparator HC688 tricksen, den einen Ports direkt an den zu prüfenden Bus anlegen, den anderen über RC-Glieder als zeitliche Verzögerung. Dann entsteht bei jeder Änderung kurzzeitig ein Unterschied, worauf der Ausgang einen Impuls abgibt. ...
@ Hannes Lux (hannes) >Exor geht eigentlich nur mit 2 Eingängen. Nööö. Das ght mit einer X-beliebigen Anzahl. > Also nicht ein Bauteil mit 4 XOR-Gates mit je 2 Eingängen sondern eben > ein Gate (/Bauteil) mit 8, damit man die Zustandsänderung von 8 Bits > erkennen kann. Das geht so wie du geschrieben hast nur mit Speicherregister + 8fach XOR, also ein Vergleich auf Gleichheit oder Ungleichheit. Ein reines 8-fach XOR würde nämlich den gleichzeitigen Wechsel von zwei Bits nicht erkennen. Dein 8-fach XOR kannst du aus 2 oder 4-fach XORs zusammenbasteln (kaskadieren). Wird dann zwar langsamer, aber geht. >Vielleicht kannst Du ja mit einem Komparator HC688 tricksen, den einen >Ports direkt an den zu prüfenden Bus anlegen, den anderen über >RC-Glieder als zeitliche Verzögerung. Dann entsteht bei jeder Änderung Sowas sollte man sich gar nicht erst angewöhnen, im Zeitalter von CPLDs undFPGAs schon gar nicht. MFG Falk
> Nööö. Das ght mit einer X-beliebigen Anzahl. Das ist sicher eine Frage der Auslegung der Definition. EXOR bei mehr als zwei Eingängen pro Ausgang halte ich für Paritätsprüfung. > Sowas sollte man sich gar nicht erst angewöhnen, im Zeitalter von CPLDs > undFPGAs schon gar nicht. Das ist wohl wahr, aber könnte er mit CPLDs, FPGAs oder GALs umgehen, dann hätte sich die Frage nicht gestellt. Wenn es nicht übermäßig schnell sein muss, dann würde ich einen Tiny2313 dafür einsetzen, der ist zwar dafür schlechter geeignet als ein CPLD, aber mit dem kann ich (im Gegensatz zum CPLD oder FPGA) umgehen. Das wäre dann mein erstes Programm ohne Interrupt. Einfach in einer Schleife den Port einlesen, mit Vorzustand vergleichen und bei Änderung Impuls und Impulszeit setzen und neuen Wert merken, dann noch Impulszeit runterzählen und ggf rücksetzen. Oder gleich den PCI verwenden, dann muss die Mainloop nur die Impulsdauer bearbeiten. Da stellt sich dann allerdings die Frage, ob der AVR nicht den restlichen Teil der (bisher nicht genannten) Aufgebe nebenbei mit erledigen kann. Ich würde mir das mit den RC-Gliedern also auch nicht antun. ...
>>Exor geht eigentlich nur mit 2 Eingängen. > > Nööö. Das ght mit einer X-beliebigen Anzahl. Bei einem exklusiven Oder ist der Ausgang 1, wenn die Eingänge alle verschieden sind. Da es nur zwei Bitzustände gibt, geht das auch nur mit zwei Eingängen. Man kann sich auch andere Definitionen denken, aber da ist es dnan nicht eindeutig. Soll der Ausgang 1 sein, wenn alle Eingänge bis auf einen 1 sind? Oder wenn nur genau ein Eingang 1 ist? Oder soll es, wie andere hier schreiben, 1 sein, wenn die Zahl an Einsen an den Eingängen ungerade ist? Welche Definition auch immer gemeint ist, wenn es nicht genau zwei Eingänge hat, sollte man es nicht xor nennen.
Ich denke es ist an der Zeit den OP mal zu fragen, was er denn eigentlich machen will.
@ Rolf Magnus (Gast) >Bei einem exklusiven Oder ist der Ausgang 1, wenn die Eingänge alle >verschieden sind. Das ist nur EINE Interpretation. Man kann auch sagen, dass der Ausgang 1 ist, wenn die Anzahl der 1 am Eingang ungerade ist. Diese Interpretation ist auf eine beliebige Anzahl Eingänge erweiterbar, und genau das kommt auch raus wenn man XORs kaskadiert. >Welche Definition auch immer gemeint ist, wenn es nicht genau zwei >Eingänge hat, sollte man es nicht xor nennen. Hmm, Geschmackssache. Flamewar ON. ;-) MFG Falk
> Das ist nur EINE Interpretation.
Es ist eine von mehreren Bedingungen, die bei einem XOR gelten. Warum
hast du die anderen, die ich noch geschrieben habe, ignoriert? Also:
- Wenn genau ein Eingang 1 ist, ist der Ausgang 1
- Wenn genau ein Eingang nicht 1 ist, ist der Ausgang 1
Diese (und die beiden anderen Bedingungen) gelten für ein XOR. Da es
aber kein Gatter mit mehr als zwei Eingängen geben kann, für das alles
gilt, kann es auch kein XOR mit mehr als zwei Eingängen geben.
Letztendlich kann man sich auch den Namen anschauen: "exklusives Oder"
hat eigentlich mit gerade/ungerade nichts zu tun. Deshalb dachte ich
beim ersten Lesen auch gar nicht an die Parity-Variante, sondern an die,
bei der nur genau ein Eingang 1 sein darf, damit der Ausgang 1 ist, also
eben nur wenn (exklusiv) Eingang 1 oder Eingang 2 oder Eingang 3 oder
... an ist.
Schon alleine weil eine "Interpretation" nicht eindeutig ist, sollte man
"XOR" für irgendwas mit mehr als 2 Eingängen nicht verwenden.
CD4531 wäre ein Teil in CMOS. Ist ja auch schon weiter oben genannt worden.
@ Rolf Magnus (Gast) >> Das ist nur EINE Interpretation. >Es ist eine von mehreren Bedingungen, die bei einem XOR gelten. Warum >hast du die anderen, die ich noch geschrieben habe, ignoriert? Also: Hab ich nicht ignoriert, ich will nur klar machen, dass es für ein und die selbe Logiktabelle mehrere "umgangssparachliche" Interpretationen möglich sind. Und darauf aufbauend verschiedene Interpretationen wie ein XOR mit 2 Eingängen auf ein XOR mit N Eingängen erweitert werden kann. Bin kein Mathematiker um dan nun haarklein und logisch/syntakisch/whatever 100% wissenschaftlich zu formulieren. >- Wenn genau ein Eingang 1 ist, ist der Ausgang 1 >- Wenn genau ein Eingang nicht 1 ist, ist der Ausgang 1 >Diese (und die beiden anderen Bedingungen) gelten für ein XOR. Da es Nein, das ist die spezielle Interpretation deinerseits, welche u.a. verhindert, dass du dein XOR auf mehr als zwei Eingänge aufbohren kannst. >aber kein Gatter mit mehr als zwei Eingängen geben kann, für das alles >gilt, kann es auch kein XOR mit mehr als zwei Eingängen geben. Nöö, deine Interpretation von XOR ist zu eng gefasst. Du definierst unnötigerweise Spezialfälle. Die offizille Definition von XOR ist anders, hab ich aber im Moment nicht parat. >Schon alleine weil eine "Interpretation" nicht eindeutig ist, sollte man >"XOR" für irgendwas mit mehr als 2 Eingängen nicht verwenden. Na dann schreib mal die tausenden von Schriftstücke um, in denen beim Parity-Check von XOR über N-Bits geschrieben wird. Oder CRC, das gleiche Thema. MfG Falk
??naja der OP scheint kein problem mehr zu haben, hier ist wohl erst eines daraus geworden....
Ist das wirklich eine Interpretationssache? ExOR ist eine Festgelegt Funktion. Alle Eingänge gleich (egal ob alle 1 oder alle 0) -> Ausgang = 1 In allen anderen Fällen -> Ausgang = 0
Quake wrote: > Alle Eingänge gleich (egal ob alle 1 oder alle 0) -> Ausgang = 1 > In allen anderen Fällen -> Ausgang = 0 Das ist völlig falsch! Ich kenne zwei Definitionen, von denen die eine die "altbekannte" ist, die für ein EXOR mit zwei Eingängen gilt. Und da ist es eben so, wie weiter oben schon beschrieben, dass der Ausgang nur dann logisch 1 wird, wenn sich die Zustände der Eingänge unterscheiden (also Kombination 01 oder 10). Die andere Definition bezieht sich auf EXORs mit mehr als zwei Eingängen, bei der gesagt wird, dass der Ausgang logisch 1 ist, wenn eine ungerade Anzahl von Eingängen 1 ist. Mit dieser Definition bin ich aber nicht ganz glücklich und suche nach wie vor eine zuverlässige Quelle, wo das beschrieben wird (und Wikipedia läuft bei mir nicht als zuverlässige Quelle). Ich denke, da gibt es auch irgendwo internationale Standards oder zumindest Quasi-Standards. Fest steht: EXOR-Gatter mit mehr als zwei Eingängen sind nach meiner Erfahrung eher unüblich (sind mir bisher nicht als solche über den Weg gelaufen). Und die zweite Definition (ungerade Anzahl von Eingängen auf 1 -> Ausgang 1) ist der klassische Parity-Generator...
Hi alle, erstmal danke für die fleißigen Antworten =) Das genaue Problem, das wir mit so einem Baustein lösen wollten ist folgendes: Wir haben einen Knoten, der möglichst wenig Strom ziehen soll. Dazu wollen wir den uC schlafen legen, solange er nichts zu tun hat. Das Problem entsteht dann, wenn man auf Tastendrücke reagieren will ... da der uC (ATmega16) nur 3 (oder warns 4? Jedenfalls weniger als 8 ^^) externe Ints hat, wollten wir also auf die Art alle Tasten auf Änderungen prüfen und den Interrupt flankengesteuert machen. Das zwei Tasten in entsprechend minimalem Zeitabstand gedrückt werden, so dass noch nicht mal ein kurzer Pegelwechsel entsteht, kann man denke ich ausschließen. Daher sieht der 4531 gar nicht schlecht aus, man müsste ihn nur noch als SMD finden ;) Wir wissen auch, dass es ATmegas mit mehr Ints gibt ... in dem Fall wären dass der ATmega165, 168, 169. Allerdings sind der 165 und 169 mit nem 64er Gehäuse nochmal größer als der normaler ATmega16 und scheiden daher eher aus, und der 168er hat grade 1 IO zu wenig (8 Eingänge für Tasten, 8 Ausgänge für LEDs, 4 * SPI + INT, 2 * I2C mit INT = 24, der mega168 hat 23). Wenn ihr noch bessere Ideen habt ... als her damit ;) Grüße, Chris /EDIT: Sachen wie CPLDs und so fallen einfach von den Kosten her weg ...
Ich muß sagen, daß ich diese Definition noch nie gehört habe. Sie wurde mir auch an der FH nie so beigebracht. Dort gab es XOR nur für zwei Eingänge. Ich verstehe auch immer noch nicht, warum man die Parity-Berechnung XOR nennen sollte. Am ehesten wäre eine 1-aus-n-Erkennung (wenn genau ein Eingang 1 ist) passend für die Bezeichnung.
Christian Illy wrote: > Das Problem entsteht dann, wenn man auf Tastendrücke reagieren will > ... da der uC (ATmega16) nur 3 (oder warns 4? Jedenfalls weniger als 8 > ^^) externe Ints hat, wollten wir also auf die Art alle Tasten auf > Änderungen prüfen und den Interrupt flankengesteuert machen. Wenn Ihr den µC durch einen Druck auf eine (oder mehrere) von n Tasten aufwecken wollt, dann macht das mit nem UND-Gatter. Jeden Taster an einen Eingang vom UND (UND-Gatter gibts bis mindestens 8 Eingänge und sind beliebig erweiterbar) und an jeweils einen beliebigen Portpin des µC (mit aktiviertem Pull-Up). Den Ausgang des UND-Gatters auf einen Interrupt-Pin. Wenn ein Taster gedrückt wird, geht der Ausgang vom UND auf low und kann zum Auslösen eines Level-Interrupts genutzt werden. Im Interrupt Handler kann man dann einfach die Portpins einlesen, an denen die Taster hängen, um herauszufinden, welche(r) Taster gedrückt wurde(n). > Das zwei > Tasten in entsprechend minimalem Zeitabstand gedrückt werden, so dass > noch nicht mal ein kurzer Pegelwechsel entsteht, kann man denke ich > ausschließen. Das gleichzeitige Drücken mehrerer Taster erschlägt die Methode von oben auch...
Christian Illy wrote: > Hi alle, > > hat. Das Problem entsteht dann, wenn man auf Tastendrücke reagieren will > ... da der uC (ATmega16) nur 3 (oder warns 4? Jedenfalls weniger als 8 > ^^) externe Ints hat, wollten wir also auf die Art alle Tasten auf > Änderungen prüfen und den Interrupt flankengesteuert machen. (Dachte ichs mir doch, dass der OP nach dem falschen Teil sucht) Hängt davon ab, wie die Tasten angeschlossen sind: * sind sie High-Activ, dann die einzelnen Tasten mit Dioden in einer Oder Verknüpfung zusammenführen und auf einen Interrupt legen (oder einen ODER Baustein mit entsprechend vielen Eingängen nehmen) * sind sie low-Active, dann die einzelnen Tasten über ein UND mit entsprechend vielen Eingängen zusammenführen und von dort ab auf den Interrupt Eingang In keinem Fall wird aber ein XOR mit 8 Eingängen (egal welche logische Definition benutzt wird) benötigt.
Tja, wenn der OP mal gleich mit der wirklichen Beschreibung seiner Aufgabenstellung rausgerückt wäre, dann wäre uns eine interessante Diskussion entgangen... Aber es ist ja immer das selbe: Das, worauf es ankommt, behält der Fragensteller für sich! Karl Heinz hat natürlich völlig recht: Meine Version setzt voraus, dass die Taster Low-Side angeschlossen sind. Sind sie High-Side angeschlossen, muss man entsprechend anstelle des UND ein ODER nehmen.
Karl heinz Buchegger wrote: > ... > (Dachte ichs mir doch, dass der OP nach dem falschen Teil > sucht) > ... Danke, aber solche Einschätzungen darf ich vllt auch noch machen ... Ein AND oder OR bringt uns nichts. Denn wenn ein Taster gedrückt wird und gedrückt gehalten wird (aus welchem Grund auch immer ... vllt ein Schalter dran und kein Taster) erkennt man nicht mehr wenn ein weiterer gedrückt wurde. Da der uC aber nicht Tagelang im active-mode laufen soll, nur weil ein Eingang gehalten wird, muss eben auch eine weitere Zustandsänderung erkennbar sein. Chris
> Änderungen prüfen und den Interrupt flankengesteuert machen. Ein flankengesteuerter Interrupt am AVR spart keinen Strom. Um Strom zu sparen, musst Du den Power-Down-Sleep einschalten. Und in diesem Sleep wird kein Flanken-Interrupt erkannt. Da braucht es schon den Level-Interrupt. Aber so richtig stromsparend wirds mit dem Mega16 auch noch nicht. Ein modernerer AVR ist da sparsamer und hat dann auch noch Pin-Change-Interrupt. ...
Du brauchst für Dein Problem nicht einmal einen flankenempfindlichen Eingang. Es reicht ein pegelempfindlicher INT. Allerdings muß Deine Interruptroutine einen zusätzlichen Portpin so nachführen, daß der INT immer wieder inaktiv geschaltet wird. Der Portpin wird dazu mit auf den 4531 geschaltet. Das hatte ich mal vor zwanzig Jahren bei einem schlichten 8051 so gemacht, um nicht permanent die Tasten neu einlesen zu müssen.
Ich habe nicht direkt was beizutragen, aber einen anderen Denkansatz: Wenn wir ein Oder Gatter haben. 2 Eingänge -> 1 Ausgang, dann lässt sich dieses mit 2 Transistoren realisieren. Ein Oder-Gatter mit mehr als 2 Eingängen ist einfach nur eine "Hintereinander"schaltung von solchen. (Einfacher Vgl. Mehrfachsteckdosenleiste...) Kann man XOR Gatter "hintereinander"hängen? Ja Haben sie dann die Funktion eines Parity Generators, bzw. stimmt die Funktion dann mit dem zweiten "inoffiziellen" Satz* überein? Ich grübel noch. Denn eigentlich sollte jedes Gatter nach diesem "Verfahren" in der Anzahl der Eingänge "erweiterbar" sein. * johnny-m: > Die andere Definition bezieht sich auf EXORs mit mehr als zwei > Eingängen, bei der gesagt wird, dass der Ausgang logisch 1 ist, wenn > eine ungerade Anzahl von Eingängen 1 ist.
Christian Illy wrote: > Da der uC aber nicht Tagelang im active-mode laufen > soll, nur weil ein Eingang gehalten wird, muss eben auch eine weitere > Zustandsänderung erkennbar sein. Darf die Reaktion leicht verzögert sein? Du kannst den Controller Timer-gestützt ab und zu mal aufwachen lassen um nachzusehen. Wenn man das ein paarmal die Sekunde macht, fällt das im Stromverbrauch nicht gross auf. Dann ggf. ist auch eine pinsparende Matrix verwendbar.
Natürlich ist ein EXOR auch für mehr als 2 Eingänge eindeutig definiert: Z.B. für 3 boolsche Variablen: a EXOR b EXOR c = (a EXOR b) EXOR c = a EXOR (b EXOR c) Quelle: Informatik Grundstudium 1. Semester Thorsten
Thorsten wrote: > Natürlich ist ein EXOR auch für mehr als 2 Eingänge eindeutig > definiert: > > Z.B. für 3 boolsche Variablen: > a EXOR b EXOR c = (a EXOR b) EXOR c = a EXOR (b EXOR c) Das ist aber eben KEIN einzelnes EXOR mit drei Eingängen, sondern es sind (wie Du ja auch selbst schreibst) zwei EXOR mit je zwei Eingängen hintereinander... > Quelle: Informatik Grundstudium 1. Semester Oh, ein ganz schlauer...
@ Johannes M. (johnny-m) >Das ist aber eben KEIN einzelnes EXOR mit drei Eingängen, sondern es >sind (wie Du ja auch selbst schreibst) zwei EXOR mit je zwei Eingängen >hintereinander... Und? Es ist dennoch ein XOR. Genauso wie es UND mit mehr als zwei Eingängen gibt. Wie bereits mehrfach gesagt, du verrenst dich auf die falsche Interpretation. MfG Falk
@Christian: ev. solltest Du einen anderen AVR andenken: Der ATmega 164 ist der Nachfolger des ATmega16. Für Dich wichtige Features sind: * Wake-on-Pin-change weckt den AVR auf, sobald sich der Pegel an einem Pin ändert. macht genau das, was Du mit Deinem EXOR vorhast. * geringere Stromaufnahme als der mega16. * ggf. bei Deiner Anwendung auch sehr nützlich: der Watchdog-Timer erzeugt nicht nur einen Reset, sondern kann auch als externer (leider nicht sehr genauer) Timer fungieren, der den ATmega164 auch aus den Tiefschlafmodi periodisch wecken kann. Gruß, Stefan
Falk wrote: > Und? Es ist dennoch ein XOR. Genauso wie es UND mit mehr als zwei > Eingängen gibt. Wie bereits mehrfach gesagt, du verrenst dich auf die > falsche Interpretation. Dann solltest Du vielleicht noch mal meinen Beitrag von 15:17 lesen. Dann wirst Du vielleicht merken, dass ich mich keineswegs "verrenne". Die Kombination ist eine andere als z.B. bei UND- und ODER-Verknüpfungen. UNDs und ODERs können parallel verarbeitet (und verknüpft) werden, während das bei EXORs nur sukzessive geht (der Ausgang eines EXOR geht auf den Eingang des nächsten). Deshalb bereitet mir lediglich die Interpretation als "Ein EXOR-Gatter mit mehr als zwei Eingängen" etwas Bauchschmerzen. Ich glaub, wir müssen mal einen EXORzisten zu Rate ziehen.
@ Johannes M. (johnny-m) >ODER-Verknüpfungen. UNDs und ODERs können parallel verarbeitet (und >verknüpft) werden, während das bei EXORs nur sukzessive geht (der >Ausgang eines EXOR geht auf den Eingang des nächsten). Deshalb bereitet Stimmt nicht. Die kann man auch parallel verarbeiten und dann zusammenfassen. Es gilt das Kommutativgesetz. Siehe das Posting des "ganz Schlauen". >mir lediglich die Interpretation als "Ein EXOR-Gatter mit mehr als zwei >Eingängen" etwas Bauchschmerzen. Ich glaub, wir müssen mal einen >EXORzisten zu Rate ziehen. ;-) MfG Falk
@Johannes: EXOR ist zunächst mal eine boolesche Operation, kein Gatter. Wie ein (Mehrfach-)EXOR letztendlich in Hardware oder Software implementiert wird, ist egal, solange das Ergebnis mit der mathematischen Lösung übereinstimmt. Das kann z.B. durch Kaskadieren mehrerer EXOR-Gatter mit 2 Eingängen erfolgen oder einer "Blackbox" mit n Eingängen, die am Ausgang, mit welchen Mitteln auch immer, das korrekte Ergebnis liefert. Thorsten
Simon Küppers wrote: > Kann man XOR Gatter "hintereinander"hängen? Ja > Haben sie dann die Funktion eines Parity Generators, bzw. stimmt die > Funktion dann mit dem zweiten "inoffiziellen" Satz* überein? Ich grübel > noch. Ich hab das grad mal spaßeshalber durchgespielt (für 4 Eingänge, für mehr hatte ich keine Zeit...): Es scheint tatsächlich als Parity Generator zu funktionieren. Hatte bisher keinen Anlass, mir da großartig Gedanken drüber zu machen. Also ist die Erweiterung (wenn man jetzt mal davon absieht, dass es eben nur durch sukzessive Verknüpfungen geht) tatsächlich in Übereinstimmung mit der Beschreibung... @Falk: Wie willst Du die denn "parallel" verarbeiten? Es geht doch eigentlich nur ein EXOR nach dem anderen, da das Ergebnis (der Ausgang) des einen jeweils mit dem Eingang des nächsten verknüpft werden muss. Die Reihenfolge ist dabei natürlich egal...
Thorsten wrote: > EXOR ist zunächst mal eine boolesche Operation, kein Gatter. Wie ein > (Mehrfach-)EXOR letztendlich in Hardware oder Software implementiert > wird, ist egal, solange das Ergebnis mit der mathematischen Lösung > übereinstimmt. Das bestreite ich auch gar nicht. Aber ich habe bisher keine verlässliche Quelle gefunden, die wirklich bestätigt, dass sich eine Kaskadierung von EXOR-Verknüpfungen auch EXOR(TM) schimpfen darf... Klar, es wäre die einzig sinnvolle Erweiterung des EXOR mit zwei Eingängen. Und demzufolge wäre es schon logisch...
> Wie willst Du die denn "parallel" verarbeiten? Es geht doch eigentlich > nur ein EXOR nach dem anderen, da das Ergebnis (der Ausgang) des einen > jeweils mit dem Eingang des nächsten verknüpft werden muss. 4-Input XOR = (2-Input-XOR) XOR (2-Input-XOR). Laufzeit wächst mit O(log2), nicht linear.
@Johannes: Gegenfrage: Darf sich deiner Meinung nach ein Mehrfach-UND/ODER-Gatter noch UND bzw. ODER schimpfen? Das lässt sich genauso durch kaskadieren implementieren. Thorsten
Thorsten wrote: > Gegenfrage: Darf sich deiner Meinung nach ein Mehrfach-UND/ODER-Gatter > noch UND bzw. ODER schimpfen? Das lässt sich genauso durch kaskadieren > implementieren. Richtig, es lässt sich genau so implementieren. Aber im Gegensatz zum EXOR eben auch anders. Zur Verdeutlichung meines Begriffs-Problems: EXOR heißt "Exklusiv-ODER". Das wiederum heißt, es handelt sich um eine ODER-Verknüpfung, die aber im Gegensatz zum "normalen" ODER ausschließlich (lat. "exklusiv") das "echte" ODER (also der eine ODER der andere, aber eben nicht beide) auswertet. Und das macht so gesehen nur dann Sinn, wenn es nur zwei Eingänge gibt. Denn was hat exklusiv-ODER (also entweder der eine ODER der andere) mit "Anzahl der gesetzten Eingänge ist ungerade" zu tun?
Naja, "die Alternative" heißt ja auch "der andere Weg", es gibt also immer nur eine Alternative. Das relativiert dann die Aussagen hochgebildeter Leute, die von mehreren Alternativen reden... Also: Stimmung, Konfetti... ...
@ Johannes M. (johnny-m) >Wie willst Du die denn "parallel" verarbeiten? Es geht doch eigentlich >nur ein EXOR nach dem anderen, da das Ergebnis (der Ausgang) des einen Indem du einen 1-Bit ROM mit N Adressbits nimmst und den Inhalt entsprechend programmierst. So macht es jedes FPGA. >jeweils mit dem Eingang des nächsten verknüpft werden muss. Die Nein, das geht ganz analog zum UND, dort kann man auch Teilsummen bilden und dann zusammenfassen. MfG Falk
Falk wrote: >>jeweils mit dem Eingang des nächsten verknüpft werden muss. Die > > Nein, das geht ganz analog zum UND, dort kann man auch Teilsummen bilden > und dann zusammenfassen. Das ist mir schon klar. Allerdings ist mein Hauptproblem nach wie vor die Begrifflichkeit (s. mein Posting von 18:10). Ich kann dem "Mehr-als-zwei-Eingangsgrößen-"EXOR"" den Titel "EXOR" nicht zuerkennen. Wenn jemand in der Lage ist, mir (also einem Elektrotechniker...) zu erklären, was das oben beschriebene mit der ursprünglichen Bedeutung des Begriffes "Exklusiv-ODER" zu tun hat, dann möge er das bitte tun! Thanx...
Also die Lösung eures Problems ist folgendes Q=(E1 && #E2) || (#E1 && E2) Q=(E1 && #E2 && #E3) || (#E1 && E2 && #E3) || (#E1 && #E2 && E3) usw... && := Und || := Oder # := nicht
@Johannes: Du solltest vielleicht weniger an der sprachlichen Definition des Wortes "exklusiv" festhalten und stattdessen die mathematische Definition des Exklusiven-ODERs akzeptieren und verwenden. Die boolesche Algebra stammt von einem Mathematiker und nicht von einem Sprachwissenschaftler. Thorsten
Thorsten wrote: > Die boolesche Algebra stammt > von einem Mathematiker und nicht von einem Sprachwissenschaftler. Eben deswegen wundert mich eigentlich die inkonsequente Erweiterung. Sprachwissenschaftlern traue ich im Gegensatz dazu eigentlich fast alles zu...
XOR ist mathematisch nur als Operator mit zwei Operanden definiert. Alles andere ist Ansichtssache, und das Konzept von einem "XOR mit mehreren Eingängen" ist nicht so weit verbreitet dass man da irgend einen Konsens annehmen könnte, deshalb sollte man einfach genauer sagen was man meint. Die Diskussion ist also irgendwie sinnlos.
> Die Diskussion ist also irgendwie sinnlos.
Ohhhhr, schade...
Keine Stimmung, Konfetti einsammeln... ;-)
...
(das war ein Trollpost...)
> XOR ist mathematisch nur als Operator mit zwei Operanden definiert.
Das stimmt; aber das gleiche gilt auch für AND und OR.
Mathematisch : a & b & c ist nur eine Abkürzung für (a & b) & c
oder a & (b & c). Das gilt weil & assoziativ ist.
Das gleiche gilt für ODER, aber auch für XOR.
(a ^ b) ^ c == a ^ (b ^ c) == a ^ b ^ c
Mehrfach-XOR ist also sehrwohl definiert, aber als Logikschaltkreis
nicht so einfach zu bauen.
Dass es als Logikbaustein Mehrfach-UND sowie Mehrfach-ODER gibt,
verdanken wir im Wesentlichen der Einfachheit der Implementierung als
TTL-Multi-Emitter-Transistor.
Spannende Sache dass, ich schlag mich da mal noch in kein eindeutiges Lager, aber zwei Sachen: Simon Küppers wrote (18.07.2007 16:29): > Denn eigentlich sollte jedes Gatter nach diesem "Verfahren" in der > Anzahl der Eingänge "erweiterbar" sein. Nein, NAND und NOR lässt sich nicht nach diesem Verfahren erweitern. Falk wrote (18.07.2007 11:02) >Na dann schreib mal die tausenden von Schriftstücke um, in denen beim >Parity-Check von XOR über N-Bits geschrieben wird. Oder CRC, das gleiche Bitte daran zu denken das es sehr wohl ohne diese Diskussion in jedem Fall möglich ist ZWEI mehrbittige Zahlen via XOR bitweise zu vergleichen, was sehr viel häufiger vorkommt. Ich kram zur Sicherheit aber schonmal meinen "Haarspalter der überlegenen Schnitthaltigkeit" +13 aus dem Rucksack. -wiebel
Ok, aber laut Wolfram (Mathematica) http://mathworld.wolfram.com/XOR.html Scheint das ja doch eindeutig zu sein. Dann kann ich mein Schneidwerkzeug ja wieder einpacken. -wiebel
Stefan Kleinwort wrote:
> Der ATmega 164 ist der Nachfolger des ATmega16.
Hi Stefan,
danke für den Hinweis. Den 164er hatte ich gar nicht bemerkt (hab in
meiner Excel-Tabelle geschaut, das ist übersichtlicher als direkt auf
der HP ;) ). Allerdings scheint der aber relativ schwer erhältlich zu
sein?
Den 168er zb bekommt man wenigstens bei CSD, und das sogar zu nem
vernünftigen Preis =)
Haben uns auch entschieden den jetzt zu nehmen und werden einfach die
Ausgänge über ein Schieberegister ansteuern. Der 168er spart dafür ja
auch wieder ein wenig Platz ;)
Grüße,
Chris
Beitrag #5816694 wurde von einem Moderator gelöscht.
Beitrag #5816702 wurde von einem Moderator gelöscht.
Beitrag #5816915 wurde von einem Moderator gelöscht.
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.