Sadece 4 NAND geçidi kullanarak XOR geçidi nasıl inşa edilir?


17

xorkapı, şimdi sadece 4 nandkapı kullanarak bu kapıyı inşa etmek gerekir

a b out
0 0 0
0 1 1
1 0 1
1 1 0

xor = (a and not b) or (not a and b)olan

A¯B+AB¯

Cevabı biliyorum ama formülden kapı diyagramı nasıl alınır?

xor kapısı

DÜZENLE

Yani sezgisel olarak, bunu adım adım ve ardından tanımlamayı yaparsam, bunu almalıyım xor = (a and not b) or (not a and b).

A¯B¯AB¯¯¯

ve xor5 nandkapı ile inşa edilecektir (aşağıdaki ilk # 1 resim)

xor kapısı 2

sorum daha çok şöyledir: tarihteki ilk kişinin bu formülü nandçözdüğünü, onun (düşünme süreci) bu formülden 4 çözümü nasıl adım adım alacağını hayal edin .

A¯B+AB¯

Eminim bir XOR (veya başka bir fonksiyon) almak ve onu sadece NAND kullanan (NAND tamamlandığından her zaman mümkündür) eşdeğer bir devreye nasıl çevireceğinizi biliyorsunuzdur . Bununla birlikte, bu formülü sadece 4 NAND veya genel olarak NAND kullanarak nasıl azaltacağınızı ve NAND ile eşdeğer bir devre elde etmenin bile mümkün olup olmadığını sorarsanız - bunun için kolay bir cevap. kkk
Ran

Aşağıda sorunun iki cevabı verilmiştir. Benimki, soruda verilen ve internette bulunan nihai sonucu bilmeden istenen yapıyı bulmak için bir yol (bir posteriori) tasarlayabileceğiniz konusunda oldukça samimi. Açıkçası, bir şey yapmanın daha basit bir yolu, göründüğü kadar saçma, genel bir prosedür vermekten yoksun, cevap yok. Bu nedenle, seçmenlerin neden bir cevabı diğerine tercih ettiklerini bilmek isterim, ne zaman yaparlar ... kısa bir yorum için zaman ayıracaksanız. Şimdiden teşekkürler.
babou

Bu soru belirsiz olarak kapandı. Ben OP sormaya çalışan çeşitli kullanıcılara tepki için rahatsız eğer OP, sorduğu daha açık ve daha i8nteresting düşünüyorum,
babou

electronics.stackexchange.com/questions/84714/… - bu soru daha genel, yanıtlar bu sorunun çözümü için genel bir yaklaşım hakkında daha fazla bilgi veriyor ve bu cevap electronics.stackexchange.com/a/84803 NAND türetmenin nasıl sağlanacağını gösteriyor XOR operatörünün temsilcisi
Anton Trunov

Bazı benzer problemlerle oynadım ve her şeyi sistematik olarak deneyen bir program yazdım ... Sadece 65.536 olası fonksiyonun olduğu dört girişe kadar para cezası. Biraz daha karmaşık devreler için bu, gecikmeleri optimize etmeme ve diğerlerinden daha sonra bir veya iki giriş mevcutsa en uygun devreleri bulmamı sağladı. 5 girişli devreler = 2 ^ 32 olası işlevler büyük olasılıkla kaba kuvvet kullanılarak yapılabilir.
gnasher729

Yanıtlar:


13

Bu formülden mi? Yapılabilir. Ancak bununla başlamak daha kolaydır: (burada farklı bir gösterim kullanarak)

a ^ b = ~(a & b) & (a | b)

Tamam, şimdi ne olacak? Sonunda ~(~(~(a & b) & a) & ~(~(a & b) & b))türetmeliyiz (5 NAND'a sahip gibi görünüyor, ancak devre şemasında olduğu gibi iki kez kullanılan bir alt ifadeye sahip).

Öyleyse benzeyen bir şey yapın ~(a & b) & a(ve aynı şey ama bsonunda bir ile) ve umarım etrafta kalacaktır: ( anddağıtır or)

(~(a & b) & a) | (~(a & b) & b)

Oldukça yakın, bu ortayı bir orhaline dönüştürmek için DeMorgan'ı uygulayın and:

~(~(~(a & b) & a) & ~(~(a & b) & b))

Ve bu kadar.


9

Sanırım bu kanıtı istiyorsun:

A^B = (!A)B + A(!B)
    = !!((!A)B) + !!(A(!B))
    = !(!!A + !B) + !(!A + !!B)
    = !(A + !B) + !(!A + B)
    = !((A + !B)(!A + B))
    = !(A(!A) + AB + (!A)(!B) + B(!B))
    = !(AB + (!A)(!B))
    = !(AB)(!(!A)(!B))
    = !(AB)(!!A + !!B)
    = !(AB)(A+B)
    = !(AB)A + !(AB)B
    = !!(!(AB)A + !(AB)B)
    = !((!(!(AB)A))(!(!(AB)B)))

Görünüşe göre NANDsonuçtaki denklemde 5 sn kullanılmış olsa da, yineleme !(AB)devresini tasarlarken sadece bir kez kullanılacaktır.


Üzgünüm, ama A ^ B A VE B anlamına gelmiyor mu? Niyetiniz XOR'u hangi sembolün ⊕ veya ⊻ olması gerektiğini kanıtlamaktı. Ancak bu kanıt gerçekten aradığım şeydi, teşekkürler!
osiixy

5

Zaten kolayca awailable diyagram cevap, sahip olduğundan wikipedia bir şekilde, Google size soru başlığını yazarak .png diyagram sizin için aynıdır o diyagram ayıklama göre formülü bulmak için, bu kolay olmalı. NAND olarak tanımı verildi NAND(A,B)=AB¯:

  • C=AB¯

  • D1=AC¯

  • D2=BC¯

  • E=D1D2¯

Hepsini bir araya getirdiğimizde,

C=AB¯=A¯+B¯

D1¯=AC=A(A¯+B¯)=AA¯+AB¯=0+AB¯=AB¯

D2¯=BA¯


E=D1D2¯=D1¯+D2¯=AB¯+BA¯

Bu tam olarak XOR'un tanımıdır. Sadece cevabı kontrol etmek yerine ilk verilerinizden başlamak istiyorsanız tüm bunları tersine çevirebilirsiniz.

Önceden bilgi sahibi olmadan cevabı bulma

Bu, çözümü sıfırdan bulmak için bir soruya düzenleme olarak eklenen açık talebi cevaplamayı amaçlamaktadır. Sorunun bir düşünce süreci ile ilgili olduğu düşünüldüğünde, tüm detayları veriyorum.

AB

XOR(A,B)=AB¯+BA¯.

Bu yüzden bu kapıya ne tür girdilerin istenen çıktıyı üreteceğini tahmin etmeye çalışabiliriz.

olduğunu biliyoruzNAND(X,Y)=XY¯=X¯+Y¯

Unifying biz almak zorunda sonuçla bu son formülü elde ederiz:

  • X¯=AB¯X=AB¯¯=A¯+B.

  • Y=A¯B¯=A+B¯.

Bunun sadece en basit olasılık olduğunu unutmayın. İstenen sonucu verecek başka girdi çiftleri de var, çünkü NAND denklem özelliklerine sahip olduğu için serbest bir cebirde birleştirmiyoruz. Ama bunu bir başlangıç ​​için deniyoruz.

XYAB

Birleştirme prosedürünü tekrarlamaya çalışabiliriz (yaptım), ancak bu doğal olarak bizi dört kapı daha, dolayısıyla 5 kapı çözümüne yönlendirecektir.

XYZAB

XYZABAB

AB

Z=NAND(A,B)=AB¯=A¯+B¯

ZABXY

AB

Bunu kontrol etmek kolaydır

NAND(Z,A)=ZA¯=AB¯A¯=(A¯+B¯)A¯=A¯A+B¯A¯=0+B¯A¯=B¯A¯=AB¯¯=X

NAND(Z,B)=Y

Bu nedenle, istenen sonucu, yani XOR fonksiyonunu elde etmek için bu dört kapıyı oluşturabiliriz.


Eşit olduklarını kanıtlamak tersine değil. Ama şemayı bilmediğiniz görüntü, ancak kapıyı minimum nand kapısı kullanarak inşa etmek.
Zamansız

1
Cevap olarak ne bekliyorsunuz? Bunu yapmak için sistematik bir teknik. Karmaşık durumlarda kullanmaya değecek kadar izlenebilir olan herhangi bir şey olduğunu bilmiyorum. Cevabı bildiğim için sana yalan söyleyebilirim ve cevabı kontrol ederek keşfettiğimi düşünerek bulmuş gibi davranabilirim. Bu, NAND (A, B) ile ne elde ettiğime bakmak için bir başlangıç ​​için yararlı görünen tek şey olduğunu söyledi. Sonrasında sonucu A veya B argümanlarıyla NAND etmek aynı zamanda bakmam gereken, nerede olduğumun bir görünümünü elde etmek. Oradan biri son cevaba oldukça yakın.
babou

1
@Timeless Bu konuda ilerlemenin başka bir yolu da cevabın bir NAND geçidi olduğunu bilerek cevaptan geri dönmek. Çözeltinin A ve B'de simetrik olduğunu varsayarsanız, size son NAND geçidine girişlerin olası bir biçimini verir. Cevabı bulmanın ya da bir posteriory bulmayı haklı çıkarmanın birçok yolu vardır. Ancak kanıt, yaratıcılığınız tarafından bulunan ya da bir kehanet ya da iyi bir arkadaş tarafından verilen bir kanıttır. Ve bir noktada hiç kimse farkı söyleyemez. Aslında, çözümün başka bir yolu bulunsa bile verdiğim geriye dönük kanıt en iyi kanıt olabilir.
babou

Aslında, matematikte bir çözüm bulmak için bir analiz parçasına sahip olmak oldukça yaygındır, daha sonra çözüm olduğunu kanıtladığınız bir sentez kısmı. Kişi genellikle her ikisini de verir, ancak sadece ikinci kısım gerçekten gereklidir.
babou

@ Zamansız Her iki cevap da elde edilecek diyagramdan çıkarılan bir formül bilgisine dayanıyordu. Düzenlemeniz, sonucu önceden bilmeden cevabı bulmak için makul bir sezgisel senaryo istedi. Bunu cevabıma ekledim, ancak beklediğinize uyup uymadığını bilmek güzel olurdu.
babou

0

(0,0)

XORNAND(0,0)=1

  • NANDNAND(1,1)=0

    • NAND(0,1)=1NAND(1,0)=1NAND(0,0)NAND

NAND(0,0)(0,1),(1,0),(1,1)


0

Sorulan formülü kullanarak cevabı vermek için elimden geleni yaptım.
Z = AB '+ A'B
Z = AA' + AB '+ BB' + A'B ---> BB '= AA' = 0
Z = A (A '+ B') + B (B '+ A ')
Z = A (AB)' + B (AB) '-> İpucu
şimdi (AB)' 1. NAND geçidinden geçebilir, sonra 2. ve üçüncü NAND geçidinde 1. NAND geçidinin çıkışı A ve B olarak giriş yapın. Bundan sonra bir tamamlayıcıya ihtiyacımız var, bu yüzden dördüncü NAND geçidini kullanın.
NAND (1.) = (AB) '= A' + B '
NAND (2.) = (A (AB)') '= (A (A' + B '))' = (AB ')' = A '+ B
NAND (3.) = (B (AB) ')' = (B (A '+ B')) '= (A'B)' = A + B '
NAND (4.) = [(A' + B) (A + B ')]' = [A'B '+ AB]' = (A + B) (A '+ B') = AB '+ A'B

Mutlu!


0

Formül: XOR = (a ve b değil) veya (a ve b değil).

İstediğiniz bu değil, NAND olan bir formül istiyorsunuz. Unutmayın (a veya b) = a değil b değil ve bu nedenle (a veya b) = değil (a değil b değil). bu nedenle

(a değil b) veya (a ve b değil) =

not (değil (a ve b değil) ve değil (a ve b değil)) =

not ((a veya b değil) ve (a veya b değil)) =

NAND (a veya b değil, a veya değil b).

Bu yüzden bir NAND geçidi kullandık ve üç NAND kullanarak (a veya b değil) ve (a veya b değil) hesaplamak zorundayız. Her ifadeyi bir NAND'a dönüştürüyoruz:

a veya b = değil (a ve b değil) = NAND (a, b değil)

a veya değil b = değil (a ve b değil) = NAND (a değil, b)

Şimdi gözlemliyoruz (x ve y) = x ve (x veya y değil): x yanlışsa, her iki taraf da yanlıştır. X doğruysa (x veya y değil) = (yanlış veya y) = y olur. Bu NAND için de doğrudur ve AND için de geçerlidir. bu nedenle

NAND (a, b değil) = NAND (a, a değil veya b değil) = NAND (a, NAND (a, b))

NAND (b, a değil) = NAND (b, b değil veya a değil) = NAND (b, NAND (a, b)).

Bu yüzden önce orta = NAND (a, b), sol = NAND (a, orta) ve sağ = NAND (b, orta), nihayet XOR = NAND (sol, sağ).


-2

* Soldan sağa - D1, D2, D3, D4 ** D1 = (AB) 'VEYA (A' + B ')

varsaymak

(AB) '= Cı

D2 = (AC) '= A' + c'

D3 = (BC) '= B' + C 'sonra

D4 = (D2.D3)'

D4 = ((AC)'. (BC) ')'

D4 = (AC) '+ (BC)'

D4 = (AC) + (BC)

D4 = A. (A '+ B') + b (A '+ B')

D4 = AB '+ BA' {A.A '= B.B' = 0} **


2
Bu cevabı takip etmek veya hangi süreci kullandığınızı anlamakta zorlanıyorum. Yaklaşımı açıklamak için bazı metin cümleleri ekleyebilir misiniz, bu sadece bir denklem dizisi değil mi?
DW
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.