केवल 4 NAND गेट का उपयोग करके XOR गेट का निर्माण कैसे करें?


17

xorगेट, अब मुझे केवल 4 nandगेट का उपयोग करके इस गेट का निर्माण करने की आवश्यकता है

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)है, जो

A¯B+AB¯

मुझे उत्तर पता है लेकिन सूत्र से गेट आरेख कैसे प्राप्त करें?

Xor गेट

संपादित करें

मेरा तात्पर्य सहज रूप से, मेरे लिए, मुझे यह प्राप्त करना चाहिए अगर मैं इसे परिभाषा के अनुसार चरण दर चरण करता हूं xor = (a and not b) or (not a and b)

A¯B¯AB¯¯¯

और xor5 nandगेट के साथ निर्माण किया जाएगा (पहले # 1 छवि नीचे)

द्वार द्वार २

मेरा प्रश्न अधिक पसंद है: इतिहास के पहले व्यक्ति की कल्पना करें कि यह फॉर्मूला कैसा है, वह nandइस फॉर्मूले से 4 सॉल्यूशन कैसे प्राप्त कर सकता है (या सोचने की प्रक्रिया) , चरण दर चरण।

A¯B+AB¯

मुझे यकीन है कि आप एक XOR (या किसी अन्य फ़ंक्शन) को लेना जानते हैं और इसे एक समान सर्किट में परिवर्तित करते हैं जो केवल NAND का उपयोग करता है (जो कि हमेशा संभव है, क्योंकि NAND पूरा हुआ है )। लेकिन अगर आप से पूछना कैसे केवल 4 NANDs उपयोग करने के लिए इस सूत्र को कम करने, या सामान्य रूप में, कम से कम NANDs, और यह भी साथ एक बराबर सर्किट प्राप्त करना संभव है कि क्या NANDs - मैं नहीं हूँ यकीन है कि वहाँ है एक उसके लिए आसान जवाब। कश्मीरkk
रैन जी।

नीचे समस्या के दो उत्तर दिए गए हैं। मेरा इस तथ्य के बारे में काफी स्पष्ट है कि आप अंतिम परिणाम को अग्रिम रूप से जानने से वांछित निर्माण को खोजने के लिए एक तरीका (डिजाइन कर सकते हैं), जो प्रश्न में दिया गया था और इंटरनेट पर उपलब्ध है। यह स्पष्ट रूप से बात करने का सरल तरीका है, बेतुका है क्योंकि यह प्रतीत हो सकता है, सामान्य प्रक्रिया देने से कम है, जिसका कोई जवाब नहीं है। इसलिए, मुझे यह जानने में दिलचस्पी है कि मतदाता दूसरे पर एक जवाब क्यों पसंद करते हैं, जब वे करते हैं ... यदि आप एक छोटी टिप्पणी के लिए समय लेंगे। अग्रिम में धन्यवाद।
बाबू

यह प्रश्न अस्पष्ट होने के कारण बंद है। मुझे लगता है कि यह स्पष्ट रूप से स्पष्ट हो सकता है कि ओपी क्या पूछ रहा है, और अधिक i8nteresting, अगर ओपी उसे जवाब देने की कोशिश करने वाले विभिन्न उपयोगकर्ताओं पर प्रतिक्रिया करने के लिए परेशान है,
babou

Electronics.stackexchange.com/questions/84714/… - यह प्रश्न अधिक सामान्य है, उत्तर इस समस्या को हल करने के लिए एक सामान्य दृष्टिकोण पर अधिक जानकारी देते हैं, और यह उत्तर Electronics.stackexchange.com/a/84803 दिखाता है कि NAND कैसे प्राप्त करें XOR ऑपरेटर के लिए प्रतिनिधित्व
एंटोन ट्रुनोव

मैंने कुछ इसी तरह की समस्याओं के साथ खेला और बस एक कार्यक्रम लिखा, जिसमें सब कुछ व्यवस्थित रूप से करने की कोशिश की गई ... चार इनपुट तक ठीक है, जहां केवल 65,536 संभावित कार्य हैं। थोड़े अधिक जटिल परिपथों के लिए इसने मुझे देरी का अनुकूलन करने की अनुमति दी, और यदि एक या दो इनपुट दूसरों की तुलना में उपलब्ध थे तो इष्टतम सर्किट खोजने के लिए। 5 इनपुट = 2 ^ 32 संभावित कार्यों के साथ सर्किट संभवत: ब्रूट बल का उपयोग करके संभव होगा।
gnasher729

जवाबों:


13

उस सूत्र से? यह किया जा सकता है। लेकिन इस एक के साथ शुरू करना आसान है: (यहां एक अलग संकेतन का उपयोग करके)

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

ठीक है, अब क्या? अंततः हमें व्युत्पन्न होना चाहिए ~(~(~(a & b) & a) & ~(~(a & b) & b))(जो दिखता है कि इसमें 5 नंद हैं, लेकिन सर्किट आरेख की तरह इसमें एक उप-अभिव्यक्ति है जो दो बार उपयोग की जाती है)।

इसलिए कुछ ऐसा बनाएं जो ~(a & b) & a(और एक ही चीज़ के साथ लेकिन bअंत में) और आशा करता है कि यह चारों ओर चिपक जाएगा: ( andवितरित करता है or)

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

बहुत करीब है, अभी उस बीच orको एक में बदलने के लिए DeMorgan लागू करें and:

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

और बस।


9

मुझे लगता है कि आप इस प्रमाण के लिए पूछ रहे हैं:

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)))

