2013-01-23 10 views
5

यह काम करने के करीब प्रतीत होता है, यह सिर्फ 7 लाइन पर गड़बड़ कर रहा है?मेरे DMux 4 तरीके से क्या गलत है?

/** 
* 4-way demultiplexor. 
* {a,b,c,d} = {in,0,0,0} if sel==00 
*    {0,in,0,0} if sel==01 
*    {0,0,in,0} if sel==10 
*    {0,0,0,in} if sel==11 
*/ 


CHIP DMux4Way { 
    IN in, sel[2]; 
    OUT a, b, c, d; 

    PARTS: 
    DMux(in = in, sel = sel[0], a = out1, b = out2); 

    DMux(in = out1, sel = sel[1], a = a, b = b); 
    DMux(in = out2, sel = sel[1], a = c, b = d); 
} 

इस प्रकार मैं अपने DMux को क्रियान्वित किया है, और मैं बस का उपयोग कर रहा है कि जैसे कि यह एक पेड़ थे:

/** 
* Dmultiplexor. 
* {a,b} = {in,0} if sel==0 
*   {0,in} if sel==1 
*/ 


CHIP DMux { 
    IN in, sel; 
    OUT a, b; 

    PARTS: 
    Not(in = sel, out = notsel); 
    And(a = in, b = notsel, out = a); 
    And(a = in, b = sel, out = b); 
} 
+2

में कौन सा एचडीएल आप अपनी सामग्री लिखने की कोशिश कर रहे हैं? यह या तो वीएचडीएल या वेरिलोग की तरह नहीं दिखता है ... – Marty

+2

ऐसा लगता है कि नंद 2 टेट्रिस कोर्स में उपयोग किया जाता है: http://nand2tetris.org/ –

उत्तर

7

आप सही विचार मिल गया है! लेकिन आपने सेल [0] के विपरीत सेल [0] को संकुचित करके शुरू किया है, जो बाएं कॉलम से मेल खाता है।

पुनश्च: मैं जानता हूँ कि मैं देर से

संपादित कर रहा हूँ: निश्चित कोड नीचे अनुरोध के अनुसार जोड़ा गया। प्रतिक्रिया

CHIP DMux4Way { 
    IN in, sel[2]; 
    OUT a, b, c, d; 

    PARTS: 
    DMux(in = in, sel = sel[1], a = out1, b = out2); 

    DMux(in = out1, sel = sel[0], a = a, b = b); 
    DMux(in = out2, sel = sel[0], a = c, b = d); 
} 

संख्या कम क्या एक सच तालिका में बाएँ स्तंभ को उल्लेख करता है में करने के लिए धन्यवाद (यही है, sel [1]; सही से शुरू करने के लिए जब गिनती याद), तो आप को प्रभावी ढंग से तेज होगी विकल्प

+1

किसी और ने उत्तर देने के साथ देर से कुछ भी गलत नहीं किया है! आप जितना संभव हो उतना स्पष्ट करने के लिए, सही कोड को पोस्ट करने (आंशिक रूप से) पर विचार करना चाह सकते हैं। –

+0

इस विशेष स्थिति में आपको वास्तव में समाधान पोस्ट नहीं करना चाहिए। मुझे यकीन नहीं है कि आप जानते हैं, लेकिन लेखक विशेष रूप से अनुरोध करते हैं कि आप ऐसा नहीं करते हैं। – michaelavila

+0

@AdrianWragg: मैं पूरी तरह से आपसे सहमत हूं, लेकिन अगर किसी ने उत्तर दिया है, तो देर से जवाब देने में कुछ भी गलत नहीं है। कुछ भी जो q/a को मान जोड़ता है ठीक है, चाहे वह देर हो या जल्दी हो। –

संबंधित मुद्दे