Step 4: RAM Controller

So, for our three 4-bit RAM modules, we have the design below. the input data is placed at the data bus, and then written to the memory ny pulsing the appropriate input high. the contents of each nibble canbe read as long as the appropriate read nibble is high. For my security system however i needed to automatically switch from one nibble to the next when a new digit was input by the user. for this i made a RAM controller. it de-multiplexes a single read and a single write signal to the appropriate nibble of ram, depending on the 2 bit address input.

The second picture shows my RAM controller. when a Rising edge is present at the clock of the first flip-flop, the counter counts up by one (as d is connected to NOT Q). for each pulse it counts up by one. when the counter output is 11, the output of the reset logic becomes high, making the reset inputs of the counter high. this makes the counter reset back to 00. the counter output controlls which output that the de-multiplexers are connected to. for example, if the counter output is 01 then the de-multiplexer would be connected to the output second from the top (where the arrow points in the diagram is allways the multiplexer state at 00). you no only have one read and one write input - plus the counter input. you could - if you dont mind the RAM allways reading its contents to the output except when writing make the Write input equal to 'NOT Read' with a not gate (or a NAND gate with both inputs tied together if you are using NAND logic)

Now we have the RAM controller we have got a fully functioning one and a half bytes of 4-bit RAM! imagine trying to make enough for a modern computer this way D:
what about &quot;D&quot;? <br>
It's nice seeing people explore technology from the ground up, ratherthan just taking it for granted. I always wanted to do a similar thing and build a simple calculator with nothing but transistors, 0 chips.
This is awesome! could you use larger &quot;nibbles&quot; from old ram chips and make a larger ram module for a computer using a similar method? Thanks for making such a cool instructable with good schematics.
thanks for the feedback :D - those schematics are all done in MS Paint would you believe XD<br>in england nibbles refers to half a byte, or a four bit word (prehaps i didnt mention this, ill check back and edit it later). but you could certainly make the capacity of each ram array bigger. as for making it for a computer, i am not entirely sure how DDR3 ram (the current standard) functions but i think computer ram is 64bit, so you would need 64 flipflops for one section of the ram array. to make one gigabyte of ram you would need (1024^3)/64 which is approximately 1.7x10^7 of these arrays. needless to say, although it would be a spectacular acheivement to create this, its cost would far outstrip buying manufactured ram, and the ammount of space it would take up would be immense. as for harvesting ram arrays from old chips, it is most probably possible, but the ddr3 ram's have different pinouts so a very large ammount of research would be needed to produce a working example.<br>i hope i have answered you questions - sorry it got a bit long winded :)<br>matt

About This Instructable



More by woody123:how to make RAM with a controller 
Add instructable to: