Mux4way16

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

Mux4way16

learner
i have done my possible best to design this chip (Mux4way16) but i failed. please help!!!
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

cadet1620
Administrator
One of the goals of this course is to teach abstraction. Think about the progression of the chips you have designed so far. In most cases the chip you just designed is used in the next chip.

Simple gates used to make Mux ... Mux used to make Mux16 ...

You can make Mux4Way16 with 3 Mux16 parts. Then you can use Mux16 and Mux4Way16 parts to make Mux8Way16.

--Mark
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

learner
thanks mark
but how can i use sel[2] ?
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

cadet1620
Administrator
Use the bits from the 2-bit sel bus independently.

Some of the Mux16s have "sel=sel[0]" and some of them have "sel=sel[1]".

--Mark
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

learner
thanks
i used mux16(a=a, b=b, sel=sel[0], output) then Mux16(a=output, b=c, sel=sel[1], output)
BUT STILL NOT CORRECT
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

cadet1620
Administrator
The first Mux16 selects between 'a' and 'b'. Which sel bit in the truth table changes between 'a' and 'b' being selected?
The second Mux16 selects between 'c' and 'd'. Which sel bit in the truth table changes between 'c' and 'd' being selected?
The third Mux16 selects between a/b and c/d groups.

--Mark
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

learner
In reply to this post by learner
I did it !!!
the credit goes to you Mark .   thanks
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

nand2cy
This post was updated on .
In reply to this post by cadet1620
i have a question for mux4way16 gate.

 * out = a if sel == 00
 *       b if sel == 01
 *       c if sel == 10
 *       d if sel == 11

i have this, but it is wrong

//deleted

but the correct answer is

//deleted

this confused me, my idea is to filter ab or cd based on first bit sel[0].
and filter the answer based on second bit sel[1]
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

cadet1620
Administrator
What you are missing is that hardware bits are numbered from right to left.  When sel = 01, sel[0] is 1 and sel[1] is 0.

This order will make more sense in chapter 2 where you will learn about binary numbers. When a number is on a bus, bit[N] is the 2^N weighted bit of the number.

--Mark
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

cadet1620
Administrator
In reply to this post by nand2cy
Please edit your post to remove the correct solution. We want students to develop this on their own.

Also, did you mean
  this confused me, my idea is to filter  ab  ac or  cd  bd based on first bit sel[0].

--Mark

Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

nand2cy
In reply to this post by cadet1620
this makes sense.

Also, did you mean
  this confused me, my idea is to filter  ab  ac or  cd  bd based on first bit sel[0].


because i thought sel[0] is left digit, so in that case, if left is 0, i can know the output is a or b, so ab or cd is what i mean.

thanks Mark!
Reply | Threaded
Open this post in threaded view
|

Re: Mux4way16

aipaul
In reply to this post by cadet1620
Just sending my thanks to Mark for elaborating that the bits from the 2-bit sel bus should be treated independently. I was finally able to implement this gate because of this insight.

Thanks again.