हालांकि जाहिर तौर पर NANDपरिणामी समीकरण में 5 एस का उपयोग किया जाता है, लेकिन डुप्लिकेट !(AB)का उपयोग केवल एक बार किया जाएगा जब आप इसके सर्किट को डिजाइन कर रहे हों।


मुझे खेद है, लेकिन A ^ B का अर्थ A और B नहीं है? ऐसा लगता है कि आपका इरादा XOR को प्रमाणित करना था कि कौन सा प्रतीक ⊻ या to होना चाहिए। हालाँकि यह प्रमाण वही था जिसकी मैंने वास्तव में तलाश की थी, धन्यवाद!
ऑसिक्सी

5

चूँकि आपके पास पहले से ही आरेख उत्तर है, Google में प्रश्न शीर्षक टाइप करके आसानी से विकिपीडिया से अनुपलब्ध है , जैसा कि एक .png आरेख के समान है, इसलिए आपके लिए उस आरेख से इसे निकालकर सूत्र को खोजना आसान होना चाहिए। के रूप में परिभाषा नन्द को देखते हुए नन्द(,बी)=बी¯:

  • वाम-पंथी गेट देता है ;सी=बी¯

  • शीर्ष गेट देता ;डी1=सी¯

  • शीर्ष गेट देता , के रूप में नन्द की तरह commutatve है और;डी2=बीसी¯

  • सबसे दायीं ओर का गेट देता =डी1डी2¯

यह सब एक साथ रखकर हम पहले ध्यान दें

C=AB¯=A¯+B¯

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

इसी तरह: D2¯=BA¯

इस प्रकार
E=D1D2¯=D1¯+D2¯=AB¯+BA¯

जो ठीक XOR की परिभाषा है। यदि आप केवल अपने उत्तर डेटा से शुरुआत करना चाहते हैं, तो आप यह सब उल्टा कर सकते हैं, बजाय इसके कि आप उत्तर की जाँच करें।

बिना किसी पूर्व ज्ञान के उत्तर खोजना

यह खरोंच से समाधान खोजने के तरीके के लिए, स्पष्ट अनुरोध का जवाब देने के लिए किया जाता है, प्रश्न को संपादित के रूप में जोड़ा जाता है। यह देखते हुए कि प्रश्न एक विचार प्रक्रिया के बारे में है, मैं सभी विवरण दे रहा हूं।

