So, for fun, I am planning on building a small SRAM module from transistors. I haven't decided on the exact size, but I'm thinking 4-bit word size and 4-bit address space (so, 16 words at 4 bits each. 64 bits total).
I've never designed SRAM before, except in simulations, and I'm not even 100% sure if the way I do it is practical in the real world or not. Usually, I have the data coming in going to every memory segment simultaneously, and I use a multiplexer to select which segment I want to take on the new value (to write to). Is this the correct way to do it? Is there a another/better way?
I then use a demultiplexer to select with address I want to read from, which also seems a bit impractical in the real world, because I'd have to have every single bit I have stored coming throw it to be routed back to my output.
My question has to do with the fact that multiplexers, as you increase their bit-width, actually increase in the number of transistors you need per address! To get only 16 addresses, I'm calculating that I'll need at least 100 transistors! And that's for a 1-bit word size! If I wanted to make a 4-wide by 16 SRAM module, I'd need more than 400 transistors in the multiplexer alone! I haven't even looked at the demultiplexer! Is it really this difficult to build SRAM? Is it really that impractical to build by hand?
Any other info would be greatly appreciated!
I've never designed SRAM before, except in simulations, and I'm not even 100% sure if the way I do it is practical in the real world or not. Usually, I have the data coming in going to every memory segment simultaneously, and I use a multiplexer to select which segment I want to take on the new value (to write to). Is this the correct way to do it? Is there a another/better way?
I then use a demultiplexer to select with address I want to read from, which also seems a bit impractical in the real world, because I'd have to have every single bit I have stored coming throw it to be routed back to my output.
My question has to do with the fact that multiplexers, as you increase their bit-width, actually increase in the number of transistors you need per address! To get only 16 addresses, I'm calculating that I'll need at least 100 transistors! And that's for a 1-bit word size! If I wanted to make a 4-wide by 16 SRAM module, I'd need more than 400 transistors in the multiplexer alone! I haven't even looked at the demultiplexer! Is it really this difficult to build SRAM? Is it really that impractical to build by hand?
Any other info would be greatly appreciated!