Comparison Failure

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Comparison Failure

Gtantse
I have been able to build and test my basic gates with success and hence easily tackled the And16 and Or16 too, however i m getting an error in the comparison of my mux16 and not16 gates, it seems pretty straightforward?? What could be the issue?

This is a screen shot from my not16 output, i see the problem on it, but given the code i have written it makes no sense





Reply | Threaded
Open this post in threaded view
|

Re: Comparison Failure

WBahn
Administrator
This would be like me saying that my car won't start, what could be the issue?

Since I can't see the code you have written, I have no idea whether it makes sense or not. My crystal ball is in the shop and I failed my remote-viewing correspondence course (I could never make out the assignments that were in the instructor's desk drawer).

Post your code. We can always remove it later if need be.
Reply | Threaded
Open this post in threaded view
|

Re: Comparison Failure

Gtantse
    Mux16 code and screenshot
 PARTS:
    // Put your code here
        Mux(a=a[0], b=b[0], sel=sel, out=out[0]);
        Mux(a=a[1], b=b[1], sel=sel, out=out[1]);
        Mux(a=a[3], b=b[3], sel=sel, out=out[3]);
        Mux(a=a[4], b=b[4], sel=sel, out=out[4]);
        Mux(a=a[5], b=b[5], sel=sel, out=out[5]);
        Mux(a=a[6], b=b[6], sel=sel, out=out[6]);
        Mux(a=a[7], b=b[7], sel=sel, out=out[7]);
        Mux(a=a[8], b=b[8], sel=sel, out=out[8]);
        Mux(a=a[9], b=b[9], sel=sel, out=out[9]);
        Mux(a=a[10], b=b[10], sel=sel, out=out[10]);
        Mux(a=a[11], b=b[11], sel=sel, out=out[11]);
        Mux(a=a[12], b=b[12], sel=sel, out=out[12]);
        Mux(a=a[13], b=b[13], sel=sel, out=out[13]);
        Mux(a=a[14], b=b[14], sel=sel, out=out[14]);
        Mux(a=a[15], b=b[15], sel=sel, out=out[15]);

Not16 code:

    PARTS:
    Not(in=in[0], out=out[0]);
        Not(in=in[1], out=out[1]);
        Not(in=in[2], out=out[2]);
        Not(in=in[3], out=out[3]);
        Not(in=in[4], out=out[4]);
        Not(in=in[5], out=out[5]);
        Not(in=in[6], out=out[6]);
        Not(in=in[7], out=out[7]);
        Not(in=in[8], out=out[8]);
        Not(in=in[9], out=out[9]);
        Not(in=in[10], out=out[10]);
        Not(in=in[12], out=out[12]);
        Not(in=in[13], out=out[13]);
        Not(in=in[14], out=out[14]);
        Not(in=in[15], out=out[15]);
Reply | Threaded
Open this post in threaded view
|

Re: Comparison Failure

ivant
Your Not16 is missing a line for in[11].
Reply | Threaded
Open this post in threaded view
|

Re: Comparison Failure

Gtantse
Thanks. I noticed the Mux16 is also missing line 2
Reply | Threaded
Open this post in threaded view
|

Re: Comparison Failure

WBahn
Administrator
In reply to this post by Gtantse
So let's see how you might improve your troubleshooting for the future.

Notice from the test failure that the mismatch occurred at bit 11.

So that is where to focus your efforts in your troubleshooting and, sure enough, when you trace that signal through you would almost immediately discover that it is missing from the Not hookups.

I suspect that, after fixing that problem, you would have had a failure on another line of the output that would have pointed you at the error involving bit 2.

Another good habit to get into is using your innate abilities as a human for doing pattern recognition. You organized your code well, so you can scan down the list asking if it goes in the expected order, from 0 through 15, for all of the signals.

Did you test your Not16 before implementing your Mux16? If you had, it should have failed the tests, allowing you to find and fix the problem on a simpler circuit before using that circuit as a building block in a larger, more complex circuit.

Incremental build and test is a key strategy in both hardware and software projects.