DMux8Way related question

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

DMux8Way related question

Albert
Hi all, a quick question. How many DMux4Way's have you used to build the DMux8Way chip?

Thanks in advance,

Albert
Reply | Threaded
Open this post in threaded view
|

Re: DMux8Way related question

cadet1620
Administrator
It's useful to think about symmetries and inverse functions.

If you've done the Mux4Way16 and Mux8Way16, you can use their design in reverse by swapping inputs for outputs to get DMux4Way and DMux8Way.

All of the Mux#Way16/DMux#Way chips can be implemented with three lines of HDL using other chips you've built for project 1.

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

Re: DMux8Way related question

naveen davis
This post was updated on .
refer this blog


[Link to complete solutions deleted by admin.]
Reply | Threaded
Open this post in threaded view
|

Re: DMux8Way related question

AntonioCS
In reply to this post by cadet1620
Cadet1620

Are you sure you only need 3 lines of hdl?

I am now trying to implement the dmux4 and I have managed to implement the Mux4/8way16 but I still needed more than 3 lines of hdl.

I need to check which selector was selected. I wrote this code (for the Mux4Way16, the Mux8Way16 was indeed 3 lines):

        Not(in=sel[0],out=sel0not);
        Not(in=sel[1],out=sel1not);

        And(a=sel[0],b=sel1not,out=isB);
        And(a=sel0not,b=sel[1],out=isC);
        And(a=sel[0],b=sel[1],out=isD);

And then used another 3 lines of hdl. Was my approach incorrect? (it passed in the hdl editor)
Reply | Threaded
Open this post in threaded view
|

Re: DMux8Way related question

cadet1620
Administrator
First, there is no "correct" approach. If your chip passes the test, it's good.

You can write more concise implementations by using higher-level abstractions. Think about how you can use 3 DMux chips to make a DMux4Way. You want the data path to look something like this:

          in
          |
          *
         / \
        /   \
       /     \
      *       *
     / \     / \
    |   |   |   |
    a   b   c   d
The trick is what you do with the Muxs' sel inputs to get the data where it needs to go.

--Mark

Reply | Threaded
Open this post in threaded view
|

Re: DMux8Way related question

Romeo
From your diagram, wouldn't that be *2* DMux chips?  I ask, because I am having problems constructing my DMux8Way chip using 2 DMux4Way chips, and if 3 are actually needed, then there would be the problem.
Reply | Threaded
Open this post in threaded view
|

Re: DMux8Way related question

cadet1620
Administrator
Romeo wrote
From your diagram, wouldn't that be *2* DMux chips?  I ask, because I am having problems constructing my DMux8Way chip using 2 DMux4Way chips, and if 3 are actually needed, then there would be the problem.
Each of the three junction points requires a DMux, hence 3 DMuxes are required to implement DMux4Way.

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

Re: DMux8Way related question

Romeo
Oops, my mistake.  I got my DMux4Way and DMux8Way to work, thanks to your advice.  It was helpful for me to draw the AND and NOT gates for each DMux of the DMux4Way in order to follow the bits and convince myself why 3 chips were needed instead of 2.  
Reply | Threaded
Open this post in threaded view
|

Re: DMux8Way related question

cadet1620
Administrator
A good tool to explore logic, especially if you are a visual/tactile learner like I am, is Logisim http://ozark.hendrix.edu/~burch/logisim/.

Lets you play with logic in a visual environment and poke at inputs and see the effects. Powerful enough to make a Hack-like computer, too.

--Mark