|
Hi all,
I have just done the Mux4Way16 chip, but I did get a bit stuck and part of my attempt to work out how to create it was to write down the canonical representation of it and implement that. Not sure how to use the same notation as the book, so I will do it as best as possible, but instead of ā for 'not a' I will use !a.
a.!sel[0].!sel[1] + b.!sel[0].sel[1] + c.sel[0].!sel[1] + d.sel[0].sel[1]
So I went about implementing that, but ran into an issue with the bus sizes. For example take the first function:
Not(in=sel[0], out=notSel0);
Not(in=sel[1], out=notSel1);
And(a=notSel0, b=notSel1, out=unSel);
And(a=a, b=unSel, out=r0); // Fails because a is multi-bit.
So I've made a mistake somewhere, and am wondering if working out the canonical representation is a good way to figure out how to create the chip? It has worked for me on smaller chips, which are less complex, but now I get to something like this it seems to have lead me on a path that would require me to do these operations n-bit times. Any thoughts appreciated, maybe someone sees where I went wrong.
Thanks!
Ian
|