Administrator
|
When thinking about hardware with multiple outputs, it is often best to first think about the outputs as individual functions. Once you get the individual functions figured out, you can often find optimizations that can share some of the gates between the individual functions.
For example, instead of the if/elseif/elseif/elseif description in the book, think of the DMux4Way as the four independent functions
if (sel == 00) then a=in else a=0
if (sel == 01) then b=in else b=0
if (sel == 10) then c=in else c=0
if (sel == 11) then d=in else d=0
Look at b independently and it should be easier to see that b = ~sel[1] AND sel[0] AND in.
Once you have all four equations, you can see that the NOTs for the sel bits can be shared between the circuits.
If you are asking about how to see the 3 DMux solution to DMux4Way, that's more of an art than a science. In general, I'd suggest thinking about what chips the book just had you make and how you can use then to make the next chip.
--Mark
|