SRAM and Multiplexer Simplification

Thread Starter

Austin Clark

Joined Dec 28, 2011
412
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!
 

Papabravo

Joined Feb 24, 2006
21,227
Building SRAM from transistors is probably a waste of time and energy unless you plan to be a chip designer. A more practical project for a beginner might be to use 4-bit or 8-bit wide registers and multiplexer chips. You'll get to a functional unit way faster that way. Then if you insist on going for the transistior equivalent at least you'll have a prototype as a guide.

BTW - multiplexers are not the only way to skin the cat, as many a chip designer has discovered. The tri-state or open-drain bus also works well in the memory context.
 

Thread Starter

Austin Clark

Joined Dec 28, 2011
412
Building SRAM from transistors is probably a waste of time and energy unless you plan to be a chip designer. A more practical project for a beginner might be to use 4-bit or 8-bit wide registers and multiplexer chips. You'll get to a functional unit way faster that way. Then if you insist on going for the transistior equivalent at least you'll have a prototype as a guide.

BTW - multiplexers are not the only way to skin the cat, as many a chip designer has discovered. The tri-state or open-drain bus also works well in the memory context.
Aye, I could build the SRAM starting at a higher level, and I probably will once I get the materials. I'm really just doing it this way because it's fairly challenging, and I need the experience actually building my circuits. I feel like a lot is lost when you abstract away the finer details too. I'm not sure if I want to be a chip designer or not, but it's interesting never the less. :)

Ah, the Tri-state idea is brilliant! The same de-multiplexer used to write (clock, latch, whatever) to the particular memory segment can be used to activate the data-out buffers of that same segment!
 
Top