AB

एक बात जो मुझे पता है (जानकारी आरेख में बाएं से दाएं की ओर बहती है) यह है कि एक सही नंद द्वार होना चाहिए जो वांछित उत्तर XOR(A,B)=AB¯+BA¯

इसलिए हम यह अनुमान लगाने की कोशिश कर सकते हैं कि इस गेट के लिए किस तरह का इनपुट वांछित आउटपुट का उत्पादन करेगा।

हम जानते हैं कि NAND(X,Y)=XY¯=X¯+Y¯

परिणाम प्राप्त करने के साथ इस अंतिम सूत्र को एकजुट करते हुए, हम प्राप्त करते हैं:

  • X¯=AB¯, इस प्रकार X=AB¯¯=A¯+B

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

ध्यान दें कि यह केवल सबसे सरल संभावना है। इनपुट के अन्य जोड़े हैं जो वांछित परिणाम देंगे, क्योंकि हम एक स्वतंत्र बीजगणित में एकीकृत नहीं कर रहे हैं, क्योंकि नंद में समान गुण हैं। लेकिन हम एक शुरुआत के लिए कोशिश करते हैं।

अब समस्या यह है कि क्या हम दोनों प्राप्त कर सकते हैंXYAB

हम एकीकरण प्रक्रिया (मैंने किया) को दोहराने की कोशिश कर सकते हैं, लेकिन यह स्वाभाविक रूप से हमें चार और फाटकों का उपयोग करने के लिए ले जाएगा, इसलिए 5 गेट्स समाधान।

XYZAB

XYZABAB

यह पहला NAND गेट, साथ हैAB

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

ZABXY

AB

यह जाँचना आसान है

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

NAND(Z,B)=Y

इसलिए हम वांछित परिणाम प्राप्त करने के लिए इन चार द्वारों की रचना कर सकते हैं, अर्थात, XOR फ़ंक्शन।


यह साबित करने के लिए नहीं कि वे समान हैं। लेकिन वह छवि जिसे आप आरेख नहीं जानते हैं लेकिन न्यूनतम नंद द्वार का उपयोग करके गेट का निर्माण करना है।
टाइमलेस

1
आप एक उत्तर के रूप में क्या उम्मीद करते हैं? ऐसा करने के लिए एक व्यवस्थित तकनीक। मुझे नहीं पता कि कोई भी ऐसा है जो जटिल मामलों में उपयोग करने लायक हो। यह देखते हुए कि मुझे उत्तर पता है कि मैं सिर्फ आपसे झूठ बोल सकता हूं और इस बात का ढोंग कर सकता हूं कि मैंने उत्तर की जांच करके क्या पाया। इसने कहा, मुझे नंद (ए, बी) के साथ जो मिल रहा है, उसे देखते हुए यह सब एक शुरुआत के लिए उपयोगी लगता है। फिर परिणाम को एक तर्क ए या बी के साथ जोड़ते हुए, यह देखने के लिए भी एक चीज है कि मैं कहां हूं। वहाँ से, एक अंतिम उत्तर के करीब है।
Babou

1
@Timeless इसके बारे में जाने का एक अन्य तरीका उत्तर से पीछे है, यह जानते हुए कि उत्तर एक नंद द्वार है। यदि आप मानते हैं कि समाधान ए और बी में सममित है, तो यह आपको अंतिम एनएएनडी गेट के लिए इनपुट का एक संभावित रूप देता है। इसके बारे में जाने के कई तरीके हैं, या तो इसका उत्तर ढूंढना है, या इसे एक खोज का औचित्य साबित करना है। लेकिन एक प्रमाण एक प्रमाण है, चाहे वह आपकी सरलता से पाया जाए, या किसी ओरेकल या एक अच्छे दोस्त द्वारा दिया गया हो। और किसी बिंदु पर कोई भी अंतर नहीं बता सकता है। वास्तव में, मैं जो बैकवर्ड प्रूफ देता हूं, वह सबसे अच्छा सबूत हो सकता है, भले ही समाधान किसी और तरीके से मिला हो।
Babou

