4-bit Address Selector
- TYelectronics
- Jul 27, 2023
- 2 min read
So I'm working on an 8-bit CPU type thing which requires multiple devices to be connected to a bus. I only want one thing writing to the bus at one time, and for now I only want one thing reading from the bus at one time. So what I have established is there needs to be a Data bus as well as Write address bus and a Read address bus, so that I can select which devices can write to the bus and what devices can read from the bus. So I need a device that can be programmed to only be enabled when a certain address is on the address bus. I first made non programable versions which was made of logic gates arranged in different configurations which would only be enabled by a set 4-bit input, but this requires 16 different PCB layouts which is a big waste of PCB space. This is when I designed the Multiplexer by mistake, but as I said before a 4-bit MUX requires 80 BJT's which is a lot and if each device needs a Read selector and a Write selector that 160 BJT's per device which is way too many. So I figured out the Address Selector.
The 4-bit Address Selector is made up of 4 XNOR gates who's outputs go into a 4 wide NAND gate which then gets inverted. as shown below.

Inside the Red box is the programable switches which allow me to select which address will enable the output.
For this build I just made single XNOR boards so that I could make sure that my idea worked before I made a dedicated PCB.
On the left are the 4 XNOR gates and of the right is the 4 wide NAND gate, which is made up of three 2 wide NAND and some Inverters (NOT and NOR gates). And then to the far left is the Enabled LED.
In these slides.
Device address: 1010 Address bus: 0000. Enabled: NO.
Device address: 1010 Address bus: 1001. Enabled: NO.
Device address: 1010 Address bus: 1010. Enabled: YES.
Device address: 1010 Address bus: 1111. Enabled: NO.
So for the next stage I'll be making a dedicated PCB board.
Comments