|
Hi,
Loving this, thanks very much for doing it.
Just doing the chip building in chapter 1, specifically the Mux8Way16 one.
I'm thinking it's doable via using two independent Mux4Way16's (say MuxA + MuxB) and then feeding the output of both into a standard two way Mux (MuxC).
The problem I'm having is juggling the sel[3] into two lots of a sel[2]s to acheive this.
sel[3] is essentially
bits
2 1 0
-----
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
and naming the inputs for MuxA A,B,C,D + MuxB E,F,G,H you can make a sort of mapping truth table to indicate which bits should pass through on the muxes:
2 1 0
-----
0 0 0 A
0 0 1 B
0 1 0 C
0 1 1 D
1 0 0 E
1 0 1 F
1 1 0 G
1 1 1 H
So obviously pin A on muxA is akin to pin E on muxB.
So I think we can say by looking at first bit in the above it indicate 0 for MuxA or 1 for MuxB.
And bits 1 and 0 can then just be passed to whichever mux bit 2 indicates.
So I'm wondering how to do this, then I realised that's effectively what a Demuxer does, isn't it?
I'm thinking I could use a demuxer and set the sel bit to bit 2 from the above table where the demuxer output goes via outa to MuxA or outb to MuxB, but the problem I'm encountering is that I think I need a two bit Demuxer to do it?
So I'm wondering, given the lack of templates for this, am I barking up the wrong tree? I suspect I am, it just seemed the right thing to do to try to work two 4way muxes to build an 8way.]
Perhaps the right way is to just back up a bit and build the 8 way from individual 16bit muxes.
|