दरअसल, समाधान खोजने के लिए विश्लेषण भाग होना गणित में काफी आम है, फिर एक संश्लेषण हिस्सा जहां आप यह साबित करते हैं कि यह समाधान है। एक आमतौर पर दोनों देता है, लेकिन केवल दूसरा भाग वास्तव में आवश्यक है।
Babou

@ समयहीन दोनों उत्तर प्राप्त करने के लिए एक सूत्र के ज्ञान पर आधारित थे, जिसे प्राप्त करने के लिए आरेख से घटाया गया था। आपके संपादन ने परिणाम के किसी भी पूर्व ज्ञान के बिना उत्तर खोजने के लिए प्रशंसनीय सहज ज्ञान युक्त परिदृश्य के लिए कहा। मैंने अपने उत्तर में इसे शामिल किया, लेकिन यह जानना अच्छा होगा कि क्या यह आपकी अपेक्षा के अनुरूप है।
Babou

0

मैं इनपुट लेता हूं (0,0) उदाहरण के तौर पे।

के लिये XORवांछित उत्पादन 0. है, हालांकि, NAND(0,0)=1.

  • Because the only way to get a 0 using NAND is (at the last layer) NAND(1,1)=0, you should first produce two 1's.

    • According to NAND(0,1)=1 or NAND(1,0)=1, you produce a 1 using one NAND(0,0) at the first layer and feed it, along with one input 0, into a second layer NAND.

Only four NANDs are involved. But it is only correct for the input (0,0) so far. So you need to check other inputs (0,1),(1,0), and (1,1) against the solution and find that it just works. Lucky.


0

I tried my best to give the answer using formula as asked.Hope you appreciate it.
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)' --> Hint
so now (AB)' can get through 1st NAND gate,then in 2nd and third NAND gate the output of 1st NAND gate pass through with one of the input as A and B.After this we need one more complement so use fourth NAND gate.
NAND(1st)=(AB)'=A'+B'
NAND(2nd)=(A(AB)')'=(A(A'+B'))'=(AB')'=A'+B
NAND(3rd)=(B(AB)')'=(B(A'+B'))'=(A'B)'=A+B'
NAND(4th)=[(A'+B)(A+B')]' =[A'B'+AB]'=(A+B)(A'+B')=AB'+A'B

Happy!


0

The formula: XOR = (a and not b) or (not a and b).

Thats' not what you want, you want a formula that is a NAND. Remember that not (a or b) = not a and not b, and therefore (a or b) = not (not a and not b). Therefore

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

not (not (a and not b) and not (not a and b)) =

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

NAND (not a or b, a or not b).

So we used one NAND gate, and have to calculate (not a or b) and (a or not b) using three NANDs. We turn each expression into a NAND:

not a or b = not (a and not b) = NAND (a, not b)

a or not b = not (not a and b) = NAND (not a, b)

Now we observe that (x and y) = x and (not x or y): If x is false then both sides are false. If x is true then (not x or y) = (false or y) = y. This is true for NAND just as it's true for AND. Therefore

NAND (a, not b) = NAND (a, not a or not b) = NAND (a, NAND (a, b))

NAND (b, not a) = NAND (b, not b or not a) = NAND (b, NAND (a, b)).

So we first find mid = NAND (a, b), left = NAND (a, mid) and right = NAND (b, mid), finally XOR = NAND (left, right).


-2

*From left to right--D1,D2,D3,D4 ** D1=(A.B)' OR(A'+B')

suppose

(A.B)'=C

D2=(A.C)'=A'+C'

D3=(B.C)'=B'+C' then

D4=(D2.D3)'

D4=((A.C)'.(B.C)')'

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

D4=(A.C)+(B.C)

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

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


2
I find it hard to follow this answer or understand what process you are using. Can you add some text sentences to explain the approach, so this isn't just a sequence of equations?
D.W.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.